@vivliostyle/cli 10.3.0 → 10.4.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.
Files changed (47) hide show
  1. package/README.md +7 -4
  2. package/dist/{chunk-RBKPG6VU.js → chunk-4DTPH2XX.js} +2 -2
  3. package/dist/{chunk-QLK3XMQI.js → chunk-DEJL63H2.js} +195 -130
  4. package/dist/chunk-DEJL63H2.js.map +1 -0
  5. package/dist/{chunk-ZEBXHUJX.js → chunk-DK3HFVHX.js} +27 -51
  6. package/dist/chunk-DK3HFVHX.js.map +1 -0
  7. package/dist/{chunk-3QOSSWIX.js → chunk-J2YGULSR.js} +58 -10
  8. package/dist/chunk-J2YGULSR.js.map +1 -0
  9. package/dist/{chunk-ALY3QX7K.js → chunk-L4PJ2SP3.js} +22 -25
  10. package/dist/chunk-L4PJ2SP3.js.map +1 -0
  11. package/dist/{chunk-WIGLU3EK.js → chunk-LE3QOQ5F.js} +11 -9
  12. package/dist/{chunk-WIGLU3EK.js.map → chunk-LE3QOQ5F.js.map} +1 -1
  13. package/dist/{chunk-YNX6D2I6.js → chunk-P33ELNYE.js} +342 -383
  14. package/dist/chunk-P33ELNYE.js.map +1 -0
  15. package/dist/chunk-Q4EIXB5V.js +330 -0
  16. package/dist/chunk-Q4EIXB5V.js.map +1 -0
  17. package/dist/{chunk-NVNEYZ3J.js → chunk-RLV2H3QB.js} +11 -11
  18. package/dist/chunk-RLV2H3QB.js.map +1 -0
  19. package/dist/{chunk-RILZCPJE.js → chunk-VAPIKX4A.js} +308 -503
  20. package/dist/chunk-VAPIKX4A.js.map +1 -0
  21. package/dist/cli.js +2 -1
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/build.js +17 -10
  24. package/dist/commands/build.js.map +1 -1
  25. package/dist/commands/create.js +14 -7
  26. package/dist/commands/create.js.map +1 -1
  27. package/dist/commands/init.js +7 -6
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/preview.js +16 -9
  30. package/dist/commands/preview.js.map +1 -1
  31. package/dist/config/schema.d.ts +13293 -1796
  32. package/dist/config/schema.js +7 -2
  33. package/dist/constants.d.ts +250 -0
  34. package/dist/constants.js +60 -0
  35. package/dist/constants.js.map +1 -0
  36. package/dist/index.js +13 -12
  37. package/dist/index.js.map +1 -1
  38. package/dist/vite-adapter.js +6 -5
  39. package/package.json +16 -12
  40. package/dist/chunk-3QOSSWIX.js.map +0 -1
  41. package/dist/chunk-ALY3QX7K.js.map +0 -1
  42. package/dist/chunk-NVNEYZ3J.js.map +0 -1
  43. package/dist/chunk-QLK3XMQI.js.map +0 -1
  44. package/dist/chunk-RILZCPJE.js.map +0 -1
  45. package/dist/chunk-YNX6D2I6.js.map +0 -1
  46. package/dist/chunk-ZEBXHUJX.js.map +0 -1
  47. /package/dist/{chunk-RBKPG6VU.js.map → chunk-4DTPH2XX.js.map} +0 -0
@@ -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 // Only call process.exit() for signals, not for 'exit' event.\n // Calling process.exit() inside 'exit' handler prevents other\n // 'exit' listeners from being executed.\n if (sig !== 'exit') {\n process.exit();\n }\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"]}