@vivliostyle/cli 9.0.2 → 9.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{chunk-KSGAS7XH.js → chunk-23EG3WEZ.js} +68 -21
- package/dist/chunk-23EG3WEZ.js.map +1 -0
- package/dist/{chunk-JX7KVV6O.js → chunk-BHM4LPO5.js} +4 -4
- package/dist/{chunk-3WXABIMT.js → chunk-FWYKLMUD.js} +2 -2
- package/dist/{chunk-WQC3S32F.js → chunk-MMDG5WCG.js} +16 -12
- package/dist/chunk-MMDG5WCG.js.map +1 -0
- package/dist/{chunk-FIAUNKIE.js → chunk-PL4PTHOJ.js} +2 -2
- package/dist/{chunk-MUCV2MI5.js → chunk-QPBFK57G.js} +4 -4
- package/dist/{chunk-WFLNEE7C.js → chunk-SEVGSYUZ.js} +13 -3
- package/dist/chunk-SEVGSYUZ.js.map +1 -0
- package/dist/{chunk-S2Q2FDUM.js → chunk-U63QI2TT.js} +12 -14
- package/dist/chunk-U63QI2TT.js.map +1 -0
- package/dist/commands/build.js +11 -9
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/init.js +3 -3
- package/dist/commands/preview.js +5 -5
- package/dist/config/schema.d.ts +1756 -1645
- package/dist/config/schema.js +1 -1
- package/dist/index.js +8 -8
- package/dist/vite-adapter.js +4 -4
- package/package.json +3 -4
- package/types/command-exists.d.ts +15 -0
- package/dist/chunk-KSGAS7XH.js.map +0 -1
- package/dist/chunk-S2Q2FDUM.js.map +0 -1
- package/dist/chunk-WFLNEE7C.js.map +0 -1
- package/dist/chunk-WQC3S32F.js.map +0 -1
- /package/dist/{chunk-JX7KVV6O.js.map → chunk-BHM4LPO5.js.map} +0 -0
- /package/dist/{chunk-3WXABIMT.js.map → chunk-FWYKLMUD.js.map} +0 -0
- /package/dist/{chunk-FIAUNKIE.js.map → chunk-PL4PTHOJ.js.map} +0 -0
- /package/dist/{chunk-MUCV2MI5.js.map → chunk-QPBFK57G.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../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/commands/cli-flags.ts"],"sourcesContent":["import { codeFrameColumns } from '@babel/code-frame';\nimport {\n JSONValue,\n ValueNode as JsonValueNode,\n evaluate,\n parse,\n} from '@humanwhocodes/momoa';\nimport { Ajv, Plugin as AjvPlugin, Schema } from 'ajv';\nimport formatsPlugin from 'ajv-formats';\nimport { XMLParser } from 'fast-xml-parser';\nimport StreamZip from 'node-stream-zip';\nimport fs from 'node:fs';\nimport readline from 'node:readline';\nimport util from 'node:util';\nimport tmp from 'tmp';\nimport upath from 'upath';\nimport { BaseIssue } from 'valibot';\nimport { gray, red, redBright } from 'yoctocolors';\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 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 beforeExitHandlers.splice(index, 1);\n }\n };\n};\n\nexport function runExitHandlers() {\n while (beforeExitHandlers.length) {\n try {\n beforeExitHandlers.shift()?.();\n } catch (e) {\n // NOOP\n }\n }\n}\n\nconst exitSignals = ['exit', 'SIGINT', 'SIGTERM'];\nexitSignals.forEach((sig) => {\n process.once(sig, (signal?: string | number, exitCode?: number) => {\n runExitHandlers();\n if (process.exitCode === undefined) {\n process.exitCode =\n exitCode !== undefined ? 128 + exitCode : Number(signal);\n }\n process.exit();\n });\n});\n\nif (process.platform === 'win32') {\n // Windows does not support signals, so use readline interface\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.on('SIGINT', () => {\n runExitHandlers();\n process.exit(1);\n });\n registerExitHandler('Closing readline interface', () => {\n rl.close();\n });\n}\n\nexport class DetailError extends Error {\n constructor(\n message: string | undefined,\n public detail: string | undefined,\n ) {\n super(message);\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\nexport function isInContainer(): boolean {\n return fs.existsSync('/opt/vivliostyle-cli/.vs-cli-version');\n}\n\nexport function isRunningOnWSL(): boolean {\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","import debug from 'debug';\nimport yoctoSpinner, { 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\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\n static debug = debug('vs-cli');\n\n static get #spinner() {\n return this.#loggerInstance && this.#loggerInstance.#_spinner;\n }\n\n static get isInteractive() {\n return Boolean(\n !this.#customLogger &&\n process.stderr.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();\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 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 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.#customLogger || 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 setLogLevel(level?: 'silent' | 'info' | 'verbose' | 'debug') {\n if (!level) {\n return;\n }\n this.#logLevel = (\n {\n silent: 0,\n info: 1,\n verbose: 2,\n debug: 3,\n } as const\n )[level];\n if (this.#logLevel >= 3) {\n debug.enable('vs-cli');\n }\n }\n\n static setCustomLogger(logger: LoggerInterface | undefined) {\n this.#customLogger = logger;\n }\n\n static setLogPrefix(prefix: string) {\n this.#logPrefix = prefix;\n }\n\n #_spinner: Spinner;\n #_disposeSpinnerExitHandler: (() => void) | undefined;\n\n constructor() {\n this.#_spinner = yoctoSpinner({\n spinner: {\n frames: isUnicodeSupported\n ? ['▁▁╱ ', '▁║▁ ', '╲▁▁ ', '▁▁▁ ', '▁▁▁ ', '▁▁▁ ']\n : ['- ', '\\\\ ', '| ', '/ '],\n interval: 80,\n },\n color: 'gray',\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 { Command, OptionValues } from 'commander';\nimport upath from 'upath';\nimport * as v from 'valibot';\nimport {\n InlineOptions,\n OutputConfig,\n ParsedVivliostyleConfigSchema,\n ParsedVivliostyleInlineConfig,\n VivliostyleInlineConfig,\n} from '../config/schema.js';\nimport { EMPTY_DATA_URI } from '../const.js';\nimport { Logger } from '../logger.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?: 'chromium' | 'firefox' | 'webkit';\n proxyServer?: string;\n proxyBypass?: string;\n proxyUser?: string;\n proxyPass?: string;\n logLevel?: 'silent' | 'info' | 'verbose' | 'debug';\n ignoreHttpsErrors?: boolean;\n}\n\nexport function parseFlagsToInlineConfig(\n argv: string[],\n setupProgram: () => Command,\n): ParsedVivliostyleInlineConfig {\n const program = setupProgram();\n program.parse(argv);\n let options = program.opts<CliFlags>();\n const input = program.args?.[0];\n options = warnDeprecatedFlags(options);\n let inlineConfig: unknown = { input, ...options };\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 inlineConfig = { config: input, ...options };\n }\n return v.parse(VivliostyleInlineConfig, inlineConfig);\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 if (options.executableChromium) {\n Logger.logWarn(\n \"'--executable-chromium' option was deprecated and will be removed in a future release. Please replace with '--executable-browser' option.\",\n );\n modifiedOptions.executableBrowser = options.executableChromium;\n }\n\n if (options.verbose) {\n Logger.logWarn(\n \"'--verbose' option was deprecated and will be removed in a future release. Please replace with '--log-level verbose' option.\",\n );\n modifiedOptions.logLevel = 'verbose';\n }\n\n if (options.sandbox === false) {\n Logger.logWarn(\n \"'--no-sandbox' option was deprecated and will be removed in a future release. It is no longer necessary because the sandbox is disabled by default.\",\n );\n }\n\n if (options.http) {\n Logger.logWarn(\n \"'--http' option was deprecated and will be removed in a future release. It is unnecessary because the HTTP server starts automatically.\",\n );\n }\n\n return modifiedOptions;\n}\n"],"mappings":"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","names":["redBright","redBright","issues","v","upath","upath"]}
|
package/dist/commands/build.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
build
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-MMDG5WCG.js";
|
|
4
|
+
import "../chunk-FWYKLMUD.js";
|
|
5
|
+
import "../chunk-23EG3WEZ.js";
|
|
6
6
|
import "../chunk-FXUEYQRY.js";
|
|
7
7
|
import {
|
|
8
8
|
Logger,
|
|
9
9
|
gracefulError,
|
|
10
10
|
isInContainer,
|
|
11
11
|
parseFlagsToInlineConfig
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-U63QI2TT.js";
|
|
13
|
+
import "../chunk-SEVGSYUZ.js";
|
|
14
14
|
import "../chunk-4IIM6RSG.js";
|
|
15
15
|
import "../chunk-I7BWSAN6.js";
|
|
16
16
|
|
|
@@ -72,7 +72,7 @@ custom(comma separated): 182mm,257mm or 8.5in,11in`
|
|
|
72
72
|
This option is equivalent with "--preflight press-ready"`
|
|
73
73
|
).option(
|
|
74
74
|
"-t, --timeout <seconds>",
|
|
75
|
-
`timeout limit for waiting Vivliostyle process [
|
|
75
|
+
`timeout limit for waiting Vivliostyle process [300]`,
|
|
76
76
|
validateTimeoutFlag
|
|
77
77
|
).option("-T, --theme <theme...>", "theme path or package name").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").addOption(
|
|
78
78
|
new Option(
|
|
@@ -151,7 +151,7 @@ It is useful that using own viewer that has staging features. (ex: https://vivli
|
|
|
151
151
|
return program;
|
|
152
152
|
}
|
|
153
153
|
function validateTimeoutFlag(val) {
|
|
154
|
-
return Number.isFinite(+val)
|
|
154
|
+
return Number.isFinite(+val) ? +val * 1e3 : void 0;
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
// src/commands/build.ts
|
|
@@ -160,11 +160,13 @@ try {
|
|
|
160
160
|
process.argv,
|
|
161
161
|
setupBuildParserProgram
|
|
162
162
|
);
|
|
163
|
-
|
|
163
|
+
let containerForkMode = false;
|
|
164
|
+
if (isInContainer() && process.env.VS_CLI_BUILD_PDF_OPTIONS) {
|
|
164
165
|
inlineConfig = JSON.parse(process.env.VS_CLI_BUILD_PDF_OPTIONS);
|
|
166
|
+
containerForkMode = true;
|
|
165
167
|
Logger.debug("bypassedPdfBuilderOption %O", inlineConfig);
|
|
166
168
|
}
|
|
167
|
-
await build(inlineConfig);
|
|
169
|
+
await build(inlineConfig, { containerForkMode });
|
|
168
170
|
} catch (err) {
|
|
169
171
|
if (err instanceof Error) {
|
|
170
172
|
gracefulError(err);
|
|
@@ -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 { setupBuildParserProgram } from './build.parser.js';\nimport { parseFlagsToInlineConfig } from './cli-flags.js';\n\ntry {\n let inlineConfig = parseFlagsToInlineConfig(\n process.argv,\n setupBuildParserProgram,\n );\n if (isInContainer()) {\n inlineConfig = JSON.parse(process.env.VS_CLI_BUILD_PDF_OPTIONS!);\n Logger.debug('bypassedPdfBuilderOption %O', inlineConfig);\n }\n await build(inlineConfig);\n} catch (err) {\n if (err instanceof Error) {\n gracefulError(err);\n }\n}\n","import { Command, Option } from 'commander';\n\nexport function 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 [120]`,\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 .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .addOption(\n new Option('--no-sandbox', `launch chrome without sandbox`).hideHelp(),\n )\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 // Hide --browser option for now. There's no choice other than Chromium.\n // .addOption(\n // new commander.Option(\n // '--browser <browser>',\n // `Specify a browser type to launch Vivliostyle viewer [chromium]\n // Currently, Firefox and Webkit support preview command only!`,\n // ).choices(['chromium', 'firefox', 'webkit']),\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 // TODO: Remove it in the next major version up\n .addOption(new Option('--executable-chromium <path>').hideHelp())\n .addOption(new Option('--verbose').hideHelp())\n .addOption(new Option('--http').hideHelp())\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 > 0 ? +val * 1000 : undefined;\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 { setupBuildParserProgram } from './build.parser.js';\nimport { parseFlagsToInlineConfig } from './cli-flags.js';\n\ntry {\n let inlineConfig = parseFlagsToInlineConfig(\n process.argv,\n setupBuildParserProgram,\n );\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';\n\nexport function 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 .addOption(new Option('--sandbox', `launch chrome with sandbox`).hideHelp())\n .addOption(\n new Option('--no-sandbox', `launch chrome without sandbox`).hideHelp(),\n )\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 // Hide --browser option for now. There's no choice other than Chromium.\n // .addOption(\n // new commander.Option(\n // '--browser <browser>',\n // `Specify a browser type to launch Vivliostyle viewer [chromium]\n // Currently, Firefox and Webkit support preview command only!`,\n // ).choices(['chromium', 'firefox', 'webkit']),\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 // TODO: Remove it in the next major version up\n .addOption(new Option('--executable-chromium <path>').hideHelp())\n .addOption(new Option('--verbose').hideHelp())\n .addOption(new Option('--http').hideHelp())\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"],"mappings":"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","names":[]}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-PL4PTHOJ.js";
|
|
4
4
|
import {
|
|
5
5
|
gracefulError,
|
|
6
6
|
parseFlagsToInlineConfig
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-U63QI2TT.js";
|
|
8
|
+
import "../chunk-SEVGSYUZ.js";
|
|
9
9
|
import "../chunk-4IIM6RSG.js";
|
|
10
10
|
import "../chunk-I7BWSAN6.js";
|
|
11
11
|
|
package/dist/commands/preview.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
preview
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-BHM4LPO5.js";
|
|
4
|
+
import "../chunk-FWYKLMUD.js";
|
|
5
|
+
import "../chunk-23EG3WEZ.js";
|
|
6
6
|
import "../chunk-FXUEYQRY.js";
|
|
7
7
|
import {
|
|
8
8
|
gracefulError,
|
|
9
9
|
parseFlagsToInlineConfig
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-U63QI2TT.js";
|
|
11
|
+
import "../chunk-SEVGSYUZ.js";
|
|
12
12
|
import "../chunk-4IIM6RSG.js";
|
|
13
13
|
import "../chunk-I7BWSAN6.js";
|
|
14
14
|
|