diff --git a/app/lib/features/chat_archive/presentation/screens/search.dart b/app/lib/features/chat_archive/presentation/screens/search.dart index f271d795..c754763d 100644 --- a/app/lib/features/chat_archive/presentation/screens/search.dart +++ b/app/lib/features/chat_archive/presentation/screens/search.dart @@ -83,9 +83,7 @@ class ChatArchiveSearchScreen extends HookConsumerWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Markdown( - shrinkWrap: true, - padding: EdgeInsets.zero, + MarkdownBody( data: '## ${chat.title}', ), if (chatEntity.dateTime != null) @@ -93,9 +91,7 @@ class ChatArchiveSearchScreen extends HookConsumerWidget { chatEntity.dateTime!.formatWithMinutePrecision(), ), const SizedBox(height: 8.0), - Markdown( - shrinkWrap: true, - padding: EdgeInsets.zero, + MarkdownBody( data: chat.contentSnippet, ), ], diff --git a/app/lib/features/geckoview/domain/repositories/tab.dart b/app/lib/features/geckoview/domain/repositories/tab.dart index 1bf2de80..de009978 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.dart @@ -80,6 +80,7 @@ class TabRepository extends _$TabRepository { tabContentService.tabContentStream.listen((content) async { await _db.tabDao.updateTab( content.tabId, + isProbablyReaderable: Value(content.isProbablyReaderable), extractedContentMarkdown: Value(content.extractedContentMarkdown), extractedContentPlain: Value(content.extractedContentPlain), fullContentMarkdown: Value(content.fullContentMarkdown), diff --git a/app/lib/features/geckoview/domain/repositories/tab.g.dart b/app/lib/features/geckoview/domain/repositories/tab.g.dart index 1669d825..fdc16a15 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.g.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.g.dart @@ -6,7 +6,7 @@ part of 'tab.dart'; // RiverpodGenerator // ************************************************************************** -String _$tabRepositoryHash() => r'b151be1c18d87eff3a15f4b70f4e82fcc11047ec'; +String _$tabRepositoryHash() => r'4269add3c89250ab30835055e3567a1e6d5c185a'; /// See also [TabRepository]. @ProviderFor(TabRepository) diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart index d41f30a8..f19f1f65 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/landing/content.dart @@ -142,11 +142,9 @@ class LandingContent extends HookConsumerWidget { textTheme.titleLarge?.copyWith(fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), - Markdown( + MarkdownBody( data: changelogAsset.data ?? '', selectable: true, - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), ), ], ), diff --git a/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart b/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart index e212c62c..fbe6922f 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/daos/tab.dart @@ -114,6 +114,7 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { String id, { Value url = const Value.absent(), Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), Value extractedContentMarkdown = const Value.absent(), Value extractedContentPlain = const Value.absent(), Value fullContentMarkdown = const Value.absent(), @@ -121,6 +122,7 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { }) async { final doUpdate = url != const Value.absent() || title != const Value.absent() || + isProbablyReaderable != const Value.absent() || extractedContentMarkdown != const Value.absent() || extractedContentPlain != const Value.absent() || fullContentMarkdown != const Value.absent() || @@ -132,6 +134,7 @@ class TabDao extends DatabaseAccessor with _$TabDaoMixin { TabCompanion( url: url, title: title, + isProbablyReaderable: isProbablyReaderable, extractedContentMarkdown: extractedContentMarkdown, extractedContentPlain: extractedContentPlain, fullContentMarkdown: fullContentMarkdown, diff --git a/app/lib/features/geckoview/features/tabs/data/database/database.drift b/app/lib/features/geckoview/features/tabs/data/database/database.drift index 5c95881a..02d175ec 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/database.drift +++ b/app/lib/features/geckoview/features/tabs/data/database/database.drift @@ -17,6 +17,7 @@ CREATE TABLE tab ( order_key TEXT NOT NULL, url TEXT, title TEXT, + is_probably_readerable BOOL, extracted_content_markdown TEXT, extracted_content_plain TEXT, full_content_markdown TEXT, diff --git a/app/lib/features/geckoview/features/tabs/data/database/database.g.dart b/app/lib/features/geckoview/features/tabs/data/database/database.g.dart index b2b741c8..8357993c 100644 --- a/app/lib/features/geckoview/features/tabs/data/database/database.g.dart +++ b/app/lib/features/geckoview/features/tabs/data/database/database.g.dart @@ -205,6 +205,11 @@ class Tab extends Table with TableInfo { type: DriftSqlType.string, requiredDuringInsert: false, $customConstraints: ''); + late final GeneratedColumn isProbablyReaderable = GeneratedColumn( + 'is_probably_readerable', aliasedName, true, + type: DriftSqlType.bool, + requiredDuringInsert: false, + $customConstraints: ''); late final GeneratedColumn extractedContentMarkdown = GeneratedColumn('extracted_content_markdown', aliasedName, true, type: DriftSqlType.string, @@ -237,6 +242,7 @@ class Tab extends Table with TableInfo { orderKey, url, title, + isProbablyReaderable, extractedContentMarkdown, extractedContentPlain, fullContentMarkdown, @@ -264,6 +270,8 @@ class Tab extends Table with TableInfo { .read(DriftSqlType.string, data['${effectivePrefix}url']), title: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}title']), + isProbablyReaderable: attachedDatabase.typeMapping.read( + DriftSqlType.bool, data['${effectivePrefix}is_probably_readerable']), extractedContentMarkdown: attachedDatabase.typeMapping.read( DriftSqlType.string, data['${effectivePrefix}extracted_content_markdown']), @@ -294,6 +302,7 @@ class TabData extends DataClass implements Insertable { final String orderKey; final String? url; final String? title; + final bool? isProbablyReaderable; final String? extractedContentMarkdown; final String? extractedContentPlain; final String? fullContentMarkdown; @@ -305,6 +314,7 @@ class TabData extends DataClass implements Insertable { required this.orderKey, this.url, this.title, + this.isProbablyReaderable, this.extractedContentMarkdown, this.extractedContentPlain, this.fullContentMarkdown, @@ -324,6 +334,9 @@ class TabData extends DataClass implements Insertable { if (!nullToAbsent || title != null) { map['title'] = Variable(title); } + if (!nullToAbsent || isProbablyReaderable != null) { + map['is_probably_readerable'] = Variable(isProbablyReaderable); + } if (!nullToAbsent || extractedContentMarkdown != null) { map['extracted_content_markdown'] = Variable(extractedContentMarkdown); @@ -350,6 +363,8 @@ class TabData extends DataClass implements Insertable { orderKey: serializer.fromJson(json['order_key']), url: serializer.fromJson(json['url']), title: serializer.fromJson(json['title']), + isProbablyReaderable: + serializer.fromJson(json['is_probably_readerable']), extractedContentMarkdown: serializer.fromJson(json['extracted_content_markdown']), extractedContentPlain: @@ -370,6 +385,7 @@ class TabData extends DataClass implements Insertable { 'order_key': serializer.toJson(orderKey), 'url': serializer.toJson(url), 'title': serializer.toJson(title), + 'is_probably_readerable': serializer.toJson(isProbablyReaderable), 'extracted_content_markdown': serializer.toJson(extractedContentMarkdown), 'extracted_content_plain': @@ -386,6 +402,7 @@ class TabData extends DataClass implements Insertable { String? orderKey, Value url = const Value.absent(), Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), Value extractedContentMarkdown = const Value.absent(), Value extractedContentPlain = const Value.absent(), Value fullContentMarkdown = const Value.absent(), @@ -397,6 +414,9 @@ class TabData extends DataClass implements Insertable { orderKey: orderKey ?? this.orderKey, url: url.present ? url.value : this.url, title: title.present ? title.value : this.title, + isProbablyReaderable: isProbablyReaderable.present + ? isProbablyReaderable.value + : this.isProbablyReaderable, extractedContentMarkdown: extractedContentMarkdown.present ? extractedContentMarkdown.value : this.extractedContentMarkdown, @@ -419,6 +439,9 @@ class TabData extends DataClass implements Insertable { orderKey: data.orderKey.present ? data.orderKey.value : this.orderKey, url: data.url.present ? data.url.value : this.url, title: data.title.present ? data.title.value : this.title, + isProbablyReaderable: data.isProbablyReaderable.present + ? data.isProbablyReaderable.value + : this.isProbablyReaderable, extractedContentMarkdown: data.extractedContentMarkdown.present ? data.extractedContentMarkdown.value : this.extractedContentMarkdown, @@ -443,6 +466,7 @@ class TabData extends DataClass implements Insertable { ..write('orderKey: $orderKey, ') ..write('url: $url, ') ..write('title: $title, ') + ..write('isProbablyReaderable: $isProbablyReaderable, ') ..write('extractedContentMarkdown: $extractedContentMarkdown, ') ..write('extractedContentPlain: $extractedContentPlain, ') ..write('fullContentMarkdown: $fullContentMarkdown, ') @@ -459,6 +483,7 @@ class TabData extends DataClass implements Insertable { orderKey, url, title, + isProbablyReaderable, extractedContentMarkdown, extractedContentPlain, fullContentMarkdown, @@ -473,6 +498,7 @@ class TabData extends DataClass implements Insertable { other.orderKey == this.orderKey && other.url == this.url && other.title == this.title && + other.isProbablyReaderable == this.isProbablyReaderable && other.extractedContentMarkdown == this.extractedContentMarkdown && other.extractedContentPlain == this.extractedContentPlain && other.fullContentMarkdown == this.fullContentMarkdown && @@ -486,6 +512,7 @@ class TabCompanion extends UpdateCompanion { final Value orderKey; final Value url; final Value title; + final Value isProbablyReaderable; final Value extractedContentMarkdown; final Value extractedContentPlain; final Value fullContentMarkdown; @@ -498,6 +525,7 @@ class TabCompanion extends UpdateCompanion { this.orderKey = const Value.absent(), this.url = const Value.absent(), this.title = const Value.absent(), + this.isProbablyReaderable = const Value.absent(), this.extractedContentMarkdown = const Value.absent(), this.extractedContentPlain = const Value.absent(), this.fullContentMarkdown = const Value.absent(), @@ -511,6 +539,7 @@ class TabCompanion extends UpdateCompanion { required String orderKey, this.url = const Value.absent(), this.title = const Value.absent(), + this.isProbablyReaderable = const Value.absent(), this.extractedContentMarkdown = const Value.absent(), this.extractedContentPlain = const Value.absent(), this.fullContentMarkdown = const Value.absent(), @@ -526,6 +555,7 @@ class TabCompanion extends UpdateCompanion { Expression? orderKey, Expression? url, Expression? title, + Expression? isProbablyReaderable, Expression? extractedContentMarkdown, Expression? extractedContentPlain, Expression? fullContentMarkdown, @@ -539,6 +569,8 @@ class TabCompanion extends UpdateCompanion { if (orderKey != null) 'order_key': orderKey, if (url != null) 'url': url, if (title != null) 'title': title, + if (isProbablyReaderable != null) + 'is_probably_readerable': isProbablyReaderable, if (extractedContentMarkdown != null) 'extracted_content_markdown': extractedContentMarkdown, if (extractedContentPlain != null) @@ -557,6 +589,7 @@ class TabCompanion extends UpdateCompanion { Value? orderKey, Value? url, Value? title, + Value? isProbablyReaderable, Value? extractedContentMarkdown, Value? extractedContentPlain, Value? fullContentMarkdown, @@ -569,6 +602,7 @@ class TabCompanion extends UpdateCompanion { orderKey: orderKey ?? this.orderKey, url: url ?? this.url, title: title ?? this.title, + isProbablyReaderable: isProbablyReaderable ?? this.isProbablyReaderable, extractedContentMarkdown: extractedContentMarkdown ?? this.extractedContentMarkdown, extractedContentPlain: @@ -598,6 +632,10 @@ class TabCompanion extends UpdateCompanion { if (title.present) { map['title'] = Variable(title.value); } + if (isProbablyReaderable.present) { + map['is_probably_readerable'] = + Variable(isProbablyReaderable.value); + } if (extractedContentMarkdown.present) { map['extracted_content_markdown'] = Variable(extractedContentMarkdown.value); @@ -630,6 +668,7 @@ class TabCompanion extends UpdateCompanion { ..write('orderKey: $orderKey, ') ..write('url: $url, ') ..write('title: $title, ') + ..write('isProbablyReaderable: $isProbablyReaderable, ') ..write('extractedContentMarkdown: $extractedContentMarkdown, ') ..write('extractedContentPlain: $extractedContentPlain, ') ..write('fullContentMarkdown: $fullContentMarkdown, ') @@ -1308,6 +1347,7 @@ typedef $TabCreateCompanionBuilder = TabCompanion Function({ required String orderKey, Value url, Value title, + Value isProbablyReaderable, Value extractedContentMarkdown, Value extractedContentPlain, Value fullContentMarkdown, @@ -1321,6 +1361,7 @@ typedef $TabUpdateCompanionBuilder = TabCompanion Function({ Value orderKey, Value url, Value title, + Value isProbablyReaderable, Value extractedContentMarkdown, Value extractedContentPlain, Value fullContentMarkdown, @@ -1366,6 +1407,10 @@ class $TabFilterComposer extends Composer<_$TabDatabase, Tab> { ColumnFilters get title => $composableBuilder( column: $table.title, builder: (column) => ColumnFilters(column)); + ColumnFilters get isProbablyReaderable => $composableBuilder( + column: $table.isProbablyReaderable, + builder: (column) => ColumnFilters(column)); + ColumnFilters get extractedContentMarkdown => $composableBuilder( column: $table.extractedContentMarkdown, builder: (column) => ColumnFilters(column)); @@ -1426,6 +1471,10 @@ class $TabOrderingComposer extends Composer<_$TabDatabase, Tab> { ColumnOrderings get title => $composableBuilder( column: $table.title, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get isProbablyReaderable => $composableBuilder( + column: $table.isProbablyReaderable, + builder: (column) => ColumnOrderings(column)); + ColumnOrderings get extractedContentMarkdown => $composableBuilder( column: $table.extractedContentMarkdown, builder: (column) => ColumnOrderings(column)); @@ -1486,6 +1535,9 @@ class $TabAnnotationComposer extends Composer<_$TabDatabase, Tab> { GeneratedColumn get title => $composableBuilder(column: $table.title, builder: (column) => column); + GeneratedColumn get isProbablyReaderable => $composableBuilder( + column: $table.isProbablyReaderable, builder: (column) => column); + GeneratedColumn get extractedContentMarkdown => $composableBuilder( column: $table.extractedContentMarkdown, builder: (column) => column); @@ -1550,6 +1602,7 @@ class $TabTableManager extends RootTableManager< Value orderKey = const Value.absent(), Value url = const Value.absent(), Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), Value extractedContentMarkdown = const Value.absent(), Value extractedContentPlain = const Value.absent(), Value fullContentMarkdown = const Value.absent(), @@ -1563,6 +1616,7 @@ class $TabTableManager extends RootTableManager< orderKey: orderKey, url: url, title: title, + isProbablyReaderable: isProbablyReaderable, extractedContentMarkdown: extractedContentMarkdown, extractedContentPlain: extractedContentPlain, fullContentMarkdown: fullContentMarkdown, @@ -1576,6 +1630,7 @@ class $TabTableManager extends RootTableManager< required String orderKey, Value url = const Value.absent(), Value title = const Value.absent(), + Value isProbablyReaderable = const Value.absent(), Value extractedContentMarkdown = const Value.absent(), Value extractedContentPlain = const Value.absent(), Value fullContentMarkdown = const Value.absent(), @@ -1589,6 +1644,7 @@ class $TabTableManager extends RootTableManager< orderKey: orderKey, url: url, title: title, + isProbablyReaderable: isProbablyReaderable, extractedContentMarkdown: extractedContentMarkdown, extractedContentPlain: extractedContentPlain, fullContentMarkdown: fullContentMarkdown, diff --git a/app/lib/features/search/presentation/screens/search.dart b/app/lib/features/search/presentation/screens/search.dart index f0b42386..ca4d56a4 100644 --- a/app/lib/features/search/presentation/screens/search.dart +++ b/app/lib/features/search/presentation/screens/search.dart @@ -288,20 +288,9 @@ class SearchScreen extends HookConsumerWidget { result.extractedContent ?? result.fullContent; return ListTile( - title: Markdown( - shrinkWrap: true, - padding: EdgeInsets.zero, - data: result.title, - physics: const NeverScrollableScrollPhysics(), - ), + title: MarkdownBody(data: result.title), subtitle: (!headHasMatch && bodyResult != null) - ? Markdown( - shrinkWrap: true, - padding: EdgeInsets.zero, - data: bodyResult, - physics: - const NeverScrollableScrollPhysics(), - ) + ? MarkdownBody(data: bodyResult) : null, ); }, diff --git a/melos.yaml b/melos.yaml index bfdc6e7f..22a9c5c7 100644 --- a/melos.yaml +++ b/melos.yaml @@ -3,7 +3,7 @@ name: lensai_project command: clean: hooks: - pre: melos exec -c 6 -- "flutter clean" + pre: melos exec -c 1 -- "flutter clean" scripts: upgrade-major-tighten: @@ -41,4 +41,4 @@ scripts: packages: - app/ - - packages/** \ No newline at end of file + - packages/** diff --git a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/feature/ReadabilityExtractFeature.kt b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/feature/ReadabilityExtractFeature.kt index a284aeab..ae0e1364 100644 --- a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/feature/ReadabilityExtractFeature.kt +++ b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/feature/ReadabilityExtractFeature.kt @@ -12,6 +12,7 @@ import mozilla.components.concept.engine.webextension.Port import mozilla.components.lib.state.ext.flowScoped import mozilla.components.support.base.feature.LifecycleAwareFeature import mozilla.components.support.base.log.logger.Logger +import mozilla.components.support.ktx.android.org.json.tryGetInt import mozilla.components.support.ktx.android.org.json.tryGetString import mozilla.components.support.ktx.kotlinx.coroutines.flow.filterChanged import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged @@ -48,6 +49,7 @@ class ReadabilityExtractFeature( tabId = tabId, fullContentMarkdown = message.tryGetString("fullContentMarkdown"), fullContentPlain = message.tryGetString("fullContentPlain"), + isProbablyReaderable = message.tryGetInt("isProbablyReaderable") == 1, extractedContentMarkdown = message.tryGetString("extractedContentMarkdown"), extractedContentPlain = message.tryGetString("extractedContentPlain") ) diff --git a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/pigeons/Gecko.g.kt b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/pigeons/Gecko.g.kt index b7768de8..b2567d8c 100644 --- a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/pigeons/Gecko.g.kt +++ b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/lensai/flutter_mozilla_components/pigeons/Gecko.g.kt @@ -1024,6 +1024,7 @@ data class TabContent ( val tabId: String, val fullContentMarkdown: String? = null, val fullContentPlain: String? = null, + val isProbablyReaderable: Boolean, val extractedContentMarkdown: String? = null, val extractedContentPlain: String? = null ) @@ -1033,9 +1034,10 @@ data class TabContent ( val tabId = pigeonVar_list[0] as String val fullContentMarkdown = pigeonVar_list[1] as String? val fullContentPlain = pigeonVar_list[2] as String? - val extractedContentMarkdown = pigeonVar_list[3] as String? - val extractedContentPlain = pigeonVar_list[4] as String? - return TabContent(tabId, fullContentMarkdown, fullContentPlain, extractedContentMarkdown, extractedContentPlain) + val isProbablyReaderable = pigeonVar_list[3] as Boolean + val extractedContentMarkdown = pigeonVar_list[4] as String? + val extractedContentPlain = pigeonVar_list[5] as String? + return TabContent(tabId, fullContentMarkdown, fullContentPlain, isProbablyReaderable, extractedContentMarkdown, extractedContentPlain) } } fun toList(): List { @@ -1043,6 +1045,7 @@ data class TabContent ( tabId, fullContentMarkdown, fullContentPlain, + isProbablyReaderable, extractedContentMarkdown, extractedContentPlain, ) diff --git a/packages/flutter_mozilla_components/javascript/readability/dist/readability.min.js b/packages/flutter_mozilla_components/javascript/readability/dist/readability.min.js index f88eec38..19b0a03b 100644 --- a/packages/flutter_mozilla_components/javascript/readability/dist/readability.min.js +++ b/packages/flutter_mozilla_components/javascript/readability/dist/readability.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ReadabilityBundle=t():e.ReadabilityBundle=t()}(this,(()=>(()=>{var e={804:e=>{var t={unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i};function i(e){return(!e.style||"none"!=e.style.display)&&!e.hasAttribute("hidden")&&(!e.hasAttribute("aria-hidden")||"true"!=e.getAttribute("aria-hidden")||e.className&&e.className.indexOf&&-1!==e.className.indexOf("fallback-image"))}e.exports=function(e,n={}){"function"==typeof n&&(n={visibilityChecker:n});var r={minScore:20,minContentLength:140,visibilityChecker:i};n=Object.assign(r,n);var a=e.querySelectorAll("p, pre, article"),s=e.querySelectorAll("div > br");if(s.length){var o=new Set(a);[].forEach.call(s,(function(e){o.add(e.parentNode)})),a=Array.from(o)}var l=0;return[].some.call(a,(function(e){if(!n.visibilityChecker(e))return!1;var i=e.className+" "+e.id;if(t.unlikelyCandidates.test(i)&&!t.okMaybeItsACandidate.test(i))return!1;if(e.matches("li p"))return!1;var r=e.textContent.trim().length;return!(rn.minScore}))}},238:e=>{function t(e,t){if(t&&t.documentElement)e=t,t=arguments[2];else if(!e||!e.documentElement)throw new Error("First argument to Readability constructor should be a document object.");if(t=t||{},this._doc=e,this._docJSDOMParser=this._doc.firstChild.__JSDOMParser__,this._articleTitle=null,this._articleByline=null,this._articleDir=null,this._articleSiteName=null,this._attempts=[],this._debug=!!t.debug,this._maxElemsToParse=t.maxElemsToParse||this.DEFAULT_MAX_ELEMS_TO_PARSE,this._nbTopCandidates=t.nbTopCandidates||this.DEFAULT_N_TOP_CANDIDATES,this._charThreshold=t.charThreshold||this.DEFAULT_CHAR_THRESHOLD,this._classesToPreserve=this.CLASSES_TO_PRESERVE.concat(t.classesToPreserve||[]),this._keepClasses=!!t.keepClasses,this._serializer=t.serializer||function(e){return e.innerHTML},this._disableJSONLD=!!t.disableJSONLD,this._allowedVideoRegex=t.allowedVideoRegex||this.REGEXPS.videos,this._flags=this.FLAG_STRIP_UNLIKELYS|this.FLAG_WEIGHT_CLASSES|this.FLAG_CLEAN_CONDITIONALLY,this._debug){let e=function(e){if(e.nodeType==e.TEXT_NODE)return`${e.nodeName} ("${e.textContent}")`;let t=Array.from(e.attributes||[],(function(e){return`${e.name}="${e.value}"`})).join(" ");return`<${e.localName} ${t}>`};this.log=function(){if("undefined"!=typeof console){let t=Array.from(arguments,(t=>t&&t.nodeType==this.ELEMENT_NODE?e(t):t));t.unshift("Reader: (Readability)"),console.log.apply(console,t)}else if("undefined"!=typeof dump){var t=Array.prototype.map.call(arguments,(function(t){return t&&t.nodeName?e(t):t})).join(" ");dump("Reader: (Readability) "+t+"\n")}}}else this.log=function(){}}t.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4,h5,h6,p,td,pre".toUpperCase().split(","),DEFAULT_CHAR_THRESHOLD:500,REGEXPS:{unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i,positive:/article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i,negative:/-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget/i,extraneous:/print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i,byline:/byline|author|dateline|writtenby|p-author/i,replaceFonts:/<(\/?)font[^>]*>/gi,normalize:/\s{2,}/g,videos:/\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i,shareElements:/(\b|_)(share|sharedaddy)(\b|_)/i,nextLink:/(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i,prevLink:/(prev|earl|old|new|<|«)/i,tokenize:/\W+/g,whitespace:/^\s*$/,hasContent:/\S$/,hashUrl:/^#.+/,srcsetUrl:/(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g,b64DataUrl:/^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i,commas:/\u002C|\u060C|\uFE50|\uFE10|\uFE11|\u2E41|\u2E34|\u2E32|\uFF0C/g,jsonLdArticleTypes:/^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/},UNLIKELY_ROLES:["menu","menubar","complementary","navigation","alert","alertdialog","dialog"],DIV_TO_P_ELEMS:new Set(["BLOCKQUOTE","DL","DIV","IMG","OL","P","PRE","TABLE","UL"]),ALTER_TO_DIV_EXCEPTIONS:["DIV","ARTICLE","SECTION","P"],PRESENTATIONAL_ATTRIBUTES:["align","background","bgcolor","border","cellpadding","cellspacing","frame","hspace","rules","style","valign","vspace"],DEPRECATED_SIZE_ATTRIBUTE_ELEMS:["TABLE","TH","TD","HR","PRE"],PHRASING_ELEMS:["ABBR","AUDIO","B","BDO","BR","BUTTON","CITE","CODE","DATA","DATALIST","DFN","EM","EMBED","I","IMG","INPUT","KBD","LABEL","MARK","MATH","METER","NOSCRIPT","OBJECT","OUTPUT","PROGRESS","Q","RUBY","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRONG","SUB","SUP","TEXTAREA","TIME","VAR","WBR"],CLASSES_TO_PRESERVE:["page"],HTML_ESCAPE_MAP:{lt:"<",gt:">",amp:"&",quot:'"',apos:"'"},_postProcessContent:function(e){this._fixRelativeUris(e),this._simplifyNestedElements(e),this._keepClasses||this._cleanClasses(e)},_removeNodes:function(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw new Error("Do not pass live node lists to _removeNodes");for(var i=e.length-1;i>=0;i--){var n=e[i],r=n.parentNode;r&&(t&&!t.call(this,n,i,e)||r.removeChild(n))}},_replaceNodeTags:function(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw new Error("Do not pass live node lists to _replaceNodeTags");for(const i of e)this._setNodeTag(i,t)},_forEachNode:function(e,t){Array.prototype.forEach.call(e,t,this)},_findNode:function(e,t){return Array.prototype.find.call(e,t,this)},_someNode:function(e,t){return Array.prototype.some.call(e,t,this)},_everyNode:function(e,t){return Array.prototype.every.call(e,t,this)},_concatNodeLists:function(){var e=Array.prototype.slice,t=e.call(arguments).map((function(t){return e.call(t)}));return Array.prototype.concat.apply([],t)},_getAllNodesWithTag:function(e,t){return e.querySelectorAll?e.querySelectorAll(t.join(",")):[].concat.apply([],t.map((function(t){var i=e.getElementsByTagName(t);return Array.isArray(i)?i:Array.from(i)})))},_cleanClasses:function(e){var t=this._classesToPreserve,i=(e.getAttribute("class")||"").split(/\s+/).filter((function(e){return-1!=t.indexOf(e)})).join(" ");for(i?e.setAttribute("class",i):e.removeAttribute("class"),e=e.firstElementChild;e;e=e.nextElementSibling)this._cleanClasses(e)},_fixRelativeUris:function(e){var t=this._doc.baseURI,i=this._doc.documentURI;function n(e){if(t==i&&"#"==e.charAt(0))return e;try{return new URL(e,t).href}catch(e){}return e}var r=this._getAllNodesWithTag(e,["a"]);this._forEachNode(r,(function(e){var t=e.getAttribute("href");if(t)if(0===t.indexOf("javascript:"))if(1===e.childNodes.length&&e.childNodes[0].nodeType===this.TEXT_NODE){var i=this._doc.createTextNode(e.textContent);e.parentNode.replaceChild(i,e)}else{for(var r=this._doc.createElement("span");e.firstChild;)r.appendChild(e.firstChild);e.parentNode.replaceChild(r,e)}else e.setAttribute("href",n(t))}));var a=this._getAllNodesWithTag(e,["img","picture","figure","video","audio","source"]);this._forEachNode(a,(function(e){var t=e.getAttribute("src"),i=e.getAttribute("poster"),r=e.getAttribute("srcset");if(t&&e.setAttribute("src",n(t)),i&&e.setAttribute("poster",n(i)),r){var a=r.replace(this.REGEXPS.srcsetUrl,(function(e,t,i,r){return n(t)+(i||"")+r}));e.setAttribute("srcset",a)}}))},_simplifyNestedElements:function(e){for(var t=e;t;){if(t.parentNode&&["DIV","SECTION"].includes(t.tagName)&&(!t.id||!t.id.startsWith("readability"))){if(this._isElementWithoutContent(t)){t=this._removeAndGetNext(t);continue}if(this._hasSingleTagInsideElement(t,"DIV")||this._hasSingleTagInsideElement(t,"SECTION")){for(var i=t.children[0],n=0;n»] /.test(t))n=/ [\\\/>»] /.test(t),r(t=i.replace(/(.*)[\|\-\\\/>»] .*/gi,"$1"))<3&&(t=i.replace(/[^\|\-\\\/>»]*[\|\-\\\/>»](.*)/gi,"$1"));else if(-1!==t.indexOf(": ")){var a=this._concatNodeLists(e.getElementsByTagName("h1"),e.getElementsByTagName("h2")),s=t.trim();this._someNode(a,(function(e){return e.textContent.trim()===s}))||(r(t=i.substring(i.lastIndexOf(":")+1))<3?t=i.substring(i.indexOf(":")+1):r(i.substr(0,i.indexOf(":")))>5&&(t=i))}else if(t.length>150||t.length<15){var o=e.getElementsByTagName("h1");1===o.length&&(t=this._getInnerText(o[0]))}var l=r(t=t.trim().replace(this.REGEXPS.normalize," "));return l<=4&&(!n||l!=r(i.replace(/[\|\-\\\/>»]+/g,""))-1)&&(t=i),t},_prepDocument:function(){var e=this._doc;this._removeNodes(this._getAllNodesWithTag(e,["style"])),e.body&&this._replaceBrs(e.body),this._replaceNodeTags(this._getAllNodesWithTag(e,["font"]),"SPAN")},_nextNode:function(e){for(var t=e;t&&t.nodeType!=this.ELEMENT_NODE&&this.REGEXPS.whitespace.test(t.textContent);)t=t.nextSibling;return t},_replaceBrs:function(e){this._forEachNode(this._getAllNodesWithTag(e,["br"]),(function(e){for(var t=e.nextSibling,i=!1;(t=this._nextNode(t))&&"BR"==t.tagName;){i=!0;var n=t.nextSibling;t.parentNode.removeChild(t),t=n}if(i){var r=this._doc.createElement("p");for(e.parentNode.replaceChild(r,e),t=r.nextSibling;t;){if("BR"==t.tagName){var a=this._nextNode(t.nextSibling);if(a&&"BR"==a.tagName)break}if(!this._isPhrasingContent(t))break;var s=t.nextSibling;r.appendChild(t),t=s}for(;r.lastChild&&this._isWhitespace(r.lastChild);)r.removeChild(r.lastChild);"P"===r.parentNode.tagName&&this._setNodeTag(r.parentNode,"DIV")}}))},_setNodeTag:function(e,t){if(this.log("_setNodeTag",e,t),this._docJSDOMParser)return e.localName=t.toLowerCase(),e.tagName=t.toUpperCase(),e;for(var i=e.ownerDocument.createElement(t);e.firstChild;)i.appendChild(e.firstChild);e.parentNode.replaceChild(i,e),e.readability&&(i.readability=e.readability);for(var n=0;n!i.includes(e))).join(" ").length/n.join(" ").length:0},_checkByline:function(e,t){if(this._articleByline)return!1;if(void 0!==e.getAttribute)var i=e.getAttribute("rel"),n=e.getAttribute("itemprop");return!(!("author"===i||n&&-1!==n.indexOf("author")||this.REGEXPS.byline.test(t))||!this._isValidByline(e.textContent))&&(this._articleByline=e.textContent.trim(),!0)},_getNodeAncestors:function(e,t){t=t||0;for(var i=0,n=[];e.parentNode&&(n.push(e.parentNode),!t||++i!==t);)e=e.parentNode;return n},_grabArticle:function(e){this.log("**** grabArticle ****");var t=this._doc,i=null!==e;if(!(e=e||this._doc.body))return this.log("No body found in document. Abort."),null;for(var n=e.innerHTML;;){this.log("Starting grabArticle loop");var r=this._flagIsActive(this.FLAG_STRIP_UNLIKELYS),a=[],s=this._doc.documentElement;let V=!0;for(;s;){"HTML"===s.tagName&&(this._articleLang=s.getAttribute("lang"));var o=s.className+" "+s.id;if(this._isProbablyVisible(s))if("true"!=s.getAttribute("aria-modal")||"dialog"!=s.getAttribute("role"))if(this._checkByline(s,o))s=this._removeAndGetNext(s);else if(V&&this._headerDuplicatesTitle(s))this.log("Removing header: ",s.textContent.trim(),this._articleTitle.trim()),V=!1,s=this._removeAndGetNext(s);else{if(r){if(this.REGEXPS.unlikelyCandidates.test(o)&&!this.REGEXPS.okMaybeItsACandidate.test(o)&&!this._hasAncestorTag(s,"table")&&!this._hasAncestorTag(s,"code")&&"BODY"!==s.tagName&&"A"!==s.tagName){this.log("Removing unlikely candidate - "+o),s=this._removeAndGetNext(s);continue}if(this.UNLIKELY_ROLES.includes(s.getAttribute("role"))){this.log("Removing content with role "+s.getAttribute("role")+" - "+o),s=this._removeAndGetNext(s);continue}}if("DIV"!==s.tagName&&"SECTION"!==s.tagName&&"HEADER"!==s.tagName&&"H1"!==s.tagName&&"H2"!==s.tagName&&"H3"!==s.tagName&&"H4"!==s.tagName&&"H5"!==s.tagName&&"H6"!==s.tagName||!this._isElementWithoutContent(s)){if(-1!==this.DEFAULT_TAGS_TO_SCORE.indexOf(s.tagName)&&a.push(s),"DIV"===s.tagName){for(var l=null,c=s.firstChild;c;){var h=c.nextSibling;if(this._isPhrasingContent(c))null!==l?l.appendChild(c):this._isWhitespace(c)||(l=t.createElement("p"),s.replaceChild(l,c),l.appendChild(c));else if(null!==l){for(;l.lastChild&&this._isWhitespace(l.lastChild);)l.removeChild(l.lastChild);l=null}c=h}if(this._hasSingleTagInsideElement(s,"P")&&this._getLinkDensity(s)<.25){var d=s.children[0];s.parentNode.replaceChild(d,s),s=d,a.push(s)}else this._hasChildBlockElement(s)||(s=this._setNodeTag(s,"P"),a.push(s))}s=this._getNextNode(s)}else s=this._removeAndGetNext(s)}else s=this._removeAndGetNext(s);else this.log("Removing hidden node - "+o),s=this._removeAndGetNext(s)}var u=[];this._forEachNode(a,(function(e){if(e.parentNode&&void 0!==e.parentNode.tagName){var t=this._getInnerText(e);if(!(t.length<25)){var i=this._getNodeAncestors(e,5);if(0!==i.length){var n=0;n+=1,n+=t.split(this.REGEXPS.commas).length,n+=Math.min(Math.floor(t.length/100),3),this._forEachNode(i,(function(e,t){if(e.tagName&&e.parentNode&&void 0!==e.parentNode.tagName){if(void 0===e.readability&&(this._initializeNode(e),u.push(e)),0===t)var i=1;else i=1===t?2:3*t;e.readability.contentScore+=n/i}}))}}}}));for(var g=[],f=0,p=u.length;fb.readability.contentScore){g.splice(N,0,m),g.length>this._nbTopCandidates&&g.pop();break}}}var E,y=g[0]||null,T=!1;if(null===y||"BODY"===y.tagName){for(y=t.createElement("DIV"),T=!0;e.firstChild;)this.log("Moving child out:",e.firstChild),y.appendChild(e.firstChild);e.appendChild(y),this._initializeNode(y)}else if(y){for(var v=[],A=1;A=.75&&v.push(this._getNodeAncestors(g[A]));if(v.length>=3)for(E=y.parentNode;"BODY"!==E.tagName;){for(var S=0,C=0;C=3){y=E;break}E=E.parentNode}y.readability||this._initializeNode(y),E=y.parentNode;for(var L=y.readability.contentScore,x=L/3;"BODY"!==E.tagName;)if(E.readability){var O=E.readability.contentScore;if(OL){y=E;break}L=E.readability.contentScore,E=E.parentNode}else E=E.parentNode;for(E=y.parentNode;"BODY"!=E.tagName&&1==E.children.length;)E=(y=E).parentNode;y.readability||this._initializeNode(y)}var R=t.createElement("DIV");i&&(R.id="readability-content");for(var D=Math.max(10,.2*y.readability.contentScore),I=(E=y.parentNode).children,w=0,P=I.length;w=D)B=!0;else if("P"===k.nodeName){var H=this._getLinkDensity(k),G=this._getInnerText(k),U=G.length;(U>80&&H<.25||U<80&&U>0&&0===H&&-1!==G.search(/\.( |$)/))&&(B=!0)}}B&&(this.log("Appending node:",k),-1===this.ALTER_TO_DIV_EXCEPTIONS.indexOf(k.nodeName)&&(this.log("Altering sibling:",k,"to div."),k=this._setNodeTag(k,"DIV")),R.appendChild(k),I=E.children,w-=1,P-=1)}if(this._debug&&this.log("Article content pre-prep: "+R.innerHTML),this._prepArticle(R),this._debug&&this.log("Article content post-prep: "+R.innerHTML),T)y.id="readability-page-1",y.className="page";else{var $=t.createElement("DIV");for($.id="readability-page-1",$.className="page";R.firstChild;)$.appendChild(R.firstChild);R.appendChild($)}this._debug&&this.log("Article content after paging: "+R.innerHTML);var j=!0,F=this._getInnerText(R,!0).length;if(F0&&e.length<100)},_unescapeHtmlEntities:function(e){if(!e)return e;var t=this.HTML_ESCAPE_MAP;return e.replace(/&(quot|amp|apos|lt|gt);/g,(function(e,i){return t[i]})).replace(/&#(?:x([0-9a-z]{1,4})|([0-9]{1,4}));/gi,(function(e,t,i){var n=parseInt(t||i,t?16:10);return String.fromCharCode(n)}))},_getJSONLD:function(e){var t,i=this._getAllNodesWithTag(e,["script"]);return this._forEachNode(i,(function(e){if(!t&&"application/ld+json"===e.getAttribute("type"))try{var i=e.textContent.replace(/^\s*\s*$/g,""),n=JSON.parse(i);if(!n["@context"]||!n["@context"].match(/^https?\:\/\/schema\.org$/))return;if(!n["@type"]&&Array.isArray(n["@graph"])&&(n=n["@graph"].find((function(e){return(e["@type"]||"").match(this.REGEXPS.jsonLdArticleTypes)}))),!n||!n["@type"]||!n["@type"].match(this.REGEXPS.jsonLdArticleTypes))return;if(t={},"string"==typeof n.name&&"string"==typeof n.headline&&n.name!==n.headline){var r=this._getArticleTitle(),a=this._textSimilarity(n.name,r)>.75,s=this._textSimilarity(n.headline,r)>.75;t.title=s&&!a?n.headline:n.name}else"string"==typeof n.name?t.title=n.name.trim():"string"==typeof n.headline&&(t.title=n.headline.trim());return n.author&&("string"==typeof n.author.name?t.byline=n.author.name.trim():Array.isArray(n.author)&&n.author[0]&&"string"==typeof n.author[0].name&&(t.byline=n.author.filter((function(e){return e&&"string"==typeof e.name})).map((function(e){return e.name.trim()})).join(", "))),"string"==typeof n.description&&(t.excerpt=n.description.trim()),n.publisher&&"string"==typeof n.publisher.name&&(t.siteName=n.publisher.name.trim()),void("string"==typeof n.datePublished&&(t.datePublished=n.datePublished.trim()))}catch(e){this.log(e.message)}})),t||{}},_getArticleMetadata:function(e){var t={},i={},n=this._doc.getElementsByTagName("meta"),r=/\s*(article|dc|dcterm|og|twitter)\s*:\s*(author|creator|description|published_time|title|site_name)\s*/gi,a=/^\s*(?:(dc|dcterm|og|twitter|weibo:(article|webpage))\s*[\.:]\s*)?(author|creator|description|title|site_name)\s*$/i;return this._forEachNode(n,(function(e){var t=e.getAttribute("name"),n=e.getAttribute("property"),s=e.getAttribute("content");if(s){var o=null,l=null;n&&(o=n.match(r))&&(l=o[0].toLowerCase().replace(/\s/g,""),i[l]=s.trim()),!o&&t&&a.test(t)&&(l=t,s&&(l=l.toLowerCase().replace(/\s/g,"").replace(/\./g,":"),i[l]=s.trim()))}})),t.title=e.title||i["dc:title"]||i["dcterm:title"]||i["og:title"]||i["weibo:article:title"]||i["weibo:webpage:title"]||i.title||i["twitter:title"],t.title||(t.title=this._getArticleTitle()),t.byline=e.byline||i["dc:creator"]||i["dcterm:creator"]||i.author,t.excerpt=e.excerpt||i["dc:description"]||i["dcterm:description"]||i["og:description"]||i["weibo:article:description"]||i["weibo:webpage:description"]||i.description||i["twitter:description"],t.siteName=e.siteName||i["og:site_name"],t.publishedTime=e.datePublished||i["article:published_time"]||null,t.title=this._unescapeHtmlEntities(t.title),t.byline=this._unescapeHtmlEntities(t.byline),t.excerpt=this._unescapeHtmlEntities(t.excerpt),t.siteName=this._unescapeHtmlEntities(t.siteName),t.publishedTime=this._unescapeHtmlEntities(t.publishedTime),t},_isSingleImage:function(e){return"IMG"===e.tagName||1===e.children.length&&""===e.textContent.trim()&&this._isSingleImage(e.children[0])},_unwrapNoscriptImages:function(e){var t=Array.from(e.getElementsByTagName("img"));this._forEachNode(t,(function(e){for(var t=0;t0&&r>i)return!1;if(e.parentNode.tagName===t&&(!n||n(e.parentNode)))return!0;e=e.parentNode,r++}return!1},_getRowAndColumnCount:function(e){for(var t=0,i=0,n=e.getElementsByTagName("tr"),r=0;r0)n._readabilityDataTable=!0;else{if(["col","colgroup","tfoot","thead","th"].some((function(e){return!!n.getElementsByTagName(e)[0]})))this.log("Data table because found data-y descendant"),n._readabilityDataTable=!0;else if(n.getElementsByTagName("table")[0])n._readabilityDataTable=!1;else{var a=this._getRowAndColumnCount(n);a.rows>=10||a.columns>4?n._readabilityDataTable=!0:n._readabilityDataTable=a.rows*a.columns>10}}}else n._readabilityDataTable=!1;else n._readabilityDataTable=!1}},_fixLazyImages:function(e){this._forEachNode(this._getAllNodesWithTag(e,["img","picture","figure"]),(function(e){if(e.src&&this.REGEXPS.b64DataUrl.test(e.src)){if("image/svg+xml"===this.REGEXPS.b64DataUrl.exec(e.src)[1])return;for(var t=!1,i=0;in+=this._getInnerText(e,!0).length)),n/i},_cleanConditionally:function(e,t){this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)&&this._removeNodes(this._getAllNodesWithTag(e,[t]),(function(e){var i=function(e){return e._readabilityDataTable},n="ul"===t||"ol"===t;if(!n){var r=0,a=this._getAllNodesWithTag(e,["ul","ol"]);this._forEachNode(a,(e=>r+=this._getInnerText(e).length)),n=r/this._getInnerText(e).length>.9}if("table"===t&&i(e))return!1;if(this._hasAncestorTag(e,"table",-1,i))return!1;if(this._hasAncestorTag(e,"code"))return!1;var s=this._getClassWeight(e);this.log("Cleaning Conditionally",e);if(s+0<0)return!0;if(this._getCharCount(e,",")<10){for(var o=e.getElementsByTagName("p").length,l=e.getElementsByTagName("img").length,c=e.getElementsByTagName("li").length-100,h=e.getElementsByTagName("input").length,d=this._getTextDensity(e,["h1","h2","h3","h4","h5","h6"]),u=0,g=this._getAllNodesWithTag(e,["object","embed","iframe"]),f=0;f1&&o/l<.5&&!this._hasAncestorTag(e,"figure")||!n&&c>o||h>Math.floor(o/3)||!n&&d<.9&&_<25&&(0===l||l>2)&&!this._hasAncestorTag(e,"figure")||!n&&s<25&&m>.2||s>=25&&m>.5||1===u&&_<75||u>1;if(n&&N){for(var b=0;b1)return N}if(l==e.getElementsByTagName("li").length)return!1}return N}return!1}))},_cleanMatchedNodes:function(e,t){for(var i=this._getNextNode(e,!0),n=this._getNextNode(e);n&&n!=i;)n=t.call(this,n,n.className+" "+n.id)?this._removeAndGetNext(n):this._getNextNode(n)},_cleanHeaders:function(e){let t=this._getAllNodesWithTag(e,["h1","h2"]);this._removeNodes(t,(function(e){let t=this._getClassWeight(e)<0;return t&&this.log("Removing header with low class weight:",e),t}))},_headerDuplicatesTitle:function(e){if("H1"!=e.tagName&&"H2"!=e.tagName)return!1;var t=this._getInnerText(e,!1);return this.log("Evaluating similarity of header:",t,this._articleTitle),this._textSimilarity(this._articleTitle,t)>.75},_flagIsActive:function(e){return(this._flags&e)>0},_removeFlag:function(e){this._flags=this._flags&~e},_isProbablyVisible:function(e){return(!e.style||"none"!=e.style.display)&&(!e.style||"hidden"!=e.style.visibility)&&!e.hasAttribute("hidden")&&(!e.hasAttribute("aria-hidden")||"true"!=e.getAttribute("aria-hidden")||e.className&&e.className.indexOf&&-1!==e.className.indexOf("fallback-image"))},parse:function(){if(this._maxElemsToParse>0){var e=this._doc.getElementsByTagName("*").length;if(e>this._maxElemsToParse)throw new Error("Aborting parsing document; "+e+" elements found")}this._unwrapNoscriptImages(this._doc);var t=this._disableJSONLD?{}:this._getJSONLD(this._doc);this._removeScripts(this._doc),this._prepDocument();var i=this._getArticleMetadata(t);this._articleTitle=i.title;var n=this._grabArticle();if(!n)return null;if(this.log("Grabbed: "+n.innerHTML),this._postProcessContent(n),!i.excerpt){var r=n.getElementsByTagName("p");r.length>0&&(i.excerpt=r[0].textContent.trim())}var a=n.textContent;return{title:this._articleTitle,byline:i.byline||this._articleByline,dir:this._articleDir,lang:this._articleLang,content:this._serializer(n),textContent:a,length:a.length,excerpt:i.excerpt,siteName:i.siteName||this._articleSiteName,publishedTime:i.publishedTime}}},e.exports=t},396:(e,t,i)=>{var n=i(238),r=i(804);e.exports={Readability:n,isProbablyReaderable:r}},481:e=>{e.exports=function(e,t){(t=t||{}).listUnicodeChar=!!t.hasOwnProperty("listUnicodeChar")&&t.listUnicodeChar,t.stripListLeaders=!t.hasOwnProperty("stripListLeaders")||t.stripListLeaders,t.gfm=!t.hasOwnProperty("gfm")||t.gfm,t.useImgAltText=!t.hasOwnProperty("useImgAltText")||t.useImgAltText,t.abbr=!!t.hasOwnProperty("abbr")&&t.abbr,t.replaceLinksWithURL=!!t.hasOwnProperty("replaceLinksWithURL")&&t.replaceLinksWithURL,t.htmlTagsToSkip=t.hasOwnProperty("htmlTagsToSkip")?t.htmlTagsToSkip:[],t.throwError=!!t.hasOwnProperty("throwError")&&t.throwError;var i=e||"";i=i.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*/gm,"");try{t.stripListLeaders&&(i=t.listUnicodeChar?i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,t.listUnicodeChar+" $1"):i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,"$1")),t.gfm&&(i=i.replace(/\n={2,}/g,"\n").replace(/~{3}.*\n/g,"").replace(/~~/g,"").replace(/`{3}.*\n/g,"")),t.abbr&&(i=i.replace(/\*\[.*\]:.*\n/,"")),i=i.replace(/<[^>]*>/g,"");var n=new RegExp("<[^>]*>","g");if(t.htmlTagsToSkip.length>0){var r="(?!"+t.htmlTagsToSkip.join("|")+")";n=new RegExp("<"+r+"[^>]*>","ig")}i=i.replace(n,"").replace(/^[=\-]{2,}\s*$/g,"").replace(/\[\^.+?\](\: .*?$)?/g,"").replace(/\s{0,2}\[.*?\]: .*?$/g,"").replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g,t.useImgAltText?"$1":"").replace(/\[([^\]]*?)\][\[\(].*?[\]\)]/g,t.replaceLinksWithURL?"$2":"$1").replace(/^(\n)?\s{0,3}>\s?/gm,"$1").replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g,"").replace(/^(\n)?\s{0,}#{1,6}\s*( (.+))? +#+$|^(\n)?\s{0,}#{1,6}\s*( (.+))?$/gm,"$1$3$4$6").replace(/([\*]+)(\S)(.*?\S)??\1/g,"$2$3").replace(/(^|\W)([_]+)(\S)(.*?\S)??\2($|\W)/g,"$1$3$4$5").replace(/(`{3,})(.*?)\1/gm,"$2").replace(/`(.+?)`/g,"$1").replace(/~(.*?)~/g,"$1")}catch(i){if(t.throwError)throw i;return console.error("remove-markdown encountered error: %s",i),e}return i}}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,i),a.exports}i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";i.r(n),i.d(n,{parseReaderable:()=>U});var e=i(396);function t(e,t){return Array(t+1).join(e)}var r=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"];function a(e){return c(e,r)}var s=["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"];function o(e){return c(e,s)}var l=["A","TABLE","THEAD","TBODY","TFOOT","TH","TD","IFRAME","SCRIPT","AUDIO","VIDEO"];function c(e,t){return t.indexOf(e.nodeName)>=0}function h(e,t){return e.getElementsByTagName&&t.some((function(t){return e.getElementsByTagName(t).length}))}var d={};function u(e){return e?e.replace(/(\n+\s*)+/g,"\n"):""}function g(e){for(var t in this.options=e,this._keep=[],this._remove=[],this.blankRule={replacement:e.blankReplacement},this.keepReplacement=e.keepReplacement,this.defaultRule={replacement:e.defaultReplacement},this.array=[],e.rules)this.array.push(e.rules[t])}function f(e,t,i){for(var n=0;n-1)return!0}else{if("function"!=typeof n)throw new TypeError("`filter` needs to be a string, array, or function");if(n.call(e,t,i))return!0}}function m(e){var t=e.nextSibling||e.parentNode;return e.parentNode.removeChild(e),t}function _(e,t,i){return e&&e.parentNode===t||i(t)?t.nextSibling||t.parentNode:t.firstChild||t.nextSibling||t.parentNode}d.paragraph={filter:"p",replacement:function(e){return"\n\n"+e+"\n\n"}},d.lineBreak={filter:"br",replacement:function(e,t,i){return i.br+"\n"}},d.heading={filter:["h1","h2","h3","h4","h5","h6"],replacement:function(e,i,n){var r=Number(i.nodeName.charAt(1));return"setext"===n.headingStyle&&r<3?"\n\n"+e+"\n"+t(1===r?"=":"-",e.length)+"\n\n":"\n\n"+t("#",r)+" "+e+"\n\n"}},d.blockquote={filter:"blockquote",replacement:function(e){return"\n\n"+(e=(e=e.replace(/^\n+|\n+$/g,"")).replace(/^/gm,"> "))+"\n\n"}},d.list={filter:["ul","ol"],replacement:function(e,t){var i=t.parentNode;return"LI"===i.nodeName&&i.lastElementChild===t?"\n"+e:"\n\n"+e+"\n\n"}},d.listItem={filter:"li",replacement:function(e,t,i){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n").replace(/\n/gm,"\n ");var n=i.bulletListMarker+" ",r=t.parentNode;if("OL"===r.nodeName){var a=r.getAttribute("start"),s=Array.prototype.indexOf.call(r.children,t);n=(a?Number(a)+s:s+1)+". "}return n+e+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}},d.indentedCodeBlock={filter:function(e,t){return"indented"===t.codeBlockStyle&&"PRE"===e.nodeName&&e.firstChild&&"CODE"===e.firstChild.nodeName},replacement:function(e,t,i){return"\n\n "+t.firstChild.textContent.replace(/\n/g,"\n ")+"\n\n"}},d.fencedCodeBlock={filter:function(e,t){return"fenced"===t.codeBlockStyle&&"PRE"===e.nodeName&&e.firstChild&&"CODE"===e.firstChild.nodeName},replacement:function(e,i,n){for(var r,a=((i.firstChild.getAttribute("class")||"").match(/language-(\S+)/)||[null,""])[1],s=i.firstChild.textContent,o=n.fence.charAt(0),l=3,c=new RegExp("^"+o+"{3,}","gm");r=c.exec(s);)r[0].length>=l&&(l=r[0].length+1);var h=t(o,l);return"\n\n"+h+a+"\n"+s.replace(/\n$/,"")+"\n"+h+"\n\n"}},d.horizontalRule={filter:"hr",replacement:function(e,t,i){return"\n\n"+i.hr+"\n\n"}},d.inlineLink={filter:function(e,t){return"inlined"===t.linkStyle&&"A"===e.nodeName&&e.getAttribute("href")},replacement:function(e,t){var i=t.getAttribute("href");i&&(i=i.replace(/([()])/g,"\\$1"));var n=u(t.getAttribute("title"));return n&&(n=' "'+n.replace(/"/g,'\\"')+'"'),"["+e+"]("+i+n+")"}},d.referenceLink={filter:function(e,t){return"referenced"===t.linkStyle&&"A"===e.nodeName&&e.getAttribute("href")},replacement:function(e,t,i){var n,r,a=t.getAttribute("href"),s=u(t.getAttribute("title"));switch(s&&(s=' "'+s+'"'),i.linkReferenceStyle){case"collapsed":n="["+e+"][]",r="["+e+"]: "+a+s;break;case"shortcut":n="["+e+"]",r="["+e+"]: "+a+s;break;default:var o=this.references.length+1;n="["+e+"]["+o+"]",r="["+o+"]: "+a+s}return this.references.push(r),n},references:[],append:function(e){var t="";return this.references.length&&(t="\n\n"+this.references.join("\n")+"\n\n",this.references=[]),t}},d.emphasis={filter:["em","i"],replacement:function(e,t,i){return e.trim()?i.emDelimiter+e+i.emDelimiter:""}},d.strong={filter:["strong","b"],replacement:function(e,t,i){return e.trim()?i.strongDelimiter+e+i.strongDelimiter:""}},d.code={filter:function(e){var t=e.previousSibling||e.nextSibling,i="PRE"===e.parentNode.nodeName&&!t;return"CODE"===e.nodeName&&!i},replacement:function(e){if(!e)return"";e=e.replace(/\r?\n|\r/g," ");for(var t=/^`|^ .*?[^ ].* $|`$/.test(e)?" ":"",i="`",n=e.match(/`+/gm)||[];-1!==n.indexOf(i);)i+="`";return i+t+e+t+i}},d.image={filter:"img",replacement:function(e,t){var i=u(t.getAttribute("alt")),n=t.getAttribute("src")||"",r=u(t.getAttribute("title"));return n?"!["+i+"]("+n+(r?' "'+r+'"':"")+")":""}},g.prototype={add:function(e,t){this.array.unshift(t)},keep:function(e){this._keep.unshift({filter:e,replacement:this.keepReplacement})},remove:function(e){this._remove.unshift({filter:e,replacement:function(){return""}})},forNode:function(e){return e.isBlank?this.blankRule:(t=f(this.array,e,this.options))||(t=f(this._keep,e,this.options))||(t=f(this._remove,e,this.options))?t:this.defaultRule;var t},forEach:function(e){for(var t=0;t'+e+"","text/html").getElementById("turndown-root"):i=e.cloneNode(!0);return function(e){var t=e.element,i=e.isBlock,n=e.isVoid,r=e.isPre||function(e){return"PRE"===e.nodeName};if(t.firstChild&&!r(t)){for(var a=null,s=!1,o=null,l=_(o,t,r);l!==t;){if(3===l.nodeType||4===l.nodeType){var c=l.data.replace(/[ \r\n\t]+/g," ");if(a&&!/ $/.test(a.data)||s||" "!==c[0]||(c=c.substr(1)),!c){l=m(l);continue}l.data=c,a=l}else{if(1!==l.nodeType){l=m(l);continue}i(l)||"BR"===l.nodeName?(a&&(a.data=a.data.replace(/ $/,"")),a=null,s=!1):n(l)||r(l)?(a=null,s=!0):a&&(s=!1)}var h=_(o,l,r);o=l,l=h}a&&(a.data=a.data.replace(/ $/,""),a.data||m(a))}}({element:i,isBlock:a,isVoid:o,isPre:t.preformattedCode?v:null}),i}function v(e){return"PRE"===e.nodeName||"CODE"===e.nodeName}function A(e,t){return e.isBlock=a(e),e.isCode="CODE"===e.nodeName||e.parentNode.isCode,e.isBlank=function(e){return!o(e)&&!function(e){return c(e,l)}(e)&&/^\s*$/i.test(e.textContent)&&!function(e){return h(e,s)}(e)&&!function(e){return h(e,l)}(e)}(e),e.flankingWhitespace=function(e,t){if(e.isBlock||t.preformattedCode&&e.isCode)return{leading:"",trailing:""};var i=(n=e.textContent,r=n.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/),{leading:r[1],leadingAscii:r[2],leadingNonAscii:r[3],trailing:r[4],trailingNonAscii:r[5],trailingAscii:r[6]});var n,r;i.leadingAscii&&S("left",e,t)&&(i.leading=i.leadingNonAscii);i.trailingAscii&&S("right",e,t)&&(i.trailing=i.trailingNonAscii);return{leading:i.leading,trailing:i.trailing}}(e,t),e}function S(e,t,i){var n,r,s;return"left"===e?(n=t.previousSibling,r=/ $/):(n=t.nextSibling,r=/^ /),n&&(3===n.nodeType?s=r.test(n.nodeValue):i.preformattedCode&&"CODE"===n.nodeName?s=!1:1!==n.nodeType||a(n)||(s=r.test(n.textContent))),s}var C=Array.prototype.reduce,L=[[/\\/g,"\\\\"],[/\*/g,"\\*"],[/^-/g,"\\-"],[/^\+ /g,"\\+ "],[/^(=+)/g,"\\$1"],[/^(#{1,6}) /g,"\\$1 "],[/`/g,"\\`"],[/^~~~/g,"\\~~~"],[/\[/g,"\\["],[/\]/g,"\\]"],[/^>/g,"\\>"],[/_/g,"\\_"],[/^(\d+)\. /g,"$1\\. "]];function x(e){if(!(this instanceof x))return new x(e);var t={rules:d,headingStyle:"setext",hr:"* * *",bulletListMarker:"*",codeBlockStyle:"indented",fence:"```",emDelimiter:"_",strongDelimiter:"**",linkStyle:"inlined",linkReferenceStyle:"full",br:" ",preformattedCode:!1,blankReplacement:function(e,t){return t.isBlock?"\n\n":""},keepReplacement:function(e,t){return t.isBlock?"\n\n"+t.outerHTML+"\n\n":t.outerHTML},defaultReplacement:function(e,t){return t.isBlock?"\n\n"+e+"\n\n":e}};this.options=function(e){for(var t=1;t0&&"\n"===e[t-1];)t--;return e.substring(0,t)}(e),n=t.replace(/^\n*/,""),r=Math.max(e.length-i.length,t.length-n.length);return i+"\n\n".substring(0,r)+n}x.prototype={turndown:function(e){if(!function(e){return null!=e&&("string"==typeof e||e.nodeType&&(1===e.nodeType||9===e.nodeType||11===e.nodeType))}(e))throw new TypeError(e+" is not a string, or an element/document/fragment node.");if(""===e)return"";var t=O.call(this,new T(e,this.options));return R.call(this,t)},use:function(e){if(Array.isArray(e))for(var t=0;t(()=>{var e={804:e=>{var t={unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i};function i(e){return(!e.style||"none"!=e.style.display)&&!e.hasAttribute("hidden")&&(!e.hasAttribute("aria-hidden")||"true"!=e.getAttribute("aria-hidden")||e.className&&e.className.indexOf&&-1!==e.className.indexOf("fallback-image"))}e.exports=function(e,n={}){"function"==typeof n&&(n={visibilityChecker:n});var r={minScore:20,minContentLength:140,visibilityChecker:i};n=Object.assign(r,n);var a=e.querySelectorAll("p, pre, article"),s=e.querySelectorAll("div > br");if(s.length){var o=new Set(a);[].forEach.call(s,(function(e){o.add(e.parentNode)})),a=Array.from(o)}var l=0;return[].some.call(a,(function(e){if(!n.visibilityChecker(e))return!1;var i=e.className+" "+e.id;if(t.unlikelyCandidates.test(i)&&!t.okMaybeItsACandidate.test(i))return!1;if(e.matches("li p"))return!1;var r=e.textContent.trim().length;return!(rn.minScore}))}},238:e=>{function t(e,t){if(t&&t.documentElement)e=t,t=arguments[2];else if(!e||!e.documentElement)throw new Error("First argument to Readability constructor should be a document object.");if(t=t||{},this._doc=e,this._docJSDOMParser=this._doc.firstChild.__JSDOMParser__,this._articleTitle=null,this._articleByline=null,this._articleDir=null,this._articleSiteName=null,this._attempts=[],this._debug=!!t.debug,this._maxElemsToParse=t.maxElemsToParse||this.DEFAULT_MAX_ELEMS_TO_PARSE,this._nbTopCandidates=t.nbTopCandidates||this.DEFAULT_N_TOP_CANDIDATES,this._charThreshold=t.charThreshold||this.DEFAULT_CHAR_THRESHOLD,this._classesToPreserve=this.CLASSES_TO_PRESERVE.concat(t.classesToPreserve||[]),this._keepClasses=!!t.keepClasses,this._serializer=t.serializer||function(e){return e.innerHTML},this._disableJSONLD=!!t.disableJSONLD,this._allowedVideoRegex=t.allowedVideoRegex||this.REGEXPS.videos,this._flags=this.FLAG_STRIP_UNLIKELYS|this.FLAG_WEIGHT_CLASSES|this.FLAG_CLEAN_CONDITIONALLY,this._debug){let e=function(e){if(e.nodeType==e.TEXT_NODE)return`${e.nodeName} ("${e.textContent}")`;let t=Array.from(e.attributes||[],(function(e){return`${e.name}="${e.value}"`})).join(" ");return`<${e.localName} ${t}>`};this.log=function(){if("undefined"!=typeof console){let t=Array.from(arguments,(t=>t&&t.nodeType==this.ELEMENT_NODE?e(t):t));t.unshift("Reader: (Readability)"),console.log.apply(console,t)}else if("undefined"!=typeof dump){var t=Array.prototype.map.call(arguments,(function(t){return t&&t.nodeName?e(t):t})).join(" ");dump("Reader: (Readability) "+t+"\n")}}}else this.log=function(){}}t.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4,h5,h6,p,td,pre".toUpperCase().split(","),DEFAULT_CHAR_THRESHOLD:500,REGEXPS:{unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i,positive:/article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i,negative:/-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget/i,extraneous:/print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i,byline:/byline|author|dateline|writtenby|p-author/i,replaceFonts:/<(\/?)font[^>]*>/gi,normalize:/\s{2,}/g,videos:/\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i,shareElements:/(\b|_)(share|sharedaddy)(\b|_)/i,nextLink:/(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i,prevLink:/(prev|earl|old|new|<|«)/i,tokenize:/\W+/g,whitespace:/^\s*$/,hasContent:/\S$/,hashUrl:/^#.+/,srcsetUrl:/(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g,b64DataUrl:/^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i,commas:/\u002C|\u060C|\uFE50|\uFE10|\uFE11|\u2E41|\u2E34|\u2E32|\uFF0C/g,jsonLdArticleTypes:/^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/},UNLIKELY_ROLES:["menu","menubar","complementary","navigation","alert","alertdialog","dialog"],DIV_TO_P_ELEMS:new Set(["BLOCKQUOTE","DL","DIV","IMG","OL","P","PRE","TABLE","UL"]),ALTER_TO_DIV_EXCEPTIONS:["DIV","ARTICLE","SECTION","P"],PRESENTATIONAL_ATTRIBUTES:["align","background","bgcolor","border","cellpadding","cellspacing","frame","hspace","rules","style","valign","vspace"],DEPRECATED_SIZE_ATTRIBUTE_ELEMS:["TABLE","TH","TD","HR","PRE"],PHRASING_ELEMS:["ABBR","AUDIO","B","BDO","BR","BUTTON","CITE","CODE","DATA","DATALIST","DFN","EM","EMBED","I","IMG","INPUT","KBD","LABEL","MARK","MATH","METER","NOSCRIPT","OBJECT","OUTPUT","PROGRESS","Q","RUBY","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRONG","SUB","SUP","TEXTAREA","TIME","VAR","WBR"],CLASSES_TO_PRESERVE:["page"],HTML_ESCAPE_MAP:{lt:"<",gt:">",amp:"&",quot:'"',apos:"'"},_postProcessContent:function(e){this._fixRelativeUris(e),this._simplifyNestedElements(e),this._keepClasses||this._cleanClasses(e)},_removeNodes:function(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw new Error("Do not pass live node lists to _removeNodes");for(var i=e.length-1;i>=0;i--){var n=e[i],r=n.parentNode;r&&(t&&!t.call(this,n,i,e)||r.removeChild(n))}},_replaceNodeTags:function(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw new Error("Do not pass live node lists to _replaceNodeTags");for(const i of e)this._setNodeTag(i,t)},_forEachNode:function(e,t){Array.prototype.forEach.call(e,t,this)},_findNode:function(e,t){return Array.prototype.find.call(e,t,this)},_someNode:function(e,t){return Array.prototype.some.call(e,t,this)},_everyNode:function(e,t){return Array.prototype.every.call(e,t,this)},_concatNodeLists:function(){var e=Array.prototype.slice,t=e.call(arguments).map((function(t){return e.call(t)}));return Array.prototype.concat.apply([],t)},_getAllNodesWithTag:function(e,t){return e.querySelectorAll?e.querySelectorAll(t.join(",")):[].concat.apply([],t.map((function(t){var i=e.getElementsByTagName(t);return Array.isArray(i)?i:Array.from(i)})))},_cleanClasses:function(e){var t=this._classesToPreserve,i=(e.getAttribute("class")||"").split(/\s+/).filter((function(e){return-1!=t.indexOf(e)})).join(" ");for(i?e.setAttribute("class",i):e.removeAttribute("class"),e=e.firstElementChild;e;e=e.nextElementSibling)this._cleanClasses(e)},_fixRelativeUris:function(e){var t=this._doc.baseURI,i=this._doc.documentURI;function n(e){if(t==i&&"#"==e.charAt(0))return e;try{return new URL(e,t).href}catch(e){}return e}var r=this._getAllNodesWithTag(e,["a"]);this._forEachNode(r,(function(e){var t=e.getAttribute("href");if(t)if(0===t.indexOf("javascript:"))if(1===e.childNodes.length&&e.childNodes[0].nodeType===this.TEXT_NODE){var i=this._doc.createTextNode(e.textContent);e.parentNode.replaceChild(i,e)}else{for(var r=this._doc.createElement("span");e.firstChild;)r.appendChild(e.firstChild);e.parentNode.replaceChild(r,e)}else e.setAttribute("href",n(t))}));var a=this._getAllNodesWithTag(e,["img","picture","figure","video","audio","source"]);this._forEachNode(a,(function(e){var t=e.getAttribute("src"),i=e.getAttribute("poster"),r=e.getAttribute("srcset");if(t&&e.setAttribute("src",n(t)),i&&e.setAttribute("poster",n(i)),r){var a=r.replace(this.REGEXPS.srcsetUrl,(function(e,t,i,r){return n(t)+(i||"")+r}));e.setAttribute("srcset",a)}}))},_simplifyNestedElements:function(e){for(var t=e;t;){if(t.parentNode&&["DIV","SECTION"].includes(t.tagName)&&(!t.id||!t.id.startsWith("readability"))){if(this._isElementWithoutContent(t)){t=this._removeAndGetNext(t);continue}if(this._hasSingleTagInsideElement(t,"DIV")||this._hasSingleTagInsideElement(t,"SECTION")){for(var i=t.children[0],n=0;n»] /.test(t))n=/ [\\\/>»] /.test(t),r(t=i.replace(/(.*)[\|\-\\\/>»] .*/gi,"$1"))<3&&(t=i.replace(/[^\|\-\\\/>»]*[\|\-\\\/>»](.*)/gi,"$1"));else if(-1!==t.indexOf(": ")){var a=this._concatNodeLists(e.getElementsByTagName("h1"),e.getElementsByTagName("h2")),s=t.trim();this._someNode(a,(function(e){return e.textContent.trim()===s}))||(r(t=i.substring(i.lastIndexOf(":")+1))<3?t=i.substring(i.indexOf(":")+1):r(i.substr(0,i.indexOf(":")))>5&&(t=i))}else if(t.length>150||t.length<15){var o=e.getElementsByTagName("h1");1===o.length&&(t=this._getInnerText(o[0]))}var l=r(t=t.trim().replace(this.REGEXPS.normalize," "));return l<=4&&(!n||l!=r(i.replace(/[\|\-\\\/>»]+/g,""))-1)&&(t=i),t},_prepDocument:function(){var e=this._doc;this._removeNodes(this._getAllNodesWithTag(e,["style"])),e.body&&this._replaceBrs(e.body),this._replaceNodeTags(this._getAllNodesWithTag(e,["font"]),"SPAN")},_nextNode:function(e){for(var t=e;t&&t.nodeType!=this.ELEMENT_NODE&&this.REGEXPS.whitespace.test(t.textContent);)t=t.nextSibling;return t},_replaceBrs:function(e){this._forEachNode(this._getAllNodesWithTag(e,["br"]),(function(e){for(var t=e.nextSibling,i=!1;(t=this._nextNode(t))&&"BR"==t.tagName;){i=!0;var n=t.nextSibling;t.parentNode.removeChild(t),t=n}if(i){var r=this._doc.createElement("p");for(e.parentNode.replaceChild(r,e),t=r.nextSibling;t;){if("BR"==t.tagName){var a=this._nextNode(t.nextSibling);if(a&&"BR"==a.tagName)break}if(!this._isPhrasingContent(t))break;var s=t.nextSibling;r.appendChild(t),t=s}for(;r.lastChild&&this._isWhitespace(r.lastChild);)r.removeChild(r.lastChild);"P"===r.parentNode.tagName&&this._setNodeTag(r.parentNode,"DIV")}}))},_setNodeTag:function(e,t){if(this.log("_setNodeTag",e,t),this._docJSDOMParser)return e.localName=t.toLowerCase(),e.tagName=t.toUpperCase(),e;for(var i=e.ownerDocument.createElement(t);e.firstChild;)i.appendChild(e.firstChild);e.parentNode.replaceChild(i,e),e.readability&&(i.readability=e.readability);for(var n=0;n!i.includes(e))).join(" ").length/n.join(" ").length:0},_checkByline:function(e,t){if(this._articleByline)return!1;if(void 0!==e.getAttribute)var i=e.getAttribute("rel"),n=e.getAttribute("itemprop");return!(!("author"===i||n&&-1!==n.indexOf("author")||this.REGEXPS.byline.test(t))||!this._isValidByline(e.textContent))&&(this._articleByline=e.textContent.trim(),!0)},_getNodeAncestors:function(e,t){t=t||0;for(var i=0,n=[];e.parentNode&&(n.push(e.parentNode),!t||++i!==t);)e=e.parentNode;return n},_grabArticle:function(e){this.log("**** grabArticle ****");var t=this._doc,i=null!==e;if(!(e=e||this._doc.body))return this.log("No body found in document. Abort."),null;for(var n=e.innerHTML;;){this.log("Starting grabArticle loop");var r=this._flagIsActive(this.FLAG_STRIP_UNLIKELYS),a=[],s=this._doc.documentElement;let V=!0;for(;s;){"HTML"===s.tagName&&(this._articleLang=s.getAttribute("lang"));var o=s.className+" "+s.id;if(this._isProbablyVisible(s))if("true"!=s.getAttribute("aria-modal")||"dialog"!=s.getAttribute("role"))if(this._checkByline(s,o))s=this._removeAndGetNext(s);else if(V&&this._headerDuplicatesTitle(s))this.log("Removing header: ",s.textContent.trim(),this._articleTitle.trim()),V=!1,s=this._removeAndGetNext(s);else{if(r){if(this.REGEXPS.unlikelyCandidates.test(o)&&!this.REGEXPS.okMaybeItsACandidate.test(o)&&!this._hasAncestorTag(s,"table")&&!this._hasAncestorTag(s,"code")&&"BODY"!==s.tagName&&"A"!==s.tagName){this.log("Removing unlikely candidate - "+o),s=this._removeAndGetNext(s);continue}if(this.UNLIKELY_ROLES.includes(s.getAttribute("role"))){this.log("Removing content with role "+s.getAttribute("role")+" - "+o),s=this._removeAndGetNext(s);continue}}if("DIV"!==s.tagName&&"SECTION"!==s.tagName&&"HEADER"!==s.tagName&&"H1"!==s.tagName&&"H2"!==s.tagName&&"H3"!==s.tagName&&"H4"!==s.tagName&&"H5"!==s.tagName&&"H6"!==s.tagName||!this._isElementWithoutContent(s)){if(-1!==this.DEFAULT_TAGS_TO_SCORE.indexOf(s.tagName)&&a.push(s),"DIV"===s.tagName){for(var l=null,c=s.firstChild;c;){var h=c.nextSibling;if(this._isPhrasingContent(c))null!==l?l.appendChild(c):this._isWhitespace(c)||(l=t.createElement("p"),s.replaceChild(l,c),l.appendChild(c));else if(null!==l){for(;l.lastChild&&this._isWhitespace(l.lastChild);)l.removeChild(l.lastChild);l=null}c=h}if(this._hasSingleTagInsideElement(s,"P")&&this._getLinkDensity(s)<.25){var d=s.children[0];s.parentNode.replaceChild(d,s),s=d,a.push(s)}else this._hasChildBlockElement(s)||(s=this._setNodeTag(s,"P"),a.push(s))}s=this._getNextNode(s)}else s=this._removeAndGetNext(s)}else s=this._removeAndGetNext(s);else this.log("Removing hidden node - "+o),s=this._removeAndGetNext(s)}var u=[];this._forEachNode(a,(function(e){if(e.parentNode&&void 0!==e.parentNode.tagName){var t=this._getInnerText(e);if(!(t.length<25)){var i=this._getNodeAncestors(e,5);if(0!==i.length){var n=0;n+=1,n+=t.split(this.REGEXPS.commas).length,n+=Math.min(Math.floor(t.length/100),3),this._forEachNode(i,(function(e,t){if(e.tagName&&e.parentNode&&void 0!==e.parentNode.tagName){if(void 0===e.readability&&(this._initializeNode(e),u.push(e)),0===t)var i=1;else i=1===t?2:3*t;e.readability.contentScore+=n/i}}))}}}}));for(var g=[],f=0,p=u.length;fN.readability.contentScore){g.splice(b,0,m),g.length>this._nbTopCandidates&&g.pop();break}}}var E,y=g[0]||null,T=!1;if(null===y||"BODY"===y.tagName){for(y=t.createElement("DIV"),T=!0;e.firstChild;)this.log("Moving child out:",e.firstChild),y.appendChild(e.firstChild);e.appendChild(y),this._initializeNode(y)}else if(y){for(var v=[],A=1;A=.75&&v.push(this._getNodeAncestors(g[A]));if(v.length>=3)for(E=y.parentNode;"BODY"!==E.tagName;){for(var S=0,C=0;C=3){y=E;break}E=E.parentNode}y.readability||this._initializeNode(y),E=y.parentNode;for(var L=y.readability.contentScore,x=L/3;"BODY"!==E.tagName;)if(E.readability){var R=E.readability.contentScore;if(RL){y=E;break}L=E.readability.contentScore,E=E.parentNode}else E=E.parentNode;for(E=y.parentNode;"BODY"!=E.tagName&&1==E.children.length;)E=(y=E).parentNode;y.readability||this._initializeNode(y)}var O=t.createElement("DIV");i&&(O.id="readability-content");for(var D=Math.max(10,.2*y.readability.contentScore),I=(E=y.parentNode).children,w=0,P=I.length;w=D)B=!0;else if("P"===k.nodeName){var H=this._getLinkDensity(k),G=this._getInnerText(k),U=G.length;(U>80&&H<.25||U<80&&U>0&&0===H&&-1!==G.search(/\.( |$)/))&&(B=!0)}}B&&(this.log("Appending node:",k),-1===this.ALTER_TO_DIV_EXCEPTIONS.indexOf(k.nodeName)&&(this.log("Altering sibling:",k,"to div."),k=this._setNodeTag(k,"DIV")),O.appendChild(k),I=E.children,w-=1,P-=1)}if(this._debug&&this.log("Article content pre-prep: "+O.innerHTML),this._prepArticle(O),this._debug&&this.log("Article content post-prep: "+O.innerHTML),T)y.id="readability-page-1",y.className="page";else{var $=t.createElement("DIV");for($.id="readability-page-1",$.className="page";O.firstChild;)$.appendChild(O.firstChild);O.appendChild($)}this._debug&&this.log("Article content after paging: "+O.innerHTML);var j=!0,F=this._getInnerText(O,!0).length;if(F0&&e.length<100)},_unescapeHtmlEntities:function(e){if(!e)return e;var t=this.HTML_ESCAPE_MAP;return e.replace(/&(quot|amp|apos|lt|gt);/g,(function(e,i){return t[i]})).replace(/&#(?:x([0-9a-z]{1,4})|([0-9]{1,4}));/gi,(function(e,t,i){var n=parseInt(t||i,t?16:10);return String.fromCharCode(n)}))},_getJSONLD:function(e){var t,i=this._getAllNodesWithTag(e,["script"]);return this._forEachNode(i,(function(e){if(!t&&"application/ld+json"===e.getAttribute("type"))try{var i=e.textContent.replace(/^\s*\s*$/g,""),n=JSON.parse(i);if(!n["@context"]||!n["@context"].match(/^https?\:\/\/schema\.org$/))return;if(!n["@type"]&&Array.isArray(n["@graph"])&&(n=n["@graph"].find((function(e){return(e["@type"]||"").match(this.REGEXPS.jsonLdArticleTypes)}))),!n||!n["@type"]||!n["@type"].match(this.REGEXPS.jsonLdArticleTypes))return;if(t={},"string"==typeof n.name&&"string"==typeof n.headline&&n.name!==n.headline){var r=this._getArticleTitle(),a=this._textSimilarity(n.name,r)>.75,s=this._textSimilarity(n.headline,r)>.75;t.title=s&&!a?n.headline:n.name}else"string"==typeof n.name?t.title=n.name.trim():"string"==typeof n.headline&&(t.title=n.headline.trim());return n.author&&("string"==typeof n.author.name?t.byline=n.author.name.trim():Array.isArray(n.author)&&n.author[0]&&"string"==typeof n.author[0].name&&(t.byline=n.author.filter((function(e){return e&&"string"==typeof e.name})).map((function(e){return e.name.trim()})).join(", "))),"string"==typeof n.description&&(t.excerpt=n.description.trim()),n.publisher&&"string"==typeof n.publisher.name&&(t.siteName=n.publisher.name.trim()),void("string"==typeof n.datePublished&&(t.datePublished=n.datePublished.trim()))}catch(e){this.log(e.message)}})),t||{}},_getArticleMetadata:function(e){var t={},i={},n=this._doc.getElementsByTagName("meta"),r=/\s*(article|dc|dcterm|og|twitter)\s*:\s*(author|creator|description|published_time|title|site_name)\s*/gi,a=/^\s*(?:(dc|dcterm|og|twitter|weibo:(article|webpage))\s*[\.:]\s*)?(author|creator|description|title|site_name)\s*$/i;return this._forEachNode(n,(function(e){var t=e.getAttribute("name"),n=e.getAttribute("property"),s=e.getAttribute("content");if(s){var o=null,l=null;n&&(o=n.match(r))&&(l=o[0].toLowerCase().replace(/\s/g,""),i[l]=s.trim()),!o&&t&&a.test(t)&&(l=t,s&&(l=l.toLowerCase().replace(/\s/g,"").replace(/\./g,":"),i[l]=s.trim()))}})),t.title=e.title||i["dc:title"]||i["dcterm:title"]||i["og:title"]||i["weibo:article:title"]||i["weibo:webpage:title"]||i.title||i["twitter:title"],t.title||(t.title=this._getArticleTitle()),t.byline=e.byline||i["dc:creator"]||i["dcterm:creator"]||i.author,t.excerpt=e.excerpt||i["dc:description"]||i["dcterm:description"]||i["og:description"]||i["weibo:article:description"]||i["weibo:webpage:description"]||i.description||i["twitter:description"],t.siteName=e.siteName||i["og:site_name"],t.publishedTime=e.datePublished||i["article:published_time"]||null,t.title=this._unescapeHtmlEntities(t.title),t.byline=this._unescapeHtmlEntities(t.byline),t.excerpt=this._unescapeHtmlEntities(t.excerpt),t.siteName=this._unescapeHtmlEntities(t.siteName),t.publishedTime=this._unescapeHtmlEntities(t.publishedTime),t},_isSingleImage:function(e){return"IMG"===e.tagName||1===e.children.length&&""===e.textContent.trim()&&this._isSingleImage(e.children[0])},_unwrapNoscriptImages:function(e){var t=Array.from(e.getElementsByTagName("img"));this._forEachNode(t,(function(e){for(var t=0;t0&&r>i)return!1;if(e.parentNode.tagName===t&&(!n||n(e.parentNode)))return!0;e=e.parentNode,r++}return!1},_getRowAndColumnCount:function(e){for(var t=0,i=0,n=e.getElementsByTagName("tr"),r=0;r0)n._readabilityDataTable=!0;else{if(["col","colgroup","tfoot","thead","th"].some((function(e){return!!n.getElementsByTagName(e)[0]})))this.log("Data table because found data-y descendant"),n._readabilityDataTable=!0;else if(n.getElementsByTagName("table")[0])n._readabilityDataTable=!1;else{var a=this._getRowAndColumnCount(n);a.rows>=10||a.columns>4?n._readabilityDataTable=!0:n._readabilityDataTable=a.rows*a.columns>10}}}else n._readabilityDataTable=!1;else n._readabilityDataTable=!1}},_fixLazyImages:function(e){this._forEachNode(this._getAllNodesWithTag(e,["img","picture","figure"]),(function(e){if(e.src&&this.REGEXPS.b64DataUrl.test(e.src)){if("image/svg+xml"===this.REGEXPS.b64DataUrl.exec(e.src)[1])return;for(var t=!1,i=0;in+=this._getInnerText(e,!0).length)),n/i},_cleanConditionally:function(e,t){this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)&&this._removeNodes(this._getAllNodesWithTag(e,[t]),(function(e){var i=function(e){return e._readabilityDataTable},n="ul"===t||"ol"===t;if(!n){var r=0,a=this._getAllNodesWithTag(e,["ul","ol"]);this._forEachNode(a,(e=>r+=this._getInnerText(e).length)),n=r/this._getInnerText(e).length>.9}if("table"===t&&i(e))return!1;if(this._hasAncestorTag(e,"table",-1,i))return!1;if(this._hasAncestorTag(e,"code"))return!1;var s=this._getClassWeight(e);this.log("Cleaning Conditionally",e);if(s+0<0)return!0;if(this._getCharCount(e,",")<10){for(var o=e.getElementsByTagName("p").length,l=e.getElementsByTagName("img").length,c=e.getElementsByTagName("li").length-100,h=e.getElementsByTagName("input").length,d=this._getTextDensity(e,["h1","h2","h3","h4","h5","h6"]),u=0,g=this._getAllNodesWithTag(e,["object","embed","iframe"]),f=0;f1&&o/l<.5&&!this._hasAncestorTag(e,"figure")||!n&&c>o||h>Math.floor(o/3)||!n&&d<.9&&_<25&&(0===l||l>2)&&!this._hasAncestorTag(e,"figure")||!n&&s<25&&m>.2||s>=25&&m>.5||1===u&&_<75||u>1;if(n&&b){for(var N=0;N1)return b}if(l==e.getElementsByTagName("li").length)return!1}return b}return!1}))},_cleanMatchedNodes:function(e,t){for(var i=this._getNextNode(e,!0),n=this._getNextNode(e);n&&n!=i;)n=t.call(this,n,n.className+" "+n.id)?this._removeAndGetNext(n):this._getNextNode(n)},_cleanHeaders:function(e){let t=this._getAllNodesWithTag(e,["h1","h2"]);this._removeNodes(t,(function(e){let t=this._getClassWeight(e)<0;return t&&this.log("Removing header with low class weight:",e),t}))},_headerDuplicatesTitle:function(e){if("H1"!=e.tagName&&"H2"!=e.tagName)return!1;var t=this._getInnerText(e,!1);return this.log("Evaluating similarity of header:",t,this._articleTitle),this._textSimilarity(this._articleTitle,t)>.75},_flagIsActive:function(e){return(this._flags&e)>0},_removeFlag:function(e){this._flags=this._flags&~e},_isProbablyVisible:function(e){return(!e.style||"none"!=e.style.display)&&(!e.style||"hidden"!=e.style.visibility)&&!e.hasAttribute("hidden")&&(!e.hasAttribute("aria-hidden")||"true"!=e.getAttribute("aria-hidden")||e.className&&e.className.indexOf&&-1!==e.className.indexOf("fallback-image"))},parse:function(){if(this._maxElemsToParse>0){var e=this._doc.getElementsByTagName("*").length;if(e>this._maxElemsToParse)throw new Error("Aborting parsing document; "+e+" elements found")}this._unwrapNoscriptImages(this._doc);var t=this._disableJSONLD?{}:this._getJSONLD(this._doc);this._removeScripts(this._doc),this._prepDocument();var i=this._getArticleMetadata(t);this._articleTitle=i.title;var n=this._grabArticle();if(!n)return null;if(this.log("Grabbed: "+n.innerHTML),this._postProcessContent(n),!i.excerpt){var r=n.getElementsByTagName("p");r.length>0&&(i.excerpt=r[0].textContent.trim())}var a=n.textContent;return{title:this._articleTitle,byline:i.byline||this._articleByline,dir:this._articleDir,lang:this._articleLang,content:this._serializer(n),textContent:a,length:a.length,excerpt:i.excerpt,siteName:i.siteName||this._articleSiteName,publishedTime:i.publishedTime}}},e.exports=t},396:(e,t,i)=>{var n=i(238),r=i(804);e.exports={Readability:n,isProbablyReaderable:r}},481:e=>{e.exports=function(e,t){(t=t||{}).listUnicodeChar=!!t.hasOwnProperty("listUnicodeChar")&&t.listUnicodeChar,t.stripListLeaders=!t.hasOwnProperty("stripListLeaders")||t.stripListLeaders,t.gfm=!t.hasOwnProperty("gfm")||t.gfm,t.useImgAltText=!t.hasOwnProperty("useImgAltText")||t.useImgAltText,t.abbr=!!t.hasOwnProperty("abbr")&&t.abbr,t.replaceLinksWithURL=!!t.hasOwnProperty("replaceLinksWithURL")&&t.replaceLinksWithURL,t.htmlTagsToSkip=t.hasOwnProperty("htmlTagsToSkip")?t.htmlTagsToSkip:[],t.throwError=!!t.hasOwnProperty("throwError")&&t.throwError;var i=e||"";i=i.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*/gm,"");try{t.stripListLeaders&&(i=t.listUnicodeChar?i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,t.listUnicodeChar+" $1"):i.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,"$1")),t.gfm&&(i=i.replace(/\n={2,}/g,"\n").replace(/~{3}.*\n/g,"").replace(/~~/g,"").replace(/`{3}.*\n/g,"")),t.abbr&&(i=i.replace(/\*\[.*\]:.*\n/,"")),i=i.replace(/<[^>]*>/g,"");var n=new RegExp("<[^>]*>","g");if(t.htmlTagsToSkip.length>0){var r="(?!"+t.htmlTagsToSkip.join("|")+")";n=new RegExp("<"+r+"[^>]*>","ig")}i=i.replace(n,"").replace(/^[=\-]{2,}\s*$/g,"").replace(/\[\^.+?\](\: .*?$)?/g,"").replace(/\s{0,2}\[.*?\]: .*?$/g,"").replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g,t.useImgAltText?"$1":"").replace(/\[([^\]]*?)\][\[\(].*?[\]\)]/g,t.replaceLinksWithURL?"$2":"$1").replace(/^(\n)?\s{0,3}>\s?/gm,"$1").replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g,"").replace(/^(\n)?\s{0,}#{1,6}\s*( (.+))? +#+$|^(\n)?\s{0,}#{1,6}\s*( (.+))?$/gm,"$1$3$4$6").replace(/([\*]+)(\S)(.*?\S)??\1/g,"$2$3").replace(/(^|\W)([_]+)(\S)(.*?\S)??\2($|\W)/g,"$1$3$4$5").replace(/(`{3,})(.*?)\1/gm,"$2").replace(/`(.+?)`/g,"$1").replace(/~(.*?)~/g,"$1")}catch(i){if(t.throwError)throw i;return console.error("remove-markdown encountered error: %s",i),e}return i}}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,i),a.exports}i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";i.r(n),i.d(n,{parseReaderable:()=>U});var e=i(396);function t(e,t){return Array(t+1).join(e)}var r=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"];function a(e){return c(e,r)}var s=["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"];function o(e){return c(e,s)}var l=["A","TABLE","THEAD","TBODY","TFOOT","TH","TD","IFRAME","SCRIPT","AUDIO","VIDEO"];function c(e,t){return t.indexOf(e.nodeName)>=0}function h(e,t){return e.getElementsByTagName&&t.some((function(t){return e.getElementsByTagName(t).length}))}var d={};function u(e){return e?e.replace(/(\n+\s*)+/g,"\n"):""}function g(e){for(var t in this.options=e,this._keep=[],this._remove=[],this.blankRule={replacement:e.blankReplacement},this.keepReplacement=e.keepReplacement,this.defaultRule={replacement:e.defaultReplacement},this.array=[],e.rules)this.array.push(e.rules[t])}function f(e,t,i){for(var n=0;n-1)return!0}else{if("function"!=typeof n)throw new TypeError("`filter` needs to be a string, array, or function");if(n.call(e,t,i))return!0}}function m(e){var t=e.nextSibling||e.parentNode;return e.parentNode.removeChild(e),t}function _(e,t,i){return e&&e.parentNode===t||i(t)?t.nextSibling||t.parentNode:t.firstChild||t.nextSibling||t.parentNode}d.paragraph={filter:"p",replacement:function(e){return"\n\n"+e+"\n\n"}},d.lineBreak={filter:"br",replacement:function(e,t,i){return i.br+"\n"}},d.heading={filter:["h1","h2","h3","h4","h5","h6"],replacement:function(e,i,n){var r=Number(i.nodeName.charAt(1));return"setext"===n.headingStyle&&r<3?"\n\n"+e+"\n"+t(1===r?"=":"-",e.length)+"\n\n":"\n\n"+t("#",r)+" "+e+"\n\n"}},d.blockquote={filter:"blockquote",replacement:function(e){return"\n\n"+(e=(e=e.replace(/^\n+|\n+$/g,"")).replace(/^/gm,"> "))+"\n\n"}},d.list={filter:["ul","ol"],replacement:function(e,t){var i=t.parentNode;return"LI"===i.nodeName&&i.lastElementChild===t?"\n"+e:"\n\n"+e+"\n\n"}},d.listItem={filter:"li",replacement:function(e,t,i){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n").replace(/\n/gm,"\n ");var n=i.bulletListMarker+" ",r=t.parentNode;if("OL"===r.nodeName){var a=r.getAttribute("start"),s=Array.prototype.indexOf.call(r.children,t);n=(a?Number(a)+s:s+1)+". "}return n+e+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}},d.indentedCodeBlock={filter:function(e,t){return"indented"===t.codeBlockStyle&&"PRE"===e.nodeName&&e.firstChild&&"CODE"===e.firstChild.nodeName},replacement:function(e,t,i){return"\n\n "+t.firstChild.textContent.replace(/\n/g,"\n ")+"\n\n"}},d.fencedCodeBlock={filter:function(e,t){return"fenced"===t.codeBlockStyle&&"PRE"===e.nodeName&&e.firstChild&&"CODE"===e.firstChild.nodeName},replacement:function(e,i,n){for(var r,a=((i.firstChild.getAttribute("class")||"").match(/language-(\S+)/)||[null,""])[1],s=i.firstChild.textContent,o=n.fence.charAt(0),l=3,c=new RegExp("^"+o+"{3,}","gm");r=c.exec(s);)r[0].length>=l&&(l=r[0].length+1);var h=t(o,l);return"\n\n"+h+a+"\n"+s.replace(/\n$/,"")+"\n"+h+"\n\n"}},d.horizontalRule={filter:"hr",replacement:function(e,t,i){return"\n\n"+i.hr+"\n\n"}},d.inlineLink={filter:function(e,t){return"inlined"===t.linkStyle&&"A"===e.nodeName&&e.getAttribute("href")},replacement:function(e,t){var i=t.getAttribute("href");i&&(i=i.replace(/([()])/g,"\\$1"));var n=u(t.getAttribute("title"));return n&&(n=' "'+n.replace(/"/g,'\\"')+'"'),"["+e+"]("+i+n+")"}},d.referenceLink={filter:function(e,t){return"referenced"===t.linkStyle&&"A"===e.nodeName&&e.getAttribute("href")},replacement:function(e,t,i){var n,r,a=t.getAttribute("href"),s=u(t.getAttribute("title"));switch(s&&(s=' "'+s+'"'),i.linkReferenceStyle){case"collapsed":n="["+e+"][]",r="["+e+"]: "+a+s;break;case"shortcut":n="["+e+"]",r="["+e+"]: "+a+s;break;default:var o=this.references.length+1;n="["+e+"]["+o+"]",r="["+o+"]: "+a+s}return this.references.push(r),n},references:[],append:function(e){var t="";return this.references.length&&(t="\n\n"+this.references.join("\n")+"\n\n",this.references=[]),t}},d.emphasis={filter:["em","i"],replacement:function(e,t,i){return e.trim()?i.emDelimiter+e+i.emDelimiter:""}},d.strong={filter:["strong","b"],replacement:function(e,t,i){return e.trim()?i.strongDelimiter+e+i.strongDelimiter:""}},d.code={filter:function(e){var t=e.previousSibling||e.nextSibling,i="PRE"===e.parentNode.nodeName&&!t;return"CODE"===e.nodeName&&!i},replacement:function(e){if(!e)return"";e=e.replace(/\r?\n|\r/g," ");for(var t=/^`|^ .*?[^ ].* $|`$/.test(e)?" ":"",i="`",n=e.match(/`+/gm)||[];-1!==n.indexOf(i);)i+="`";return i+t+e+t+i}},d.image={filter:"img",replacement:function(e,t){var i=u(t.getAttribute("alt")),n=t.getAttribute("src")||"",r=u(t.getAttribute("title"));return n?"!["+i+"]("+n+(r?' "'+r+'"':"")+")":""}},g.prototype={add:function(e,t){this.array.unshift(t)},keep:function(e){this._keep.unshift({filter:e,replacement:this.keepReplacement})},remove:function(e){this._remove.unshift({filter:e,replacement:function(){return""}})},forNode:function(e){return e.isBlank?this.blankRule:(t=f(this.array,e,this.options))||(t=f(this._keep,e,this.options))||(t=f(this._remove,e,this.options))?t:this.defaultRule;var t},forEach:function(e){for(var t=0;t'+e+"","text/html").getElementById("turndown-root"):i=e.cloneNode(!0);return function(e){var t=e.element,i=e.isBlock,n=e.isVoid,r=e.isPre||function(e){return"PRE"===e.nodeName};if(t.firstChild&&!r(t)){for(var a=null,s=!1,o=null,l=_(o,t,r);l!==t;){if(3===l.nodeType||4===l.nodeType){var c=l.data.replace(/[ \r\n\t]+/g," ");if(a&&!/ $/.test(a.data)||s||" "!==c[0]||(c=c.substr(1)),!c){l=m(l);continue}l.data=c,a=l}else{if(1!==l.nodeType){l=m(l);continue}i(l)||"BR"===l.nodeName?(a&&(a.data=a.data.replace(/ $/,"")),a=null,s=!1):n(l)||r(l)?(a=null,s=!0):a&&(s=!1)}var h=_(o,l,r);o=l,l=h}a&&(a.data=a.data.replace(/ $/,""),a.data||m(a))}}({element:i,isBlock:a,isVoid:o,isPre:t.preformattedCode?v:null}),i}function v(e){return"PRE"===e.nodeName||"CODE"===e.nodeName}function A(e,t){return e.isBlock=a(e),e.isCode="CODE"===e.nodeName||e.parentNode.isCode,e.isBlank=function(e){return!o(e)&&!function(e){return c(e,l)}(e)&&/^\s*$/i.test(e.textContent)&&!function(e){return h(e,s)}(e)&&!function(e){return h(e,l)}(e)}(e),e.flankingWhitespace=function(e,t){if(e.isBlock||t.preformattedCode&&e.isCode)return{leading:"",trailing:""};var i=(n=e.textContent,r=n.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/),{leading:r[1],leadingAscii:r[2],leadingNonAscii:r[3],trailing:r[4],trailingNonAscii:r[5],trailingAscii:r[6]});var n,r;i.leadingAscii&&S("left",e,t)&&(i.leading=i.leadingNonAscii);i.trailingAscii&&S("right",e,t)&&(i.trailing=i.trailingNonAscii);return{leading:i.leading,trailing:i.trailing}}(e,t),e}function S(e,t,i){var n,r,s;return"left"===e?(n=t.previousSibling,r=/ $/):(n=t.nextSibling,r=/^ /),n&&(3===n.nodeType?s=r.test(n.nodeValue):i.preformattedCode&&"CODE"===n.nodeName?s=!1:1!==n.nodeType||a(n)||(s=r.test(n.textContent))),s}var C=Array.prototype.reduce,L=[[/\\/g,"\\\\"],[/\*/g,"\\*"],[/^-/g,"\\-"],[/^\+ /g,"\\+ "],[/^(=+)/g,"\\$1"],[/^(#{1,6}) /g,"\\$1 "],[/`/g,"\\`"],[/^~~~/g,"\\~~~"],[/\[/g,"\\["],[/\]/g,"\\]"],[/^>/g,"\\>"],[/_/g,"\\_"],[/^(\d+)\. /g,"$1\\. "]];function x(e){if(!(this instanceof x))return new x(e);var t={rules:d,headingStyle:"setext",hr:"* * *",bulletListMarker:"*",codeBlockStyle:"indented",fence:"```",emDelimiter:"_",strongDelimiter:"**",linkStyle:"inlined",linkReferenceStyle:"full",br:" ",preformattedCode:!1,blankReplacement:function(e,t){return t.isBlock?"\n\n":""},keepReplacement:function(e,t){return t.isBlock?"\n\n"+t.outerHTML+"\n\n":t.outerHTML},defaultReplacement:function(e,t){return t.isBlock?"\n\n"+e+"\n\n":e}};this.options=function(e){for(var t=1;t0&&"\n"===e[t-1];)t--;return e.substring(0,t)}(e),n=t.replace(/^\n*/,""),r=Math.max(e.length-i.length,t.length-n.length);return i+"\n\n".substring(0,r)+n}x.prototype={turndown:function(e){if(!function(e){return null!=e&&("string"==typeof e||e.nodeType&&(1===e.nodeType||9===e.nodeType||11===e.nodeType))}(e))throw new TypeError(e+" is not a string, or an element/document/fragment node.");if(""===e)return"";var t=R.call(this,new T(e,this.options));return O.call(this,t)},use:function(e){if(Array.isArray(e))for(var t=0;t - readability [6 Nov 2024 at 17:38] + readability [8 Jan 2025 at 20:49] diff --git a/packages/flutter_mozilla_components/javascript/readability/dist/stats.json b/packages/flutter_mozilla_components/javascript/readability/dist/stats.json index 691c5f88..78a2bed7 100644 --- a/packages/flutter_mozilla_components/javascript/readability/dist/stats.json +++ b/packages/flutter_mozilla_components/javascript/readability/dist/stats.json @@ -1,10 +1,10 @@ { - "hash": "e972bd2742adaf1dd89a", + "hash": "a0b270ca122ccf1c69b1", "version": "5.96.1", - "time": 1769, - "builtAt": 1730911086642, + "time": 676, + "builtAt": 1736365755248, "publicPath": "auto", - "outputPath": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/dist", + "outputPath": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/dist", "assetsByChunkName": { "main": [ "readability.min.js" @@ -14,14 +14,14 @@ { "type": "asset", "name": "readability.min.js", - "size": 48006, + "size": 48065, "emitted": true, "comparedForEmit": false, "cached": false, "info": { "javascriptModule": false, "minimized": true, - "size": 48006 + "size": 48065 }, "chunkNames": [ "main" @@ -43,9 +43,9 @@ "initial": true, "entry": true, "recorded": false, - "size": 120760, + "size": 120878, "sizes": { - "javascript": 120090, + "javascript": 120208, "runtime": 670 }, "names": [ @@ -59,7 +59,7 @@ "readability.min.js" ], "auxiliaryFiles": [], - "hash": "e213d94771310f354882", + "hash": "fd19b958f18c40df17b3", "childrenByOrder": {}, "id": 792, "siblings": [], @@ -78,9 +78,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "name": "./node_modules/@mozilla/readability/Readability-readerable.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "index": 3, "preOrderIndex": 3, "index2": 1, @@ -89,16 +89,16 @@ "optional": false, "orphan": false, "dependent": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "issuerName": "./node_modules/@mozilla/readability/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null }, { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", "id": 396 } @@ -114,10 +114,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "module": "./node_modules/@mozilla/readability/Readability-readerable.js", "moduleName": "./node_modules/@mozilla/readability/Readability-readerable.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "resolvedModule": "./node_modules/@mozilla/readability/Readability-readerable.js", "type": "cjs self exports reference", "active": true, @@ -128,10 +128,10 @@ "resolvedModuleId": 804 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs require", "active": true, @@ -163,9 +163,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "name": "./node_modules/@mozilla/readability/Readability.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "index": 2, "preOrderIndex": 2, "index2": 0, @@ -174,16 +174,16 @@ "optional": false, "orphan": false, "dependent": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "issuerName": "./node_modules/@mozilla/readability/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null }, { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", "id": 396 } @@ -199,10 +199,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "module": "./node_modules/@mozilla/readability/Readability.js", "moduleName": "./node_modules/@mozilla/readability/Readability.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "resolvedModule": "./node_modules/@mozilla/readability/Readability.js", "type": "cjs self exports reference", "active": true, @@ -213,10 +213,10 @@ "resolvedModuleId": 238 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs require", "active": true, @@ -248,9 +248,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "index": 1, "preOrderIndex": 1, "index2": 2, @@ -259,11 +259,11 @@ "optional": false, "orphan": false, "dependent": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -279,10 +279,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs self exports reference", "active": true, @@ -293,30 +293,44 @@ "resolvedModuleId": 396 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony side effect evaluation", "active": true, "explanation": "", "userRequest": "@mozilla/readability", - "loc": "7:0-51", + "loc": "7:0-73", "moduleId": 922, "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony import specifier", "active": true, "explanation": "", "userRequest": "@mozilla/readability", - "loc": "18:19-30", + "loc": "13:17-37", + "moduleId": 922, + "resolvedModuleId": null + }, + { + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "module": "./src/index.js + 1 modules", + "moduleName": "./src/index.js + 1 modules", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModule": "./src/index.js", + "type": "harmony import specifier", + "active": true, + "explanation": "", + "userRequest": "@mozilla/readability", + "loc": "19:19-30", "moduleId": 922, "resolvedModuleId": null } @@ -342,9 +356,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "name": "./node_modules/remove-markdown/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "index": 5, "preOrderIndex": 5, "index2": 4, @@ -353,11 +367,11 @@ "optional": false, "orphan": false, "dependent": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -373,10 +387,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "cjs require", "active": true, @@ -387,10 +401,10 @@ "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "module": "./node_modules/remove-markdown/index.js", "moduleName": "./node_modules/remove-markdown/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "resolvedModule": "./node_modules/remove-markdown/index.js", "type": "cjs self exports reference", "active": true, @@ -414,17 +428,17 @@ "type": "module", "moduleType": "javascript/esm", "layer": null, - "size": 27608, + "size": 27726, "sizes": { - "javascript": 27608 + "javascript": 27726 }, "built": true, "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "name": "./src/index.js + 1 modules", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "index": 0, "preOrderIndex": 0, "index2": 5, @@ -483,17 +497,17 @@ "type": "module", "moduleType": "javascript/auto", "layer": null, - "size": 2546, + "size": 2664, "sizes": { - "javascript": 2546 + "javascript": 2664 }, "built": true, "codeGenerated": false, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "index": 0, "preOrderIndex": 0, "index2": 5, @@ -534,9 +548,9 @@ "codeGenerated": false, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "name": "./node_modules/turndown/lib/turndown.browser.es.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "index": 4, "preOrderIndex": 4, "index2": 3, @@ -545,11 +559,11 @@ "optional": false, "orphan": false, "dependent": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -563,10 +577,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony side effect evaluation", "active": true, @@ -577,10 +591,10 @@ "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony import specifier", "active": true, @@ -729,17 +743,17 @@ "type": "module", "moduleType": "javascript/esm", "layer": null, - "size": 27608, + "size": 27726, "sizes": { - "javascript": 27608 + "javascript": 27726 }, "built": true, "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "name": "./src/index.js + 1 modules", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "index": 0, "preOrderIndex": 0, "index2": 5, @@ -797,17 +811,17 @@ "type": "module", "moduleType": "javascript/auto", "layer": null, - "size": 2546, + "size": 2664, "sizes": { - "javascript": 2546 + "javascript": 2664 }, "built": true, "codeGenerated": false, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "index": 0, "preOrderIndex": 0, "index2": 5, @@ -847,9 +861,9 @@ "codeGenerated": false, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "name": "./node_modules/turndown/lib/turndown.browser.es.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "index": 4, "preOrderIndex": 4, "index2": 3, @@ -857,11 +871,11 @@ "cacheable": true, "optional": false, "orphan": false, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -875,10 +889,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony side effect evaluation", "active": true, @@ -889,10 +903,10 @@ "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony import specifier", "active": true, @@ -928,9 +942,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "index": 1, "preOrderIndex": 1, "index2": 2, @@ -938,11 +952,11 @@ "cacheable": true, "optional": false, "orphan": false, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -958,10 +972,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs self exports reference", "active": true, @@ -972,30 +986,44 @@ "resolvedModuleId": 396 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony side effect evaluation", "active": true, "explanation": "", "userRequest": "@mozilla/readability", - "loc": "7:0-51", + "loc": "7:0-73", "moduleId": 922, "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony import specifier", "active": true, "explanation": "", "userRequest": "@mozilla/readability", - "loc": "18:19-30", + "loc": "13:17-37", + "moduleId": 922, + "resolvedModuleId": null + }, + { + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "module": "./src/index.js + 1 modules", + "moduleName": "./src/index.js + 1 modules", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModule": "./src/index.js", + "type": "harmony import specifier", + "active": true, + "explanation": "", + "userRequest": "@mozilla/readability", + "loc": "19:19-30", "moduleId": 922, "resolvedModuleId": null } @@ -1021,9 +1049,9 @@ "codeGenerated": false, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "name": "./node_modules/turndown/lib/turndown.browser.es.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/turndown/lib/turndown.browser.es.js", "index": 4, "preOrderIndex": 4, "index2": 3, @@ -1031,11 +1059,11 @@ "cacheable": true, "optional": false, "orphan": true, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -1049,10 +1077,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony side effect evaluation", "active": true, @@ -1063,10 +1091,10 @@ "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "module": "./src/index.js", "moduleName": "./src/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "harmony import specifier", "active": true, @@ -1100,9 +1128,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "name": "./node_modules/remove-markdown/index.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "index": 5, "preOrderIndex": 5, "index2": 4, @@ -1110,11 +1138,11 @@ "cacheable": true, "optional": false, "orphan": false, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "issuerName": "./src/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null } @@ -1130,10 +1158,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js|b30ecb37559a8d7773ad4932c7b03100", "module": "./src/index.js + 1 modules", "moduleName": "./src/index.js + 1 modules", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "resolvedModule": "./src/index.js", "type": "cjs require", "active": true, @@ -1144,10 +1172,10 @@ "resolvedModuleId": null }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "module": "./node_modules/remove-markdown/index.js", "moduleName": "./node_modules/remove-markdown/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/remove-markdown/index.js", "resolvedModule": "./node_modules/remove-markdown/index.js", "type": "cjs self exports reference", "active": true, @@ -1179,9 +1207,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "name": "./node_modules/@mozilla/readability/Readability.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "index": 2, "preOrderIndex": 2, "index2": 0, @@ -1189,16 +1217,16 @@ "cacheable": true, "optional": false, "orphan": false, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "issuerName": "./node_modules/@mozilla/readability/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null }, { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", "id": 396 } @@ -1214,10 +1242,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "module": "./node_modules/@mozilla/readability/Readability.js", "moduleName": "./node_modules/@mozilla/readability/Readability.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability.js", "resolvedModule": "./node_modules/@mozilla/readability/Readability.js", "type": "cjs self exports reference", "active": true, @@ -1228,10 +1256,10 @@ "resolvedModuleId": 238 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs require", "active": true, @@ -1263,9 +1291,9 @@ "codeGenerated": true, "buildTimeExecuted": false, "cached": false, - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "name": "./node_modules/@mozilla/readability/Readability-readerable.js", - "nameForCondition": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "nameForCondition": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "index": 3, "preOrderIndex": 3, "index2": 1, @@ -1273,16 +1301,16 @@ "cacheable": true, "optional": false, "orphan": false, - "issuer": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "issuer": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "issuerName": "./node_modules/@mozilla/readability/index.js", "issuerPath": [ { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/src/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[0].use!/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/src/index.js", "name": "./src/index.js", "id": null }, { - "identifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "identifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "name": "./node_modules/@mozilla/readability/index.js", "id": 396 } @@ -1298,10 +1326,10 @@ "assets": [], "reasons": [ { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "module": "./node_modules/@mozilla/readability/Readability-readerable.js", "moduleName": "./node_modules/@mozilla/readability/Readability-readerable.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/Readability-readerable.js", "resolvedModule": "./node_modules/@mozilla/readability/Readability-readerable.js", "type": "cjs self exports reference", "active": true, @@ -1312,10 +1340,10 @@ "resolvedModuleId": 804 }, { - "moduleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "moduleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "module": "./node_modules/@mozilla/readability/index.js", "moduleName": "./node_modules/@mozilla/readability/index.js", - "resolvedModuleIdentifier": "/home/fafre/Repos/kagi_bang_bang/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", + "resolvedModuleIdentifier": "/home/fafre/development/repos/lensai/packages/flutter_mozilla_components/javascript/readability/node_modules/@mozilla/readability/index.js", "resolvedModule": "./node_modules/@mozilla/readability/index.js", "type": "cjs require", "active": true, @@ -1450,11 +1478,11 @@ "assets": [ { "name": "readability.min.js", - "size": 48006 + "size": 48065 } ], "filteredAssets": 0, - "assetsSize": 48006, + "assetsSize": 48065, "auxiliaryAssets": [], "filteredAuxiliaryAssets": 0, "auxiliaryAssetsSize": 0, @@ -1472,11 +1500,11 @@ "assets": [ { "name": "readability.min.js", - "size": 48006 + "size": 48065 } ], "filteredAssets": 0, - "assetsSize": 48006, + "assetsSize": 48065, "auxiliaryAssets": [], "filteredAuxiliaryAssets": 0, "auxiliaryAssetsSize": 0, diff --git a/packages/flutter_mozilla_components/javascript/readability/package-lock.json b/packages/flutter_mozilla_components/javascript/readability/package-lock.json index 535bdc55..8952f9b0 100644 --- a/packages/flutter_mozilla_components/javascript/readability/package-lock.json +++ b/packages/flutter_mozilla_components/javascript/readability/package-lock.json @@ -2274,9 +2274,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/packages/flutter_mozilla_components/javascript/readability/src/index.js b/packages/flutter_mozilla_components/javascript/readability/src/index.js index 620e7968..1f545cc3 100644 --- a/packages/flutter_mozilla_components/javascript/readability/src/index.js +++ b/packages/flutter_mozilla_components/javascript/readability/src/index.js @@ -1,4 +1,4 @@ -import { Readability } from '@mozilla/readability'; +import { Readability, isProbablyReaderable } from '@mozilla/readability'; import TurndownService from 'turndown'; const removeMarkdown = require('remove-markdown'); @@ -7,6 +7,7 @@ const turndownService = new TurndownService(); function parseReaderable(document, options) { const clonedDoc = document.cloneNode(true); + const readable = isProbablyReaderable(clonedDoc); const fullMarkdown = turndownService.turndown(clonedDoc.body.innerHTML); @@ -23,6 +24,7 @@ function parseReaderable(document, options) { response = { ...response, + isProbablyReaderable: readable ? 1 : 0, extractedContentMarkdown: extractedMarkdown, extractedContentPlain: removeMarkdown(extractedMarkdown) }; diff --git a/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart b/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart index d6fd3b39..25f90a02 100644 --- a/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart +++ b/packages/flutter_mozilla_components/lib/src/pigeons/gecko.g.dart @@ -1135,6 +1135,7 @@ class TabContent { required this.tabId, this.fullContentMarkdown, this.fullContentPlain, + required this.isProbablyReaderable, this.extractedContentMarkdown, this.extractedContentPlain, }); @@ -1145,6 +1146,8 @@ class TabContent { String? fullContentPlain; + bool isProbablyReaderable; + String? extractedContentMarkdown; String? extractedContentPlain; @@ -1154,6 +1157,7 @@ class TabContent { tabId, fullContentMarkdown, fullContentPlain, + isProbablyReaderable, extractedContentMarkdown, extractedContentPlain, ]; @@ -1165,8 +1169,9 @@ class TabContent { tabId: result[0]! as String, fullContentMarkdown: result[1] as String?, fullContentPlain: result[2] as String?, - extractedContentMarkdown: result[3] as String?, - extractedContentPlain: result[4] as String?, + isProbablyReaderable: result[3]! as bool, + extractedContentMarkdown: result[4] as String?, + extractedContentPlain: result[5] as String?, ); } } diff --git a/packages/flutter_mozilla_components/pigeons/gecko.dart b/packages/flutter_mozilla_components/pigeons/gecko.dart index 4e4a6c15..a6cba69e 100644 --- a/packages/flutter_mozilla_components/pigeons/gecko.dart +++ b/packages/flutter_mozilla_components/pigeons/gecko.dart @@ -525,6 +525,7 @@ class TabContent { final String tabId; final String? fullContentMarkdown; final String? fullContentPlain; + final bool isProbablyReaderable; final String? extractedContentMarkdown; final String? extractedContentPlain; @@ -532,6 +533,7 @@ class TabContent { this.tabId, this.fullContentMarkdown, this.fullContentPlain, + this.isProbablyReaderable, this.extractedContentMarkdown, this.extractedContentPlain, );