@vivliostyle/cli 8.17.1 → 9.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/browser.d.ts +12 -1
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +108 -13
  4. package/dist/browser.js.map +1 -1
  5. package/dist/commands/build.js +10 -44
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/build.parser.d.ts +0 -5
  8. package/dist/commands/build.parser.d.ts.map +1 -1
  9. package/dist/commands/build.parser.js +15 -23
  10. package/dist/commands/build.parser.js.map +1 -1
  11. package/dist/commands/cli-flags.d.ts +42 -0
  12. package/dist/commands/cli-flags.d.ts.map +1 -0
  13. package/dist/commands/cli-flags.js +58 -0
  14. package/dist/commands/cli-flags.js.map +1 -0
  15. package/dist/commands/init.js +4 -12
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/preview.js +4 -37
  18. package/dist/commands/preview.js.map +1 -1
  19. package/dist/commands/preview.parser.d.ts.map +1 -1
  20. package/dist/commands/preview.parser.js +6 -4
  21. package/dist/commands/preview.parser.js.map +1 -1
  22. package/dist/config/load.d.ts +7 -0
  23. package/dist/config/load.d.ts.map +1 -0
  24. package/dist/config/load.js +72 -0
  25. package/dist/config/load.js.map +1 -0
  26. package/dist/config/merge.d.ts +4 -0
  27. package/dist/config/merge.d.ts.map +1 -0
  28. package/dist/config/merge.js +78 -0
  29. package/dist/config/merge.js.map +1 -0
  30. package/dist/{input/config.d.ts → config/resolve.d.ts} +81 -82
  31. package/dist/config/resolve.d.ts.map +1 -0
  32. package/dist/config/resolve.js +727 -0
  33. package/dist/config/resolve.js.map +1 -0
  34. package/dist/{input → config}/schema.d.ts +6023 -3542
  35. package/dist/config/schema.d.ts.map +1 -0
  36. package/dist/config/schema.js +562 -0
  37. package/dist/config/schema.js.map +1 -0
  38. package/dist/config/vite.d.ts +53 -0
  39. package/dist/config/vite.d.ts.map +1 -0
  40. package/dist/config/vite.js +19 -0
  41. package/dist/config/vite.js.map +1 -0
  42. package/dist/const.d.ts +2 -0
  43. package/dist/const.d.ts.map +1 -1
  44. package/dist/const.js +2 -0
  45. package/dist/const.js.map +1 -1
  46. package/dist/container.d.ts +12 -3
  47. package/dist/container.d.ts.map +1 -1
  48. package/dist/container.js +130 -30
  49. package/dist/container.js.map +1 -1
  50. package/dist/core/build.d.ts +3 -0
  51. package/dist/core/build.d.ts.map +1 -0
  52. package/dist/core/build.js +168 -0
  53. package/dist/core/build.js.map +1 -0
  54. package/dist/core/init.d.ts +3 -0
  55. package/dist/core/init.d.ts.map +1 -0
  56. package/dist/{init.js → core/init.js} +14 -19
  57. package/dist/core/init.js.map +1 -0
  58. package/dist/core/preview.d.ts +3 -0
  59. package/dist/core/preview.d.ts.map +1 -0
  60. package/dist/core/preview.js +93 -0
  61. package/dist/core/preview.js.map +1 -0
  62. package/dist/index.d.ts +32 -4
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +44 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/logger.d.ts +23 -0
  67. package/dist/logger.d.ts.map +1 -0
  68. package/dist/logger.js +161 -0
  69. package/dist/logger.js.map +1 -0
  70. package/dist/output/epub.d.ts.map +1 -1
  71. package/dist/output/epub.js +17 -15
  72. package/dist/output/epub.js.map +1 -1
  73. package/dist/output/pdf-postprocess.d.ts +2 -3
  74. package/dist/output/pdf-postprocess.d.ts.map +1 -1
  75. package/dist/output/pdf-postprocess.js +94 -29
  76. package/dist/output/pdf-postprocess.js.map +1 -1
  77. package/dist/output/pdf.d.ts +4 -7
  78. package/dist/output/pdf.d.ts.map +1 -1
  79. package/dist/output/pdf.js +77 -141
  80. package/dist/output/pdf.js.map +1 -1
  81. package/dist/output/webbook.d.ts +10 -10
  82. package/dist/output/webbook.d.ts.map +1 -1
  83. package/dist/output/webbook.js +44 -62
  84. package/dist/output/webbook.js.map +1 -1
  85. package/dist/processor/compile.d.ts +24 -10
  86. package/dist/processor/compile.d.ts.map +1 -1
  87. package/dist/processor/compile.js +195 -130
  88. package/dist/processor/compile.js.map +1 -1
  89. package/dist/processor/html.d.ts +29 -17
  90. package/dist/processor/html.d.ts.map +1 -1
  91. package/dist/processor/html.js +112 -88
  92. package/dist/processor/html.js.map +1 -1
  93. package/dist/processor/markdown.d.ts +1 -1
  94. package/dist/processor/markdown.d.ts.map +1 -1
  95. package/dist/processor/theme.d.ts +3 -3
  96. package/dist/processor/theme.d.ts.map +1 -1
  97. package/dist/processor/theme.js +29 -53
  98. package/dist/processor/theme.js.map +1 -1
  99. package/dist/server.d.ts +17 -38
  100. package/dist/server.d.ts.map +1 -1
  101. package/dist/server.js +76 -102
  102. package/dist/server.js.map +1 -1
  103. package/dist/util.d.ts +9 -29
  104. package/dist/util.d.ts.map +1 -1
  105. package/dist/util.js +54 -158
  106. package/dist/util.js.map +1 -1
  107. package/dist/vite/plugin-util.d.ts +6 -0
  108. package/dist/vite/plugin-util.d.ts.map +1 -0
  109. package/dist/vite/plugin-util.js +20 -0
  110. package/dist/vite/plugin-util.js.map +1 -0
  111. package/dist/vite/vite-plugin-browser.d.ts +8 -0
  112. package/dist/vite/vite-plugin-browser.d.ts.map +1 -0
  113. package/dist/vite/vite-plugin-browser.js +57 -0
  114. package/dist/vite/vite-plugin-browser.js.map +1 -0
  115. package/dist/vite/vite-plugin-dev-server.d.ts +8 -0
  116. package/dist/vite/vite-plugin-dev-server.d.ts.map +1 -0
  117. package/dist/vite/vite-plugin-dev-server.js +267 -0
  118. package/dist/vite/vite-plugin-dev-server.js.map +1 -0
  119. package/dist/vite/vite-plugin-static-serve.d.ts +8 -0
  120. package/dist/vite/vite-plugin-static-serve.d.ts.map +1 -0
  121. package/dist/vite/vite-plugin-static-serve.js +24 -0
  122. package/dist/vite/vite-plugin-static-serve.js.map +1 -0
  123. package/dist/vite/vite-plugin-viewer.d.ts +8 -0
  124. package/dist/vite/vite-plugin-viewer.d.ts.map +1 -0
  125. package/dist/vite/vite-plugin-viewer.js +52 -0
  126. package/dist/vite/vite-plugin-viewer.js.map +1 -0
  127. package/dist/vite-adapter.d.ts +3 -0
  128. package/dist/vite-adapter.d.ts.map +1 -0
  129. package/dist/vite-adapter.js +27 -0
  130. package/dist/vite-adapter.js.map +1 -0
  131. package/package.json +13 -15
  132. package/dist/build.d.ts +0 -21
  133. package/dist/build.d.ts.map +0 -1
  134. package/dist/build.js +0 -119
  135. package/dist/build.js.map +0 -1
  136. package/dist/init.d.ts +0 -16
  137. package/dist/init.d.ts.map +0 -1
  138. package/dist/init.js.map +0 -1
  139. package/dist/input/config.d.ts.map +0 -1
  140. package/dist/input/config.js +0 -807
  141. package/dist/input/config.js.map +0 -1
  142. package/dist/input/input-types.d.ts +0 -34
  143. package/dist/input/input-types.d.ts.map +0 -1
  144. package/dist/input/input-types.js +0 -34
  145. package/dist/input/input-types.js.map +0 -1
  146. package/dist/input/schema.d.ts.map +0 -1
  147. package/dist/input/schema.js +0 -233
  148. package/dist/input/schema.js.map +0 -1
  149. package/dist/output/output-types.d.ts +0 -26
  150. package/dist/output/output-types.d.ts.map +0 -1
  151. package/dist/output/output-types.js +0 -23
  152. package/dist/output/output-types.js.map +0 -1
  153. package/dist/preview.d.ts +0 -11
  154. package/dist/preview.d.ts.map +0 -1
  155. package/dist/preview.js +0 -191
  156. package/dist/preview.js.map +0 -1
package/dist/preview.js DELETED
@@ -1,191 +0,0 @@
1
- import chokidar from 'chokidar';
2
- import upath from 'upath';
3
- import { checkBrowserAvailability, downloadBrowser, isPlaywrightExecutable, launchBrowser, } from './browser.js';
4
- import { collectVivliostyleConfig, mergeConfig, } from './input/config.js';
5
- import { cleanupWorkspace, compile, copyAssets, prepareThemeDirectory, } from './processor/compile.js';
6
- import { prepareServer } from './server.js';
7
- import { cwd, debug, gracefulError, isUrlString, logSuccess, logUpdate, pathContains, pathEquals, runExitHandlers, setLogLevel, startLogging, } from './util.js';
8
- let timer;
9
- /**
10
- * Open a preview of the publication.
11
- *
12
- * @param cliFlags
13
- * @returns
14
- */
15
- export async function preview(cliFlags) {
16
- setLogLevel(cliFlags.logLevel);
17
- const stopLogging = startLogging('Collecting preview config');
18
- const loadedConf = await collectVivliostyleConfig(cliFlags);
19
- const { vivliostyleConfig, vivliostyleConfigPath } = loadedConf;
20
- cliFlags = loadedConf.cliFlags;
21
- const context = vivliostyleConfig
22
- ? upath.dirname(vivliostyleConfigPath)
23
- : cwd;
24
- if (!cliFlags.input && !vivliostyleConfig) {
25
- // Empty input, open Viewer start page
26
- cliFlags.input = 'data:,';
27
- }
28
- let config = await mergeConfig(cliFlags,
29
- // Only show preview of first entry
30
- vivliostyleConfig?.[0], context);
31
- logUpdate('Preparing preview');
32
- // build artifacts
33
- if (config.manifestPath) {
34
- await cleanupWorkspace(config);
35
- await prepareThemeDirectory(config);
36
- await compile(config);
37
- await copyAssets(config);
38
- }
39
- const { viewerFullUrl } = await prepareServer({
40
- input: (config.manifestPath ??
41
- config.webbookEntryUrl ??
42
- config.epubOpfPath),
43
- workspaceDir: config.workspaceDir,
44
- httpServer: config.httpServer,
45
- viewer: config.viewer,
46
- viewerParam: config.viewerParam,
47
- size: config.size,
48
- cropMarks: config.cropMarks,
49
- bleed: config.bleed,
50
- cropOffset: config.cropOffset,
51
- css: config.css,
52
- style: config.customStyle,
53
- userStyle: config.customUserStyle,
54
- singleDoc: config.singleDoc,
55
- quick: config.quick,
56
- });
57
- const { browserType, proxy, executableBrowser } = config;
58
- debug(`Executing browser path: ${executableBrowser}`);
59
- if (!checkBrowserAvailability(executableBrowser)) {
60
- if (isPlaywrightExecutable(executableBrowser)) {
61
- // The browser isn't downloaded first time starting CLI so try to download it
62
- await downloadBrowser(browserType);
63
- }
64
- else {
65
- // executableBrowser seems to be specified explicitly
66
- throw new Error(`Cannot find the browser. Please check the executable browser path: ${executableBrowser}`);
67
- }
68
- }
69
- const watcher = !isUrlString(config.input.entry)
70
- ? chokidar.watch('**', {
71
- ignored: (path) => {
72
- if (/^node_modules$|^\.git/.test(upath.basename(path))) {
73
- return true;
74
- }
75
- if (!pathEquals(config.entryContextDir, config.workspaceDir) &&
76
- pathContains(config.workspaceDir, path)) {
77
- return true; // ignore saved intermediate files
78
- }
79
- if (config.needToGenerateManifest &&
80
- pathEquals(path, config.manifestPath)) {
81
- return true; // ignore generated pub-manifest
82
- }
83
- if (config.entries.length &&
84
- /\.(md|markdown|html?|xhtml|xht)$/i.test(path) &&
85
- !config.entries.some((entry) => (entry.source && pathEquals(path, entry.source)) ||
86
- (entry.template && pathEquals(path, entry.template.source)))) {
87
- return true; // ignore md or html files not in entries source
88
- }
89
- if (pathContains(config.themesDir, path)) {
90
- return true; // ignore theme packages
91
- }
92
- return false;
93
- },
94
- cwd: config.entries.length ? context : config.entryContextDir,
95
- ignoreInitial: true,
96
- })
97
- : null;
98
- let reload = null;
99
- let closePreview = null;
100
- async function openPreview() {
101
- closePreview?.();
102
- const browser = await launchBrowser({
103
- browserType,
104
- proxy,
105
- executablePath: executableBrowser,
106
- headless: false,
107
- noSandbox: !config.sandbox,
108
- disableWebSecurity: !config.viewer,
109
- });
110
- const page = await browser.newPage({
111
- viewport: null,
112
- ignoreHTTPSErrors: config.ignoreHttpsErrors,
113
- });
114
- // Terminate preview when the previewing page is closed
115
- function onPageClose() {
116
- watcher?.close();
117
- runExitHandlers();
118
- }
119
- page.on('close', onPageClose);
120
- // Vivliostyle Viewer uses `i18nextLng` in localStorage for UI language
121
- const locale = Intl.DateTimeFormat().resolvedOptions().locale;
122
- await page.addInitScript(`window.localStorage.setItem('i18nextLng', '${locale}');`);
123
- // Prevent confirm dialog from being auto-dismissed
124
- page.on('dialog', () => { });
125
- await page.goto(viewerFullUrl);
126
- // Move focus from the address bar to the page
127
- await page.bringToFront();
128
- // Focus to the URL input box if available
129
- await page.locator('#vivliostyle-input-url').focus({ timeout: 0 });
130
- watcher?.on('all', handleFileChange);
131
- reload = () => page.reload();
132
- closePreview = () => {
133
- watcher?.off('all', handleFileChange);
134
- page.off('close', onPageClose);
135
- browser.close();
136
- reload = null;
137
- closePreview = null;
138
- };
139
- }
140
- await openPreview();
141
- // note: runExitHandlers() is not necessary here
142
- stopLogging('Up and running ([ctrl+c] to quit)', '🚀');
143
- async function reloadConfig(path) {
144
- const stopLogging = startLogging(`Config file change detected. Reloading ${path}`);
145
- closePreview?.();
146
- // reload vivliostyle config
147
- const loadedConf = await collectVivliostyleConfig(cliFlags);
148
- const { vivliostyleConfig } = loadedConf;
149
- config = await mergeConfig(cliFlags, vivliostyleConfig?.[0], context);
150
- // build artifacts
151
- if (config.manifestPath) {
152
- await prepareThemeDirectory(config);
153
- await compile(config);
154
- await copyAssets(config);
155
- }
156
- await openPreview();
157
- logSuccess(`Reloaded ${path}`);
158
- stopLogging();
159
- }
160
- async function rebuildFile(path) {
161
- const stopLogging = startLogging(`Rebuilding ${path}`);
162
- // update mergedConfig
163
- config = await mergeConfig(cliFlags, vivliostyleConfig?.[0], context, config);
164
- // build artifacts
165
- if (config.manifestPath) {
166
- await prepareThemeDirectory(config);
167
- await compile(config);
168
- await copyAssets(config);
169
- }
170
- reload?.();
171
- logSuccess(`Built ${path}`);
172
- stopLogging();
173
- }
174
- function handleFileChange(event, path) {
175
- const handleError = (error) => {
176
- console.log(); // print newline
177
- gracefulError(error);
178
- };
179
- if (pathEquals(upath.join(config.entryContextDir, path), config.input.entry) ||
180
- /\.(md|markdown|html?|xhtml|xht|css|jpe?g|png|gif|svg)$/i.test(path)) {
181
- clearTimeout(timer);
182
- timer = setTimeout(() => rebuildFile(path).catch(handleError), 2000);
183
- }
184
- else if (vivliostyleConfigPath &&
185
- pathEquals(path, upath.basename(vivliostyleConfigPath))) {
186
- clearTimeout(timer);
187
- timer = setTimeout(() => reloadConfig(path).catch(handleError), 0);
188
- }
189
- }
190
- }
191
- //# sourceMappingURL=preview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}