@vivliostyle/cli 9.9.0 → 10.0.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 +74 -30
- package/dist/{chunk-WELNNHOB.js → chunk-CKAJY2BE.js} +415 -384
- package/dist/chunk-CKAJY2BE.js.map +1 -0
- package/dist/{chunk-UYKCTF6F.js → chunk-CKXFRCPH.js} +445 -228
- package/dist/chunk-CKXFRCPH.js.map +1 -0
- package/dist/{chunk-3O3N2V7D.js → chunk-IOFOZNLZ.js} +6 -7
- package/dist/chunk-IOFOZNLZ.js.map +1 -0
- package/dist/{chunk-OZ4XTSAH.js → chunk-LVS2NLYC.js} +2 -2
- package/dist/chunk-LVS2NLYC.js.map +1 -0
- package/dist/{chunk-6UU7DEUR.js → chunk-RJO22WHX.js} +32 -33
- package/dist/chunk-RJO22WHX.js.map +1 -0
- package/dist/chunk-RKU7H2GS.js +1076 -0
- package/dist/chunk-RKU7H2GS.js.map +1 -0
- package/dist/{chunk-QWX5MAON.js → chunk-SPTG2DFV.js} +16 -17
- package/dist/chunk-SPTG2DFV.js.map +1 -0
- package/dist/{chunk-G3GROLBN.js → chunk-T2VWLU2I.js} +397 -88
- package/dist/chunk-T2VWLU2I.js.map +1 -0
- package/dist/chunk-ZEBXHUJX.js +334 -0
- package/dist/chunk-ZEBXHUJX.js.map +1 -0
- package/dist/{chunk-FXUEYQRY.js → chunk-ZIK6DINS.js} +3 -3
- package/dist/chunk-ZIK6DINS.js.map +1 -0
- package/dist/cli.js +7 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +29 -17
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/create.d.ts +2 -0
- package/dist/commands/create.js +64 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/init.js +23 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/preview.js +26 -20
- package/dist/commands/preview.js.map +1 -1
- package/dist/config/schema.d.ts +8370 -4567
- package/dist/config/schema.js +16 -4
- package/dist/index.d.ts +46 -7
- package/dist/index.js +24 -16
- package/dist/index.js.map +1 -1
- package/dist/node-modules.d.ts +5 -5
- package/dist/node-modules.js +1 -1
- package/dist/vite-adapter.d.ts +1 -0
- package/dist/vite-adapter.js +6 -6
- package/package.json +37 -26
- package/dist/chunk-3O3N2V7D.js.map +0 -1
- package/dist/chunk-4IIM6RSG.js +0 -71
- package/dist/chunk-4IIM6RSG.js.map +0 -1
- package/dist/chunk-6KEOMYDZ.js +0 -89
- package/dist/chunk-6KEOMYDZ.js.map +0 -1
- package/dist/chunk-6UU7DEUR.js.map +0 -1
- package/dist/chunk-FXUEYQRY.js.map +0 -1
- package/dist/chunk-G3GROLBN.js.map +0 -1
- package/dist/chunk-OZ4XTSAH.js.map +0 -1
- package/dist/chunk-QWX5MAON.js.map +0 -1
- package/dist/chunk-UYKCTF6F.js.map +0 -1
- package/dist/chunk-WELNNHOB.js.map +0 -1
- package/types/playwright.d.ts +0 -49
package/dist/commands/build.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
build
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-FXUEYQRY.js";
|
|
3
|
+
} from "../chunk-RJO22WHX.js";
|
|
4
|
+
import "../chunk-LVS2NLYC.js";
|
|
5
|
+
import "../chunk-CKAJY2BE.js";
|
|
7
6
|
import {
|
|
8
7
|
Logger,
|
|
8
|
+
createParserProgram,
|
|
9
9
|
gracefulError,
|
|
10
|
-
isInContainer
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import
|
|
14
|
-
|
|
10
|
+
isInContainer
|
|
11
|
+
} from "../chunk-T2VWLU2I.js";
|
|
12
|
+
import "../chunk-CKXFRCPH.js";
|
|
13
|
+
import {
|
|
14
|
+
versionForDisplay
|
|
15
|
+
} from "../chunk-ZEBXHUJX.js";
|
|
16
|
+
import "../chunk-ZIK6DINS.js";
|
|
15
17
|
import "../chunk-I7BWSAN6.js";
|
|
16
18
|
|
|
17
19
|
// src/commands/build.ts
|
|
@@ -19,6 +21,7 @@ import process from "node:process";
|
|
|
19
21
|
|
|
20
22
|
// src/commands/build.parser.ts
|
|
21
23
|
import { Command, Option } from "commander";
|
|
24
|
+
import upath from "upath";
|
|
22
25
|
function setupBuildParserProgram() {
|
|
23
26
|
const targets = [];
|
|
24
27
|
const outputOptionProcessor = (value, previous) => {
|
|
@@ -94,9 +97,7 @@ This option is equivalent with "--preflight press-ready"`
|
|
|
94
97
|
`options for preflight process (ex: gray-scale, enforce-outline)
|
|
95
98
|
Please refer the document of press-ready for further information.
|
|
96
99
|
https://github.com/vibranthq/press-ready`
|
|
97
|
-
).addOption(new Option("--sandbox", `launch chrome with sandbox`).hideHelp()).
|
|
98
|
-
new Option("--no-sandbox", `launch chrome without sandbox`).hideHelp()
|
|
99
|
-
).option(
|
|
100
|
+
).addOption(new Option("--sandbox", `launch chrome with sandbox`).hideHelp()).option(
|
|
100
101
|
"--executable-browser <path>",
|
|
101
102
|
"specify a path of executable browser you installed"
|
|
102
103
|
).option("--image <image>", "specify a docker image to render").option(
|
|
@@ -106,6 +107,11 @@ It is useful that using own viewer that has staging features. (ex: https://vivli
|
|
|
106
107
|
).option(
|
|
107
108
|
"--viewer-param <parameters>",
|
|
108
109
|
`specify viewer parameters. (ex: "allowScripts=false&pixelRatio=16")`
|
|
110
|
+
).addOption(
|
|
111
|
+
new Option(
|
|
112
|
+
"--browser <browser>",
|
|
113
|
+
`Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`
|
|
114
|
+
)
|
|
109
115
|
).addOption(
|
|
110
116
|
new Option(
|
|
111
117
|
"--proxy-server <proxyServer>",
|
|
@@ -139,7 +145,7 @@ It is useful that using own viewer that has staging features. (ex: https://vivli
|
|
|
139
145
|
).option("--host <host>", "IP address the server should listen on").option("--port <port>", "port the server should listen on", parseInt).option("--no-enable-static-serve", "disable static file serving").option("--vite-config-file <path>", "Vite config file path").option(
|
|
140
146
|
"--no-vite-config-file",
|
|
141
147
|
"ignore Vite config file even if it exists"
|
|
142
|
-
).
|
|
148
|
+
).version(versionForDisplay, "-v, --version").action((_arg, option) => {
|
|
143
149
|
let invalid = targets.find((it) => !("path" in it));
|
|
144
150
|
if (invalid) {
|
|
145
151
|
throw new Error(
|
|
@@ -153,13 +159,19 @@ It is useful that using own viewer that has staging features. (ex: https://vivli
|
|
|
153
159
|
function validateTimeoutFlag(val) {
|
|
154
160
|
return Number.isFinite(+val) ? +val * 1e3 : void 0;
|
|
155
161
|
}
|
|
162
|
+
var parseBuildCommand = createParserProgram({
|
|
163
|
+
setupProgram: setupBuildParserProgram,
|
|
164
|
+
parseArgs: (options, [input]) => {
|
|
165
|
+
if (input && !options.config && upath.basename(input).startsWith("vivliostyle.config")) {
|
|
166
|
+
return { ...options, config: input };
|
|
167
|
+
}
|
|
168
|
+
return { ...options, input };
|
|
169
|
+
}
|
|
170
|
+
});
|
|
156
171
|
|
|
157
172
|
// src/commands/build.ts
|
|
158
173
|
try {
|
|
159
|
-
let inlineConfig =
|
|
160
|
-
process.argv,
|
|
161
|
-
setupBuildParserProgram
|
|
162
|
-
);
|
|
174
|
+
let inlineConfig = parseBuildCommand(process.argv);
|
|
163
175
|
let containerForkMode = false;
|
|
164
176
|
if (isInContainer() && process.env.VS_CLI_BUILD_PDF_OPTIONS) {
|
|
165
177
|
inlineConfig = JSON.parse(process.env.VS_CLI_BUILD_PDF_OPTIONS);
|
|
@@ -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 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":[]}
|
|
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 .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":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
create
|
|
3
|
+
} from "../chunk-RKU7H2GS.js";
|
|
4
|
+
import {
|
|
5
|
+
createParserProgram,
|
|
6
|
+
gracefulError
|
|
7
|
+
} from "../chunk-T2VWLU2I.js";
|
|
8
|
+
import "../chunk-CKXFRCPH.js";
|
|
9
|
+
import {
|
|
10
|
+
versionForDisplay
|
|
11
|
+
} from "../chunk-ZEBXHUJX.js";
|
|
12
|
+
import "../chunk-ZIK6DINS.js";
|
|
13
|
+
import "../chunk-I7BWSAN6.js";
|
|
14
|
+
|
|
15
|
+
// src/commands/create.parser.ts
|
|
16
|
+
import { Command, Option } from "commander";
|
|
17
|
+
function setupCreateParserProgram() {
|
|
18
|
+
const program = new Command();
|
|
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(
|
|
20
|
+
"--template <template>",
|
|
21
|
+
`Template source in the format of \`[provider]:repo[/subpath][#ref]\` or as a local directory to copy from.`
|
|
22
|
+
).option(
|
|
23
|
+
"--create-config-file-only",
|
|
24
|
+
`Create a Vivliostyle config file without generating project template files.`
|
|
25
|
+
).addOption(
|
|
26
|
+
new Option("--proxy-server <proxyServer>", `HTTP/SOCK proxy server url`)
|
|
27
|
+
).addOption(
|
|
28
|
+
new Option(
|
|
29
|
+
"--proxy-bypass <proxyBypass>",
|
|
30
|
+
`optional comma-separated domains to bypass proxy`
|
|
31
|
+
)
|
|
32
|
+
).addOption(
|
|
33
|
+
new Option(
|
|
34
|
+
"--proxy-user <proxyUser>",
|
|
35
|
+
`optional username for HTTP proxy authentication`
|
|
36
|
+
)
|
|
37
|
+
).addOption(
|
|
38
|
+
new Option(
|
|
39
|
+
"--proxy-pass <proxyPass>",
|
|
40
|
+
`optional password for HTTP proxy authentication`
|
|
41
|
+
)
|
|
42
|
+
).addOption(
|
|
43
|
+
new Option(
|
|
44
|
+
"--log-level <level>",
|
|
45
|
+
"specify a log level of console outputs"
|
|
46
|
+
).choices(["silent", "info", "verbose", "debug"]).default("info")
|
|
47
|
+
).version(versionForDisplay, "-v, --version");
|
|
48
|
+
return program;
|
|
49
|
+
}
|
|
50
|
+
var parseCreateCommand = createParserProgram({
|
|
51
|
+
setupProgram: setupCreateParserProgram,
|
|
52
|
+
parseArgs: (options, [projectPath]) => ({ ...options, projectPath })
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// src/commands/create.ts
|
|
56
|
+
try {
|
|
57
|
+
const inlineConfig = parseCreateCommand(process.argv);
|
|
58
|
+
await create(inlineConfig);
|
|
59
|
+
} catch (err) {
|
|
60
|
+
if (err instanceof Error) {
|
|
61
|
+
gracefulError(err);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +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":[]}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,34 +1,43 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunk-
|
|
2
|
+
create
|
|
3
|
+
} from "../chunk-RKU7H2GS.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import
|
|
5
|
+
createParserProgram,
|
|
6
|
+
gracefulError
|
|
7
|
+
} from "../chunk-T2VWLU2I.js";
|
|
8
|
+
import "../chunk-CKXFRCPH.js";
|
|
9
|
+
import {
|
|
10
|
+
versionForDisplay
|
|
11
|
+
} from "../chunk-ZEBXHUJX.js";
|
|
12
|
+
import "../chunk-ZIK6DINS.js";
|
|
10
13
|
import "../chunk-I7BWSAN6.js";
|
|
11
14
|
|
|
12
15
|
// src/commands/init.parser.ts
|
|
13
16
|
import { Command, Option } from "commander";
|
|
14
17
|
function setupInitParserProgram() {
|
|
15
18
|
const program = new Command();
|
|
16
|
-
program.name("vivliostyle init").description("create vivliostyle config file").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").option("-s, --size
|
|
19
|
+
program.name("vivliostyle init").description("create vivliostyle config file").option("--title <title>", "title").option("--author <author>", "author").option("-l, --language <language>", "language").option("-s, --size <size>", "paper size").option("-T, --theme <theme>", "theme").addOption(
|
|
17
20
|
new Option(
|
|
18
21
|
"--log-level <level>",
|
|
19
22
|
"specify a log level of console outputs"
|
|
20
23
|
).choices(["silent", "info", "verbose", "debug"]).default("info")
|
|
21
|
-
);
|
|
24
|
+
).version(versionForDisplay, "-v, --version");
|
|
22
25
|
return program;
|
|
23
26
|
}
|
|
27
|
+
var parseInitCommand = createParserProgram({
|
|
28
|
+
setupProgram: setupInitParserProgram,
|
|
29
|
+
parseArgs: (options) => ({
|
|
30
|
+
...options,
|
|
31
|
+
projectPath: ".",
|
|
32
|
+
createConfigFileOnly: true,
|
|
33
|
+
template: void 0
|
|
34
|
+
})
|
|
35
|
+
});
|
|
24
36
|
|
|
25
37
|
// src/commands/init.ts
|
|
26
38
|
try {
|
|
27
|
-
const inlineConfig =
|
|
28
|
-
|
|
29
|
-
setupInitParserProgram
|
|
30
|
-
);
|
|
31
|
-
await init(inlineConfig);
|
|
39
|
+
const inlineConfig = parseInitCommand(process.argv);
|
|
40
|
+
await create(inlineConfig);
|
|
32
41
|
} catch (err) {
|
|
33
42
|
if (err instanceof Error) {
|
|
34
43
|
gracefulError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/init.parser.ts","../../src/commands/init.ts"],"sourcesContent":["import { Command, Option } from 'commander';\n\
|
|
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":[]}
|
package/dist/commands/preview.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
preview
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-FXUEYQRY.js";
|
|
3
|
+
} from "../chunk-IOFOZNLZ.js";
|
|
4
|
+
import "../chunk-LVS2NLYC.js";
|
|
5
|
+
import "../chunk-CKAJY2BE.js";
|
|
7
6
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import
|
|
7
|
+
createParserProgram,
|
|
8
|
+
gracefulError
|
|
9
|
+
} from "../chunk-T2VWLU2I.js";
|
|
10
|
+
import "../chunk-CKXFRCPH.js";
|
|
11
|
+
import {
|
|
12
|
+
versionForDisplay
|
|
13
|
+
} from "../chunk-ZEBXHUJX.js";
|
|
14
|
+
import "../chunk-ZIK6DINS.js";
|
|
13
15
|
import "../chunk-I7BWSAN6.js";
|
|
14
16
|
|
|
15
17
|
// src/commands/preview.parser.ts
|
|
16
18
|
import { Command, Option } from "commander";
|
|
19
|
+
import upath from "upath";
|
|
17
20
|
function setupPreviewParserProgram() {
|
|
18
21
|
const program = new Command();
|
|
19
22
|
program.name("vivliostyle preview").description("launch preview server").arguments("[input]").option("-c, --config <config_file>", "path to vivliostyle.config.js").option("-T, --theme <theme...>", "theme path or package name").option(
|
|
@@ -35,9 +38,7 @@ custom(comma separated): 182mm,257mm or 8.5in,11in`
|
|
|
35
38
|
"--reading-progression <direction>",
|
|
36
39
|
"Direction of reading progression"
|
|
37
40
|
).choices(["ltr", "rtl"])
|
|
38
|
-
).addOption(new Option("--sandbox", `launch chrome with sandbox`).hideHelp()).
|
|
39
|
-
new Option("--no-sandbox", `launch chrome without sandbox`).hideHelp()
|
|
40
|
-
).option(
|
|
41
|
+
).addOption(new Option("--sandbox", `launch chrome with sandbox`).hideHelp()).option(
|
|
41
42
|
"--executable-browser <path>",
|
|
42
43
|
"specify a path of executable browser you installed"
|
|
43
44
|
).option(
|
|
@@ -50,9 +51,8 @@ It is useful that using own viewer that has staging features. (ex: https://vivli
|
|
|
50
51
|
).addOption(
|
|
51
52
|
new Option(
|
|
52
53
|
"--browser <browser>",
|
|
53
|
-
`
|
|
54
|
-
|
|
55
|
-
).choices(["chromium", "firefox", "webkit"])
|
|
54
|
+
`Specify a browser type and version to launch the Vivliostyle viewer (ex: chrome@129, firefox) [chrome]`
|
|
55
|
+
)
|
|
56
56
|
).addOption(
|
|
57
57
|
new Option(
|
|
58
58
|
"--proxy-server <proxyServer>",
|
|
@@ -86,16 +86,22 @@ Currently, Firefox and Webkit support preview command only!`
|
|
|
86
86
|
).option("--host <host>", "IP address the server should listen on").option("--port <port>", "port the server should listen on", parseInt).option("--no-open-viewer", "do not open viewer").option("--no-enable-static-serve", "disable static file serving").option("--no-enable-viewer-start-page", "disable viewer start page").option("--vite-config-file <path>", "Vite config file path").option(
|
|
87
87
|
"--no-vite-config-file",
|
|
88
88
|
"ignore Vite config file even if it exists"
|
|
89
|
-
).
|
|
89
|
+
).version(versionForDisplay, "-v, --version");
|
|
90
90
|
return program;
|
|
91
91
|
}
|
|
92
|
+
var parsePreviewCommand = createParserProgram({
|
|
93
|
+
setupProgram: setupPreviewParserProgram,
|
|
94
|
+
parseArgs: (options, [input]) => {
|
|
95
|
+
if (input && !options.config && upath.basename(input).startsWith("vivliostyle.config")) {
|
|
96
|
+
return { ...options, config: input };
|
|
97
|
+
}
|
|
98
|
+
return { ...options, input };
|
|
99
|
+
}
|
|
100
|
+
});
|
|
92
101
|
|
|
93
102
|
// src/commands/preview.ts
|
|
94
103
|
try {
|
|
95
|
-
const inlineConfig =
|
|
96
|
-
process.argv,
|
|
97
|
-
setupPreviewParserProgram
|
|
98
|
-
);
|
|
104
|
+
const inlineConfig = parsePreviewCommand(process.argv);
|
|
99
105
|
await preview(inlineConfig);
|
|
100
106
|
} catch (err) {
|
|
101
107
|
if (err instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/preview.parser.ts","../../src/commands/preview.ts"],"sourcesContent":["import { Command, Option } from 'commander';\n\
|
|
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":[]}
|