@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger.ts","../src/util.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"],"sourcesContent":["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","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 StreamZip from 'node-stream-zip';\nimport childProcess, { type ExecFileOptions } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport { fileURLToPath } from 'node:url';\nimport util from 'node:util';\nimport osLocale from 'os-locale';\nimport resolvePkg from 'resolve-pkg';\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 './constants.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 | Promise<void>)[] = [];\nlet exitHandlersRun = false;\n\nexport const registerExitHandler = (\n debugMessage: string,\n handler: () => void | Promise<void>,\n) => {\n const callback = () => {\n Logger.debug(debugMessage);\n return 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 async function runExitHandlers() {\n if (exitHandlersRun) return;\n exitHandlersRun = true;\n while (beforeExitHandlers.length) {\n try {\n await beforeExitHandlers.shift()?.();\n } catch (e) {\n // NOOP\n }\n }\n}\n\nlet terminating = false;\n\nasync function terminate(exitCode: number) {\n if (terminating) return;\n terminating = true;\n try {\n if (exitCode === 130 || exitCode === 143) {\n await runExitHandlers();\n } else {\n runExitHandlers();\n }\n } finally {\n process.exit(exitCode);\n }\n}\n\nprocess.once('SIGINT', () => void terminate(130));\nprocess.once('SIGTERM', () => void terminate(143));\nprocess.once('exit', (code) => {\n void runExitHandlers();\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 if (cachedLocale) {\n return cachedLocale;\n }\n const locale = osLocale();\n\n const langs = Object.keys(LANGUAGES);\n cachedLocale = langs.includes(locale)\n ? locale\n : langs.includes(locale.split('-')[0])\n ? locale.split('-')[0]\n : 'en';\n return cachedLocale;\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\nexport const cliRoot = upath.join(fileURLToPath(import.meta.url), '../..');\nexport const cliVersion = (() => {\n if (import.meta.env?.VITEST) {\n return '0.0.1';\n }\n const pkg = JSON.parse(\n fs.readFileSync(upath.join(cliRoot, 'package.json'), 'utf8'),\n );\n return pkg.version;\n})();\n\nexport const viewerRoot = resolvePkg('@vivliostyle/viewer', { cwd: cliRoot });\nexport const coreVersion = (() => {\n if (import.meta.env?.VITEST) {\n return '0.0.1';\n }\n if (!viewerRoot) {\n return 'Unknown';\n }\n const pkg = JSON.parse(\n fs.readFileSync(upath.join(viewerRoot, 'package.json'), 'utf8'),\n );\n return pkg.version;\n})();\n\nexport const versionForDisplay = `cli: ${cliVersion}\ncore: ${coreVersion}`;\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"],"mappings":"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","names":["redBright","isInContainer","isRunningOnWSL","issues","getCacheDir","detectBrowserPlatform","redBright"]}
package/dist/cli.js CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  versionForDisplay
4
- } from "./chunk-ZEBXHUJX.js";
4
+ } from "./chunk-VAPIKX4A.js";
5
+ import "./chunk-DK3HFVHX.js";
5
6
  import "./chunk-I7BWSAN6.js";
6
7
 
7
8
  // src/cli.ts
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { versionForDisplay } from './const.js';\n\nconst program = new Command();\nprogram\n .name('vivliostyle')\n .version(versionForDisplay, '-v, --version')\n .command('create', 'Scaffold a new Vivliostyle project', {\n executableFile: 'commands/create',\n })\n .command('init', 'Create a Vivliostyle configuration file', {\n executableFile: 'commands/init',\n })\n .command('build', 'Create PDF, EPUB, and other publication files', {\n executableFile: 'commands/build',\n })\n .command('preview', 'Open the preview page and interactively save PDFs', {\n executableFile: 'commands/preview',\n })\n .parse(process.argv);\n"],"mappings":";;;;;;;AAEA,SAAS,eAAe;AAGxB,IAAM,UAAU,IAAI,QAAQ;AAC5B,QACG,KAAK,aAAa,EAClB,QAAQ,mBAAmB,eAAe,EAC1C,QAAQ,UAAU,sCAAsC;AAAA,EACvD,gBAAgB;AAClB,CAAC,EACA,QAAQ,QAAQ,2CAA2C;AAAA,EAC1D,gBAAgB;AAClB,CAAC,EACA,QAAQ,SAAS,iDAAiD;AAAA,EACjE,gBAAgB;AAClB,CAAC,EACA,QAAQ,WAAW,qDAAqD;AAAA,EACvE,gBAAgB;AAClB,CAAC,EACA,MAAM,QAAQ,IAAI;","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { versionForDisplay } from './util.js';\n\nconst program = new Command();\nprogram\n .name('vivliostyle')\n .version(versionForDisplay, '-v, --version')\n .command('create', 'Scaffold a new Vivliostyle project', {\n executableFile: 'commands/create',\n })\n .command('init', 'Create a Vivliostyle configuration file', {\n executableFile: 'commands/init',\n })\n .command('build', 'Create PDF, EPUB, and other publication files', {\n executableFile: 'commands/build',\n })\n .command('preview', 'Open the preview page and interactively save PDFs', {\n executableFile: 'commands/preview',\n })\n .parse(process.argv);\n"],"mappings":";;;;;;;;AAEA,SAAS,eAAe;AAGxB,IAAM,UAAU,IAAI,QAAQ;AAC5B,QACG,KAAK,aAAa,EAClB,QAAQ,mBAAmB,eAAe,EAC1C,QAAQ,UAAU,sCAAsC;AAAA,EACvD,gBAAgB;AAClB,CAAC,EACA,QAAQ,QAAQ,2CAA2C;AAAA,EAC1D,gBAAgB;AAClB,CAAC,EACA,QAAQ,SAAS,iDAAiD;AAAA,EACjE,gBAAgB;AAClB,CAAC,EACA,QAAQ,WAAW,qDAAqD;AAAA,EACvE,gBAAgB;AAClB,CAAC,EACA,MAAM,QAAQ,IAAI;","names":[]}
@@ -1,19 +1,20 @@
1
1
  import {
2
2
  build
3
- } from "../chunk-ALY3QX7K.js";
4
- import "../chunk-RBKPG6VU.js";
5
- import "../chunk-YNX6D2I6.js";
3
+ } from "../chunk-L4PJ2SP3.js";
4
+ import "../chunk-4DTPH2XX.js";
5
+ import "../chunk-P33ELNYE.js";
6
6
  import "../chunk-ECEGM36O.js";
7
+ import {
8
+ createParserProgram
9
+ } from "../chunk-Q4EIXB5V.js";
10
+ import "../chunk-J2YGULSR.js";
7
11
  import {
8
12
  Logger,
9
- createParserProgram,
10
13
  gracefulError,
11
- isInContainer
12
- } from "../chunk-RILZCPJE.js";
13
- import "../chunk-3QOSSWIX.js";
14
- import {
14
+ isInContainer,
15
15
  versionForDisplay
16
- } from "../chunk-ZEBXHUJX.js";
16
+ } from "../chunk-VAPIKX4A.js";
17
+ import "../chunk-DK3HFVHX.js";
17
18
  import "../chunk-I7BWSAN6.js";
18
19
 
19
20
  // src/commands/build.ts
@@ -69,7 +70,13 @@ custom(comma separated): 182mm,257mm or 8.5in,11in`
69
70
  ).option(
70
71
  "--css <CSS>",
71
72
  'custom style CSS code. (ex: ":root {--my-color: lime;}")'
72
- ).option("--style <stylesheet>", "additional stylesheet URL or path").option("--user-style <user_stylesheet>", "user stylesheet URL or path").option("-d, --single-doc", "single HTML document input").option(
73
+ ).option(
74
+ "--style <stylesheet>",
75
+ "Additional stylesheet for Vivliostyle viewer."
76
+ ).option(
77
+ "--user-style <user_stylesheet>",
78
+ "Additional user stylesheet for Vivliostyle viewer."
79
+ ).option("-d, --single-doc", "single HTML document input").option(
73
80
  "-p, --press-ready",
74
81
  `make generated PDF compatible with press ready PDF/X-1a [false]
75
82
  This option is equivalent with "--preflight press-ready"`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/build.ts","../../src/commands/build.parser.ts"],"sourcesContent":["import process from 'node:process';\nimport { build } from '../core/build.js';\nimport { Logger } from '../logger.js';\nimport { gracefulError, isInContainer } from '../util.js';\nimport { parseBuildCommand } from './build.parser.js';\n\ntry {\n let inlineConfig = parseBuildCommand(process.argv);\n let containerForkMode = false;\n if (isInContainer() && process.env.VS_CLI_BUILD_PDF_OPTIONS) {\n inlineConfig = JSON.parse(process.env.VS_CLI_BUILD_PDF_OPTIONS);\n containerForkMode = true;\n Logger.debug('bypassedPdfBuilderOption %O', inlineConfig);\n }\n await build(inlineConfig, { containerForkMode });\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n","import { Command, Option } from 'commander';\nimport upath from 'upath';\nimport { versionForDisplay } from '../const.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupBuildParserProgram(): Command {\n // Provide an order-sensitive command parser\n // ex: \"-o foo -o bar -f baz\"\n // → [{path: \"foo\"}, {path:\"bar\", format: \"baz\"}]\n // ex: \"-f foo -o bar -o baz -f piyo\"\n // → [{path: \"bar\", format: \"foo\"}, {path: \"baz\", format: \"piyo\"}]\n const targets: {\n path?: string;\n format?: string;\n }[] = [];\n const outputOptionProcessor = (\n value: string,\n previous?: string[],\n ): string[] => {\n if (targets.length === 0 || 'path' in targets[targets.length - 1]) {\n targets.push({ path: value });\n } else {\n targets[targets.length - 1].path = value;\n }\n return [...(previous || []), value];\n };\n const formatOptionProcessor = (\n value: string,\n previous?: string[],\n ): string[] => {\n if (targets.length === 0 || 'format' in targets[targets.length - 1]) {\n targets.push({ format: value });\n } else {\n targets[targets.length - 1].format = value;\n }\n return [...(previous || []), value];\n };\n\n const program = new Command();\n program\n .name('vivliostyle build')\n .description('build and create PDF file')\n .arguments('[input]')\n .option(\n '-c, --config <config_file>',\n 'path to vivliostyle.config.js [vivliostyle.config.js]',\n )\n .option(\n '-o, --output <path>',\n `specify output file name or directory [<title>.pdf]\nThis option can be specified multiple, then each -o options can be supplied one -f option.\nex: -o output1 -f webpub -o output2.pdf -f pdf`,\n outputOptionProcessor,\n )\n .option(\n '-f, --format <format>',\n `specify output format corresponding output target\nIf an extension is specified on -o option, this field will be inferenced automatically.`,\n formatOptionProcessor,\n )\n .option(\n '-s, --size <size>',\n `output pdf size\npreset: A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger\ncustom(comma separated): 182mm,257mm or 8.5in,11in`,\n )\n .option('-m, --crop-marks', 'print crop marks')\n .option(\n '--bleed <bleed>',\n 'extent of the bleed area for printing with crop marks [3mm]',\n )\n .option(\n '--crop-offset <offset>',\n 'distance between the edge of the trim size and the edge of the media size. [auto (13mm + bleed)]',\n )\n .option(\n '--css <CSS>',\n 'custom style CSS code. (ex: \":root {--my-color: lime;}\")',\n )\n .option('--style <stylesheet>', 'additional stylesheet URL or path')\n .option('--user-style <user_stylesheet>', 'user stylesheet URL or path')\n .option('-d, --single-doc', 'single HTML document input')\n .option(\n '-p, --press-ready',\n `make generated PDF compatible with press ready PDF/X-1a [false]\nThis option is equivalent with \"--preflight press-ready\"`,\n )\n .option(\n '-t, --timeout <seconds>',\n `timeout limit for waiting Vivliostyle process [300]`,\n validateTimeoutFlag,\n )\n .option('-T, --theme <theme...>', 'theme path or package name')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .addOption(\n new Option(\n '--reading-progression <direction>',\n 'Direction of reading progression',\n ).choices(['ltr', 'rtl']),\n )\n .addOption(\n new Option(\n '--render-mode <mode>',\n 'if docker is set, Vivliostyle try to render PDF on Docker container [local]',\n ).choices(['local', 'docker']),\n )\n .addOption(\n new Option(\n '--preflight <mode>',\n 'apply the process to generate PDF for printing',\n ).choices(['press-ready', 'press-ready-local']),\n )\n .option(\n '--preflight-option <options...>',\n `options for preflight process (ex: gray-scale, enforce-outline)\nPlease refer the document of press-ready for further information.\nhttps://github.com/vibranthq/press-ready`,\n )\n .option('--cmyk', 'convert device-cmyk() colors to CMYK in the output PDF')\n .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .option(\n '--executable-browser <path>',\n 'specify a path of executable browser you installed',\n )\n .option('--image <image>', 'specify a docker image to render')\n .option(\n '--viewer <URL>',\n `specify a URL of displaying viewer instead of vivliostyle-cli's one\nIt is useful that using own viewer that has staging features. (ex: https://vivliostyle.vercel.app/)`,\n )\n .option(\n '--viewer-param <parameters>',\n `specify viewer parameters. (ex: \"allowScripts=false&pixelRatio=16\")`,\n )\n .addOption(\n new Option(\n '--browser <browser>',\n `Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-server <proxyServer>',\n `HTTP/SOCK proxy server url for underlying Playwright`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .addOption(\n new Option(\n '--ignore-https-errors',\n `true to ignore HTTPS errors when Playwright browser opens a new page`,\n ),\n )\n .option('--host <host>', 'IP address the server should listen on')\n .option('--port <port>', 'port the server should listen on', parseInt)\n .option('--no-enable-static-serve', 'disable static file serving')\n .option('--vite-config-file <path>', 'Vite config file path')\n .option(\n '--no-vite-config-file',\n 'ignore Vite config file even if it exists',\n )\n .version(versionForDisplay, '-v, --version')\n .action((_arg, option) => {\n let invalid = targets.find((it) => !('path' in it));\n if (invalid) {\n // -f is an optional option but -o is required one\n throw new Error(\n `Couldn't find the output option corresponding --format ${invalid.format} option. Please check the command options.`,\n );\n }\n option.output = targets;\n });\n\n return program;\n}\n\nfunction validateTimeoutFlag(val: string) {\n return Number.isFinite(+val) ? +val * 1000 : undefined;\n}\n\nexport const parseBuildCommand = createParserProgram({\n setupProgram: setupBuildParserProgram,\n parseArgs: (options, [input]) => {\n if (\n input &&\n !options.config &&\n upath.basename(input).startsWith('vivliostyle.config')\n ) {\n // Load an input argument as a Vivliostyle config\n return { ...options, config: input };\n }\n return { ...options, input };\n },\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/commands/build.ts","../../src/commands/build.parser.ts"],"sourcesContent":["import process from 'node:process';\nimport { build } from '../core/build.js';\nimport { Logger } from '../logger.js';\nimport { gracefulError, isInContainer } from '../util.js';\nimport { parseBuildCommand } from './build.parser.js';\n\ntry {\n let inlineConfig = parseBuildCommand(process.argv);\n let containerForkMode = false;\n if (isInContainer() && process.env.VS_CLI_BUILD_PDF_OPTIONS) {\n inlineConfig = JSON.parse(process.env.VS_CLI_BUILD_PDF_OPTIONS);\n containerForkMode = true;\n Logger.debug('bypassedPdfBuilderOption %O', inlineConfig);\n }\n await build(inlineConfig, { containerForkMode });\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n","import { Command, Option } from 'commander';\nimport upath from 'upath';\nimport { versionForDisplay } from '../util.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupBuildParserProgram(): Command {\n // Provide an order-sensitive command parser\n // ex: \"-o foo -o bar -f baz\"\n // → [{path: \"foo\"}, {path:\"bar\", format: \"baz\"}]\n // ex: \"-f foo -o bar -o baz -f piyo\"\n // → [{path: \"bar\", format: \"foo\"}, {path: \"baz\", format: \"piyo\"}]\n const targets: {\n path?: string;\n format?: string;\n }[] = [];\n const outputOptionProcessor = (\n value: string,\n previous?: string[],\n ): string[] => {\n if (targets.length === 0 || 'path' in targets[targets.length - 1]) {\n targets.push({ path: value });\n } else {\n targets[targets.length - 1].path = value;\n }\n return [...(previous || []), value];\n };\n const formatOptionProcessor = (\n value: string,\n previous?: string[],\n ): string[] => {\n if (targets.length === 0 || 'format' in targets[targets.length - 1]) {\n targets.push({ format: value });\n } else {\n targets[targets.length - 1].format = value;\n }\n return [...(previous || []), value];\n };\n\n const program = new Command();\n program\n .name('vivliostyle build')\n .description('build and create PDF file')\n .arguments('[input]')\n .option(\n '-c, --config <config_file>',\n 'path to vivliostyle.config.js [vivliostyle.config.js]',\n )\n .option(\n '-o, --output <path>',\n `specify output file name or directory [<title>.pdf]\nThis option can be specified multiple, then each -o options can be supplied one -f option.\nex: -o output1 -f webpub -o output2.pdf -f pdf`,\n outputOptionProcessor,\n )\n .option(\n '-f, --format <format>',\n `specify output format corresponding output target\nIf an extension is specified on -o option, this field will be inferenced automatically.`,\n formatOptionProcessor,\n )\n .option(\n '-s, --size <size>',\n `output pdf size\npreset: A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger\ncustom(comma separated): 182mm,257mm or 8.5in,11in`,\n )\n .option('-m, --crop-marks', 'print crop marks')\n .option(\n '--bleed <bleed>',\n 'extent of the bleed area for printing with crop marks [3mm]',\n )\n .option(\n '--crop-offset <offset>',\n 'distance between the edge of the trim size and the edge of the media size. [auto (13mm + bleed)]',\n )\n .option(\n '--css <CSS>',\n 'custom style CSS code. (ex: \":root {--my-color: lime;}\")',\n )\n .option(\n '--style <stylesheet>',\n 'Additional stylesheet for Vivliostyle viewer.',\n )\n .option(\n '--user-style <user_stylesheet>',\n 'Additional user stylesheet for Vivliostyle viewer.',\n )\n .option('-d, --single-doc', 'single HTML document input')\n .option(\n '-p, --press-ready',\n `make generated PDF compatible with press ready PDF/X-1a [false]\nThis option is equivalent with \"--preflight press-ready\"`,\n )\n .option(\n '-t, --timeout <seconds>',\n `timeout limit for waiting Vivliostyle process [300]`,\n validateTimeoutFlag,\n )\n .option('-T, --theme <theme...>', 'theme path or package name')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .addOption(\n new Option(\n '--reading-progression <direction>',\n 'Direction of reading progression',\n ).choices(['ltr', 'rtl']),\n )\n .addOption(\n new Option(\n '--render-mode <mode>',\n 'if docker is set, Vivliostyle try to render PDF on Docker container [local]',\n ).choices(['local', 'docker']),\n )\n .addOption(\n new Option(\n '--preflight <mode>',\n 'apply the process to generate PDF for printing',\n ).choices(['press-ready', 'press-ready-local']),\n )\n .option(\n '--preflight-option <options...>',\n `options for preflight process (ex: gray-scale, enforce-outline)\nPlease refer the document of press-ready for further information.\nhttps://github.com/vibranthq/press-ready`,\n )\n .option('--cmyk', 'convert device-cmyk() colors to CMYK in the output PDF')\n .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .option(\n '--executable-browser <path>',\n 'specify a path of executable browser you installed',\n )\n .option('--image <image>', 'specify a docker image to render')\n .option(\n '--viewer <URL>',\n `specify a URL of displaying viewer instead of vivliostyle-cli's one\nIt is useful that using own viewer that has staging features. (ex: https://vivliostyle.vercel.app/)`,\n )\n .option(\n '--viewer-param <parameters>',\n `specify viewer parameters. (ex: \"allowScripts=false&pixelRatio=16\")`,\n )\n .addOption(\n new Option(\n '--browser <browser>',\n `Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-server <proxyServer>',\n `HTTP/SOCK proxy server url for underlying Playwright`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .addOption(\n new Option(\n '--ignore-https-errors',\n `true to ignore HTTPS errors when Playwright browser opens a new page`,\n ),\n )\n .option('--host <host>', 'IP address the server should listen on')\n .option('--port <port>', 'port the server should listen on', parseInt)\n .option('--no-enable-static-serve', 'disable static file serving')\n .option('--vite-config-file <path>', 'Vite config file path')\n .option(\n '--no-vite-config-file',\n 'ignore Vite config file even if it exists',\n )\n .version(versionForDisplay, '-v, --version')\n .action((_arg, option) => {\n let invalid = targets.find((it) => !('path' in it));\n if (invalid) {\n // -f is an optional option but -o is required one\n throw new Error(\n `Couldn't find the output option corresponding --format ${invalid.format} option. Please check the command options.`,\n );\n }\n option.output = targets;\n });\n\n return program;\n}\n\nfunction validateTimeoutFlag(val: string) {\n return Number.isFinite(+val) ? +val * 1000 : undefined;\n}\n\nexport const parseBuildCommand = createParserProgram({\n setupProgram: setupBuildParserProgram,\n parseArgs: (options, [input]) => {\n if (\n input &&\n !options.config &&\n upath.basename(input).startsWith('vivliostyle.config')\n ) {\n // Load an input argument as a Vivliostyle config\n return { ...options, config: input };\n }\n return { ...options, input };\n },\n});\n"],"mappings":"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","names":[]}
@@ -1,23 +1,30 @@
1
1
  import {
2
2
  create
3
- } from "../chunk-QLK3XMQI.js";
3
+ } from "../chunk-DEJL63H2.js";
4
4
  import {
5
- createParserProgram,
6
- gracefulError
7
- } from "../chunk-RILZCPJE.js";
8
- import "../chunk-3QOSSWIX.js";
5
+ createParserProgram
6
+ } from "../chunk-Q4EIXB5V.js";
7
+ import "../chunk-J2YGULSR.js";
9
8
  import {
9
+ gracefulError,
10
10
  versionForDisplay
11
- } from "../chunk-ZEBXHUJX.js";
11
+ } from "../chunk-VAPIKX4A.js";
12
+ import "../chunk-DK3HFVHX.js";
12
13
  import "../chunk-I7BWSAN6.js";
13
14
 
14
15
  // src/commands/create.parser.ts
15
16
  import { Command, Option } from "commander";
16
17
  function setupCreateParserProgram() {
17
18
  const program = new Command();
18
- program.name("vivliostyle create").description("scaffold a new Vivliostyle project").arguments("[projectPath]").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").option("-s, --size <size>", "paper size").option("-T, --theme <theme>", "theme").option(
19
+ program.name("vivliostyle create").description("scaffold a new Vivliostyle project").arguments("[projectPath]").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").option("-s, --size <size>", "paper size").option("-T, --theme <theme>", "theme").option("--no-theme", "Do not include a theme.").option(
19
20
  "--template <template>",
20
21
  `Template source in the format of \`[provider]:repo[/subpath][#ref]\` or as a local directory to copy from.`
22
+ ).option(
23
+ "--install-dependencies",
24
+ "Install dependencies after creating a project."
25
+ ).option(
26
+ "--no-install-dependencies",
27
+ "Do not install dependencies after creating a project."
21
28
  ).option(
22
29
  "--create-config-file-only",
23
30
  `Create a Vivliostyle config file without generating project template files.`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/create.parser.ts","../../src/commands/create.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { versionForDisplay } from '../const.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupCreateParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle create')\n .description('scaffold a new Vivliostyle project')\n .arguments('[projectPath]')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .option('-s, --size <size>', 'paper size')\n .option('-T, --theme <theme>', 'theme')\n .option(\n '--template <template>',\n `Template source in the format of \\`[provider]:repo[/subpath][#ref]\\` or as a local directory to copy from.`,\n )\n .option(\n '--create-config-file-only',\n `Create a Vivliostyle config file without generating project template files.`,\n )\n .addOption(\n new Option('--proxy-server <proxyServer>', `HTTP/SOCK proxy server url`),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\nexport const parseCreateCommand = createParserProgram({\n setupProgram: setupCreateParserProgram,\n parseArgs: (options, [projectPath]) => ({ ...options, projectPath }),\n});\n","import { create } from '../core/create.js';\nimport { gracefulError } from '../util.js';\nimport { parseCreateCommand } from './create.parser.js';\n\ntry {\n const inlineConfig = parseCreateCommand(process.argv);\n await create(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAIhC,SAAS,2BAAoC;AAC3C,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,oBAAoB,EACzB,YAAY,oCAAoC,EAChD,UAAU,eAAe,EACzB,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C,OAAO,qBAAqB,YAAY,EACxC,OAAO,uBAAuB,OAAO,EACrC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC,IAAI,OAAO,gCAAgC,4BAA4B;AAAA,EACzE,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAEO,IAAM,qBAAqB,oBAAoB;AAAA,EACpD,cAAc;AAAA,EACd,WAAW,CAAC,SAAS,CAAC,WAAW,OAAO,EAAE,GAAG,SAAS,YAAY;AACpE,CAAC;;;ACvDD,IAAI;AACF,QAAM,eAAe,mBAAmB,QAAQ,IAAI;AACpD,QAAM,OAAO,YAAY;AAC3B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/create.parser.ts","../../src/commands/create.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { versionForDisplay } from '../util.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupCreateParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle create')\n .description('scaffold a new Vivliostyle project')\n .arguments('[projectPath]')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .option('-s, --size <size>', 'paper size')\n .option('-T, --theme <theme>', 'theme')\n .option('--no-theme', 'Do not include a theme.')\n .option(\n '--template <template>',\n `Template source in the format of \\`[provider]:repo[/subpath][#ref]\\` or as a local directory to copy from.`,\n )\n .option(\n '--install-dependencies',\n 'Install dependencies after creating a project.',\n )\n .option(\n '--no-install-dependencies',\n 'Do not install dependencies after creating a project.',\n )\n .option(\n '--create-config-file-only',\n `Create a Vivliostyle config file without generating project template files.`,\n )\n .addOption(\n new Option('--proxy-server <proxyServer>', `HTTP/SOCK proxy server url`),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\nexport const parseCreateCommand = createParserProgram({\n setupProgram: setupCreateParserProgram,\n parseArgs: (options, [projectPath]) => ({ ...options, projectPath }),\n});\n","import { create } from '../core/create.js';\nimport { gracefulError } from '../util.js';\nimport { parseCreateCommand } from './create.parser.js';\n\ntry {\n const inlineConfig = parseCreateCommand(process.argv);\n await create(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAIhC,SAAS,2BAAoC;AAC3C,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,oBAAoB,EACzB,YAAY,oCAAoC,EAChD,UAAU,eAAe,EACzB,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C,OAAO,qBAAqB,YAAY,EACxC,OAAO,uBAAuB,OAAO,EACrC,OAAO,cAAc,yBAAyB,EAC9C;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC,IAAI,OAAO,gCAAgC,4BAA4B;AAAA,EACzE,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAEO,IAAM,qBAAqB,oBAAoB;AAAA,EACpD,cAAc;AAAA,EACd,WAAW,CAAC,SAAS,CAAC,WAAW,OAAO,EAAE,GAAG,SAAS,YAAY;AACpE,CAAC;;;AChED,IAAI;AACF,QAAM,eAAe,mBAAmB,QAAQ,IAAI;AACpD,QAAM,OAAO,YAAY;AAC3B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  create
3
- } from "../chunk-QLK3XMQI.js";
3
+ } from "../chunk-DEJL63H2.js";
4
4
  import {
5
- createParserProgram,
6
- gracefulError
7
- } from "../chunk-RILZCPJE.js";
8
- import "../chunk-3QOSSWIX.js";
5
+ createParserProgram
6
+ } from "../chunk-Q4EIXB5V.js";
7
+ import "../chunk-J2YGULSR.js";
9
8
  import {
9
+ gracefulError,
10
10
  versionForDisplay
11
- } from "../chunk-ZEBXHUJX.js";
11
+ } from "../chunk-VAPIKX4A.js";
12
+ import "../chunk-DK3HFVHX.js";
12
13
  import "../chunk-I7BWSAN6.js";
13
14
 
14
15
  // src/commands/init.parser.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/init.parser.ts","../../src/commands/init.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { versionForDisplay } from '../const.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupInitParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle init')\n .description('create vivliostyle config file')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .option('-s, --size <size>', 'paper size')\n .option('-T, --theme <theme>', 'theme')\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\n// The `init` command is actually an alias for `create --create-config-file-only`\nexport const parseInitCommand = createParserProgram({\n setupProgram: setupInitParserProgram,\n parseArgs: (options) => ({\n ...options,\n projectPath: '.',\n createConfigFileOnly: true,\n template: undefined,\n }),\n});\n","import { create } from '../core/create.js';\nimport { gracefulError } from '../util.js';\nimport { parseInitCommand } from './init.parser.js';\n\ntry {\n const inlineConfig = parseInitCommand(process.argv);\n await create(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAIhC,SAAS,yBAAkC;AACzC,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,kBAAkB,EACvB,YAAY,gCAAgC,EAC5C,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C,OAAO,qBAAqB,YAAY,EACxC,OAAO,uBAAuB,OAAO,EACrC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAGO,IAAM,mBAAmB,oBAAoB;AAAA,EAClD,cAAc;AAAA,EACd,WAAW,CAAC,aAAa;AAAA,IACvB,GAAG;AAAA,IACH,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,UAAU;AAAA,EACZ;AACF,CAAC;;;AC/BD,IAAI;AACF,QAAM,eAAe,iBAAiB,QAAQ,IAAI;AAClD,QAAM,OAAO,YAAY;AAC3B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/init.parser.ts","../../src/commands/init.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { versionForDisplay } from '../util.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupInitParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle init')\n .description('create vivliostyle config file')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .option('-s, --size <size>', 'paper size')\n .option('-T, --theme <theme>', 'theme')\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\n// The `init` command is actually an alias for `create --create-config-file-only`\nexport const parseInitCommand = createParserProgram({\n setupProgram: setupInitParserProgram,\n parseArgs: (options) => ({\n ...options,\n projectPath: '.',\n createConfigFileOnly: true,\n template: undefined,\n }),\n});\n","import { create } from '../core/create.js';\nimport { gracefulError } from '../util.js';\nimport { parseInitCommand } from './init.parser.js';\n\ntry {\n const inlineConfig = parseInitCommand(process.argv);\n await create(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAIhC,SAAS,yBAAkC;AACzC,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,kBAAkB,EACvB,YAAY,gCAAgC,EAC5C,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C,OAAO,qBAAqB,YAAY,EACxC,OAAO,uBAAuB,OAAO,EACrC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAGO,IAAM,mBAAmB,oBAAoB;AAAA,EAClD,cAAc;AAAA,EACd,WAAW,CAAC,aAAa;AAAA,IACvB,GAAG;AAAA,IACH,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,UAAU;AAAA,EACZ;AACF,CAAC;;;AC/BD,IAAI;AACF,QAAM,eAAe,iBAAiB,QAAQ,IAAI;AAClD,QAAM,OAAO,YAAY;AAC3B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}
@@ -1,17 +1,18 @@
1
1
  import {
2
2
  preview
3
- } from "../chunk-NVNEYZ3J.js";
4
- import "../chunk-RBKPG6VU.js";
5
- import "../chunk-YNX6D2I6.js";
3
+ } from "../chunk-RLV2H3QB.js";
4
+ import "../chunk-4DTPH2XX.js";
5
+ import "../chunk-P33ELNYE.js";
6
6
  import "../chunk-ECEGM36O.js";
7
7
  import {
8
- createParserProgram,
9
- gracefulError
10
- } from "../chunk-RILZCPJE.js";
11
- import "../chunk-3QOSSWIX.js";
8
+ createParserProgram
9
+ } from "../chunk-Q4EIXB5V.js";
10
+ import "../chunk-J2YGULSR.js";
12
11
  import {
12
+ gracefulError,
13
13
  versionForDisplay
14
- } from "../chunk-ZEBXHUJX.js";
14
+ } from "../chunk-VAPIKX4A.js";
15
+ import "../chunk-DK3HFVHX.js";
15
16
  import "../chunk-I7BWSAN6.js";
16
17
 
17
18
  // src/commands/preview.parser.ts
@@ -33,7 +34,13 @@ custom(comma separated): 182mm,257mm or 8.5in,11in`
33
34
  ).option(
34
35
  "--css <CSS>",
35
36
  'custom style CSS code. (ex: ":root {--my-color: lime;}")'
36
- ).option("--style <stylesheet>", "additional stylesheet URL or path").option("--user-style <user_stylesheet>", "user stylesheet URL or path").option("-d, --single-doc", "single HTML document input").option("-q, --quick", "quick loading with rough page count").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").addOption(
37
+ ).option(
38
+ "--style <stylesheet>",
39
+ "Additional stylesheet for Vivliostyle viewer."
40
+ ).option(
41
+ "--user-style <user_stylesheet>",
42
+ "Additional user stylesheet for Vivliostyle viewer."
43
+ ).option("-d, --single-doc", "single HTML document input").option("-q, --quick", "quick loading with rough page count").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").addOption(
37
44
  new Option(
38
45
  "--reading-progression <direction>",
39
46
  "Direction of reading progression"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/preview.parser.ts","../../src/commands/preview.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport upath from 'upath';\nimport { versionForDisplay } from '../const.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupPreviewParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle preview')\n .description('launch preview server')\n .arguments('[input]')\n .option('-c, --config <config_file>', 'path to vivliostyle.config.js')\n .option('-T, --theme <theme...>', 'theme path or package name')\n .option(\n '-s, --size <size>',\n `output pdf size\npreset: A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger\ncustom(comma separated): 182mm,257mm or 8.5in,11in`,\n )\n .option('-m, --crop-marks', 'print crop marks')\n .option(\n '--bleed <bleed>',\n 'extent of the bleed area for printing with crop marks [3mm]',\n )\n .option(\n '--crop-offset <offset>',\n 'distance between the edge of the trim size and the edge of the media size. [auto (13mm + bleed)]',\n )\n .option(\n '--css <CSS>',\n 'custom style CSS code. (ex: \":root {--my-color: lime;}\")',\n )\n .option('--style <stylesheet>', 'additional stylesheet URL or path')\n .option('--user-style <user_stylesheet>', 'user stylesheet URL or path')\n .option('-d, --single-doc', 'single HTML document input')\n .option('-q, --quick', 'quick loading with rough page count')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .addOption(\n new Option(\n '--reading-progression <direction>',\n 'Direction of reading progression',\n ).choices(['ltr', 'rtl']),\n )\n .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .option(\n '--executable-browser <path>',\n 'specify a path of executable browser you installed',\n )\n .option(\n '--viewer <URL>',\n `specify a URL of displaying viewer instead of vivliostyle-cli's one\nIt is useful that using own viewer that has staging features. (ex: https://vivliostyle.vercel.app/)`,\n )\n .option(\n '--viewer-param <parameters>',\n `specify viewer parameters. (ex: \"allowScripts=false&pixelRatio=16\")`,\n )\n .addOption(\n new Option(\n '--browser <browser>',\n `Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-server <proxyServer>',\n `HTTP/SOCK proxy server url for underlying Playwright`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .addOption(\n new Option(\n '--ignore-https-errors',\n `true to ignore HTTPS errors when Playwright browser opens a new page`,\n ),\n )\n .option('--host <host>', 'IP address the server should listen on')\n .option('--port <port>', 'port the server should listen on', parseInt)\n .option('--no-open-viewer', 'do not open viewer')\n .option('--no-enable-static-serve', 'disable static file serving')\n .option('--no-enable-viewer-start-page', 'disable viewer start page')\n .option('--vite-config-file <path>', 'Vite config file path')\n .option(\n '--no-vite-config-file',\n 'ignore Vite config file even if it exists',\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\nexport const parsePreviewCommand = createParserProgram({\n setupProgram: setupPreviewParserProgram,\n parseArgs: (options, [input]) => {\n if (\n input &&\n !options.config &&\n upath.basename(input).startsWith('vivliostyle.config')\n ) {\n // Load an input argument as a Vivliostyle config\n return { ...options, config: input };\n }\n return { ...options, input };\n },\n});\n","import { preview } from '../core/preview.js';\nimport { gracefulError } from '../util.js';\nimport { parsePreviewCommand } from './preview.parser.js';\n\ntry {\n const inlineConfig = parsePreviewCommand(process.argv);\n await preview(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAChC,OAAO,WAAW;AAIlB,SAAS,4BAAqC;AAC5C,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,qBAAqB,EAC1B,YAAY,uBAAuB,EACnC,UAAU,SAAS,EACnB,OAAO,8BAA8B,+BAA+B,EACpE,OAAO,0BAA0B,4BAA4B,EAC7D;AAAA,IACC;AAAA,IACA;AAAA;AAAA;AAAA,EAGF,EACC,OAAO,oBAAoB,kBAAkB,EAC7C;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,OAAO,wBAAwB,mCAAmC,EAClE,OAAO,kCAAkC,6BAA6B,EACtE,OAAO,oBAAoB,4BAA4B,EACvD,OAAO,eAAe,qCAAqC,EAC3D,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,QAAQ,CAAC,OAAO,KAAK,CAAC;AAAA,EAC1B,EACC,UAAU,IAAI,OAAO,aAAa,4BAA4B,EAAE,SAAS,CAAC,EAC1E;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA;AAAA,EAEF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC,OAAO,iBAAiB,wCAAwC,EAChE,OAAO,iBAAiB,oCAAoC,QAAQ,EACpE,OAAO,oBAAoB,oBAAoB,EAC/C,OAAO,4BAA4B,6BAA6B,EAChE,OAAO,iCAAiC,2BAA2B,EACnE,OAAO,6BAA6B,uBAAuB,EAC3D;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAEO,IAAM,sBAAsB,oBAAoB;AAAA,EACrD,cAAc;AAAA,EACd,WAAW,CAAC,SAAS,CAAC,KAAK,MAAM;AAC/B,QACE,SACA,CAAC,QAAQ,UACT,MAAM,SAAS,KAAK,EAAE,WAAW,oBAAoB,GACrD;AAEA,aAAO,EAAE,GAAG,SAAS,QAAQ,MAAM;AAAA,IACrC;AACA,WAAO,EAAE,GAAG,SAAS,MAAM;AAAA,EAC7B;AACF,CAAC;;;AC9HD,IAAI;AACF,QAAM,eAAe,oBAAoB,QAAQ,IAAI;AACrD,QAAM,QAAQ,YAAY;AAC5B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/preview.parser.ts","../../src/commands/preview.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport upath from 'upath';\nimport { versionForDisplay } from '../util.js';\nimport { createParserProgram } from './cli-flags.js';\n\nfunction setupPreviewParserProgram(): Command {\n const program = new Command();\n program\n .name('vivliostyle preview')\n .description('launch preview server')\n .arguments('[input]')\n .option('-c, --config <config_file>', 'path to vivliostyle.config.js')\n .option('-T, --theme <theme...>', 'theme path or package name')\n .option(\n '-s, --size <size>',\n `output pdf size\npreset: A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger\ncustom(comma separated): 182mm,257mm or 8.5in,11in`,\n )\n .option('-m, --crop-marks', 'print crop marks')\n .option(\n '--bleed <bleed>',\n 'extent of the bleed area for printing with crop marks [3mm]',\n )\n .option(\n '--crop-offset <offset>',\n 'distance between the edge of the trim size and the edge of the media size. [auto (13mm + bleed)]',\n )\n .option(\n '--css <CSS>',\n 'custom style CSS code. (ex: \":root {--my-color: lime;}\")',\n )\n .option(\n '--style <stylesheet>',\n 'Additional stylesheet for Vivliostyle viewer.',\n )\n .option(\n '--user-style <user_stylesheet>',\n 'Additional user stylesheet for Vivliostyle viewer.',\n )\n .option('-d, --single-doc', 'single HTML document input')\n .option('-q, --quick', 'quick loading with rough page count')\n .option('--title <title>', 'title')\n .option('--author <author>', 'author')\n .option('-l, --language <language>', 'language')\n .addOption(\n new Option(\n '--reading-progression <direction>',\n 'Direction of reading progression',\n ).choices(['ltr', 'rtl']),\n )\n .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .option(\n '--executable-browser <path>',\n 'specify a path of executable browser you installed',\n )\n .option(\n '--viewer <URL>',\n `specify a URL of displaying viewer instead of vivliostyle-cli's one\nIt is useful that using own viewer that has staging features. (ex: https://vivliostyle.vercel.app/)`,\n )\n .option(\n '--viewer-param <parameters>',\n `specify viewer parameters. (ex: \"allowScripts=false&pixelRatio=16\")`,\n )\n .addOption(\n new Option(\n '--browser <browser>',\n `Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-server <proxyServer>',\n `HTTP/SOCK proxy server url for underlying Playwright`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-bypass <proxyBypass>',\n `optional comma-separated domains to bypass proxy`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-user <proxyUser>',\n `optional username for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--proxy-pass <proxyPass>',\n `optional password for HTTP proxy authentication`,\n ),\n )\n .addOption(\n new Option(\n '--log-level <level>',\n 'specify a log level of console outputs',\n )\n .choices(['silent', 'info', 'verbose', 'debug'])\n .default('info'),\n )\n .addOption(\n new Option(\n '--ignore-https-errors',\n `true to ignore HTTPS errors when Playwright browser opens a new page`,\n ),\n )\n .option('--host <host>', 'IP address the server should listen on')\n .option('--port <port>', 'port the server should listen on', parseInt)\n .option('--no-open-viewer', 'do not open viewer')\n .option('--no-enable-static-serve', 'disable static file serving')\n .option('--no-enable-viewer-start-page', 'disable viewer start page')\n .option('--vite-config-file <path>', 'Vite config file path')\n .option(\n '--no-vite-config-file',\n 'ignore Vite config file even if it exists',\n )\n .version(versionForDisplay, '-v, --version');\n return program;\n}\n\nexport const parsePreviewCommand = createParserProgram({\n setupProgram: setupPreviewParserProgram,\n parseArgs: (options, [input]) => {\n if (\n input &&\n !options.config &&\n upath.basename(input).startsWith('vivliostyle.config')\n ) {\n // Load an input argument as a Vivliostyle config\n return { ...options, config: input };\n }\n return { ...options, input };\n },\n});\n","import { preview } from '../core/preview.js';\nimport { gracefulError } from '../util.js';\nimport { parsePreviewCommand } from './preview.parser.js';\n\ntry {\n const inlineConfig = parsePreviewCommand(process.argv);\n await preview(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS,SAAS,cAAc;AAChC,OAAO,WAAW;AAIlB,SAAS,4BAAqC;AAC5C,QAAM,UAAU,IAAI,QAAQ;AAC5B,UACG,KAAK,qBAAqB,EAC1B,YAAY,uBAAuB,EACnC,UAAU,SAAS,EACnB,OAAO,8BAA8B,+BAA+B,EACpE,OAAO,0BAA0B,4BAA4B,EAC7D;AAAA,IACC;AAAA,IACA;AAAA;AAAA;AAAA,EAGF,EACC,OAAO,oBAAoB,kBAAkB,EAC7C;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,OAAO,oBAAoB,4BAA4B,EACvD,OAAO,eAAe,qCAAqC,EAC3D,OAAO,mBAAmB,OAAO,EACjC,OAAO,qBAAqB,QAAQ,EACpC,OAAO,6BAA6B,UAAU,EAC9C;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EAAE,QAAQ,CAAC,OAAO,KAAK,CAAC;AAAA,EAC1B,EACC,UAAU,IAAI,OAAO,aAAa,4BAA4B,EAAE,SAAS,CAAC,EAC1E;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC;AAAA,IACA;AAAA;AAAA,EAEF,EACC;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF,EACG,QAAQ,CAAC,UAAU,QAAQ,WAAW,OAAO,CAAC,EAC9C,QAAQ,MAAM;AAAA,EACnB,EACC;AAAA,IACC,IAAI;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF,EACC,OAAO,iBAAiB,wCAAwC,EAChE,OAAO,iBAAiB,oCAAoC,QAAQ,EACpE,OAAO,oBAAoB,oBAAoB,EAC/C,OAAO,4BAA4B,6BAA6B,EAChE,OAAO,iCAAiC,2BAA2B,EACnE,OAAO,6BAA6B,uBAAuB,EAC3D;AAAA,IACC;AAAA,IACA;AAAA,EACF,EACC,QAAQ,mBAAmB,eAAe;AAC7C,SAAO;AACT;AAEO,IAAM,sBAAsB,oBAAoB;AAAA,EACrD,cAAc;AAAA,EACd,WAAW,CAAC,SAAS,CAAC,KAAK,MAAM;AAC/B,QACE,SACA,CAAC,QAAQ,UACT,MAAM,SAAS,KAAK,EAAE,WAAW,oBAAoB,GACrD;AAEA,aAAO,EAAE,GAAG,SAAS,QAAQ,MAAM;AAAA,IACrC;AACA,WAAO,EAAE,GAAG,SAAS,MAAM;AAAA,EAC7B;AACF,CAAC;;;ACpID,IAAI;AACF,QAAM,eAAe,oBAAoB,QAAQ,IAAI;AACrD,QAAM,QAAQ,YAAY;AAC5B,SAAS,KAAK;AACZ,MAAI,eAAe,OAAO;AACxB,kBAAc,GAAG;AAAA,EACnB;AACF;","names":[]}