@vivliostyle/cli 10.2.1 → 10.3.0
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/dist/{chunk-CKXFRCPH.js → chunk-3QOSSWIX.js} +129 -7
- package/dist/chunk-3QOSSWIX.js.map +1 -0
- package/dist/{chunk-5MEUINC4.js → chunk-ALY3QX7K.js} +530 -51
- package/dist/chunk-ALY3QX7K.js.map +1 -0
- package/dist/{chunk-E6QVHS6D.js → chunk-ECEGM36O.js} +2 -1
- package/dist/chunk-ECEGM36O.js.map +1 -0
- package/dist/{chunk-37OLZSNI.js → chunk-NVNEYZ3J.js} +4 -4
- package/dist/{chunk-O3CBPX4R.js → chunk-QLK3XMQI.js} +3 -3
- package/dist/{chunk-XMCTTVR7.js → chunk-RBKPG6VU.js} +2 -2
- package/dist/{chunk-T2VWLU2I.js → chunk-RILZCPJE.js} +5 -3
- package/dist/chunk-RILZCPJE.js.map +1 -0
- package/dist/{chunk-62AC6XGJ.js → chunk-WIGLU3EK.js} +4 -4
- package/dist/{chunk-BR2V7MHE.js → chunk-YNX6D2I6.js} +207 -53
- package/dist/chunk-YNX6D2I6.js.map +1 -0
- package/dist/commands/build.js +7 -7
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/create.js +3 -3
- package/dist/commands/init.js +3 -3
- package/dist/commands/preview.js +6 -6
- package/dist/config/schema.d.ts +23108 -23138
- package/dist/config/schema.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/node-modules.d.ts +3 -1
- package/dist/node-modules.js +1 -1
- package/dist/vite-adapter.js +5 -5
- package/package.json +4 -3
- package/dist/chunk-5MEUINC4.js.map +0 -1
- package/dist/chunk-BR2V7MHE.js.map +0 -1
- package/dist/chunk-CKXFRCPH.js.map +0 -1
- package/dist/chunk-E6QVHS6D.js.map +0 -1
- package/dist/chunk-T2VWLU2I.js.map +0 -1
- /package/dist/{chunk-37OLZSNI.js.map → chunk-NVNEYZ3J.js.map} +0 -0
- /package/dist/{chunk-O3CBPX4R.js.map → chunk-QLK3XMQI.js.map} +0 -0
- /package/dist/{chunk-XMCTTVR7.js.map → chunk-RBKPG6VU.js.map} +0 -0
- /package/dist/{chunk-62AC6XGJ.js.map → chunk-WIGLU3EK.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/schema.ts"],"sourcesContent":["import type { Metadata, StringifyMarkdownOptions } from '@vivliostyle/vfm';\nimport { satisfies as semverSatisfies } from 'semver';\nimport type { Processor } from 'unified';\nimport upath from 'upath';\nimport * as v from 'valibot';\nimport { cliVersion, CONTAINER_URL } from '../const.js';\nimport type { LoggerInterface } from '../logger.js';\n\nconst $ = (strings: TemplateStringsArray, ...values: any[]) => {\n const lines = String.raw({ raw: strings }, ...values).split('\\n');\n const indent = lines\n .filter((line) => line.trim())\n .map((line) => line.match(/^\\s*/)?.[0].length ?? 0)\n .reduce((min, len) => Math.min(min, len), Infinity);\n return lines\n .map((line) => line.slice(indent))\n .join('\\n')\n .trim();\n};\n\n/**\n * @see https://github.com/vivliostyle/vivliostyle-cli/blob/main/docs/config.md\n */\nexport type StructuredDocument = {\n title: string;\n href: string;\n children: StructuredDocument[];\n sections?: StructuredDocumentSection[];\n};\n/** @hidden */\nexport const StructuredDocument: v.GenericSchema<StructuredDocument> = v.pipe(\n v.object({\n title: v.string(),\n href: v.string(),\n children: v.array(v.lazy(() => StructuredDocument)),\n sections: v.optional(v.array(v.lazy(() => StructuredDocumentSection))),\n }),\n v.title('StructuredDocument'),\n);\n\n/**\n * @see https://github.com/vivliostyle/vivliostyle-cli/blob/main/docs/config.md\n */\nexport type StructuredDocumentSection = {\n headingHtml: string;\n headingText: string;\n level: number;\n children: StructuredDocumentSection[];\n href?: string;\n id?: string;\n};\n/** @hidden */\nexport const StructuredDocumentSection: v.GenericSchema<StructuredDocumentSection> =\n v.pipe(\n v.object({\n headingHtml: v.string(),\n headingText: v.string(),\n level: v.number(),\n children: v.array(v.lazy(() => StructuredDocumentSection)),\n href: v.optional(v.string()),\n id: v.optional(v.string()),\n }),\n v.title('StructuredDocumentSection'),\n );\n\nexport const ValidString = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1, 'At least one character is required'),\n);\n\nexport const DocumentProcessorSchema = v.pipe(\n v.function() as v.GenericSchema<\n (option: StringifyMarkdownOptions, metadata: Metadata) => Processor\n >,\n v.metadata({\n typeString:\n '(option: import(\"@vivliostyle/vfm\").StringifyMarkdownOptions, metadata: import(\"@vivliostyle/vfm\").Metadata) => import(\"unified\").Processor',\n }),\n v.description($`\n Custom function to provide a unified Processor for converting the source document to HTML.\n `),\n);\n\nexport const DocumentMetadataReaderSchema = v.pipe(\n v.function() as v.GenericSchema<(content: string) => Metadata>,\n v.metadata({\n typeString: '(content: string) => import(\"@vivliostyle/vfm\").Metadata',\n }),\n v.description($`\n Custom function to extract metadata from the source document content.\n `),\n);\n\nexport const ThemeConfig = v.pipe(\n v.intersect([\n v.required(\n v.object({\n specifier: v.pipe(\n ValidString,\n v.description($`\n The specifier name for importing the theme package or the path to a CSS file.\n - An npm-style package argument is allowed (e.g., \\`@vivliostyle/theme-academic@1\\`, \\`./local-pkg\\`).\n - A URL or a local path to a CSS file is allowed (e.g., \\`./style.css\\`, \\`https://example.com/style.css\\`).\n `),\n ),\n }),\n 'Missing required field: specifier',\n ),\n v.partial(\n v.object({\n import: v.pipe(\n v.union([v.array(ValidString), ValidString]),\n v.transform((input) => [input].flat()),\n v.description($`\n The path(s) to the CSS file(s) to import from the package.\n Specify this if you want to import files other than the default.\n `),\n ),\n }),\n ),\n ]),\n v.title('ThemeConfig'),\n);\nexport type ThemeConfig = v.InferInput<typeof ThemeConfig>;\n\nexport const ThemeSpecifier = v.pipe(\n v.union([\n v.array(v.union([ThemeConfig, ValidString])),\n ThemeConfig,\n ValidString,\n ]),\n v.transform((input) =>\n [input]\n .flat()\n .map((item) => (typeof item === 'string' ? { specifier: item } : item)),\n ),\n);\nexport type ThemeSpecifier = v.InferInput<typeof ThemeSpecifier>;\n\nexport const ArticleEntryConfig = v.pipe(\n v.required(\n v.object({\n path: ValidString,\n output: v.optional(ValidString),\n title: v.optional(ValidString),\n theme: v.optional(ThemeSpecifier),\n encodingFormat: v.optional(ValidString),\n rel: v.optional(\n v.pipe(\n v.union([v.array(ValidString), ValidString]),\n v.transform((input) => [input].flat()),\n ),\n ),\n documentProcessor: v.optional(DocumentProcessorSchema),\n documentMetadataReader: v.optional(DocumentMetadataReaderSchema),\n }),\n ['path'],\n 'Missing required field: path',\n ),\n v.title('ArticleEntryConfig'),\n);\nexport type ArticleEntryConfig = v.InferInput<typeof ArticleEntryConfig>;\n\nconst PageBreak = v.union([\n v.literal('left'),\n v.literal('right'),\n v.literal('recto'),\n v.literal('verso'),\n]);\n\nexport const ContentsEntryConfig = v.pipe(\n v.object({\n rel: v.literal('contents'),\n path: v.optional(ValidString),\n output: v.optional(ValidString),\n title: v.optional(ValidString),\n theme: v.optional(ThemeSpecifier),\n pageBreakBefore: v.pipe(\n v.optional(PageBreak),\n v.description($`\n Specifies the page break position before this document.\n Useful for determining which side the first page of the document should be placed on in a two-page spread.\n `),\n ),\n pageCounterReset: v.pipe(\n v.optional(v.pipe(v.number(), v.safeInteger())),\n v.description($`\n Resets the starting page number of this document to the specified integer.\n Useful for controlling page numbers when including a page.\n `),\n ),\n }),\n v.title('ContentsEntryConfig'),\n);\nexport type ContentsEntryConfig = v.InferInput<typeof ContentsEntryConfig>;\n\nexport const CoverEntryConfig = v.pipe(\n v.object({\n rel: v.literal('cover'),\n path: v.optional(ValidString),\n output: v.optional(ValidString),\n title: v.optional(ValidString),\n theme: v.optional(ThemeSpecifier),\n imageSrc: v.optional(ValidString),\n imageAlt: v.optional(v.string()), // Allow empty string\n pageBreakBefore: v.pipe(\n v.optional(PageBreak),\n v.description($`\n Specifies the page break position before this document.\n Useful for determining which side the first page of the document should be placed on in a two-page spread.\n `),\n ),\n }),\n v.title('CoverEntryConfig'),\n);\nexport type CoverEntryConfig = v.InferInput<typeof CoverEntryConfig>;\n\nexport const EntryConfig = v.union([\n ContentsEntryConfig,\n CoverEntryConfig,\n ArticleEntryConfig,\n]);\nexport type EntryConfig = v.InferInput<typeof EntryConfig>;\n\nexport const OutputFormat = v.union([\n v.literal('pdf'),\n v.literal('epub'),\n v.literal('webpub'),\n]);\nexport type OutputFormat = v.InferInput<typeof OutputFormat>;\n\nexport const RenderMode = v.union([v.literal('local'), v.literal('docker')]);\nexport type RenderMode = v.InferInput<typeof RenderMode>;\n\nexport const OutputConfig = v.pipe(\n v.intersect([\n v.required(\n v.object({\n path: v.pipe(\n ValidString,\n v.description($`\n Specifies the output file name or directory. (default: \\`<title>.pdf\\`)\n `),\n ),\n }),\n 'Missing required field: path',\n ),\n v.partial(\n v.object({\n format: v.pipe(\n OutputFormat,\n v.description($`\n Specifies the output format.\n `),\n ),\n renderMode: v.pipe(\n RenderMode,\n v.description($`\n If set to \\`docker\\`, Vivliostyle will render the PDF using a Docker container. (default: \\`local\\`)\n `),\n ),\n preflight: v.pipe(\n v.union([v.literal('press-ready'), v.literal('press-ready-local')]),\n v.description($`\n Apply the process to generate a print-ready PDF.\n `),\n ),\n preflightOption: v.pipe(\n v.array(ValidString),\n v.description($`\n Options for the preflight process (e.g., \\`gray-scale\\`, \\`enforce-outline\\`).\n Refer to the press-ready documentation for more information: [press-ready](https://github.com/vibranthq/press-ready)\n `),\n ),\n }),\n ),\n ]),\n v.title('OutputConfig'),\n);\nexport type OutputConfig = v.InferInput<typeof OutputConfig>;\n\n// Use v.looseObject to allow unknown keys in future VFM versions\nexport const VfmReplaceRule = v.looseObject({\n test: v.instance(RegExp),\n match: v.pipe(\n v.function() as v.GenericSchema<\n (result: RegExpMatchArray, h: any) => Object | string\n >,\n // https://github.com/fabian-hiller/valibot/issues/243\n v.metadata({\n typeString: '(result: RegExpMatchArray, h: any) => Object | string',\n }),\n ),\n});\nexport type VfmReplaceRule = v.InferInput<typeof VfmReplaceRule>;\n\nexport const BrowserType = v.union([\n v.literal('chrome'),\n v.literal('chromium'),\n v.literal('firefox'),\n]);\nexport type BrowserType = v.InferInput<typeof BrowserType>;\n\nexport const ReadingProgression = v.union([v.literal('ltr'), v.literal('rtl')]);\nexport type ReadingProgression = v.InferInput<typeof ReadingProgression>;\n\nexport const LogLevel = v.union([\n v.literal('silent'),\n v.literal('info'),\n v.literal('verbose'),\n v.literal('debug'),\n]);\nexport type LogLevel = v.InferInput<typeof LogLevel>;\n\nconst notAllowedPatternRe = /(^\\s*[/\\\\]|^(.*[/\\\\])?\\s*\\.\\.\\s*([/\\\\].*)?$)/g;\nconst validateAssetPatternSettings = (propName: string) =>\n v.check<string[], string>(\n (input) => input.every((pattern) => !notAllowedPatternRe.test(pattern)),\n `Invalid pattern was found in copyAsset.${propName} option`,\n );\n\n// See the special characters of glob pattern\n// https://github.com/micromatch/picomatch\nconst notAllowedExtensionRe = /([\\\\/*?@+!|(){}[\\]]|\\.\\.|^\\s*\\.)/g;\nconst validateAssetExtensionSettings = (propName: string) =>\n v.check<string[], string>(\n (input) => input.every((pattern) => !notAllowedExtensionRe.test(pattern)),\n `Invalid pattern was found in copyAsset.${propName} option`,\n );\n\nconst validateBrowserTagFormat = v.check<string, string>((input) => {\n const [type] = input.split('@');\n return v.is(BrowserType, type);\n}, 'Unknown browser type');\nconst parseBrowserTagFormat = v.transform<\n string,\n { type: BrowserType; tag?: string }\n>((input) => {\n const [type, tag] = input.split('@');\n return { type: v.parse(BrowserType, type), tag };\n});\n\nexport const CopyAssetConfig = v.pipe(\n v.partial(\n v.object({\n includes: v.pipe(\n v.array(ValidString),\n validateAssetPatternSettings('includes'),\n v.description($`\n Directories and files to include as asset files. Supports wildcard characters for glob patterns.\n `),\n ),\n excludes: v.pipe(\n v.array(ValidString),\n validateAssetPatternSettings('excludes'),\n v.description($`\n Directories and files to exclude from asset files. Supports wildcard characters for glob patterns.\n `),\n ),\n includeFileExtensions: v.pipe(\n v.array(ValidString),\n validateAssetExtensionSettings('includeFileExtensions'),\n v.description($`\n File extensions to include as asset files. (default: \\`[css, css.map, png, jpg, jpeg, svg, gif, webp, apng, ttf, otf, woff, woff2]\\`)\n `),\n ),\n excludeFileExtensions: v.pipe(\n v.array(ValidString),\n validateAssetExtensionSettings('excludeFileExtensions'),\n v.description($`\n File extensions to exclude from asset files.\n `),\n ),\n }),\n ),\n v.title('CopyAssetConfig'),\n);\nexport type CopyAssetConfig = v.InferInput<typeof CopyAssetConfig>;\n\nexport const TocConfig = v.pipe(\n v.partial(\n v.object({\n title: v.pipe(\n ValidString,\n v.description($`\n Title of the generated ToC document.\n `),\n ),\n htmlPath: v.pipe(\n ValidString,\n v.description($`\n Location where the generated ToC document will be saved. (default: \\`index.html\\`)\n `),\n ),\n sectionDepth: v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(6),\n v.description($`\n Depth of sections to include in the ToC document. (default: \\`0\\`)\n `),\n ),\n transformDocumentList: v.pipe(\n v.function() as v.GenericSchema<\n (\n nodeList: StructuredDocument[],\n ) => (propsList: { children: any }[]) => any\n >,\n v.metadata({\n typeString:\n '(nodeList: StructuredDocument[]) => (propsList: { children: any }[]) => any',\n typeReferences: [StructuredDocument],\n }),\n v.description($`\n Function to transform the document list.\n `),\n ),\n transformSectionList: v.pipe(\n v.function() as v.GenericSchema<\n (\n nodeList: StructuredDocumentSection[],\n ) => (propsList: { children: any }[]) => any\n >,\n v.metadata({\n typeString:\n '(nodeList: StructuredDocumentSection[]) => (propsList: { children: any }[]) => any',\n typeReferences: [StructuredDocumentSection],\n }),\n v.description($`\n Function to transform the section list.\n `),\n ),\n }),\n ),\n v.title('TocConfig'),\n);\nexport type TocConfig = v.InferInput<typeof TocConfig>;\n\nexport const CoverConfig = v.pipe(\n v.intersect([\n v.required(\n v.object({\n src: v.pipe(\n ValidString,\n v.description($`\n Path to the cover image for the cover page.\n `),\n ),\n }),\n 'Missing required field: src',\n ),\n v.partial(\n v.object({\n name: v.pipe(\n v.string(), // Allow empty string\n v.description($`\n Alternative text for the cover image.\n `),\n ),\n htmlPath: v.pipe(\n v.union([ValidString, v.boolean()]),\n v.description($`\n Path where the generated cover document will be saved. (default: \\`cover.html\\`)\n If set to a falsy value, the cover document will not be generated.\n `),\n ),\n }),\n ),\n ]),\n v.title('CoverConfig'),\n);\nexport type CoverConfig = v.InferInput<typeof CoverConfig>;\n\nconst VfmConfig = v.pipe(\n v.partial(\n // Use v.looseObject to allow unknown keys in future VFM versions\n v.looseObject({\n style: v.pipe(\n v.union([v.array(ValidString), ValidString]),\n\n v.transform((input) => [input].flat()),\n v.description($`\n Path(s) or URL(s) to custom stylesheets.\n `),\n ),\n partial: v.pipe(\n v.boolean(),\n v.description($`\n Output markdown fragments instead of a full document.\n `),\n ),\n title: v.pipe(\n ValidString,\n v.description($`\n Title of the document (ignored in partial mode).\n `),\n ),\n language: v.pipe(\n ValidString,\n v.description($`\n Language of the document (ignored in partial mode).\n `),\n ),\n replace: v.pipe(\n v.array(VfmReplaceRule),\n v.description($`\n Handlers for replacing matched HTML strings.\n `),\n ),\n hardLineBreaks: v.pipe(\n v.boolean(),\n v.description($`\n Insert \\`<br>\\` tags at hard line breaks without requiring spaces.\n `),\n ),\n disableFormatHtml: v.pipe(\n v.boolean(),\n v.description($`\n Disable automatic HTML formatting.\n `),\n ),\n math: v.pipe(\n v.boolean(),\n v.description($`\n Enable support for math syntax.\n `),\n ),\n }),\n ),\n v.title('VfmConfig'),\n);\nexport type VfmConfig = v.InferInput<typeof VfmConfig>;\n\nexport const ServerConfig = v.pipe(\n v.partial(\n v.object({\n host: v.pipe(\n v.union([v.boolean(), ValidString]),\n v.description($`\n IP address the server should listen on.\n Set to \\`true\\` to listen on all addresses.\n (default: \\`true\\` if a PDF build with Docker render mode is required, otherwise \\`false\\`)\n `),\n ),\n port: v.pipe(\n v.number(),\n v.minValue(0),\n v.maxValue(65535),\n v.description($`\n Port the server should listen on. (default: \\`13000\\`)\n `),\n ),\n proxy: v.pipe(\n v.record(\n ValidString,\n v.union([\n v.pipe(\n v.custom<import('vite').ProxyOptions>((value) =>\n Boolean(value && typeof value === 'object'),\n ),\n v.metadata({\n typeString: 'import(\"vite\").ProxyOptions',\n }),\n ),\n ValidString,\n ]),\n ),\n v.description($`\n Custom proxy rules for the Vivliostyle preview server.\n `),\n ),\n allowedHosts: v.pipe(\n v.union([v.array(ValidString), v.boolean()]),\n v.description($`\n The hostnames that are allowed to respond to.\n Set to \\`true\\` to allow all hostnames.\n See [\\`server.allowedHosts\\` option of Vite](https://vite.dev/config/server-options.html#server-allowedhosts) for more details.\n `),\n ),\n }),\n ),\n v.title('ServerConfig'),\n);\nexport type ServerConfig = v.InferInput<typeof ServerConfig>;\n\nexport const BuildTask = v.pipe(\n v.intersect([\n v.required(\n v.object({\n entry: v.pipe(\n v.union([\n v.pipe(\n v.array(v.union([ValidString, EntryConfig])),\n v.minLength(1, 'At least one entry is required'),\n ),\n ArticleEntryConfig,\n ValidString,\n ]),\n v.transform((input) =>\n [input]\n .flat()\n .map((item) =>\n typeof item === 'string' ? { path: item } : item,\n ),\n ),\n v.description($`\n Entry file(s) of the document.\n `),\n ),\n }),\n 'Missing required field: entry',\n ),\n v.partial(\n v.object({\n title: v.pipe(\n ValidString,\n v.description($`\n Title of the document.\n `),\n ),\n author: v.pipe(\n ValidString,\n v.description($`\n Author of the document.\n `),\n ),\n theme: v.pipe(\n ThemeSpecifier,\n v.description($`\n Theme package path(s) or URL(s) of the CSS file.\n `),\n ),\n entryContext: v.pipe(\n ValidString,\n v.description($`\n Directory containing the referenced entry file(s).\n `),\n ),\n output: v.pipe(\n v.union([\n v.array(v.union([OutputConfig, ValidString])),\n OutputConfig,\n ValidString,\n ]),\n v.transform((input): (OutputConfig & { format: OutputFormat })[] =>\n [input].flat().map((item) => {\n const obj = typeof item === 'string' ? { path: item } : item;\n const ext = upath.extname(obj.path).toLowerCase();\n return {\n ...obj,\n format:\n obj.format ||\n (ext === '.pdf'\n ? 'pdf'\n : ext === '.epub'\n ? 'epub'\n : 'webpub'),\n };\n }),\n ),\n v.description($`\n Output options.\n `),\n ),\n workspaceDir: v.pipe(\n ValidString,\n v.description($`\n Directory where intermediate files (e.g., manuscript HTMLs, publication.json) are saved. (default: \\`.vivliostyle\\`)\n `),\n ),\n /** @deprecated */\n includeAssets: v.pipe(\n v.union([v.array(ValidString), ValidString]),\n v.transform((input) => [input].flat()),\n v.metadata({ deprecated: true }),\n v.description($`\n Use \\`copyAsset.includes\\` instead.\n `),\n ),\n copyAsset: v.pipe(\n v.union([CopyAssetConfig]),\n v.description($`\n Options for asset files to be copied when exporting output.\n `),\n ),\n size: v.pipe(\n ValidString,\n v.description($`\n PDF output size. (default: \\`letter\\`)\n - Preset: \\`A5\\`, \\`A4\\`, \\`A3\\`, \\`B5\\`, \\`B4\\`, \\`JIS-B5\\`, \\`JIS-B4\\`, \\`letter\\`, \\`legal\\`, \\`ledger\\`\n - Custom (comma-separated): \\`182mm,257mm\\` or \\`8.5in,11in\\`\n `),\n ),\n pressReady: v.pipe(\n v.boolean(),\n v.description($`\n Generate a press-ready PDF compatible with PDF/X-1a. (default: \\`false\\`)\n This option is equivalent to setting \\`\"preflight\": \"press-ready\"\\`.\n `),\n ),\n language: v.pipe(\n ValidString,\n v.description($`\n Language of the document.\n `),\n ),\n readingProgression: v.pipe(\n ReadingProgression,\n v.description($`\n Specifies the reading progression of the document.\n This is typically determined automatically by the CSS writing-mode.\n Use this option only if explicit configuration is needed.\n `),\n ),\n toc: v.pipe(\n v.union([TocConfig, v.boolean(), ValidString]),\n v.transform((input) =>\n typeof input === 'string'\n ? { htmlPath: input }\n : input === true\n ? {}\n : input || undefined,\n ),\n v.description($`\n Options for Table of Contents (ToC) documents.\n `),\n ),\n /** @deprecated */\n tocTitle: v.pipe(\n ValidString,\n v.metadata({ deprecated: true }),\n v.description($`\n Use \\`toc.title\\` instead\n `),\n ),\n cover: v.pipe(\n v.union([CoverConfig, ValidString]),\n v.transform((input) =>\n typeof input === 'string' ? { src: input } : input,\n ),\n v.description($`\n Options for cover images and cover page documents.\n `),\n ),\n timeout: v.pipe(\n v.number(),\n v.minValue(0),\n v.description($`\n Timeout limit for waiting for the Vivliostyle process (in ms). (default: \\`300000\\`)\n `),\n ),\n documentProcessor: DocumentProcessorSchema,\n documentMetadataReader: DocumentMetadataReaderSchema,\n vfm: v.pipe(\n v.union([VfmConfig]),\n v.description($`\n Options for converting Markdown into a stringified format (HTML).\n `),\n ),\n image: v.pipe(\n ValidString,\n v.check((value) => {\n const [url, version] = value.split(':');\n if (url !== CONTAINER_URL || !/^\\d+(\\.\\d+){0,2}$/.test(version)) {\n return true;\n }\n return semverSatisfies(cliVersion, version);\n }, `The specified image is not compatible with the CLI version ${cliVersion}. Please check the image version.`),\n v.description($`\n Docker image used for rendering.\n `),\n ),\n /** @deprecated */\n http: v.pipe(\n v.boolean(),\n v.metadata({ deprecated: true }),\n v.description($`\n This option is enabled by default, and the file protocol is no longer supported.\n `),\n ),\n viewer: v.pipe(\n ValidString,\n v.description($`\n URL of a custom viewer to display content instead of the default Vivliostyle CLI viewer.\n Useful for using a custom viewer with staging features (e.g., \\`https://vivliostyle.vercel.app/\\`).\n `),\n ),\n viewerParam: v.pipe(\n ValidString,\n v.description($`\n Parameters for the Vivliostyle viewer (e.g., \\`allowScripts=false&pixelRatio=16\\`).\n `),\n ),\n browser: v.pipe(\n ValidString,\n validateBrowserTagFormat,\n parseBrowserTagFormat,\n v.description($`\n Specify a browser type and version to launch the Vivliostyle viewer.\n `),\n ),\n base: v.pipe(\n ValidString,\n v.regex(/^\\//, 'Base path must start with a slash'),\n v.check((value) => value !== '/', 'Base path must not be root'),\n v.transform((value) => value.replace(/(?!^)\\/+$/, '')),\n v.description($`\n Base path of the served documents. (default: \\`/vivliostyle\\`)\n `),\n ),\n server: v.pipe(\n v.union([ServerConfig]),\n v.description($`\n Options for the preview server.\n `),\n ),\n static: v.pipe(\n v.record(\n v.pipe(\n ValidString,\n v.regex(/^\\//, 'Base path must start with a slash'),\n v.transform((value) => value.replace(/(?!^)\\/+$/, '')),\n ),\n v.pipe(\n v.union([v.array(ValidString), ValidString]),\n v.transform((input) => [input].flat()),\n ),\n ),\n v.description($`\n Specifies static files to be served by the preview server.\n \\`\\`\\`js\n export default {\n static: {\n '/static': 'path/to/static',\n '/': ['root1', 'root2'],\n },\n };\n \\`\\`\\`\n `),\n v.transform((input) => {\n return input;\n }),\n ),\n temporaryFilePrefix: v.pipe(\n ValidString,\n v.description($`\n Prefix for temporary file names.\n `),\n ),\n vite: v.pipe(\n v.custom<import('vite').UserConfig>(() => true),\n v.metadata({\n typeString: 'import(\"vite\").UserConfig',\n }),\n v.description($`\n Configuration options for the Vite server.\n `),\n ),\n viteConfigFile: v.pipe(\n v.union([ValidString, v.boolean()]),\n v.description($`\n Path to the Vite config file.\n If a falsy value is provided, Vivliostyle CLI ignores the existing Vite config file.\n `),\n ),\n }),\n ),\n ]),\n v.title('BuildTask'),\n);\nexport type BuildTask = v.InferInput<typeof BuildTask>;\nexport type ParsedBuildTask = v.InferOutput<typeof BuildTask>;\n\n/** @hidden */\nexport const VivliostyleConfigSchema = v.pipe(\n v.union([\n v.pipe(\n v.array(BuildTask),\n v.minLength(1, 'At least one config entry is required'),\n ),\n BuildTask,\n ]),\n v.transform(\n (\n input,\n ): {\n tasks: ParsedBuildTask[];\n inlineOptions: InlineOptions;\n } => ({\n tasks: [input].flat(),\n inlineOptions: {},\n }),\n ),\n v.title('VivliostyleConfigSchema'),\n);\n/**\n * @see https://github.com/vivliostyle/vivliostyle-cli/blob/main/docs/config.md\n */\nexport type VivliostyleConfigSchema = v.InferInput<\n typeof VivliostyleConfigSchema\n>;\nexport type ParsedVivliostyleConfigSchema = v.InferOutput<\n typeof VivliostyleConfigSchema\n>;\n\nexport type InputFormat =\n | 'markdown'\n | 'webbook'\n | 'pub-manifest'\n | 'epub'\n | 'epub-opf';\n\nexport const VivliostyleInlineConfigWithoutChecks = v.partial(\n v.object({\n cwd: v.pipe(\n ValidString,\n v.description($`\n Set a working directory.\n `),\n ),\n config: v.pipe(\n ValidString,\n v.description($`\n Path to vivliostyle.config.js.\n `),\n ),\n configData: v.pipe(\n v.custom<VivliostyleConfigSchema | null | undefined>(() => true),\n v.metadata({\n typeString: 'VivliostyleConfigSchema',\n }),\n v.description($`\n Vivliostyle config object.\n `),\n ),\n input: v.pipe(\n ValidString,\n v.transform((input): { format: InputFormat; entry: string } => {\n const ext = upath.extname(input).toLowerCase();\n if (/^(https?|data):/.test(input)) {\n return { format: 'webbook', entry: input };\n } else if (ext === '.md' || ext === '.markdown') {\n return { format: 'markdown', entry: input };\n } else if (ext === '.json' || ext === '.jsonld') {\n return { format: 'pub-manifest', entry: input };\n } else if (ext === '.epub') {\n return { format: 'epub', entry: input };\n } else if (ext === '.opf') {\n return { format: 'epub-opf', entry: input };\n } else if (['.html', '.htm', '.xhtml', '.xht'].includes(ext)) {\n return { format: 'webbook', entry: input };\n }\n throw new Error(`Cannot detect an input format: ${input}`);\n }),\n v.description($`\n Input file of document.\n `),\n ),\n output: v.pipe(\n v.union([\n v.array(v.union([OutputConfig, ValidString])),\n OutputConfig,\n ValidString,\n ]),\n v.transform((input): (OutputConfig & { format: OutputFormat })[] =>\n [input].flat().map((item) => {\n const obj = typeof item === 'string' ? { path: item } : item;\n const ext = upath.extname(obj.path).toLowerCase();\n return {\n ...obj,\n format:\n obj.format ||\n (ext === '.pdf' ? 'pdf' : ext === '.epub' ? 'epub' : 'webpub'),\n };\n }),\n ),\n v.description($`\n Output file name or directory.\n `),\n ),\n theme: v.pipe(\n ThemeSpecifier,\n v.description($`\n Theme path or package name.\n `),\n ),\n size: v.pipe(\n ValidString,\n v.description($`\n Output pdf size.\n preset: A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger\n custom(comma separated): 182mm,257mm or 8.5in,11in\n `),\n ),\n cropMarks: v.pipe(\n v.boolean(),\n v.description($`\n Print crop marks.\n `),\n ),\n bleed: v.pipe(\n ValidString,\n v.description($`\n Extent of the bleed area for printing with crop marks. [3mm]\n `),\n ),\n cropOffset: v.pipe(\n ValidString,\n v.description($`\n Distance between the edge of the trim size and the edge of the media size. [auto (13mm + bleed)]\n `),\n ),\n css: v.pipe(\n ValidString,\n v.description($`\n Custom style CSS code. (ex: \":root {--my-color: lime;}\")\n `),\n ),\n style: v.pipe(\n ValidString,\n v.description($`\n Additional stylesheet URL or path.\n `),\n ),\n userStyle: v.pipe(\n ValidString,\n v.description($`\n User stylesheet URL or path.\n `),\n ),\n singleDoc: v.pipe(\n v.boolean(),\n v.description($`\n Single HTML document input.\n `),\n ),\n quick: v.pipe(\n v.boolean(),\n v.description($`\n Quick loading with rough page count.\n `),\n ),\n pressReady: v.pipe(\n v.boolean(),\n v.description($`\n Make generated PDF compatible with press ready PDF/X-1a.\n This option is equivalent with \"preflight\": \"press-ready\"\n `),\n ),\n title: v.pipe(ValidString, v.description($`Title`)),\n author: v.pipe(ValidString, v.description($`Author`)),\n language: v.pipe(ValidString, v.description($`Language`)),\n readingProgression: v.pipe(\n ReadingProgression,\n v.description($`\n Direction of reading progression.\n `),\n ),\n timeout: v.pipe(\n v.number(),\n v.minValue(0),\n v.description($`\n Timeout limit for waiting Vivliostyle process (ms).\n `),\n ),\n renderMode: v.pipe(\n RenderMode,\n v.description($`\n If docker is set, Vivliostyle try to render PDF on Docker container. [local]\n `),\n ),\n preflight: v.pipe(\n v.union([v.literal('press-ready'), v.literal('press-ready-local')]),\n v.description($`\n Apply the process to generate PDF for printing.\n `),\n ),\n preflightOption: v.pipe(\n v.union([v.array(ValidString), ValidString]),\n v.transform((input) => [input].flat()),\n v.description($`\n Options for preflight process (ex: gray-scale, enforce-outline).\n Please refer the document of press-ready for further information.\n `),\n ),\n sandbox: v.pipe(v.boolean(), v.description($`Launch chrome with sandbox.`)),\n executableBrowser: v.pipe(\n ValidString,\n v.description($`\n Specify a path of executable browser you installed.\n `),\n ),\n image: v.pipe(\n ValidString,\n v.description($`\n Specify a docker image to render.\n `),\n ),\n viewer: v.pipe(\n ValidString,\n v.description($`\n Specify a URL of displaying viewer instead of vivliostyle-cli's one.\n It is useful that using own viewer that has staging features. (ex: https://vivliostyle.vercel.app/)\n `),\n ),\n viewerParam: v.pipe(\n ValidString,\n v.description($`\n Specify viewer parameters. (ex: \"allowScripts=false&pixelRatio=16\")\n `),\n ),\n browser: v.pipe(\n ValidString,\n validateBrowserTagFormat,\n parseBrowserTagFormat,\n v.description($`\n Specify a browser type and version to launch the Vivliostyle viewer. [chrome]\n `),\n ),\n proxyServer: v.pipe(\n ValidString,\n v.description($`\n HTTP/SOCK proxy server url for underlying Playwright.\n `),\n ),\n proxyBypass: v.pipe(\n ValidString,\n v.description($`\n Optional comma-separated domains to bypass proxy.\n `),\n ),\n proxyUser: v.pipe(\n ValidString,\n v.description($`\n Optional username for HTTP proxy authentication.\n `),\n ),\n proxyPass: v.pipe(\n ValidString,\n v.description($`\n Optional password for HTTP proxy authentication.\n `),\n ),\n logLevel: v.pipe(\n LogLevel,\n v.description($`\n Specify a log level of console outputs.\n `),\n ),\n ignoreHttpsErrors: v.pipe(\n v.boolean(),\n v.description($`\n true to ignore HTTPS errors when Playwright browser opens a new page.\n `),\n ),\n openViewer: v.pipe(\n v.boolean(),\n v.description($`\n Open a browser to display the document preview.\n `),\n ),\n enableStaticServe: v.pipe(\n v.boolean(),\n v.description($`\n Enable static file serving as configured in the Vivliostyle config file.\n `),\n ),\n enableViewerStartPage: v.pipe(\n v.boolean(),\n v.description($`\n Open a start page of the viewer when the input file is not specified.\n `),\n ),\n vite: v.pipe(\n v.custom<import('vite').UserConfig>(() => true),\n v.metadata({\n typeString: 'import(\"vite\").UserConfig',\n }),\n v.description($`\n Configuration options for the Vite server.\n `),\n ),\n viteConfigFile: v.pipe(\n v.union([ValidString, v.boolean()]),\n v.description($`\n Path to the Vite config file.\n If a falsy value is provided, Vivliostyle CLI ignores the existing Vite config file.\n `),\n ),\n host: v.pipe(\n v.union([v.boolean(), ValidString]),\n v.description($`\n IP address the server should listen on.\n Set to \\`true\\` to listen on all addresses.\n (default: \\`true\\` if a PDF build with Docker render mode is required, otherwise \\`false\\`)\n `),\n ),\n port: v.pipe(\n v.number(),\n v.minValue(0),\n v.maxValue(65535),\n v.description($`\n Port the server should listen on. (default: \\`13000\\`)\n `),\n ),\n logger: v.pipe(\n v.custom<LoggerInterface>(() => true),\n v.metadata({\n typeString: 'LoggerInterface',\n }),\n v.description($`\n Custom logger interface.\n `),\n ),\n disableServerStartup: v.pipe(\n v.boolean(),\n v.description($`\n Disable the startup of the preview server during the build process.\n `),\n ),\n projectPath: v.pipe(\n ValidString,\n v.description($`\n Path of the Vivliostyle project to create.\n `),\n ),\n template: v.pipe(\n ValidString,\n v.description($`\n Template source in format of \\`[provider]:repo[/subpath][#ref]\\`.\n `),\n ),\n createConfigFileOnly: v.pipe(\n v.boolean(),\n v.description($`\n Create a Vivliostyle config file without generating project template files.\n `),\n ),\n stdin: v.pipe(\n v.custom<import('node:stream').Readable>(() => true),\n v.metadata({\n typeString: 'import(\"node:stream\").Readable',\n }),\n v.description($`\n Readable stream for stdin input.\n `),\n ),\n stdout: v.pipe(\n v.custom<import('node:stream').Writable>(() => true),\n v.metadata({\n typeString: 'import(\"node:stream\").Writable',\n }),\n v.description($`\n Writable stream for stdout output.\n `),\n ),\n stderr: v.pipe(\n v.custom<import('node:stream').Writable>(() => true),\n v.metadata({\n typeString: 'import(\"node:stream\").Writable',\n }),\n v.description($`\n Writable stream for stderr output.\n `),\n ),\n signal: v.pipe(\n v.custom<AbortSignal>(() => true),\n v.description($`\n AbortSignal to cancel the operation.\n `),\n ),\n }),\n);\n\nexport const VivliostyleInlineConfig = v.pipe(\n VivliostyleInlineConfigWithoutChecks,\n v.check(\n (options) =>\n !options.input ||\n !options.output ||\n !['epub', 'epub-opf'].includes(options.input.format) ||\n options.output.every((o) => o.format !== 'webpub'),\n 'Exporting webpub format from EPUB or OPF file is not supported.',\n ),\n v.check(\n (options) =>\n !options.input ||\n !options.output ||\n !['epub', 'epub-opf'].includes(options.input.format) ||\n options.output.every((o) => o.format !== 'epub'),\n 'Exporting EPUB format from EPUB or OPF file is not supported.',\n ),\n v.title('VivliostyleInlineConfig'),\n);\n\nexport type VivliostyleInlineConfig = v.InferInput<\n typeof VivliostyleInlineConfig\n>;\nexport type ParsedVivliostyleInlineConfig = v.InferOutput<\n typeof VivliostyleInlineConfig\n>;\n\nexport type InlineOptions = Pick<\n ParsedVivliostyleInlineConfig,\n | 'cwd'\n | 'config'\n | 'configData'\n | 'input'\n | 'cropMarks'\n | 'bleed'\n | 'cropOffset'\n | 'css'\n | 'style'\n | 'userStyle'\n | 'singleDoc'\n | 'quick'\n | 'sandbox'\n | 'executableBrowser'\n | 'proxyServer'\n | 'proxyBypass'\n | 'proxyUser'\n | 'proxyPass'\n | 'logLevel'\n | 'ignoreHttpsErrors'\n | 'openViewer'\n | 'enableStaticServe'\n | 'enableViewerStartPage'\n | 'logger'\n | 'renderMode'\n | 'preflight'\n | 'preflightOption'\n | 'disableServerStartup'\n | 'projectPath'\n | 'template'\n | 'createConfigFileOnly'\n | 'stdin'\n | 'stdout'\n | 'stderr'\n | 'signal'\n>;\n\nexport const VivliostyleThemeMetadata = v.pipe(\n v.object({\n name: v.pipe(\n v.optional(ValidString),\n v.description($`\n Name of the theme.\n `),\n ),\n author: v.pipe(\n v.optional(ValidString),\n v.description($`\n Author of the theme.\n `),\n ),\n style: v.pipe(\n v.optional(ValidString),\n v.description($`\n This property specifies the main CSS file in the theme.\n `),\n ),\n category: v.pipe(\n v.optional(ValidString),\n v.description($`\n This property provides a hint to users about the primary use of your theme when they use it for the first time.\n Choose the category that best fits your theme from the following list:\n - \\`\"novel\"\\`\n - \\`\"magazine\"\\`\n - \\`\"journal\"\\`\n - \\`\"report\"\\`\n - \\`\"misc\"\\`\n `),\n ),\n topics: v.pipe(\n v.optional(v.array(ValidString)),\n v.description($`\n If you want more specific descriptions of the theme's use than the category property,\n you can list and describe them here.\n `),\n ),\n }),\n v.title('VivliostyleThemeMetadata'),\n);\n\nconst basePromptOptions = {\n name: ValidString,\n required: v.optional(v.boolean()),\n};\n\nconst TextPrompt = v.object({\n ...basePromptOptions,\n type: v.literal('text'),\n message: ValidString,\n placeholder: v.optional(ValidString),\n defaultValue: v.optional(ValidString),\n initialValue: v.optional(ValidString),\n});\n\nexport const SelectPromptOption = v.union([\n ValidString,\n v.object({\n value: v.union([\n v.string(), // Allow empty string\n v.number(),\n v.boolean(),\n ]),\n label: v.optional(ValidString),\n hint: v.optional(ValidString),\n }),\n]);\nexport type SelectPromptOption = v.InferInput<typeof SelectPromptOption>;\n\nconst SelectPrompt = v.object({\n ...basePromptOptions,\n type: v.literal('select'),\n message: ValidString,\n options: v.array(SelectPromptOption),\n initialValue: v.optional(v.string()),\n});\n\nconst MultiSelectPrompt = v.object({\n ...basePromptOptions,\n type: v.literal('multiSelect'),\n message: ValidString,\n options: v.array(SelectPromptOption),\n initialValues: v.optional(v.array(v.string())),\n cursorAt: v.optional(v.string()),\n});\n\nconst AutocompletePrompt = v.object({\n ...basePromptOptions,\n type: v.literal('autocomplete'),\n message: ValidString,\n options: v.array(SelectPromptOption),\n placeholder: v.optional(ValidString),\n initialValue: v.optional(v.string()),\n initialUserInput: v.optional(ValidString),\n});\n\nconst AutocompleteMultiSelectOptions = v.object({\n ...basePromptOptions,\n type: v.literal('autocompleteMultiSelect'),\n message: ValidString,\n options: v.array(SelectPromptOption),\n placeholder: v.optional(ValidString),\n initialValues: v.optional(v.array(v.string())),\n});\n\nexport const PromptOption = v.variant('type', [\n TextPrompt,\n SelectPrompt,\n MultiSelectPrompt,\n AutocompletePrompt,\n AutocompleteMultiSelectOptions,\n]);\nexport type PromptOption = v.InferInput<typeof PromptOption>;\n\nexport const VivliostyleTemplateMetadata = v.pipe(\n v.record(\n ValidString,\n v.object({\n name: v.pipe(\n v.optional(ValidString),\n v.description($`\n Name of the template.\n `),\n ),\n description: v.pipe(\n v.optional(ValidString),\n v.description($`\n Description of the template.\n `),\n ),\n source: v.pipe(\n ValidString,\n v.description($`\n Template source in the format of \\`[provider]:repo[/subpath][#ref]\\` or as a local directory to copy from.\n See the [giget](https://github.com/unjs/giget) documentation for more details of the source format.\n `),\n ),\n prompt: v.pipe(\n v.optional(v.array(PromptOption)),\n v.description($`\n Extra prompt options for the template.\n This is used to prompt users for additional information when applying the template.\n See the [@clack/prompts](https://github.com/bombshell-dev/clack) documentation for more details on the prompt options.\n Available prompt types: \\`text\\`, \\`select\\`, \\`multiSelect\\`, \\`autocomplete\\`, \\`autocompleteMultiSelect\\`.\n `),\n ),\n }),\n ),\n v.title('VivliostyleTemplateMetadata'),\n);\n\nexport const VivliostylePackageMetadata = v.pipe(\n v.partial(\n v.object({\n theme: VivliostyleThemeMetadata,\n template: VivliostyleTemplateMetadata,\n }),\n ),\n v.title('VivliostylePackageMetadata'),\n);\nexport type VivliostylePackageMetadata = v.InferInput<\n typeof VivliostylePackageMetadata\n>;\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/node-modules.ts"],"sourcesContent":["// List the libraries that are assumed to run in the Node.js environment\n// but are not required to run the Vivliostyle CLI.\n// Mark these modules as dynamic imports to prevent execution failure\n// when trying to import unnecessary modules in a standalone environment.\nexport const nodeExternalModules = [\n '@napi-rs/canvas',\n '@puppeteer/browsers',\n 'command-exists',\n 'press-ready',\n 'pdf-lib',\n 'puppeteer-core',\n] as const;\n\ntype NodeExternalModules = {\n '@napi-rs/canvas': typeof import('@napi-rs/canvas');\n '@puppeteer/browsers': typeof import('@puppeteer/browsers');\n 'command-exists': typeof import('command-exists');\n 'press-ready': typeof import('press-ready');\n 'pdf-lib': typeof import('pdf-lib');\n 'puppeteer-core': typeof import('puppeteer-core');\n};\n\nexport const importNodeModule = <\n T extends (typeof nodeExternalModules)[number],\n>(\n name: T,\n) => import(name) as Promise<NodeExternalModules[T]>;\n"],"mappings":";AAIO,IAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAWO,IAAM,mBAAmB,CAG9B,SACG,OAAO;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/cli-flags.ts","../src/util.ts","../src/logger.ts","../schemas/pub-manifest/module/bcp.schema.json","../schemas/pub-manifest/module/context.schema.json","../schemas/pub-manifest/module/contributor-object.schema.json","../schemas/pub-manifest/module/contributor.schema.json","../schemas/pub-manifest/module/date.schema.json","../schemas/pub-manifest/module/duration.schema.json","../schemas/pub-manifest/module/item-lists.schema.json","../schemas/pub-manifest/module/ItemList.schema.json","../schemas/pub-manifest/module/language.schema.json","../schemas/pub-manifest/module/link.schema.json","../schemas/pub-manifest/module/localizable-object.schema.json","../schemas/pub-manifest/module/localizable.schema.json","../schemas/pub-manifest/module/resource.categorization.schema.json","../schemas/pub-manifest/module/strings.schema.json","../schemas/pub-manifest/module/url.schema.json","../schemas/pub-manifest/module/urls.schema.json","../schemas/pub-manifest/publication.schema.json","../src/schema/pub-manifest.ts","../src/processor/asset.ts"],"sourcesContent":["import { Command, type OptionValues } from 'commander';\nimport * as v from 'valibot';\nimport {\n type InlineOptions,\n type OutputConfig,\n type ParsedVivliostyleConfigSchema,\n VivliostyleInlineConfig,\n} from '../config/schema.js';\nimport { EMPTY_DATA_URI } from '../const.js';\n\nexport interface CliFlags {\n input?: string;\n config?: string;\n outputs?: Pick<OutputConfig, 'path' | 'format'>[];\n theme?: string[];\n size?: string;\n cropMarks?: boolean;\n bleed?: string;\n cropOffset?: string;\n css?: string;\n style?: string;\n userStyle?: string;\n singleDoc?: boolean;\n quick?: boolean;\n pressReady?: boolean;\n title?: string;\n author?: string;\n language?: string;\n readingProgression?: 'ltr' | 'rtl';\n timeout?: number;\n renderMode?: 'local' | 'docker';\n preflight?: 'press-ready' | 'press-ready-local';\n preflightOption?: string[];\n sandbox?: boolean;\n executableBrowser?: string;\n image?: string;\n /** @deprecated */ http?: boolean;\n viewer?: string;\n viewerParam?: string;\n browser?: string;\n proxyServer?: string;\n proxyBypass?: string;\n proxyUser?: string;\n proxyPass?: string;\n logLevel?: 'silent' | 'info' | 'verbose' | 'debug';\n ignoreHttpsErrors?: boolean;\n projectPath?: string;\n template?: string;\n}\n\nexport function createParserProgram({\n setupProgram,\n parseArgs,\n}: {\n setupProgram: () => Command;\n parseArgs?: (options: CliFlags, args: string[]) => CliFlags;\n}) {\n return (argv: string[]) => {\n const program = setupProgram();\n program.parse(argv);\n let options = program.opts<CliFlags>();\n options = parseArgs?.(options, program.args ?? []) || options;\n options = warnDeprecatedFlags(options);\n return v.parse(VivliostyleInlineConfig, options);\n };\n}\n\nexport function setupConfigFromFlags(\n flags: InlineOptions,\n): ParsedVivliostyleConfigSchema {\n if (!flags.input) {\n if (flags.enableViewerStartPage) {\n return {\n tasks: [{ entry: [] }],\n inlineOptions: {\n input: { format: 'webbook', entry: EMPTY_DATA_URI },\n },\n };\n } else {\n throw new Error(\n 'No input is set. Please set an appropriate entry or a Vivliostyle config file.',\n );\n }\n }\n return {\n tasks: [{ entry: [] }],\n inlineOptions: { ...flags },\n };\n}\n\nfunction warnDeprecatedFlags(options: OptionValues): OptionValues {\n const modifiedOptions = { ...options };\n\n // Place here warnings for deprecated flags\n // if (options.someDeprecatedFlag) {\n // Logger.logWarn(\n // \"'--some-deprecated-flag' option was deprecated and will be removed in a future release. Please use '--new-flag' instead.\",\n // );\n // }\n\n return modifiedOptions;\n}\n","import { codeFrameColumns } from '@babel/code-frame';\nimport {\n type JSONValue,\n type ValueNode as JsonValueNode,\n evaluate,\n parse,\n} from '@humanwhocodes/momoa';\nimport type { BrowserPlatform } from '@puppeteer/browsers';\nimport { Ajv, type Plugin as AjvPlugin, type Schema } from 'ajv';\nimport formatsPlugin from 'ajv-formats';\nimport { XMLParser } from 'fast-xml-parser';\nimport lcid from 'lcid';\nimport StreamZip from 'node-stream-zip';\nimport childProcess, { type ExecFileOptions } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport readline from 'node:readline';\nimport util from 'node:util';\nimport { osLocale } from 'os-locale';\nimport { titleCase } from 'title-case';\nimport tmp from 'tmp';\nimport upath from 'upath';\nimport type { BaseIssue } from 'valibot';\nimport { gray, red, redBright } from 'yoctocolors';\nimport type { BrowserType } from './config/schema.js';\nimport { DEFAULT_BROWSER_VERSIONS, languages } from './const.js';\nimport { Logger } from './logger.js';\nimport {\n publicationSchema,\n publicationSchemas,\n} from './schema/pub-manifest.js';\nimport type { PublicationManifest } from './schema/publication.schema.js';\n\nexport const cwd = upath.normalize(process.cwd());\n\nconst execFile = util.promisify(childProcess.execFile);\nexport async function exec(\n command: string,\n args: string[] = [],\n options: ExecFileOptions = {},\n) {\n const subprocess = await execFile(command, args, {\n ...options,\n encoding: 'utf8',\n });\n subprocess.stdout = subprocess.stdout.trim();\n return subprocess;\n}\n\nconst beforeExitHandlers: (() => void)[] = [];\nexport const registerExitHandler = (\n debugMessage: string,\n handler: () => void,\n) => {\n const callback = () => {\n Logger.debug(debugMessage);\n handler();\n };\n beforeExitHandlers.push(callback);\n return () => {\n const index = beforeExitHandlers.indexOf(callback);\n if (index !== -1) {\n return beforeExitHandlers.splice(index, 1)[0];\n }\n };\n};\n\nexport function runExitHandlers() {\n while (beforeExitHandlers.length) {\n try {\n beforeExitHandlers.shift()?.();\n } catch (e) {\n // NOOP\n }\n }\n}\n\nconst exitSignals = ['exit', 'SIGINT', 'SIGTERM'];\nexitSignals.forEach((sig) => {\n process.once(sig, (signal?: string | number, exitCode?: number) => {\n runExitHandlers();\n if (process.exitCode === undefined) {\n process.exitCode =\n exitCode !== undefined ? 128 + exitCode : Number(signal);\n }\n process.exit();\n });\n});\n\nif (process.platform === 'win32') {\n // Windows does not support signals, so use readline interface\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.on('SIGINT', () => {\n runExitHandlers();\n process.exit(1);\n });\n registerExitHandler('Closing readline interface', () => {\n rl.close();\n });\n}\n\nexport class DetailError extends Error {\n detail: string | undefined;\n\n constructor(message: string | undefined, detail: string | undefined) {\n super(message);\n this.detail = detail;\n }\n}\n\nexport function getFormattedError(err: Error) {\n return err instanceof DetailError\n ? `${err.message}\\n${err.detail}`\n : err.stack || `${err.message}`;\n}\n\nexport function gracefulError(err: Error) {\n console.log(`${redBright('ERROR')} ${getFormattedError(err)}\n\n${gray('If you think this is a bug, please report at https://github.com/vivliostyle/vivliostyle-cli/issues')}`);\n\n process.exit(1);\n}\n\nexport function readJSON(path: string) {\n try {\n return JSON.parse(fs.readFileSync(path, 'utf8'));\n } catch (err) {\n return undefined;\n }\n}\n\nexport function statFileSync(\n filePath: string,\n {\n errorMessage = 'Specified input does not exist',\n }: { errorMessage?: string } = {},\n) {\n try {\n return fs.statSync(filePath);\n } catch (err) {\n if ((err as any).code === 'ENOENT') {\n throw new Error(`${errorMessage}: ${filePath}`);\n }\n throw err;\n }\n}\n\nexport async function inflateZip(filePath: string, dest: string) {\n return await new Promise<void>((res, rej) => {\n try {\n const zip = new StreamZip({\n file: filePath,\n storeEntries: true,\n });\n zip.on('error', (err) => {\n rej(err);\n });\n zip.on('ready', async () => {\n await util.promisify(zip.extract)(null, dest);\n await util.promisify(zip.close)();\n Logger.debug(`Unzipped ${filePath} to ${dest}`);\n res();\n });\n } catch (err) {\n rej(err);\n }\n });\n}\n\nexport function useTmpDirectory(): Promise<[string, () => void]> {\n return new Promise<[string, () => void]>((res, rej) => {\n tmp.dir({ unsafeCleanup: true }, (err, path, clear) => {\n if (err) {\n return rej(err);\n }\n Logger.debug(`Created the temporary directory: ${path}`);\n if (import.meta.env?.VITEST) {\n return res([path, () => {}]);\n }\n const callback = () => {\n // clear function doesn't work well?\n // clear();\n fs.rmSync(path, { force: true, recursive: true });\n };\n registerExitHandler(\n `Removing the temporary directory: ${path}`,\n callback,\n );\n res([path, callback]);\n });\n });\n}\n\nexport function touchTmpFile(path: string): () => void {\n fs.mkdirSync(upath.dirname(path), { recursive: true });\n // Create file if not exist\n fs.closeSync(fs.openSync(path, 'a'));\n Logger.debug(`Created the temporary file: ${path}`);\n const callback = () => {\n fs.rmSync(path, { force: true, recursive: true });\n };\n registerExitHandler(`Removing the temporary file: ${path}`, callback);\n return callback;\n}\n\nexport function pathEquals(path1: string, path2: string): boolean {\n return upath.relative(path1, path2) === '';\n}\n\nexport function pathContains(parentPath: string, childPath: string): boolean {\n const rel = upath.relative(parentPath, childPath);\n return rel !== '' && !rel.startsWith('..');\n}\n\nexport function isValidUri(str: string): boolean {\n return /^(https?|file|data):/i.test(str);\n}\n\nfunction cachedFn<T>(fn: () => T): () => T {\n let cache: T | null = null;\n return (): T => cache ?? (cache = fn());\n}\n\nexport const isInContainer = cachedFn(function isInContainer() {\n return fs.existsSync('/opt/vivliostyle-cli/.vs-cli-version');\n});\n\nexport const isRunningOnWSL = cachedFn(function isRunningOnWSL() {\n // Detection method based on microsoft/WSL#4071\n return (\n fs.existsSync('/proc/version') &&\n fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft')\n );\n});\n\nexport async function openEpub(epubPath: string, tmpDir: string) {\n await inflateZip(epubPath, tmpDir);\n Logger.debug(`Created the temporary EPUB directory: ${tmpDir}`);\n const deleteEpub = () => {\n fs.rmSync(tmpDir, { force: true, recursive: true });\n };\n registerExitHandler(\n `Removing the temporary EPUB directory: ${tmpDir}`,\n deleteEpub,\n );\n return deleteEpub;\n}\n\nexport function getDefaultEpubOpfPath(epubDir: string) {\n const containerXmlPath = upath.join(epubDir, 'META-INF/container.xml');\n const xmlParser = new XMLParser({\n ignoreAttributes: false,\n });\n const { container } = xmlParser.parse(\n fs.readFileSync(containerXmlPath, 'utf8'),\n );\n const rootfile = [container.rootfiles.rootfile].flat()[0]; // Only supports a default rendition\n const epubOpfPath = upath.join(epubDir, rootfile['@_full-path']);\n return epubOpfPath;\n}\n\nexport function getEpubRootDir(epubOpfPath: string) {\n function traverse(dir: string) {\n const files = fs.readdirSync(dir);\n if (\n files.includes('META-INF') &&\n pathEquals(epubOpfPath, getDefaultEpubOpfPath(dir))\n ) {\n return dir;\n }\n const next = upath.dirname(dir);\n if (pathEquals(dir, next)) {\n return;\n }\n return traverse(next);\n }\n return traverse(upath.dirname(epubOpfPath));\n}\n\nconst getAjvValidatorFunction =\n <T extends Schema>(schema: T, refSchemas?: Schema | Schema[]) =>\n (obj: unknown): obj is T => {\n const ajv = new Ajv({ strict: false });\n // @ts-expect-error: Invalid type\n const addFormats = formatsPlugin as AjvPlugin<unknown>;\n addFormats(ajv);\n if (refSchemas) {\n ajv.addSchema(refSchemas);\n }\n const validate = ajv.compile(schema);\n const valid = validate(obj);\n if (!valid) {\n throw validate.errors?.[0] || new Error();\n }\n return true;\n };\n\nexport const assertPubManifestSchema =\n getAjvValidatorFunction<PublicationManifest>(\n publicationSchema as unknown as PublicationManifest,\n publicationSchemas,\n );\n\nexport function parseJsonc(rawJsonc: string): JSONValue {\n const ast = parse(rawJsonc, {\n mode: 'jsonc',\n ranges: false,\n tokens: false,\n });\n return evaluate(ast);\n}\n\nexport function prettifySchemaError(\n rawJsonc: string,\n issues: BaseIssue<unknown>[],\n) {\n const parsed = parse(rawJsonc, {\n mode: 'jsonc',\n ranges: false,\n tokens: false,\n });\n\n // Traverse to the deepest issue\n function traverse(issues: BaseIssue<unknown>[], depth: number) {\n return issues.flatMap((issue): [BaseIssue<unknown>[], number][] => {\n const p = issue.path?.length || 0;\n if (!issue.issues) {\n return [[[issue], depth + p]];\n }\n return traverse(issue.issues, depth + p).map(([i, d]) => [\n [issue, ...i],\n d,\n ]);\n });\n }\n const all = traverse(issues, 0);\n const maxDepth = Math.max(...all.map(([, d]) => d));\n const issuesTraversed = all.find(([, d]) => d === maxDepth)![0];\n\n let jsonValue = parsed.body as JsonValueNode;\n for (const p of issuesTraversed.flatMap((v) => v.path ?? [])) {\n let childValue: JsonValueNode | undefined;\n if (p.type === 'object' && jsonValue.type === 'Object') {\n childValue = jsonValue.members.find(\n (m) =>\n (m.name.type === 'Identifier' && m.name.name === p.key) ||\n (m.name.type === 'String' && m.name.value === p.key),\n )?.value;\n }\n if (p.type === 'array' && jsonValue.type === 'Array') {\n childValue = jsonValue.elements[p.key]?.value;\n }\n if (childValue) {\n jsonValue = childValue;\n } else {\n break;\n }\n }\n\n let message = `${red(issuesTraversed.at(-1)!.message)}`;\n if (jsonValue) {\n message += `\\n${codeFrameColumns(rawJsonc, jsonValue.loc, {\n highlightCode: true,\n })}`;\n }\n return message;\n}\n\nexport function writeFileIfChanged(filePath: string, content: Buffer) {\n if (!fs.existsSync(filePath) || !fs.readFileSync(filePath).equals(content)) {\n fs.mkdirSync(upath.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, content);\n }\n}\n\nlet cachedLocale: string | undefined;\nexport async function getOsLocale(): Promise<string> {\n if (import.meta.env?.VITEST) {\n return process.env.TEST_LOCALE || 'en';\n }\n // It uses the same implementation as os-locale, but prioritizes the OS language settings on Windows and macOS.\n if (cachedLocale) {\n return cachedLocale;\n }\n let locale: string | undefined;\n if (process.platform === 'win32') {\n const { stdout } = await exec('wmic', ['os', 'get', 'locale']);\n const lcidCode = Number.parseInt(stdout.replace('Locale', ''), 16);\n locale = lcid.from(lcidCode);\n }\n if (process.platform === 'darwin') {\n const results = await Promise.all([\n exec('defaults', ['read', '-globalDomain', 'AppleLocale']).then(\n ({ stdout }) => stdout,\n ),\n exec('locale', ['-a']).then(({ stdout }) => stdout),\n ]);\n if (results[1].includes(results[0])) {\n locale = results[0];\n }\n }\n if (locale) {\n locale = locale.replace(/_/, '-');\n } else {\n locale = await osLocale();\n }\n\n const langs = Object.keys(languages);\n locale = langs.includes(locale)\n ? locale\n : langs.includes(locale.split('-')[0])\n ? locale.split('-')[0]\n : 'en';\n return (cachedLocale = locale.replace(/_/, '-'));\n}\n\nexport function toTitleCase<T = unknown>(input: T): T {\n if (typeof input !== 'string') {\n return input;\n }\n return titleCase(\n input.replace(/[\\W_]/g, ' ').replace(/\\s+/g, ' ').trim(),\n ) as T;\n}\n\nexport function debounce<T extends (...args: any[]) => unknown>(\n func: T,\n wait: number,\n options: { leading?: boolean; trailing?: boolean } = {},\n): (...args: Parameters<T>) => void {\n const leading = options.leading ?? false;\n const trailing = options.trailing ?? !leading;\n let timer: NodeJS.Timeout | null = null;\n let pending = false;\n\n const invoke = (...args: Parameters<T>) => {\n pending = false;\n func(...args);\n };\n\n return (...args: Parameters<T>) => {\n pending = true;\n\n if (timer) {\n clearTimeout(timer);\n }\n\n const callNow = leading && !timer;\n\n timer = setTimeout(() => {\n const shouldCall = trailing && pending && !(leading && callNow);\n timer = null;\n if (shouldCall) {\n invoke(...args);\n } else {\n pending = false;\n }\n }, wait);\n\n if (callNow) {\n invoke(...args);\n }\n };\n}\n\nexport const getCacheDir = cachedFn(function getCacheDir() {\n let osCacheDir: string;\n if (process.platform === 'linux') {\n osCacheDir =\n process.env.XDG_CACHE_HOME || upath.join(os.homedir(), '.cache');\n } else if (process.platform === 'darwin') {\n osCacheDir = upath.join(os.homedir(), 'Library', 'Caches');\n } else if (process.platform === 'win32') {\n osCacheDir =\n process.env.LOCALAPPDATA || upath.join(os.homedir(), 'AppData', 'Local');\n } else {\n throw new Error(`Unsupported platform: ${process.platform}`);\n }\n return upath.join(osCacheDir, 'vivliostyle');\n});\n\n// Detects the browser platform, similar to detectBrowserPlatform in @puppeteer/browsers\n// Included here to avoid adding @puppeteer/browsers as a dependency\nexport const detectBrowserPlatform = cachedFn(function detectBrowserPlatform():\n | BrowserPlatform\n | undefined {\n const platform = process.platform;\n const arch = process.arch;\n switch (platform) {\n case 'darwin':\n return arch === 'arm64'\n ? ('mac_arm' as BrowserPlatform)\n : ('mac' as BrowserPlatform);\n case 'linux':\n return arch === 'arm64'\n ? ('linux_arm' as BrowserPlatform)\n : ('linux' as BrowserPlatform);\n case 'win32':\n return arch === 'x64' ||\n // Windows 11 for ARM supports x64 emulation\n (arch === 'arm64' && isWindows11(os.release()))\n ? ('win64' as BrowserPlatform)\n : ('win32' as BrowserPlatform);\n default:\n return undefined;\n }\n});\n\nfunction isWindows11(version: string): boolean {\n const parts = version.split('.');\n if (parts.length > 2) {\n const major = parseInt(parts[0] as string, 10);\n const minor = parseInt(parts[1] as string, 10);\n const patch = parseInt(parts[2] as string, 10);\n return (\n major > 10 ||\n (major === 10 && minor > 0) ||\n (major === 10 && minor === 0 && patch >= 22000)\n );\n }\n return false;\n}\n\nexport const getDefaultBrowserTag = (browserType: BrowserType) => {\n if (import.meta.env?.VITEST) {\n return '100.0';\n }\n const platform = detectBrowserPlatform();\n return platform && DEFAULT_BROWSER_VERSIONS[browserType][platform];\n};\n\nexport type PackageManager = 'npm' | 'yarn' | 'pnpm';\n\n// License for `whichPm`\n// The MIT License (MIT)\n// Copyright (c) 2017-2022 Zoltan Kochan <z@kochan.io>\n// https://github.com/zkochan/packages/tree/main/which-pm-runs\nexport function whichPm(): PackageManager {\n if (!process.env.npm_config_user_agent) {\n return 'npm';\n }\n\n const pmSpec = process.env.npm_config_user_agent.split(' ')[0];\n const separatorPos = pmSpec.lastIndexOf('/');\n const name = pmSpec.substring(0, separatorPos);\n\n return name as PackageManager;\n}\n","import debug from 'debug';\nimport { Console } from 'node:console';\nimport type { Readable, Writable } from 'node:stream';\nimport type { WriteStream } from 'node:tty';\nimport yoctoSpinner, { type Spinner } from 'yocto-spinner';\nimport { blueBright, greenBright, redBright, yellowBright } from 'yoctocolors';\nimport { isInContainer, registerExitHandler } from './util.js';\n\nexport const isUnicodeSupported =\n process.platform !== 'win32' || Boolean(process.env.WT_SESSION);\n\nexport const randomBookSymbol = ['📕', '📗', '📘', '📙'][\n Math.floor(Math.random() * 4)\n];\n\nexport const spinnerFrames = isUnicodeSupported\n ? ['▁▁╱ ', '▁║▁ ', '╲▁▁ ', '▁▁▁ ', '▁▁▁ ', '▁▁▁ ']\n : ['- ', '\\\\ ', '| ', '/ '];\n\nexport const spinnerInterval = 80;\n\nconst infoSymbol = blueBright('INFO');\nconst successSymbol = greenBright('SUCCESS');\nconst warnSymbol = yellowBright('WARN');\nconst errorSymbol = redBright('ERROR');\n\nexport interface LoggerInterface {\n info(message: string): void;\n warn(message: string): void;\n error(message: string): void;\n}\n\nexport class Logger {\n /**\n * 0: silent 1: info 2: verbose 3: debug\n */\n static #logLevel: 0 | 1 | 2 | 3 = 0;\n static #loggerInstance: Logger | undefined;\n static #nonBlockingLogPrinted = false;\n static #customLogger: LoggerInterface | undefined;\n static #logPrefix: string | undefined;\n static #stdin: Readable = process.stdin;\n static #stdout: Writable = process.stdout;\n static #stderr: Writable = process.stderr;\n static #signal: AbortSignal | undefined;\n\n static debug = debug('vs-cli');\n\n static get #console() {\n if (this.#customLogger) {\n return {\n ...this.#customLogger,\n log: () => {\n /* NOOP */\n },\n };\n }\n return new Console({\n stdout: this.#stdout,\n stderr: this.#stderr,\n });\n }\n\n static get #spinner() {\n return this.#loggerInstance && this.#loggerInstance.#_spinner;\n }\n\n static get stdin() {\n return this.#stdin;\n }\n\n static get stdout() {\n return this.#stdout;\n }\n\n static get stderr() {\n return this.#stderr;\n }\n\n static get signal() {\n return this.#signal;\n }\n\n static get isInteractive() {\n return Boolean(\n !this.#customLogger &&\n (this.#stderr as WriteStream).isTTY &&\n process.env.TERM !== 'dumb' &&\n !('CI' in process.env) &&\n !import.meta.env?.VITEST &&\n !debug.enabled('vs-cli') &&\n // Prevent stream output in docker container so that not to spawn process\n !isInContainer(),\n );\n }\n\n static startLogging(text: string) {\n if (this.#logLevel === 0) {\n return;\n }\n if (!this.isInteractive) {\n this.logInfo(text);\n return;\n }\n if (this.#loggerInstance) {\n this.#loggerInstance.#_spinner.text = text;\n return this.#loggerInstance;\n }\n this.#loggerInstance = new Logger(this.#stderr);\n this.#loggerInstance.#start(text);\n return this.#loggerInstance;\n }\n\n static suspendLogging(text: string) {\n if (this.#logLevel === 0) {\n return;\n }\n if (!this.#spinner || !this.isInteractive) {\n this.logInfo(text);\n return;\n }\n const currentMsg = this.#spinner?.text;\n this.logUpdate(currentMsg);\n this.#spinner.stop(`${infoSymbol} ${text}\\n`);\n return {\n [Symbol.dispose]() {\n if (Logger.isInteractive) {\n Logger.#console.log('');\n Logger.#spinner?.start(currentMsg);\n Logger.#nonBlockingLogPrinted = true;\n }\n },\n };\n }\n\n static log(...messages: any[]) {\n if (this.#logLevel < 1) {\n return;\n }\n Logger.#console.log(...messages);\n }\n\n static logUpdate(...messages: any[]) {\n if (!this.#spinner || !this.isInteractive) {\n this.logInfo(...messages);\n return;\n }\n this.#spinner.stop(\n this.#nonBlockingLogPrinted\n ? undefined\n : `${infoSymbol} ${this.#spinner.text}`,\n );\n this.#spinner.start(messages.join(' '));\n this.#nonBlockingLogPrinted = false;\n }\n\n static getMessage(message: string, symbol?: string) {\n return !this.#customLogger && symbol ? `${symbol} ${message}` : message;\n }\n\n static #nonBlockingLog(\n logMethod: 'warn' | 'error' | 'info',\n message: string,\n ) {\n if (!this.#spinner || !this.isInteractive) {\n if (this.#logPrefix) {\n message = `${this.#logPrefix} ${message}`;\n }\n this.#logLevel >= 3\n ? this.debug(message)\n : this.#console[logMethod](message);\n return;\n }\n this.logUpdate(this.#spinner.text);\n this.#nonBlockingLogPrinted = true;\n this.#spinner.stop(message);\n this.#spinner.start();\n }\n\n static logSuccess(...messages: any[]) {\n if (this.#logLevel < 1) {\n return;\n }\n this.#nonBlockingLog(\n 'info',\n this.getMessage(messages.join(' '), successSymbol),\n );\n }\n\n static logError(...messages: any[]) {\n if (this.#logLevel < 1) {\n return;\n }\n this.#nonBlockingLog(\n 'error',\n this.getMessage(messages.join(' '), errorSymbol),\n );\n }\n\n static logWarn(...messages: any[]) {\n if (this.#logLevel < 1) {\n return;\n }\n this.#nonBlockingLog(\n 'warn',\n this.getMessage(messages.join(' '), warnSymbol),\n );\n }\n\n static logInfo(...messages: any[]) {\n if (this.#logLevel < 1) {\n return;\n }\n this.#nonBlockingLog(\n 'info',\n this.getMessage(messages.join(' '), infoSymbol),\n );\n }\n\n static logVerbose(...messages: any[]) {\n if (this.#logLevel < 2) {\n return;\n }\n this.#nonBlockingLog('info', this.getMessage(messages.join(' ')));\n }\n\n static setLogOptions({\n logLevel,\n logger,\n stdin,\n stdout,\n stderr,\n signal,\n }: {\n logLevel?: 'silent' | 'info' | 'verbose' | 'debug';\n logger?: LoggerInterface;\n stdin?: Readable;\n stdout?: Writable;\n stderr?: Writable;\n signal?: AbortSignal;\n }) {\n if (logLevel) {\n this.#logLevel = (\n {\n silent: 0,\n info: 1,\n verbose: 2,\n debug: 3,\n } as const\n )[logLevel];\n if (this.#logLevel >= 3) {\n debug.enable('vs-cli');\n }\n }\n if (logger) {\n this.#customLogger = logger;\n }\n if (stdin) {\n this.#stdin = stdin;\n }\n if (stdout) {\n this.#stdout = stdout;\n }\n if (stderr) {\n this.#stderr = stderr;\n }\n if (signal) {\n this.#signal = signal;\n }\n }\n\n static setLogPrefix(prefix: string) {\n this.#logPrefix = prefix;\n }\n\n #_spinner: Spinner;\n #_disposeSpinnerExitHandler: (() => void) | undefined;\n\n constructor(stream: Writable) {\n this.#_spinner = yoctoSpinner({\n spinner: {\n frames: spinnerFrames,\n interval: spinnerInterval,\n },\n color: 'gray',\n stream,\n });\n return this;\n }\n\n #start(text: string) {\n this.#_spinner.start(text);\n this.#_disposeSpinnerExitHandler = registerExitHandler(\n 'Stopping spinner',\n () => {\n this.#_spinner.stop();\n },\n );\n }\n\n [Symbol.dispose]() {\n this.#_disposeSpinnerExitHandler?.();\n this.#_spinner.stop(\n Logger.#nonBlockingLogPrinted\n ? undefined\n : `${infoSymbol} ${this.#_spinner.text}`,\n );\n Logger.#loggerInstance = undefined;\n }\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/bcp.schema.json\",\n \"title\": \"BCP47 Language tag\",\n \"type\": \"string\",\n \"pattern\": \"^((?:(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?:([A-Za-z]{2,3}(-(?:[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?:[A-Za-z]{4}))?(-(?:[A-Za-z]{2}|[0-9]{3}))?(-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?:[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?:x(-[A-Za-z0-9]{1,8})+))?)|(?:x(-[A-Za-z0-9]{1,8})+))$\"\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/context.schema.json\",\n \"title\": \"Publication Contexts\",\n \"type\": \"array\",\n \"items\": [\n {\n \"const\": \"https://schema.org\"\n },\n {\n \"const\": \"https://www.w3.org/ns/pub-context\"\n }\n ],\n \"additionalItems\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"language\": {\n \"$ref\": \"bcp.schema.json\"\n },\n \"direction\": false\n },\n \"required\": [\"language\"]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"direction\": {\n \"type\": \"string\",\n \"enum\": [\"ltr\", \"rtl\"]\n },\n \"language\": false\n },\n \"required\": [\"direction\"]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"language\": {\n \"$ref\": \"bcp.schema.json\"\n },\n \"direction\": {\n \"type\": \"string\",\n \"enum\": [\"ltr\", \"rtl\"]\n }\n },\n \"required\": [\"language\", \"direction\"]\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"language\": false,\n \"direction\": false\n }\n }\n ]\n }\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/contributor-object.schema.json\",\n \"title\": \"Contributor Object\",\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"$ref\": \"localizable.schema.json\"\n },\n \"id\": {\n \"$ref\": \"url.schema.json\"\n },\n \"type\": {\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\"Person\", \"Organization\"],\n \"default\": \"Person\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"enum\": [\"Person\", \"Organization\"]\n }\n }\n ]\n },\n \"url\": {\n \"$ref\": \"url.schema.json\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"name\"]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/contributor.schema.json\",\n \"title\": \"Contributor\",\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"contributor-object.schema.json\"\n }\n ]\n }\n },\n {\n \"$ref\": \"contributor-object.schema.json\"\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/date.schema.json\",\n \"title\": \"Dates\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/duration.schema.json\",\n \"title\": \"Duration\",\n \"type\": \"string\",\n \"pattern\": \"^P(?!$)((\\\\d+Y)|(\\\\d+\\\\.\\\\d+Y$))?((\\\\d+M)|(\\\\d+\\\\.\\\\d+M$))?((\\\\d+W)|(\\\\d+\\\\.\\\\d+W$))?((\\\\d+D)|(\\\\d+\\\\.\\\\d+D$))?(T(?=\\\\d)((\\\\d+H)|(\\\\d+\\\\.\\\\d+H$))?((\\\\d+M)|(\\\\d+\\\\.\\\\d+M$))?(\\\\d+(\\\\.\\\\d+)?S)?)??$\"\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/item-lists.schema.json\",\n \"title\": \"Lists of ItemList\",\n \"oneOf\": [\n {\n \"$ref\": \"ItemList.schema.json\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"ItemList.schema.json\"\n }\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/ItemList.schema.json\",\n \"title\": \"schema.org ItemList object\",\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"const\": \"ItemList\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"const\": \"ItemList\"\n }\n }\n ]\n },\n \"itemListElement\": {\n \"type\": [\"array\"],\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"itemListElement\"]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/language.schema.json\",\n \"title\": \"Languages\",\n \"oneOf\": [\n {\n \"$ref\": \"bcp.schema.json\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"bcp.schema.json\"\n }\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/link.schema.json\",\n \"title\": \"Publication Links\",\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"const\": \"LinkedResource\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"const\": \"LinkedResource\"\n }\n }\n ]\n },\n \"url\": {\n \"$ref\": \"url.schema.json\"\n },\n \"encodingFormat\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"$ref\": \"localizable.schema.json\"\n },\n \"description\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"localizable-object.schema.json\"\n }\n ]\n },\n \"rel\": {\n \"type\": [\"string\", \"array\"],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"integrity\": {\n \"type\": \"string\"\n },\n \"duration\": {\n \"$ref\": \"duration.schema.json\"\n },\n \"alternate\": {\n \"$ref\": \"resource.categorization.schema.json\"\n }\n },\n \"required\": [\"url\"]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/localizable-object.schema.json\",\n \"title\": \"Localizable String Object\",\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"type\": \"string\"\n },\n \"language\": {\n \"$ref\": \"bcp.schema.json\"\n }\n },\n \"required\": [\"value\"]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/localizable.schema.json\",\n \"title\": \"Localizable String or Object\",\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"localizable-object.schema.json\"\n }\n ]\n }\n },\n {\n \"$ref\": \"localizable-object.schema.json\"\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/resource.categorization.schema.json\",\n \"title\": \"Resource Categorization\",\n \"oneOf\": [\n {\n \"oneOf\": [\n {\n \"$ref\": \"url.schema.json\"\n },\n {\n \"$ref\": \"link.schema.json\"\n }\n ]\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"url.schema.json\"\n },\n {\n \"$ref\": \"link.schema.json\"\n }\n ]\n },\n \"uniqueItems\": true\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/strings.schema.json\",\n \"title\": \"Unique strings\",\n \"type\": [\"string\", \"array\"],\n \"items\": {\n \"type\": \"string\"\n }\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/url.schema.json\",\n \"title\": \"URL\",\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/module/urls.schema.json\",\n \"title\": \"URLs\",\n \"oneOf\": [\n {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n }\n ]\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://www.w3.org/ns/pub-schema/manifest/publication.schema.json\",\n \"title\": \"Publication Manifest\",\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"$ref\": \"module/context.schema.json\"\n },\n \"type\": {\n \"type\": [\"string\", \"array\"],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"conformsTo\": {\n \"oneOf\": [\n {\n \"$ref\": \"module/url.schema.json\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"module/url.schema.json\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"abridged\": {\n \"type\": \"boolean\"\n },\n \"accessMode\": {\n \"$ref\": \"module/strings.schema.json\"\n },\n \"accessModeSufficient\": {\n \"$ref\": \"module/item-lists.schema.json\"\n },\n \"accessibilityFeature\": {\n \"$ref\": \"module/strings.schema.json\"\n },\n \"accessibilityHazard\": {\n \"$ref\": \"module/strings.schema.json\"\n },\n \"accessibilitySummary\": {\n \"$ref\": \"module/localizable.schema.json\"\n },\n \"artist\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"author\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"colorist\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"contributor\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"creator\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"editor\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"illustrator\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"inker\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"letterer\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"penciler\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"publisher\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"readBy\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"translator\": {\n \"$ref\": \"module/contributor.schema.json\"\n },\n \"url\": {\n \"$ref\": \"module/urls.schema.json\"\n },\n \"duration\": {\n \"$ref\": \"module/duration.schema.json\"\n },\n \"inLanguage\": {\n \"$ref\": \"module/language.schema.json\"\n },\n \"dateModified\": {\n \"$ref\": \"module/date.schema.json\"\n },\n \"datePublished\": {\n \"$ref\": \"module/date.schema.json\"\n },\n \"name\": {\n \"$ref\": \"module/localizable.schema.json\"\n },\n \"readingOrder\": {\n \"$ref\": \"module/resource.categorization.schema.json\"\n },\n \"resources\": {\n \"$ref\": \"module/resource.categorization.schema.json\"\n },\n \"links\": {\n \"$ref\": \"module/resource.categorization.schema.json\"\n },\n \"readingProgression\": {\n \"type\": \"string\",\n \"enum\": [\"ltr\", \"rtl\"],\n \"default\": \"ltr\"\n }\n },\n \"required\": [\"@context\", \"conformsTo\"]\n}\n","import bcpSchema from '../../schemas/pub-manifest/module/bcp.schema.json' with { type: 'json' };\nimport contextSchema from '../../schemas/pub-manifest/module/context.schema.json' with { type: 'json' };\nimport contributorObjectSchema from '../../schemas/pub-manifest/module/contributor-object.schema.json' with { type: 'json' };\nimport contributorSchema from '../../schemas/pub-manifest/module/contributor.schema.json' with { type: 'json' };\nimport dateSchema from '../../schemas/pub-manifest/module/date.schema.json' with { type: 'json' };\nimport durationSchema from '../../schemas/pub-manifest/module/duration.schema.json' with { type: 'json' };\nimport itemListsSchema from '../../schemas/pub-manifest/module/item-lists.schema.json' with { type: 'json' };\nimport itemListSchema from '../../schemas/pub-manifest/module/ItemList.schema.json' with { type: 'json' };\nimport languageSchema from '../../schemas/pub-manifest/module/language.schema.json' with { type: 'json' };\nimport linkSchema from '../../schemas/pub-manifest/module/link.schema.json' with { type: 'json' };\nimport localizableObjectSchema from '../../schemas/pub-manifest/module/localizable-object.schema.json' with { type: 'json' };\nimport localizableSchema from '../../schemas/pub-manifest/module/localizable.schema.json' with { type: 'json' };\nimport resourceCategorizationSchema from '../../schemas/pub-manifest/module/resource.categorization.schema.json' with { type: 'json' };\nimport stringsSchema from '../../schemas/pub-manifest/module/strings.schema.json' with { type: 'json' };\nimport urlSchema from '../../schemas/pub-manifest/module/url.schema.json' with { type: 'json' };\nimport urlsSchema from '../../schemas/pub-manifest/module/urls.schema.json' with { type: 'json' };\nimport publicationSchema from '../../schemas/pub-manifest/publication.schema.json' with { type: 'json' };\n\nexport const publicationSchemas = [\n bcpSchema,\n contextSchema,\n contributorObjectSchema,\n contributorSchema,\n dateSchema,\n durationSchema,\n itemListsSchema,\n itemListSchema,\n languageSchema,\n linkSchema,\n localizableObjectSchema,\n localizableSchema,\n resourceCategorizationSchema,\n stringsSchema,\n urlSchema,\n urlsSchema,\n publicationSchema,\n] as const;\n\nexport { publicationSchema };\n","import { copy } from 'fs-extra/esm';\nimport fs from 'node:fs';\nimport picomatch, { type PicomatchOptions } from 'picomatch';\nimport { glob, type GlobOptions } from 'tinyglobby';\nimport upath from 'upath';\nimport type { ResolvedTaskConfig } from '../config/resolve.js';\nimport { Logger } from '../logger.js';\nimport { pathContains, pathEquals } from '../util.js';\n\nexport class GlobMatcher {\n readonly matcherConfig: (Pick<PicomatchOptions, 'dot' | 'ignore' | 'cwd'> & {\n patterns: string[];\n })[];\n\n #_matchers: picomatch.Matcher[];\n\n constructor(matcherConfig: typeof GlobMatcher.prototype.matcherConfig) {\n this.matcherConfig = matcherConfig;\n this.#_matchers = matcherConfig.map(({ patterns, ...options }) =>\n picomatch(patterns, options),\n );\n }\n\n match(test: string): boolean {\n return this.#_matchers.some((matcher) => matcher(test));\n }\n\n async glob(\n globOptions: Pick<GlobOptions, 'followSymbolicLinks'> = {},\n ): Promise<Set<string>> {\n return new Set(\n (\n await Promise.all(\n this.matcherConfig.map((config) =>\n glob({ ...config, ...globOptions }),\n ),\n )\n ).flat(),\n );\n }\n}\n\nfunction getIgnoreThemeDirectoryPatterns({\n themesDir,\n cwd,\n}: Pick<ResolvedTaskConfig, 'themesDir'> & {\n cwd: string;\n}): string[] {\n return pathContains(cwd, themesDir)\n ? [\n `${upath.relative(cwd, themesDir)}/node_modules/*/example`,\n `${upath.relative(cwd, themesDir)}/node_modules/*/*/example`,\n ]\n : [];\n}\n\nfunction getIgnoreAssetPatterns({\n outputs,\n entries,\n cwd,\n}: Pick<ResolvedTaskConfig, 'outputs' | 'entries'> & {\n cwd: string;\n}): string[] {\n return [\n ...outputs.flatMap(({ format, path: p }) =>\n !pathContains(cwd, p)\n ? []\n : format === 'webpub'\n ? upath.join(upath.relative(cwd, p), '**')\n : upath.relative(cwd, p),\n ),\n ...entries.flatMap(({ template }) => {\n return template?.type === 'file' && pathContains(cwd, template.pathname)\n ? upath.relative(cwd, template.pathname)\n : [];\n }),\n ];\n}\n\nexport function getWebPubResourceMatcher({\n outputs,\n themesDir,\n entries,\n cwd,\n manifestPath,\n copyAsset: { fileExtensions },\n}: Pick<\n ResolvedTaskConfig,\n 'outputs' | 'themesDir' | 'entries' | 'copyAsset'\n> & {\n cwd: string;\n manifestPath: string;\n}) {\n return new GlobMatcher([\n {\n patterns: [\n `**/${upath.relative(cwd, manifestPath)}`,\n '**/*.{html,htm,xhtml,xht}',\n `**/*.{${fileExtensions.join(',')}}`,\n ],\n ignore: [\n ...getIgnoreAssetPatterns({\n cwd,\n outputs,\n entries,\n }),\n ...getIgnoreThemeDirectoryPatterns({\n cwd,\n themesDir,\n }),\n // Ignore node_modules in the root directory\n 'node_modules/**',\n // only include dotfiles starting with `.vs-`\n '**/.!(vs-*)/**',\n ],\n dot: true,\n cwd,\n },\n ]);\n}\n\nexport function getAssetMatcher({\n copyAsset: { fileExtensions, includes, excludes },\n outputs,\n themesDir,\n entries,\n cwd,\n ignore = [],\n}: Pick<\n ResolvedTaskConfig,\n 'copyAsset' | 'outputs' | 'themesDir' | 'entries'\n> & {\n cwd: string;\n ignore?: string[];\n}) {\n const ignorePatterns = [\n ...ignore,\n ...excludes,\n ...getIgnoreAssetPatterns({ outputs, entries, cwd }),\n ];\n return new GlobMatcher([\n // Step 1: Glob files with an extension in `fileExtension`\n // Ignore files in node_modules directory, theme example files and files matched `excludes`\n {\n patterns: fileExtensions.map((ext) => `**/*.${ext}`),\n ignore: [\n '**/node_modules/**',\n ...ignorePatterns,\n ...getIgnoreThemeDirectoryPatterns({ themesDir, cwd }),\n ],\n cwd,\n },\n // Step 2: Glob files matched with `includes`\n // Ignore only files matched `excludes`\n {\n patterns: includes,\n ignore: ignorePatterns,\n cwd,\n },\n ]);\n}\n\nexport async function copyAssets({\n entryContextDir,\n workspaceDir,\n copyAsset,\n outputs,\n themesDir,\n entries,\n}: ResolvedTaskConfig): Promise<void> {\n if (pathEquals(entryContextDir, workspaceDir)) {\n return;\n }\n const relWorkspaceDir = upath.relative(entryContextDir, workspaceDir);\n const assets = await getAssetMatcher({\n copyAsset,\n cwd: entryContextDir,\n outputs,\n themesDir,\n entries,\n ignore: [\n // don't copy workspace itself\n ...(relWorkspaceDir ? [upath.join(relWorkspaceDir, '**')] : []),\n ],\n }).glob({ followSymbolicLinks: true });\n Logger.debug('assets', assets);\n for (const asset of assets) {\n const target = upath.join(workspaceDir, asset);\n fs.mkdirSync(upath.dirname(target), { recursive: true });\n await copy(upath.resolve(entryContextDir, asset), target);\n }\n}\n"],"mappings":"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","names":["parse","redBright","redBright","isInContainer","isRunningOnWSL","parse","issues","v","getCacheDir","detectBrowserPlatform","fs","upath","cwd","upath","fs"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|