@knight-lab/timelinejs 3.9.6 → 3.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/CONTRIBUTING.md +1 -1
- package/dist/css/fonts/font.abril-droidsans.css +27 -22
- package/dist/css/fonts/font.amatic-andika.css +15 -5
- package/dist/css/fonts/font.bevan-pontanosans.css +41 -4
- package/dist/css/fonts/font.bitter-raleway.css +234 -6
- package/dist/css/fonts/font.clicker-garamond.css +69 -4
- package/dist/css/fonts/font.dancing-ledger.css +22 -5
- package/dist/css/fonts/font.default.css +11 -7
- package/dist/css/fonts/font.fjalla-average.css +6 -4
- package/dist/css/fonts/font.lustria-lato.css +22 -5
- package/dist/css/fonts/font.medula-lato.css +24 -6
- package/dist/css/fonts/font.oldstandard.css +12 -3
- package/dist/css/fonts/font.opensans-gentiumbook.css +113 -15
- package/dist/css/fonts/font.playfair-faunaone.css +80 -12
- package/dist/css/fonts/font.playfair.css +85 -5
- package/dist/css/fonts/font.pt.css +11 -7
- package/dist/css/fonts/font.roboto-megrim.css +57 -5
- package/dist/css/fonts/font.rufina-sintony.css +10 -6
- package/dist/css/fonts/font.ubuntu.css +14 -4
- package/dist/css/fonts/font.unicaone-vollkorn.css +80 -7
- package/dist/css/timeline.css +10 -6
- package/dist/css/timeline.css.map +1 -1
- package/dist/embed/index.html +8 -1
- package/dist/js/timeline.js +1 -1
- package/dist/js/timeline.js.LICENSE.txt +1 -1
- package/dist/js/timeline.js.map +1 -1
- package/eleventy/node_modules/.package-lock.json +2197 -0
- package/eleventy/node_modules/@11ty/dependency-tree/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/dependency-tree/README.md +94 -0
- package/eleventy/node_modules/@11ty/dependency-tree/main.js +132 -0
- package/eleventy/node_modules/@11ty/dependency-tree/package.json +39 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/.github/workflows/ci.yml +22 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/.github/workflows/release.yml +24 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/README.md +40 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/main.js +98 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/package.json +38 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/circular-child.js +1 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/circular-parent.js +1 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/circular-self.js +2 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/empty.js +0 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/file.js +2 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/import-attributes.js +3 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/imported-secondary.js +3 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/imported.js +3 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/imported.json +3 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/nested-grandchild.js +1 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/stubs/nested.js +2 -0
- package/eleventy/node_modules/@11ty/dependency-tree-esm/test/test.js +35 -0
- package/eleventy/node_modules/@11ty/eleventy/CODE_OF_CONDUCT.md +48 -0
- package/eleventy/node_modules/@11ty/eleventy/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/eleventy/README.md +47 -0
- package/eleventy/node_modules/@11ty/eleventy/SECURITY.md +9 -0
- package/eleventy/node_modules/@11ty/eleventy/cmd.cjs +165 -0
- package/eleventy/node_modules/@11ty/eleventy/package.json +155 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Benchmark/Benchmark.js +55 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Benchmark/BenchmarkGroup.js +135 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js +73 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/ComputedData.js +121 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/ComputedDataProxy.js +131 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/ComputedDataQueue.js +64 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/ComputedDataTemplateString.js +70 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/TemplateData.js +737 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Data/TemplateDataInitialGlobalData.js +40 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Eleventy.js +1472 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyCommonJs.cjs +43 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyExtensionMap.js +284 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyFiles.js +517 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyServe.js +305 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyWatch.js +131 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EleventyWatchTargets.js +164 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Custom.js +338 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/FrontMatter/JavaScript.js +34 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Html.js +28 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/JavaScript.js +237 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Liquid.js +326 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Markdown.js +93 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js +447 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/TemplateEngine.js +184 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/TemplateEngineManager.js +197 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Engines/Util/ContextAugmenter.js +67 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/DuplicatePermalinkOutputError.js +9 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/EleventyBaseError.js +24 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/EleventyErrorHandler.js +151 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/EleventyErrorUtil.js +72 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/TemplateContentPrematureUseError.js +5 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/TemplateContentUnrenderedTemplateError.js +5 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Errors/UsingCircularTemplateContentReferenceError.js +5 -0
- package/eleventy/node_modules/@11ty/eleventy/src/EventBus.js +23 -0
- package/eleventy/node_modules/@11ty/eleventy/src/FileSystemSearch.js +102 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/GetCollectionItem.js +20 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/GetCollectionItemIndex.js +17 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/GetLocaleCollectionItem.js +47 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/Slug.js +14 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/Slugify.js +14 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Filters/Url.js +35 -0
- package/eleventy/node_modules/@11ty/eleventy/src/GlobalDependencyMap.js +424 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/HtmlBasePlugin.js +151 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/I18nPlugin.js +317 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/IdAttributePlugin.js +103 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/InputPathToUrl.js +177 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/Pagination.js +380 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js +481 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Template.js +1124 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateBehavior.js +85 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateCache.js +104 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateCollection.js +81 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateConfig.js +551 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateContent.js +712 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateFileSlug.js +57 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateGlob.js +35 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateLayout.js +242 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateLayoutPathResolver.js +136 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateMap.js +828 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplatePassthrough.js +339 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplatePassthroughManager.js +311 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplatePermalink.js +189 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateRender.js +294 -0
- package/eleventy/node_modules/@11ty/eleventy/src/TemplateWriter.js +518 -0
- package/eleventy/node_modules/@11ty/eleventy/src/UserConfig.js +1292 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/AsyncEventEmitter.js +75 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Compatibility.js +55 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ConsoleLogger.js +126 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js +24 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/DateGitLastUpdated.js +28 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/DirContains.js +9 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/EsmResolver.js +51 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/EventBusUtil.js +26 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ExistsCache.js +82 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/FilePathUtil.js +19 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/GetJavaScriptData.js +30 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/GlobMatcher.js +21 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/HtmlTransformer.js +158 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ImportJsonSync.js +64 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/IsAsyncFunction.js +5 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/JavaScriptDependencies.js +55 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/MemoizeFunction.js +26 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/DeepFreeze.js +20 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/ObjectFilter.js +9 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/ProxyWrap.js +111 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/SampleModule.mjs +1 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/Sortable.js +136 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Objects/Unique.js +3 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/PassthroughCopyBehaviorCheck.js +16 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/PathNormalizer.js +60 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/PathPrefixer.js +21 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Pluralize.js +3 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ProjectDirectories.js +344 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ProjectTemplateFormats.js +134 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/Require.js +206 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ReservedData.js +69 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/SetUnion.js +11 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/TransformsUtil.js +70 -0
- package/eleventy/node_modules/@11ty/eleventy/src/Util/ValidUrl.js +9 -0
- package/eleventy/node_modules/@11ty/eleventy/src/defaultConfig.js +168 -0
- package/eleventy/node_modules/@11ty/eleventy/tsconfig.json +117 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/README.md +60 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/cli.js +89 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/client/reload-client.js +294 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/cmd.js +77 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/README.md +27 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/index.js +11 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/package.json +41 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/src/IsPlainObject.js +24 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/src/Merge.js +84 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/node_modules/@11ty/eleventy-utils/src/TemplatePath.js +372 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/package.json +58 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/server/wrapResponse.js +129 -0
- package/eleventy/node_modules/@11ty/eleventy-dev-server/server.js +950 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/README.md +337 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/eleventy.bundle.js +66 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/package.json +62 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/BundleFileOutput.js +76 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/CodeManager.js +209 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/OutOfOrderRender.js +153 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/eleventy.bundleManagers.js +74 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/eleventy.pruneEmptyBundles.js +88 -0
- package/eleventy/node_modules/@11ty/eleventy-plugin-bundle/src/eleventy.shortcodes.js +83 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/README.md +29 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/index.js +11 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/package.json +47 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/src/IsPlainObject.js +24 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/src/Merge.js +84 -0
- package/eleventy/node_modules/@11ty/eleventy-utils/src/TemplatePath.js +368 -0
- package/eleventy/node_modules/@11ty/lodash-custom/README.md +14 -0
- package/eleventy/node_modules/@11ty/lodash-custom/lodash.custom.js +1704 -0
- package/eleventy/node_modules/@11ty/lodash-custom/package.json +38 -0
- package/eleventy/node_modules/@11ty/posthtml-urls/LICENSE +21 -0
- package/eleventy/node_modules/@11ty/posthtml-urls/README.md +48 -0
- package/eleventy/node_modules/@11ty/posthtml-urls/lib/defaultOptions.js +37 -0
- package/eleventy/node_modules/@11ty/posthtml-urls/lib/index.js +142 -0
- package/eleventy/node_modules/@11ty/posthtml-urls/package.json +47 -0
- package/eleventy/node_modules/@11ty/recursive-copy/README.md +198 -0
- package/eleventy/node_modules/@11ty/recursive-copy/index.d.ts +117 -0
- package/eleventy/node_modules/@11ty/recursive-copy/index.js +3 -0
- package/eleventy/node_modules/@11ty/recursive-copy/lib/copy.js +427 -0
- package/eleventy/node_modules/@11ty/recursive-copy/package.json +71 -0
- package/eleventy/node_modules/@isaacs/cliui/LICENSE.txt +14 -0
- package/eleventy/node_modules/@isaacs/cliui/README.md +143 -0
- package/eleventy/node_modules/@isaacs/cliui/index.mjs +14 -0
- package/eleventy/node_modules/@isaacs/cliui/package.json +86 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/LICENSE +21 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/README.md +171 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/adapters/fs.js +19 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/constants.d.ts +4 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/constants.js +17 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/index.d.ts +12 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/index.js +26 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/async.js +104 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts +1 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/common.js +13 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts +5 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/providers/sync.js +54 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/settings.d.ts +20 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/settings.js +24 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/types/index.js +2 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts +2 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/utils/fs.js +19 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts +2 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/out/utils/index.js +5 -0
- package/eleventy/node_modules/@nodelib/fs.scandir/package.json +44 -0
- package/eleventy/node_modules/@nodelib/fs.stat/LICENSE +21 -0
- package/eleventy/node_modules/@nodelib/fs.stat/README.md +126 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/adapters/fs.js +17 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/index.d.ts +12 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/index.js +26 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/providers/async.js +36 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts +3 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/providers/sync.js +23 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/settings.d.ts +16 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/settings.js +16 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/types/index.d.ts +4 -0
- package/eleventy/node_modules/@nodelib/fs.stat/out/types/index.js +2 -0
- package/eleventy/node_modules/@nodelib/fs.stat/package.json +37 -0
- package/eleventy/node_modules/@nodelib/fs.walk/LICENSE +21 -0
- package/eleventy/node_modules/@nodelib/fs.walk/README.md +215 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/index.d.ts +14 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/index.js +34 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/async.js +30 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/index.d.ts +4 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/index.js +9 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts +12 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/stream.js +34 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts +10 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/providers/sync.js +14 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/async.js +97 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/common.d.ts +7 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/common.js +31 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/reader.js +11 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts +15 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/readers/sync.js +59 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/settings.d.ts +30 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/settings.js +26 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/types/index.d.ts +8 -0
- package/eleventy/node_modules/@nodelib/fs.walk/out/types/index.js +2 -0
- package/eleventy/node_modules/@nodelib/fs.walk/package.json +44 -0
- package/eleventy/node_modules/@pkgjs/parseargs/.editorconfig +14 -0
- package/eleventy/node_modules/@pkgjs/parseargs/CHANGELOG.md +147 -0
- package/eleventy/node_modules/@pkgjs/parseargs/LICENSE +201 -0
- package/eleventy/node_modules/@pkgjs/parseargs/README.md +413 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/is-default-value.js +25 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js +35 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/negate.js +43 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/no-repeated-options.js +31 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/ordered-options.mjs +41 -0
- package/eleventy/node_modules/@pkgjs/parseargs/examples/simple-hard-coded.js +26 -0
- package/eleventy/node_modules/@pkgjs/parseargs/index.js +396 -0
- package/eleventy/node_modules/@pkgjs/parseargs/internal/errors.js +47 -0
- package/eleventy/node_modules/@pkgjs/parseargs/internal/primordials.js +393 -0
- package/eleventy/node_modules/@pkgjs/parseargs/internal/util.js +14 -0
- package/eleventy/node_modules/@pkgjs/parseargs/internal/validators.js +89 -0
- package/eleventy/node_modules/@pkgjs/parseargs/package.json +36 -0
- package/eleventy/node_modules/@pkgjs/parseargs/utils.js +198 -0
- package/eleventy/node_modules/@sindresorhus/slugify/index.d.ts +246 -0
- package/eleventy/node_modules/@sindresorhus/slugify/index.js +127 -0
- package/eleventy/node_modules/@sindresorhus/slugify/license +9 -0
- package/eleventy/node_modules/@sindresorhus/slugify/overridable-replacements.js +7 -0
- package/eleventy/node_modules/@sindresorhus/slugify/package.json +59 -0
- package/eleventy/node_modules/@sindresorhus/slugify/readme.md +273 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/index.d.ts +48 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/index.js +33 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/license +9 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/package.json +47 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/readme.md +103 -0
- package/eleventy/node_modules/@sindresorhus/transliterate/replacements.js +2056 -0
- package/eleventy/node_modules/a-sync-waterfall/LICENSE +21 -0
- package/eleventy/node_modules/a-sync-waterfall/README.md +95 -0
- package/eleventy/node_modules/a-sync-waterfall/index.js +83 -0
- package/eleventy/node_modules/a-sync-waterfall/package.json +21 -0
- package/eleventy/node_modules/a-sync-waterfall/test.js +77 -0
- package/eleventy/node_modules/acorn/CHANGELOG.md +928 -0
- package/eleventy/node_modules/acorn/LICENSE +21 -0
- package/eleventy/node_modules/acorn/README.md +282 -0
- package/eleventy/node_modules/acorn/bin/acorn +4 -0
- package/eleventy/node_modules/acorn/dist/acorn.d.mts +866 -0
- package/eleventy/node_modules/acorn/dist/acorn.d.ts +866 -0
- package/eleventy/node_modules/acorn/dist/acorn.js +6174 -0
- package/eleventy/node_modules/acorn/dist/acorn.mjs +6145 -0
- package/eleventy/node_modules/acorn/dist/bin.js +90 -0
- package/eleventy/node_modules/acorn/package.json +50 -0
- package/eleventy/node_modules/acorn-walk/CHANGELOG.md +199 -0
- package/eleventy/node_modules/acorn-walk/LICENSE +21 -0
- package/eleventy/node_modules/acorn-walk/README.md +124 -0
- package/eleventy/node_modules/acorn-walk/dist/walk.d.mts +177 -0
- package/eleventy/node_modules/acorn-walk/dist/walk.d.ts +177 -0
- package/eleventy/node_modules/acorn-walk/dist/walk.js +455 -0
- package/eleventy/node_modules/acorn-walk/dist/walk.mjs +437 -0
- package/eleventy/node_modules/acorn-walk/package.json +50 -0
- package/eleventy/node_modules/ansi-regex/index.d.ts +33 -0
- package/eleventy/node_modules/ansi-regex/index.js +10 -0
- package/eleventy/node_modules/ansi-regex/license +9 -0
- package/eleventy/node_modules/ansi-regex/package.json +61 -0
- package/eleventy/node_modules/ansi-regex/readme.md +60 -0
- package/eleventy/node_modules/ansi-styles/index.d.ts +236 -0
- package/eleventy/node_modules/ansi-styles/index.js +223 -0
- package/eleventy/node_modules/ansi-styles/license +9 -0
- package/eleventy/node_modules/ansi-styles/package.json +54 -0
- package/eleventy/node_modules/ansi-styles/readme.md +173 -0
- package/eleventy/node_modules/anymatch/LICENSE +15 -0
- package/eleventy/node_modules/anymatch/README.md +87 -0
- package/eleventy/node_modules/anymatch/index.d.ts +20 -0
- package/eleventy/node_modules/anymatch/index.js +104 -0
- package/eleventy/node_modules/anymatch/package.json +48 -0
- package/eleventy/node_modules/argparse/CHANGELOG.md +216 -0
- package/eleventy/node_modules/argparse/LICENSE +254 -0
- package/eleventy/node_modules/argparse/README.md +84 -0
- package/eleventy/node_modules/argparse/argparse.js +3707 -0
- package/eleventy/node_modules/argparse/lib/sub.js +67 -0
- package/eleventy/node_modules/argparse/lib/textwrap.js +440 -0
- package/eleventy/node_modules/argparse/package.json +31 -0
- package/eleventy/node_modules/array-differ/index.js +7 -0
- package/eleventy/node_modules/array-differ/package.json +32 -0
- package/eleventy/node_modules/array-differ/readme.md +41 -0
- package/eleventy/node_modules/array-union/index.js +6 -0
- package/eleventy/node_modules/array-union/license +21 -0
- package/eleventy/node_modules/array-union/package.json +40 -0
- package/eleventy/node_modules/array-union/readme.md +28 -0
- package/eleventy/node_modules/array-uniq/index.js +62 -0
- package/eleventy/node_modules/array-uniq/license +21 -0
- package/eleventy/node_modules/array-uniq/package.json +37 -0
- package/eleventy/node_modules/array-uniq/readme.md +30 -0
- package/eleventy/node_modules/arrify/index.js +8 -0
- package/eleventy/node_modules/arrify/license +21 -0
- package/eleventy/node_modules/arrify/package.json +33 -0
- package/eleventy/node_modules/arrify/readme.md +36 -0
- package/eleventy/node_modules/asap/CHANGES.md +70 -0
- package/eleventy/node_modules/asap/LICENSE.md +21 -0
- package/eleventy/node_modules/asap/README.md +237 -0
- package/eleventy/node_modules/asap/asap.js +65 -0
- package/eleventy/node_modules/asap/browser-asap.js +66 -0
- package/eleventy/node_modules/asap/browser-raw.js +223 -0
- package/eleventy/node_modules/asap/package.json +58 -0
- package/eleventy/node_modules/asap/raw.js +101 -0
- package/eleventy/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/eleventy/node_modules/balanced-match/LICENSE.md +21 -0
- package/eleventy/node_modules/balanced-match/README.md +97 -0
- package/eleventy/node_modules/balanced-match/index.js +62 -0
- package/eleventy/node_modules/balanced-match/package.json +48 -0
- package/eleventy/node_modules/bcp-47/index.d.ts +6 -0
- package/eleventy/node_modules/bcp-47/index.js +9 -0
- package/eleventy/node_modules/bcp-47/lib/normal.d.ts +2 -0
- package/eleventy/node_modules/bcp-47/lib/normal.js +29 -0
- package/eleventy/node_modules/bcp-47/lib/parse.d.ts +29 -0
- package/eleventy/node_modules/bcp-47/lib/parse.js +310 -0
- package/eleventy/node_modules/bcp-47/lib/regular.d.ts +2 -0
- package/eleventy/node_modules/bcp-47/lib/regular.js +12 -0
- package/eleventy/node_modules/bcp-47/lib/stringify.d.ts +13 -0
- package/eleventy/node_modules/bcp-47/lib/stringify.js +50 -0
- package/eleventy/node_modules/bcp-47/license +22 -0
- package/eleventy/node_modules/bcp-47/package.json +85 -0
- package/eleventy/node_modules/bcp-47/readme.md +344 -0
- package/eleventy/node_modules/bcp-47-match/index.d.ts +47 -0
- package/eleventy/node_modules/bcp-47-match/index.js +234 -0
- package/eleventy/node_modules/bcp-47-match/license +22 -0
- package/eleventy/node_modules/bcp-47-match/package.json +88 -0
- package/eleventy/node_modules/bcp-47-match/readme.md +315 -0
- package/eleventy/node_modules/bcp-47-normalize/index.d.ts +3 -0
- package/eleventy/node_modules/bcp-47-normalize/index.js +6 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/fields.d.ts +24 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/fields.js +3217 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/index.d.ts +36 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/index.js +335 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/likely.d.ts +4 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/likely.js +8039 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/many.d.ts +10 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/many.js +95 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/matches.d.ts +13 -0
- package/eleventy/node_modules/bcp-47-normalize/lib/matches.js +1859 -0
- package/eleventy/node_modules/bcp-47-normalize/license +22 -0
- package/eleventy/node_modules/bcp-47-normalize/package.json +91 -0
- package/eleventy/node_modules/bcp-47-normalize/readme.md +207 -0
- package/eleventy/node_modules/binary-extensions/binary-extensions.json +263 -0
- package/eleventy/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
- package/eleventy/node_modules/binary-extensions/index.d.ts +14 -0
- package/eleventy/node_modules/binary-extensions/index.js +1 -0
- package/eleventy/node_modules/binary-extensions/license +10 -0
- package/eleventy/node_modules/binary-extensions/package.json +40 -0
- package/eleventy/node_modules/binary-extensions/readme.md +25 -0
- package/eleventy/node_modules/brace-expansion/LICENSE +21 -0
- package/eleventy/node_modules/brace-expansion/README.md +129 -0
- package/eleventy/node_modules/brace-expansion/index.js +201 -0
- package/eleventy/node_modules/brace-expansion/package.json +47 -0
- package/eleventy/node_modules/braces/LICENSE +21 -0
- package/eleventy/node_modules/braces/README.md +586 -0
- package/eleventy/node_modules/braces/index.js +170 -0
- package/eleventy/node_modules/braces/lib/compile.js +60 -0
- package/eleventy/node_modules/braces/lib/constants.js +57 -0
- package/eleventy/node_modules/braces/lib/expand.js +113 -0
- package/eleventy/node_modules/braces/lib/parse.js +331 -0
- package/eleventy/node_modules/braces/lib/stringify.js +32 -0
- package/eleventy/node_modules/braces/lib/utils.js +122 -0
- package/eleventy/node_modules/braces/package.json +77 -0
- package/eleventy/node_modules/chardet/LICENSE +19 -0
- package/eleventy/node_modules/chardet/README.md +114 -0
- package/eleventy/node_modules/chardet/lib/encoding/ascii.d.ts +6 -0
- package/eleventy/node_modules/chardet/lib/encoding/ascii.js +23 -0
- package/eleventy/node_modules/chardet/lib/encoding/ascii.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/index.d.ts +14 -0
- package/eleventy/node_modules/chardet/lib/encoding/index.js +3 -0
- package/eleventy/node_modules/chardet/lib/encoding/index.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/iso2022.d.ts +23 -0
- package/eleventy/node_modules/chardet/lib/encoding/iso2022.js +114 -0
- package/eleventy/node_modules/chardet/lib/encoding/iso2022.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/mbcs.d.ts +50 -0
- package/eleventy/node_modules/chardet/lib/encoding/mbcs.js +347 -0
- package/eleventy/node_modules/chardet/lib/encoding/mbcs.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/sbcs.d.ts +75 -0
- package/eleventy/node_modules/chardet/lib/encoding/sbcs.js +764 -0
- package/eleventy/node_modules/chardet/lib/encoding/sbcs.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/unicode.d.ts +27 -0
- package/eleventy/node_modules/chardet/lib/encoding/unicode.js +109 -0
- package/eleventy/node_modules/chardet/lib/encoding/unicode.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/encoding/utf8.d.ts +6 -0
- package/eleventy/node_modules/chardet/lib/encoding/utf8.js +72 -0
- package/eleventy/node_modules/chardet/lib/encoding/utf8.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/fs/browser.d.ts +2 -0
- package/eleventy/node_modules/chardet/lib/fs/browser.js +6 -0
- package/eleventy/node_modules/chardet/lib/fs/browser.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/fs/node.d.ts +2 -0
- package/eleventy/node_modules/chardet/lib/fs/node.js +11 -0
- package/eleventy/node_modules/chardet/lib/fs/node.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/index.d.ts +19 -0
- package/eleventy/node_modules/chardet/lib/index.js +149 -0
- package/eleventy/node_modules/chardet/lib/index.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/match.d.ts +8 -0
- package/eleventy/node_modules/chardet/lib/match.js +8 -0
- package/eleventy/node_modules/chardet/lib/match.js.map +1 -0
- package/eleventy/node_modules/chardet/lib/utils.d.ts +1 -0
- package/eleventy/node_modules/chardet/lib/utils.js +10 -0
- package/eleventy/node_modules/chardet/lib/utils.js.map +1 -0
- package/eleventy/node_modules/chardet/package.json +95 -0
- package/eleventy/node_modules/chokidar/LICENSE +21 -0
- package/eleventy/node_modules/chokidar/README.md +308 -0
- package/eleventy/node_modules/chokidar/index.js +973 -0
- package/eleventy/node_modules/chokidar/lib/constants.js +66 -0
- package/eleventy/node_modules/chokidar/lib/fsevents-handler.js +526 -0
- package/eleventy/node_modules/chokidar/lib/nodefs-handler.js +654 -0
- package/eleventy/node_modules/chokidar/package.json +70 -0
- package/eleventy/node_modules/chokidar/types/index.d.ts +192 -0
- package/eleventy/node_modules/color-convert/CHANGELOG.md +54 -0
- package/eleventy/node_modules/color-convert/LICENSE +21 -0
- package/eleventy/node_modules/color-convert/README.md +68 -0
- package/eleventy/node_modules/color-convert/conversions.js +839 -0
- package/eleventy/node_modules/color-convert/index.js +81 -0
- package/eleventy/node_modules/color-convert/package.json +48 -0
- package/eleventy/node_modules/color-convert/route.js +97 -0
- package/eleventy/node_modules/color-name/LICENSE +8 -0
- package/eleventy/node_modules/color-name/README.md +11 -0
- package/eleventy/node_modules/color-name/index.js +152 -0
- package/eleventy/node_modules/color-name/package.json +28 -0
- package/eleventy/node_modules/commander/LICENSE +22 -0
- package/eleventy/node_modules/commander/Readme.md +1134 -0
- package/eleventy/node_modules/commander/esm.mjs +16 -0
- package/eleventy/node_modules/commander/index.js +27 -0
- package/eleventy/node_modules/commander/lib/argument.js +147 -0
- package/eleventy/node_modules/commander/lib/command.js +2179 -0
- package/eleventy/node_modules/commander/lib/error.js +45 -0
- package/eleventy/node_modules/commander/lib/help.js +464 -0
- package/eleventy/node_modules/commander/lib/option.js +331 -0
- package/eleventy/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/eleventy/node_modules/commander/package-support.json +16 -0
- package/eleventy/node_modules/commander/package.json +80 -0
- package/eleventy/node_modules/commander/typings/index.d.ts +889 -0
- package/eleventy/node_modules/concat-map/.travis.yml +4 -0
- package/eleventy/node_modules/concat-map/LICENSE +18 -0
- package/eleventy/node_modules/concat-map/README.markdown +62 -0
- package/eleventy/node_modules/concat-map/example/map.js +6 -0
- package/eleventy/node_modules/concat-map/index.js +13 -0
- package/eleventy/node_modules/concat-map/package.json +43 -0
- package/eleventy/node_modules/concat-map/test/map.js +39 -0
- package/eleventy/node_modules/cross-spawn/LICENSE +21 -0
- package/eleventy/node_modules/cross-spawn/README.md +89 -0
- package/eleventy/node_modules/cross-spawn/index.js +39 -0
- package/eleventy/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/eleventy/node_modules/cross-spawn/lib/parse.js +91 -0
- package/eleventy/node_modules/cross-spawn/lib/util/escape.js +47 -0
- package/eleventy/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/eleventy/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/eleventy/node_modules/cross-spawn/package.json +73 -0
- package/eleventy/node_modules/debug/LICENSE +20 -0
- package/eleventy/node_modules/debug/README.md +481 -0
- package/eleventy/node_modules/debug/package.json +65 -0
- package/eleventy/node_modules/debug/src/browser.js +272 -0
- package/eleventy/node_modules/debug/src/common.js +292 -0
- package/eleventy/node_modules/debug/src/index.js +10 -0
- package/eleventy/node_modules/debug/src/node.js +263 -0
- package/eleventy/node_modules/depd/History.md +103 -0
- package/eleventy/node_modules/depd/LICENSE +22 -0
- package/eleventy/node_modules/depd/Readme.md +280 -0
- package/eleventy/node_modules/depd/index.js +538 -0
- package/eleventy/node_modules/depd/lib/browser/index.js +77 -0
- package/eleventy/node_modules/depd/package.json +45 -0
- package/eleventy/node_modules/dependency-graph/.github/workflows/node.js.yml +24 -0
- package/eleventy/node_modules/dependency-graph/CHANGELOG.md +88 -0
- package/eleventy/node_modules/dependency-graph/LICENSE +19 -0
- package/eleventy/node_modules/dependency-graph/README.md +78 -0
- package/eleventy/node_modules/dependency-graph/lib/dep_graph.js +364 -0
- package/eleventy/node_modules/dependency-graph/lib/index.d.ts +127 -0
- package/eleventy/node_modules/dependency-graph/package.json +31 -0
- package/eleventy/node_modules/dependency-graph/specs/dep_graph_spec.js +567 -0
- package/eleventy/node_modules/destroy/LICENSE +23 -0
- package/eleventy/node_modules/destroy/README.md +63 -0
- package/eleventy/node_modules/destroy/index.js +209 -0
- package/eleventy/node_modules/destroy/package.json +48 -0
- package/eleventy/node_modules/dev-ip/.jshintrc +26 -0
- package/eleventy/node_modules/dev-ip/.travis.yml +5 -0
- package/eleventy/node_modules/dev-ip/LICENSE-MIT +22 -0
- package/eleventy/node_modules/dev-ip/README.md +32 -0
- package/eleventy/node_modules/dev-ip/example.js +4 -0
- package/eleventy/node_modules/dev-ip/lib/dev-ip.js +44 -0
- package/eleventy/node_modules/dev-ip/package.json +43 -0
- package/eleventy/node_modules/dev-ip/test/.jshintrc +26 -0
- package/eleventy/node_modules/dev-ip/test/devip.js +77 -0
- package/eleventy/node_modules/dev-ip/test/fixtures/resp-multiple.js +35 -0
- package/eleventy/node_modules/dev-ip/test/fixtures/resp-none.js +19 -0
- package/eleventy/node_modules/dev-ip/test/fixtures/resp-single.js +30 -0
- package/eleventy/node_modules/dom-serializer/LICENSE +11 -0
- package/eleventy/node_modules/dom-serializer/README.md +97 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/foreignNames.d.ts +3 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/foreignNames.js +100 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/index.d.ts +52 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/index.js +190 -0
- package/eleventy/node_modules/dom-serializer/lib/esm/package.json +1 -0
- package/eleventy/node_modules/dom-serializer/lib/foreignNames.d.ts +3 -0
- package/eleventy/node_modules/dom-serializer/lib/foreignNames.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/lib/foreignNames.js +103 -0
- package/eleventy/node_modules/dom-serializer/lib/index.d.ts +43 -0
- package/eleventy/node_modules/dom-serializer/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/lib/index.js +211 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/LICENSE +11 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode.d.ts +5 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode.js +53 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.d.ts +2 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +30 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/encode.d.ts +47 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/encode.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/encode.js +136 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/index.d.ts +27 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/index.js +57 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/maps/decode.json +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/maps/entities.json +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/maps/legacy.json +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/lib/maps/xml.json +1 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/package.json +64 -0
- package/eleventy/node_modules/dom-serializer/node_modules/entities/readme.md +57 -0
- package/eleventy/node_modules/dom-serializer/package.json +55 -0
- package/eleventy/node_modules/domelementtype/LICENSE +11 -0
- package/eleventy/node_modules/domelementtype/lib/esm/index.d.ts +48 -0
- package/eleventy/node_modules/domelementtype/lib/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/domelementtype/lib/esm/index.js +51 -0
- package/eleventy/node_modules/domelementtype/lib/esm/package.json +1 -0
- package/eleventy/node_modules/domelementtype/lib/index.d.ts +48 -0
- package/eleventy/node_modules/domelementtype/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/domelementtype/lib/index.js +55 -0
- package/eleventy/node_modules/domelementtype/package.json +54 -0
- package/eleventy/node_modules/domelementtype/readme.md +1 -0
- package/eleventy/node_modules/domhandler/LICENSE +11 -0
- package/eleventy/node_modules/domhandler/lib/index.d.ts +85 -0
- package/eleventy/node_modules/domhandler/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/domhandler/lib/index.js +176 -0
- package/eleventy/node_modules/domhandler/lib/node.d.ts +237 -0
- package/eleventy/node_modules/domhandler/lib/node.d.ts.map +1 -0
- package/eleventy/node_modules/domhandler/lib/node.js +444 -0
- package/eleventy/node_modules/domhandler/package.json +58 -0
- package/eleventy/node_modules/domhandler/readme.md +163 -0
- package/eleventy/node_modules/domutils/LICENSE +11 -0
- package/eleventy/node_modules/domutils/lib/feeds.d.ts +45 -0
- package/eleventy/node_modules/domutils/lib/feeds.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/feeds.js +190 -0
- package/eleventy/node_modules/domutils/lib/helpers.d.ts +51 -0
- package/eleventy/node_modules/domutils/lib/helpers.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/helpers.js +125 -0
- package/eleventy/node_modules/domutils/lib/index.d.ts +10 -0
- package/eleventy/node_modules/domutils/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/index.js +28 -0
- package/eleventy/node_modules/domutils/lib/legacy.d.ts +47 -0
- package/eleventy/node_modules/domutils/lib/legacy.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/legacy.js +124 -0
- package/eleventy/node_modules/domutils/lib/manipulation.d.ts +43 -0
- package/eleventy/node_modules/domutils/lib/manipulation.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/manipulation.js +129 -0
- package/eleventy/node_modules/domutils/lib/querying.d.ts +55 -0
- package/eleventy/node_modules/domutils/lib/querying.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/querying.js +126 -0
- package/eleventy/node_modules/domutils/lib/stringify.d.ts +41 -0
- package/eleventy/node_modules/domutils/lib/stringify.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/stringify.js +86 -0
- package/eleventy/node_modules/domutils/lib/traversal.d.ts +59 -0
- package/eleventy/node_modules/domutils/lib/traversal.d.ts.map +1 -0
- package/eleventy/node_modules/domutils/lib/traversal.js +117 -0
- package/eleventy/node_modules/domutils/package.json +65 -0
- package/eleventy/node_modules/domutils/readme.md +31 -0
- package/eleventy/node_modules/eastasianwidth/README.md +32 -0
- package/eleventy/node_modules/eastasianwidth/eastasianwidth.js +311 -0
- package/eleventy/node_modules/eastasianwidth/package.json +18 -0
- package/eleventy/node_modules/ee-first/LICENSE +22 -0
- package/eleventy/node_modules/ee-first/README.md +80 -0
- package/eleventy/node_modules/ee-first/index.js +95 -0
- package/eleventy/node_modules/ee-first/package.json +29 -0
- package/eleventy/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/eleventy/node_modules/emoji-regex/README.md +137 -0
- package/eleventy/node_modules/emoji-regex/RGI_Emoji.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/RGI_Emoji.js +6 -0
- package/eleventy/node_modules/emoji-regex/es2015/RGI_Emoji.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/es2015/RGI_Emoji.js +6 -0
- package/eleventy/node_modules/emoji-regex/es2015/index.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/es2015/index.js +6 -0
- package/eleventy/node_modules/emoji-regex/es2015/text.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/es2015/text.js +6 -0
- package/eleventy/node_modules/emoji-regex/index.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/index.js +6 -0
- package/eleventy/node_modules/emoji-regex/package.json +52 -0
- package/eleventy/node_modules/emoji-regex/text.d.ts +5 -0
- package/eleventy/node_modules/emoji-regex/text.js +6 -0
- package/eleventy/node_modules/encodeurl/LICENSE +22 -0
- package/eleventy/node_modules/encodeurl/README.md +109 -0
- package/eleventy/node_modules/encodeurl/index.js +60 -0
- package/eleventy/node_modules/encodeurl/package.json +40 -0
- package/eleventy/node_modules/entities/LICENSE +11 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode-codepoint.d.ts +19 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode.d.ts +209 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode.js +514 -0
- package/eleventy/node_modules/entities/dist/commonjs/decode.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/encode.d.ts +22 -0
- package/eleventy/node_modules/entities/dist/commonjs/encode.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/encode.js +76 -0
- package/eleventy/node_modules/entities/dist/commonjs/encode.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/escape.d.ts +43 -0
- package/eleventy/node_modules/entities/dist/commonjs/escape.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/escape.js +120 -0
- package/eleventy/node_modules/entities/dist/commonjs/escape.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts +3 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-html.js +9 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts +3 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +9 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/encode-html.d.ts +8 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/encode-html.js +12 -0
- package/eleventy/node_modules/entities/dist/commonjs/generated/encode-html.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/index.d.ts +96 -0
- package/eleventy/node_modules/entities/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/index.js +128 -0
- package/eleventy/node_modules/entities/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/entities/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/entities/dist/esm/decode-codepoint.d.ts +19 -0
- package/eleventy/node_modules/entities/dist/esm/decode-codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
- package/eleventy/node_modules/entities/dist/esm/decode-codepoint.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/decode.d.ts +209 -0
- package/eleventy/node_modules/entities/dist/esm/decode.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/decode.js +497 -0
- package/eleventy/node_modules/entities/dist/esm/decode.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/encode.d.ts +22 -0
- package/eleventy/node_modules/entities/dist/esm/encode.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/encode.js +69 -0
- package/eleventy/node_modules/entities/dist/esm/encode.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/escape.d.ts +43 -0
- package/eleventy/node_modules/entities/dist/esm/escape.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/escape.js +116 -0
- package/eleventy/node_modules/entities/dist/esm/escape.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-html.d.ts +3 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-html.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts +3 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
- package/eleventy/node_modules/entities/dist/esm/generated/decode-data-xml.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/encode-html.d.ts +8 -0
- package/eleventy/node_modules/entities/dist/esm/generated/encode-html.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
- package/eleventy/node_modules/entities/dist/esm/generated/encode-html.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/index.d.ts +96 -0
- package/eleventy/node_modules/entities/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/index.js +104 -0
- package/eleventy/node_modules/entities/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/entities/dist/esm/package.json +3 -0
- package/eleventy/node_modules/entities/package.json +120 -0
- package/eleventy/node_modules/entities/readme.md +122 -0
- package/eleventy/node_modules/entities/src/decode-codepoint.ts +81 -0
- package/eleventy/node_modules/entities/src/decode.spec.ts +320 -0
- package/eleventy/node_modules/entities/src/decode.ts +620 -0
- package/eleventy/node_modules/entities/src/encode.spec.ts +78 -0
- package/eleventy/node_modules/entities/src/encode.ts +77 -0
- package/eleventy/node_modules/entities/src/escape.spec.ts +14 -0
- package/eleventy/node_modules/entities/src/escape.ts +144 -0
- package/eleventy/node_modules/entities/src/generated/.eslintrc.json +10 -0
- package/eleventy/node_modules/entities/src/generated/decode-data-html.ts +8 -0
- package/eleventy/node_modules/entities/src/generated/decode-data-xml.ts +8 -0
- package/eleventy/node_modules/entities/src/generated/encode-html.ts +17 -0
- package/eleventy/node_modules/entities/src/index.spec.ts +125 -0
- package/eleventy/node_modules/entities/src/index.ts +185 -0
- package/eleventy/node_modules/errno/.jshintrc +59 -0
- package/eleventy/node_modules/errno/.travis.yml +19 -0
- package/eleventy/node_modules/errno/README.md +145 -0
- package/eleventy/node_modules/errno/build.js +43 -0
- package/eleventy/node_modules/errno/cli.js +22 -0
- package/eleventy/node_modules/errno/custom.js +57 -0
- package/eleventy/node_modules/errno/errno.js +313 -0
- package/eleventy/node_modules/errno/package.json +33 -0
- package/eleventy/node_modules/errno/test.js +88 -0
- package/eleventy/node_modules/escape-html/LICENSE +24 -0
- package/eleventy/node_modules/escape-html/Readme.md +43 -0
- package/eleventy/node_modules/escape-html/index.js +78 -0
- package/eleventy/node_modules/escape-html/package.json +24 -0
- package/eleventy/node_modules/escape-string-regexp/index.d.ts +16 -0
- package/eleventy/node_modules/escape-string-regexp/index.js +11 -0
- package/eleventy/node_modules/escape-string-regexp/license +9 -0
- package/eleventy/node_modules/escape-string-regexp/package.json +40 -0
- package/eleventy/node_modules/escape-string-regexp/readme.md +34 -0
- package/eleventy/node_modules/esm-import-transformer/.github/workflows/ci.yml +23 -0
- package/eleventy/node_modules/esm-import-transformer/README.md +91 -0
- package/eleventy/node_modules/esm-import-transformer/import-transformer.js +130 -0
- package/eleventy/node_modules/esm-import-transformer/package.json +26 -0
- package/eleventy/node_modules/esm-import-transformer/test/commonjsTest.cjs +16 -0
- package/eleventy/node_modules/esm-import-transformer/test/test.js +217 -0
- package/eleventy/node_modules/esprima/ChangeLog +235 -0
- package/eleventy/node_modules/esprima/LICENSE.BSD +21 -0
- package/eleventy/node_modules/esprima/README.md +46 -0
- package/eleventy/node_modules/esprima/bin/esparse.js +139 -0
- package/eleventy/node_modules/esprima/bin/esvalidate.js +236 -0
- package/eleventy/node_modules/esprima/dist/esprima.js +6709 -0
- package/eleventy/node_modules/esprima/package.json +112 -0
- package/eleventy/node_modules/etag/HISTORY.md +83 -0
- package/eleventy/node_modules/etag/LICENSE +22 -0
- package/eleventy/node_modules/etag/README.md +159 -0
- package/eleventy/node_modules/etag/index.js +131 -0
- package/eleventy/node_modules/etag/package.json +47 -0
- package/eleventy/node_modules/evaluate-value/LICENSE +21 -0
- package/eleventy/node_modules/evaluate-value/README.md +41 -0
- package/eleventy/node_modules/evaluate-value/index-es5.js +17 -0
- package/eleventy/node_modules/evaluate-value/index-es5.js.map +1 -0
- package/eleventy/node_modules/evaluate-value/index.js +17 -0
- package/eleventy/node_modules/evaluate-value/package.json +33 -0
- package/eleventy/node_modules/extend-shallow/LICENSE +21 -0
- package/eleventy/node_modules/extend-shallow/README.md +61 -0
- package/eleventy/node_modules/extend-shallow/index.js +33 -0
- package/eleventy/node_modules/extend-shallow/package.json +56 -0
- package/eleventy/node_modules/fast-glob/LICENSE +21 -0
- package/eleventy/node_modules/fast-glob/README.md +830 -0
- package/eleventy/node_modules/fast-glob/out/index.d.ts +40 -0
- package/eleventy/node_modules/fast-glob/out/index.js +102 -0
- package/eleventy/node_modules/fast-glob/out/managers/tasks.d.ts +22 -0
- package/eleventy/node_modules/fast-glob/out/managers/tasks.js +110 -0
- package/eleventy/node_modules/fast-glob/out/providers/async.d.ts +9 -0
- package/eleventy/node_modules/fast-glob/out/providers/async.js +23 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/deep.d.ts +16 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/deep.js +62 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/entry.d.ts +17 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/entry.js +85 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/error.d.ts +8 -0
- package/eleventy/node_modules/fast-glob/out/providers/filters/error.js +15 -0
- package/eleventy/node_modules/fast-glob/out/providers/matchers/matcher.d.ts +33 -0
- package/eleventy/node_modules/fast-glob/out/providers/matchers/matcher.js +45 -0
- package/eleventy/node_modules/fast-glob/out/providers/matchers/partial.d.ts +4 -0
- package/eleventy/node_modules/fast-glob/out/providers/matchers/partial.js +38 -0
- package/eleventy/node_modules/fast-glob/out/providers/provider.d.ts +19 -0
- package/eleventy/node_modules/fast-glob/out/providers/provider.js +48 -0
- package/eleventy/node_modules/fast-glob/out/providers/stream.d.ts +11 -0
- package/eleventy/node_modules/fast-glob/out/providers/stream.js +31 -0
- package/eleventy/node_modules/fast-glob/out/providers/sync.d.ts +9 -0
- package/eleventy/node_modules/fast-glob/out/providers/sync.js +23 -0
- package/eleventy/node_modules/fast-glob/out/providers/transformers/entry.d.ts +8 -0
- package/eleventy/node_modules/fast-glob/out/providers/transformers/entry.js +26 -0
- package/eleventy/node_modules/fast-glob/out/readers/async.d.ts +10 -0
- package/eleventy/node_modules/fast-glob/out/readers/async.js +35 -0
- package/eleventy/node_modules/fast-glob/out/readers/reader.d.ts +15 -0
- package/eleventy/node_modules/fast-glob/out/readers/reader.js +33 -0
- package/eleventy/node_modules/fast-glob/out/readers/stream.d.ts +14 -0
- package/eleventy/node_modules/fast-glob/out/readers/stream.js +55 -0
- package/eleventy/node_modules/fast-glob/out/readers/sync.d.ts +12 -0
- package/eleventy/node_modules/fast-glob/out/readers/sync.js +43 -0
- package/eleventy/node_modules/fast-glob/out/settings.d.ts +164 -0
- package/eleventy/node_modules/fast-glob/out/settings.js +59 -0
- package/eleventy/node_modules/fast-glob/out/types/index.d.ts +31 -0
- package/eleventy/node_modules/fast-glob/out/types/index.js +2 -0
- package/eleventy/node_modules/fast-glob/out/utils/array.d.ts +2 -0
- package/eleventy/node_modules/fast-glob/out/utils/array.js +22 -0
- package/eleventy/node_modules/fast-glob/out/utils/errno.d.ts +2 -0
- package/eleventy/node_modules/fast-glob/out/utils/errno.js +7 -0
- package/eleventy/node_modules/fast-glob/out/utils/fs.d.ts +4 -0
- package/eleventy/node_modules/fast-glob/out/utils/fs.js +19 -0
- package/eleventy/node_modules/fast-glob/out/utils/index.d.ts +8 -0
- package/eleventy/node_modules/fast-glob/out/utils/index.js +17 -0
- package/eleventy/node_modules/fast-glob/out/utils/path.d.ts +13 -0
- package/eleventy/node_modules/fast-glob/out/utils/path.js +68 -0
- package/eleventy/node_modules/fast-glob/out/utils/pattern.d.ts +49 -0
- package/eleventy/node_modules/fast-glob/out/utils/pattern.js +206 -0
- package/eleventy/node_modules/fast-glob/out/utils/stream.d.ts +4 -0
- package/eleventy/node_modules/fast-glob/out/utils/stream.js +17 -0
- package/eleventy/node_modules/fast-glob/out/utils/string.d.ts +2 -0
- package/eleventy/node_modules/fast-glob/out/utils/string.js +11 -0
- package/eleventy/node_modules/fast-glob/package.json +81 -0
- package/eleventy/node_modules/fastq/.github/dependabot.yml +11 -0
- package/eleventy/node_modules/fastq/.github/workflows/ci.yml +75 -0
- package/eleventy/node_modules/fastq/LICENSE +13 -0
- package/eleventy/node_modules/fastq/README.md +306 -0
- package/eleventy/node_modules/fastq/SECURITY.md +15 -0
- package/eleventy/node_modules/fastq/bench.js +66 -0
- package/eleventy/node_modules/fastq/example.js +14 -0
- package/eleventy/node_modules/fastq/example.mjs +11 -0
- package/eleventy/node_modules/fastq/index.d.ts +38 -0
- package/eleventy/node_modules/fastq/package.json +53 -0
- package/eleventy/node_modules/fastq/queue.js +311 -0
- package/eleventy/node_modules/fastq/test/example.ts +83 -0
- package/eleventy/node_modules/fastq/test/promise.js +291 -0
- package/eleventy/node_modules/fastq/test/test.js +642 -0
- package/eleventy/node_modules/fastq/test/tsconfig.json +11 -0
- package/eleventy/node_modules/filesize/LICENSE +28 -0
- package/eleventy/node_modules/filesize/README.md +113 -0
- package/eleventy/node_modules/filesize/dist/filesize.cjs +238 -0
- package/eleventy/node_modules/filesize/dist/filesize.esm.js +231 -0
- package/eleventy/node_modules/filesize/package.json +60 -0
- package/eleventy/node_modules/filesize/types/filesize.d.ts +56 -0
- package/eleventy/node_modules/fill-range/LICENSE +21 -0
- package/eleventy/node_modules/fill-range/README.md +237 -0
- package/eleventy/node_modules/fill-range/index.js +248 -0
- package/eleventy/node_modules/fill-range/package.json +74 -0
- package/eleventy/node_modules/finalhandler/HISTORY.md +210 -0
- package/eleventy/node_modules/finalhandler/LICENSE +22 -0
- package/eleventy/node_modules/finalhandler/README.md +147 -0
- package/eleventy/node_modules/finalhandler/SECURITY.md +25 -0
- package/eleventy/node_modules/finalhandler/index.js +341 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/.coveralls.yml +1 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/.eslintrc +11 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/.travis.yml +14 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/CHANGELOG.md +362 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/LICENSE +19 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/Makefile +50 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/README.md +312 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/component.json +19 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/karma.conf.js +70 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/node.js +1 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/package.json +49 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/src/browser.js +185 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/src/debug.js +202 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/src/index.js +10 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/src/inspector-log.js +15 -0
- package/eleventy/node_modules/finalhandler/node_modules/debug/src/node.js +248 -0
- package/eleventy/node_modules/finalhandler/node_modules/ms/index.js +152 -0
- package/eleventy/node_modules/finalhandler/node_modules/ms/license.md +21 -0
- package/eleventy/node_modules/finalhandler/node_modules/ms/package.json +37 -0
- package/eleventy/node_modules/finalhandler/node_modules/ms/readme.md +51 -0
- package/eleventy/node_modules/finalhandler/package.json +47 -0
- package/eleventy/node_modules/foreground-child/LICENSE +15 -0
- package/eleventy/node_modules/foreground-child/README.md +128 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts +3 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/all-signals.js +58 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/all-signals.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/index.d.ts +65 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/index.js +123 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts +7 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/proxy-signals.js +38 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/proxy-signals.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts +11 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/watchdog.js +50 -0
- package/eleventy/node_modules/foreground-child/dist/commonjs/watchdog.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/all-signals.d.ts +3 -0
- package/eleventy/node_modules/foreground-child/dist/esm/all-signals.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/all-signals.js +52 -0
- package/eleventy/node_modules/foreground-child/dist/esm/all-signals.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/index.d.ts +65 -0
- package/eleventy/node_modules/foreground-child/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/index.js +115 -0
- package/eleventy/node_modules/foreground-child/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/package.json +3 -0
- package/eleventy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts +7 -0
- package/eleventy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/proxy-signals.js +34 -0
- package/eleventy/node_modules/foreground-child/dist/esm/proxy-signals.js.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/watchdog.d.ts +11 -0
- package/eleventy/node_modules/foreground-child/dist/esm/watchdog.d.ts.map +1 -0
- package/eleventy/node_modules/foreground-child/dist/esm/watchdog.js +46 -0
- package/eleventy/node_modules/foreground-child/dist/esm/watchdog.js.map +1 -0
- package/eleventy/node_modules/foreground-child/package.json +111 -0
- package/eleventy/node_modules/fresh/HISTORY.md +70 -0
- package/eleventy/node_modules/fresh/LICENSE +23 -0
- package/eleventy/node_modules/fresh/README.md +119 -0
- package/eleventy/node_modules/fresh/index.js +137 -0
- package/eleventy/node_modules/fresh/package.json +46 -0
- package/eleventy/node_modules/fsevents/LICENSE +22 -0
- package/eleventy/node_modules/fsevents/README.md +89 -0
- package/eleventy/node_modules/fsevents/fsevents.d.ts +46 -0
- package/eleventy/node_modules/fsevents/fsevents.js +83 -0
- package/eleventy/node_modules/fsevents/fsevents.node +0 -0
- package/eleventy/node_modules/fsevents/package.json +62 -0
- package/eleventy/node_modules/glob/LICENSE +15 -0
- package/eleventy/node_modules/glob/README.md +1265 -0
- package/eleventy/node_modules/glob/dist/commonjs/glob.d.ts +388 -0
- package/eleventy/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/glob.js +247 -0
- package/eleventy/node_modules/glob/dist/commonjs/glob.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/has-magic.d.ts +14 -0
- package/eleventy/node_modules/glob/dist/commonjs/has-magic.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/has-magic.js +27 -0
- package/eleventy/node_modules/glob/dist/commonjs/has-magic.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/ignore.d.ts +24 -0
- package/eleventy/node_modules/glob/dist/commonjs/ignore.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/ignore.js +119 -0
- package/eleventy/node_modules/glob/dist/commonjs/ignore.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/index.d.ts +97 -0
- package/eleventy/node_modules/glob/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/index.js +68 -0
- package/eleventy/node_modules/glob/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/glob/dist/commonjs/pattern.d.ts +76 -0
- package/eleventy/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/pattern.js +219 -0
- package/eleventy/node_modules/glob/dist/commonjs/pattern.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/processor.d.ts +59 -0
- package/eleventy/node_modules/glob/dist/commonjs/processor.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/processor.js +301 -0
- package/eleventy/node_modules/glob/dist/commonjs/processor.js.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/walker.d.ts +97 -0
- package/eleventy/node_modules/glob/dist/commonjs/walker.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/commonjs/walker.js +387 -0
- package/eleventy/node_modules/glob/dist/commonjs/walker.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/bin.d.mts +3 -0
- package/eleventy/node_modules/glob/dist/esm/bin.d.mts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/bin.mjs +270 -0
- package/eleventy/node_modules/glob/dist/esm/bin.mjs.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/glob.d.ts +388 -0
- package/eleventy/node_modules/glob/dist/esm/glob.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/glob.js +243 -0
- package/eleventy/node_modules/glob/dist/esm/glob.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/has-magic.d.ts +14 -0
- package/eleventy/node_modules/glob/dist/esm/has-magic.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/has-magic.js +23 -0
- package/eleventy/node_modules/glob/dist/esm/has-magic.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/ignore.d.ts +24 -0
- package/eleventy/node_modules/glob/dist/esm/ignore.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/ignore.js +115 -0
- package/eleventy/node_modules/glob/dist/esm/ignore.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/index.d.ts +97 -0
- package/eleventy/node_modules/glob/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/index.js +55 -0
- package/eleventy/node_modules/glob/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/package.json +3 -0
- package/eleventy/node_modules/glob/dist/esm/pattern.d.ts +76 -0
- package/eleventy/node_modules/glob/dist/esm/pattern.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/pattern.js +215 -0
- package/eleventy/node_modules/glob/dist/esm/pattern.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/processor.d.ts +59 -0
- package/eleventy/node_modules/glob/dist/esm/processor.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/processor.js +294 -0
- package/eleventy/node_modules/glob/dist/esm/processor.js.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/walker.d.ts +97 -0
- package/eleventy/node_modules/glob/dist/esm/walker.d.ts.map +1 -0
- package/eleventy/node_modules/glob/dist/esm/walker.js +381 -0
- package/eleventy/node_modules/glob/dist/esm/walker.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
- package/eleventy/node_modules/glob/node_modules/brace-expansion/LICENSE +21 -0
- package/eleventy/node_modules/glob/node_modules/brace-expansion/README.md +135 -0
- package/eleventy/node_modules/glob/node_modules/brace-expansion/index.js +203 -0
- package/eleventy/node_modules/glob/node_modules/brace-expansion/package.json +46 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/LICENSE +15 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/README.md +454 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.d.ts +20 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.js +592 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.js +152 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.d.ts +12 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.js +22 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/index.d.ts +94 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/index.js +1017 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.d.ts +17 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.js +24 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/ast.d.ts +20 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/ast.js +588 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/ast.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.js +148 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/escape.d.ts +12 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/escape.js +18 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/escape.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/index.d.ts +94 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/index.js +1001 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/package.json +3 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/unescape.d.ts +17 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/unescape.js +20 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
- package/eleventy/node_modules/glob/node_modules/minimatch/package.json +82 -0
- package/eleventy/node_modules/glob/package.json +99 -0
- package/eleventy/node_modules/glob-parent/CHANGELOG.md +110 -0
- package/eleventy/node_modules/glob-parent/LICENSE +15 -0
- package/eleventy/node_modules/glob-parent/README.md +137 -0
- package/eleventy/node_modules/glob-parent/index.js +42 -0
- package/eleventy/node_modules/glob-parent/package.json +48 -0
- package/eleventy/node_modules/graceful-fs/LICENSE +15 -0
- package/eleventy/node_modules/graceful-fs/README.md +143 -0
- package/eleventy/node_modules/graceful-fs/clone.js +23 -0
- package/eleventy/node_modules/graceful-fs/graceful-fs.js +448 -0
- package/eleventy/node_modules/graceful-fs/legacy-streams.js +118 -0
- package/eleventy/node_modules/graceful-fs/package.json +53 -0
- package/eleventy/node_modules/graceful-fs/polyfills.js +355 -0
- package/eleventy/node_modules/gray-matter/CHANGELOG.md +24 -0
- package/eleventy/node_modules/gray-matter/LICENSE +21 -0
- package/eleventy/node_modules/gray-matter/README.md +565 -0
- package/eleventy/node_modules/gray-matter/gray-matter.d.ts +114 -0
- package/eleventy/node_modules/gray-matter/index.js +228 -0
- package/eleventy/node_modules/gray-matter/lib/defaults.js +18 -0
- package/eleventy/node_modules/gray-matter/lib/engine.js +30 -0
- package/eleventy/node_modules/gray-matter/lib/engines.js +54 -0
- package/eleventy/node_modules/gray-matter/lib/excerpt.js +32 -0
- package/eleventy/node_modules/gray-matter/lib/parse.js +13 -0
- package/eleventy/node_modules/gray-matter/lib/stringify.js +56 -0
- package/eleventy/node_modules/gray-matter/lib/to-file.js +43 -0
- package/eleventy/node_modules/gray-matter/lib/utils.js +66 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/CHANGELOG.md +185 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/LICENSE +21 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/README.md +257 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/index.js +3 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/append/constant.js +47 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/append.js +53 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/count.js +40 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/help.js +47 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/store/constant.js +43 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/store/false.js +27 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/store/true.js +26 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/store.js +50 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/subparsers.js +149 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action/version.js +47 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action.js +146 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/action_container.js +482 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/argparse.js +14 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/argument/error.js +50 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/argument/exclusive.js +54 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/argument/group.js +75 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/argument_parser.js +1161 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/const.js +21 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/help/added_formatters.js +87 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/help/formatter.js +795 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/namespace.js +76 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/lib/utils.js +57 -0
- package/eleventy/node_modules/gray-matter/node_modules/argparse/package.json +34 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/CHANGELOG.md +557 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/LICENSE +21 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/README.md +299 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/bin/js-yaml.js +132 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/dist/js-yaml.js +3989 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/index.js +7 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml.js +39 -0
- package/eleventy/node_modules/gray-matter/node_modules/js-yaml/package.json +49 -0
- package/eleventy/node_modules/gray-matter/package.json +127 -0
- package/eleventy/node_modules/htmlparser2/LICENSE +18 -0
- package/eleventy/node_modules/htmlparser2/README.md +166 -0
- package/eleventy/node_modules/htmlparser2/lib/FeedHandler.d.ts +23 -0
- package/eleventy/node_modules/htmlparser2/lib/FeedHandler.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/lib/FeedHandler.js +68 -0
- package/eleventy/node_modules/htmlparser2/lib/Parser.d.ts +180 -0
- package/eleventy/node_modules/htmlparser2/lib/Parser.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/lib/Parser.js +424 -0
- package/eleventy/node_modules/htmlparser2/lib/Tokenizer.d.ts +173 -0
- package/eleventy/node_modules/htmlparser2/lib/Tokenizer.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/lib/Tokenizer.js +821 -0
- package/eleventy/node_modules/htmlparser2/lib/WritableStream.d.ts +16 -0
- package/eleventy/node_modules/htmlparser2/lib/WritableStream.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/lib/WritableStream.js +53 -0
- package/eleventy/node_modules/htmlparser2/lib/index.d.ts +39 -0
- package/eleventy/node_modules/htmlparser2/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/lib/index.js +84 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/LICENSE +11 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode.d.ts +15 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode.js +145 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.d.ts +2 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js +54 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode-trie.d.ts +8 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode-trie.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode-trie.js +77 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode.d.ts +46 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/encode.js +126 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js +5 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js +5 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/index.d.ts +91 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/index.js +118 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/maps/entities.json +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/maps/legacy.json +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/lib/maps/xml.json +1 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/package.json +67 -0
- package/eleventy/node_modules/htmlparser2/node_modules/entities/readme.md +74 -0
- package/eleventy/node_modules/htmlparser2/package.json +75 -0
- package/eleventy/node_modules/http-equiv-refresh/README.md +31 -0
- package/eleventy/node_modules/http-equiv-refresh/index-es5.js +30 -0
- package/eleventy/node_modules/http-equiv-refresh/index-es5.js.map +1 -0
- package/eleventy/node_modules/http-equiv-refresh/index.js +24 -0
- package/eleventy/node_modules/http-equiv-refresh/license +21 -0
- package/eleventy/node_modules/http-equiv-refresh/package.json +42 -0
- package/eleventy/node_modules/http-errors/HISTORY.md +180 -0
- package/eleventy/node_modules/http-errors/LICENSE +23 -0
- package/eleventy/node_modules/http-errors/README.md +169 -0
- package/eleventy/node_modules/http-errors/index.js +289 -0
- package/eleventy/node_modules/http-errors/package.json +50 -0
- package/eleventy/node_modules/inherits/LICENSE +16 -0
- package/eleventy/node_modules/inherits/README.md +42 -0
- package/eleventy/node_modules/inherits/inherits.js +9 -0
- package/eleventy/node_modules/inherits/inherits_browser.js +27 -0
- package/eleventy/node_modules/inherits/package.json +29 -0
- package/eleventy/node_modules/is-alphabetical/index.d.ts +8 -0
- package/eleventy/node_modules/is-alphabetical/index.js +16 -0
- package/eleventy/node_modules/is-alphabetical/license +22 -0
- package/eleventy/node_modules/is-alphabetical/package.json +73 -0
- package/eleventy/node_modules/is-alphabetical/readme.md +141 -0
- package/eleventy/node_modules/is-alphanumerical/index.d.ts +8 -0
- package/eleventy/node_modules/is-alphanumerical/index.js +13 -0
- package/eleventy/node_modules/is-alphanumerical/license +22 -0
- package/eleventy/node_modules/is-alphanumerical/package.json +79 -0
- package/eleventy/node_modules/is-alphanumerical/readme.md +142 -0
- package/eleventy/node_modules/is-binary-path/index.d.ts +17 -0
- package/eleventy/node_modules/is-binary-path/index.js +7 -0
- package/eleventy/node_modules/is-binary-path/license +9 -0
- package/eleventy/node_modules/is-binary-path/package.json +40 -0
- package/eleventy/node_modules/is-binary-path/readme.md +34 -0
- package/eleventy/node_modules/is-decimal/index.d.ts +8 -0
- package/eleventy/node_modules/is-decimal/index.js +13 -0
- package/eleventy/node_modules/is-decimal/license +22 -0
- package/eleventy/node_modules/is-decimal/package.json +73 -0
- package/eleventy/node_modules/is-decimal/readme.md +139 -0
- package/eleventy/node_modules/is-extendable/LICENSE +21 -0
- package/eleventy/node_modules/is-extendable/README.md +72 -0
- package/eleventy/node_modules/is-extendable/index.js +13 -0
- package/eleventy/node_modules/is-extendable/package.json +51 -0
- package/eleventy/node_modules/is-extglob/LICENSE +21 -0
- package/eleventy/node_modules/is-extglob/README.md +107 -0
- package/eleventy/node_modules/is-extglob/index.js +20 -0
- package/eleventy/node_modules/is-extglob/package.json +69 -0
- package/eleventy/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/eleventy/node_modules/is-fullwidth-code-point/index.js +50 -0
- package/eleventy/node_modules/is-fullwidth-code-point/license +9 -0
- package/eleventy/node_modules/is-fullwidth-code-point/package.json +42 -0
- package/eleventy/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/eleventy/node_modules/is-glob/LICENSE +21 -0
- package/eleventy/node_modules/is-glob/README.md +206 -0
- package/eleventy/node_modules/is-glob/index.js +150 -0
- package/eleventy/node_modules/is-glob/package.json +81 -0
- package/eleventy/node_modules/is-json/.travis.yml +14 -0
- package/eleventy/node_modules/is-json/LICENSE +15 -0
- package/eleventy/node_modules/is-json/README.md +41 -0
- package/eleventy/node_modules/is-json/index.js +48 -0
- package/eleventy/node_modules/is-json/package.json +29 -0
- package/eleventy/node_modules/is-json/test/index.js +33 -0
- package/eleventy/node_modules/is-number/LICENSE +21 -0
- package/eleventy/node_modules/is-number/README.md +187 -0
- package/eleventy/node_modules/is-number/index.js +18 -0
- package/eleventy/node_modules/is-number/package.json +82 -0
- package/eleventy/node_modules/isexe/LICENSE +15 -0
- package/eleventy/node_modules/isexe/README.md +51 -0
- package/eleventy/node_modules/isexe/index.js +57 -0
- package/eleventy/node_modules/isexe/mode.js +41 -0
- package/eleventy/node_modules/isexe/package.json +31 -0
- package/eleventy/node_modules/isexe/test/basic.js +221 -0
- package/eleventy/node_modules/isexe/windows.js +42 -0
- package/eleventy/node_modules/iso-639-1/.eslintrc +38 -0
- package/eleventy/node_modules/iso-639-1/.nvmrc +1 -0
- package/eleventy/node_modules/iso-639-1/.prettierrc +4 -0
- package/eleventy/node_modules/iso-639-1/.travis.yml +6 -0
- package/eleventy/node_modules/iso-639-1/CHANGELOG.md +75 -0
- package/eleventy/node_modules/iso-639-1/LICENSE +21 -0
- package/eleventy/node_modules/iso-639-1/index.d.ts +205 -0
- package/eleventy/node_modules/iso-639-1/package.json +41 -0
- package/eleventy/node_modules/iso-639-1/readme.md +121 -0
- package/eleventy/node_modules/iso-639-1/src/data.js +736 -0
- package/eleventy/node_modules/iso-639-1/src/index.js +59 -0
- package/eleventy/node_modules/iso-639-1/test/test.js +92 -0
- package/eleventy/node_modules/iso-639-1/webpack.config.js +20 -0
- package/eleventy/node_modules/jackspeak/LICENSE.md +55 -0
- package/eleventy/node_modules/jackspeak/README.md +357 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/index.d.ts +315 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/index.js +1010 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/parse-args-cjs.cjs.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/parse-args-cjs.d.cts.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/parse-args.d.ts +4 -0
- package/eleventy/node_modules/jackspeak/dist/commonjs/parse-args.js +50 -0
- package/eleventy/node_modules/jackspeak/dist/esm/index.d.ts +315 -0
- package/eleventy/node_modules/jackspeak/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/esm/index.js +1000 -0
- package/eleventy/node_modules/jackspeak/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/esm/package.json +3 -0
- package/eleventy/node_modules/jackspeak/dist/esm/parse-args.d.ts +4 -0
- package/eleventy/node_modules/jackspeak/dist/esm/parse-args.d.ts.map +1 -0
- package/eleventy/node_modules/jackspeak/dist/esm/parse-args.js +26 -0
- package/eleventy/node_modules/jackspeak/dist/esm/parse-args.js.map +1 -0
- package/eleventy/node_modules/jackspeak/package.json +95 -0
- package/eleventy/node_modules/js-yaml/CHANGELOG.md +616 -0
- package/eleventy/node_modules/js-yaml/LICENSE +21 -0
- package/eleventy/node_modules/js-yaml/README.md +246 -0
- package/eleventy/node_modules/js-yaml/bin/js-yaml.js +126 -0
- package/eleventy/node_modules/js-yaml/dist/js-yaml.js +3874 -0
- package/eleventy/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
- package/eleventy/node_modules/js-yaml/dist/js-yaml.mjs +3851 -0
- package/eleventy/node_modules/js-yaml/index.js +47 -0
- package/eleventy/node_modules/js-yaml/lib/common.js +59 -0
- package/eleventy/node_modules/js-yaml/lib/dumper.js +965 -0
- package/eleventy/node_modules/js-yaml/lib/exception.js +55 -0
- package/eleventy/node_modules/js-yaml/lib/loader.js +1727 -0
- package/eleventy/node_modules/js-yaml/lib/schema/core.js +11 -0
- package/eleventy/node_modules/js-yaml/lib/schema/default.js +22 -0
- package/eleventy/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
- package/eleventy/node_modules/js-yaml/lib/schema/json.js +19 -0
- package/eleventy/node_modules/js-yaml/lib/schema.js +121 -0
- package/eleventy/node_modules/js-yaml/lib/snippet.js +101 -0
- package/eleventy/node_modules/js-yaml/lib/type/binary.js +125 -0
- package/eleventy/node_modules/js-yaml/lib/type/bool.js +35 -0
- package/eleventy/node_modules/js-yaml/lib/type/float.js +97 -0
- package/eleventy/node_modules/js-yaml/lib/type/int.js +156 -0
- package/eleventy/node_modules/js-yaml/lib/type/map.js +8 -0
- package/eleventy/node_modules/js-yaml/lib/type/merge.js +12 -0
- package/eleventy/node_modules/js-yaml/lib/type/null.js +35 -0
- package/eleventy/node_modules/js-yaml/lib/type/omap.js +44 -0
- package/eleventy/node_modules/js-yaml/lib/type/pairs.js +53 -0
- package/eleventy/node_modules/js-yaml/lib/type/seq.js +8 -0
- package/eleventy/node_modules/js-yaml/lib/type/set.js +29 -0
- package/eleventy/node_modules/js-yaml/lib/type/str.js +8 -0
- package/eleventy/node_modules/js-yaml/lib/type/timestamp.js +88 -0
- package/eleventy/node_modules/js-yaml/lib/type.js +66 -0
- package/eleventy/node_modules/js-yaml/package.json +66 -0
- package/eleventy/node_modules/junk/index.js +30 -0
- package/eleventy/node_modules/junk/license +21 -0
- package/eleventy/node_modules/junk/package.json +37 -0
- package/eleventy/node_modules/junk/readme.md +46 -0
- package/eleventy/node_modules/kind-of/CHANGELOG.md +160 -0
- package/eleventy/node_modules/kind-of/LICENSE +21 -0
- package/eleventy/node_modules/kind-of/README.md +367 -0
- package/eleventy/node_modules/kind-of/index.js +129 -0
- package/eleventy/node_modules/kind-of/package.json +88 -0
- package/eleventy/node_modules/kleur/colors.d.ts +38 -0
- package/eleventy/node_modules/kleur/colors.js +53 -0
- package/eleventy/node_modules/kleur/colors.mjs +53 -0
- package/eleventy/node_modules/kleur/index.d.ts +45 -0
- package/eleventy/node_modules/kleur/index.js +110 -0
- package/eleventy/node_modules/kleur/index.mjs +110 -0
- package/eleventy/node_modules/kleur/license +21 -0
- package/eleventy/node_modules/kleur/package.json +51 -0
- package/eleventy/node_modules/kleur/readme.md +232 -0
- package/eleventy/node_modules/linkify-it/LICENSE +22 -0
- package/eleventy/node_modules/linkify-it/README.md +196 -0
- package/eleventy/node_modules/linkify-it/index.mjs +642 -0
- package/eleventy/node_modules/linkify-it/lib/re.mjs +189 -0
- package/eleventy/node_modules/linkify-it/package.json +58 -0
- package/eleventy/node_modules/liquidjs/LICENSE +21 -0
- package/eleventy/node_modules/liquidjs/README.md +228 -0
- package/eleventy/node_modules/liquidjs/bin/liquid.js +139 -0
- package/eleventy/node_modules/liquidjs/dist/cache/cache.d.ts +7 -0
- package/eleventy/node_modules/liquidjs/dist/cache/index.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/cache/lru.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/cache/lru.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/context/block-mode.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/context/context.d.ts +64 -0
- package/eleventy/node_modules/liquidjs/dist/context/context.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/context/index.d.ts +3 -0
- package/eleventy/node_modules/liquidjs/dist/context/scope.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/drop/blank-drop.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/drop/block-drop.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/drop/comparable.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/drop/drop.d.ts +3 -0
- package/eleventy/node_modules/liquidjs/dist/drop/empty-drop.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/drop/forloop-drop.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/drop/index.d.ts +7 -0
- package/eleventy/node_modules/liquidjs/dist/drop/null-drop.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/drop/tablerowloop-drop.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/emitters/emitter.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/emitters/index.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/emitters/keeping-type-emitter.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/emitters/simple-emitter.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/emitters/streamed-emitter.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/filters/array.d.ts +26 -0
- package/eleventy/node_modules/liquidjs/dist/filters/date.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/filters/html.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/filters/index.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/filters/math.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/filters/misc.d.ts +18 -0
- package/eleventy/node_modules/liquidjs/dist/filters/string.d.ts +27 -0
- package/eleventy/node_modules/liquidjs/dist/filters/url.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/fs/fs-impl.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/fs/fs-impl.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/fs/fs.d.ts +20 -0
- package/eleventy/node_modules/liquidjs/dist/fs/index.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/fs/loader.d.ts +24 -0
- package/eleventy/node_modules/liquidjs/dist/fs/loader.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/fs/map-fs.d.ts +13 -0
- package/eleventy/node_modules/liquidjs/dist/fs/map-fs.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/fs/node-require.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/index.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/liquid-options.d.ts +159 -0
- package/eleventy/node_modules/liquidjs/dist/liquid-options.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.browser.min.js +2 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.browser.min.js.map +1 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.browser.mjs +4891 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.browser.umd.js +7178 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.browser.umd.js.map +1 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.d.ts +70 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.node.js +4914 -0
- package/eleventy/node_modules/liquidjs/dist/liquid.node.mjs +4904 -0
- package/eleventy/node_modules/liquidjs/dist/parser/filter-arg.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/parser/index.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/parser/parse-stream.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/parser/parse-stream.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/parser/parser.d.ts +20 -0
- package/eleventy/node_modules/liquidjs/dist/parser/parser.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/parser/token-kind.d.ts +16 -0
- package/eleventy/node_modules/liquidjs/dist/parser/tokenizer.d.ts +63 -0
- package/eleventy/node_modules/liquidjs/dist/parser/tokenizer.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/parser/whitespace-ctrl.d.ts +3 -0
- package/eleventy/node_modules/liquidjs/dist/render/boolean.d.ts +3 -0
- package/eleventy/node_modules/liquidjs/dist/render/boolean.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/render/expression.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/render/expression.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/render/index.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/render/operator.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/render/render.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/render/render.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/render/string.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/render/string.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/tags/assign.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tags/block.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/tags/break.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/tags/capture.d.ts +13 -0
- package/eleventy/node_modules/liquidjs/dist/tags/case.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/tags/comment.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/tags/continue.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/tags/cycle.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tags/decrement.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tags/echo.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/tags/for.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/tags/if.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/tags/include.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tags/increment.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tags/index.d.ts +24 -0
- package/eleventy/node_modules/liquidjs/dist/tags/inline-comment.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/tags/layout.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/tags/liquid.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/tags/raw.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/tags/render.d.ts +22 -0
- package/eleventy/node_modules/liquidjs/dist/tags/tablerow.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/tags/unless.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/template/analysis.d.ts +85 -0
- package/eleventy/node_modules/liquidjs/dist/template/analysis.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/template/filter-impl-options.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/template/filter.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/template/filter.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/template/hash.d.ts +18 -0
- package/eleventy/node_modules/liquidjs/dist/template/hash.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/template/html.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/template/index.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/template/output.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/template/output.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/template/tag-options-adapter.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/template/tag.d.ts +18 -0
- package/eleventy/node_modules/liquidjs/dist/template/template-impl.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/template/template.d.ts +36 -0
- package/eleventy/node_modules/liquidjs/dist/template/value.d.ts +15 -0
- package/eleventy/node_modules/liquidjs/dist/template/value.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/delimited-token.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/filter-token.d.ts +7 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/filtered-value-token.d.ts +17 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/hash-token.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/html-token.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/identifier-token.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/index.d.ts +18 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/liquid-tag-token.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/literal-token.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/number-token.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/operator-token.d.ts +38 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/output-token.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/property-access-token.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/quoted-token.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/range-token.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/tag-token.d.ts +9 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/token.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/top-level-token.d.ts +4 -0
- package/eleventy/node_modules/liquidjs/dist/tokens/value-token.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/util/assert.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/util/assert.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/async.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/util/async.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/character.d.ts +10 -0
- package/eleventy/node_modules/liquidjs/dist/util/error.d.ts +35 -0
- package/eleventy/node_modules/liquidjs/dist/util/error.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/index.d.ts +12 -0
- package/eleventy/node_modules/liquidjs/dist/util/intl.d.ts +6 -0
- package/eleventy/node_modules/liquidjs/dist/util/limiter.d.ts +8 -0
- package/eleventy/node_modules/liquidjs/dist/util/liquid-date.d.ts +52 -0
- package/eleventy/node_modules/liquidjs/dist/util/liquid-date.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/literal.d.ts +11 -0
- package/eleventy/node_modules/liquidjs/dist/util/operator-trie.d.ts +14 -0
- package/eleventy/node_modules/liquidjs/dist/util/performance.d.ts +5 -0
- package/eleventy/node_modules/liquidjs/dist/util/performance.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/strftime.d.ts +2 -0
- package/eleventy/node_modules/liquidjs/dist/util/strftime.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/type-guards.d.ts +13 -0
- package/eleventy/node_modules/liquidjs/dist/util/type-guards.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/dist/util/underscore.d.ts +39 -0
- package/eleventy/node_modules/liquidjs/dist/util/underscore.spec.d.ts +1 -0
- package/eleventy/node_modules/liquidjs/package.json +165 -0
- package/eleventy/node_modules/list-to-array/LICENSE +22 -0
- package/eleventy/node_modules/list-to-array/README.md +52 -0
- package/eleventy/node_modules/list-to-array/index.js +18 -0
- package/eleventy/node_modules/list-to-array/package.json +32 -0
- package/eleventy/node_modules/list-to-array/tests.js +29 -0
- package/eleventy/node_modules/lru-cache/LICENSE +15 -0
- package/eleventy/node_modules/lru-cache/README.md +331 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.d.ts +1277 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.js +1546 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
- package/eleventy/node_modules/lru-cache/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.d.ts +1277 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.js +1542 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.min.js +2 -0
- package/eleventy/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
- package/eleventy/node_modules/lru-cache/dist/esm/package.json +3 -0
- package/eleventy/node_modules/lru-cache/package.json +116 -0
- package/eleventy/node_modules/luxon/LICENSE.md +7 -0
- package/eleventy/node_modules/luxon/README.md +55 -0
- package/eleventy/node_modules/luxon/package.json +87 -0
- package/eleventy/node_modules/luxon/src/datetime.js +2556 -0
- package/eleventy/node_modules/luxon/src/duration.js +990 -0
- package/eleventy/node_modules/luxon/src/errors.js +61 -0
- package/eleventy/node_modules/luxon/src/impl/conversions.js +206 -0
- package/eleventy/node_modules/luxon/src/impl/diff.js +95 -0
- package/eleventy/node_modules/luxon/src/impl/digits.js +90 -0
- package/eleventy/node_modules/luxon/src/impl/english.js +233 -0
- package/eleventy/node_modules/luxon/src/impl/formats.js +176 -0
- package/eleventy/node_modules/luxon/src/impl/formatter.js +409 -0
- package/eleventy/node_modules/luxon/src/impl/invalid.js +14 -0
- package/eleventy/node_modules/luxon/src/impl/locale.js +546 -0
- package/eleventy/node_modules/luxon/src/impl/regexParser.js +335 -0
- package/eleventy/node_modules/luxon/src/impl/tokenParser.js +505 -0
- package/eleventy/node_modules/luxon/src/impl/util.js +316 -0
- package/eleventy/node_modules/luxon/src/impl/zoneUtil.js +34 -0
- package/eleventy/node_modules/luxon/src/info.js +205 -0
- package/eleventy/node_modules/luxon/src/interval.js +657 -0
- package/eleventy/node_modules/luxon/src/luxon.js +26 -0
- package/eleventy/node_modules/luxon/src/package.json +4 -0
- package/eleventy/node_modules/luxon/src/settings.js +180 -0
- package/eleventy/node_modules/luxon/src/zone.js +97 -0
- package/eleventy/node_modules/luxon/src/zones/IANAZone.js +231 -0
- package/eleventy/node_modules/luxon/src/zones/fixedOffsetZone.js +150 -0
- package/eleventy/node_modules/luxon/src/zones/invalidZone.js +53 -0
- package/eleventy/node_modules/luxon/src/zones/systemZone.js +61 -0
- package/eleventy/node_modules/markdown-it/LICENSE +22 -0
- package/eleventy/node_modules/markdown-it/README.md +324 -0
- package/eleventy/node_modules/markdown-it/bin/markdown-it.mjs +107 -0
- package/eleventy/node_modules/markdown-it/dist/index.cjs.js +5540 -0
- package/eleventy/node_modules/markdown-it/dist/markdown-it.js +6963 -0
- package/eleventy/node_modules/markdown-it/dist/markdown-it.min.js +2 -0
- package/eleventy/node_modules/markdown-it/index.mjs +1 -0
- package/eleventy/node_modules/markdown-it/lib/common/html_blocks.mjs +67 -0
- package/eleventy/node_modules/markdown-it/lib/common/html_re.mjs +25 -0
- package/eleventy/node_modules/markdown-it/lib/common/utils.mjs +304 -0
- package/eleventy/node_modules/markdown-it/lib/helpers/index.mjs +11 -0
- package/eleventy/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +77 -0
- package/eleventy/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +49 -0
- package/eleventy/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +66 -0
- package/eleventy/node_modules/markdown-it/lib/index.mjs +565 -0
- package/eleventy/node_modules/markdown-it/lib/parser_block.mjs +134 -0
- package/eleventy/node_modules/markdown-it/lib/parser_core.mjs +62 -0
- package/eleventy/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
- package/eleventy/node_modules/markdown-it/lib/presets/commonmark.mjs +88 -0
- package/eleventy/node_modules/markdown-it/lib/presets/default.mjs +47 -0
- package/eleventy/node_modules/markdown-it/lib/presets/zero.mjs +70 -0
- package/eleventy/node_modules/markdown-it/lib/renderer.mjs +322 -0
- package/eleventy/node_modules/markdown-it/lib/ruler.mjs +340 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/blockquote.mjs +209 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/code.mjs +30 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/fence.mjs +94 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/heading.mjs +51 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/hr.mjs +40 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/html_block.mjs +69 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/lheading.mjs +82 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/list.mjs +331 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/paragraph.mjs +46 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/reference.mjs +212 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/state_block.mjs +220 -0
- package/eleventy/node_modules/markdown-it/lib/rules_block/table.mjs +228 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/block.mjs +13 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/inline.mjs +11 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/linkify.mjs +134 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/normalize.mjs +17 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/replacements.mjs +101 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +193 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/state_core.mjs +17 -0
- package/eleventy/node_modules/markdown-it/lib/rules_core/text_join.mjs +43 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/autolink.mjs +72 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/backticks.mjs +60 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +124 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +123 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/entity.mjs +51 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/escape.mjs +69 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +38 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +50 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/image.mjs +138 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/link.mjs +139 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/linkify.mjs +56 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/newline.mjs +42 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +123 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +127 -0
- package/eleventy/node_modules/markdown-it/lib/rules_inline/text.mjs +86 -0
- package/eleventy/node_modules/markdown-it/lib/token.mjs +191 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/LICENSE +11 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode.d.ts +211 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode.js +536 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts +19 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js +76 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts +22 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/encode.js +77 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/encode.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/escape.d.ts +43 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/escape.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/escape.js +122 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/escape.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts +211 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode.js +496 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts +19 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js +71 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/encode.d.ts +22 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/encode.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js +69 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts +43 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js +116 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +3 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js +7 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +3 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js +7 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts +8 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js +10 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/index.d.ts +96 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/index.js +99 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/index.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/esm/package.json +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts +3 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js +9 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts +3 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts +8 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js +12 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/index.d.ts +96 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/index.d.ts.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/index.js +126 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/lib/index.js.map +1 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/package.json +90 -0
- package/eleventy/node_modules/markdown-it/node_modules/entities/readme.md +122 -0
- package/eleventy/node_modules/markdown-it/package.json +92 -0
- package/eleventy/node_modules/maximatch/index.js +39 -0
- package/eleventy/node_modules/maximatch/license +21 -0
- package/eleventy/node_modules/maximatch/package.json +44 -0
- package/eleventy/node_modules/maximatch/readme.md +71 -0
- package/eleventy/node_modules/mdurl/LICENSE +45 -0
- package/eleventy/node_modules/mdurl/README.md +102 -0
- package/eleventy/node_modules/mdurl/index.mjs +11 -0
- package/eleventy/node_modules/mdurl/lib/decode.mjs +112 -0
- package/eleventy/node_modules/mdurl/lib/encode.mjs +89 -0
- package/eleventy/node_modules/mdurl/lib/format.mjs +21 -0
- package/eleventy/node_modules/mdurl/lib/parse.mjs +308 -0
- package/eleventy/node_modules/mdurl/package.json +37 -0
- package/eleventy/node_modules/merge2/LICENSE +21 -0
- package/eleventy/node_modules/merge2/README.md +144 -0
- package/eleventy/node_modules/merge2/index.js +144 -0
- package/eleventy/node_modules/merge2/package.json +43 -0
- package/eleventy/node_modules/micromatch/LICENSE +21 -0
- package/eleventy/node_modules/micromatch/README.md +1024 -0
- package/eleventy/node_modules/micromatch/index.js +474 -0
- package/eleventy/node_modules/micromatch/package.json +119 -0
- package/eleventy/node_modules/mime/CHANGELOG.md +312 -0
- package/eleventy/node_modules/mime/LICENSE +21 -0
- package/eleventy/node_modules/mime/Mime.js +97 -0
- package/eleventy/node_modules/mime/README.md +178 -0
- package/eleventy/node_modules/mime/cli.js +46 -0
- package/eleventy/node_modules/mime/index.js +4 -0
- package/eleventy/node_modules/mime/lite.js +4 -0
- package/eleventy/node_modules/mime/package.json +52 -0
- package/eleventy/node_modules/mime/types/other.js +1 -0
- package/eleventy/node_modules/mime/types/standard.js +1 -0
- package/eleventy/node_modules/mime-db/HISTORY.md +507 -0
- package/eleventy/node_modules/mime-db/LICENSE +23 -0
- package/eleventy/node_modules/mime-db/README.md +100 -0
- package/eleventy/node_modules/mime-db/db.json +8519 -0
- package/eleventy/node_modules/mime-db/index.js +12 -0
- package/eleventy/node_modules/mime-db/package.json +60 -0
- package/eleventy/node_modules/mime-types/HISTORY.md +397 -0
- package/eleventy/node_modules/mime-types/LICENSE +23 -0
- package/eleventy/node_modules/mime-types/README.md +113 -0
- package/eleventy/node_modules/mime-types/index.js +188 -0
- package/eleventy/node_modules/mime-types/package.json +44 -0
- package/eleventy/node_modules/minimatch/LICENSE +15 -0
- package/eleventy/node_modules/minimatch/README.md +230 -0
- package/eleventy/node_modules/minimatch/minimatch.js +947 -0
- package/eleventy/node_modules/minimatch/package.json +33 -0
- package/eleventy/node_modules/minimist/.eslintrc +29 -0
- package/eleventy/node_modules/minimist/.github/FUNDING.yml +12 -0
- package/eleventy/node_modules/minimist/.nycrc +14 -0
- package/eleventy/node_modules/minimist/CHANGELOG.md +298 -0
- package/eleventy/node_modules/minimist/LICENSE +18 -0
- package/eleventy/node_modules/minimist/README.md +121 -0
- package/eleventy/node_modules/minimist/example/parse.js +4 -0
- package/eleventy/node_modules/minimist/index.js +263 -0
- package/eleventy/node_modules/minimist/package.json +75 -0
- package/eleventy/node_modules/minimist/test/all_bool.js +34 -0
- package/eleventy/node_modules/minimist/test/bool.js +177 -0
- package/eleventy/node_modules/minimist/test/dash.js +43 -0
- package/eleventy/node_modules/minimist/test/default_bool.js +37 -0
- package/eleventy/node_modules/minimist/test/dotted.js +24 -0
- package/eleventy/node_modules/minimist/test/kv_short.js +32 -0
- package/eleventy/node_modules/minimist/test/long.js +33 -0
- package/eleventy/node_modules/minimist/test/num.js +38 -0
- package/eleventy/node_modules/minimist/test/parse.js +209 -0
- package/eleventy/node_modules/minimist/test/parse_modified.js +11 -0
- package/eleventy/node_modules/minimist/test/proto.js +64 -0
- package/eleventy/node_modules/minimist/test/short.js +69 -0
- package/eleventy/node_modules/minimist/test/stop_early.js +17 -0
- package/eleventy/node_modules/minimist/test/unknown.js +104 -0
- package/eleventy/node_modules/minimist/test/whitespace.js +10 -0
- package/eleventy/node_modules/minipass/LICENSE +15 -0
- package/eleventy/node_modules/minipass/README.md +825 -0
- package/eleventy/node_modules/minipass/dist/commonjs/index.d.ts +549 -0
- package/eleventy/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/minipass/dist/commonjs/index.js +1028 -0
- package/eleventy/node_modules/minipass/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/minipass/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/minipass/dist/esm/index.d.ts +549 -0
- package/eleventy/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/minipass/dist/esm/index.js +1018 -0
- package/eleventy/node_modules/minipass/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/minipass/dist/esm/package.json +3 -0
- package/eleventy/node_modules/minipass/package.json +82 -0
- package/eleventy/node_modules/mkdirp/LICENSE +21 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/package.json +91 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/bin.d.ts +3 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/bin.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/bin.js +80 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/bin.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/find-made.d.ts +4 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/find-made.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/find-made.js +35 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/find-made.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/index.d.ts +39 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/index.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/index.js +53 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/index.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-manual.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-manual.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-manual.js +79 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-manual.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-native.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-native.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-native.js +50 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/mkdirp-native.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/opts-arg.d.ts +42 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/opts-arg.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/opts-arg.js +38 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/opts-arg.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/path-arg.d.ts +2 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/path-arg.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/path-arg.js +28 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/path-arg.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/use-native.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/use-native.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/use-native.js +17 -0
- package/eleventy/node_modules/mkdirp/dist/cjs/src/use-native.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/find-made.d.ts +4 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/find-made.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/find-made.js +30 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/find-made.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/index.d.ts +39 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/index.js +43 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/index.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-manual.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-manual.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-manual.js +75 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-manual.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-native.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-native.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-native.js +46 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/mkdirp-native.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/opts-arg.d.ts +42 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/opts-arg.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/opts-arg.js +34 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/opts-arg.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/package.json +3 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/path-arg.d.ts +2 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/path-arg.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/path-arg.js +24 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/path-arg.js.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/use-native.d.ts +6 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/use-native.d.ts.map +1 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/use-native.js +14 -0
- package/eleventy/node_modules/mkdirp/dist/mjs/use-native.js.map +1 -0
- package/eleventy/node_modules/mkdirp/package.json +91 -0
- package/eleventy/node_modules/mkdirp/readme.markdown +281 -0
- package/eleventy/node_modules/moo/LICENSE +29 -0
- package/eleventy/node_modules/moo/README.md +383 -0
- package/eleventy/node_modules/moo/moo.js +642 -0
- package/eleventy/node_modules/moo/package.json +29 -0
- package/eleventy/node_modules/morphdom/CHANGELOG.md +243 -0
- package/eleventy/node_modules/morphdom/LICENSE +21 -0
- package/eleventy/node_modules/morphdom/README.md +260 -0
- package/eleventy/node_modules/morphdom/dist/morphdom-esm.js +769 -0
- package/eleventy/node_modules/morphdom/dist/morphdom-factory.js +705 -0
- package/eleventy/node_modules/morphdom/dist/morphdom-umd.js +777 -0
- package/eleventy/node_modules/morphdom/dist/morphdom-umd.min.js +1 -0
- package/eleventy/node_modules/morphdom/dist/morphdom.js +771 -0
- package/eleventy/node_modules/morphdom/docs/old-benchmark.md +204 -0
- package/eleventy/node_modules/morphdom/docs/virtual-dom.md +38 -0
- package/eleventy/node_modules/morphdom/factory.js +1 -0
- package/eleventy/node_modules/morphdom/index.d.ts +19 -0
- package/eleventy/node_modules/morphdom/package.json +63 -0
- package/eleventy/node_modules/morphdom/src/index.js +6 -0
- package/eleventy/node_modules/morphdom/src/morphAttrs.js +63 -0
- package/eleventy/node_modules/morphdom/src/morphdom.js +482 -0
- package/eleventy/node_modules/morphdom/src/specialElHandlers.js +110 -0
- package/eleventy/node_modules/morphdom/src/util.js +113 -0
- package/eleventy/node_modules/ms/index.js +162 -0
- package/eleventy/node_modules/ms/license.md +21 -0
- package/eleventy/node_modules/ms/package.json +38 -0
- package/eleventy/node_modules/ms/readme.md +59 -0
- package/eleventy/node_modules/node-retrieve-globals/.github/workflows/ci.yml +23 -0
- package/eleventy/node_modules/node-retrieve-globals/LICENSE +21 -0
- package/eleventy/node_modules/node-retrieve-globals/README.md +91 -0
- package/eleventy/node_modules/node-retrieve-globals/package.json +30 -0
- package/eleventy/node_modules/node-retrieve-globals/retrieveGlobals.js +374 -0
- package/eleventy/node_modules/node-retrieve-globals/test/test.js +270 -0
- package/eleventy/node_modules/node-retrieve-globals/util/getWorkingDirectory.js +18 -0
- package/eleventy/node_modules/node-retrieve-globals/util/vmModules.js +23 -0
- package/eleventy/node_modules/normalize-path/LICENSE +21 -0
- package/eleventy/node_modules/normalize-path/README.md +127 -0
- package/eleventy/node_modules/normalize-path/index.js +35 -0
- package/eleventy/node_modules/normalize-path/package.json +77 -0
- package/eleventy/node_modules/nunjucks/LICENSE +26 -0
- package/eleventy/node_modules/nunjucks/README.md +58 -0
- package/eleventy/node_modules/nunjucks/bin/precompile +58 -0
- package/eleventy/node_modules/nunjucks/bin/precompile.cmd +5 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks-slim.js +3709 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks-slim.js.map +1 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks-slim.min.js +3 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks-slim.min.js.map +1 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks.js +7021 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks.js.map +1 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks.min.js +3 -0
- package/eleventy/node_modules/nunjucks/browser/nunjucks.min.js.map +1 -0
- package/eleventy/node_modules/nunjucks/index.js +82 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/CHANGELOG.md +385 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/LICENSE +22 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/Readme.md +737 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/index.js +1756 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/package.json +48 -0
- package/eleventy/node_modules/nunjucks/node_modules/commander/typings/index.d.ts +386 -0
- package/eleventy/node_modules/nunjucks/package.json +112 -0
- package/eleventy/node_modules/nunjucks/src/compiler.js +1027 -0
- package/eleventy/node_modules/nunjucks/src/environment.js +548 -0
- package/eleventy/node_modules/nunjucks/src/express-app.js +23 -0
- package/eleventy/node_modules/nunjucks/src/filters.js +546 -0
- package/eleventy/node_modules/nunjucks/src/globals.js +65 -0
- package/eleventy/node_modules/nunjucks/src/jinja-compat.js +293 -0
- package/eleventy/node_modules/nunjucks/src/lexer.js +474 -0
- package/eleventy/node_modules/nunjucks/src/lib.js +325 -0
- package/eleventy/node_modules/nunjucks/src/loader.js +21 -0
- package/eleventy/node_modules/nunjucks/src/loaders.js +5 -0
- package/eleventy/node_modules/nunjucks/src/node-loaders.js +139 -0
- package/eleventy/node_modules/nunjucks/src/nodes.js +350 -0
- package/eleventy/node_modules/nunjucks/src/object.js +100 -0
- package/eleventy/node_modules/nunjucks/src/parser.js +1028 -0
- package/eleventy/node_modules/nunjucks/src/precompile-global.js +17 -0
- package/eleventy/node_modules/nunjucks/src/precompile.js +108 -0
- package/eleventy/node_modules/nunjucks/src/precompiled-loader.js +31 -0
- package/eleventy/node_modules/nunjucks/src/runtime.js +333 -0
- package/eleventy/node_modules/nunjucks/src/tests.js +265 -0
- package/eleventy/node_modules/nunjucks/src/transformer.js +166 -0
- package/eleventy/node_modules/nunjucks/src/web-loaders.js +94 -0
- package/eleventy/node_modules/on-finished/HISTORY.md +98 -0
- package/eleventy/node_modules/on-finished/LICENSE +23 -0
- package/eleventy/node_modules/on-finished/README.md +162 -0
- package/eleventy/node_modules/on-finished/index.js +234 -0
- package/eleventy/node_modules/on-finished/package.json +39 -0
- package/eleventy/node_modules/package-json-from-dist/LICENSE.md +63 -0
- package/eleventy/node_modules/package-json-from-dist/README.md +110 -0
- package/eleventy/node_modules/package-json-from-dist/dist/commonjs/index.d.ts +89 -0
- package/eleventy/node_modules/package-json-from-dist/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/package-json-from-dist/dist/commonjs/index.js +134 -0
- package/eleventy/node_modules/package-json-from-dist/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/package-json-from-dist/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/package-json-from-dist/dist/esm/index.d.ts +89 -0
- package/eleventy/node_modules/package-json-from-dist/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/package-json-from-dist/dist/esm/index.js +129 -0
- package/eleventy/node_modules/package-json-from-dist/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/package-json-from-dist/dist/esm/package.json +3 -0
- package/eleventy/node_modules/package-json-from-dist/package.json +68 -0
- package/eleventy/node_modules/parse-srcset/.jscs.json +83 -0
- package/eleventy/node_modules/parse-srcset/.jshintrc +15 -0
- package/eleventy/node_modules/parse-srcset/LICENSE +22 -0
- package/eleventy/node_modules/parse-srcset/README.md +19 -0
- package/eleventy/node_modules/parse-srcset/package.json +25 -0
- package/eleventy/node_modules/parse-srcset/src/parse-srcset.js +330 -0
- package/eleventy/node_modules/parse-srcset/tests/he.js +329 -0
- package/eleventy/node_modules/parse-srcset/tests/intern.js +74 -0
- package/eleventy/node_modules/parse-srcset/tests/unit/ps.js +345 -0
- package/eleventy/node_modules/parseurl/HISTORY.md +58 -0
- package/eleventy/node_modules/parseurl/LICENSE +24 -0
- package/eleventy/node_modules/parseurl/README.md +133 -0
- package/eleventy/node_modules/parseurl/index.js +158 -0
- package/eleventy/node_modules/parseurl/package.json +40 -0
- package/eleventy/node_modules/path-key/index.d.ts +40 -0
- package/eleventy/node_modules/path-key/index.js +16 -0
- package/eleventy/node_modules/path-key/license +9 -0
- package/eleventy/node_modules/path-key/package.json +39 -0
- package/eleventy/node_modules/path-key/readme.md +61 -0
- package/eleventy/node_modules/path-scurry/LICENSE.md +55 -0
- package/eleventy/node_modules/path-scurry/README.md +636 -0
- package/eleventy/node_modules/path-scurry/dist/commonjs/index.d.ts +1116 -0
- package/eleventy/node_modules/path-scurry/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/path-scurry/dist/commonjs/index.js +2014 -0
- package/eleventy/node_modules/path-scurry/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/path-scurry/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/path-scurry/dist/esm/index.d.ts +1116 -0
- package/eleventy/node_modules/path-scurry/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/path-scurry/dist/esm/index.js +1979 -0
- package/eleventy/node_modules/path-scurry/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/path-scurry/dist/esm/package.json +3 -0
- package/eleventy/node_modules/path-scurry/package.json +89 -0
- package/eleventy/node_modules/picomatch/CHANGELOG.md +136 -0
- package/eleventy/node_modules/picomatch/LICENSE +21 -0
- package/eleventy/node_modules/picomatch/README.md +708 -0
- package/eleventy/node_modules/picomatch/index.js +3 -0
- package/eleventy/node_modules/picomatch/lib/constants.js +179 -0
- package/eleventy/node_modules/picomatch/lib/parse.js +1091 -0
- package/eleventy/node_modules/picomatch/lib/picomatch.js +342 -0
- package/eleventy/node_modules/picomatch/lib/scan.js +391 -0
- package/eleventy/node_modules/picomatch/lib/utils.js +64 -0
- package/eleventy/node_modules/picomatch/package.json +81 -0
- package/eleventy/node_modules/pify/index.js +68 -0
- package/eleventy/node_modules/pify/license +21 -0
- package/eleventy/node_modules/pify/package.json +48 -0
- package/eleventy/node_modules/pify/readme.md +119 -0
- package/eleventy/node_modules/please-upgrade-node/.eslintrc.js +12 -0
- package/eleventy/node_modules/please-upgrade-node/.github/FUNDING.yml +1 -0
- package/eleventy/node_modules/please-upgrade-node/LICENSE +21 -0
- package/eleventy/node_modules/please-upgrade-node/README.md +72 -0
- package/eleventy/node_modules/please-upgrade-node/index.d.ts +11 -0
- package/eleventy/node_modules/please-upgrade-node/index.js +25 -0
- package/eleventy/node_modules/please-upgrade-node/package.json +46 -0
- package/eleventy/node_modules/posthtml/lib/api.js +145 -0
- package/eleventy/node_modules/posthtml/lib/index.js +323 -0
- package/eleventy/node_modules/posthtml/license +21 -0
- package/eleventy/node_modules/posthtml/package.json +64 -0
- package/eleventy/node_modules/posthtml/readme.md +412 -0
- package/eleventy/node_modules/posthtml/types/posthtml.d.ts +108 -0
- package/eleventy/node_modules/posthtml-match-helper/LICENSE +21 -0
- package/eleventy/node_modules/posthtml-match-helper/README.md +84 -0
- package/eleventy/node_modules/posthtml-match-helper/lib/index.d.ts +10 -0
- package/eleventy/node_modules/posthtml-match-helper/lib/index.js +149 -0
- package/eleventy/node_modules/posthtml-match-helper/package.json +41 -0
- package/eleventy/node_modules/posthtml-parser/dist/chunk.2UQLUWPH.js +1 -0
- package/eleventy/node_modules/posthtml-parser/dist/index.d.ts +27 -0
- package/eleventy/node_modules/posthtml-parser/dist/index.js +1 -0
- package/eleventy/node_modules/posthtml-parser/dist/location-tracker.d.ts +17 -0
- package/eleventy/node_modules/posthtml-parser/dist/location-tracker.js +1 -0
- package/eleventy/node_modules/posthtml-parser/license +22 -0
- package/eleventy/node_modules/posthtml-parser/package.json +69 -0
- package/eleventy/node_modules/posthtml-parser/readme.md +130 -0
- package/eleventy/node_modules/posthtml-render/changelog.md +310 -0
- package/eleventy/node_modules/posthtml-render/dist/index.d.ts +67 -0
- package/eleventy/node_modules/posthtml-render/dist/index.js +1 -0
- package/eleventy/node_modules/posthtml-render/license +22 -0
- package/eleventy/node_modules/posthtml-render/package.json +55 -0
- package/eleventy/node_modules/posthtml-render/readme.md +225 -0
- package/eleventy/node_modules/promise/.jshintrc +5 -0
- package/eleventy/node_modules/promise/LICENSE +19 -0
- package/eleventy/node_modules/promise/Readme.md +231 -0
- package/eleventy/node_modules/promise/build.js +69 -0
- package/eleventy/node_modules/promise/core.js +5 -0
- package/eleventy/node_modules/promise/domains/core.js +213 -0
- package/eleventy/node_modules/promise/domains/done.js +13 -0
- package/eleventy/node_modules/promise/domains/es6-extensions.js +107 -0
- package/eleventy/node_modules/promise/domains/finally.js +16 -0
- package/eleventy/node_modules/promise/domains/index.js +8 -0
- package/eleventy/node_modules/promise/domains/node-extensions.js +130 -0
- package/eleventy/node_modules/promise/domains/rejection-tracking.js +113 -0
- package/eleventy/node_modules/promise/domains/synchronous.js +62 -0
- package/eleventy/node_modules/promise/index.d.ts +256 -0
- package/eleventy/node_modules/promise/index.js +3 -0
- package/eleventy/node_modules/promise/lib/core.js +213 -0
- package/eleventy/node_modules/promise/lib/done.js +13 -0
- package/eleventy/node_modules/promise/lib/es6-extensions.js +107 -0
- package/eleventy/node_modules/promise/lib/finally.js +16 -0
- package/eleventy/node_modules/promise/lib/index.js +8 -0
- package/eleventy/node_modules/promise/lib/node-extensions.js +130 -0
- package/eleventy/node_modules/promise/lib/rejection-tracking.js +113 -0
- package/eleventy/node_modules/promise/lib/synchronous.js +62 -0
- package/eleventy/node_modules/promise/package.json +35 -0
- package/eleventy/node_modules/promise/polyfill-done.js +12 -0
- package/eleventy/node_modules/promise/polyfill.js +10 -0
- package/eleventy/node_modules/promise/setimmediate/core.js +213 -0
- package/eleventy/node_modules/promise/setimmediate/done.js +13 -0
- package/eleventy/node_modules/promise/setimmediate/es6-extensions.js +107 -0
- package/eleventy/node_modules/promise/setimmediate/finally.js +16 -0
- package/eleventy/node_modules/promise/setimmediate/index.js +8 -0
- package/eleventy/node_modules/promise/setimmediate/node-extensions.js +130 -0
- package/eleventy/node_modules/promise/setimmediate/rejection-tracking.js +113 -0
- package/eleventy/node_modules/promise/setimmediate/synchronous.js +62 -0
- package/eleventy/node_modules/promise/src/core.js +213 -0
- package/eleventy/node_modules/promise/src/done.js +13 -0
- package/eleventy/node_modules/promise/src/es6-extensions.js +107 -0
- package/eleventy/node_modules/promise/src/finally.js +16 -0
- package/eleventy/node_modules/promise/src/index.js +8 -0
- package/eleventy/node_modules/promise/src/node-extensions.js +130 -0
- package/eleventy/node_modules/promise/src/rejection-tracking.js +113 -0
- package/eleventy/node_modules/promise/src/synchronous.js +62 -0
- package/eleventy/node_modules/prr/.jshintrc +61 -0
- package/eleventy/node_modules/prr/.travis.yml +10 -0
- package/eleventy/node_modules/prr/LICENSE.md +11 -0
- package/eleventy/node_modules/prr/README.md +47 -0
- package/eleventy/node_modules/prr/package.json +26 -0
- package/eleventy/node_modules/prr/prr.js +63 -0
- package/eleventy/node_modules/prr/test.js +169 -0
- package/eleventy/node_modules/punycode.js/LICENSE-MIT.txt +20 -0
- package/eleventy/node_modules/punycode.js/README.md +148 -0
- package/eleventy/node_modules/punycode.js/package.json +58 -0
- package/eleventy/node_modules/punycode.js/punycode.es6.js +444 -0
- package/eleventy/node_modules/punycode.js/punycode.js +443 -0
- package/eleventy/node_modules/queue-microtask/LICENSE +20 -0
- package/eleventy/node_modules/queue-microtask/README.md +90 -0
- package/eleventy/node_modules/queue-microtask/index.d.ts +2 -0
- package/eleventy/node_modules/queue-microtask/index.js +9 -0
- package/eleventy/node_modules/queue-microtask/package.json +55 -0
- package/eleventy/node_modules/range-parser/HISTORY.md +56 -0
- package/eleventy/node_modules/range-parser/LICENSE +23 -0
- package/eleventy/node_modules/range-parser/README.md +84 -0
- package/eleventy/node_modules/range-parser/index.js +162 -0
- package/eleventy/node_modules/range-parser/package.json +44 -0
- package/eleventy/node_modules/readdirp/LICENSE +21 -0
- package/eleventy/node_modules/readdirp/README.md +122 -0
- package/eleventy/node_modules/readdirp/index.d.ts +43 -0
- package/eleventy/node_modules/readdirp/index.js +287 -0
- package/eleventy/node_modules/readdirp/package.json +122 -0
- package/eleventy/node_modules/reusify/.coveralls.yml +1 -0
- package/eleventy/node_modules/reusify/.travis.yml +28 -0
- package/eleventy/node_modules/reusify/LICENSE +22 -0
- package/eleventy/node_modules/reusify/README.md +145 -0
- package/eleventy/node_modules/reusify/benchmarks/createNoCodeFunction.js +30 -0
- package/eleventy/node_modules/reusify/benchmarks/fib.js +13 -0
- package/eleventy/node_modules/reusify/benchmarks/reuseNoCodeFunction.js +38 -0
- package/eleventy/node_modules/reusify/package.json +45 -0
- package/eleventy/node_modules/reusify/reusify.js +33 -0
- package/eleventy/node_modules/reusify/test.js +66 -0
- package/eleventy/node_modules/rimraf/LICENSE +15 -0
- package/eleventy/node_modules/rimraf/README.md +220 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/default-tmp.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/default-tmp.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/default-tmp.js +61 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/default-tmp.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fix-eperm.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fix-eperm.js +58 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fix-eperm.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fs.d.ts +17 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fs.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fs.js +46 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/fs.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/ignore-enoent.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/ignore-enoent.js +21 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/ignore-enoent.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/index.d.ts +50 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/index.js +78 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/index.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/opt-arg.d.ts +34 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/opt-arg.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/opt-arg.js +53 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/opt-arg.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/package.json +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/path-arg.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/path-arg.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/path-arg.js +52 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/path-arg.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/platform.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/platform.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/platform.js +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/platform.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/readdir-or-error.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/readdir-or-error.js +19 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/readdir-or-error.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/retry-busy.d.ts +8 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/retry-busy.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/retry-busy.js +68 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/retry-busy.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-manual.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-manual.js +12 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-manual.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-move-remove.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js +192 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-move-remove.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-native.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-native.js +24 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-native.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-posix.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-posix.js +123 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-posix.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-windows.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-windows.js +182 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/rimraf-windows.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/use-native.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/use-native.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/use-native.js +22 -0
- package/eleventy/node_modules/rimraf/dist/commonjs/use-native.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/bin.d.mts +8 -0
- package/eleventy/node_modules/rimraf/dist/esm/bin.d.mts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/bin.mjs +256 -0
- package/eleventy/node_modules/rimraf/dist/esm/bin.mjs.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/default-tmp.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/default-tmp.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/default-tmp.js +55 -0
- package/eleventy/node_modules/rimraf/dist/esm/default-tmp.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/fix-eperm.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/fix-eperm.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/fix-eperm.js +53 -0
- package/eleventy/node_modules/rimraf/dist/esm/fix-eperm.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/fs.d.ts +17 -0
- package/eleventy/node_modules/rimraf/dist/esm/fs.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/fs.js +31 -0
- package/eleventy/node_modules/rimraf/dist/esm/fs.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/ignore-enoent.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/ignore-enoent.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/ignore-enoent.js +16 -0
- package/eleventy/node_modules/rimraf/dist/esm/ignore-enoent.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/index.d.ts +50 -0
- package/eleventy/node_modules/rimraf/dist/esm/index.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/index.js +70 -0
- package/eleventy/node_modules/rimraf/dist/esm/index.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/opt-arg.d.ts +34 -0
- package/eleventy/node_modules/rimraf/dist/esm/opt-arg.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/opt-arg.js +46 -0
- package/eleventy/node_modules/rimraf/dist/esm/opt-arg.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/package.json +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/path-arg.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/path-arg.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/path-arg.js +47 -0
- package/eleventy/node_modules/rimraf/dist/esm/path-arg.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/platform.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/platform.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/platform.js +2 -0
- package/eleventy/node_modules/rimraf/dist/esm/platform.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/readdir-or-error.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/readdir-or-error.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/readdir-or-error.js +14 -0
- package/eleventy/node_modules/rimraf/dist/esm/readdir-or-error.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/retry-busy.d.ts +8 -0
- package/eleventy/node_modules/rimraf/dist/esm/retry-busy.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/retry-busy.js +63 -0
- package/eleventy/node_modules/rimraf/dist/esm/retry-busy.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-manual.d.ts +3 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-manual.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-manual.js +6 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-manual.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-move-remove.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-move-remove.js +187 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-move-remove.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-native.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-native.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-native.js +19 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-native.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-posix.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-posix.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-posix.js +118 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-posix.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-windows.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-windows.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-windows.js +177 -0
- package/eleventy/node_modules/rimraf/dist/esm/rimraf-windows.js.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/use-native.d.ts +4 -0
- package/eleventy/node_modules/rimraf/dist/esm/use-native.d.ts.map +1 -0
- package/eleventy/node_modules/rimraf/dist/esm/use-native.js +16 -0
- package/eleventy/node_modules/rimraf/dist/esm/use-native.js.map +1 -0
- package/eleventy/node_modules/rimraf/package.json +89 -0
- package/eleventy/node_modules/run-parallel/LICENSE +20 -0
- package/eleventy/node_modules/run-parallel/README.md +85 -0
- package/eleventy/node_modules/run-parallel/index.js +51 -0
- package/eleventy/node_modules/run-parallel/package.json +58 -0
- package/eleventy/node_modules/section-matter/LICENSE +21 -0
- package/eleventy/node_modules/section-matter/README.md +236 -0
- package/eleventy/node_modules/section-matter/index.js +136 -0
- package/eleventy/node_modules/section-matter/package.json +55 -0
- package/eleventy/node_modules/semver/LICENSE +15 -0
- package/eleventy/node_modules/semver/README.md +654 -0
- package/eleventy/node_modules/semver/bin/semver.js +188 -0
- package/eleventy/node_modules/semver/classes/comparator.js +141 -0
- package/eleventy/node_modules/semver/classes/index.js +5 -0
- package/eleventy/node_modules/semver/classes/range.js +554 -0
- package/eleventy/node_modules/semver/classes/semver.js +302 -0
- package/eleventy/node_modules/semver/functions/clean.js +6 -0
- package/eleventy/node_modules/semver/functions/cmp.js +52 -0
- package/eleventy/node_modules/semver/functions/coerce.js +60 -0
- package/eleventy/node_modules/semver/functions/compare-build.js +7 -0
- package/eleventy/node_modules/semver/functions/compare-loose.js +3 -0
- package/eleventy/node_modules/semver/functions/compare.js +5 -0
- package/eleventy/node_modules/semver/functions/diff.js +65 -0
- package/eleventy/node_modules/semver/functions/eq.js +3 -0
- package/eleventy/node_modules/semver/functions/gt.js +3 -0
- package/eleventy/node_modules/semver/functions/gte.js +3 -0
- package/eleventy/node_modules/semver/functions/inc.js +19 -0
- package/eleventy/node_modules/semver/functions/lt.js +3 -0
- package/eleventy/node_modules/semver/functions/lte.js +3 -0
- package/eleventy/node_modules/semver/functions/major.js +3 -0
- package/eleventy/node_modules/semver/functions/minor.js +3 -0
- package/eleventy/node_modules/semver/functions/neq.js +3 -0
- package/eleventy/node_modules/semver/functions/parse.js +16 -0
- package/eleventy/node_modules/semver/functions/patch.js +3 -0
- package/eleventy/node_modules/semver/functions/prerelease.js +6 -0
- package/eleventy/node_modules/semver/functions/rcompare.js +3 -0
- package/eleventy/node_modules/semver/functions/rsort.js +3 -0
- package/eleventy/node_modules/semver/functions/satisfies.js +10 -0
- package/eleventy/node_modules/semver/functions/sort.js +3 -0
- package/eleventy/node_modules/semver/functions/valid.js +6 -0
- package/eleventy/node_modules/semver/index.js +89 -0
- package/eleventy/node_modules/semver/internal/constants.js +35 -0
- package/eleventy/node_modules/semver/internal/debug.js +9 -0
- package/eleventy/node_modules/semver/internal/identifiers.js +23 -0
- package/eleventy/node_modules/semver/internal/lrucache.js +40 -0
- package/eleventy/node_modules/semver/internal/parse-options.js +15 -0
- package/eleventy/node_modules/semver/internal/re.js +217 -0
- package/eleventy/node_modules/semver/package.json +77 -0
- package/eleventy/node_modules/semver/preload.js +2 -0
- package/eleventy/node_modules/semver/range.bnf +16 -0
- package/eleventy/node_modules/semver/ranges/gtr.js +4 -0
- package/eleventy/node_modules/semver/ranges/intersects.js +7 -0
- package/eleventy/node_modules/semver/ranges/ltr.js +4 -0
- package/eleventy/node_modules/semver/ranges/max-satisfying.js +25 -0
- package/eleventy/node_modules/semver/ranges/min-satisfying.js +24 -0
- package/eleventy/node_modules/semver/ranges/min-version.js +61 -0
- package/eleventy/node_modules/semver/ranges/outside.js +80 -0
- package/eleventy/node_modules/semver/ranges/simplify.js +47 -0
- package/eleventy/node_modules/semver/ranges/subset.js +247 -0
- package/eleventy/node_modules/semver/ranges/to-comparators.js +8 -0
- package/eleventy/node_modules/semver/ranges/valid.js +11 -0
- package/eleventy/node_modules/semver-compare/.travis.yml +6 -0
- package/eleventy/node_modules/semver-compare/LICENSE +18 -0
- package/eleventy/node_modules/semver-compare/example/cmp.js +13 -0
- package/eleventy/node_modules/semver-compare/example/lex.js +12 -0
- package/eleventy/node_modules/semver-compare/index.js +13 -0
- package/eleventy/node_modules/semver-compare/package.json +31 -0
- package/eleventy/node_modules/semver-compare/readme.markdown +77 -0
- package/eleventy/node_modules/semver-compare/test/cmp.js +29 -0
- package/eleventy/node_modules/send/HISTORY.md +571 -0
- package/eleventy/node_modules/send/LICENSE +23 -0
- package/eleventy/node_modules/send/README.md +320 -0
- package/eleventy/node_modules/send/SECURITY.md +24 -0
- package/eleventy/node_modules/send/index.js +1014 -0
- package/eleventy/node_modules/send/package.json +62 -0
- package/eleventy/node_modules/setprototypeof/LICENSE +13 -0
- package/eleventy/node_modules/setprototypeof/README.md +31 -0
- package/eleventy/node_modules/setprototypeof/index.d.ts +2 -0
- package/eleventy/node_modules/setprototypeof/index.js +17 -0
- package/eleventy/node_modules/setprototypeof/package.json +38 -0
- package/eleventy/node_modules/setprototypeof/test/index.js +24 -0
- package/eleventy/node_modules/shebang-command/index.js +19 -0
- package/eleventy/node_modules/shebang-command/license +9 -0
- package/eleventy/node_modules/shebang-command/package.json +34 -0
- package/eleventy/node_modules/shebang-command/readme.md +34 -0
- package/eleventy/node_modules/shebang-regex/index.d.ts +22 -0
- package/eleventy/node_modules/shebang-regex/index.js +2 -0
- package/eleventy/node_modules/shebang-regex/license +9 -0
- package/eleventy/node_modules/shebang-regex/package.json +35 -0
- package/eleventy/node_modules/shebang-regex/readme.md +33 -0
- package/eleventy/node_modules/signal-exit/LICENSE.txt +16 -0
- package/eleventy/node_modules/signal-exit/README.md +74 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/browser.js +10 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/index.js +279 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/package.json +3 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/signals.js +42 -0
- package/eleventy/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/browser.js +4 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/index.js +275 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/package.json +3 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/signals.js +39 -0
- package/eleventy/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
- package/eleventy/node_modules/signal-exit/package.json +106 -0
- package/eleventy/node_modules/slash/index.js +11 -0
- package/eleventy/node_modules/slash/package.json +33 -0
- package/eleventy/node_modules/slash/readme.md +44 -0
- package/eleventy/node_modules/slugify/CHANGELOG.md +94 -0
- package/eleventy/node_modules/slugify/LICENSE +21 -0
- package/eleventy/node_modules/slugify/README.md +98 -0
- package/eleventy/node_modules/slugify/package.json +42 -0
- package/eleventy/node_modules/slugify/slugify.d.ts +24 -0
- package/eleventy/node_modules/slugify/slugify.js +69 -0
- package/eleventy/node_modules/sprintf-js/LICENSE +24 -0
- package/eleventy/node_modules/sprintf-js/README.md +88 -0
- package/eleventy/node_modules/sprintf-js/bower.json +14 -0
- package/eleventy/node_modules/sprintf-js/demo/angular.html +20 -0
- package/eleventy/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
- package/eleventy/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
- package/eleventy/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
- package/eleventy/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
- package/eleventy/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
- package/eleventy/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
- package/eleventy/node_modules/sprintf-js/gruntfile.js +36 -0
- package/eleventy/node_modules/sprintf-js/package.json +22 -0
- package/eleventy/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
- package/eleventy/node_modules/sprintf-js/src/sprintf.js +208 -0
- package/eleventy/node_modules/sprintf-js/test/test.js +82 -0
- package/eleventy/node_modules/ssri/LICENSE.md +16 -0
- package/eleventy/node_modules/ssri/README.md +528 -0
- package/eleventy/node_modules/ssri/lib/index.js +580 -0
- package/eleventy/node_modules/ssri/package.json +66 -0
- package/eleventy/node_modules/statuses/HISTORY.md +82 -0
- package/eleventy/node_modules/statuses/LICENSE +23 -0
- package/eleventy/node_modules/statuses/README.md +136 -0
- package/eleventy/node_modules/statuses/codes.json +65 -0
- package/eleventy/node_modules/statuses/index.js +146 -0
- package/eleventy/node_modules/statuses/package.json +49 -0
- package/eleventy/node_modules/string-width/index.d.ts +29 -0
- package/eleventy/node_modules/string-width/index.js +54 -0
- package/eleventy/node_modules/string-width/license +9 -0
- package/eleventy/node_modules/string-width/package.json +59 -0
- package/eleventy/node_modules/string-width/readme.md +67 -0
- package/eleventy/node_modules/string-width-cjs/index.d.ts +29 -0
- package/eleventy/node_modules/string-width-cjs/index.js +47 -0
- package/eleventy/node_modules/string-width-cjs/license +9 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/ansi-regex/index.d.ts +37 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/ansi-regex/index.js +10 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/ansi-regex/license +9 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/ansi-regex/package.json +55 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/ansi-regex/readme.md +78 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/README.md +73 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/es2015/index.js +6 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/es2015/text.js +6 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/index.d.ts +23 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/index.js +6 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/package.json +50 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/emoji-regex/text.js +6 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/strip-ansi/index.d.ts +17 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/strip-ansi/index.js +4 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/strip-ansi/license +9 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/strip-ansi/package.json +54 -0
- package/eleventy/node_modules/string-width-cjs/node_modules/strip-ansi/readme.md +46 -0
- package/eleventy/node_modules/string-width-cjs/package.json +56 -0
- package/eleventy/node_modules/string-width-cjs/readme.md +50 -0
- package/eleventy/node_modules/strip-ansi/index.d.ts +15 -0
- package/eleventy/node_modules/strip-ansi/index.js +14 -0
- package/eleventy/node_modules/strip-ansi/license +9 -0
- package/eleventy/node_modules/strip-ansi/package.json +57 -0
- package/eleventy/node_modules/strip-ansi/readme.md +41 -0
- package/eleventy/node_modules/strip-ansi-cjs/index.d.ts +17 -0
- package/eleventy/node_modules/strip-ansi-cjs/index.js +4 -0
- package/eleventy/node_modules/strip-ansi-cjs/license +9 -0
- package/eleventy/node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.d.ts +37 -0
- package/eleventy/node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.js +10 -0
- package/eleventy/node_modules/strip-ansi-cjs/node_modules/ansi-regex/license +9 -0
- package/eleventy/node_modules/strip-ansi-cjs/node_modules/ansi-regex/package.json +55 -0
- package/eleventy/node_modules/strip-ansi-cjs/node_modules/ansi-regex/readme.md +78 -0
- package/eleventy/node_modules/strip-ansi-cjs/package.json +54 -0
- package/eleventy/node_modules/strip-ansi-cjs/readme.md +46 -0
- package/eleventy/node_modules/strip-bom-string/LICENSE +21 -0
- package/eleventy/node_modules/strip-bom-string/README.md +66 -0
- package/eleventy/node_modules/strip-bom-string/index.js +15 -0
- package/eleventy/node_modules/strip-bom-string/package.json +60 -0
- package/eleventy/node_modules/to-regex-range/LICENSE +21 -0
- package/eleventy/node_modules/to-regex-range/README.md +305 -0
- package/eleventy/node_modules/to-regex-range/index.js +288 -0
- package/eleventy/node_modules/to-regex-range/package.json +88 -0
- package/eleventy/node_modules/toidentifier/HISTORY.md +9 -0
- package/eleventy/node_modules/toidentifier/LICENSE +21 -0
- package/eleventy/node_modules/toidentifier/README.md +61 -0
- package/eleventy/node_modules/toidentifier/index.js +32 -0
- package/eleventy/node_modules/toidentifier/package.json +38 -0
- package/eleventy/node_modules/uc.micro/LICENSE.txt +20 -0
- package/eleventy/node_modules/uc.micro/README.md +14 -0
- package/eleventy/node_modules/uc.micro/categories/Cc/regex.mjs +1 -0
- package/eleventy/node_modules/uc.micro/categories/Cf/regex.mjs +1 -0
- package/eleventy/node_modules/uc.micro/categories/P/regex.mjs +1 -0
- package/eleventy/node_modules/uc.micro/categories/S/regex.mjs +1 -0
- package/eleventy/node_modules/uc.micro/categories/Z/regex.mjs +1 -0
- package/eleventy/node_modules/uc.micro/index.mjs +8 -0
- package/eleventy/node_modules/uc.micro/package.json +37 -0
- package/eleventy/node_modules/uc.micro/properties/Any/regex.mjs +1 -0
- package/eleventy/node_modules/unpipe/HISTORY.md +4 -0
- package/eleventy/node_modules/unpipe/LICENSE +22 -0
- package/eleventy/node_modules/unpipe/README.md +43 -0
- package/eleventy/node_modules/unpipe/index.js +69 -0
- package/eleventy/node_modules/unpipe/package.json +27 -0
- package/eleventy/node_modules/urlpattern-polyfill/LICENSE +19 -0
- package/eleventy/node_modules/urlpattern-polyfill/README.md +242 -0
- package/eleventy/node_modules/urlpattern-polyfill/dist/index.d.ts +9 -0
- package/eleventy/node_modules/urlpattern-polyfill/dist/types.d.ts +49 -0
- package/eleventy/node_modules/urlpattern-polyfill/dist/urlpattern.cjs +1 -0
- package/eleventy/node_modules/urlpattern-polyfill/dist/urlpattern.js +1 -0
- package/eleventy/node_modules/urlpattern-polyfill/index.cjs +7 -0
- package/eleventy/node_modules/urlpattern-polyfill/index.js +7 -0
- package/eleventy/node_modules/urlpattern-polyfill/package.json +149 -0
- package/eleventy/node_modules/which/CHANGELOG.md +166 -0
- package/eleventy/node_modules/which/LICENSE +15 -0
- package/eleventy/node_modules/which/README.md +54 -0
- package/eleventy/node_modules/which/bin/node-which +52 -0
- package/eleventy/node_modules/which/package.json +43 -0
- package/eleventy/node_modules/which/which.js +125 -0
- package/eleventy/node_modules/wrap-ansi/index.d.ts +41 -0
- package/eleventy/node_modules/wrap-ansi/index.js +214 -0
- package/eleventy/node_modules/wrap-ansi/license +9 -0
- package/eleventy/node_modules/wrap-ansi/package.json +69 -0
- package/eleventy/node_modules/wrap-ansi/readme.md +91 -0
- package/eleventy/node_modules/wrap-ansi-cjs/index.js +216 -0
- package/eleventy/node_modules/wrap-ansi-cjs/license +9 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/index.d.ts +37 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/index.js +10 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/license +9 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/package.json +55 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-regex/readme.md +78 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.d.ts +345 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.js +163 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/license +9 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/package.json +56 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/readme.md +152 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/README.md +73 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/es2015/index.js +6 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/es2015/text.js +6 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/index.d.ts +23 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/index.js +6 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/package.json +50 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/emoji-regex/text.js +6 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/string-width/index.d.ts +29 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/string-width/index.js +47 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/string-width/license +9 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/string-width/package.json +56 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/string-width/readme.md +50 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.d.ts +17 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.js +4 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/license +9 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/package.json +54 -0
- package/eleventy/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/readme.md +46 -0
- package/eleventy/node_modules/wrap-ansi-cjs/package.json +62 -0
- package/eleventy/node_modules/wrap-ansi-cjs/readme.md +91 -0
- package/eleventy/node_modules/ws/LICENSE +20 -0
- package/eleventy/node_modules/ws/README.md +548 -0
- package/eleventy/node_modules/ws/browser.js +8 -0
- package/eleventy/node_modules/ws/index.js +13 -0
- package/eleventy/node_modules/ws/lib/buffer-util.js +131 -0
- package/eleventy/node_modules/ws/lib/constants.js +18 -0
- package/eleventy/node_modules/ws/lib/event-target.js +292 -0
- package/eleventy/node_modules/ws/lib/extension.js +203 -0
- package/eleventy/node_modules/ws/lib/limiter.js +55 -0
- package/eleventy/node_modules/ws/lib/permessage-deflate.js +514 -0
- package/eleventy/node_modules/ws/lib/receiver.js +706 -0
- package/eleventy/node_modules/ws/lib/sender.js +602 -0
- package/eleventy/node_modules/ws/lib/stream.js +159 -0
- package/eleventy/node_modules/ws/lib/subprotocol.js +62 -0
- package/eleventy/node_modules/ws/lib/validation.js +152 -0
- package/eleventy/node_modules/ws/lib/websocket-server.js +540 -0
- package/eleventy/node_modules/ws/lib/websocket.js +1388 -0
- package/eleventy/node_modules/ws/package.json +69 -0
- package/eleventy/node_modules/ws/wrapper.mjs +8 -0
- package/package.json +1 -1
- package/src/embed/index.html +8 -1
- package/src/js/core/ConfigFactory.js +25 -2
- package/src/js/core/TimelineConfig.js +2 -2
- package/src/js/core/__tests__/ConfigFactory.test.js +14 -1
- package/src/js/slider/SlideNav.js +1 -1
- package/src/less/Variables.less +4 -0
- package/src/less/fonts/font.abril-droidsans.less +7 -5
- package/src/less/fonts/font.amatic-andika.less +4 -4
- package/src/less/fonts/font.bevan-pontanosans.less +5 -4
- package/src/less/fonts/font.bitter-raleway.less +3 -3
- package/src/less/fonts/font.clicker-garamond.less +3 -3
- package/src/less/fonts/font.dancing-ledger.less +3 -4
- package/src/less/fonts/font.fjalla-average.less +4 -4
- package/src/less/fonts/font.lustria-lato.less +4 -4
- package/src/less/fonts/font.medula-lato.less +3 -3
- package/src/less/fonts/font.oldstandard.less +3 -3
- package/src/less/fonts/font.opensans-gentiumbook.less +6 -6
- package/src/less/fonts/font.playfair-faunaone.less +5 -7
- package/src/less/fonts/font.playfair.less +4 -4
- package/src/less/fonts/font.pt.less +5 -5
- package/src/less/fonts/font.roboto-megrim.less +3 -4
- package/src/less/fonts/font.rufina-sintony.less +4 -4
- package/src/less/fonts/font.ubuntu.less +3 -3
- package/src/less/fonts/font.unicaone-vollkorn.less +4 -5
- package/src/less/slider/TL.SlideNav.less +17 -6
- package/src/less/themes/contrast/Variables.less +3 -1
- package/src/less/themes/dark/Variables.less +2 -0
- package/src/less/timenav/TL.TimeGroup.less +2 -2
- package/src/less/timenav/TL.TimeNav.less +2 -0
- package/src/template/index.html +5 -1
- package/dist/css/themes/timeline.theme.contrast.css +0 -2963
- package/dist/css/themes/timeline.theme.dark.css +0 -2963
|
@@ -0,0 +1,4891 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* liquidjs@10.20.2, https://github.com/harttle/liquidjs
|
|
3
|
+
* (c) 2016-2025 harttle
|
|
4
|
+
* Released under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
class Token {
|
|
7
|
+
constructor(kind, input, begin, end, file) {
|
|
8
|
+
this.kind = kind;
|
|
9
|
+
this.input = input;
|
|
10
|
+
this.begin = begin;
|
|
11
|
+
this.end = end;
|
|
12
|
+
this.file = file;
|
|
13
|
+
}
|
|
14
|
+
getText() {
|
|
15
|
+
return this.input.slice(this.begin, this.end);
|
|
16
|
+
}
|
|
17
|
+
getPosition() {
|
|
18
|
+
let [row, col] = [1, 1];
|
|
19
|
+
for (let i = 0; i < this.begin; i++) {
|
|
20
|
+
if (this.input[i] === '\n') {
|
|
21
|
+
row++;
|
|
22
|
+
col = 1;
|
|
23
|
+
}
|
|
24
|
+
else
|
|
25
|
+
col++;
|
|
26
|
+
}
|
|
27
|
+
return [row, col];
|
|
28
|
+
}
|
|
29
|
+
size() {
|
|
30
|
+
return this.end - this.begin;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
class Drop {
|
|
35
|
+
liquidMethodMissing(key) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const toString$1 = Object.prototype.toString;
|
|
41
|
+
const toLowerCase = String.prototype.toLowerCase;
|
|
42
|
+
const hasOwnProperty = Object.hasOwnProperty;
|
|
43
|
+
function isString(value) {
|
|
44
|
+
return typeof value === 'string';
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
47
|
+
function isFunction(value) {
|
|
48
|
+
return typeof value === 'function';
|
|
49
|
+
}
|
|
50
|
+
function isPromise(val) {
|
|
51
|
+
return val && isFunction(val.then);
|
|
52
|
+
}
|
|
53
|
+
function isIterator(val) {
|
|
54
|
+
return val && isFunction(val.next) && isFunction(val.throw) && isFunction(val.return);
|
|
55
|
+
}
|
|
56
|
+
function escapeRegex(str) {
|
|
57
|
+
return str.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
58
|
+
}
|
|
59
|
+
function stringify(value) {
|
|
60
|
+
value = toValue(value);
|
|
61
|
+
if (isString(value))
|
|
62
|
+
return value;
|
|
63
|
+
if (isNil(value))
|
|
64
|
+
return '';
|
|
65
|
+
if (isArray(value))
|
|
66
|
+
return value.map(x => stringify(x)).join('');
|
|
67
|
+
return String(value);
|
|
68
|
+
}
|
|
69
|
+
function toEnumerable(val) {
|
|
70
|
+
val = toValue(val);
|
|
71
|
+
if (isArray(val))
|
|
72
|
+
return val;
|
|
73
|
+
if (isString(val) && val.length > 0)
|
|
74
|
+
return [val];
|
|
75
|
+
if (isIterable(val))
|
|
76
|
+
return Array.from(val);
|
|
77
|
+
if (isObject(val))
|
|
78
|
+
return Object.keys(val).map((key) => [key, val[key]]);
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
function toArray(val) {
|
|
82
|
+
val = toValue(val);
|
|
83
|
+
if (isNil(val))
|
|
84
|
+
return [];
|
|
85
|
+
if (isArray(val))
|
|
86
|
+
return val;
|
|
87
|
+
return [val];
|
|
88
|
+
}
|
|
89
|
+
function toValue(value) {
|
|
90
|
+
return (value instanceof Drop && isFunction(value.valueOf)) ? value.valueOf() : value;
|
|
91
|
+
}
|
|
92
|
+
function toNumber(value) {
|
|
93
|
+
value = Number(value);
|
|
94
|
+
return isNaN(value) ? 0 : value;
|
|
95
|
+
}
|
|
96
|
+
function isNumber(value) {
|
|
97
|
+
return typeof value === 'number';
|
|
98
|
+
}
|
|
99
|
+
function toLiquid(value) {
|
|
100
|
+
if (value && isFunction(value.toLiquid))
|
|
101
|
+
return toLiquid(value.toLiquid());
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
function isNil(value) {
|
|
105
|
+
return value == null;
|
|
106
|
+
}
|
|
107
|
+
function isUndefined(value) {
|
|
108
|
+
return value === undefined;
|
|
109
|
+
}
|
|
110
|
+
function isArray(value) {
|
|
111
|
+
// be compatible with IE 8
|
|
112
|
+
return toString$1.call(value) === '[object Array]';
|
|
113
|
+
}
|
|
114
|
+
function isArrayLike(value) {
|
|
115
|
+
return value && isNumber(value.length);
|
|
116
|
+
}
|
|
117
|
+
function isIterable(value) {
|
|
118
|
+
return isObject(value) && Symbol.iterator in value;
|
|
119
|
+
}
|
|
120
|
+
/*
|
|
121
|
+
* Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.
|
|
122
|
+
* The iteratee is invoked with three arguments: (value, key, object).
|
|
123
|
+
* Iteratee functions may exit iteration early by explicitly returning false.
|
|
124
|
+
* @param {Object} object The object to iterate over.
|
|
125
|
+
* @param {Function} iteratee The function invoked per iteration.
|
|
126
|
+
* @return {Object} Returns object.
|
|
127
|
+
*/
|
|
128
|
+
function forOwn(obj, iteratee) {
|
|
129
|
+
obj = obj || {};
|
|
130
|
+
for (const k in obj) {
|
|
131
|
+
if (hasOwnProperty.call(obj, k)) {
|
|
132
|
+
if (iteratee(obj[k], k, obj) === false)
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return obj;
|
|
137
|
+
}
|
|
138
|
+
function last(arr) {
|
|
139
|
+
return arr[arr.length - 1];
|
|
140
|
+
}
|
|
141
|
+
/*
|
|
142
|
+
* Checks if value is the language type of Object.
|
|
143
|
+
* (e.g. arrays, functions, objects, regexes, new Number(0), and new String(''))
|
|
144
|
+
* @param {any} value The value to check.
|
|
145
|
+
* @return {Boolean} Returns true if value is an object, else false.
|
|
146
|
+
*/
|
|
147
|
+
function isObject(value) {
|
|
148
|
+
const type = typeof value;
|
|
149
|
+
return value !== null && (type === 'object' || type === 'function');
|
|
150
|
+
}
|
|
151
|
+
function range(start, stop, step = 1) {
|
|
152
|
+
const arr = [];
|
|
153
|
+
for (let i = start; i < stop; i += step) {
|
|
154
|
+
arr.push(i);
|
|
155
|
+
}
|
|
156
|
+
return arr;
|
|
157
|
+
}
|
|
158
|
+
function padStart(str, length, ch = ' ') {
|
|
159
|
+
return pad(str, length, ch, (str, ch) => ch + str);
|
|
160
|
+
}
|
|
161
|
+
function padEnd(str, length, ch = ' ') {
|
|
162
|
+
return pad(str, length, ch, (str, ch) => str + ch);
|
|
163
|
+
}
|
|
164
|
+
function pad(str, length, ch, add) {
|
|
165
|
+
str = String(str);
|
|
166
|
+
let n = length - str.length;
|
|
167
|
+
while (n-- > 0)
|
|
168
|
+
str = add(str, ch);
|
|
169
|
+
return str;
|
|
170
|
+
}
|
|
171
|
+
function identify(val) {
|
|
172
|
+
return val;
|
|
173
|
+
}
|
|
174
|
+
function changeCase(str) {
|
|
175
|
+
const hasLowerCase = [...str].some(ch => ch >= 'a' && ch <= 'z');
|
|
176
|
+
return hasLowerCase ? str.toUpperCase() : str.toLowerCase();
|
|
177
|
+
}
|
|
178
|
+
function ellipsis(str, N) {
|
|
179
|
+
return str.length > N ? str.slice(0, N - 3) + '...' : str;
|
|
180
|
+
}
|
|
181
|
+
// compare string in case-insensitive way, undefined values to the tail
|
|
182
|
+
function caseInsensitiveCompare(a, b) {
|
|
183
|
+
if (a == null && b == null)
|
|
184
|
+
return 0;
|
|
185
|
+
if (a == null)
|
|
186
|
+
return 1;
|
|
187
|
+
if (b == null)
|
|
188
|
+
return -1;
|
|
189
|
+
a = toLowerCase.call(a);
|
|
190
|
+
b = toLowerCase.call(b);
|
|
191
|
+
if (a < b)
|
|
192
|
+
return -1;
|
|
193
|
+
if (a > b)
|
|
194
|
+
return 1;
|
|
195
|
+
return 0;
|
|
196
|
+
}
|
|
197
|
+
function argumentsToValue(fn) {
|
|
198
|
+
return function (...args) { return fn.call(this, ...args.map(toValue)); };
|
|
199
|
+
}
|
|
200
|
+
function escapeRegExp(text) {
|
|
201
|
+
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
|
202
|
+
}
|
|
203
|
+
/** Return an array containing unique elements from _array_. Works with nested arrays and objects. */
|
|
204
|
+
function* strictUniq(array) {
|
|
205
|
+
const seen = new Set();
|
|
206
|
+
for (const element of array) {
|
|
207
|
+
const key = JSON.stringify(element);
|
|
208
|
+
if (!seen.has(key)) {
|
|
209
|
+
seen.add(key);
|
|
210
|
+
yield element;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* targeting ES5, extends Error won't create a proper prototype chain, need a trait to keep track of classes
|
|
217
|
+
*/
|
|
218
|
+
const TRAIT = '__liquidClass__';
|
|
219
|
+
class LiquidError extends Error {
|
|
220
|
+
constructor(err, token) {
|
|
221
|
+
/**
|
|
222
|
+
* note: for ES5 targeting, `this` will be replaced by return value of Error(),
|
|
223
|
+
* thus everything on `this` will be lost, avoid calling `LiquidError` methods here
|
|
224
|
+
*/
|
|
225
|
+
super(typeof err === 'string' ? err : err.message);
|
|
226
|
+
this.context = '';
|
|
227
|
+
if (typeof err !== 'string')
|
|
228
|
+
Object.defineProperty(this, 'originalError', { value: err, enumerable: false });
|
|
229
|
+
Object.defineProperty(this, 'token', { value: token, enumerable: false });
|
|
230
|
+
Object.defineProperty(this, TRAIT, { value: 'LiquidError', enumerable: false });
|
|
231
|
+
}
|
|
232
|
+
update() {
|
|
233
|
+
Object.defineProperty(this, 'context', { value: mkContext(this.token), enumerable: false });
|
|
234
|
+
this.message = mkMessage(this.message, this.token);
|
|
235
|
+
this.stack = this.message + '\n' + this.context +
|
|
236
|
+
'\n' + this.stack;
|
|
237
|
+
if (this.originalError)
|
|
238
|
+
this.stack += '\nFrom ' + this.originalError.stack;
|
|
239
|
+
}
|
|
240
|
+
static is(obj) {
|
|
241
|
+
return (obj === null || obj === void 0 ? void 0 : obj[TRAIT]) === 'LiquidError';
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
class TokenizationError extends LiquidError {
|
|
245
|
+
constructor(message, token) {
|
|
246
|
+
super(message, token);
|
|
247
|
+
this.name = 'TokenizationError';
|
|
248
|
+
super.update();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
class ParseError extends LiquidError {
|
|
252
|
+
constructor(err, token) {
|
|
253
|
+
super(err, token);
|
|
254
|
+
this.name = 'ParseError';
|
|
255
|
+
this.message = err.message;
|
|
256
|
+
super.update();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
class RenderError extends LiquidError {
|
|
260
|
+
constructor(err, tpl) {
|
|
261
|
+
super(err, tpl.token);
|
|
262
|
+
this.name = 'RenderError';
|
|
263
|
+
this.message = err.message;
|
|
264
|
+
super.update();
|
|
265
|
+
}
|
|
266
|
+
static is(obj) {
|
|
267
|
+
return obj.name === 'RenderError';
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
class LiquidErrors extends LiquidError {
|
|
271
|
+
constructor(errors) {
|
|
272
|
+
super(errors[0], errors[0].token);
|
|
273
|
+
this.errors = errors;
|
|
274
|
+
this.name = 'LiquidErrors';
|
|
275
|
+
const s = errors.length > 1 ? 's' : '';
|
|
276
|
+
this.message = `${errors.length} error${s} found`;
|
|
277
|
+
super.update();
|
|
278
|
+
}
|
|
279
|
+
static is(obj) {
|
|
280
|
+
return obj.name === 'LiquidErrors';
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
class UndefinedVariableError extends LiquidError {
|
|
284
|
+
constructor(err, token) {
|
|
285
|
+
super(err, token);
|
|
286
|
+
this.name = 'UndefinedVariableError';
|
|
287
|
+
this.message = err.message;
|
|
288
|
+
super.update();
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// only used internally; raised where we don't have token information,
|
|
292
|
+
// so it can't be an UndefinedVariableError.
|
|
293
|
+
class InternalUndefinedVariableError extends Error {
|
|
294
|
+
constructor(variableName) {
|
|
295
|
+
super(`undefined variable: ${variableName}`);
|
|
296
|
+
this.name = 'InternalUndefinedVariableError';
|
|
297
|
+
this.variableName = variableName;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
class AssertionError extends Error {
|
|
301
|
+
constructor(message) {
|
|
302
|
+
super(message);
|
|
303
|
+
this.name = 'AssertionError';
|
|
304
|
+
this.message = message + '';
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
function mkContext(token) {
|
|
308
|
+
const [line, col] = token.getPosition();
|
|
309
|
+
const lines = token.input.split('\n');
|
|
310
|
+
const begin = Math.max(line - 2, 1);
|
|
311
|
+
const end = Math.min(line + 3, lines.length);
|
|
312
|
+
const context = range(begin, end + 1)
|
|
313
|
+
.map(lineNumber => {
|
|
314
|
+
const rowIndicator = (lineNumber === line) ? '>> ' : ' ';
|
|
315
|
+
const num = padStart(String(lineNumber), String(end).length);
|
|
316
|
+
let text = `${rowIndicator}${num}| `;
|
|
317
|
+
const colIndicator = lineNumber === line
|
|
318
|
+
? '\n' + padStart('^', col + text.length)
|
|
319
|
+
: '';
|
|
320
|
+
text += lines[lineNumber - 1];
|
|
321
|
+
text += colIndicator;
|
|
322
|
+
return text;
|
|
323
|
+
})
|
|
324
|
+
.join('\n');
|
|
325
|
+
return context;
|
|
326
|
+
}
|
|
327
|
+
function mkMessage(msg, token) {
|
|
328
|
+
if (token.file)
|
|
329
|
+
msg += `, file:${token.file}`;
|
|
330
|
+
const [line, col] = token.getPosition();
|
|
331
|
+
msg += `, line:${line}, col:${col}`;
|
|
332
|
+
return msg;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// **DO NOT CHANGE THIS FILE**
|
|
336
|
+
//
|
|
337
|
+
// This file is generated by bin/character-gen.js
|
|
338
|
+
// bitmask character types to boost performance
|
|
339
|
+
const TYPES = [0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 4, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 8, 0, 0, 0, 0, 8, 0, 0, 0, 64, 0, 65, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];
|
|
340
|
+
const WORD = 1;
|
|
341
|
+
const BLANK = 4;
|
|
342
|
+
const QUOTE = 8;
|
|
343
|
+
const INLINE_BLANK = 16;
|
|
344
|
+
const NUMBER = 32;
|
|
345
|
+
const SIGN = 64;
|
|
346
|
+
const PUNCTUATION = 128;
|
|
347
|
+
function isWord(char) {
|
|
348
|
+
const code = char.charCodeAt(0);
|
|
349
|
+
return code >= 128 ? !TYPES[code] : !!(TYPES[code] & WORD);
|
|
350
|
+
}
|
|
351
|
+
TYPES[160] = TYPES[5760] = TYPES[6158] = TYPES[8192] = TYPES[8193] = TYPES[8194] = TYPES[8195] = TYPES[8196] = TYPES[8197] = TYPES[8198] = TYPES[8199] = TYPES[8200] = TYPES[8201] = TYPES[8202] = TYPES[8232] = TYPES[8233] = TYPES[8239] = TYPES[8287] = TYPES[12288] = BLANK;
|
|
352
|
+
TYPES[8220] = TYPES[8221] = PUNCTUATION;
|
|
353
|
+
|
|
354
|
+
function assert(predicate, message) {
|
|
355
|
+
if (!predicate) {
|
|
356
|
+
const msg = typeof message === 'function'
|
|
357
|
+
? message()
|
|
358
|
+
: (message || `expect ${predicate} to be true`);
|
|
359
|
+
throw new AssertionError(msg);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function assertEmpty(predicate, message = `unexpected ${JSON.stringify(predicate)}`) {
|
|
363
|
+
assert(!predicate, message);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
class NullDrop extends Drop {
|
|
367
|
+
equals(value) {
|
|
368
|
+
return isNil(toValue(value));
|
|
369
|
+
}
|
|
370
|
+
gt() {
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
373
|
+
geq() {
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
lt() {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
leq() {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
valueOf() {
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
class EmptyDrop extends Drop {
|
|
388
|
+
equals(value) {
|
|
389
|
+
if (value instanceof EmptyDrop)
|
|
390
|
+
return false;
|
|
391
|
+
value = toValue(value);
|
|
392
|
+
if (isString(value) || isArray(value))
|
|
393
|
+
return value.length === 0;
|
|
394
|
+
if (isObject(value))
|
|
395
|
+
return Object.keys(value).length === 0;
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
gt() {
|
|
399
|
+
return false;
|
|
400
|
+
}
|
|
401
|
+
geq() {
|
|
402
|
+
return false;
|
|
403
|
+
}
|
|
404
|
+
lt() {
|
|
405
|
+
return false;
|
|
406
|
+
}
|
|
407
|
+
leq() {
|
|
408
|
+
return false;
|
|
409
|
+
}
|
|
410
|
+
valueOf() {
|
|
411
|
+
return '';
|
|
412
|
+
}
|
|
413
|
+
static is(value) {
|
|
414
|
+
return value instanceof EmptyDrop;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
class BlankDrop extends EmptyDrop {
|
|
419
|
+
equals(value) {
|
|
420
|
+
if (value === false)
|
|
421
|
+
return true;
|
|
422
|
+
if (isNil(toValue(value)))
|
|
423
|
+
return true;
|
|
424
|
+
if (isString(value))
|
|
425
|
+
return /^\s*$/.test(value);
|
|
426
|
+
return super.equals(value);
|
|
427
|
+
}
|
|
428
|
+
static is(value) {
|
|
429
|
+
return value instanceof BlankDrop;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
class ForloopDrop extends Drop {
|
|
434
|
+
constructor(length, collection, variable) {
|
|
435
|
+
super();
|
|
436
|
+
this.i = 0;
|
|
437
|
+
this.length = length;
|
|
438
|
+
this.name = `${variable}-${collection}`;
|
|
439
|
+
}
|
|
440
|
+
next() {
|
|
441
|
+
this.i++;
|
|
442
|
+
}
|
|
443
|
+
index0() {
|
|
444
|
+
return this.i;
|
|
445
|
+
}
|
|
446
|
+
index() {
|
|
447
|
+
return this.i + 1;
|
|
448
|
+
}
|
|
449
|
+
first() {
|
|
450
|
+
return this.i === 0;
|
|
451
|
+
}
|
|
452
|
+
last() {
|
|
453
|
+
return this.i === this.length - 1;
|
|
454
|
+
}
|
|
455
|
+
rindex() {
|
|
456
|
+
return this.length - this.i;
|
|
457
|
+
}
|
|
458
|
+
rindex0() {
|
|
459
|
+
return this.length - this.i - 1;
|
|
460
|
+
}
|
|
461
|
+
valueOf() {
|
|
462
|
+
return JSON.stringify(this);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
class BlockDrop extends Drop {
|
|
467
|
+
constructor(
|
|
468
|
+
// the block render from layout template
|
|
469
|
+
superBlockRender = () => '') {
|
|
470
|
+
super();
|
|
471
|
+
this.superBlockRender = superBlockRender;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Provide parent access in child block by
|
|
475
|
+
* {{ block.super }}
|
|
476
|
+
*/
|
|
477
|
+
super() {
|
|
478
|
+
return this.superBlockRender();
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
function isComparable(arg) {
|
|
483
|
+
return (arg &&
|
|
484
|
+
isFunction(arg.equals) &&
|
|
485
|
+
isFunction(arg.gt) &&
|
|
486
|
+
isFunction(arg.geq) &&
|
|
487
|
+
isFunction(arg.lt) &&
|
|
488
|
+
isFunction(arg.leq));
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
const nil = new NullDrop();
|
|
492
|
+
const literalValues = {
|
|
493
|
+
'true': true,
|
|
494
|
+
'false': false,
|
|
495
|
+
'nil': nil,
|
|
496
|
+
'null': nil,
|
|
497
|
+
'empty': new EmptyDrop(),
|
|
498
|
+
'blank': new BlankDrop()
|
|
499
|
+
};
|
|
500
|
+
|
|
501
|
+
function createTrie(input) {
|
|
502
|
+
const trie = {};
|
|
503
|
+
for (const [name, data] of Object.entries(input)) {
|
|
504
|
+
let node = trie;
|
|
505
|
+
for (let i = 0; i < name.length; i++) {
|
|
506
|
+
const c = name[i];
|
|
507
|
+
node[c] = node[c] || {};
|
|
508
|
+
if (i === name.length - 1 && isWord(name[i])) {
|
|
509
|
+
node[c].needBoundary = true;
|
|
510
|
+
}
|
|
511
|
+
node = node[c];
|
|
512
|
+
}
|
|
513
|
+
node.data = data;
|
|
514
|
+
node.end = true;
|
|
515
|
+
}
|
|
516
|
+
return trie;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/******************************************************************************
|
|
520
|
+
Copyright (c) Microsoft Corporation.
|
|
521
|
+
|
|
522
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
523
|
+
purpose with or without fee is hereby granted.
|
|
524
|
+
|
|
525
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
526
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
527
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
528
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
529
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
530
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
531
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
532
|
+
***************************************************************************** */
|
|
533
|
+
|
|
534
|
+
var __assign = function() {
|
|
535
|
+
__assign = Object.assign || function __assign(t) {
|
|
536
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
537
|
+
s = arguments[i];
|
|
538
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
539
|
+
}
|
|
540
|
+
return t;
|
|
541
|
+
};
|
|
542
|
+
return __assign.apply(this, arguments);
|
|
543
|
+
};
|
|
544
|
+
|
|
545
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
546
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
547
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
548
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
549
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
550
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
551
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// convert an async iterator to a Promise
|
|
556
|
+
function toPromise(val) {
|
|
557
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
558
|
+
if (!isIterator(val))
|
|
559
|
+
return val;
|
|
560
|
+
let value;
|
|
561
|
+
let done = false;
|
|
562
|
+
let next = 'next';
|
|
563
|
+
do {
|
|
564
|
+
const state = val[next](value);
|
|
565
|
+
done = state.done;
|
|
566
|
+
value = state.value;
|
|
567
|
+
next = 'next';
|
|
568
|
+
try {
|
|
569
|
+
if (isIterator(value))
|
|
570
|
+
value = toPromise(value);
|
|
571
|
+
if (isPromise(value))
|
|
572
|
+
value = yield value;
|
|
573
|
+
}
|
|
574
|
+
catch (err) {
|
|
575
|
+
next = 'throw';
|
|
576
|
+
value = err;
|
|
577
|
+
}
|
|
578
|
+
} while (!done);
|
|
579
|
+
return value;
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
// convert an async iterator to a value in a synchronous manner
|
|
583
|
+
function toValueSync(val) {
|
|
584
|
+
if (!isIterator(val))
|
|
585
|
+
return val;
|
|
586
|
+
let value;
|
|
587
|
+
let done = false;
|
|
588
|
+
let next = 'next';
|
|
589
|
+
do {
|
|
590
|
+
const state = val[next](value);
|
|
591
|
+
done = state.done;
|
|
592
|
+
value = state.value;
|
|
593
|
+
next = 'next';
|
|
594
|
+
if (isIterator(value)) {
|
|
595
|
+
try {
|
|
596
|
+
value = toValueSync(value);
|
|
597
|
+
}
|
|
598
|
+
catch (err) {
|
|
599
|
+
next = 'throw';
|
|
600
|
+
value = err;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
} while (!done);
|
|
604
|
+
return value;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
const rFormat = /%([-_0^#:]+)?(\d+)?([EO])?(.)/;
|
|
608
|
+
// prototype extensions
|
|
609
|
+
function daysInMonth(d) {
|
|
610
|
+
const feb = isLeapYear(d) ? 29 : 28;
|
|
611
|
+
return [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
612
|
+
}
|
|
613
|
+
function getDayOfYear(d) {
|
|
614
|
+
let num = 0;
|
|
615
|
+
for (let i = 0; i < d.getMonth(); ++i) {
|
|
616
|
+
num += daysInMonth(d)[i];
|
|
617
|
+
}
|
|
618
|
+
return num + d.getDate();
|
|
619
|
+
}
|
|
620
|
+
function getWeekOfYear(d, startDay) {
|
|
621
|
+
// Skip to startDay of this week
|
|
622
|
+
const now = getDayOfYear(d) + (startDay - d.getDay());
|
|
623
|
+
// Find the first startDay of the year
|
|
624
|
+
const jan1 = new Date(d.getFullYear(), 0, 1);
|
|
625
|
+
const then = (7 - jan1.getDay() + startDay);
|
|
626
|
+
return String(Math.floor((now - then) / 7) + 1);
|
|
627
|
+
}
|
|
628
|
+
function isLeapYear(d) {
|
|
629
|
+
const year = d.getFullYear();
|
|
630
|
+
return !!((year & 3) === 0 && (year % 100 || (year % 400 === 0 && year)));
|
|
631
|
+
}
|
|
632
|
+
function ordinal(d) {
|
|
633
|
+
const date = d.getDate();
|
|
634
|
+
if ([11, 12, 13].includes(date))
|
|
635
|
+
return 'th';
|
|
636
|
+
switch (date % 10) {
|
|
637
|
+
case 1: return 'st';
|
|
638
|
+
case 2: return 'nd';
|
|
639
|
+
case 3: return 'rd';
|
|
640
|
+
default: return 'th';
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
function century(d) {
|
|
644
|
+
return parseInt(d.getFullYear().toString().substring(0, 2), 10);
|
|
645
|
+
}
|
|
646
|
+
// default to 0
|
|
647
|
+
const padWidths = {
|
|
648
|
+
d: 2,
|
|
649
|
+
e: 2,
|
|
650
|
+
H: 2,
|
|
651
|
+
I: 2,
|
|
652
|
+
j: 3,
|
|
653
|
+
k: 2,
|
|
654
|
+
l: 2,
|
|
655
|
+
L: 3,
|
|
656
|
+
m: 2,
|
|
657
|
+
M: 2,
|
|
658
|
+
S: 2,
|
|
659
|
+
U: 2,
|
|
660
|
+
W: 2
|
|
661
|
+
};
|
|
662
|
+
const padSpaceChars = new Set('aAbBceklpP');
|
|
663
|
+
function getTimezoneOffset(d, opts) {
|
|
664
|
+
const nOffset = Math.abs(d.getTimezoneOffset());
|
|
665
|
+
const h = Math.floor(nOffset / 60);
|
|
666
|
+
const m = nOffset % 60;
|
|
667
|
+
return (d.getTimezoneOffset() > 0 ? '-' : '+') +
|
|
668
|
+
padStart(h, 2, '0') +
|
|
669
|
+
(opts.flags[':'] ? ':' : '') +
|
|
670
|
+
padStart(m, 2, '0');
|
|
671
|
+
}
|
|
672
|
+
const formatCodes = {
|
|
673
|
+
a: (d) => d.getShortWeekdayName(),
|
|
674
|
+
A: (d) => d.getLongWeekdayName(),
|
|
675
|
+
b: (d) => d.getShortMonthName(),
|
|
676
|
+
B: (d) => d.getLongMonthName(),
|
|
677
|
+
c: (d) => d.toLocaleString(),
|
|
678
|
+
C: (d) => century(d),
|
|
679
|
+
d: (d) => d.getDate(),
|
|
680
|
+
e: (d) => d.getDate(),
|
|
681
|
+
H: (d) => d.getHours(),
|
|
682
|
+
I: (d) => String(d.getHours() % 12 || 12),
|
|
683
|
+
j: (d) => getDayOfYear(d),
|
|
684
|
+
k: (d) => d.getHours(),
|
|
685
|
+
l: (d) => String(d.getHours() % 12 || 12),
|
|
686
|
+
L: (d) => d.getMilliseconds(),
|
|
687
|
+
m: (d) => d.getMonth() + 1,
|
|
688
|
+
M: (d) => d.getMinutes(),
|
|
689
|
+
N: (d, opts) => {
|
|
690
|
+
const width = Number(opts.width) || 9;
|
|
691
|
+
const str = String(d.getMilliseconds()).slice(0, width);
|
|
692
|
+
return padEnd(str, width, '0');
|
|
693
|
+
},
|
|
694
|
+
p: (d) => (d.getHours() < 12 ? 'AM' : 'PM'),
|
|
695
|
+
P: (d) => (d.getHours() < 12 ? 'am' : 'pm'),
|
|
696
|
+
q: (d) => ordinal(d),
|
|
697
|
+
s: (d) => Math.round(d.getTime() / 1000),
|
|
698
|
+
S: (d) => d.getSeconds(),
|
|
699
|
+
u: (d) => d.getDay() || 7,
|
|
700
|
+
U: (d) => getWeekOfYear(d, 0),
|
|
701
|
+
w: (d) => d.getDay(),
|
|
702
|
+
W: (d) => getWeekOfYear(d, 1),
|
|
703
|
+
x: (d) => d.toLocaleDateString(),
|
|
704
|
+
X: (d) => d.toLocaleTimeString(),
|
|
705
|
+
y: (d) => d.getFullYear().toString().slice(2, 4),
|
|
706
|
+
Y: (d) => d.getFullYear(),
|
|
707
|
+
z: getTimezoneOffset,
|
|
708
|
+
Z: (d, opts) => d.getTimeZoneName() || getTimezoneOffset(d, opts),
|
|
709
|
+
't': () => '\t',
|
|
710
|
+
'n': () => '\n',
|
|
711
|
+
'%': () => '%'
|
|
712
|
+
};
|
|
713
|
+
formatCodes.h = formatCodes.b;
|
|
714
|
+
function strftime(d, formatStr) {
|
|
715
|
+
let output = '';
|
|
716
|
+
let remaining = formatStr;
|
|
717
|
+
let match;
|
|
718
|
+
while ((match = rFormat.exec(remaining))) {
|
|
719
|
+
output += remaining.slice(0, match.index);
|
|
720
|
+
remaining = remaining.slice(match.index + match[0].length);
|
|
721
|
+
output += format(d, match);
|
|
722
|
+
}
|
|
723
|
+
return output + remaining;
|
|
724
|
+
}
|
|
725
|
+
function format(d, match) {
|
|
726
|
+
const [input, flagStr = '', width, modifier, conversion] = match;
|
|
727
|
+
const convert = formatCodes[conversion];
|
|
728
|
+
if (!convert)
|
|
729
|
+
return input;
|
|
730
|
+
const flags = {};
|
|
731
|
+
for (const flag of flagStr)
|
|
732
|
+
flags[flag] = true;
|
|
733
|
+
let ret = String(convert(d, { flags, width, modifier }));
|
|
734
|
+
let padChar = padSpaceChars.has(conversion) ? ' ' : '0';
|
|
735
|
+
let padWidth = width || padWidths[conversion] || 0;
|
|
736
|
+
if (flags['^'])
|
|
737
|
+
ret = ret.toUpperCase();
|
|
738
|
+
else if (flags['#'])
|
|
739
|
+
ret = changeCase(ret);
|
|
740
|
+
if (flags['_'])
|
|
741
|
+
padChar = ' ';
|
|
742
|
+
else if (flags['0'])
|
|
743
|
+
padChar = '0';
|
|
744
|
+
if (flags['-'])
|
|
745
|
+
padWidth = 0;
|
|
746
|
+
return padStart(ret, padWidth, padChar);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
function getDateTimeFormat() {
|
|
750
|
+
return (typeof Intl !== 'undefined' ? Intl.DateTimeFormat : undefined);
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
// one minute in milliseconds
|
|
754
|
+
const OneMinute = 60000;
|
|
755
|
+
/**
|
|
756
|
+
* Need support both ISO8601 and RFC2822 as in major browsers & NodeJS
|
|
757
|
+
* RFC2822: https://datatracker.ietf.org/doc/html/rfc2822#section-3.3
|
|
758
|
+
*/
|
|
759
|
+
const TIMEZONE_PATTERN = /([zZ]|([+-])(\d{2}):?(\d{2}))$/;
|
|
760
|
+
const monthNames = [
|
|
761
|
+
'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August',
|
|
762
|
+
'September', 'October', 'November', 'December'
|
|
763
|
+
];
|
|
764
|
+
const monthNamesShort = monthNames.map(name => name.slice(0, 3));
|
|
765
|
+
const dayNames = [
|
|
766
|
+
'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
|
|
767
|
+
];
|
|
768
|
+
const dayNamesShort = dayNames.map(name => name.slice(0, 3));
|
|
769
|
+
/**
|
|
770
|
+
* A date implementation with timezone info, just like Ruby date
|
|
771
|
+
*
|
|
772
|
+
* Implementation:
|
|
773
|
+
* - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods
|
|
774
|
+
* - rewrite getTimezoneOffset() to trick strftime
|
|
775
|
+
*/
|
|
776
|
+
class LiquidDate {
|
|
777
|
+
constructor(init, locale, timezone) {
|
|
778
|
+
this.locale = locale;
|
|
779
|
+
this.DateTimeFormat = getDateTimeFormat();
|
|
780
|
+
this.date = new Date(init);
|
|
781
|
+
this.timezoneFixed = timezone !== undefined;
|
|
782
|
+
if (timezone === undefined) {
|
|
783
|
+
timezone = this.date.getTimezoneOffset();
|
|
784
|
+
}
|
|
785
|
+
this.timezoneOffset = isString(timezone) ? LiquidDate.getTimezoneOffset(timezone, this.date) : timezone;
|
|
786
|
+
this.timezoneName = isString(timezone) ? timezone : '';
|
|
787
|
+
const diff = (this.date.getTimezoneOffset() - this.timezoneOffset) * OneMinute;
|
|
788
|
+
const time = this.date.getTime() + diff;
|
|
789
|
+
this.displayDate = new Date(time);
|
|
790
|
+
}
|
|
791
|
+
getTime() {
|
|
792
|
+
return this.displayDate.getTime();
|
|
793
|
+
}
|
|
794
|
+
getMilliseconds() {
|
|
795
|
+
return this.displayDate.getMilliseconds();
|
|
796
|
+
}
|
|
797
|
+
getSeconds() {
|
|
798
|
+
return this.displayDate.getSeconds();
|
|
799
|
+
}
|
|
800
|
+
getMinutes() {
|
|
801
|
+
return this.displayDate.getMinutes();
|
|
802
|
+
}
|
|
803
|
+
getHours() {
|
|
804
|
+
return this.displayDate.getHours();
|
|
805
|
+
}
|
|
806
|
+
getDay() {
|
|
807
|
+
return this.displayDate.getDay();
|
|
808
|
+
}
|
|
809
|
+
getDate() {
|
|
810
|
+
return this.displayDate.getDate();
|
|
811
|
+
}
|
|
812
|
+
getMonth() {
|
|
813
|
+
return this.displayDate.getMonth();
|
|
814
|
+
}
|
|
815
|
+
getFullYear() {
|
|
816
|
+
return this.displayDate.getFullYear();
|
|
817
|
+
}
|
|
818
|
+
toLocaleString(locale, init) {
|
|
819
|
+
if (init === null || init === void 0 ? void 0 : init.timeZone) {
|
|
820
|
+
return this.date.toLocaleString(locale, init);
|
|
821
|
+
}
|
|
822
|
+
return this.displayDate.toLocaleString(locale, init);
|
|
823
|
+
}
|
|
824
|
+
toLocaleTimeString(locale) {
|
|
825
|
+
return this.displayDate.toLocaleTimeString(locale);
|
|
826
|
+
}
|
|
827
|
+
toLocaleDateString(locale) {
|
|
828
|
+
return this.displayDate.toLocaleDateString(locale);
|
|
829
|
+
}
|
|
830
|
+
getTimezoneOffset() {
|
|
831
|
+
return this.timezoneOffset;
|
|
832
|
+
}
|
|
833
|
+
getTimeZoneName() {
|
|
834
|
+
if (this.timezoneFixed)
|
|
835
|
+
return this.timezoneName;
|
|
836
|
+
if (!this.DateTimeFormat)
|
|
837
|
+
return;
|
|
838
|
+
return this.DateTimeFormat().resolvedOptions().timeZone;
|
|
839
|
+
}
|
|
840
|
+
getLongMonthName() {
|
|
841
|
+
var _a;
|
|
842
|
+
return (_a = this.format({ month: 'long' })) !== null && _a !== void 0 ? _a : monthNames[this.getMonth()];
|
|
843
|
+
}
|
|
844
|
+
getShortMonthName() {
|
|
845
|
+
var _a;
|
|
846
|
+
return (_a = this.format({ month: 'short' })) !== null && _a !== void 0 ? _a : monthNamesShort[this.getMonth()];
|
|
847
|
+
}
|
|
848
|
+
getLongWeekdayName() {
|
|
849
|
+
var _a;
|
|
850
|
+
return (_a = this.format({ weekday: 'long' })) !== null && _a !== void 0 ? _a : dayNames[this.displayDate.getDay()];
|
|
851
|
+
}
|
|
852
|
+
getShortWeekdayName() {
|
|
853
|
+
var _a;
|
|
854
|
+
return (_a = this.format({ weekday: 'short' })) !== null && _a !== void 0 ? _a : dayNamesShort[this.displayDate.getDay()];
|
|
855
|
+
}
|
|
856
|
+
valid() {
|
|
857
|
+
return !isNaN(this.getTime());
|
|
858
|
+
}
|
|
859
|
+
format(options) {
|
|
860
|
+
return this.DateTimeFormat && this.DateTimeFormat(this.locale, options).format(this.displayDate);
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Create a Date object fixed to it's declared Timezone. Both
|
|
864
|
+
* - 2021-08-06T02:29:00.000Z and
|
|
865
|
+
* - 2021-08-06T02:29:00.000+08:00
|
|
866
|
+
* will always be displayed as
|
|
867
|
+
* - 2021-08-06 02:29:00
|
|
868
|
+
* regardless timezoneOffset in JavaScript realm
|
|
869
|
+
*
|
|
870
|
+
* The implementation hack:
|
|
871
|
+
* Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,
|
|
872
|
+
* we create a different Date to trick strftime, it's both simpler and more performant.
|
|
873
|
+
* Given that a template is expected to be parsed fewer times than rendered.
|
|
874
|
+
*/
|
|
875
|
+
static createDateFixedToTimezone(dateString, locale) {
|
|
876
|
+
const m = dateString.match(TIMEZONE_PATTERN);
|
|
877
|
+
// representing a UTC timestamp
|
|
878
|
+
if (m && m[1] === 'Z') {
|
|
879
|
+
return new LiquidDate(+new Date(dateString), locale, 0);
|
|
880
|
+
}
|
|
881
|
+
// has a timezone specified
|
|
882
|
+
if (m && m[2] && m[3] && m[4]) {
|
|
883
|
+
const [, , sign, hours, minutes] = m;
|
|
884
|
+
const offset = (sign === '+' ? -1 : 1) * (parseInt(hours, 10) * 60 + parseInt(minutes, 10));
|
|
885
|
+
return new LiquidDate(+new Date(dateString), locale, offset);
|
|
886
|
+
}
|
|
887
|
+
return new LiquidDate(dateString, locale);
|
|
888
|
+
}
|
|
889
|
+
static getTimezoneOffset(timezoneName, date) {
|
|
890
|
+
const localDateString = date.toLocaleString('en-US', { timeZone: timezoneName });
|
|
891
|
+
const utcDateString = date.toLocaleString('en-US', { timeZone: 'UTC' });
|
|
892
|
+
const localDate = new Date(localDateString);
|
|
893
|
+
const utcDate = new Date(utcDateString);
|
|
894
|
+
return (+utcDate - +localDate) / (60 * 1000);
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
class Limiter {
|
|
899
|
+
constructor(resource, limit) {
|
|
900
|
+
this.base = 0;
|
|
901
|
+
this.message = `${resource} limit exceeded`;
|
|
902
|
+
this.limit = limit;
|
|
903
|
+
}
|
|
904
|
+
use(count) {
|
|
905
|
+
count = toNumber(count);
|
|
906
|
+
assert(this.base + count <= this.limit, this.message);
|
|
907
|
+
this.base += count;
|
|
908
|
+
}
|
|
909
|
+
check(count) {
|
|
910
|
+
count = toNumber(count);
|
|
911
|
+
assert(count <= this.limit, this.message);
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
class DelimitedToken extends Token {
|
|
916
|
+
constructor(kind, [contentBegin, contentEnd], input, begin, end, trimLeft, trimRight, file) {
|
|
917
|
+
super(kind, input, begin, end, file);
|
|
918
|
+
this.trimLeft = false;
|
|
919
|
+
this.trimRight = false;
|
|
920
|
+
const tl = input[contentBegin] === '-';
|
|
921
|
+
const tr = input[contentEnd - 1] === '-';
|
|
922
|
+
let l = tl ? contentBegin + 1 : contentBegin;
|
|
923
|
+
let r = tr ? contentEnd - 1 : contentEnd;
|
|
924
|
+
while (l < r && (TYPES[input.charCodeAt(l)] & BLANK))
|
|
925
|
+
l++;
|
|
926
|
+
while (r > l && (TYPES[input.charCodeAt(r - 1)] & BLANK))
|
|
927
|
+
r--;
|
|
928
|
+
this.contentRange = [l, r];
|
|
929
|
+
this.trimLeft = tl || trimLeft;
|
|
930
|
+
this.trimRight = tr || trimRight;
|
|
931
|
+
}
|
|
932
|
+
get content() {
|
|
933
|
+
return this.input.slice(this.contentRange[0], this.contentRange[1]);
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
class TagToken extends DelimitedToken {
|
|
938
|
+
constructor(input, begin, end, options, file) {
|
|
939
|
+
const { trimTagLeft, trimTagRight, tagDelimiterLeft, tagDelimiterRight } = options;
|
|
940
|
+
const [valueBegin, valueEnd] = [begin + tagDelimiterLeft.length, end - tagDelimiterRight.length];
|
|
941
|
+
super(TokenKind.Tag, [valueBegin, valueEnd], input, begin, end, trimTagLeft, trimTagRight, file);
|
|
942
|
+
this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange);
|
|
943
|
+
this.name = this.tokenizer.readTagName();
|
|
944
|
+
this.tokenizer.assert(this.name, `illegal tag syntax, tag name expected`);
|
|
945
|
+
this.tokenizer.skipBlank();
|
|
946
|
+
}
|
|
947
|
+
get args() {
|
|
948
|
+
return this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1]);
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
class OutputToken extends DelimitedToken {
|
|
953
|
+
constructor(input, begin, end, options, file) {
|
|
954
|
+
const { trimOutputLeft, trimOutputRight, outputDelimiterLeft, outputDelimiterRight } = options;
|
|
955
|
+
const valueRange = [begin + outputDelimiterLeft.length, end - outputDelimiterRight.length];
|
|
956
|
+
super(TokenKind.Output, valueRange, input, begin, end, trimOutputLeft, trimOutputRight, file);
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
class HTMLToken extends Token {
|
|
961
|
+
constructor(input, begin, end, file) {
|
|
962
|
+
super(TokenKind.HTML, input, begin, end, file);
|
|
963
|
+
this.input = input;
|
|
964
|
+
this.begin = begin;
|
|
965
|
+
this.end = end;
|
|
966
|
+
this.file = file;
|
|
967
|
+
this.trimLeft = 0;
|
|
968
|
+
this.trimRight = 0;
|
|
969
|
+
}
|
|
970
|
+
getContent() {
|
|
971
|
+
return this.input.slice(this.begin + this.trimLeft, this.end - this.trimRight);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
class NumberToken extends Token {
|
|
976
|
+
constructor(input, begin, end, file) {
|
|
977
|
+
super(TokenKind.Number, input, begin, end, file);
|
|
978
|
+
this.input = input;
|
|
979
|
+
this.begin = begin;
|
|
980
|
+
this.end = end;
|
|
981
|
+
this.file = file;
|
|
982
|
+
this.content = Number(this.getText());
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
class IdentifierToken extends Token {
|
|
987
|
+
constructor(input, begin, end, file) {
|
|
988
|
+
super(TokenKind.Word, input, begin, end, file);
|
|
989
|
+
this.input = input;
|
|
990
|
+
this.begin = begin;
|
|
991
|
+
this.end = end;
|
|
992
|
+
this.file = file;
|
|
993
|
+
this.content = this.getText();
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
class LiteralToken extends Token {
|
|
998
|
+
constructor(input, begin, end, file) {
|
|
999
|
+
super(TokenKind.Literal, input, begin, end, file);
|
|
1000
|
+
this.input = input;
|
|
1001
|
+
this.begin = begin;
|
|
1002
|
+
this.end = end;
|
|
1003
|
+
this.file = file;
|
|
1004
|
+
this.literal = this.getText();
|
|
1005
|
+
this.content = literalValues[this.literal];
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
const operatorPrecedences = {
|
|
1010
|
+
'==': 2,
|
|
1011
|
+
'!=': 2,
|
|
1012
|
+
'>': 2,
|
|
1013
|
+
'<': 2,
|
|
1014
|
+
'>=': 2,
|
|
1015
|
+
'<=': 2,
|
|
1016
|
+
'contains': 2,
|
|
1017
|
+
'not': 1,
|
|
1018
|
+
'and': 0,
|
|
1019
|
+
'or': 0
|
|
1020
|
+
};
|
|
1021
|
+
const operatorTypes = {
|
|
1022
|
+
'==': 0 /* OperatorType.Binary */,
|
|
1023
|
+
'!=': 0 /* OperatorType.Binary */,
|
|
1024
|
+
'>': 0 /* OperatorType.Binary */,
|
|
1025
|
+
'<': 0 /* OperatorType.Binary */,
|
|
1026
|
+
'>=': 0 /* OperatorType.Binary */,
|
|
1027
|
+
'<=': 0 /* OperatorType.Binary */,
|
|
1028
|
+
'contains': 0 /* OperatorType.Binary */,
|
|
1029
|
+
'not': 1 /* OperatorType.Unary */,
|
|
1030
|
+
'and': 0 /* OperatorType.Binary */,
|
|
1031
|
+
'or': 0 /* OperatorType.Binary */
|
|
1032
|
+
};
|
|
1033
|
+
class OperatorToken extends Token {
|
|
1034
|
+
constructor(input, begin, end, file) {
|
|
1035
|
+
super(TokenKind.Operator, input, begin, end, file);
|
|
1036
|
+
this.input = input;
|
|
1037
|
+
this.begin = begin;
|
|
1038
|
+
this.end = end;
|
|
1039
|
+
this.file = file;
|
|
1040
|
+
this.operator = this.getText();
|
|
1041
|
+
}
|
|
1042
|
+
getPrecedence() {
|
|
1043
|
+
const key = this.getText();
|
|
1044
|
+
return key in operatorPrecedences ? operatorPrecedences[key] : 1;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
class PropertyAccessToken extends Token {
|
|
1049
|
+
constructor(variable, props, input, begin, end, file) {
|
|
1050
|
+
super(TokenKind.PropertyAccess, input, begin, end, file);
|
|
1051
|
+
this.variable = variable;
|
|
1052
|
+
this.props = props;
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
class FilterToken extends Token {
|
|
1057
|
+
constructor(name, args, input, begin, end, file) {
|
|
1058
|
+
super(TokenKind.Filter, input, begin, end, file);
|
|
1059
|
+
this.name = name;
|
|
1060
|
+
this.args = args;
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
class HashToken extends Token {
|
|
1065
|
+
constructor(input, begin, end, name, value, file) {
|
|
1066
|
+
super(TokenKind.Hash, input, begin, end, file);
|
|
1067
|
+
this.input = input;
|
|
1068
|
+
this.begin = begin;
|
|
1069
|
+
this.end = end;
|
|
1070
|
+
this.name = name;
|
|
1071
|
+
this.value = value;
|
|
1072
|
+
this.file = file;
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
const rHex = /[\da-fA-F]/;
|
|
1077
|
+
const rOct = /[0-7]/;
|
|
1078
|
+
const escapeChar = {
|
|
1079
|
+
b: '\b',
|
|
1080
|
+
f: '\f',
|
|
1081
|
+
n: '\n',
|
|
1082
|
+
r: '\r',
|
|
1083
|
+
t: '\t',
|
|
1084
|
+
v: '\x0B'
|
|
1085
|
+
};
|
|
1086
|
+
function hexVal(c) {
|
|
1087
|
+
const code = c.charCodeAt(0);
|
|
1088
|
+
if (code >= 97)
|
|
1089
|
+
return code - 87;
|
|
1090
|
+
if (code >= 65)
|
|
1091
|
+
return code - 55;
|
|
1092
|
+
return code - 48;
|
|
1093
|
+
}
|
|
1094
|
+
function parseStringLiteral(str) {
|
|
1095
|
+
let ret = '';
|
|
1096
|
+
for (let i = 1; i < str.length - 1; i++) {
|
|
1097
|
+
if (str[i] !== '\\') {
|
|
1098
|
+
ret += str[i];
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
if (escapeChar[str[i + 1]] !== undefined) {
|
|
1102
|
+
ret += escapeChar[str[++i]];
|
|
1103
|
+
}
|
|
1104
|
+
else if (str[i + 1] === 'u') {
|
|
1105
|
+
let val = 0;
|
|
1106
|
+
let j = i + 2;
|
|
1107
|
+
while (j <= i + 5 && rHex.test(str[j])) {
|
|
1108
|
+
val = val * 16 + hexVal(str[j++]);
|
|
1109
|
+
}
|
|
1110
|
+
i = j - 1;
|
|
1111
|
+
ret += String.fromCharCode(val);
|
|
1112
|
+
}
|
|
1113
|
+
else if (!rOct.test(str[i + 1])) {
|
|
1114
|
+
ret += str[++i];
|
|
1115
|
+
}
|
|
1116
|
+
else {
|
|
1117
|
+
let j = i + 1;
|
|
1118
|
+
let val = 0;
|
|
1119
|
+
while (j <= i + 3 && rOct.test(str[j])) {
|
|
1120
|
+
val = val * 8 + hexVal(str[j++]);
|
|
1121
|
+
}
|
|
1122
|
+
i = j - 1;
|
|
1123
|
+
ret += String.fromCharCode(val);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
return ret;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
class QuotedToken extends Token {
|
|
1130
|
+
constructor(input, begin, end, file) {
|
|
1131
|
+
super(TokenKind.Quoted, input, begin, end, file);
|
|
1132
|
+
this.input = input;
|
|
1133
|
+
this.begin = begin;
|
|
1134
|
+
this.end = end;
|
|
1135
|
+
this.file = file;
|
|
1136
|
+
this.content = parseStringLiteral(this.getText());
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
class RangeToken extends Token {
|
|
1141
|
+
constructor(input, begin, end, lhs, rhs, file) {
|
|
1142
|
+
super(TokenKind.Range, input, begin, end, file);
|
|
1143
|
+
this.input = input;
|
|
1144
|
+
this.begin = begin;
|
|
1145
|
+
this.end = end;
|
|
1146
|
+
this.lhs = lhs;
|
|
1147
|
+
this.rhs = rhs;
|
|
1148
|
+
this.file = file;
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* LiquidTagToken is different from TagToken by not having delimiters `{%` or `%}`
|
|
1154
|
+
*/
|
|
1155
|
+
class LiquidTagToken extends DelimitedToken {
|
|
1156
|
+
constructor(input, begin, end, options, file) {
|
|
1157
|
+
super(TokenKind.Tag, [begin, end], input, begin, end, false, false, file);
|
|
1158
|
+
this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange);
|
|
1159
|
+
this.name = this.tokenizer.readTagName();
|
|
1160
|
+
this.tokenizer.assert(this.name, 'illegal liquid tag syntax');
|
|
1161
|
+
this.tokenizer.skipBlank();
|
|
1162
|
+
}
|
|
1163
|
+
get args() {
|
|
1164
|
+
return this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1]);
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
/**
|
|
1169
|
+
* value expression with optional filters
|
|
1170
|
+
* e.g.
|
|
1171
|
+
* {% assign foo="bar" | append: "coo" %}
|
|
1172
|
+
*/
|
|
1173
|
+
class FilteredValueToken extends Token {
|
|
1174
|
+
constructor(initial, filters, input, begin, end, file) {
|
|
1175
|
+
super(TokenKind.FilteredValue, input, begin, end, file);
|
|
1176
|
+
this.initial = initial;
|
|
1177
|
+
this.filters = filters;
|
|
1178
|
+
this.input = input;
|
|
1179
|
+
this.begin = begin;
|
|
1180
|
+
this.end = end;
|
|
1181
|
+
this.file = file;
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
const polyfill = {
|
|
1186
|
+
now: () => Date.now()
|
|
1187
|
+
};
|
|
1188
|
+
function getPerformance() {
|
|
1189
|
+
return (typeof global === 'object' && global.performance) ||
|
|
1190
|
+
(typeof window === 'object' && window.performance) ||
|
|
1191
|
+
polyfill;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
class SimpleEmitter {
|
|
1195
|
+
constructor() {
|
|
1196
|
+
this.buffer = '';
|
|
1197
|
+
}
|
|
1198
|
+
write(html) {
|
|
1199
|
+
this.buffer += stringify(html);
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
class StreamedEmitter {
|
|
1204
|
+
constructor() {
|
|
1205
|
+
this.buffer = '';
|
|
1206
|
+
this.stream = null;
|
|
1207
|
+
throw new Error('streaming not supported in browser');
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
class KeepingTypeEmitter {
|
|
1212
|
+
constructor() {
|
|
1213
|
+
this.buffer = '';
|
|
1214
|
+
}
|
|
1215
|
+
write(html) {
|
|
1216
|
+
html = toValue(html);
|
|
1217
|
+
// This will only preserve the type if the value is isolated.
|
|
1218
|
+
// I.E:
|
|
1219
|
+
// {{ my-port }} -> 42
|
|
1220
|
+
// {{ my-host }}:{{ my-port }} -> 'host:42'
|
|
1221
|
+
if (typeof html !== 'string' && this.buffer === '') {
|
|
1222
|
+
this.buffer = html;
|
|
1223
|
+
}
|
|
1224
|
+
else {
|
|
1225
|
+
this.buffer = stringify(this.buffer) + stringify(html);
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
class Render {
|
|
1231
|
+
renderTemplatesToNodeStream(templates, ctx) {
|
|
1232
|
+
const emitter = new StreamedEmitter();
|
|
1233
|
+
Promise.resolve().then(() => toPromise(this.renderTemplates(templates, ctx, emitter)))
|
|
1234
|
+
.then(() => emitter.end(), err => emitter.error(err));
|
|
1235
|
+
return emitter.stream;
|
|
1236
|
+
}
|
|
1237
|
+
*renderTemplates(templates, ctx, emitter) {
|
|
1238
|
+
if (!emitter) {
|
|
1239
|
+
emitter = ctx.opts.keepOutputType ? new KeepingTypeEmitter() : new SimpleEmitter();
|
|
1240
|
+
}
|
|
1241
|
+
const errors = [];
|
|
1242
|
+
for (const tpl of templates) {
|
|
1243
|
+
ctx.renderLimit.check(getPerformance().now());
|
|
1244
|
+
try {
|
|
1245
|
+
// if tpl.render supports emitter, it'll return empty `html`
|
|
1246
|
+
const html = yield tpl.render(ctx, emitter);
|
|
1247
|
+
// if not, it'll return an `html`, write to the emitter for it
|
|
1248
|
+
html && emitter.write(html);
|
|
1249
|
+
if (ctx.breakCalled || ctx.continueCalled)
|
|
1250
|
+
break;
|
|
1251
|
+
}
|
|
1252
|
+
catch (e) {
|
|
1253
|
+
const err = LiquidError.is(e) ? e : new RenderError(e, tpl);
|
|
1254
|
+
if (ctx.opts.catchAllErrors)
|
|
1255
|
+
errors.push(err);
|
|
1256
|
+
else
|
|
1257
|
+
throw err;
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
if (errors.length) {
|
|
1261
|
+
throw new LiquidErrors(errors);
|
|
1262
|
+
}
|
|
1263
|
+
return emitter.buffer;
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
class Expression {
|
|
1268
|
+
constructor(tokens) {
|
|
1269
|
+
this.postfix = [...toPostfix(tokens)];
|
|
1270
|
+
}
|
|
1271
|
+
*evaluate(ctx, lenient) {
|
|
1272
|
+
assert(ctx, 'unable to evaluate: context not defined');
|
|
1273
|
+
const operands = [];
|
|
1274
|
+
for (const token of this.postfix) {
|
|
1275
|
+
if (isOperatorToken(token)) {
|
|
1276
|
+
const r = operands.pop();
|
|
1277
|
+
let result;
|
|
1278
|
+
if (operatorTypes[token.operator] === 1 /* OperatorType.Unary */) {
|
|
1279
|
+
result = yield ctx.opts.operators[token.operator](r, ctx);
|
|
1280
|
+
}
|
|
1281
|
+
else {
|
|
1282
|
+
const l = operands.pop();
|
|
1283
|
+
result = yield ctx.opts.operators[token.operator](l, r, ctx);
|
|
1284
|
+
}
|
|
1285
|
+
operands.push(result);
|
|
1286
|
+
}
|
|
1287
|
+
else {
|
|
1288
|
+
operands.push(yield evalToken(token, ctx, lenient));
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
return operands[0];
|
|
1292
|
+
}
|
|
1293
|
+
valid() {
|
|
1294
|
+
return !!this.postfix.length;
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
function* evalToken(token, ctx, lenient = false) {
|
|
1298
|
+
if (!token)
|
|
1299
|
+
return;
|
|
1300
|
+
if ('content' in token)
|
|
1301
|
+
return token.content;
|
|
1302
|
+
if (isPropertyAccessToken(token))
|
|
1303
|
+
return yield evalPropertyAccessToken(token, ctx, lenient);
|
|
1304
|
+
if (isRangeToken(token))
|
|
1305
|
+
return yield evalRangeToken(token, ctx);
|
|
1306
|
+
}
|
|
1307
|
+
function* evalPropertyAccessToken(token, ctx, lenient) {
|
|
1308
|
+
const props = [];
|
|
1309
|
+
for (const prop of token.props) {
|
|
1310
|
+
props.push((yield evalToken(prop, ctx, false)));
|
|
1311
|
+
}
|
|
1312
|
+
try {
|
|
1313
|
+
if (token.variable) {
|
|
1314
|
+
const variable = yield evalToken(token.variable, ctx, lenient);
|
|
1315
|
+
return yield ctx._getFromScope(variable, props);
|
|
1316
|
+
}
|
|
1317
|
+
else {
|
|
1318
|
+
return yield ctx._get(props);
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
catch (e) {
|
|
1322
|
+
if (lenient && e.name === 'InternalUndefinedVariableError')
|
|
1323
|
+
return null;
|
|
1324
|
+
throw (new UndefinedVariableError(e, token));
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
function evalQuotedToken(token) {
|
|
1328
|
+
return token.content;
|
|
1329
|
+
}
|
|
1330
|
+
function* evalRangeToken(token, ctx) {
|
|
1331
|
+
const low = yield evalToken(token.lhs, ctx);
|
|
1332
|
+
const high = yield evalToken(token.rhs, ctx);
|
|
1333
|
+
ctx.memoryLimit.use(high - low + 1);
|
|
1334
|
+
return range(+low, +high + 1);
|
|
1335
|
+
}
|
|
1336
|
+
function* toPostfix(tokens) {
|
|
1337
|
+
const ops = [];
|
|
1338
|
+
for (const token of tokens) {
|
|
1339
|
+
if (isOperatorToken(token)) {
|
|
1340
|
+
while (ops.length && ops[ops.length - 1].getPrecedence() > token.getPrecedence()) {
|
|
1341
|
+
yield ops.pop();
|
|
1342
|
+
}
|
|
1343
|
+
ops.push(token);
|
|
1344
|
+
}
|
|
1345
|
+
else
|
|
1346
|
+
yield token;
|
|
1347
|
+
}
|
|
1348
|
+
while (ops.length) {
|
|
1349
|
+
yield ops.pop();
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
function isTruthy(val, ctx) {
|
|
1354
|
+
return !isFalsy(val, ctx);
|
|
1355
|
+
}
|
|
1356
|
+
function isFalsy(val, ctx) {
|
|
1357
|
+
val = toValue(val);
|
|
1358
|
+
if (ctx.opts.jsTruthy) {
|
|
1359
|
+
return !val;
|
|
1360
|
+
}
|
|
1361
|
+
else {
|
|
1362
|
+
return val === false || undefined === val || val === null;
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
const defaultOperators = {
|
|
1367
|
+
'==': equals,
|
|
1368
|
+
'!=': (l, r) => !equals(l, r),
|
|
1369
|
+
'>': (l, r) => {
|
|
1370
|
+
if (isComparable(l))
|
|
1371
|
+
return l.gt(r);
|
|
1372
|
+
if (isComparable(r))
|
|
1373
|
+
return r.lt(l);
|
|
1374
|
+
return toValue(l) > toValue(r);
|
|
1375
|
+
},
|
|
1376
|
+
'<': (l, r) => {
|
|
1377
|
+
if (isComparable(l))
|
|
1378
|
+
return l.lt(r);
|
|
1379
|
+
if (isComparable(r))
|
|
1380
|
+
return r.gt(l);
|
|
1381
|
+
return toValue(l) < toValue(r);
|
|
1382
|
+
},
|
|
1383
|
+
'>=': (l, r) => {
|
|
1384
|
+
if (isComparable(l))
|
|
1385
|
+
return l.geq(r);
|
|
1386
|
+
if (isComparable(r))
|
|
1387
|
+
return r.leq(l);
|
|
1388
|
+
return toValue(l) >= toValue(r);
|
|
1389
|
+
},
|
|
1390
|
+
'<=': (l, r) => {
|
|
1391
|
+
if (isComparable(l))
|
|
1392
|
+
return l.leq(r);
|
|
1393
|
+
if (isComparable(r))
|
|
1394
|
+
return r.geq(l);
|
|
1395
|
+
return toValue(l) <= toValue(r);
|
|
1396
|
+
},
|
|
1397
|
+
'contains': (l, r) => {
|
|
1398
|
+
l = toValue(l);
|
|
1399
|
+
if (isArray(l))
|
|
1400
|
+
return l.some((i) => equals(i, r));
|
|
1401
|
+
if (isFunction(l === null || l === void 0 ? void 0 : l.indexOf))
|
|
1402
|
+
return l.indexOf(toValue(r)) > -1;
|
|
1403
|
+
return false;
|
|
1404
|
+
},
|
|
1405
|
+
'not': (v, ctx) => isFalsy(toValue(v), ctx),
|
|
1406
|
+
'and': (l, r, ctx) => isTruthy(toValue(l), ctx) && isTruthy(toValue(r), ctx),
|
|
1407
|
+
'or': (l, r, ctx) => isTruthy(toValue(l), ctx) || isTruthy(toValue(r), ctx)
|
|
1408
|
+
};
|
|
1409
|
+
function equals(lhs, rhs) {
|
|
1410
|
+
if (isComparable(lhs))
|
|
1411
|
+
return lhs.equals(rhs);
|
|
1412
|
+
if (isComparable(rhs))
|
|
1413
|
+
return rhs.equals(lhs);
|
|
1414
|
+
lhs = toValue(lhs);
|
|
1415
|
+
rhs = toValue(rhs);
|
|
1416
|
+
if (isArray(lhs)) {
|
|
1417
|
+
return isArray(rhs) && arrayEquals(lhs, rhs);
|
|
1418
|
+
}
|
|
1419
|
+
return lhs === rhs;
|
|
1420
|
+
}
|
|
1421
|
+
function arrayEquals(lhs, rhs) {
|
|
1422
|
+
if (lhs.length !== rhs.length)
|
|
1423
|
+
return false;
|
|
1424
|
+
return !lhs.some((value, i) => !equals(value, rhs[i]));
|
|
1425
|
+
}
|
|
1426
|
+
function arrayIncludes(arr, item) {
|
|
1427
|
+
return arr.some(value => equals(value, item));
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
class Node {
|
|
1431
|
+
constructor(key, value, next, prev) {
|
|
1432
|
+
this.key = key;
|
|
1433
|
+
this.value = value;
|
|
1434
|
+
this.next = next;
|
|
1435
|
+
this.prev = prev;
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
class LRU {
|
|
1439
|
+
constructor(limit, size = 0) {
|
|
1440
|
+
this.limit = limit;
|
|
1441
|
+
this.size = size;
|
|
1442
|
+
this.cache = {};
|
|
1443
|
+
this.head = new Node('HEAD', null, null, null);
|
|
1444
|
+
this.tail = new Node('TAIL', null, null, null);
|
|
1445
|
+
this.head.next = this.tail;
|
|
1446
|
+
this.tail.prev = this.head;
|
|
1447
|
+
}
|
|
1448
|
+
write(key, value) {
|
|
1449
|
+
if (this.cache[key]) {
|
|
1450
|
+
this.cache[key].value = value;
|
|
1451
|
+
}
|
|
1452
|
+
else {
|
|
1453
|
+
const node = new Node(key, value, this.head.next, this.head);
|
|
1454
|
+
this.head.next.prev = node;
|
|
1455
|
+
this.head.next = node;
|
|
1456
|
+
this.cache[key] = node;
|
|
1457
|
+
this.size++;
|
|
1458
|
+
this.ensureLimit();
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
read(key) {
|
|
1462
|
+
if (!this.cache[key])
|
|
1463
|
+
return;
|
|
1464
|
+
const { value } = this.cache[key];
|
|
1465
|
+
this.remove(key);
|
|
1466
|
+
this.write(key, value);
|
|
1467
|
+
return value;
|
|
1468
|
+
}
|
|
1469
|
+
remove(key) {
|
|
1470
|
+
const node = this.cache[key];
|
|
1471
|
+
node.prev.next = node.next;
|
|
1472
|
+
node.next.prev = node.prev;
|
|
1473
|
+
delete this.cache[key];
|
|
1474
|
+
this.size--;
|
|
1475
|
+
}
|
|
1476
|
+
clear() {
|
|
1477
|
+
this.head.next = this.tail;
|
|
1478
|
+
this.tail.prev = this.head;
|
|
1479
|
+
this.size = 0;
|
|
1480
|
+
this.cache = {};
|
|
1481
|
+
}
|
|
1482
|
+
ensureLimit() {
|
|
1483
|
+
if (this.size > this.limit)
|
|
1484
|
+
this.remove(this.tail.prev.key);
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
function domResolve(root, path) {
|
|
1489
|
+
const base = document.createElement('base');
|
|
1490
|
+
base.href = root;
|
|
1491
|
+
const head = document.getElementsByTagName('head')[0];
|
|
1492
|
+
head.insertBefore(base, head.firstChild);
|
|
1493
|
+
const a = document.createElement('a');
|
|
1494
|
+
a.href = path;
|
|
1495
|
+
const resolved = a.href;
|
|
1496
|
+
head.removeChild(base);
|
|
1497
|
+
return resolved;
|
|
1498
|
+
}
|
|
1499
|
+
function resolve(root, filepath, ext) {
|
|
1500
|
+
if (root.length && last(root) !== '/')
|
|
1501
|
+
root += '/';
|
|
1502
|
+
const url = domResolve(root, filepath);
|
|
1503
|
+
return url.replace(/^(\w+:\/\/[^/]+)(\/[^?]+)/, (str, origin, path) => {
|
|
1504
|
+
const last = path.split('/').pop();
|
|
1505
|
+
if (/\.\w+$/.test(last))
|
|
1506
|
+
return str;
|
|
1507
|
+
return origin + path + ext;
|
|
1508
|
+
});
|
|
1509
|
+
}
|
|
1510
|
+
function readFile(url) {
|
|
1511
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1512
|
+
return new Promise((resolve, reject) => {
|
|
1513
|
+
const xhr = new XMLHttpRequest();
|
|
1514
|
+
xhr.onload = () => {
|
|
1515
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
1516
|
+
resolve(xhr.responseText);
|
|
1517
|
+
}
|
|
1518
|
+
else {
|
|
1519
|
+
reject(new Error(xhr.statusText));
|
|
1520
|
+
}
|
|
1521
|
+
};
|
|
1522
|
+
xhr.onerror = () => {
|
|
1523
|
+
reject(new Error('An error occurred whilst receiving the response.'));
|
|
1524
|
+
};
|
|
1525
|
+
xhr.open('GET', url);
|
|
1526
|
+
xhr.send();
|
|
1527
|
+
});
|
|
1528
|
+
});
|
|
1529
|
+
}
|
|
1530
|
+
function readFileSync(url) {
|
|
1531
|
+
const xhr = new XMLHttpRequest();
|
|
1532
|
+
xhr.open('GET', url, false);
|
|
1533
|
+
xhr.send();
|
|
1534
|
+
if (xhr.status < 200 || xhr.status >= 300) {
|
|
1535
|
+
throw new Error(xhr.statusText);
|
|
1536
|
+
}
|
|
1537
|
+
return xhr.responseText;
|
|
1538
|
+
}
|
|
1539
|
+
function exists(filepath) {
|
|
1540
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1541
|
+
return true;
|
|
1542
|
+
});
|
|
1543
|
+
}
|
|
1544
|
+
function existsSync(filepath) {
|
|
1545
|
+
return true;
|
|
1546
|
+
}
|
|
1547
|
+
function dirname(filepath) {
|
|
1548
|
+
return domResolve(filepath, '.');
|
|
1549
|
+
}
|
|
1550
|
+
const sep = '/';
|
|
1551
|
+
|
|
1552
|
+
var fs = /*#__PURE__*/Object.freeze({
|
|
1553
|
+
__proto__: null,
|
|
1554
|
+
resolve: resolve,
|
|
1555
|
+
readFile: readFile,
|
|
1556
|
+
readFileSync: readFileSync,
|
|
1557
|
+
exists: exists,
|
|
1558
|
+
existsSync: existsSync,
|
|
1559
|
+
dirname: dirname,
|
|
1560
|
+
sep: sep
|
|
1561
|
+
});
|
|
1562
|
+
|
|
1563
|
+
function defaultFilter(value, defaultValue, ...args) {
|
|
1564
|
+
value = toValue(value);
|
|
1565
|
+
if (isArray(value) || isString(value))
|
|
1566
|
+
return value.length ? value : defaultValue;
|
|
1567
|
+
if (value === false && (new Map(args)).get('allow_false'))
|
|
1568
|
+
return false;
|
|
1569
|
+
return isFalsy(value, this.context) ? defaultValue : value;
|
|
1570
|
+
}
|
|
1571
|
+
function json(value, space = 0) {
|
|
1572
|
+
return JSON.stringify(value, null, space);
|
|
1573
|
+
}
|
|
1574
|
+
function inspect(value, space = 0) {
|
|
1575
|
+
const ancestors = [];
|
|
1576
|
+
return JSON.stringify(value, function (_key, value) {
|
|
1577
|
+
if (typeof value !== 'object' || value === null)
|
|
1578
|
+
return value;
|
|
1579
|
+
// `this` is the object that value is contained in, i.e., its direct parent.
|
|
1580
|
+
while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this)
|
|
1581
|
+
ancestors.pop();
|
|
1582
|
+
if (ancestors.includes(value))
|
|
1583
|
+
return '[Circular]';
|
|
1584
|
+
ancestors.push(value);
|
|
1585
|
+
return value;
|
|
1586
|
+
}, space);
|
|
1587
|
+
}
|
|
1588
|
+
function to_integer(value) {
|
|
1589
|
+
return Number(value);
|
|
1590
|
+
}
|
|
1591
|
+
const raw = {
|
|
1592
|
+
raw: true,
|
|
1593
|
+
handler: identify
|
|
1594
|
+
};
|
|
1595
|
+
var misc = {
|
|
1596
|
+
default: defaultFilter,
|
|
1597
|
+
raw,
|
|
1598
|
+
jsonify: json,
|
|
1599
|
+
to_integer,
|
|
1600
|
+
json,
|
|
1601
|
+
inspect
|
|
1602
|
+
};
|
|
1603
|
+
|
|
1604
|
+
const escapeMap = {
|
|
1605
|
+
'&': '&',
|
|
1606
|
+
'<': '<',
|
|
1607
|
+
'>': '>',
|
|
1608
|
+
'"': '"',
|
|
1609
|
+
"'": '''
|
|
1610
|
+
};
|
|
1611
|
+
const unescapeMap = {
|
|
1612
|
+
'&': '&',
|
|
1613
|
+
'<': '<',
|
|
1614
|
+
'>': '>',
|
|
1615
|
+
'"': '"',
|
|
1616
|
+
''': "'"
|
|
1617
|
+
};
|
|
1618
|
+
function escape(str) {
|
|
1619
|
+
str = stringify(str);
|
|
1620
|
+
this.context.memoryLimit.use(str.length);
|
|
1621
|
+
return str.replace(/&|<|>|"|'/g, m => escapeMap[m]);
|
|
1622
|
+
}
|
|
1623
|
+
function xml_escape(str) {
|
|
1624
|
+
return escape.call(this, str);
|
|
1625
|
+
}
|
|
1626
|
+
function unescape(str) {
|
|
1627
|
+
str = stringify(str);
|
|
1628
|
+
this.context.memoryLimit.use(str.length);
|
|
1629
|
+
return str.replace(/&(amp|lt|gt|#34|#39);/g, m => unescapeMap[m]);
|
|
1630
|
+
}
|
|
1631
|
+
function escape_once(str) {
|
|
1632
|
+
return escape.call(this, unescape.call(this, str));
|
|
1633
|
+
}
|
|
1634
|
+
function newline_to_br(v) {
|
|
1635
|
+
const str = stringify(v);
|
|
1636
|
+
this.context.memoryLimit.use(str.length);
|
|
1637
|
+
return str.replace(/\r?\n/gm, '<br />\n');
|
|
1638
|
+
}
|
|
1639
|
+
function strip_html(v) {
|
|
1640
|
+
const str = stringify(v);
|
|
1641
|
+
this.context.memoryLimit.use(str.length);
|
|
1642
|
+
return str.replace(/<script[\s\S]*?<\/script>|<style[\s\S]*?<\/style>|<.*?>|<!--[\s\S]*?-->/g, '');
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
var htmlFilters = /*#__PURE__*/Object.freeze({
|
|
1646
|
+
__proto__: null,
|
|
1647
|
+
escape: escape,
|
|
1648
|
+
xml_escape: xml_escape,
|
|
1649
|
+
escape_once: escape_once,
|
|
1650
|
+
newline_to_br: newline_to_br,
|
|
1651
|
+
strip_html: strip_html
|
|
1652
|
+
});
|
|
1653
|
+
|
|
1654
|
+
class MapFS {
|
|
1655
|
+
constructor(mapping) {
|
|
1656
|
+
this.mapping = mapping;
|
|
1657
|
+
this.sep = '/';
|
|
1658
|
+
}
|
|
1659
|
+
exists(filepath) {
|
|
1660
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1661
|
+
return this.existsSync(filepath);
|
|
1662
|
+
});
|
|
1663
|
+
}
|
|
1664
|
+
existsSync(filepath) {
|
|
1665
|
+
return !isNil(this.mapping[filepath]);
|
|
1666
|
+
}
|
|
1667
|
+
readFile(filepath) {
|
|
1668
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1669
|
+
return this.readFileSync(filepath);
|
|
1670
|
+
});
|
|
1671
|
+
}
|
|
1672
|
+
readFileSync(filepath) {
|
|
1673
|
+
const content = this.mapping[filepath];
|
|
1674
|
+
if (isNil(content))
|
|
1675
|
+
throw new Error(`ENOENT: ${filepath}`);
|
|
1676
|
+
return content;
|
|
1677
|
+
}
|
|
1678
|
+
dirname(filepath) {
|
|
1679
|
+
const segments = filepath.split(this.sep);
|
|
1680
|
+
segments.pop();
|
|
1681
|
+
return segments.join(this.sep);
|
|
1682
|
+
}
|
|
1683
|
+
resolve(dir, file, ext) {
|
|
1684
|
+
file += ext;
|
|
1685
|
+
if (dir === '.')
|
|
1686
|
+
return file;
|
|
1687
|
+
const segments = dir.split(/\/+/);
|
|
1688
|
+
for (const segment of file.split(this.sep)) {
|
|
1689
|
+
if (segment === '.' || segment === '')
|
|
1690
|
+
continue;
|
|
1691
|
+
else if (segment === '..') {
|
|
1692
|
+
if (segments.length > 1 || segments[0] !== '')
|
|
1693
|
+
segments.pop();
|
|
1694
|
+
}
|
|
1695
|
+
else
|
|
1696
|
+
segments.push(segment);
|
|
1697
|
+
}
|
|
1698
|
+
return segments.join(this.sep);
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
const defaultOptions = {
|
|
1703
|
+
root: ['.'],
|
|
1704
|
+
layouts: ['.'],
|
|
1705
|
+
partials: ['.'],
|
|
1706
|
+
relativeReference: true,
|
|
1707
|
+
jekyllInclude: false,
|
|
1708
|
+
keyValueSeparator: ':',
|
|
1709
|
+
cache: undefined,
|
|
1710
|
+
extname: '',
|
|
1711
|
+
fs: fs,
|
|
1712
|
+
dynamicPartials: true,
|
|
1713
|
+
jsTruthy: false,
|
|
1714
|
+
dateFormat: '%A, %B %-e, %Y at %-l:%M %P %z',
|
|
1715
|
+
locale: '',
|
|
1716
|
+
trimTagRight: false,
|
|
1717
|
+
trimTagLeft: false,
|
|
1718
|
+
trimOutputRight: false,
|
|
1719
|
+
trimOutputLeft: false,
|
|
1720
|
+
greedy: true,
|
|
1721
|
+
tagDelimiterLeft: '{%',
|
|
1722
|
+
tagDelimiterRight: '%}',
|
|
1723
|
+
outputDelimiterLeft: '{{',
|
|
1724
|
+
outputDelimiterRight: '}}',
|
|
1725
|
+
preserveTimezones: false,
|
|
1726
|
+
strictFilters: false,
|
|
1727
|
+
strictVariables: false,
|
|
1728
|
+
ownPropertyOnly: true,
|
|
1729
|
+
lenientIf: false,
|
|
1730
|
+
globals: {},
|
|
1731
|
+
keepOutputType: false,
|
|
1732
|
+
operators: defaultOperators,
|
|
1733
|
+
memoryLimit: Infinity,
|
|
1734
|
+
parseLimit: Infinity,
|
|
1735
|
+
renderLimit: Infinity
|
|
1736
|
+
};
|
|
1737
|
+
function normalize(options) {
|
|
1738
|
+
var _a, _b;
|
|
1739
|
+
if (options.hasOwnProperty('root')) {
|
|
1740
|
+
if (!options.hasOwnProperty('partials'))
|
|
1741
|
+
options.partials = options.root;
|
|
1742
|
+
if (!options.hasOwnProperty('layouts'))
|
|
1743
|
+
options.layouts = options.root;
|
|
1744
|
+
}
|
|
1745
|
+
if (options.hasOwnProperty('cache')) {
|
|
1746
|
+
let cache;
|
|
1747
|
+
if (typeof options.cache === 'number')
|
|
1748
|
+
cache = options.cache > 0 ? new LRU(options.cache) : undefined;
|
|
1749
|
+
else if (typeof options.cache === 'object')
|
|
1750
|
+
cache = options.cache;
|
|
1751
|
+
else
|
|
1752
|
+
cache = options.cache ? new LRU(1024) : undefined;
|
|
1753
|
+
options.cache = cache;
|
|
1754
|
+
}
|
|
1755
|
+
options = Object.assign(Object.assign(Object.assign({}, defaultOptions), (options.jekyllInclude ? { dynamicPartials: false } : {})), options);
|
|
1756
|
+
if ((!options.fs.dirname || !options.fs.sep) && options.relativeReference) {
|
|
1757
|
+
console.warn('[LiquidJS] `fs.dirname` and `fs.sep` are required for relativeReference, set relativeReference to `false` to suppress this warning');
|
|
1758
|
+
options.relativeReference = false;
|
|
1759
|
+
}
|
|
1760
|
+
options.root = normalizeDirectoryList(options.root);
|
|
1761
|
+
options.partials = normalizeDirectoryList(options.partials);
|
|
1762
|
+
options.layouts = normalizeDirectoryList(options.layouts);
|
|
1763
|
+
options.outputEscape = options.outputEscape && getOutputEscapeFunction(options.outputEscape);
|
|
1764
|
+
if (!options.locale) {
|
|
1765
|
+
options.locale = (_b = (_a = getDateTimeFormat()) === null || _a === void 0 ? void 0 : _a().resolvedOptions().locale) !== null && _b !== void 0 ? _b : 'en-US';
|
|
1766
|
+
}
|
|
1767
|
+
if (options.templates) {
|
|
1768
|
+
options.fs = new MapFS(options.templates);
|
|
1769
|
+
options.relativeReference = true;
|
|
1770
|
+
options.root = options.partials = options.layouts = '.';
|
|
1771
|
+
}
|
|
1772
|
+
return options;
|
|
1773
|
+
}
|
|
1774
|
+
function getOutputEscapeFunction(nameOrFunction) {
|
|
1775
|
+
if (nameOrFunction === 'escape')
|
|
1776
|
+
return escape;
|
|
1777
|
+
if (nameOrFunction === 'json')
|
|
1778
|
+
return misc.json;
|
|
1779
|
+
assert(isFunction(nameOrFunction), '`outputEscape` need to be of type string or function');
|
|
1780
|
+
return nameOrFunction;
|
|
1781
|
+
}
|
|
1782
|
+
function normalizeDirectoryList(value) {
|
|
1783
|
+
let list = [];
|
|
1784
|
+
if (isArray(value))
|
|
1785
|
+
list = value;
|
|
1786
|
+
if (isString(value))
|
|
1787
|
+
list = [value];
|
|
1788
|
+
return list;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
function whiteSpaceCtrl(tokens, options) {
|
|
1792
|
+
let inRaw = false;
|
|
1793
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
1794
|
+
const token = tokens[i];
|
|
1795
|
+
if (!isDelimitedToken(token))
|
|
1796
|
+
continue;
|
|
1797
|
+
if (!inRaw && token.trimLeft) {
|
|
1798
|
+
trimLeft(tokens[i - 1], options.greedy);
|
|
1799
|
+
}
|
|
1800
|
+
if (isTagToken(token)) {
|
|
1801
|
+
if (token.name === 'raw')
|
|
1802
|
+
inRaw = true;
|
|
1803
|
+
else if (token.name === 'endraw')
|
|
1804
|
+
inRaw = false;
|
|
1805
|
+
}
|
|
1806
|
+
if (!inRaw && token.trimRight) {
|
|
1807
|
+
trimRight(tokens[i + 1], options.greedy);
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
function trimLeft(token, greedy) {
|
|
1812
|
+
if (!token || !isHTMLToken(token))
|
|
1813
|
+
return;
|
|
1814
|
+
const mask = greedy ? BLANK : INLINE_BLANK;
|
|
1815
|
+
while (TYPES[token.input.charCodeAt(token.end - 1 - token.trimRight)] & mask)
|
|
1816
|
+
token.trimRight++;
|
|
1817
|
+
}
|
|
1818
|
+
function trimRight(token, greedy) {
|
|
1819
|
+
if (!token || !isHTMLToken(token))
|
|
1820
|
+
return;
|
|
1821
|
+
const mask = greedy ? BLANK : INLINE_BLANK;
|
|
1822
|
+
while (TYPES[token.input.charCodeAt(token.begin + token.trimLeft)] & mask)
|
|
1823
|
+
token.trimLeft++;
|
|
1824
|
+
if (token.input.charAt(token.begin + token.trimLeft) === '\n')
|
|
1825
|
+
token.trimLeft++;
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
class Tokenizer {
|
|
1829
|
+
constructor(input, operators = defaultOptions.operators, file, range) {
|
|
1830
|
+
this.input = input;
|
|
1831
|
+
this.file = file;
|
|
1832
|
+
this.rawBeginAt = -1;
|
|
1833
|
+
this.p = range ? range[0] : 0;
|
|
1834
|
+
this.N = range ? range[1] : input.length;
|
|
1835
|
+
this.opTrie = createTrie(operators);
|
|
1836
|
+
this.literalTrie = createTrie(literalValues);
|
|
1837
|
+
}
|
|
1838
|
+
readExpression() {
|
|
1839
|
+
return new Expression(this.readExpressionTokens());
|
|
1840
|
+
}
|
|
1841
|
+
*readExpressionTokens() {
|
|
1842
|
+
while (this.p < this.N) {
|
|
1843
|
+
const operator = this.readOperator();
|
|
1844
|
+
if (operator) {
|
|
1845
|
+
yield operator;
|
|
1846
|
+
continue;
|
|
1847
|
+
}
|
|
1848
|
+
const operand = this.readValue();
|
|
1849
|
+
if (operand) {
|
|
1850
|
+
yield operand;
|
|
1851
|
+
continue;
|
|
1852
|
+
}
|
|
1853
|
+
return;
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1856
|
+
readOperator() {
|
|
1857
|
+
this.skipBlank();
|
|
1858
|
+
const end = this.matchTrie(this.opTrie);
|
|
1859
|
+
if (end === -1)
|
|
1860
|
+
return;
|
|
1861
|
+
return new OperatorToken(this.input, this.p, (this.p = end), this.file);
|
|
1862
|
+
}
|
|
1863
|
+
matchTrie(trie) {
|
|
1864
|
+
let node = trie;
|
|
1865
|
+
let i = this.p;
|
|
1866
|
+
let info;
|
|
1867
|
+
while (node[this.input[i]] && i < this.N) {
|
|
1868
|
+
node = node[this.input[i++]];
|
|
1869
|
+
if (node['end'])
|
|
1870
|
+
info = node;
|
|
1871
|
+
}
|
|
1872
|
+
if (!info)
|
|
1873
|
+
return -1;
|
|
1874
|
+
if (info['needBoundary'] && isWord(this.peek(i - this.p)))
|
|
1875
|
+
return -1;
|
|
1876
|
+
return i;
|
|
1877
|
+
}
|
|
1878
|
+
readFilteredValue() {
|
|
1879
|
+
const begin = this.p;
|
|
1880
|
+
const initial = this.readExpression();
|
|
1881
|
+
this.assert(initial.valid(), `invalid value expression: ${this.snapshot()}`);
|
|
1882
|
+
const filters = this.readFilters();
|
|
1883
|
+
return new FilteredValueToken(initial, filters, this.input, begin, this.p, this.file);
|
|
1884
|
+
}
|
|
1885
|
+
readFilters() {
|
|
1886
|
+
const filters = [];
|
|
1887
|
+
while (true) {
|
|
1888
|
+
const filter = this.readFilter();
|
|
1889
|
+
if (!filter)
|
|
1890
|
+
return filters;
|
|
1891
|
+
filters.push(filter);
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
readFilter() {
|
|
1895
|
+
this.skipBlank();
|
|
1896
|
+
if (this.end())
|
|
1897
|
+
return null;
|
|
1898
|
+
this.assert(this.read() === '|', `expected "|" before filter`);
|
|
1899
|
+
const name = this.readIdentifier();
|
|
1900
|
+
if (!name.size()) {
|
|
1901
|
+
this.assert(this.end(), `expected filter name`);
|
|
1902
|
+
return null;
|
|
1903
|
+
}
|
|
1904
|
+
const args = [];
|
|
1905
|
+
this.skipBlank();
|
|
1906
|
+
if (this.peek() === ':') {
|
|
1907
|
+
do {
|
|
1908
|
+
++this.p;
|
|
1909
|
+
const arg = this.readFilterArg();
|
|
1910
|
+
arg && args.push(arg);
|
|
1911
|
+
this.skipBlank();
|
|
1912
|
+
this.assert(this.end() || this.peek() === ',' || this.peek() === '|', () => `unexpected character ${this.snapshot()}`);
|
|
1913
|
+
} while (this.peek() === ',');
|
|
1914
|
+
}
|
|
1915
|
+
else if (this.peek() === '|' || this.end()) ;
|
|
1916
|
+
else {
|
|
1917
|
+
throw this.error('expected ":" after filter name');
|
|
1918
|
+
}
|
|
1919
|
+
return new FilterToken(name.getText(), args, this.input, name.begin, this.p, this.file);
|
|
1920
|
+
}
|
|
1921
|
+
readFilterArg() {
|
|
1922
|
+
const key = this.readValue();
|
|
1923
|
+
if (!key)
|
|
1924
|
+
return;
|
|
1925
|
+
this.skipBlank();
|
|
1926
|
+
if (this.peek() !== ':')
|
|
1927
|
+
return key;
|
|
1928
|
+
++this.p;
|
|
1929
|
+
const value = this.readValue();
|
|
1930
|
+
return [key.getText(), value];
|
|
1931
|
+
}
|
|
1932
|
+
readTopLevelTokens(options = defaultOptions) {
|
|
1933
|
+
const tokens = [];
|
|
1934
|
+
while (this.p < this.N) {
|
|
1935
|
+
const token = this.readTopLevelToken(options);
|
|
1936
|
+
tokens.push(token);
|
|
1937
|
+
}
|
|
1938
|
+
whiteSpaceCtrl(tokens, options);
|
|
1939
|
+
return tokens;
|
|
1940
|
+
}
|
|
1941
|
+
readTopLevelToken(options) {
|
|
1942
|
+
const { tagDelimiterLeft, outputDelimiterLeft } = options;
|
|
1943
|
+
if (this.rawBeginAt > -1)
|
|
1944
|
+
return this.readEndrawOrRawContent(options);
|
|
1945
|
+
if (this.match(tagDelimiterLeft))
|
|
1946
|
+
return this.readTagToken(options);
|
|
1947
|
+
if (this.match(outputDelimiterLeft))
|
|
1948
|
+
return this.readOutputToken(options);
|
|
1949
|
+
return this.readHTMLToken([tagDelimiterLeft, outputDelimiterLeft]);
|
|
1950
|
+
}
|
|
1951
|
+
readHTMLToken(stopStrings) {
|
|
1952
|
+
const begin = this.p;
|
|
1953
|
+
while (this.p < this.N) {
|
|
1954
|
+
if (stopStrings.some(str => this.match(str)))
|
|
1955
|
+
break;
|
|
1956
|
+
++this.p;
|
|
1957
|
+
}
|
|
1958
|
+
return new HTMLToken(this.input, begin, this.p, this.file);
|
|
1959
|
+
}
|
|
1960
|
+
readTagToken(options) {
|
|
1961
|
+
const { file, input } = this;
|
|
1962
|
+
const begin = this.p;
|
|
1963
|
+
if (this.readToDelimiter(options.tagDelimiterRight) === -1) {
|
|
1964
|
+
throw this.error(`tag ${this.snapshot(begin)} not closed`, begin);
|
|
1965
|
+
}
|
|
1966
|
+
const token = new TagToken(input, begin, this.p, options, file);
|
|
1967
|
+
if (token.name === 'raw')
|
|
1968
|
+
this.rawBeginAt = begin;
|
|
1969
|
+
return token;
|
|
1970
|
+
}
|
|
1971
|
+
readToDelimiter(delimiter, respectQuoted = false) {
|
|
1972
|
+
this.skipBlank();
|
|
1973
|
+
while (this.p < this.N) {
|
|
1974
|
+
if (respectQuoted && (this.peekType() & QUOTE)) {
|
|
1975
|
+
this.readQuoted();
|
|
1976
|
+
continue;
|
|
1977
|
+
}
|
|
1978
|
+
++this.p;
|
|
1979
|
+
if (this.rmatch(delimiter))
|
|
1980
|
+
return this.p;
|
|
1981
|
+
}
|
|
1982
|
+
return -1;
|
|
1983
|
+
}
|
|
1984
|
+
readOutputToken(options = defaultOptions) {
|
|
1985
|
+
const { file, input } = this;
|
|
1986
|
+
const { outputDelimiterRight } = options;
|
|
1987
|
+
const begin = this.p;
|
|
1988
|
+
if (this.readToDelimiter(outputDelimiterRight, true) === -1) {
|
|
1989
|
+
throw this.error(`output ${this.snapshot(begin)} not closed`, begin);
|
|
1990
|
+
}
|
|
1991
|
+
return new OutputToken(input, begin, this.p, options, file);
|
|
1992
|
+
}
|
|
1993
|
+
readEndrawOrRawContent(options) {
|
|
1994
|
+
const { tagDelimiterLeft, tagDelimiterRight } = options;
|
|
1995
|
+
const begin = this.p;
|
|
1996
|
+
let leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length;
|
|
1997
|
+
while (this.p < this.N) {
|
|
1998
|
+
if (this.readIdentifier().getText() !== 'endraw') {
|
|
1999
|
+
leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length;
|
|
2000
|
+
continue;
|
|
2001
|
+
}
|
|
2002
|
+
while (this.p <= this.N) {
|
|
2003
|
+
if (this.rmatch(tagDelimiterRight)) {
|
|
2004
|
+
const end = this.p;
|
|
2005
|
+
if (begin === leftPos) {
|
|
2006
|
+
this.rawBeginAt = -1;
|
|
2007
|
+
return new TagToken(this.input, begin, end, options, this.file);
|
|
2008
|
+
}
|
|
2009
|
+
else {
|
|
2010
|
+
this.p = leftPos;
|
|
2011
|
+
return new HTMLToken(this.input, begin, leftPos, this.file);
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
if (this.rmatch(tagDelimiterLeft))
|
|
2015
|
+
break;
|
|
2016
|
+
this.p++;
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
2019
|
+
throw this.error(`raw ${this.snapshot(this.rawBeginAt)} not closed`, begin);
|
|
2020
|
+
}
|
|
2021
|
+
readLiquidTagTokens(options = defaultOptions) {
|
|
2022
|
+
const tokens = [];
|
|
2023
|
+
while (this.p < this.N) {
|
|
2024
|
+
const token = this.readLiquidTagToken(options);
|
|
2025
|
+
token && tokens.push(token);
|
|
2026
|
+
}
|
|
2027
|
+
return tokens;
|
|
2028
|
+
}
|
|
2029
|
+
readLiquidTagToken(options) {
|
|
2030
|
+
this.skipBlank();
|
|
2031
|
+
if (this.end())
|
|
2032
|
+
return;
|
|
2033
|
+
const begin = this.p;
|
|
2034
|
+
this.readToDelimiter('\n');
|
|
2035
|
+
const end = this.p;
|
|
2036
|
+
return new LiquidTagToken(this.input, begin, end, options, this.file);
|
|
2037
|
+
}
|
|
2038
|
+
error(msg, pos = this.p) {
|
|
2039
|
+
return new TokenizationError(msg, new IdentifierToken(this.input, pos, this.N, this.file));
|
|
2040
|
+
}
|
|
2041
|
+
assert(pred, msg, pos) {
|
|
2042
|
+
if (!pred)
|
|
2043
|
+
throw this.error(typeof msg === 'function' ? msg() : msg, pos);
|
|
2044
|
+
}
|
|
2045
|
+
snapshot(begin = this.p) {
|
|
2046
|
+
return JSON.stringify(ellipsis(this.input.slice(begin, this.N), 32));
|
|
2047
|
+
}
|
|
2048
|
+
/**
|
|
2049
|
+
* @deprecated use #readIdentifier instead
|
|
2050
|
+
*/
|
|
2051
|
+
readWord() {
|
|
2052
|
+
return this.readIdentifier();
|
|
2053
|
+
}
|
|
2054
|
+
readIdentifier() {
|
|
2055
|
+
this.skipBlank();
|
|
2056
|
+
const begin = this.p;
|
|
2057
|
+
while (!this.end() && isWord(this.peek()))
|
|
2058
|
+
++this.p;
|
|
2059
|
+
return new IdentifierToken(this.input, begin, this.p, this.file);
|
|
2060
|
+
}
|
|
2061
|
+
readNonEmptyIdentifier() {
|
|
2062
|
+
const id = this.readIdentifier();
|
|
2063
|
+
return id.size() ? id : undefined;
|
|
2064
|
+
}
|
|
2065
|
+
readTagName() {
|
|
2066
|
+
this.skipBlank();
|
|
2067
|
+
// Handle inline comment tags
|
|
2068
|
+
if (this.input[this.p] === '#')
|
|
2069
|
+
return this.input.slice(this.p, ++this.p);
|
|
2070
|
+
return this.readIdentifier().getText();
|
|
2071
|
+
}
|
|
2072
|
+
readHashes(jekyllStyle) {
|
|
2073
|
+
const hashes = [];
|
|
2074
|
+
while (true) {
|
|
2075
|
+
const hash = this.readHash(jekyllStyle);
|
|
2076
|
+
if (!hash)
|
|
2077
|
+
return hashes;
|
|
2078
|
+
hashes.push(hash);
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
readHash(jekyllStyle) {
|
|
2082
|
+
this.skipBlank();
|
|
2083
|
+
if (this.peek() === ',')
|
|
2084
|
+
++this.p;
|
|
2085
|
+
const begin = this.p;
|
|
2086
|
+
const name = this.readNonEmptyIdentifier();
|
|
2087
|
+
if (!name)
|
|
2088
|
+
return;
|
|
2089
|
+
let value;
|
|
2090
|
+
this.skipBlank();
|
|
2091
|
+
const sep = isString(jekyllStyle) ? jekyllStyle : (jekyllStyle ? '=' : ':');
|
|
2092
|
+
if (this.peek() === sep) {
|
|
2093
|
+
++this.p;
|
|
2094
|
+
value = this.readValue();
|
|
2095
|
+
}
|
|
2096
|
+
return new HashToken(this.input, begin, this.p, name, value, this.file);
|
|
2097
|
+
}
|
|
2098
|
+
remaining() {
|
|
2099
|
+
return this.input.slice(this.p, this.N);
|
|
2100
|
+
}
|
|
2101
|
+
advance(step = 1) {
|
|
2102
|
+
this.p += step;
|
|
2103
|
+
}
|
|
2104
|
+
end() {
|
|
2105
|
+
return this.p >= this.N;
|
|
2106
|
+
}
|
|
2107
|
+
read() {
|
|
2108
|
+
return this.input[this.p++];
|
|
2109
|
+
}
|
|
2110
|
+
readTo(end) {
|
|
2111
|
+
while (this.p < this.N) {
|
|
2112
|
+
++this.p;
|
|
2113
|
+
if (this.rmatch(end))
|
|
2114
|
+
return this.p;
|
|
2115
|
+
}
|
|
2116
|
+
return -1;
|
|
2117
|
+
}
|
|
2118
|
+
readValue() {
|
|
2119
|
+
this.skipBlank();
|
|
2120
|
+
const begin = this.p;
|
|
2121
|
+
const variable = this.readLiteral() || this.readQuoted() || this.readRange() || this.readNumber();
|
|
2122
|
+
const props = this.readProperties(!variable);
|
|
2123
|
+
if (!props.length)
|
|
2124
|
+
return variable;
|
|
2125
|
+
return new PropertyAccessToken(variable, props, this.input, begin, this.p);
|
|
2126
|
+
}
|
|
2127
|
+
readScopeValue() {
|
|
2128
|
+
this.skipBlank();
|
|
2129
|
+
const begin = this.p;
|
|
2130
|
+
const props = this.readProperties();
|
|
2131
|
+
if (!props.length)
|
|
2132
|
+
return undefined;
|
|
2133
|
+
return new PropertyAccessToken(undefined, props, this.input, begin, this.p);
|
|
2134
|
+
}
|
|
2135
|
+
readProperties(isBegin = true) {
|
|
2136
|
+
const props = [];
|
|
2137
|
+
while (true) {
|
|
2138
|
+
if (this.peek() === '[') {
|
|
2139
|
+
this.p++;
|
|
2140
|
+
const prop = this.readValue() || new IdentifierToken(this.input, this.p, this.p, this.file);
|
|
2141
|
+
this.assert(this.readTo(']') !== -1, '[ not closed');
|
|
2142
|
+
props.push(prop);
|
|
2143
|
+
continue;
|
|
2144
|
+
}
|
|
2145
|
+
if (isBegin && !props.length) {
|
|
2146
|
+
const prop = this.readNonEmptyIdentifier();
|
|
2147
|
+
if (prop) {
|
|
2148
|
+
props.push(prop);
|
|
2149
|
+
continue;
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
if (this.peek() === '.' && this.peek(1) !== '.') { // skip range syntax
|
|
2153
|
+
this.p++;
|
|
2154
|
+
const prop = this.readNonEmptyIdentifier();
|
|
2155
|
+
if (!prop)
|
|
2156
|
+
break;
|
|
2157
|
+
props.push(prop);
|
|
2158
|
+
continue;
|
|
2159
|
+
}
|
|
2160
|
+
break;
|
|
2161
|
+
}
|
|
2162
|
+
return props;
|
|
2163
|
+
}
|
|
2164
|
+
readNumber() {
|
|
2165
|
+
this.skipBlank();
|
|
2166
|
+
let decimalFound = false;
|
|
2167
|
+
let digitFound = false;
|
|
2168
|
+
let n = 0;
|
|
2169
|
+
if (this.peekType() & SIGN)
|
|
2170
|
+
n++;
|
|
2171
|
+
while (this.p + n <= this.N) {
|
|
2172
|
+
if (this.peekType(n) & NUMBER) {
|
|
2173
|
+
digitFound = true;
|
|
2174
|
+
n++;
|
|
2175
|
+
}
|
|
2176
|
+
else if (this.peek(n) === '.' && this.peek(n + 1) !== '.') {
|
|
2177
|
+
if (decimalFound || !digitFound)
|
|
2178
|
+
return;
|
|
2179
|
+
decimalFound = true;
|
|
2180
|
+
n++;
|
|
2181
|
+
}
|
|
2182
|
+
else
|
|
2183
|
+
break;
|
|
2184
|
+
}
|
|
2185
|
+
if (digitFound && !isWord(this.peek(n))) {
|
|
2186
|
+
const num = new NumberToken(this.input, this.p, this.p + n, this.file);
|
|
2187
|
+
this.advance(n);
|
|
2188
|
+
return num;
|
|
2189
|
+
}
|
|
2190
|
+
}
|
|
2191
|
+
readLiteral() {
|
|
2192
|
+
this.skipBlank();
|
|
2193
|
+
const end = this.matchTrie(this.literalTrie);
|
|
2194
|
+
if (end === -1)
|
|
2195
|
+
return;
|
|
2196
|
+
const literal = new LiteralToken(this.input, this.p, end, this.file);
|
|
2197
|
+
this.p = end;
|
|
2198
|
+
return literal;
|
|
2199
|
+
}
|
|
2200
|
+
readRange() {
|
|
2201
|
+
this.skipBlank();
|
|
2202
|
+
const begin = this.p;
|
|
2203
|
+
if (this.peek() !== '(')
|
|
2204
|
+
return;
|
|
2205
|
+
++this.p;
|
|
2206
|
+
const lhs = this.readValueOrThrow();
|
|
2207
|
+
this.skipBlank();
|
|
2208
|
+
this.assert(this.read() === '.' && this.read() === '.', 'invalid range syntax');
|
|
2209
|
+
const rhs = this.readValueOrThrow();
|
|
2210
|
+
this.skipBlank();
|
|
2211
|
+
this.assert(this.read() === ')', 'invalid range syntax');
|
|
2212
|
+
return new RangeToken(this.input, begin, this.p, lhs, rhs, this.file);
|
|
2213
|
+
}
|
|
2214
|
+
readValueOrThrow() {
|
|
2215
|
+
const value = this.readValue();
|
|
2216
|
+
this.assert(value, () => `unexpected token ${this.snapshot()}, value expected`);
|
|
2217
|
+
return value;
|
|
2218
|
+
}
|
|
2219
|
+
readQuoted() {
|
|
2220
|
+
this.skipBlank();
|
|
2221
|
+
const begin = this.p;
|
|
2222
|
+
if (!(this.peekType() & QUOTE))
|
|
2223
|
+
return;
|
|
2224
|
+
++this.p;
|
|
2225
|
+
let escaped = false;
|
|
2226
|
+
while (this.p < this.N) {
|
|
2227
|
+
++this.p;
|
|
2228
|
+
if (this.input[this.p - 1] === this.input[begin] && !escaped)
|
|
2229
|
+
break;
|
|
2230
|
+
if (escaped)
|
|
2231
|
+
escaped = false;
|
|
2232
|
+
else if (this.input[this.p - 1] === '\\')
|
|
2233
|
+
escaped = true;
|
|
2234
|
+
}
|
|
2235
|
+
return new QuotedToken(this.input, begin, this.p, this.file);
|
|
2236
|
+
}
|
|
2237
|
+
*readFileNameTemplate(options) {
|
|
2238
|
+
const { outputDelimiterLeft } = options;
|
|
2239
|
+
const htmlStopStrings = [',', ' ', outputDelimiterLeft];
|
|
2240
|
+
const htmlStopStringSet = new Set(htmlStopStrings);
|
|
2241
|
+
// break on ',' and ' ', outputDelimiterLeft only stops HTML token
|
|
2242
|
+
while (this.p < this.N && !htmlStopStringSet.has(this.peek())) {
|
|
2243
|
+
yield this.match(outputDelimiterLeft)
|
|
2244
|
+
? this.readOutputToken(options)
|
|
2245
|
+
: this.readHTMLToken(htmlStopStrings);
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
match(word) {
|
|
2249
|
+
for (let i = 0; i < word.length; i++) {
|
|
2250
|
+
if (word[i] !== this.input[this.p + i])
|
|
2251
|
+
return false;
|
|
2252
|
+
}
|
|
2253
|
+
return true;
|
|
2254
|
+
}
|
|
2255
|
+
rmatch(pattern) {
|
|
2256
|
+
for (let i = 0; i < pattern.length; i++) {
|
|
2257
|
+
if (pattern[pattern.length - 1 - i] !== this.input[this.p - 1 - i])
|
|
2258
|
+
return false;
|
|
2259
|
+
}
|
|
2260
|
+
return true;
|
|
2261
|
+
}
|
|
2262
|
+
peekType(n = 0) {
|
|
2263
|
+
return this.p + n >= this.N ? 0 : TYPES[this.input.charCodeAt(this.p + n)];
|
|
2264
|
+
}
|
|
2265
|
+
peek(n = 0) {
|
|
2266
|
+
return this.p + n >= this.N ? '' : this.input[this.p + n];
|
|
2267
|
+
}
|
|
2268
|
+
skipBlank() {
|
|
2269
|
+
while (this.peekType() & BLANK)
|
|
2270
|
+
++this.p;
|
|
2271
|
+
}
|
|
2272
|
+
}
|
|
2273
|
+
|
|
2274
|
+
class ParseStream {
|
|
2275
|
+
constructor(tokens, parseToken) {
|
|
2276
|
+
this.handlers = {};
|
|
2277
|
+
this.stopRequested = false;
|
|
2278
|
+
this.tokens = tokens;
|
|
2279
|
+
this.parseToken = parseToken;
|
|
2280
|
+
}
|
|
2281
|
+
on(name, cb) {
|
|
2282
|
+
this.handlers[name] = cb;
|
|
2283
|
+
return this;
|
|
2284
|
+
}
|
|
2285
|
+
trigger(event, arg) {
|
|
2286
|
+
const h = this.handlers[event];
|
|
2287
|
+
return h ? (h.call(this, arg), true) : false;
|
|
2288
|
+
}
|
|
2289
|
+
start() {
|
|
2290
|
+
this.trigger('start');
|
|
2291
|
+
let token;
|
|
2292
|
+
while (!this.stopRequested && (token = this.tokens.shift())) {
|
|
2293
|
+
if (this.trigger('token', token))
|
|
2294
|
+
continue;
|
|
2295
|
+
if (isTagToken(token) && this.trigger(`tag:${token.name}`, token)) {
|
|
2296
|
+
continue;
|
|
2297
|
+
}
|
|
2298
|
+
const template = this.parseToken(token, this.tokens);
|
|
2299
|
+
this.trigger('template', template);
|
|
2300
|
+
}
|
|
2301
|
+
if (!this.stopRequested)
|
|
2302
|
+
this.trigger('end');
|
|
2303
|
+
return this;
|
|
2304
|
+
}
|
|
2305
|
+
stop() {
|
|
2306
|
+
this.stopRequested = true;
|
|
2307
|
+
return this;
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
|
|
2311
|
+
class TemplateImpl {
|
|
2312
|
+
constructor(token) {
|
|
2313
|
+
this.token = token;
|
|
2314
|
+
}
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
class Tag extends TemplateImpl {
|
|
2318
|
+
constructor(token, remainTokens, liquid) {
|
|
2319
|
+
super(token);
|
|
2320
|
+
this.name = token.name;
|
|
2321
|
+
this.liquid = liquid;
|
|
2322
|
+
this.tokenizer = token.tokenizer;
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
|
|
2326
|
+
/**
|
|
2327
|
+
* Key-Value Pairs Representing Tag Arguments
|
|
2328
|
+
* Example:
|
|
2329
|
+
* For the markup `, foo:'bar', coo:2 reversed %}`,
|
|
2330
|
+
* hash['foo'] === 'bar'
|
|
2331
|
+
* hash['coo'] === 2
|
|
2332
|
+
* hash['reversed'] === undefined
|
|
2333
|
+
*/
|
|
2334
|
+
class Hash {
|
|
2335
|
+
constructor(input, jekyllStyle) {
|
|
2336
|
+
this.hash = {};
|
|
2337
|
+
const tokenizer = input instanceof Tokenizer ? input : new Tokenizer(input, {});
|
|
2338
|
+
for (const hash of tokenizer.readHashes(jekyllStyle)) {
|
|
2339
|
+
this.hash[hash.name.content] = hash.value;
|
|
2340
|
+
}
|
|
2341
|
+
}
|
|
2342
|
+
*render(ctx) {
|
|
2343
|
+
const hash = {};
|
|
2344
|
+
for (const key of Object.keys(this.hash)) {
|
|
2345
|
+
hash[key] = this.hash[key] === undefined ? true : yield evalToken(this.hash[key], ctx);
|
|
2346
|
+
}
|
|
2347
|
+
return hash;
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
function createTagClass(options) {
|
|
2352
|
+
return class extends Tag {
|
|
2353
|
+
constructor(token, tokens, liquid) {
|
|
2354
|
+
super(token, tokens, liquid);
|
|
2355
|
+
if (isFunction(options.parse)) {
|
|
2356
|
+
options.parse.call(this, token, tokens);
|
|
2357
|
+
}
|
|
2358
|
+
}
|
|
2359
|
+
*render(ctx, emitter) {
|
|
2360
|
+
const hash = (yield new Hash(this.token.args, ctx.opts.keyValueSeparator).render(ctx));
|
|
2361
|
+
return yield options.render.call(this, ctx, emitter, hash);
|
|
2362
|
+
}
|
|
2363
|
+
};
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
function isKeyValuePair(arr) {
|
|
2367
|
+
return isArray(arr);
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
class Filter {
|
|
2371
|
+
constructor(token, options, liquid) {
|
|
2372
|
+
this.token = token;
|
|
2373
|
+
this.name = token.name;
|
|
2374
|
+
this.handler = isFunction(options)
|
|
2375
|
+
? options
|
|
2376
|
+
: (isFunction(options === null || options === void 0 ? void 0 : options.handler) ? options.handler : identify);
|
|
2377
|
+
this.raw = !isFunction(options) && !!(options === null || options === void 0 ? void 0 : options.raw);
|
|
2378
|
+
this.args = token.args;
|
|
2379
|
+
this.liquid = liquid;
|
|
2380
|
+
}
|
|
2381
|
+
*render(value, context) {
|
|
2382
|
+
const argv = [];
|
|
2383
|
+
for (const arg of this.args) {
|
|
2384
|
+
if (isKeyValuePair(arg))
|
|
2385
|
+
argv.push([arg[0], yield evalToken(arg[1], context)]);
|
|
2386
|
+
else
|
|
2387
|
+
argv.push(yield evalToken(arg, context));
|
|
2388
|
+
}
|
|
2389
|
+
return yield this.handler.apply({ context, token: this.token, liquid: this.liquid }, [value, ...argv]);
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
class Value {
|
|
2394
|
+
/**
|
|
2395
|
+
* @param str the value to be valuated, eg.: "foobar" | truncate: 3
|
|
2396
|
+
*/
|
|
2397
|
+
constructor(input, liquid) {
|
|
2398
|
+
this.filters = [];
|
|
2399
|
+
const token = typeof input === 'string'
|
|
2400
|
+
? new Tokenizer(input, liquid.options.operators).readFilteredValue()
|
|
2401
|
+
: input;
|
|
2402
|
+
this.initial = token.initial;
|
|
2403
|
+
this.filters = token.filters.map(token => new Filter(token, this.getFilter(liquid, token.name), liquid));
|
|
2404
|
+
}
|
|
2405
|
+
*value(ctx, lenient) {
|
|
2406
|
+
lenient = lenient || (ctx.opts.lenientIf && this.filters.length > 0 && this.filters[0].name === 'default');
|
|
2407
|
+
let val = yield this.initial.evaluate(ctx, lenient);
|
|
2408
|
+
for (const filter of this.filters) {
|
|
2409
|
+
val = yield filter.render(val, ctx);
|
|
2410
|
+
}
|
|
2411
|
+
return val;
|
|
2412
|
+
}
|
|
2413
|
+
getFilter(liquid, name) {
|
|
2414
|
+
const impl = liquid.filters[name];
|
|
2415
|
+
assert(impl || !liquid.options.strictFilters, () => `undefined filter: ${name}`);
|
|
2416
|
+
return impl;
|
|
2417
|
+
}
|
|
2418
|
+
}
|
|
2419
|
+
|
|
2420
|
+
class Output extends TemplateImpl {
|
|
2421
|
+
constructor(token, liquid) {
|
|
2422
|
+
var _a;
|
|
2423
|
+
super(token);
|
|
2424
|
+
const tokenizer = new Tokenizer(token.input, liquid.options.operators, token.file, token.contentRange);
|
|
2425
|
+
this.value = new Value(tokenizer.readFilteredValue(), liquid);
|
|
2426
|
+
const filters = this.value.filters;
|
|
2427
|
+
const outputEscape = liquid.options.outputEscape;
|
|
2428
|
+
if (!((_a = filters[filters.length - 1]) === null || _a === void 0 ? void 0 : _a.raw) && outputEscape) {
|
|
2429
|
+
const token = new FilterToken(toString.call(outputEscape), [], '', 0, 0);
|
|
2430
|
+
filters.push(new Filter(token, outputEscape, liquid));
|
|
2431
|
+
}
|
|
2432
|
+
}
|
|
2433
|
+
*render(ctx, emitter) {
|
|
2434
|
+
const val = yield this.value.value(ctx, false);
|
|
2435
|
+
emitter.write(val);
|
|
2436
|
+
}
|
|
2437
|
+
*arguments() {
|
|
2438
|
+
yield this.value;
|
|
2439
|
+
}
|
|
2440
|
+
}
|
|
2441
|
+
|
|
2442
|
+
class HTML extends TemplateImpl {
|
|
2443
|
+
constructor(token) {
|
|
2444
|
+
super(token);
|
|
2445
|
+
this.str = token.getContent();
|
|
2446
|
+
}
|
|
2447
|
+
*render(ctx, emitter) {
|
|
2448
|
+
emitter.write(this.str);
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
|
|
2452
|
+
/**
|
|
2453
|
+
* A variable's segments and location, which can be coerced to a string.
|
|
2454
|
+
*/
|
|
2455
|
+
class Variable {
|
|
2456
|
+
constructor(segments, location) {
|
|
2457
|
+
this.segments = segments;
|
|
2458
|
+
this.location = location;
|
|
2459
|
+
}
|
|
2460
|
+
toString() {
|
|
2461
|
+
return segmentsString(this.segments, true);
|
|
2462
|
+
}
|
|
2463
|
+
/** Return this variable's segments as an array, possibly with nested arrays for nested paths. */
|
|
2464
|
+
toArray() {
|
|
2465
|
+
function* _visit(...segments) {
|
|
2466
|
+
for (const segment of segments) {
|
|
2467
|
+
if (segment instanceof Variable) {
|
|
2468
|
+
yield Array.from(_visit(...segment.segments));
|
|
2469
|
+
}
|
|
2470
|
+
else {
|
|
2471
|
+
yield segment;
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
}
|
|
2475
|
+
return Array.from(_visit(...this.segments));
|
|
2476
|
+
}
|
|
2477
|
+
}
|
|
2478
|
+
/**
|
|
2479
|
+
* Group variables by the string representation of their root segment.
|
|
2480
|
+
*/
|
|
2481
|
+
class VariableMap {
|
|
2482
|
+
constructor() {
|
|
2483
|
+
this.map = new Map();
|
|
2484
|
+
}
|
|
2485
|
+
get(key) {
|
|
2486
|
+
const k = segmentsString([key.segments[0]]);
|
|
2487
|
+
if (!this.map.has(k)) {
|
|
2488
|
+
this.map.set(k, []);
|
|
2489
|
+
}
|
|
2490
|
+
return this.map.get(k);
|
|
2491
|
+
}
|
|
2492
|
+
has(key) {
|
|
2493
|
+
return this.map.has(segmentsString([key.segments[0]]));
|
|
2494
|
+
}
|
|
2495
|
+
push(variable) {
|
|
2496
|
+
this.get(variable).push(variable);
|
|
2497
|
+
}
|
|
2498
|
+
asObject() {
|
|
2499
|
+
return Object.fromEntries(this.map);
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2502
|
+
const defaultStaticAnalysisOptions = {
|
|
2503
|
+
partials: true
|
|
2504
|
+
};
|
|
2505
|
+
function* _analyze(templates, partials, sync) {
|
|
2506
|
+
const variables = new VariableMap();
|
|
2507
|
+
const globals = new VariableMap();
|
|
2508
|
+
const locals = new VariableMap();
|
|
2509
|
+
const rootScope = new DummyScope(new Set());
|
|
2510
|
+
// Names of partial templates that we've already analyzed.
|
|
2511
|
+
const seen = new Set();
|
|
2512
|
+
function updateVariables(variable, scope) {
|
|
2513
|
+
variables.push(variable);
|
|
2514
|
+
const aliased = scope.alias(variable);
|
|
2515
|
+
if (aliased !== undefined) {
|
|
2516
|
+
const root = aliased.segments[0];
|
|
2517
|
+
// TODO: What if a a template renders a rendered template? Do we need scope.parent?
|
|
2518
|
+
if (isString(root) && !rootScope.has(root)) {
|
|
2519
|
+
globals.push(aliased);
|
|
2520
|
+
}
|
|
2521
|
+
}
|
|
2522
|
+
else {
|
|
2523
|
+
const root = variable.segments[0];
|
|
2524
|
+
if (isString(root) && !scope.has(root)) {
|
|
2525
|
+
globals.push(variable);
|
|
2526
|
+
}
|
|
2527
|
+
}
|
|
2528
|
+
// Recurse for nested Variables
|
|
2529
|
+
for (const segment of variable.segments) {
|
|
2530
|
+
if (segment instanceof Variable) {
|
|
2531
|
+
updateVariables(segment, scope);
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
}
|
|
2535
|
+
function* visit(template, scope) {
|
|
2536
|
+
if (template.arguments) {
|
|
2537
|
+
for (const arg of template.arguments()) {
|
|
2538
|
+
for (const variable of extractVariables(arg)) {
|
|
2539
|
+
updateVariables(variable, scope);
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
if (template.localScope) {
|
|
2544
|
+
for (const ident of template.localScope()) {
|
|
2545
|
+
scope.add(ident.content);
|
|
2546
|
+
scope.deleteAlias(ident.content);
|
|
2547
|
+
const [row, col] = ident.getPosition();
|
|
2548
|
+
locals.push(new Variable([ident.content], { row, col, file: ident.file }));
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
if (template.children) {
|
|
2552
|
+
if (template.partialScope) {
|
|
2553
|
+
const partial = template.partialScope();
|
|
2554
|
+
if (partial === undefined) {
|
|
2555
|
+
// Layouts, for example, can have children that are not partials.
|
|
2556
|
+
for (const child of (yield template.children(partials, sync))) {
|
|
2557
|
+
yield visit(child, scope);
|
|
2558
|
+
}
|
|
2559
|
+
return;
|
|
2560
|
+
}
|
|
2561
|
+
if (seen.has(partial.name))
|
|
2562
|
+
return;
|
|
2563
|
+
const partialScopeNames = new Set();
|
|
2564
|
+
const partialScope = partial.isolated
|
|
2565
|
+
? new DummyScope(partialScopeNames)
|
|
2566
|
+
: scope.push(partialScopeNames);
|
|
2567
|
+
for (const name of partial.scope) {
|
|
2568
|
+
if (isString(name)) {
|
|
2569
|
+
partialScopeNames.add(name);
|
|
2570
|
+
}
|
|
2571
|
+
else {
|
|
2572
|
+
const [alias, argument] = name;
|
|
2573
|
+
partialScopeNames.add(alias);
|
|
2574
|
+
const variables = Array.from(extractVariables(argument));
|
|
2575
|
+
if (variables.length) {
|
|
2576
|
+
partialScope.setAlias(alias, variables[0].segments);
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
for (const child of (yield template.children(partials, sync))) {
|
|
2581
|
+
yield visit(child, partialScope);
|
|
2582
|
+
seen.add(partial.name);
|
|
2583
|
+
}
|
|
2584
|
+
partialScope.pop();
|
|
2585
|
+
}
|
|
2586
|
+
else {
|
|
2587
|
+
if (template.blockScope) {
|
|
2588
|
+
scope.push(new Set(template.blockScope()));
|
|
2589
|
+
}
|
|
2590
|
+
for (const child of (yield template.children(partials, sync))) {
|
|
2591
|
+
yield visit(child, scope);
|
|
2592
|
+
}
|
|
2593
|
+
if (template.blockScope) {
|
|
2594
|
+
scope.pop();
|
|
2595
|
+
}
|
|
2596
|
+
}
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2599
|
+
for (const template of templates) {
|
|
2600
|
+
yield visit(template, rootScope);
|
|
2601
|
+
}
|
|
2602
|
+
return {
|
|
2603
|
+
variables: variables.asObject(),
|
|
2604
|
+
globals: globals.asObject(),
|
|
2605
|
+
locals: locals.asObject()
|
|
2606
|
+
};
|
|
2607
|
+
}
|
|
2608
|
+
/**
|
|
2609
|
+
* Statically analyze a template and report variable usage.
|
|
2610
|
+
*/
|
|
2611
|
+
function analyze(template, options = {}) {
|
|
2612
|
+
const opts = Object.assign(Object.assign({}, defaultStaticAnalysisOptions), options);
|
|
2613
|
+
return toPromise(_analyze(template, opts.partials, false));
|
|
2614
|
+
}
|
|
2615
|
+
/**
|
|
2616
|
+
* Statically analyze a template and report variable usage.
|
|
2617
|
+
*/
|
|
2618
|
+
function analyzeSync(template, options = {}) {
|
|
2619
|
+
const opts = Object.assign(Object.assign({}, defaultStaticAnalysisOptions), options);
|
|
2620
|
+
return toValueSync(_analyze(template, opts.partials, true));
|
|
2621
|
+
}
|
|
2622
|
+
/**
|
|
2623
|
+
* A stack to manage scopes while traversing templates during static analysis.
|
|
2624
|
+
*/
|
|
2625
|
+
class DummyScope {
|
|
2626
|
+
constructor(globals) {
|
|
2627
|
+
this.stack = [{ names: globals, aliases: new Map() }];
|
|
2628
|
+
}
|
|
2629
|
+
/** Return true if `name` is in scope. */
|
|
2630
|
+
has(name) {
|
|
2631
|
+
for (const scope of this.stack) {
|
|
2632
|
+
if (scope.names.has(name)) {
|
|
2633
|
+
return true;
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
return false;
|
|
2637
|
+
}
|
|
2638
|
+
push(scope) {
|
|
2639
|
+
this.stack.push({ names: scope, aliases: new Map() });
|
|
2640
|
+
return this;
|
|
2641
|
+
}
|
|
2642
|
+
pop() {
|
|
2643
|
+
var _a;
|
|
2644
|
+
return (_a = this.stack.pop()) === null || _a === void 0 ? void 0 : _a.names;
|
|
2645
|
+
}
|
|
2646
|
+
// Add a name to the template scope.
|
|
2647
|
+
add(name) {
|
|
2648
|
+
this.stack[0].names.add(name);
|
|
2649
|
+
}
|
|
2650
|
+
/** Return the variable that `variable` aliases, or `variable` if it doesn't alias anything. */
|
|
2651
|
+
alias(variable) {
|
|
2652
|
+
const root = variable.segments[0];
|
|
2653
|
+
if (!isString(root))
|
|
2654
|
+
return undefined;
|
|
2655
|
+
const alias = this.getAlias(root);
|
|
2656
|
+
if (alias === undefined)
|
|
2657
|
+
return undefined;
|
|
2658
|
+
return new Variable([...alias, ...variable.segments.slice(1)], variable.location);
|
|
2659
|
+
}
|
|
2660
|
+
// TODO: `from` could be a path with multiple segments, like `include.x`.
|
|
2661
|
+
setAlias(from, to) {
|
|
2662
|
+
this.stack[this.stack.length - 1].aliases.set(from, to);
|
|
2663
|
+
}
|
|
2664
|
+
deleteAlias(name) {
|
|
2665
|
+
this.stack[this.stack.length - 1].aliases.delete(name);
|
|
2666
|
+
}
|
|
2667
|
+
getAlias(name) {
|
|
2668
|
+
for (const scope of this.stack) {
|
|
2669
|
+
if (scope.aliases.has(name)) {
|
|
2670
|
+
return scope.aliases.get(name);
|
|
2671
|
+
}
|
|
2672
|
+
// If a scope has defined `name`, then it masks aliases in parent scopes.
|
|
2673
|
+
if (scope.names.has(name)) {
|
|
2674
|
+
return undefined;
|
|
2675
|
+
}
|
|
2676
|
+
}
|
|
2677
|
+
return undefined;
|
|
2678
|
+
}
|
|
2679
|
+
}
|
|
2680
|
+
function* extractVariables(value) {
|
|
2681
|
+
if (isValueToken(value)) {
|
|
2682
|
+
yield* extractValueTokenVariables(value);
|
|
2683
|
+
}
|
|
2684
|
+
else if (value instanceof Value) {
|
|
2685
|
+
yield* extractFilteredValueVariables(value);
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2688
|
+
function* extractFilteredValueVariables(value) {
|
|
2689
|
+
for (const token of value.initial.postfix) {
|
|
2690
|
+
if (isValueToken(token)) {
|
|
2691
|
+
yield* extractValueTokenVariables(token);
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
for (const filter of value.filters) {
|
|
2695
|
+
for (const arg of filter.args) {
|
|
2696
|
+
if (isKeyValuePair(arg) && arg[1]) {
|
|
2697
|
+
yield* extractValueTokenVariables(arg[1]);
|
|
2698
|
+
}
|
|
2699
|
+
else if (isValueToken(arg)) {
|
|
2700
|
+
yield* extractValueTokenVariables(arg);
|
|
2701
|
+
}
|
|
2702
|
+
}
|
|
2703
|
+
}
|
|
2704
|
+
}
|
|
2705
|
+
function* extractValueTokenVariables(token) {
|
|
2706
|
+
if (isRangeToken(token)) {
|
|
2707
|
+
yield* extractValueTokenVariables(token.lhs);
|
|
2708
|
+
yield* extractValueTokenVariables(token.rhs);
|
|
2709
|
+
}
|
|
2710
|
+
else if (isPropertyAccessToken(token)) {
|
|
2711
|
+
yield extractPropertyAccessVariable(token);
|
|
2712
|
+
}
|
|
2713
|
+
}
|
|
2714
|
+
function extractPropertyAccessVariable(token) {
|
|
2715
|
+
const segments = [];
|
|
2716
|
+
// token is not guaranteed to have `file` set. We'll try to get it from a prop if not.
|
|
2717
|
+
let file = token.file;
|
|
2718
|
+
// Here we're flattening the first segment of a path if it is a nested path.
|
|
2719
|
+
const root = token.props[0];
|
|
2720
|
+
file = file || root.file;
|
|
2721
|
+
if (isQuotedToken(root) || isNumberToken(root) || isWordToken(root)) {
|
|
2722
|
+
segments.push(root.content);
|
|
2723
|
+
}
|
|
2724
|
+
else if (isPropertyAccessToken(root)) {
|
|
2725
|
+
// Flatten paths that start with a nested path.
|
|
2726
|
+
segments.push(...extractPropertyAccessVariable(root).segments);
|
|
2727
|
+
}
|
|
2728
|
+
for (const prop of token.props.slice(1)) {
|
|
2729
|
+
file = file || prop.file;
|
|
2730
|
+
if (isQuotedToken(prop) || isNumberToken(prop) || isWordToken(prop)) {
|
|
2731
|
+
segments.push(prop.content);
|
|
2732
|
+
}
|
|
2733
|
+
else if (isPropertyAccessToken(prop)) {
|
|
2734
|
+
segments.push(extractPropertyAccessVariable(prop));
|
|
2735
|
+
}
|
|
2736
|
+
}
|
|
2737
|
+
const [row, col] = token.getPosition();
|
|
2738
|
+
return new Variable(segments, {
|
|
2739
|
+
row,
|
|
2740
|
+
col,
|
|
2741
|
+
file
|
|
2742
|
+
});
|
|
2743
|
+
}
|
|
2744
|
+
// This is used to detect segments that can be represented with dot notation
|
|
2745
|
+
// when creating a string representation of VariableSegments.
|
|
2746
|
+
const RE_PROPERTY = /^[\u0080-\uFFFFa-zA-Z_][\u0080-\uFFFFa-zA-Z0-9_-]*$/;
|
|
2747
|
+
/**
|
|
2748
|
+
* Return a string representation of segments using dot notation where possible.
|
|
2749
|
+
* @param segments - The property names and array indices that make up a path to a variable.
|
|
2750
|
+
* @param bracketedRoot - If false (the default), don't surround the root segment with square brackets.
|
|
2751
|
+
*/
|
|
2752
|
+
function segmentsString(segments, bracketedRoot = false) {
|
|
2753
|
+
const buf = [];
|
|
2754
|
+
const root = segments[0];
|
|
2755
|
+
if (isString(root)) {
|
|
2756
|
+
if (!bracketedRoot || root.match(RE_PROPERTY)) {
|
|
2757
|
+
buf.push(`${root}`);
|
|
2758
|
+
}
|
|
2759
|
+
else {
|
|
2760
|
+
buf.push(`['${root}']`);
|
|
2761
|
+
}
|
|
2762
|
+
}
|
|
2763
|
+
for (const segment of segments.slice(1)) {
|
|
2764
|
+
if (segment instanceof Variable) {
|
|
2765
|
+
buf.push(`[${segmentsString(segment.segments)}]`);
|
|
2766
|
+
}
|
|
2767
|
+
else if (isString(segment)) {
|
|
2768
|
+
if (segment.match(RE_PROPERTY)) {
|
|
2769
|
+
buf.push(`.${segment}`);
|
|
2770
|
+
}
|
|
2771
|
+
else {
|
|
2772
|
+
buf.push(`['${segment}']`);
|
|
2773
|
+
}
|
|
2774
|
+
}
|
|
2775
|
+
else {
|
|
2776
|
+
buf.push(`[${segment}]`);
|
|
2777
|
+
}
|
|
2778
|
+
}
|
|
2779
|
+
return buf.join('');
|
|
2780
|
+
}
|
|
2781
|
+
|
|
2782
|
+
var LookupType;
|
|
2783
|
+
(function (LookupType) {
|
|
2784
|
+
LookupType["Partials"] = "partials";
|
|
2785
|
+
LookupType["Layouts"] = "layouts";
|
|
2786
|
+
LookupType["Root"] = "root";
|
|
2787
|
+
})(LookupType || (LookupType = {}));
|
|
2788
|
+
class Loader {
|
|
2789
|
+
constructor(options) {
|
|
2790
|
+
this.options = options;
|
|
2791
|
+
if (options.relativeReference) {
|
|
2792
|
+
const sep = options.fs.sep;
|
|
2793
|
+
assert(sep, '`fs.sep` is required for relative reference');
|
|
2794
|
+
const rRelativePath = new RegExp(['.' + sep, '..' + sep, './', '../'].map(prefix => escapeRegex(prefix)).join('|'));
|
|
2795
|
+
this.shouldLoadRelative = (referencedFile) => rRelativePath.test(referencedFile);
|
|
2796
|
+
}
|
|
2797
|
+
else {
|
|
2798
|
+
this.shouldLoadRelative = (_referencedFile) => false;
|
|
2799
|
+
}
|
|
2800
|
+
this.contains = this.options.fs.contains || (() => true);
|
|
2801
|
+
}
|
|
2802
|
+
*lookup(file, type, sync, currentFile) {
|
|
2803
|
+
const { fs } = this.options;
|
|
2804
|
+
const dirs = this.options[type];
|
|
2805
|
+
for (const filepath of this.candidates(file, dirs, currentFile, type !== LookupType.Root)) {
|
|
2806
|
+
if (sync ? fs.existsSync(filepath) : yield fs.exists(filepath))
|
|
2807
|
+
return filepath;
|
|
2808
|
+
}
|
|
2809
|
+
throw this.lookupError(file, dirs);
|
|
2810
|
+
}
|
|
2811
|
+
*candidates(file, dirs, currentFile, enforceRoot) {
|
|
2812
|
+
const { fs, extname } = this.options;
|
|
2813
|
+
if (this.shouldLoadRelative(file) && currentFile) {
|
|
2814
|
+
const referenced = fs.resolve(this.dirname(currentFile), file, extname);
|
|
2815
|
+
for (const dir of dirs) {
|
|
2816
|
+
if (!enforceRoot || this.contains(dir, referenced)) {
|
|
2817
|
+
// the relatively referenced file is within one of root dirs
|
|
2818
|
+
yield referenced;
|
|
2819
|
+
break;
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
}
|
|
2823
|
+
for (const dir of dirs) {
|
|
2824
|
+
const referenced = fs.resolve(dir, file, extname);
|
|
2825
|
+
if (!enforceRoot || this.contains(dir, referenced)) {
|
|
2826
|
+
yield referenced;
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
if (fs.fallback !== undefined) {
|
|
2830
|
+
const filepath = fs.fallback(file);
|
|
2831
|
+
if (filepath !== undefined)
|
|
2832
|
+
yield filepath;
|
|
2833
|
+
}
|
|
2834
|
+
}
|
|
2835
|
+
dirname(path) {
|
|
2836
|
+
const fs = this.options.fs;
|
|
2837
|
+
assert(fs.dirname, '`fs.dirname` is required for relative reference');
|
|
2838
|
+
return fs.dirname(path);
|
|
2839
|
+
}
|
|
2840
|
+
lookupError(file, roots) {
|
|
2841
|
+
const err = new Error('ENOENT');
|
|
2842
|
+
err.message = `ENOENT: Failed to lookup "${file}" in "${roots}"`;
|
|
2843
|
+
err.code = 'ENOENT';
|
|
2844
|
+
return err;
|
|
2845
|
+
}
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
class Parser {
|
|
2849
|
+
constructor(liquid) {
|
|
2850
|
+
this.liquid = liquid;
|
|
2851
|
+
this.cache = this.liquid.options.cache;
|
|
2852
|
+
this.fs = this.liquid.options.fs;
|
|
2853
|
+
this.parseFile = this.cache ? this._parseFileCached : this._parseFile;
|
|
2854
|
+
this.loader = new Loader(this.liquid.options);
|
|
2855
|
+
this.parseLimit = new Limiter('parse length', liquid.options.parseLimit);
|
|
2856
|
+
}
|
|
2857
|
+
parse(html, filepath) {
|
|
2858
|
+
html = String(html);
|
|
2859
|
+
this.parseLimit.use(html.length);
|
|
2860
|
+
const tokenizer = new Tokenizer(html, this.liquid.options.operators, filepath);
|
|
2861
|
+
const tokens = tokenizer.readTopLevelTokens(this.liquid.options);
|
|
2862
|
+
return this.parseTokens(tokens);
|
|
2863
|
+
}
|
|
2864
|
+
parseTokens(tokens) {
|
|
2865
|
+
let token;
|
|
2866
|
+
const templates = [];
|
|
2867
|
+
const errors = [];
|
|
2868
|
+
while ((token = tokens.shift())) {
|
|
2869
|
+
try {
|
|
2870
|
+
templates.push(this.parseToken(token, tokens));
|
|
2871
|
+
}
|
|
2872
|
+
catch (err) {
|
|
2873
|
+
if (this.liquid.options.catchAllErrors)
|
|
2874
|
+
errors.push(err);
|
|
2875
|
+
else
|
|
2876
|
+
throw err;
|
|
2877
|
+
}
|
|
2878
|
+
}
|
|
2879
|
+
if (errors.length)
|
|
2880
|
+
throw new LiquidErrors(errors);
|
|
2881
|
+
return templates;
|
|
2882
|
+
}
|
|
2883
|
+
parseToken(token, remainTokens) {
|
|
2884
|
+
try {
|
|
2885
|
+
if (isTagToken(token)) {
|
|
2886
|
+
const TagClass = this.liquid.tags[token.name];
|
|
2887
|
+
assert(TagClass, `tag "${token.name}" not found`);
|
|
2888
|
+
return new TagClass(token, remainTokens, this.liquid, this);
|
|
2889
|
+
}
|
|
2890
|
+
if (isOutputToken(token)) {
|
|
2891
|
+
return new Output(token, this.liquid);
|
|
2892
|
+
}
|
|
2893
|
+
return new HTML(token);
|
|
2894
|
+
}
|
|
2895
|
+
catch (e) {
|
|
2896
|
+
if (LiquidError.is(e))
|
|
2897
|
+
throw e;
|
|
2898
|
+
throw new ParseError(e, token);
|
|
2899
|
+
}
|
|
2900
|
+
}
|
|
2901
|
+
parseStream(tokens) {
|
|
2902
|
+
return new ParseStream(tokens, (token, tokens) => this.parseToken(token, tokens));
|
|
2903
|
+
}
|
|
2904
|
+
*_parseFileCached(file, sync, type = LookupType.Root, currentFile) {
|
|
2905
|
+
const cache = this.cache;
|
|
2906
|
+
const key = this.loader.shouldLoadRelative(file) ? currentFile + ',' + file : type + ':' + file;
|
|
2907
|
+
const tpls = yield cache.read(key);
|
|
2908
|
+
if (tpls)
|
|
2909
|
+
return tpls;
|
|
2910
|
+
const task = this._parseFile(file, sync, type, currentFile);
|
|
2911
|
+
// sync mode: exec the task and cache the result
|
|
2912
|
+
// async mode: cache the task before exec
|
|
2913
|
+
const taskOrTpl = sync ? yield task : toPromise(task);
|
|
2914
|
+
cache.write(key, taskOrTpl);
|
|
2915
|
+
// note: concurrent tasks will be reused, cache for failed task is removed until its end
|
|
2916
|
+
try {
|
|
2917
|
+
return yield taskOrTpl;
|
|
2918
|
+
}
|
|
2919
|
+
catch (err) {
|
|
2920
|
+
cache.remove(key);
|
|
2921
|
+
throw err;
|
|
2922
|
+
}
|
|
2923
|
+
}
|
|
2924
|
+
*_parseFile(file, sync, type = LookupType.Root, currentFile) {
|
|
2925
|
+
const filepath = yield this.loader.lookup(file, type, sync, currentFile);
|
|
2926
|
+
return this.parse(sync ? this.fs.readFileSync(filepath) : yield this.fs.readFile(filepath), filepath);
|
|
2927
|
+
}
|
|
2928
|
+
}
|
|
2929
|
+
|
|
2930
|
+
var TokenKind;
|
|
2931
|
+
(function (TokenKind) {
|
|
2932
|
+
TokenKind[TokenKind["Number"] = 1] = "Number";
|
|
2933
|
+
TokenKind[TokenKind["Literal"] = 2] = "Literal";
|
|
2934
|
+
TokenKind[TokenKind["Tag"] = 4] = "Tag";
|
|
2935
|
+
TokenKind[TokenKind["Output"] = 8] = "Output";
|
|
2936
|
+
TokenKind[TokenKind["HTML"] = 16] = "HTML";
|
|
2937
|
+
TokenKind[TokenKind["Filter"] = 32] = "Filter";
|
|
2938
|
+
TokenKind[TokenKind["Hash"] = 64] = "Hash";
|
|
2939
|
+
TokenKind[TokenKind["PropertyAccess"] = 128] = "PropertyAccess";
|
|
2940
|
+
TokenKind[TokenKind["Word"] = 256] = "Word";
|
|
2941
|
+
TokenKind[TokenKind["Range"] = 512] = "Range";
|
|
2942
|
+
TokenKind[TokenKind["Quoted"] = 1024] = "Quoted";
|
|
2943
|
+
TokenKind[TokenKind["Operator"] = 2048] = "Operator";
|
|
2944
|
+
TokenKind[TokenKind["FilteredValue"] = 4096] = "FilteredValue";
|
|
2945
|
+
TokenKind[TokenKind["Delimited"] = 12] = "Delimited";
|
|
2946
|
+
})(TokenKind || (TokenKind = {}));
|
|
2947
|
+
|
|
2948
|
+
function isDelimitedToken(val) {
|
|
2949
|
+
return !!(getKind(val) & TokenKind.Delimited);
|
|
2950
|
+
}
|
|
2951
|
+
function isOperatorToken(val) {
|
|
2952
|
+
return getKind(val) === TokenKind.Operator;
|
|
2953
|
+
}
|
|
2954
|
+
function isHTMLToken(val) {
|
|
2955
|
+
return getKind(val) === TokenKind.HTML;
|
|
2956
|
+
}
|
|
2957
|
+
function isOutputToken(val) {
|
|
2958
|
+
return getKind(val) === TokenKind.Output;
|
|
2959
|
+
}
|
|
2960
|
+
function isTagToken(val) {
|
|
2961
|
+
return getKind(val) === TokenKind.Tag;
|
|
2962
|
+
}
|
|
2963
|
+
function isQuotedToken(val) {
|
|
2964
|
+
return getKind(val) === TokenKind.Quoted;
|
|
2965
|
+
}
|
|
2966
|
+
function isLiteralToken(val) {
|
|
2967
|
+
return getKind(val) === TokenKind.Literal;
|
|
2968
|
+
}
|
|
2969
|
+
function isNumberToken(val) {
|
|
2970
|
+
return getKind(val) === TokenKind.Number;
|
|
2971
|
+
}
|
|
2972
|
+
function isPropertyAccessToken(val) {
|
|
2973
|
+
return getKind(val) === TokenKind.PropertyAccess;
|
|
2974
|
+
}
|
|
2975
|
+
function isWordToken(val) {
|
|
2976
|
+
return getKind(val) === TokenKind.Word;
|
|
2977
|
+
}
|
|
2978
|
+
function isRangeToken(val) {
|
|
2979
|
+
return getKind(val) === TokenKind.Range;
|
|
2980
|
+
}
|
|
2981
|
+
function isValueToken(val) {
|
|
2982
|
+
// valueTokenBitMask = TokenKind.Number | TokenKind.Literal | TokenKind.Quoted | TokenKind.PropertyAccess | TokenKind.Range
|
|
2983
|
+
return (getKind(val) & 1667) > 0;
|
|
2984
|
+
}
|
|
2985
|
+
function getKind(val) {
|
|
2986
|
+
return val ? val.kind : -1;
|
|
2987
|
+
}
|
|
2988
|
+
|
|
2989
|
+
var typeGuards = /*#__PURE__*/Object.freeze({
|
|
2990
|
+
__proto__: null,
|
|
2991
|
+
isDelimitedToken: isDelimitedToken,
|
|
2992
|
+
isOperatorToken: isOperatorToken,
|
|
2993
|
+
isHTMLToken: isHTMLToken,
|
|
2994
|
+
isOutputToken: isOutputToken,
|
|
2995
|
+
isTagToken: isTagToken,
|
|
2996
|
+
isQuotedToken: isQuotedToken,
|
|
2997
|
+
isLiteralToken: isLiteralToken,
|
|
2998
|
+
isNumberToken: isNumberToken,
|
|
2999
|
+
isPropertyAccessToken: isPropertyAccessToken,
|
|
3000
|
+
isWordToken: isWordToken,
|
|
3001
|
+
isRangeToken: isRangeToken,
|
|
3002
|
+
isValueToken: isValueToken
|
|
3003
|
+
});
|
|
3004
|
+
|
|
3005
|
+
class Context {
|
|
3006
|
+
constructor(env = {}, opts = defaultOptions, renderOptions = {}, { memoryLimit, renderLimit } = {}) {
|
|
3007
|
+
var _a, _b, _c, _d, _e;
|
|
3008
|
+
/**
|
|
3009
|
+
* insert a Context-level empty scope,
|
|
3010
|
+
* for tags like `{% capture %}` `{% assign %}` to operate
|
|
3011
|
+
*/
|
|
3012
|
+
this.scopes = [{}];
|
|
3013
|
+
this.registers = {};
|
|
3014
|
+
this.breakCalled = false;
|
|
3015
|
+
this.continueCalled = false;
|
|
3016
|
+
this.sync = !!renderOptions.sync;
|
|
3017
|
+
this.opts = opts;
|
|
3018
|
+
this.globals = (_a = renderOptions.globals) !== null && _a !== void 0 ? _a : opts.globals;
|
|
3019
|
+
this.environments = isObject(env) ? env : Object(env);
|
|
3020
|
+
this.strictVariables = (_b = renderOptions.strictVariables) !== null && _b !== void 0 ? _b : this.opts.strictVariables;
|
|
3021
|
+
this.ownPropertyOnly = (_c = renderOptions.ownPropertyOnly) !== null && _c !== void 0 ? _c : opts.ownPropertyOnly;
|
|
3022
|
+
this.memoryLimit = memoryLimit !== null && memoryLimit !== void 0 ? memoryLimit : new Limiter('memory alloc', (_d = renderOptions.memoryLimit) !== null && _d !== void 0 ? _d : opts.memoryLimit);
|
|
3023
|
+
this.renderLimit = renderLimit !== null && renderLimit !== void 0 ? renderLimit : new Limiter('template render', getPerformance().now() + ((_e = renderOptions.renderLimit) !== null && _e !== void 0 ? _e : opts.renderLimit));
|
|
3024
|
+
}
|
|
3025
|
+
getRegister(key) {
|
|
3026
|
+
return (this.registers[key] = this.registers[key] || {});
|
|
3027
|
+
}
|
|
3028
|
+
setRegister(key, value) {
|
|
3029
|
+
return (this.registers[key] = value);
|
|
3030
|
+
}
|
|
3031
|
+
saveRegister(...keys) {
|
|
3032
|
+
return keys.map(key => [key, this.getRegister(key)]);
|
|
3033
|
+
}
|
|
3034
|
+
restoreRegister(keyValues) {
|
|
3035
|
+
return keyValues.forEach(([key, value]) => this.setRegister(key, value));
|
|
3036
|
+
}
|
|
3037
|
+
getAll() {
|
|
3038
|
+
return [this.globals, this.environments, ...this.scopes]
|
|
3039
|
+
.reduce((ctx, val) => __assign(ctx, val), {});
|
|
3040
|
+
}
|
|
3041
|
+
/**
|
|
3042
|
+
* @deprecated use `_get()` or `getSync()` instead
|
|
3043
|
+
*/
|
|
3044
|
+
get(paths) {
|
|
3045
|
+
return this.getSync(paths);
|
|
3046
|
+
}
|
|
3047
|
+
getSync(paths) {
|
|
3048
|
+
return toValueSync(this._get(paths));
|
|
3049
|
+
}
|
|
3050
|
+
*_get(paths) {
|
|
3051
|
+
const scope = this.findScope(paths[0]); // first prop should always be a string
|
|
3052
|
+
return yield this._getFromScope(scope, paths);
|
|
3053
|
+
}
|
|
3054
|
+
/**
|
|
3055
|
+
* @deprecated use `_get()` instead
|
|
3056
|
+
*/
|
|
3057
|
+
getFromScope(scope, paths) {
|
|
3058
|
+
return toValueSync(this._getFromScope(scope, paths));
|
|
3059
|
+
}
|
|
3060
|
+
*_getFromScope(scope, paths, strictVariables = this.strictVariables) {
|
|
3061
|
+
if (isString(paths))
|
|
3062
|
+
paths = paths.split('.');
|
|
3063
|
+
for (let i = 0; i < paths.length; i++) {
|
|
3064
|
+
scope = yield readProperty(scope, paths[i], this.ownPropertyOnly);
|
|
3065
|
+
if (strictVariables && isUndefined(scope)) {
|
|
3066
|
+
throw new InternalUndefinedVariableError(paths.slice(0, i + 1).join('.'));
|
|
3067
|
+
}
|
|
3068
|
+
}
|
|
3069
|
+
return scope;
|
|
3070
|
+
}
|
|
3071
|
+
push(ctx) {
|
|
3072
|
+
return this.scopes.push(ctx);
|
|
3073
|
+
}
|
|
3074
|
+
pop() {
|
|
3075
|
+
return this.scopes.pop();
|
|
3076
|
+
}
|
|
3077
|
+
bottom() {
|
|
3078
|
+
return this.scopes[0];
|
|
3079
|
+
}
|
|
3080
|
+
spawn(scope = {}) {
|
|
3081
|
+
return new Context(scope, this.opts, {
|
|
3082
|
+
sync: this.sync,
|
|
3083
|
+
globals: this.globals,
|
|
3084
|
+
strictVariables: this.strictVariables
|
|
3085
|
+
}, {
|
|
3086
|
+
renderLimit: this.renderLimit,
|
|
3087
|
+
memoryLimit: this.memoryLimit
|
|
3088
|
+
});
|
|
3089
|
+
}
|
|
3090
|
+
findScope(key) {
|
|
3091
|
+
for (let i = this.scopes.length - 1; i >= 0; i--) {
|
|
3092
|
+
const candidate = this.scopes[i];
|
|
3093
|
+
if (key in candidate)
|
|
3094
|
+
return candidate;
|
|
3095
|
+
}
|
|
3096
|
+
if (key in this.environments)
|
|
3097
|
+
return this.environments;
|
|
3098
|
+
return this.globals;
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3101
|
+
function readProperty(obj, key, ownPropertyOnly) {
|
|
3102
|
+
obj = toLiquid(obj);
|
|
3103
|
+
key = toValue(key);
|
|
3104
|
+
if (isNil(obj))
|
|
3105
|
+
return obj;
|
|
3106
|
+
if (isArray(obj) && key < 0)
|
|
3107
|
+
return obj[obj.length + +key];
|
|
3108
|
+
const value = readJSProperty(obj, key, ownPropertyOnly);
|
|
3109
|
+
if (value === undefined && obj instanceof Drop)
|
|
3110
|
+
return obj.liquidMethodMissing(key);
|
|
3111
|
+
if (isFunction(value))
|
|
3112
|
+
return value.call(obj);
|
|
3113
|
+
if (key === 'size')
|
|
3114
|
+
return readSize(obj);
|
|
3115
|
+
else if (key === 'first')
|
|
3116
|
+
return readFirst(obj);
|
|
3117
|
+
else if (key === 'last')
|
|
3118
|
+
return readLast(obj);
|
|
3119
|
+
return value;
|
|
3120
|
+
}
|
|
3121
|
+
function readJSProperty(obj, key, ownPropertyOnly) {
|
|
3122
|
+
if (ownPropertyOnly && !hasOwnProperty.call(obj, key) && !(obj instanceof Drop))
|
|
3123
|
+
return undefined;
|
|
3124
|
+
return obj[key];
|
|
3125
|
+
}
|
|
3126
|
+
function readFirst(obj) {
|
|
3127
|
+
if (isArray(obj))
|
|
3128
|
+
return obj[0];
|
|
3129
|
+
return obj['first'];
|
|
3130
|
+
}
|
|
3131
|
+
function readLast(obj) {
|
|
3132
|
+
if (isArray(obj))
|
|
3133
|
+
return obj[obj.length - 1];
|
|
3134
|
+
return obj['last'];
|
|
3135
|
+
}
|
|
3136
|
+
function readSize(obj) {
|
|
3137
|
+
if (hasOwnProperty.call(obj, 'size') || obj['size'] !== undefined)
|
|
3138
|
+
return obj['size'];
|
|
3139
|
+
if (isArray(obj) || isString(obj))
|
|
3140
|
+
return obj.length;
|
|
3141
|
+
if (typeof obj === 'object')
|
|
3142
|
+
return Object.keys(obj).length;
|
|
3143
|
+
}
|
|
3144
|
+
|
|
3145
|
+
var BlockMode;
|
|
3146
|
+
(function (BlockMode) {
|
|
3147
|
+
/* store rendered html into blocks */
|
|
3148
|
+
BlockMode[BlockMode["OUTPUT"] = 0] = "OUTPUT";
|
|
3149
|
+
/* output rendered html directly */
|
|
3150
|
+
BlockMode[BlockMode["STORE"] = 1] = "STORE";
|
|
3151
|
+
})(BlockMode || (BlockMode = {}));
|
|
3152
|
+
|
|
3153
|
+
const abs = argumentsToValue(Math.abs);
|
|
3154
|
+
const at_least = argumentsToValue(Math.max);
|
|
3155
|
+
const at_most = argumentsToValue(Math.min);
|
|
3156
|
+
const ceil = argumentsToValue(Math.ceil);
|
|
3157
|
+
const divided_by = argumentsToValue((dividend, divisor, integerArithmetic = false) => integerArithmetic ? Math.floor(dividend / divisor) : dividend / divisor);
|
|
3158
|
+
const floor = argumentsToValue(Math.floor);
|
|
3159
|
+
const minus = argumentsToValue((v, arg) => v - arg);
|
|
3160
|
+
const modulo = argumentsToValue((v, arg) => v % arg);
|
|
3161
|
+
const times = argumentsToValue((v, arg) => v * arg);
|
|
3162
|
+
function round(v, arg = 0) {
|
|
3163
|
+
v = toValue(v);
|
|
3164
|
+
arg = toValue(arg);
|
|
3165
|
+
const amp = Math.pow(10, arg);
|
|
3166
|
+
return Math.round(v * amp) / amp;
|
|
3167
|
+
}
|
|
3168
|
+
function plus(v, arg) {
|
|
3169
|
+
v = toValue(v);
|
|
3170
|
+
arg = toValue(arg);
|
|
3171
|
+
return Number(v) + Number(arg);
|
|
3172
|
+
}
|
|
3173
|
+
|
|
3174
|
+
var mathFilters = /*#__PURE__*/Object.freeze({
|
|
3175
|
+
__proto__: null,
|
|
3176
|
+
abs: abs,
|
|
3177
|
+
at_least: at_least,
|
|
3178
|
+
at_most: at_most,
|
|
3179
|
+
ceil: ceil,
|
|
3180
|
+
divided_by: divided_by,
|
|
3181
|
+
floor: floor,
|
|
3182
|
+
minus: minus,
|
|
3183
|
+
modulo: modulo,
|
|
3184
|
+
times: times,
|
|
3185
|
+
round: round,
|
|
3186
|
+
plus: plus
|
|
3187
|
+
});
|
|
3188
|
+
|
|
3189
|
+
const url_decode = (x) => decodeURIComponent(stringify(x)).replace(/\+/g, ' ');
|
|
3190
|
+
const url_encode = (x) => encodeURIComponent(stringify(x)).replace(/%20/g, '+');
|
|
3191
|
+
const cgi_escape = (x) => encodeURIComponent(stringify(x))
|
|
3192
|
+
.replace(/%20/g, '+')
|
|
3193
|
+
.replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());
|
|
3194
|
+
const uri_escape = (x) => encodeURI(stringify(x))
|
|
3195
|
+
.replace(/%5B/g, '[')
|
|
3196
|
+
.replace(/%5D/g, ']');
|
|
3197
|
+
const rSlugifyDefault = /[^\p{M}\p{L}\p{Nd}]+/ug;
|
|
3198
|
+
const rSlugifyReplacers = {
|
|
3199
|
+
'raw': /\s+/g,
|
|
3200
|
+
'default': rSlugifyDefault,
|
|
3201
|
+
'pretty': /[^\p{M}\p{L}\p{Nd}._~!$&'()+,;=@]+/ug,
|
|
3202
|
+
'ascii': /[^A-Za-z0-9]+/g,
|
|
3203
|
+
'latin': rSlugifyDefault,
|
|
3204
|
+
'none': null
|
|
3205
|
+
};
|
|
3206
|
+
function slugify(str, mode = 'default', cased = false) {
|
|
3207
|
+
str = stringify(str);
|
|
3208
|
+
const replacer = rSlugifyReplacers[mode];
|
|
3209
|
+
if (replacer) {
|
|
3210
|
+
if (mode === 'latin')
|
|
3211
|
+
str = removeAccents(str);
|
|
3212
|
+
str = str.replace(replacer, '-').replace(/^-|-$/g, '');
|
|
3213
|
+
}
|
|
3214
|
+
return cased ? str : str.toLowerCase();
|
|
3215
|
+
}
|
|
3216
|
+
function removeAccents(str) {
|
|
3217
|
+
return str.replace(/[àáâãäå]/g, 'a')
|
|
3218
|
+
.replace(/[æ]/g, 'ae')
|
|
3219
|
+
.replace(/[ç]/g, 'c')
|
|
3220
|
+
.replace(/[èéêë]/g, 'e')
|
|
3221
|
+
.replace(/[ìíîï]/g, 'i')
|
|
3222
|
+
.replace(/[ð]/g, 'd')
|
|
3223
|
+
.replace(/[ñ]/g, 'n')
|
|
3224
|
+
.replace(/[òóôõöø]/g, 'o')
|
|
3225
|
+
.replace(/[ùúûü]/g, 'u')
|
|
3226
|
+
.replace(/[ýÿ]/g, 'y')
|
|
3227
|
+
.replace(/[ß]/g, 'ss')
|
|
3228
|
+
.replace(/[œ]/g, 'oe')
|
|
3229
|
+
.replace(/[þ]/g, 'th')
|
|
3230
|
+
.replace(/[ẞ]/g, 'SS')
|
|
3231
|
+
.replace(/[Œ]/g, 'OE')
|
|
3232
|
+
.replace(/[Þ]/g, 'TH');
|
|
3233
|
+
}
|
|
3234
|
+
|
|
3235
|
+
var urlFilters = /*#__PURE__*/Object.freeze({
|
|
3236
|
+
__proto__: null,
|
|
3237
|
+
url_decode: url_decode,
|
|
3238
|
+
url_encode: url_encode,
|
|
3239
|
+
cgi_escape: cgi_escape,
|
|
3240
|
+
uri_escape: uri_escape,
|
|
3241
|
+
slugify: slugify
|
|
3242
|
+
});
|
|
3243
|
+
|
|
3244
|
+
const join = argumentsToValue(function (v, arg) {
|
|
3245
|
+
const array = toArray(v);
|
|
3246
|
+
const sep = isNil(arg) ? ' ' : stringify(arg);
|
|
3247
|
+
const complexity = array.length * (1 + sep.length);
|
|
3248
|
+
this.context.memoryLimit.use(complexity);
|
|
3249
|
+
return array.join(sep);
|
|
3250
|
+
});
|
|
3251
|
+
const last$1 = argumentsToValue((v) => isArrayLike(v) ? last(v) : '');
|
|
3252
|
+
const first = argumentsToValue((v) => isArrayLike(v) ? v[0] : '');
|
|
3253
|
+
const reverse = argumentsToValue(function (v) {
|
|
3254
|
+
const array = toArray(v);
|
|
3255
|
+
this.context.memoryLimit.use(array.length);
|
|
3256
|
+
return [...array].reverse();
|
|
3257
|
+
});
|
|
3258
|
+
function* sort(arr, property) {
|
|
3259
|
+
const values = [];
|
|
3260
|
+
const array = toArray(arr);
|
|
3261
|
+
this.context.memoryLimit.use(array.length);
|
|
3262
|
+
for (const item of array) {
|
|
3263
|
+
values.push([
|
|
3264
|
+
item,
|
|
3265
|
+
property ? yield this.context._getFromScope(item, stringify(property).split('.'), false) : item
|
|
3266
|
+
]);
|
|
3267
|
+
}
|
|
3268
|
+
return values.sort((lhs, rhs) => {
|
|
3269
|
+
const lvalue = lhs[1];
|
|
3270
|
+
const rvalue = rhs[1];
|
|
3271
|
+
return lvalue < rvalue ? -1 : (lvalue > rvalue ? 1 : 0);
|
|
3272
|
+
}).map(tuple => tuple[0]);
|
|
3273
|
+
}
|
|
3274
|
+
function sort_natural(input, property) {
|
|
3275
|
+
const propertyString = stringify(property);
|
|
3276
|
+
const compare = property === undefined
|
|
3277
|
+
? caseInsensitiveCompare
|
|
3278
|
+
: (lhs, rhs) => caseInsensitiveCompare(lhs[propertyString], rhs[propertyString]);
|
|
3279
|
+
const array = toArray(input);
|
|
3280
|
+
this.context.memoryLimit.use(array.length);
|
|
3281
|
+
return [...array].sort(compare);
|
|
3282
|
+
}
|
|
3283
|
+
const size = (v) => (v && v.length) || 0;
|
|
3284
|
+
function* map(arr, property) {
|
|
3285
|
+
const results = [];
|
|
3286
|
+
const array = toArray(arr);
|
|
3287
|
+
this.context.memoryLimit.use(array.length);
|
|
3288
|
+
for (const item of array) {
|
|
3289
|
+
results.push(yield this.context._getFromScope(item, stringify(property), false));
|
|
3290
|
+
}
|
|
3291
|
+
return results;
|
|
3292
|
+
}
|
|
3293
|
+
function* sum(arr, property) {
|
|
3294
|
+
let sum = 0;
|
|
3295
|
+
const array = toArray(arr);
|
|
3296
|
+
for (const item of array) {
|
|
3297
|
+
const data = Number(property ? yield this.context._getFromScope(item, stringify(property), false) : item);
|
|
3298
|
+
sum += Number.isNaN(data) ? 0 : data;
|
|
3299
|
+
}
|
|
3300
|
+
return sum;
|
|
3301
|
+
}
|
|
3302
|
+
function compact(arr) {
|
|
3303
|
+
const array = toArray(arr);
|
|
3304
|
+
this.context.memoryLimit.use(array.length);
|
|
3305
|
+
return array.filter(x => !isNil(toValue(x)));
|
|
3306
|
+
}
|
|
3307
|
+
function concat(v, arg = []) {
|
|
3308
|
+
const lhs = toArray(v);
|
|
3309
|
+
const rhs = toArray(arg);
|
|
3310
|
+
this.context.memoryLimit.use(lhs.length + rhs.length);
|
|
3311
|
+
return lhs.concat(rhs);
|
|
3312
|
+
}
|
|
3313
|
+
function push(v, arg) {
|
|
3314
|
+
return concat.call(this, v, [arg]);
|
|
3315
|
+
}
|
|
3316
|
+
function unshift(v, arg) {
|
|
3317
|
+
const array = toArray(v);
|
|
3318
|
+
this.context.memoryLimit.use(array.length);
|
|
3319
|
+
const clone = [...array];
|
|
3320
|
+
clone.unshift(arg);
|
|
3321
|
+
return clone;
|
|
3322
|
+
}
|
|
3323
|
+
function pop(v) {
|
|
3324
|
+
const clone = [...toArray(v)];
|
|
3325
|
+
clone.pop();
|
|
3326
|
+
return clone;
|
|
3327
|
+
}
|
|
3328
|
+
function shift(v) {
|
|
3329
|
+
const array = toArray(v);
|
|
3330
|
+
this.context.memoryLimit.use(array.length);
|
|
3331
|
+
const clone = [...array];
|
|
3332
|
+
clone.shift();
|
|
3333
|
+
return clone;
|
|
3334
|
+
}
|
|
3335
|
+
function slice(v, begin, length = 1) {
|
|
3336
|
+
v = toValue(v);
|
|
3337
|
+
if (isNil(v))
|
|
3338
|
+
return [];
|
|
3339
|
+
if (!isArray(v))
|
|
3340
|
+
v = stringify(v);
|
|
3341
|
+
begin = begin < 0 ? v.length + begin : begin;
|
|
3342
|
+
this.context.memoryLimit.use(length);
|
|
3343
|
+
return v.slice(begin, begin + length);
|
|
3344
|
+
}
|
|
3345
|
+
function* where(arr, property, expected) {
|
|
3346
|
+
const values = [];
|
|
3347
|
+
arr = toArray(arr);
|
|
3348
|
+
this.context.memoryLimit.use(arr.length);
|
|
3349
|
+
const token = new Tokenizer(stringify(property)).readScopeValue();
|
|
3350
|
+
for (const item of arr) {
|
|
3351
|
+
values.push(yield evalToken(token, this.context.spawn(item)));
|
|
3352
|
+
}
|
|
3353
|
+
const matcher = this.context.opts.jekyllWhere
|
|
3354
|
+
? (v) => EmptyDrop.is(expected) ? equals(v, expected) : (isArray(v) ? arrayIncludes(v, expected) : equals(v, expected))
|
|
3355
|
+
: (v) => equals(v, expected);
|
|
3356
|
+
return arr.filter((_, i) => {
|
|
3357
|
+
if (expected === undefined)
|
|
3358
|
+
return isTruthy(values[i], this.context);
|
|
3359
|
+
return matcher(values[i]);
|
|
3360
|
+
});
|
|
3361
|
+
}
|
|
3362
|
+
function* where_exp(arr, itemName, exp) {
|
|
3363
|
+
const filtered = [];
|
|
3364
|
+
const keyTemplate = new Value(stringify(exp), this.liquid);
|
|
3365
|
+
const array = toArray(arr);
|
|
3366
|
+
this.context.memoryLimit.use(array.length);
|
|
3367
|
+
for (const item of array) {
|
|
3368
|
+
this.context.push({ [itemName]: item });
|
|
3369
|
+
const value = yield keyTemplate.value(this.context);
|
|
3370
|
+
this.context.pop();
|
|
3371
|
+
if (value)
|
|
3372
|
+
filtered.push(item);
|
|
3373
|
+
}
|
|
3374
|
+
return filtered;
|
|
3375
|
+
}
|
|
3376
|
+
function* group_by(arr, property) {
|
|
3377
|
+
const map = new Map();
|
|
3378
|
+
arr = toEnumerable(arr);
|
|
3379
|
+
const token = new Tokenizer(stringify(property)).readScopeValue();
|
|
3380
|
+
this.context.memoryLimit.use(arr.length);
|
|
3381
|
+
for (const item of arr) {
|
|
3382
|
+
const key = yield evalToken(token, this.context.spawn(item));
|
|
3383
|
+
if (!map.has(key))
|
|
3384
|
+
map.set(key, []);
|
|
3385
|
+
map.get(key).push(item);
|
|
3386
|
+
}
|
|
3387
|
+
return [...map.entries()].map(([name, items]) => ({ name, items }));
|
|
3388
|
+
}
|
|
3389
|
+
function* group_by_exp(arr, itemName, exp) {
|
|
3390
|
+
const map = new Map();
|
|
3391
|
+
const keyTemplate = new Value(stringify(exp), this.liquid);
|
|
3392
|
+
arr = toEnumerable(arr);
|
|
3393
|
+
this.context.memoryLimit.use(arr.length);
|
|
3394
|
+
for (const item of arr) {
|
|
3395
|
+
this.context.push({ [itemName]: item });
|
|
3396
|
+
const key = yield keyTemplate.value(this.context);
|
|
3397
|
+
this.context.pop();
|
|
3398
|
+
if (!map.has(key))
|
|
3399
|
+
map.set(key, []);
|
|
3400
|
+
map.get(key).push(item);
|
|
3401
|
+
}
|
|
3402
|
+
return [...map.entries()].map(([name, items]) => ({ name, items }));
|
|
3403
|
+
}
|
|
3404
|
+
function* find(arr, property, expected) {
|
|
3405
|
+
const token = new Tokenizer(stringify(property)).readScopeValue();
|
|
3406
|
+
const array = toArray(arr);
|
|
3407
|
+
for (const item of array) {
|
|
3408
|
+
const value = yield evalToken(token, this.context.spawn(item));
|
|
3409
|
+
if (equals(value, expected))
|
|
3410
|
+
return item;
|
|
3411
|
+
}
|
|
3412
|
+
}
|
|
3413
|
+
function* find_exp(arr, itemName, exp) {
|
|
3414
|
+
const predicate = new Value(stringify(exp), this.liquid);
|
|
3415
|
+
const array = toArray(arr);
|
|
3416
|
+
for (const item of array) {
|
|
3417
|
+
this.context.push({ [itemName]: item });
|
|
3418
|
+
const value = yield predicate.value(this.context);
|
|
3419
|
+
this.context.pop();
|
|
3420
|
+
if (value)
|
|
3421
|
+
return item;
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
function uniq(arr) {
|
|
3425
|
+
arr = toArray(arr);
|
|
3426
|
+
this.context.memoryLimit.use(arr.length);
|
|
3427
|
+
return [...new Set(arr)];
|
|
3428
|
+
}
|
|
3429
|
+
function sample(v, count = 1) {
|
|
3430
|
+
v = toValue(v);
|
|
3431
|
+
if (isNil(v))
|
|
3432
|
+
return [];
|
|
3433
|
+
if (!isArray(v))
|
|
3434
|
+
v = stringify(v);
|
|
3435
|
+
this.context.memoryLimit.use(count);
|
|
3436
|
+
const shuffled = [...v].sort(() => Math.random() - 0.5);
|
|
3437
|
+
if (count === 1)
|
|
3438
|
+
return shuffled[0];
|
|
3439
|
+
return shuffled.slice(0, count);
|
|
3440
|
+
}
|
|
3441
|
+
|
|
3442
|
+
var arrayFilters = /*#__PURE__*/Object.freeze({
|
|
3443
|
+
__proto__: null,
|
|
3444
|
+
join: join,
|
|
3445
|
+
last: last$1,
|
|
3446
|
+
first: first,
|
|
3447
|
+
reverse: reverse,
|
|
3448
|
+
sort: sort,
|
|
3449
|
+
sort_natural: sort_natural,
|
|
3450
|
+
size: size,
|
|
3451
|
+
map: map,
|
|
3452
|
+
sum: sum,
|
|
3453
|
+
compact: compact,
|
|
3454
|
+
concat: concat,
|
|
3455
|
+
push: push,
|
|
3456
|
+
unshift: unshift,
|
|
3457
|
+
pop: pop,
|
|
3458
|
+
shift: shift,
|
|
3459
|
+
slice: slice,
|
|
3460
|
+
where: where,
|
|
3461
|
+
where_exp: where_exp,
|
|
3462
|
+
group_by: group_by,
|
|
3463
|
+
group_by_exp: group_by_exp,
|
|
3464
|
+
find: find,
|
|
3465
|
+
find_exp: find_exp,
|
|
3466
|
+
uniq: uniq,
|
|
3467
|
+
sample: sample
|
|
3468
|
+
});
|
|
3469
|
+
|
|
3470
|
+
function date(v, format, timezoneOffset) {
|
|
3471
|
+
var _a, _b, _c;
|
|
3472
|
+
const size = ((_a = v === null || v === void 0 ? void 0 : v.length) !== null && _a !== void 0 ? _a : 0) + ((_b = format === null || format === void 0 ? void 0 : format.length) !== null && _b !== void 0 ? _b : 0) + ((_c = timezoneOffset === null || timezoneOffset === void 0 ? void 0 : timezoneOffset.length) !== null && _c !== void 0 ? _c : 0);
|
|
3473
|
+
this.context.memoryLimit.use(size);
|
|
3474
|
+
const date = parseDate(v, this.context.opts, timezoneOffset);
|
|
3475
|
+
if (!date)
|
|
3476
|
+
return v;
|
|
3477
|
+
format = toValue(format);
|
|
3478
|
+
format = isNil(format) ? this.context.opts.dateFormat : stringify(format);
|
|
3479
|
+
return strftime(date, format);
|
|
3480
|
+
}
|
|
3481
|
+
function date_to_xmlschema(v) {
|
|
3482
|
+
return date.call(this, v, '%Y-%m-%dT%H:%M:%S%:z');
|
|
3483
|
+
}
|
|
3484
|
+
function date_to_rfc822(v) {
|
|
3485
|
+
return date.call(this, v, '%a, %d %b %Y %H:%M:%S %z');
|
|
3486
|
+
}
|
|
3487
|
+
function date_to_string(v, type, style) {
|
|
3488
|
+
return stringify_date.call(this, v, '%b', type, style);
|
|
3489
|
+
}
|
|
3490
|
+
function date_to_long_string(v, type, style) {
|
|
3491
|
+
return stringify_date.call(this, v, '%B', type, style);
|
|
3492
|
+
}
|
|
3493
|
+
function stringify_date(v, month_type, type, style) {
|
|
3494
|
+
const date = parseDate(v, this.context.opts);
|
|
3495
|
+
if (!date)
|
|
3496
|
+
return v;
|
|
3497
|
+
if (type === 'ordinal') {
|
|
3498
|
+
const d = date.getDate();
|
|
3499
|
+
return style === 'US'
|
|
3500
|
+
? strftime(date, `${month_type} ${d}%q, %Y`)
|
|
3501
|
+
: strftime(date, `${d}%q ${month_type} %Y`);
|
|
3502
|
+
}
|
|
3503
|
+
return strftime(date, `%d ${month_type} %Y`);
|
|
3504
|
+
}
|
|
3505
|
+
function parseDate(v, opts, timezoneOffset) {
|
|
3506
|
+
let date;
|
|
3507
|
+
const defaultTimezoneOffset = timezoneOffset !== null && timezoneOffset !== void 0 ? timezoneOffset : opts.timezoneOffset;
|
|
3508
|
+
const locale = opts.locale;
|
|
3509
|
+
v = toValue(v);
|
|
3510
|
+
if (v === 'now' || v === 'today') {
|
|
3511
|
+
date = new LiquidDate(Date.now(), locale, defaultTimezoneOffset);
|
|
3512
|
+
}
|
|
3513
|
+
else if (isNumber(v)) {
|
|
3514
|
+
date = new LiquidDate(v * 1000, locale, defaultTimezoneOffset);
|
|
3515
|
+
}
|
|
3516
|
+
else if (isString(v)) {
|
|
3517
|
+
if (/^\d+$/.test(v)) {
|
|
3518
|
+
date = new LiquidDate(+v * 1000, locale, defaultTimezoneOffset);
|
|
3519
|
+
}
|
|
3520
|
+
else if (opts.preserveTimezones && timezoneOffset === undefined) {
|
|
3521
|
+
date = LiquidDate.createDateFixedToTimezone(v, locale);
|
|
3522
|
+
}
|
|
3523
|
+
else {
|
|
3524
|
+
date = new LiquidDate(v, locale, defaultTimezoneOffset);
|
|
3525
|
+
}
|
|
3526
|
+
}
|
|
3527
|
+
else {
|
|
3528
|
+
date = new LiquidDate(v, locale, defaultTimezoneOffset);
|
|
3529
|
+
}
|
|
3530
|
+
return date.valid() ? date : undefined;
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
var dateFilters = /*#__PURE__*/Object.freeze({
|
|
3534
|
+
__proto__: null,
|
|
3535
|
+
date: date,
|
|
3536
|
+
date_to_xmlschema: date_to_xmlschema,
|
|
3537
|
+
date_to_rfc822: date_to_rfc822,
|
|
3538
|
+
date_to_string: date_to_string,
|
|
3539
|
+
date_to_long_string: date_to_long_string
|
|
3540
|
+
});
|
|
3541
|
+
|
|
3542
|
+
/**
|
|
3543
|
+
* String related filters
|
|
3544
|
+
*
|
|
3545
|
+
* * prefer stringify() to String() since `undefined`, `null` should eval ''
|
|
3546
|
+
*/
|
|
3547
|
+
const rCJKWord = /[\u4E00-\u9FFF\uF900-\uFAFF\u3400-\u4DBF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF]/gu;
|
|
3548
|
+
// Word boundary followed by word characters (for detecting words)
|
|
3549
|
+
const rNonCJKWord = /[^\u4E00-\u9FFF\uF900-\uFAFF\u3400-\u4DBF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF\s]+/gu;
|
|
3550
|
+
function append(v, arg) {
|
|
3551
|
+
assert(arguments.length === 2, 'append expect 2 arguments');
|
|
3552
|
+
const lhs = stringify(v);
|
|
3553
|
+
const rhs = stringify(arg);
|
|
3554
|
+
this.context.memoryLimit.use(lhs.length + rhs.length);
|
|
3555
|
+
return lhs + rhs;
|
|
3556
|
+
}
|
|
3557
|
+
function prepend(v, arg) {
|
|
3558
|
+
assert(arguments.length === 2, 'prepend expect 2 arguments');
|
|
3559
|
+
const lhs = stringify(v);
|
|
3560
|
+
const rhs = stringify(arg);
|
|
3561
|
+
this.context.memoryLimit.use(lhs.length + rhs.length);
|
|
3562
|
+
return rhs + lhs;
|
|
3563
|
+
}
|
|
3564
|
+
function lstrip(v, chars) {
|
|
3565
|
+
const str = stringify(v);
|
|
3566
|
+
this.context.memoryLimit.use(str.length);
|
|
3567
|
+
if (chars) {
|
|
3568
|
+
chars = escapeRegExp(stringify(chars));
|
|
3569
|
+
return str.replace(new RegExp(`^[${chars}]+`, 'g'), '');
|
|
3570
|
+
}
|
|
3571
|
+
return str.replace(/^\s+/, '');
|
|
3572
|
+
}
|
|
3573
|
+
function downcase(v) {
|
|
3574
|
+
const str = stringify(v);
|
|
3575
|
+
this.context.memoryLimit.use(str.length);
|
|
3576
|
+
return str.toLowerCase();
|
|
3577
|
+
}
|
|
3578
|
+
function upcase(v) {
|
|
3579
|
+
const str = stringify(v);
|
|
3580
|
+
this.context.memoryLimit.use(str.length);
|
|
3581
|
+
return stringify(str).toUpperCase();
|
|
3582
|
+
}
|
|
3583
|
+
function remove(v, arg) {
|
|
3584
|
+
const str = stringify(v);
|
|
3585
|
+
this.context.memoryLimit.use(str.length);
|
|
3586
|
+
return str.split(stringify(arg)).join('');
|
|
3587
|
+
}
|
|
3588
|
+
function remove_first(v, l) {
|
|
3589
|
+
const str = stringify(v);
|
|
3590
|
+
this.context.memoryLimit.use(str.length);
|
|
3591
|
+
return str.replace(stringify(l), '');
|
|
3592
|
+
}
|
|
3593
|
+
function remove_last(v, l) {
|
|
3594
|
+
const str = stringify(v);
|
|
3595
|
+
this.context.memoryLimit.use(str.length);
|
|
3596
|
+
const pattern = stringify(l);
|
|
3597
|
+
const index = str.lastIndexOf(pattern);
|
|
3598
|
+
if (index === -1)
|
|
3599
|
+
return str;
|
|
3600
|
+
return str.substring(0, index) + str.substring(index + pattern.length);
|
|
3601
|
+
}
|
|
3602
|
+
function rstrip(str, chars) {
|
|
3603
|
+
str = stringify(str);
|
|
3604
|
+
this.context.memoryLimit.use(str.length);
|
|
3605
|
+
if (chars) {
|
|
3606
|
+
chars = escapeRegExp(stringify(chars));
|
|
3607
|
+
return str.replace(new RegExp(`[${chars}]+$`, 'g'), '');
|
|
3608
|
+
}
|
|
3609
|
+
return str.replace(/\s+$/, '');
|
|
3610
|
+
}
|
|
3611
|
+
function split(v, arg) {
|
|
3612
|
+
const str = stringify(v);
|
|
3613
|
+
this.context.memoryLimit.use(str.length);
|
|
3614
|
+
const arr = str.split(stringify(arg));
|
|
3615
|
+
// align to ruby split, which is the behavior of shopify/liquid
|
|
3616
|
+
// see: https://ruby-doc.org/core-2.4.0/String.html#method-i-split
|
|
3617
|
+
while (arr.length && arr[arr.length - 1] === '')
|
|
3618
|
+
arr.pop();
|
|
3619
|
+
return arr;
|
|
3620
|
+
}
|
|
3621
|
+
function strip(v, chars) {
|
|
3622
|
+
const str = stringify(v);
|
|
3623
|
+
this.context.memoryLimit.use(str.length);
|
|
3624
|
+
if (chars) {
|
|
3625
|
+
chars = escapeRegExp(stringify(chars));
|
|
3626
|
+
return str
|
|
3627
|
+
.replace(new RegExp(`^[${chars}]+`, 'g'), '')
|
|
3628
|
+
.replace(new RegExp(`[${chars}]+$`, 'g'), '');
|
|
3629
|
+
}
|
|
3630
|
+
return str.trim();
|
|
3631
|
+
}
|
|
3632
|
+
function strip_newlines(v) {
|
|
3633
|
+
const str = stringify(v);
|
|
3634
|
+
this.context.memoryLimit.use(str.length);
|
|
3635
|
+
return str.replace(/\r?\n/gm, '');
|
|
3636
|
+
}
|
|
3637
|
+
function capitalize(str) {
|
|
3638
|
+
str = stringify(str);
|
|
3639
|
+
this.context.memoryLimit.use(str.length);
|
|
3640
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
3641
|
+
}
|
|
3642
|
+
function replace(v, pattern, replacement) {
|
|
3643
|
+
const str = stringify(v);
|
|
3644
|
+
this.context.memoryLimit.use(str.length);
|
|
3645
|
+
return str.split(stringify(pattern)).join(replacement);
|
|
3646
|
+
}
|
|
3647
|
+
function replace_first(v, arg1, arg2) {
|
|
3648
|
+
const str = stringify(v);
|
|
3649
|
+
this.context.memoryLimit.use(str.length);
|
|
3650
|
+
return str.replace(stringify(arg1), arg2);
|
|
3651
|
+
}
|
|
3652
|
+
function replace_last(v, arg1, arg2) {
|
|
3653
|
+
const str = stringify(v);
|
|
3654
|
+
this.context.memoryLimit.use(str.length);
|
|
3655
|
+
const pattern = stringify(arg1);
|
|
3656
|
+
const index = str.lastIndexOf(pattern);
|
|
3657
|
+
if (index === -1)
|
|
3658
|
+
return str;
|
|
3659
|
+
const replacement = stringify(arg2);
|
|
3660
|
+
return str.substring(0, index) + replacement + str.substring(index + pattern.length);
|
|
3661
|
+
}
|
|
3662
|
+
function truncate(v, l = 50, o = '...') {
|
|
3663
|
+
const str = stringify(v);
|
|
3664
|
+
this.context.memoryLimit.use(str.length);
|
|
3665
|
+
if (str.length <= l)
|
|
3666
|
+
return v;
|
|
3667
|
+
return str.substring(0, l - o.length) + o;
|
|
3668
|
+
}
|
|
3669
|
+
function truncatewords(v, words = 15, o = '...') {
|
|
3670
|
+
const str = stringify(v);
|
|
3671
|
+
this.context.memoryLimit.use(str.length);
|
|
3672
|
+
const arr = str.split(/\s+/);
|
|
3673
|
+
if (words <= 0)
|
|
3674
|
+
words = 1;
|
|
3675
|
+
let ret = arr.slice(0, words).join(' ');
|
|
3676
|
+
if (arr.length >= words)
|
|
3677
|
+
ret += o;
|
|
3678
|
+
return ret;
|
|
3679
|
+
}
|
|
3680
|
+
function normalize_whitespace(v) {
|
|
3681
|
+
const str = stringify(v);
|
|
3682
|
+
this.context.memoryLimit.use(str.length);
|
|
3683
|
+
return str.replace(/\s+/g, ' ');
|
|
3684
|
+
}
|
|
3685
|
+
function number_of_words(input, mode) {
|
|
3686
|
+
const str = stringify(input);
|
|
3687
|
+
this.context.memoryLimit.use(str.length);
|
|
3688
|
+
input = str.trim();
|
|
3689
|
+
if (!input)
|
|
3690
|
+
return 0;
|
|
3691
|
+
switch (mode) {
|
|
3692
|
+
case 'cjk':
|
|
3693
|
+
// Count CJK characters and words
|
|
3694
|
+
return (input.match(rCJKWord) || []).length + (input.match(rNonCJKWord) || []).length;
|
|
3695
|
+
case 'auto':
|
|
3696
|
+
// Count CJK characters, if none, count words
|
|
3697
|
+
return rCJKWord.test(input)
|
|
3698
|
+
? input.match(rCJKWord).length + (input.match(rNonCJKWord) || []).length
|
|
3699
|
+
: input.split(/\s+/).length;
|
|
3700
|
+
default:
|
|
3701
|
+
// Count words only
|
|
3702
|
+
return input.split(/\s+/).length;
|
|
3703
|
+
}
|
|
3704
|
+
}
|
|
3705
|
+
function array_to_sentence_string(array, connector = 'and') {
|
|
3706
|
+
this.context.memoryLimit.use(array.length);
|
|
3707
|
+
switch (array.length) {
|
|
3708
|
+
case 0:
|
|
3709
|
+
return '';
|
|
3710
|
+
case 1:
|
|
3711
|
+
return array[0];
|
|
3712
|
+
case 2:
|
|
3713
|
+
return `${array[0]} ${connector} ${array[1]}`;
|
|
3714
|
+
default:
|
|
3715
|
+
return `${array.slice(0, -1).join(', ')}, ${connector} ${array[array.length - 1]}`;
|
|
3716
|
+
}
|
|
3717
|
+
}
|
|
3718
|
+
|
|
3719
|
+
var stringFilters = /*#__PURE__*/Object.freeze({
|
|
3720
|
+
__proto__: null,
|
|
3721
|
+
append: append,
|
|
3722
|
+
prepend: prepend,
|
|
3723
|
+
lstrip: lstrip,
|
|
3724
|
+
downcase: downcase,
|
|
3725
|
+
upcase: upcase,
|
|
3726
|
+
remove: remove,
|
|
3727
|
+
remove_first: remove_first,
|
|
3728
|
+
remove_last: remove_last,
|
|
3729
|
+
rstrip: rstrip,
|
|
3730
|
+
split: split,
|
|
3731
|
+
strip: strip,
|
|
3732
|
+
strip_newlines: strip_newlines,
|
|
3733
|
+
capitalize: capitalize,
|
|
3734
|
+
replace: replace,
|
|
3735
|
+
replace_first: replace_first,
|
|
3736
|
+
replace_last: replace_last,
|
|
3737
|
+
truncate: truncate,
|
|
3738
|
+
truncatewords: truncatewords,
|
|
3739
|
+
normalize_whitespace: normalize_whitespace,
|
|
3740
|
+
number_of_words: number_of_words,
|
|
3741
|
+
array_to_sentence_string: array_to_sentence_string
|
|
3742
|
+
});
|
|
3743
|
+
|
|
3744
|
+
const filters = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, htmlFilters), mathFilters), urlFilters), arrayFilters), dateFilters), stringFilters), misc);
|
|
3745
|
+
|
|
3746
|
+
class AssignTag extends Tag {
|
|
3747
|
+
constructor(token, remainTokens, liquid) {
|
|
3748
|
+
super(token, remainTokens, liquid);
|
|
3749
|
+
this.identifier = this.tokenizer.readIdentifier();
|
|
3750
|
+
this.key = this.identifier.content;
|
|
3751
|
+
this.tokenizer.assert(this.key, 'expected variable name');
|
|
3752
|
+
this.tokenizer.skipBlank();
|
|
3753
|
+
this.tokenizer.assert(this.tokenizer.peek() === '=', 'expected "="');
|
|
3754
|
+
this.tokenizer.advance();
|
|
3755
|
+
this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);
|
|
3756
|
+
}
|
|
3757
|
+
*render(ctx) {
|
|
3758
|
+
ctx.bottom()[this.key] = yield this.value.value(ctx, this.liquid.options.lenientIf);
|
|
3759
|
+
}
|
|
3760
|
+
*arguments() {
|
|
3761
|
+
yield this.value;
|
|
3762
|
+
}
|
|
3763
|
+
*localScope() {
|
|
3764
|
+
yield this.identifier;
|
|
3765
|
+
}
|
|
3766
|
+
}
|
|
3767
|
+
|
|
3768
|
+
const MODIFIERS = ['offset', 'limit', 'reversed'];
|
|
3769
|
+
class ForTag extends Tag {
|
|
3770
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
3771
|
+
super(token, remainTokens, liquid);
|
|
3772
|
+
const variable = this.tokenizer.readIdentifier();
|
|
3773
|
+
const inStr = this.tokenizer.readIdentifier();
|
|
3774
|
+
const collection = this.tokenizer.readValue();
|
|
3775
|
+
if (!variable.size() || inStr.content !== 'in' || !collection) {
|
|
3776
|
+
throw new Error(`illegal tag: ${token.getText()}`);
|
|
3777
|
+
}
|
|
3778
|
+
this.variable = variable.content;
|
|
3779
|
+
this.collection = collection;
|
|
3780
|
+
this.hash = new Hash(this.tokenizer, liquid.options.keyValueSeparator);
|
|
3781
|
+
this.templates = [];
|
|
3782
|
+
this.elseTemplates = [];
|
|
3783
|
+
let p;
|
|
3784
|
+
const stream = parser.parseStream(remainTokens)
|
|
3785
|
+
.on('start', () => (p = this.templates))
|
|
3786
|
+
.on('tag:else', tag => { assertEmpty(tag.args); p = this.elseTemplates; })
|
|
3787
|
+
.on('tag:endfor', tag => { assertEmpty(tag.args); stream.stop(); })
|
|
3788
|
+
.on('template', (tpl) => p.push(tpl))
|
|
3789
|
+
.on('end', () => { throw new Error(`tag ${token.getText()} not closed`); });
|
|
3790
|
+
stream.start();
|
|
3791
|
+
}
|
|
3792
|
+
*render(ctx, emitter) {
|
|
3793
|
+
const r = this.liquid.renderer;
|
|
3794
|
+
let collection = toEnumerable(yield evalToken(this.collection, ctx));
|
|
3795
|
+
if (!collection.length) {
|
|
3796
|
+
yield r.renderTemplates(this.elseTemplates, ctx, emitter);
|
|
3797
|
+
return;
|
|
3798
|
+
}
|
|
3799
|
+
const continueKey = 'continue-' + this.variable + '-' + this.collection.getText();
|
|
3800
|
+
ctx.push({ continue: ctx.getRegister(continueKey) });
|
|
3801
|
+
const hash = yield this.hash.render(ctx);
|
|
3802
|
+
ctx.pop();
|
|
3803
|
+
const modifiers = this.liquid.options.orderedFilterParameters
|
|
3804
|
+
? Object.keys(hash).filter(x => MODIFIERS.includes(x))
|
|
3805
|
+
: MODIFIERS.filter(x => hash[x] !== undefined);
|
|
3806
|
+
collection = modifiers.reduce((collection, modifier) => {
|
|
3807
|
+
if (modifier === 'offset')
|
|
3808
|
+
return offset(collection, hash['offset']);
|
|
3809
|
+
if (modifier === 'limit')
|
|
3810
|
+
return limit(collection, hash['limit']);
|
|
3811
|
+
return reversed(collection);
|
|
3812
|
+
}, collection);
|
|
3813
|
+
ctx.setRegister(continueKey, (hash['offset'] || 0) + collection.length);
|
|
3814
|
+
const scope = { forloop: new ForloopDrop(collection.length, this.collection.getText(), this.variable) };
|
|
3815
|
+
ctx.push(scope);
|
|
3816
|
+
for (const item of collection) {
|
|
3817
|
+
scope[this.variable] = item;
|
|
3818
|
+
ctx.continueCalled = ctx.breakCalled = false;
|
|
3819
|
+
yield r.renderTemplates(this.templates, ctx, emitter);
|
|
3820
|
+
if (ctx.breakCalled)
|
|
3821
|
+
break;
|
|
3822
|
+
scope.forloop.next();
|
|
3823
|
+
}
|
|
3824
|
+
ctx.continueCalled = ctx.breakCalled = false;
|
|
3825
|
+
ctx.pop();
|
|
3826
|
+
}
|
|
3827
|
+
*children() {
|
|
3828
|
+
const templates = this.templates.slice();
|
|
3829
|
+
if (this.elseTemplates) {
|
|
3830
|
+
templates.push(...this.elseTemplates);
|
|
3831
|
+
}
|
|
3832
|
+
return templates;
|
|
3833
|
+
}
|
|
3834
|
+
*arguments() {
|
|
3835
|
+
yield this.collection;
|
|
3836
|
+
for (const v of Object.values(this.hash.hash)) {
|
|
3837
|
+
if (isValueToken(v)) {
|
|
3838
|
+
yield v;
|
|
3839
|
+
}
|
|
3840
|
+
}
|
|
3841
|
+
}
|
|
3842
|
+
blockScope() {
|
|
3843
|
+
return [this.variable, 'forloop'];
|
|
3844
|
+
}
|
|
3845
|
+
}
|
|
3846
|
+
function reversed(arr) {
|
|
3847
|
+
return [...arr].reverse();
|
|
3848
|
+
}
|
|
3849
|
+
function offset(arr, count) {
|
|
3850
|
+
return arr.slice(count);
|
|
3851
|
+
}
|
|
3852
|
+
function limit(arr, count) {
|
|
3853
|
+
return arr.slice(0, count);
|
|
3854
|
+
}
|
|
3855
|
+
|
|
3856
|
+
class CaptureTag extends Tag {
|
|
3857
|
+
constructor(tagToken, remainTokens, liquid, parser) {
|
|
3858
|
+
super(tagToken, remainTokens, liquid);
|
|
3859
|
+
this.templates = [];
|
|
3860
|
+
this.identifier = this.readVariable();
|
|
3861
|
+
this.variable = this.identifier.content;
|
|
3862
|
+
while (remainTokens.length) {
|
|
3863
|
+
const token = remainTokens.shift();
|
|
3864
|
+
if (isTagToken(token) && token.name === 'endcapture')
|
|
3865
|
+
return;
|
|
3866
|
+
this.templates.push(parser.parseToken(token, remainTokens));
|
|
3867
|
+
}
|
|
3868
|
+
throw new Error(`tag ${tagToken.getText()} not closed`);
|
|
3869
|
+
}
|
|
3870
|
+
readVariable() {
|
|
3871
|
+
let ident = this.tokenizer.readIdentifier();
|
|
3872
|
+
if (ident.content)
|
|
3873
|
+
return ident;
|
|
3874
|
+
ident = this.tokenizer.readQuoted();
|
|
3875
|
+
if (ident)
|
|
3876
|
+
return ident;
|
|
3877
|
+
throw this.tokenizer.error('invalid capture name');
|
|
3878
|
+
}
|
|
3879
|
+
*render(ctx) {
|
|
3880
|
+
const r = this.liquid.renderer;
|
|
3881
|
+
const html = yield r.renderTemplates(this.templates, ctx);
|
|
3882
|
+
ctx.bottom()[this.variable] = html;
|
|
3883
|
+
}
|
|
3884
|
+
*children() {
|
|
3885
|
+
return this.templates;
|
|
3886
|
+
}
|
|
3887
|
+
*localScope() {
|
|
3888
|
+
yield this.identifier;
|
|
3889
|
+
}
|
|
3890
|
+
}
|
|
3891
|
+
|
|
3892
|
+
class CaseTag extends Tag {
|
|
3893
|
+
constructor(tagToken, remainTokens, liquid, parser) {
|
|
3894
|
+
super(tagToken, remainTokens, liquid);
|
|
3895
|
+
this.branches = [];
|
|
3896
|
+
this.elseTemplates = [];
|
|
3897
|
+
this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);
|
|
3898
|
+
this.elseTemplates = [];
|
|
3899
|
+
let p = [];
|
|
3900
|
+
let elseCount = 0;
|
|
3901
|
+
const stream = parser.parseStream(remainTokens)
|
|
3902
|
+
.on('tag:when', (token) => {
|
|
3903
|
+
if (elseCount > 0) {
|
|
3904
|
+
return;
|
|
3905
|
+
}
|
|
3906
|
+
p = [];
|
|
3907
|
+
const values = [];
|
|
3908
|
+
while (!token.tokenizer.end()) {
|
|
3909
|
+
values.push(token.tokenizer.readValueOrThrow());
|
|
3910
|
+
token.tokenizer.skipBlank();
|
|
3911
|
+
if (token.tokenizer.peek() === ',') {
|
|
3912
|
+
token.tokenizer.readTo(',');
|
|
3913
|
+
}
|
|
3914
|
+
else {
|
|
3915
|
+
token.tokenizer.readTo('or');
|
|
3916
|
+
}
|
|
3917
|
+
}
|
|
3918
|
+
this.branches.push({
|
|
3919
|
+
values,
|
|
3920
|
+
templates: p
|
|
3921
|
+
});
|
|
3922
|
+
})
|
|
3923
|
+
.on('tag:else', () => {
|
|
3924
|
+
elseCount++;
|
|
3925
|
+
p = this.elseTemplates;
|
|
3926
|
+
})
|
|
3927
|
+
.on('tag:endcase', () => stream.stop())
|
|
3928
|
+
.on('template', (tpl) => {
|
|
3929
|
+
if (p !== this.elseTemplates || elseCount === 1) {
|
|
3930
|
+
p.push(tpl);
|
|
3931
|
+
}
|
|
3932
|
+
})
|
|
3933
|
+
.on('end', () => {
|
|
3934
|
+
throw new Error(`tag ${tagToken.getText()} not closed`);
|
|
3935
|
+
});
|
|
3936
|
+
stream.start();
|
|
3937
|
+
}
|
|
3938
|
+
*render(ctx, emitter) {
|
|
3939
|
+
const r = this.liquid.renderer;
|
|
3940
|
+
const target = toValue(yield this.value.value(ctx, ctx.opts.lenientIf));
|
|
3941
|
+
let branchHit = false;
|
|
3942
|
+
for (const branch of this.branches) {
|
|
3943
|
+
for (const valueToken of branch.values) {
|
|
3944
|
+
const value = yield evalToken(valueToken, ctx, ctx.opts.lenientIf);
|
|
3945
|
+
if (equals(target, value)) {
|
|
3946
|
+
yield r.renderTemplates(branch.templates, ctx, emitter);
|
|
3947
|
+
branchHit = true;
|
|
3948
|
+
break;
|
|
3949
|
+
}
|
|
3950
|
+
}
|
|
3951
|
+
}
|
|
3952
|
+
if (!branchHit) {
|
|
3953
|
+
yield r.renderTemplates(this.elseTemplates, ctx, emitter);
|
|
3954
|
+
}
|
|
3955
|
+
}
|
|
3956
|
+
*arguments() {
|
|
3957
|
+
yield this.value;
|
|
3958
|
+
yield* this.branches.flatMap(b => b.values);
|
|
3959
|
+
}
|
|
3960
|
+
*children() {
|
|
3961
|
+
const templates = this.branches.flatMap(b => b.templates);
|
|
3962
|
+
if (this.elseTemplates) {
|
|
3963
|
+
templates.push(...this.elseTemplates);
|
|
3964
|
+
}
|
|
3965
|
+
return templates;
|
|
3966
|
+
}
|
|
3967
|
+
}
|
|
3968
|
+
|
|
3969
|
+
class CommentTag extends Tag {
|
|
3970
|
+
constructor(tagToken, remainTokens, liquid) {
|
|
3971
|
+
super(tagToken, remainTokens, liquid);
|
|
3972
|
+
while (remainTokens.length) {
|
|
3973
|
+
const token = remainTokens.shift();
|
|
3974
|
+
if (isTagToken(token) && token.name === 'endcomment')
|
|
3975
|
+
return;
|
|
3976
|
+
}
|
|
3977
|
+
throw new Error(`tag ${tagToken.getText()} not closed`);
|
|
3978
|
+
}
|
|
3979
|
+
render() { }
|
|
3980
|
+
}
|
|
3981
|
+
|
|
3982
|
+
class RenderTag extends Tag {
|
|
3983
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
3984
|
+
super(token, remainTokens, liquid);
|
|
3985
|
+
const tokenizer = this.tokenizer;
|
|
3986
|
+
this.file = parseFilePath(tokenizer, this.liquid, parser);
|
|
3987
|
+
this.currentFile = token.file;
|
|
3988
|
+
while (!tokenizer.end()) {
|
|
3989
|
+
tokenizer.skipBlank();
|
|
3990
|
+
const begin = tokenizer.p;
|
|
3991
|
+
const keyword = tokenizer.readIdentifier();
|
|
3992
|
+
if (keyword.content === 'with' || keyword.content === 'for') {
|
|
3993
|
+
tokenizer.skipBlank();
|
|
3994
|
+
// can be normal key/value pair, like "with: true"
|
|
3995
|
+
if (tokenizer.peek() !== ':') {
|
|
3996
|
+
const value = tokenizer.readValue();
|
|
3997
|
+
// can be normal key, like "with,"
|
|
3998
|
+
if (value) {
|
|
3999
|
+
const beforeAs = tokenizer.p;
|
|
4000
|
+
const asStr = tokenizer.readIdentifier();
|
|
4001
|
+
let alias;
|
|
4002
|
+
if (asStr.content === 'as')
|
|
4003
|
+
alias = tokenizer.readIdentifier();
|
|
4004
|
+
else
|
|
4005
|
+
tokenizer.p = beforeAs;
|
|
4006
|
+
this[keyword.content] = { value, alias: alias && alias.content };
|
|
4007
|
+
tokenizer.skipBlank();
|
|
4008
|
+
if (tokenizer.peek() === ',')
|
|
4009
|
+
tokenizer.advance();
|
|
4010
|
+
continue; // matched!
|
|
4011
|
+
}
|
|
4012
|
+
}
|
|
4013
|
+
}
|
|
4014
|
+
/**
|
|
4015
|
+
* restore cursor if with/for not matched
|
|
4016
|
+
*/
|
|
4017
|
+
tokenizer.p = begin;
|
|
4018
|
+
break;
|
|
4019
|
+
}
|
|
4020
|
+
this.hash = new Hash(tokenizer, liquid.options.keyValueSeparator);
|
|
4021
|
+
}
|
|
4022
|
+
*render(ctx, emitter) {
|
|
4023
|
+
const { liquid, hash } = this;
|
|
4024
|
+
const filepath = (yield renderFilePath(this['file'], ctx, liquid));
|
|
4025
|
+
assert(filepath, () => `illegal file path "${filepath}"`);
|
|
4026
|
+
const childCtx = ctx.spawn();
|
|
4027
|
+
const scope = childCtx.bottom();
|
|
4028
|
+
__assign(scope, yield hash.render(ctx));
|
|
4029
|
+
if (this['with']) {
|
|
4030
|
+
const { value, alias } = this['with'];
|
|
4031
|
+
scope[alias || filepath] = yield evalToken(value, ctx);
|
|
4032
|
+
}
|
|
4033
|
+
if (this['for']) {
|
|
4034
|
+
const { value, alias } = this['for'];
|
|
4035
|
+
const collection = toEnumerable(yield evalToken(value, ctx));
|
|
4036
|
+
scope['forloop'] = new ForloopDrop(collection.length, value.getText(), alias);
|
|
4037
|
+
for (const item of collection) {
|
|
4038
|
+
scope[alias] = item;
|
|
4039
|
+
const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile']));
|
|
4040
|
+
yield liquid.renderer.renderTemplates(templates, childCtx, emitter);
|
|
4041
|
+
scope['forloop'].next();
|
|
4042
|
+
}
|
|
4043
|
+
}
|
|
4044
|
+
else {
|
|
4045
|
+
const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile']));
|
|
4046
|
+
yield liquid.renderer.renderTemplates(templates, childCtx, emitter);
|
|
4047
|
+
}
|
|
4048
|
+
}
|
|
4049
|
+
*children(partials, sync) {
|
|
4050
|
+
if (partials && isString(this['file'])) {
|
|
4051
|
+
return (yield this.liquid._parsePartialFile(this['file'], sync, this['currentFile']));
|
|
4052
|
+
}
|
|
4053
|
+
return [];
|
|
4054
|
+
}
|
|
4055
|
+
partialScope() {
|
|
4056
|
+
if (isString(this['file'])) {
|
|
4057
|
+
const names = Object.keys(this.hash.hash);
|
|
4058
|
+
if (this['with']) {
|
|
4059
|
+
const { value, alias } = this['with'];
|
|
4060
|
+
if (isString(alias)) {
|
|
4061
|
+
names.push([alias, value]);
|
|
4062
|
+
}
|
|
4063
|
+
else if (isString(this.file)) {
|
|
4064
|
+
names.push([this.file, value]);
|
|
4065
|
+
}
|
|
4066
|
+
}
|
|
4067
|
+
if (this['for']) {
|
|
4068
|
+
const { value, alias } = this['for'];
|
|
4069
|
+
if (isString(alias)) {
|
|
4070
|
+
names.push([alias, value]);
|
|
4071
|
+
}
|
|
4072
|
+
else if (isString(this.file)) {
|
|
4073
|
+
names.push([this.file, value]);
|
|
4074
|
+
}
|
|
4075
|
+
}
|
|
4076
|
+
return { name: this['file'], isolated: true, scope: names };
|
|
4077
|
+
}
|
|
4078
|
+
}
|
|
4079
|
+
*arguments() {
|
|
4080
|
+
for (const v of Object.values(this.hash.hash)) {
|
|
4081
|
+
if (isValueToken(v)) {
|
|
4082
|
+
yield v;
|
|
4083
|
+
}
|
|
4084
|
+
}
|
|
4085
|
+
if (this['with']) {
|
|
4086
|
+
const { value } = this['with'];
|
|
4087
|
+
if (isValueToken(value)) {
|
|
4088
|
+
yield value;
|
|
4089
|
+
}
|
|
4090
|
+
}
|
|
4091
|
+
if (this['for']) {
|
|
4092
|
+
const { value } = this['for'];
|
|
4093
|
+
if (isValueToken(value)) {
|
|
4094
|
+
yield value;
|
|
4095
|
+
}
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
}
|
|
4099
|
+
/**
|
|
4100
|
+
* @return null for "none",
|
|
4101
|
+
* @return Template[] for quoted with tags and/or filters
|
|
4102
|
+
* @return Token for expression (not quoted)
|
|
4103
|
+
* @throws TypeError if cannot read next token
|
|
4104
|
+
*/
|
|
4105
|
+
function parseFilePath(tokenizer, liquid, parser) {
|
|
4106
|
+
if (liquid.options.dynamicPartials) {
|
|
4107
|
+
const file = tokenizer.readValue();
|
|
4108
|
+
tokenizer.assert(file, 'illegal file path');
|
|
4109
|
+
if (file.getText() === 'none')
|
|
4110
|
+
return;
|
|
4111
|
+
if (isQuotedToken(file)) {
|
|
4112
|
+
// for filenames like "files/{{file}}", eval as liquid template
|
|
4113
|
+
const templates = parser.parse(evalQuotedToken(file));
|
|
4114
|
+
return optimize(templates);
|
|
4115
|
+
}
|
|
4116
|
+
return file;
|
|
4117
|
+
}
|
|
4118
|
+
const tokens = [...tokenizer.readFileNameTemplate(liquid.options)];
|
|
4119
|
+
const templates = optimize(parser.parseTokens(tokens));
|
|
4120
|
+
return templates === 'none' ? undefined : templates;
|
|
4121
|
+
}
|
|
4122
|
+
function optimize(templates) {
|
|
4123
|
+
// for filenames like "files/file.liquid", extract the string directly
|
|
4124
|
+
if (templates.length === 1 && isHTMLToken(templates[0].token))
|
|
4125
|
+
return templates[0].token.getContent();
|
|
4126
|
+
return templates;
|
|
4127
|
+
}
|
|
4128
|
+
function* renderFilePath(file, ctx, liquid) {
|
|
4129
|
+
if (typeof file === 'string')
|
|
4130
|
+
return file;
|
|
4131
|
+
if (Array.isArray(file))
|
|
4132
|
+
return liquid.renderer.renderTemplates(file, ctx);
|
|
4133
|
+
return yield evalToken(file, ctx);
|
|
4134
|
+
}
|
|
4135
|
+
|
|
4136
|
+
class IncludeTag extends Tag {
|
|
4137
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
4138
|
+
super(token, remainTokens, liquid);
|
|
4139
|
+
const { tokenizer } = token;
|
|
4140
|
+
this['file'] = parseFilePath(tokenizer, this.liquid, parser);
|
|
4141
|
+
this['currentFile'] = token.file;
|
|
4142
|
+
const begin = tokenizer.p;
|
|
4143
|
+
const withStr = tokenizer.readIdentifier();
|
|
4144
|
+
if (withStr.content === 'with') {
|
|
4145
|
+
tokenizer.skipBlank();
|
|
4146
|
+
if (tokenizer.peek() !== ':') {
|
|
4147
|
+
this.withVar = tokenizer.readValue();
|
|
4148
|
+
}
|
|
4149
|
+
else
|
|
4150
|
+
tokenizer.p = begin;
|
|
4151
|
+
}
|
|
4152
|
+
else
|
|
4153
|
+
tokenizer.p = begin;
|
|
4154
|
+
this.hash = new Hash(tokenizer, liquid.options.jekyllInclude || liquid.options.keyValueSeparator);
|
|
4155
|
+
}
|
|
4156
|
+
*render(ctx, emitter) {
|
|
4157
|
+
const { liquid, hash, withVar } = this;
|
|
4158
|
+
const { renderer } = liquid;
|
|
4159
|
+
const filepath = (yield renderFilePath(this['file'], ctx, liquid));
|
|
4160
|
+
assert(filepath, () => `illegal file path "${filepath}"`);
|
|
4161
|
+
const saved = ctx.saveRegister('blocks', 'blockMode');
|
|
4162
|
+
ctx.setRegister('blocks', {});
|
|
4163
|
+
ctx.setRegister('blockMode', BlockMode.OUTPUT);
|
|
4164
|
+
const scope = (yield hash.render(ctx));
|
|
4165
|
+
if (withVar)
|
|
4166
|
+
scope[filepath] = yield evalToken(withVar, ctx);
|
|
4167
|
+
const templates = (yield liquid._parsePartialFile(filepath, ctx.sync, this['currentFile']));
|
|
4168
|
+
ctx.push(ctx.opts.jekyllInclude ? { include: scope } : scope);
|
|
4169
|
+
yield renderer.renderTemplates(templates, ctx, emitter);
|
|
4170
|
+
ctx.pop();
|
|
4171
|
+
ctx.restoreRegister(saved);
|
|
4172
|
+
}
|
|
4173
|
+
*children(partials, sync) {
|
|
4174
|
+
if (partials && isString(this['file'])) {
|
|
4175
|
+
return (yield this.liquid._parsePartialFile(this['file'], sync, this['currentFile']));
|
|
4176
|
+
}
|
|
4177
|
+
return [];
|
|
4178
|
+
}
|
|
4179
|
+
partialScope() {
|
|
4180
|
+
if (isString(this['file'])) {
|
|
4181
|
+
let names;
|
|
4182
|
+
if (this.liquid.options.jekyllInclude) {
|
|
4183
|
+
names = ['include'];
|
|
4184
|
+
}
|
|
4185
|
+
else {
|
|
4186
|
+
names = Object.keys(this.hash.hash);
|
|
4187
|
+
if (this.withVar) {
|
|
4188
|
+
names.push([this['file'], this.withVar]);
|
|
4189
|
+
}
|
|
4190
|
+
}
|
|
4191
|
+
return { name: this['file'], isolated: false, scope: names };
|
|
4192
|
+
}
|
|
4193
|
+
}
|
|
4194
|
+
*arguments() {
|
|
4195
|
+
yield* Object.values(this.hash.hash).filter(isValueToken);
|
|
4196
|
+
if (isValueToken(this['file'])) {
|
|
4197
|
+
yield this['file'];
|
|
4198
|
+
}
|
|
4199
|
+
if (isValueToken(this.withVar)) {
|
|
4200
|
+
yield this.withVar;
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
}
|
|
4204
|
+
|
|
4205
|
+
class DecrementTag extends Tag {
|
|
4206
|
+
constructor(token, remainTokens, liquid) {
|
|
4207
|
+
super(token, remainTokens, liquid);
|
|
4208
|
+
this.identifier = this.tokenizer.readIdentifier();
|
|
4209
|
+
this.variable = this.identifier.content;
|
|
4210
|
+
}
|
|
4211
|
+
render(context, emitter) {
|
|
4212
|
+
const scope = context.environments;
|
|
4213
|
+
if (!isNumber(scope[this.variable])) {
|
|
4214
|
+
scope[this.variable] = 0;
|
|
4215
|
+
}
|
|
4216
|
+
emitter.write(stringify(--scope[this.variable]));
|
|
4217
|
+
}
|
|
4218
|
+
*localScope() {
|
|
4219
|
+
yield this.identifier;
|
|
4220
|
+
}
|
|
4221
|
+
}
|
|
4222
|
+
|
|
4223
|
+
class CycleTag extends Tag {
|
|
4224
|
+
constructor(token, remainTokens, liquid) {
|
|
4225
|
+
super(token, remainTokens, liquid);
|
|
4226
|
+
this.candidates = [];
|
|
4227
|
+
const group = this.tokenizer.readValue();
|
|
4228
|
+
this.tokenizer.skipBlank();
|
|
4229
|
+
if (group) {
|
|
4230
|
+
if (this.tokenizer.peek() === ':') {
|
|
4231
|
+
this.group = group;
|
|
4232
|
+
this.tokenizer.advance();
|
|
4233
|
+
}
|
|
4234
|
+
else
|
|
4235
|
+
this.candidates.push(group);
|
|
4236
|
+
}
|
|
4237
|
+
while (!this.tokenizer.end()) {
|
|
4238
|
+
const value = this.tokenizer.readValue();
|
|
4239
|
+
if (value)
|
|
4240
|
+
this.candidates.push(value);
|
|
4241
|
+
this.tokenizer.readTo(',');
|
|
4242
|
+
}
|
|
4243
|
+
this.tokenizer.assert(this.candidates.length, () => `empty candidates: "${token.getText()}"`);
|
|
4244
|
+
}
|
|
4245
|
+
*render(ctx, emitter) {
|
|
4246
|
+
const group = (yield evalToken(this.group, ctx));
|
|
4247
|
+
const fingerprint = `cycle:${group}:` + this.candidates.join(',');
|
|
4248
|
+
const groups = ctx.getRegister('cycle');
|
|
4249
|
+
let idx = groups[fingerprint];
|
|
4250
|
+
if (idx === undefined) {
|
|
4251
|
+
idx = groups[fingerprint] = 0;
|
|
4252
|
+
}
|
|
4253
|
+
const candidate = this.candidates[idx];
|
|
4254
|
+
idx = (idx + 1) % this.candidates.length;
|
|
4255
|
+
groups[fingerprint] = idx;
|
|
4256
|
+
return yield evalToken(candidate, ctx);
|
|
4257
|
+
}
|
|
4258
|
+
*arguments() {
|
|
4259
|
+
yield* this.candidates;
|
|
4260
|
+
if (this.group) {
|
|
4261
|
+
yield this.group;
|
|
4262
|
+
}
|
|
4263
|
+
}
|
|
4264
|
+
}
|
|
4265
|
+
|
|
4266
|
+
class IfTag extends Tag {
|
|
4267
|
+
constructor(tagToken, remainTokens, liquid, parser) {
|
|
4268
|
+
super(tagToken, remainTokens, liquid);
|
|
4269
|
+
this.branches = [];
|
|
4270
|
+
let p = [];
|
|
4271
|
+
parser.parseStream(remainTokens)
|
|
4272
|
+
.on('start', () => this.branches.push({
|
|
4273
|
+
value: new Value(tagToken.tokenizer.readFilteredValue(), this.liquid),
|
|
4274
|
+
templates: (p = [])
|
|
4275
|
+
}))
|
|
4276
|
+
.on('tag:elsif', (token) => {
|
|
4277
|
+
assert(!this.elseTemplates, 'unexpected elsif after else');
|
|
4278
|
+
this.branches.push({
|
|
4279
|
+
value: new Value(token.tokenizer.readFilteredValue(), this.liquid),
|
|
4280
|
+
templates: (p = [])
|
|
4281
|
+
});
|
|
4282
|
+
})
|
|
4283
|
+
.on('tag:else', tag => {
|
|
4284
|
+
assertEmpty(tag.args);
|
|
4285
|
+
assert(!this.elseTemplates, 'duplicated else');
|
|
4286
|
+
p = this.elseTemplates = [];
|
|
4287
|
+
})
|
|
4288
|
+
.on('tag:endif', function (tag) { assertEmpty(tag.args); this.stop(); })
|
|
4289
|
+
.on('template', (tpl) => p.push(tpl))
|
|
4290
|
+
.on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`); })
|
|
4291
|
+
.start();
|
|
4292
|
+
}
|
|
4293
|
+
*render(ctx, emitter) {
|
|
4294
|
+
const r = this.liquid.renderer;
|
|
4295
|
+
for (const { value, templates } of this.branches) {
|
|
4296
|
+
const v = yield value.value(ctx, ctx.opts.lenientIf);
|
|
4297
|
+
if (isTruthy(v, ctx)) {
|
|
4298
|
+
yield r.renderTemplates(templates, ctx, emitter);
|
|
4299
|
+
return;
|
|
4300
|
+
}
|
|
4301
|
+
}
|
|
4302
|
+
yield r.renderTemplates(this.elseTemplates || [], ctx, emitter);
|
|
4303
|
+
}
|
|
4304
|
+
*children() {
|
|
4305
|
+
const templates = this.branches.flatMap(b => b.templates);
|
|
4306
|
+
if (this.elseTemplates) {
|
|
4307
|
+
templates.push(...this.elseTemplates);
|
|
4308
|
+
}
|
|
4309
|
+
return templates;
|
|
4310
|
+
}
|
|
4311
|
+
arguments() {
|
|
4312
|
+
return this.branches.map(b => b.value);
|
|
4313
|
+
}
|
|
4314
|
+
}
|
|
4315
|
+
|
|
4316
|
+
class IncrementTag extends Tag {
|
|
4317
|
+
constructor(token, remainTokens, liquid) {
|
|
4318
|
+
super(token, remainTokens, liquid);
|
|
4319
|
+
this.identifier = this.tokenizer.readIdentifier();
|
|
4320
|
+
this.variable = this.identifier.content;
|
|
4321
|
+
}
|
|
4322
|
+
render(context, emitter) {
|
|
4323
|
+
const scope = context.environments;
|
|
4324
|
+
if (!isNumber(scope[this.variable])) {
|
|
4325
|
+
scope[this.variable] = 0;
|
|
4326
|
+
}
|
|
4327
|
+
const val = scope[this.variable];
|
|
4328
|
+
scope[this.variable]++;
|
|
4329
|
+
emitter.write(stringify(val));
|
|
4330
|
+
}
|
|
4331
|
+
*localScope() {
|
|
4332
|
+
yield this.identifier;
|
|
4333
|
+
}
|
|
4334
|
+
}
|
|
4335
|
+
|
|
4336
|
+
class LayoutTag extends Tag {
|
|
4337
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
4338
|
+
super(token, remainTokens, liquid);
|
|
4339
|
+
this.file = parseFilePath(this.tokenizer, this.liquid, parser);
|
|
4340
|
+
this['currentFile'] = token.file;
|
|
4341
|
+
this.args = new Hash(this.tokenizer, liquid.options.keyValueSeparator);
|
|
4342
|
+
this.templates = parser.parseTokens(remainTokens);
|
|
4343
|
+
}
|
|
4344
|
+
*render(ctx, emitter) {
|
|
4345
|
+
const { liquid, args, file } = this;
|
|
4346
|
+
const { renderer } = liquid;
|
|
4347
|
+
if (file === undefined) {
|
|
4348
|
+
ctx.setRegister('blockMode', BlockMode.OUTPUT);
|
|
4349
|
+
yield renderer.renderTemplates(this.templates, ctx, emitter);
|
|
4350
|
+
return;
|
|
4351
|
+
}
|
|
4352
|
+
const filepath = (yield renderFilePath(this.file, ctx, liquid));
|
|
4353
|
+
assert(filepath, () => `illegal file path "${filepath}"`);
|
|
4354
|
+
const templates = (yield liquid._parseLayoutFile(filepath, ctx.sync, this['currentFile']));
|
|
4355
|
+
// render remaining contents and store rendered results
|
|
4356
|
+
ctx.setRegister('blockMode', BlockMode.STORE);
|
|
4357
|
+
const html = yield renderer.renderTemplates(this.templates, ctx);
|
|
4358
|
+
const blocks = ctx.getRegister('blocks');
|
|
4359
|
+
// set whole content to anonymous block if anonymous doesn't specified
|
|
4360
|
+
if (blocks[''] === undefined)
|
|
4361
|
+
blocks[''] = (parent, emitter) => emitter.write(html);
|
|
4362
|
+
ctx.setRegister('blockMode', BlockMode.OUTPUT);
|
|
4363
|
+
// render the layout file use stored blocks
|
|
4364
|
+
ctx.push((yield args.render(ctx)));
|
|
4365
|
+
yield renderer.renderTemplates(templates, ctx, emitter);
|
|
4366
|
+
ctx.pop();
|
|
4367
|
+
}
|
|
4368
|
+
*children(partials) {
|
|
4369
|
+
const templates = this.templates.slice();
|
|
4370
|
+
if (partials && isString(this.file)) {
|
|
4371
|
+
templates.push(...(yield this.liquid._parsePartialFile(this.file, true, this['currentFile'])));
|
|
4372
|
+
}
|
|
4373
|
+
return templates;
|
|
4374
|
+
}
|
|
4375
|
+
*arguments() {
|
|
4376
|
+
for (const v of Object.values(this.args.hash)) {
|
|
4377
|
+
if (isValueToken(v)) {
|
|
4378
|
+
yield v;
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4381
|
+
if (isValueToken(this.file)) {
|
|
4382
|
+
yield this.file;
|
|
4383
|
+
}
|
|
4384
|
+
}
|
|
4385
|
+
partialScope() {
|
|
4386
|
+
if (isString(this.file)) {
|
|
4387
|
+
return { name: this.file, isolated: false, scope: Object.keys(this.args.hash) };
|
|
4388
|
+
}
|
|
4389
|
+
}
|
|
4390
|
+
}
|
|
4391
|
+
|
|
4392
|
+
class BlockTag extends Tag {
|
|
4393
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
4394
|
+
super(token, remainTokens, liquid);
|
|
4395
|
+
this.templates = [];
|
|
4396
|
+
const match = /\w+/.exec(token.args);
|
|
4397
|
+
this.block = match ? match[0] : '';
|
|
4398
|
+
while (remainTokens.length) {
|
|
4399
|
+
const token = remainTokens.shift();
|
|
4400
|
+
if (isTagToken(token) && token.name === 'endblock')
|
|
4401
|
+
return;
|
|
4402
|
+
const template = parser.parseToken(token, remainTokens);
|
|
4403
|
+
this.templates.push(template);
|
|
4404
|
+
}
|
|
4405
|
+
throw new Error(`tag ${token.getText()} not closed`);
|
|
4406
|
+
}
|
|
4407
|
+
*render(ctx, emitter) {
|
|
4408
|
+
const blockRender = this.getBlockRender(ctx);
|
|
4409
|
+
if (ctx.getRegister('blockMode') === BlockMode.STORE) {
|
|
4410
|
+
ctx.getRegister('blocks')[this.block] = blockRender;
|
|
4411
|
+
}
|
|
4412
|
+
else {
|
|
4413
|
+
yield blockRender(new BlockDrop(), emitter);
|
|
4414
|
+
}
|
|
4415
|
+
}
|
|
4416
|
+
getBlockRender(ctx) {
|
|
4417
|
+
const { liquid, templates } = this;
|
|
4418
|
+
const renderChild = ctx.getRegister('blocks')[this.block];
|
|
4419
|
+
const renderCurrent = function* (superBlock, emitter) {
|
|
4420
|
+
// add {{ block.super }} support when rendering
|
|
4421
|
+
ctx.push({ block: superBlock });
|
|
4422
|
+
yield liquid.renderer.renderTemplates(templates, ctx, emitter);
|
|
4423
|
+
ctx.pop();
|
|
4424
|
+
};
|
|
4425
|
+
return renderChild
|
|
4426
|
+
? (superBlock, emitter) => renderChild(new BlockDrop(() => renderCurrent(superBlock, emitter)), emitter)
|
|
4427
|
+
: renderCurrent;
|
|
4428
|
+
}
|
|
4429
|
+
*children() {
|
|
4430
|
+
return this.templates;
|
|
4431
|
+
}
|
|
4432
|
+
blockScope() {
|
|
4433
|
+
return ['block'];
|
|
4434
|
+
}
|
|
4435
|
+
}
|
|
4436
|
+
|
|
4437
|
+
class RawTag extends Tag {
|
|
4438
|
+
constructor(tagToken, remainTokens, liquid) {
|
|
4439
|
+
super(tagToken, remainTokens, liquid);
|
|
4440
|
+
this.tokens = [];
|
|
4441
|
+
while (remainTokens.length) {
|
|
4442
|
+
const token = remainTokens.shift();
|
|
4443
|
+
if (isTagToken(token) && token.name === 'endraw')
|
|
4444
|
+
return;
|
|
4445
|
+
this.tokens.push(token);
|
|
4446
|
+
}
|
|
4447
|
+
throw new Error(`tag ${tagToken.getText()} not closed`);
|
|
4448
|
+
}
|
|
4449
|
+
render() {
|
|
4450
|
+
return this.tokens.map((token) => token.getText()).join('');
|
|
4451
|
+
}
|
|
4452
|
+
}
|
|
4453
|
+
|
|
4454
|
+
class TablerowloopDrop extends ForloopDrop {
|
|
4455
|
+
constructor(length, cols, collection, variable) {
|
|
4456
|
+
super(length, collection, variable);
|
|
4457
|
+
this.length = length;
|
|
4458
|
+
this.cols = cols;
|
|
4459
|
+
}
|
|
4460
|
+
row() {
|
|
4461
|
+
return Math.floor(this.i / this.cols) + 1;
|
|
4462
|
+
}
|
|
4463
|
+
col0() {
|
|
4464
|
+
return (this.i % this.cols);
|
|
4465
|
+
}
|
|
4466
|
+
col() {
|
|
4467
|
+
return this.col0() + 1;
|
|
4468
|
+
}
|
|
4469
|
+
col_first() {
|
|
4470
|
+
return this.col0() === 0;
|
|
4471
|
+
}
|
|
4472
|
+
col_last() {
|
|
4473
|
+
return this.col() === this.cols;
|
|
4474
|
+
}
|
|
4475
|
+
}
|
|
4476
|
+
|
|
4477
|
+
class TablerowTag extends Tag {
|
|
4478
|
+
constructor(tagToken, remainTokens, liquid, parser) {
|
|
4479
|
+
super(tagToken, remainTokens, liquid);
|
|
4480
|
+
const variable = this.tokenizer.readIdentifier();
|
|
4481
|
+
this.tokenizer.skipBlank();
|
|
4482
|
+
const predicate = this.tokenizer.readIdentifier();
|
|
4483
|
+
const collectionToken = this.tokenizer.readValue();
|
|
4484
|
+
if (predicate.content !== 'in' || !collectionToken) {
|
|
4485
|
+
throw new Error(`illegal tag: ${tagToken.getText()}`);
|
|
4486
|
+
}
|
|
4487
|
+
this.variable = variable.content;
|
|
4488
|
+
this.collection = collectionToken;
|
|
4489
|
+
this.args = new Hash(this.tokenizer, liquid.options.keyValueSeparator);
|
|
4490
|
+
this.templates = [];
|
|
4491
|
+
let p;
|
|
4492
|
+
const stream = parser.parseStream(remainTokens)
|
|
4493
|
+
.on('start', () => (p = this.templates))
|
|
4494
|
+
.on('tag:endtablerow', () => stream.stop())
|
|
4495
|
+
.on('template', (tpl) => p.push(tpl))
|
|
4496
|
+
.on('end', () => {
|
|
4497
|
+
throw new Error(`tag ${tagToken.getText()} not closed`);
|
|
4498
|
+
});
|
|
4499
|
+
stream.start();
|
|
4500
|
+
}
|
|
4501
|
+
*render(ctx, emitter) {
|
|
4502
|
+
let collection = toEnumerable(yield evalToken(this.collection, ctx));
|
|
4503
|
+
const args = (yield this.args.render(ctx));
|
|
4504
|
+
const offset = args.offset || 0;
|
|
4505
|
+
const limit = (args.limit === undefined) ? collection.length : args.limit;
|
|
4506
|
+
collection = collection.slice(offset, offset + limit);
|
|
4507
|
+
const cols = args.cols || collection.length;
|
|
4508
|
+
const r = this.liquid.renderer;
|
|
4509
|
+
const tablerowloop = new TablerowloopDrop(collection.length, cols, this.collection.getText(), this.variable);
|
|
4510
|
+
const scope = { tablerowloop };
|
|
4511
|
+
ctx.push(scope);
|
|
4512
|
+
for (let idx = 0; idx < collection.length; idx++, tablerowloop.next()) {
|
|
4513
|
+
scope[this.variable] = collection[idx];
|
|
4514
|
+
if (tablerowloop.col0() === 0) {
|
|
4515
|
+
if (tablerowloop.row() !== 1)
|
|
4516
|
+
emitter.write('</tr>');
|
|
4517
|
+
emitter.write(`<tr class="row${tablerowloop.row()}">`);
|
|
4518
|
+
}
|
|
4519
|
+
emitter.write(`<td class="col${tablerowloop.col()}">`);
|
|
4520
|
+
yield r.renderTemplates(this.templates, ctx, emitter);
|
|
4521
|
+
emitter.write('</td>');
|
|
4522
|
+
}
|
|
4523
|
+
if (collection.length)
|
|
4524
|
+
emitter.write('</tr>');
|
|
4525
|
+
ctx.pop();
|
|
4526
|
+
}
|
|
4527
|
+
*children() {
|
|
4528
|
+
return this.templates;
|
|
4529
|
+
}
|
|
4530
|
+
*arguments() {
|
|
4531
|
+
yield this.collection;
|
|
4532
|
+
for (const v of Object.values(this.args.hash)) {
|
|
4533
|
+
if (isValueToken(v)) {
|
|
4534
|
+
yield v;
|
|
4535
|
+
}
|
|
4536
|
+
}
|
|
4537
|
+
}
|
|
4538
|
+
blockScope() {
|
|
4539
|
+
return [this.variable, 'tablerowloop'];
|
|
4540
|
+
}
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
class UnlessTag extends Tag {
|
|
4544
|
+
constructor(tagToken, remainTokens, liquid, parser) {
|
|
4545
|
+
super(tagToken, remainTokens, liquid);
|
|
4546
|
+
this.branches = [];
|
|
4547
|
+
this.elseTemplates = [];
|
|
4548
|
+
let p = [];
|
|
4549
|
+
let elseCount = 0;
|
|
4550
|
+
parser.parseStream(remainTokens)
|
|
4551
|
+
.on('start', () => this.branches.push({
|
|
4552
|
+
value: new Value(tagToken.tokenizer.readFilteredValue(), this.liquid),
|
|
4553
|
+
test: isFalsy,
|
|
4554
|
+
templates: (p = [])
|
|
4555
|
+
}))
|
|
4556
|
+
.on('tag:elsif', (token) => {
|
|
4557
|
+
if (elseCount > 0) {
|
|
4558
|
+
p = [];
|
|
4559
|
+
return;
|
|
4560
|
+
}
|
|
4561
|
+
this.branches.push({
|
|
4562
|
+
value: new Value(token.tokenizer.readFilteredValue(), this.liquid),
|
|
4563
|
+
test: isTruthy,
|
|
4564
|
+
templates: (p = [])
|
|
4565
|
+
});
|
|
4566
|
+
})
|
|
4567
|
+
.on('tag:else', () => {
|
|
4568
|
+
elseCount++;
|
|
4569
|
+
p = this.elseTemplates;
|
|
4570
|
+
})
|
|
4571
|
+
.on('tag:endunless', function () { this.stop(); })
|
|
4572
|
+
.on('template', (tpl) => {
|
|
4573
|
+
if (p !== this.elseTemplates || elseCount === 1) {
|
|
4574
|
+
p.push(tpl);
|
|
4575
|
+
}
|
|
4576
|
+
})
|
|
4577
|
+
.on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`); })
|
|
4578
|
+
.start();
|
|
4579
|
+
}
|
|
4580
|
+
*render(ctx, emitter) {
|
|
4581
|
+
const r = this.liquid.renderer;
|
|
4582
|
+
for (const { value, test, templates } of this.branches) {
|
|
4583
|
+
const v = yield value.value(ctx, ctx.opts.lenientIf);
|
|
4584
|
+
if (test(v, ctx)) {
|
|
4585
|
+
yield r.renderTemplates(templates, ctx, emitter);
|
|
4586
|
+
return;
|
|
4587
|
+
}
|
|
4588
|
+
}
|
|
4589
|
+
yield r.renderTemplates(this.elseTemplates, ctx, emitter);
|
|
4590
|
+
}
|
|
4591
|
+
*children() {
|
|
4592
|
+
const children = this.branches.flatMap(b => b.templates);
|
|
4593
|
+
if (this.elseTemplates) {
|
|
4594
|
+
children.push(...this.elseTemplates);
|
|
4595
|
+
}
|
|
4596
|
+
return children;
|
|
4597
|
+
}
|
|
4598
|
+
arguments() {
|
|
4599
|
+
return this.branches.map(b => b.value);
|
|
4600
|
+
}
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
class BreakTag extends Tag {
|
|
4604
|
+
render(ctx, _emitter) {
|
|
4605
|
+
ctx.breakCalled = true;
|
|
4606
|
+
}
|
|
4607
|
+
}
|
|
4608
|
+
|
|
4609
|
+
class ContinueTag extends Tag {
|
|
4610
|
+
render(ctx, _emitter) {
|
|
4611
|
+
ctx.continueCalled = true;
|
|
4612
|
+
}
|
|
4613
|
+
}
|
|
4614
|
+
|
|
4615
|
+
class EchoTag extends Tag {
|
|
4616
|
+
constructor(token, remainTokens, liquid) {
|
|
4617
|
+
super(token, remainTokens, liquid);
|
|
4618
|
+
this.tokenizer.skipBlank();
|
|
4619
|
+
if (!this.tokenizer.end()) {
|
|
4620
|
+
this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);
|
|
4621
|
+
}
|
|
4622
|
+
}
|
|
4623
|
+
*render(ctx, emitter) {
|
|
4624
|
+
if (!this.value)
|
|
4625
|
+
return;
|
|
4626
|
+
const val = yield this.value.value(ctx, false);
|
|
4627
|
+
emitter.write(val);
|
|
4628
|
+
}
|
|
4629
|
+
*arguments() {
|
|
4630
|
+
if (this.value) {
|
|
4631
|
+
yield this.value;
|
|
4632
|
+
}
|
|
4633
|
+
}
|
|
4634
|
+
}
|
|
4635
|
+
|
|
4636
|
+
class LiquidTag extends Tag {
|
|
4637
|
+
constructor(token, remainTokens, liquid, parser) {
|
|
4638
|
+
super(token, remainTokens, liquid);
|
|
4639
|
+
const tokens = this.tokenizer.readLiquidTagTokens(this.liquid.options);
|
|
4640
|
+
this.templates = parser.parseTokens(tokens);
|
|
4641
|
+
}
|
|
4642
|
+
*render(ctx, emitter) {
|
|
4643
|
+
yield this.liquid.renderer.renderTemplates(this.templates, ctx, emitter);
|
|
4644
|
+
}
|
|
4645
|
+
*children() {
|
|
4646
|
+
return this.templates;
|
|
4647
|
+
}
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
class InlineCommentTag extends Tag {
|
|
4651
|
+
constructor(tagToken, remainTokens, liquid) {
|
|
4652
|
+
super(tagToken, remainTokens, liquid);
|
|
4653
|
+
if (tagToken.args.search(/\n\s*[^#\s]/g) !== -1) {
|
|
4654
|
+
throw new Error('every line of an inline comment must start with a \'#\' character');
|
|
4655
|
+
}
|
|
4656
|
+
}
|
|
4657
|
+
render() { }
|
|
4658
|
+
}
|
|
4659
|
+
|
|
4660
|
+
const tags = {
|
|
4661
|
+
assign: AssignTag,
|
|
4662
|
+
'for': ForTag,
|
|
4663
|
+
capture: CaptureTag,
|
|
4664
|
+
'case': CaseTag,
|
|
4665
|
+
comment: CommentTag,
|
|
4666
|
+
include: IncludeTag,
|
|
4667
|
+
render: RenderTag,
|
|
4668
|
+
decrement: DecrementTag,
|
|
4669
|
+
increment: IncrementTag,
|
|
4670
|
+
cycle: CycleTag,
|
|
4671
|
+
'if': IfTag,
|
|
4672
|
+
layout: LayoutTag,
|
|
4673
|
+
block: BlockTag,
|
|
4674
|
+
raw: RawTag,
|
|
4675
|
+
tablerow: TablerowTag,
|
|
4676
|
+
unless: UnlessTag,
|
|
4677
|
+
'break': BreakTag,
|
|
4678
|
+
'continue': ContinueTag,
|
|
4679
|
+
echo: EchoTag,
|
|
4680
|
+
liquid: LiquidTag,
|
|
4681
|
+
'#': InlineCommentTag
|
|
4682
|
+
};
|
|
4683
|
+
|
|
4684
|
+
class Liquid {
|
|
4685
|
+
constructor(opts = {}) {
|
|
4686
|
+
this.renderer = new Render();
|
|
4687
|
+
this.filters = {};
|
|
4688
|
+
this.tags = {};
|
|
4689
|
+
this.options = normalize(opts);
|
|
4690
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
4691
|
+
this.parser = new Parser(this);
|
|
4692
|
+
forOwn(tags, (conf, name) => this.registerTag(name, conf));
|
|
4693
|
+
forOwn(filters, (handler, name) => this.registerFilter(name, handler));
|
|
4694
|
+
}
|
|
4695
|
+
parse(html, filepath) {
|
|
4696
|
+
const parser = new Parser(this);
|
|
4697
|
+
return parser.parse(html, filepath);
|
|
4698
|
+
}
|
|
4699
|
+
_render(tpl, scope, renderOptions) {
|
|
4700
|
+
const ctx = scope instanceof Context ? scope : new Context(scope, this.options, renderOptions);
|
|
4701
|
+
return this.renderer.renderTemplates(tpl, ctx);
|
|
4702
|
+
}
|
|
4703
|
+
render(tpl, scope, renderOptions) {
|
|
4704
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4705
|
+
return toPromise(this._render(tpl, scope, Object.assign(Object.assign({}, renderOptions), { sync: false })));
|
|
4706
|
+
});
|
|
4707
|
+
}
|
|
4708
|
+
renderSync(tpl, scope, renderOptions) {
|
|
4709
|
+
return toValueSync(this._render(tpl, scope, Object.assign(Object.assign({}, renderOptions), { sync: true })));
|
|
4710
|
+
}
|
|
4711
|
+
renderToNodeStream(tpl, scope, renderOptions = {}) {
|
|
4712
|
+
const ctx = new Context(scope, this.options, renderOptions);
|
|
4713
|
+
return this.renderer.renderTemplatesToNodeStream(tpl, ctx);
|
|
4714
|
+
}
|
|
4715
|
+
_parseAndRender(html, scope, renderOptions) {
|
|
4716
|
+
const tpl = this.parse(html);
|
|
4717
|
+
return this._render(tpl, scope, renderOptions);
|
|
4718
|
+
}
|
|
4719
|
+
parseAndRender(html, scope, renderOptions) {
|
|
4720
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4721
|
+
return toPromise(this._parseAndRender(html, scope, Object.assign(Object.assign({}, renderOptions), { sync: false })));
|
|
4722
|
+
});
|
|
4723
|
+
}
|
|
4724
|
+
parseAndRenderSync(html, scope, renderOptions) {
|
|
4725
|
+
return toValueSync(this._parseAndRender(html, scope, Object.assign(Object.assign({}, renderOptions), { sync: true })));
|
|
4726
|
+
}
|
|
4727
|
+
_parsePartialFile(file, sync, currentFile) {
|
|
4728
|
+
return new Parser(this).parseFile(file, sync, LookupType.Partials, currentFile);
|
|
4729
|
+
}
|
|
4730
|
+
_parseLayoutFile(file, sync, currentFile) {
|
|
4731
|
+
return new Parser(this).parseFile(file, sync, LookupType.Layouts, currentFile);
|
|
4732
|
+
}
|
|
4733
|
+
_parseFile(file, sync, lookupType, currentFile) {
|
|
4734
|
+
return new Parser(this).parseFile(file, sync, lookupType, currentFile);
|
|
4735
|
+
}
|
|
4736
|
+
parseFile(file, lookupType) {
|
|
4737
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4738
|
+
return toPromise(new Parser(this).parseFile(file, false, lookupType));
|
|
4739
|
+
});
|
|
4740
|
+
}
|
|
4741
|
+
parseFileSync(file, lookupType) {
|
|
4742
|
+
return toValueSync(new Parser(this).parseFile(file, true, lookupType));
|
|
4743
|
+
}
|
|
4744
|
+
*_renderFile(file, ctx, renderFileOptions) {
|
|
4745
|
+
const templates = (yield this._parseFile(file, renderFileOptions.sync, renderFileOptions.lookupType));
|
|
4746
|
+
return yield this._render(templates, ctx, renderFileOptions);
|
|
4747
|
+
}
|
|
4748
|
+
renderFile(file, ctx, renderFileOptions) {
|
|
4749
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4750
|
+
return toPromise(this._renderFile(file, ctx, Object.assign(Object.assign({}, renderFileOptions), { sync: false })));
|
|
4751
|
+
});
|
|
4752
|
+
}
|
|
4753
|
+
renderFileSync(file, ctx, renderFileOptions) {
|
|
4754
|
+
return toValueSync(this._renderFile(file, ctx, Object.assign(Object.assign({}, renderFileOptions), { sync: true })));
|
|
4755
|
+
}
|
|
4756
|
+
renderFileToNodeStream(file, scope, renderOptions) {
|
|
4757
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4758
|
+
const templates = yield this.parseFile(file);
|
|
4759
|
+
return this.renderToNodeStream(templates, scope, renderOptions);
|
|
4760
|
+
});
|
|
4761
|
+
}
|
|
4762
|
+
_evalValue(str, scope) {
|
|
4763
|
+
const value = new Value(str, this);
|
|
4764
|
+
const ctx = scope instanceof Context ? scope : new Context(scope, this.options);
|
|
4765
|
+
return value.value(ctx);
|
|
4766
|
+
}
|
|
4767
|
+
evalValue(str, scope) {
|
|
4768
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4769
|
+
return toPromise(this._evalValue(str, scope));
|
|
4770
|
+
});
|
|
4771
|
+
}
|
|
4772
|
+
evalValueSync(str, scope) {
|
|
4773
|
+
return toValueSync(this._evalValue(str, scope));
|
|
4774
|
+
}
|
|
4775
|
+
registerFilter(name, filter) {
|
|
4776
|
+
this.filters[name] = filter;
|
|
4777
|
+
}
|
|
4778
|
+
registerTag(name, tag) {
|
|
4779
|
+
this.tags[name] = isFunction(tag) ? tag : createTagClass(tag);
|
|
4780
|
+
}
|
|
4781
|
+
plugin(plugin) {
|
|
4782
|
+
return plugin.call(this, Liquid);
|
|
4783
|
+
}
|
|
4784
|
+
express() {
|
|
4785
|
+
const self = this; // eslint-disable-line
|
|
4786
|
+
let firstCall = true;
|
|
4787
|
+
return function (filePath, ctx, callback) {
|
|
4788
|
+
if (firstCall) {
|
|
4789
|
+
firstCall = false;
|
|
4790
|
+
const dirs = normalizeDirectoryList(this.root);
|
|
4791
|
+
self.options.root.unshift(...dirs);
|
|
4792
|
+
self.options.layouts.unshift(...dirs);
|
|
4793
|
+
self.options.partials.unshift(...dirs);
|
|
4794
|
+
}
|
|
4795
|
+
self.renderFile(filePath, ctx).then(html => callback(null, html), callback);
|
|
4796
|
+
};
|
|
4797
|
+
}
|
|
4798
|
+
analyze(template, options = {}) {
|
|
4799
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4800
|
+
return analyze(template, options);
|
|
4801
|
+
});
|
|
4802
|
+
}
|
|
4803
|
+
analyzeSync(template, options = {}) {
|
|
4804
|
+
return analyzeSync(template, options);
|
|
4805
|
+
}
|
|
4806
|
+
parseAndAnalyze(html, filename, options = {}) {
|
|
4807
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4808
|
+
return analyze(this.parse(html, filename), options);
|
|
4809
|
+
});
|
|
4810
|
+
}
|
|
4811
|
+
parseAndAnalyzeSync(html, filename, options = {}) {
|
|
4812
|
+
return analyzeSync(this.parse(html, filename), options);
|
|
4813
|
+
}
|
|
4814
|
+
/** Return an array of all variables without their properties. */
|
|
4815
|
+
variables(template, options = {}) {
|
|
4816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4817
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4818
|
+
return Object.keys(analysis.variables);
|
|
4819
|
+
});
|
|
4820
|
+
}
|
|
4821
|
+
/** Return an array of all variables without their properties. */
|
|
4822
|
+
variablesSync(template, options = {}) {
|
|
4823
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4824
|
+
return Object.keys(analysis.variables);
|
|
4825
|
+
}
|
|
4826
|
+
/** Return an array of all variables including their properties/paths. */
|
|
4827
|
+
fullVariables(template, options = {}) {
|
|
4828
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4829
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4830
|
+
return Array.from(new Set(Object.values(analysis.variables).flatMap((a) => a.map((v) => String(v)))));
|
|
4831
|
+
});
|
|
4832
|
+
}
|
|
4833
|
+
/** Return an array of all variables including their properties/paths. */
|
|
4834
|
+
fullVariablesSync(template, options = {}) {
|
|
4835
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4836
|
+
return Array.from(new Set(Object.values(analysis.variables).flatMap((a) => a.map((v) => String(v)))));
|
|
4837
|
+
}
|
|
4838
|
+
/** Return an array of all variables, each as an array of properties/segments. */
|
|
4839
|
+
variableSegments(template, options = {}) {
|
|
4840
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4841
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4842
|
+
return Array.from(strictUniq(Object.values(analysis.variables).flatMap((a) => a.map((v) => v.toArray()))));
|
|
4843
|
+
});
|
|
4844
|
+
}
|
|
4845
|
+
/** Return an array of all variables, each as an array of properties/segments. */
|
|
4846
|
+
variableSegmentsSync(template, options = {}) {
|
|
4847
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4848
|
+
return Array.from(strictUniq(Object.values(analysis.variables).flatMap((a) => a.map((v) => v.toArray()))));
|
|
4849
|
+
}
|
|
4850
|
+
/** Return an array of all expected context variables without their properties. */
|
|
4851
|
+
globalVariables(template, options = {}) {
|
|
4852
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4853
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4854
|
+
return Object.keys(analysis.globals);
|
|
4855
|
+
});
|
|
4856
|
+
}
|
|
4857
|
+
/** Return an array of all expected context variables without their properties. */
|
|
4858
|
+
globalVariablesSync(template, options = {}) {
|
|
4859
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4860
|
+
return Object.keys(analysis.globals);
|
|
4861
|
+
}
|
|
4862
|
+
/** Return an array of all expected context variables including their properties/paths. */
|
|
4863
|
+
globalFullVariables(template, options = {}) {
|
|
4864
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4865
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4866
|
+
return Array.from(new Set(Object.values(analysis.globals).flatMap((a) => a.map((v) => String(v)))));
|
|
4867
|
+
});
|
|
4868
|
+
}
|
|
4869
|
+
/** Return an array of all expected context variables including their properties/paths. */
|
|
4870
|
+
globalFullVariablesSync(template, options = {}) {
|
|
4871
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4872
|
+
return Array.from(new Set(Object.values(analysis.globals).flatMap((a) => a.map((v) => String(v)))));
|
|
4873
|
+
}
|
|
4874
|
+
/** Return an array of all expected context variables, each as an array of properties/segments. */
|
|
4875
|
+
globalVariableSegments(template, options = {}) {
|
|
4876
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4877
|
+
const analysis = yield analyze(isString(template) ? this.parse(template) : template, options);
|
|
4878
|
+
return Array.from(strictUniq(Object.values(analysis.globals).flatMap((a) => a.map((v) => v.toArray()))));
|
|
4879
|
+
});
|
|
4880
|
+
}
|
|
4881
|
+
/** Return an array of all expected context variables, each as an array of properties/segments. */
|
|
4882
|
+
globalVariableSegmentsSync(template, options = {}) {
|
|
4883
|
+
const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options);
|
|
4884
|
+
return Array.from(strictUniq(Object.values(analysis.globals).flatMap((a) => a.map((v) => v.toArray()))));
|
|
4885
|
+
}
|
|
4886
|
+
}
|
|
4887
|
+
|
|
4888
|
+
/* istanbul ignore file */
|
|
4889
|
+
const version = '[VI]{version}[/VI]';
|
|
4890
|
+
|
|
4891
|
+
export { AssertionError, AssignTag, BlockTag, BreakTag, CaptureTag, CaseTag, CommentTag, Context, ContinueTag, CycleTag, DecrementTag, Drop, EchoTag, Expression, Filter, ForTag, Hash, IfTag, IncludeTag, IncrementTag, InlineCommentTag, LayoutTag, Liquid, LiquidError, LiquidTag, Output, ParseError, ParseStream, Parser, RawTag, RenderError, RenderTag, TablerowTag, Tag, TagToken, Token, TokenKind, TokenizationError, Tokenizer, typeGuards as TypeGuards, UndefinedVariableError, UnlessTag, Value, Variable, analyze, analyzeSync, assert, createTrie, defaultOperators, defaultOptions, evalQuotedToken, evalToken, filters, isFalsy, isTruthy, tags, toPromise, toValue, toValueSync, version };
|