@vivliostyle/cli 8.0.1 → 8.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 +90 -88
- package/dist/build.d.ts +1 -5
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +80 -26
- package/dist/build.js.map +1 -1
- package/dist/commands/build.js +2 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/build.parser.d.ts +1 -1
- package/dist/commands/build.parser.d.ts.map +1 -1
- package/dist/commands/build.parser.js +7 -3
- package/dist/commands/build.parser.js.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.parser.d.ts.map +1 -1
- package/dist/commands/init.parser.js +5 -2
- package/dist/commands/init.parser.js.map +1 -1
- package/dist/commands/preview.js +2 -0
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/preview.parser.d.ts.map +1 -1
- package/dist/commands/preview.parser.js +6 -2
- package/dist/commands/preview.parser.js.map +1 -1
- package/dist/const.d.ts +7 -2
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +26 -5
- package/dist/const.js.map +1 -1
- package/dist/container.js +5 -6
- package/dist/container.js.map +1 -1
- package/dist/init.d.ts +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +4 -3
- package/dist/init.js.map +1 -1
- package/dist/{config.d.ts → input/config.d.ts} +13 -13
- package/dist/input/config.d.ts.map +1 -0
- package/dist/{config.js → input/config.js} +95 -110
- package/dist/input/config.js.map +1 -0
- package/dist/{input.d.ts → input/input-types.d.ts} +1 -1
- package/dist/input/input-types.d.ts.map +1 -0
- package/dist/{input.js → input/input-types.js} +3 -3
- package/dist/input/input-types.js.map +1 -0
- package/dist/output/epub.d.ts +10 -0
- package/dist/output/epub.d.ts.map +1 -0
- package/dist/output/epub.js +542 -0
- package/dist/output/epub.js.map +1 -0
- package/dist/{output.d.ts → output/output-types.d.ts} +8 -3
- package/dist/output/output-types.d.ts.map +1 -0
- package/dist/{output.js → output/output-types.js} +7 -4
- package/dist/output/output-types.js.map +1 -0
- package/dist/{postprocess.d.ts → output/pdf-postprocess.d.ts} +4 -4
- package/dist/output/pdf-postprocess.d.ts.map +1 -0
- package/dist/{postprocess.js → output/pdf-postprocess.js} +7 -8
- package/dist/output/pdf-postprocess.js.map +1 -0
- package/dist/{pdf.d.ts → output/pdf.d.ts} +3 -3
- package/dist/output/pdf.d.ts.map +1 -0
- package/dist/{pdf.js → output/pdf.js} +12 -13
- package/dist/output/pdf.js.map +1 -0
- package/dist/output/webbook.d.ts +21 -0
- package/dist/output/webbook.d.ts.map +1 -0
- package/dist/output/webbook.js +251 -0
- package/dist/output/webbook.js.map +1 -0
- package/dist/preview.d.ts +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +7 -6
- package/dist/preview.js.map +1 -1
- package/dist/{builder.d.ts → processor/compile.d.ts} +9 -6
- package/dist/processor/compile.d.ts.map +1 -0
- package/dist/{builder.js → processor/compile.js} +54 -61
- package/dist/processor/compile.js.map +1 -0
- package/dist/processor/html.d.ts +52 -0
- package/dist/processor/html.d.ts.map +1 -0
- package/dist/processor/html.js +256 -0
- package/dist/processor/html.js.map +1 -0
- package/dist/processor/markdown.d.ts.map +1 -0
- package/dist/processor/markdown.js.map +1 -0
- package/dist/{theme.d.ts → processor/theme.d.ts} +1 -1
- package/dist/processor/theme.d.ts.map +1 -0
- package/dist/{theme.js → processor/theme.js} +6 -8
- package/dist/processor/theme.js.map +1 -0
- package/dist/schema/pubManifest.d.ts.map +1 -1
- package/dist/schema/pubManifest.js +19 -21
- package/dist/schema/pubManifest.js.map +1 -1
- package/dist/schema/vivliostyle.d.ts.map +1 -1
- package/dist/schema/vivliostyle.js +3 -5
- package/dist/schema/vivliostyle.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -16
- package/dist/server.js.map +1 -1
- package/dist/util.d.ts +14 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +111 -17
- package/dist/util.js.map +1 -1
- package/package.json +31 -15
- package/types/custom.d.ts +4 -0
- package/types/jsdom.d.ts +14 -0
- package/vendors/README.md +10 -0
- package/vendors/build.js +27 -0
- package/vendors/index.d.ts +4 -0
- package/vendors/index.js +2029 -0
- package/vendors/index.src.js +9 -0
- package/dist/builder.d.ts.map +0 -1
- package/dist/builder.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/epub.d.ts +0 -6
- package/dist/epub.d.ts.map +0 -1
- package/dist/epub.js +0 -18
- package/dist/epub.js.map +0 -1
- package/dist/html.d.ts +0 -17
- package/dist/html.d.ts.map +0 -1
- package/dist/html.js +0 -60
- package/dist/html.js.map +0 -1
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js.map +0 -1
- package/dist/pdf.d.ts.map +0 -1
- package/dist/pdf.js.map +0 -1
- package/dist/postprocess.d.ts.map +0 -1
- package/dist/postprocess.js.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/dist/theme.js.map +0 -1
- package/dist/webbook.d.ts +0 -7
- package/dist/webbook.d.ts.map +0 -1
- package/dist/webbook.js +0 -99
- package/dist/webbook.js.map +0 -1
- /package/dist/{markdown.d.ts → processor/markdown.d.ts} +0 -0
- /package/dist/{markdown.js → processor/markdown.js} +0 -0
|
@@ -1,40 +1,31 @@
|
|
|
1
|
-
import AjvModule from 'ajv';
|
|
2
|
-
import AjvFormatsModule from 'ajv-formats';
|
|
3
|
-
import betterAjvErrors from 'better-ajv-errors';
|
|
4
1
|
import chalk from 'chalk';
|
|
5
2
|
import { imageSize } from 'image-size';
|
|
6
3
|
import { lookup as mime } from 'mime-types';
|
|
7
4
|
import fs from 'node:fs';
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { TOC_TITLE } from './const.js';
|
|
5
|
+
import { TOC_TITLE } from '../const.js';
|
|
6
|
+
import { DetailError, assertPubManifestSchema, copy, debug, log, pathContains, pathEquals, remove, safeGlob, startLogging, upath, useTmpDirectory, } from '../util.js';
|
|
11
7
|
import { generateTocHtml, isTocHtml, processManuscriptHtml } from './html.js';
|
|
12
8
|
import { processMarkdown } from './markdown.js';
|
|
13
|
-
import { publicationSchema, publicationSchemas } from './schema/pubManifest.js';
|
|
14
9
|
import { checkThemeInstallationNecessity, installThemeDependencies, } from './theme.js';
|
|
15
|
-
import { debug, DetailError, filterRelevantAjvErrors, log, pathContains, pathEquals, safeGlob, startLogging, useTmpDirectory, } from './util.js';
|
|
16
|
-
// FIXME: https://github.com/ajv-validator/ajv/issues/2047
|
|
17
|
-
const Ajv = AjvModule.default;
|
|
18
|
-
const addFormats = AjvFormatsModule.default;
|
|
19
10
|
function locateThemePath(theme, from) {
|
|
20
11
|
if (theme.type === 'uri') {
|
|
21
12
|
return theme.location;
|
|
22
13
|
}
|
|
23
14
|
if (theme.type === 'file') {
|
|
24
|
-
return
|
|
15
|
+
return upath.relative(from, theme.location);
|
|
25
16
|
}
|
|
26
17
|
if (theme.importPath) {
|
|
27
18
|
return [theme.importPath].flat().map((locator) => {
|
|
28
|
-
const resolvedPath =
|
|
19
|
+
const resolvedPath = upath.resolve(theme.location, locator);
|
|
29
20
|
if (!pathContains(theme.location, resolvedPath) ||
|
|
30
21
|
!fs.existsSync(resolvedPath)) {
|
|
31
22
|
throw new Error(`Could not find a style path ${theme.importPath} for the theme: ${theme.name}.`);
|
|
32
23
|
}
|
|
33
|
-
return
|
|
24
|
+
return upath.relative(from, resolvedPath);
|
|
34
25
|
});
|
|
35
26
|
}
|
|
36
27
|
else {
|
|
37
|
-
const pkgJsonPath =
|
|
28
|
+
const pkgJsonPath = upath.join(theme.location, 'package.json');
|
|
38
29
|
const packageJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
39
30
|
const maybeStyle = packageJson?.vivliostyle?.theme?.style ??
|
|
40
31
|
packageJson.style ??
|
|
@@ -42,7 +33,7 @@ function locateThemePath(theme, from) {
|
|
|
42
33
|
if (!maybeStyle) {
|
|
43
34
|
throw new DetailError(`Could not find a style file for the theme: ${theme.name}.`, 'Please ensure this package satisfies a `vivliostyle.theme.style` propertiy.');
|
|
44
35
|
}
|
|
45
|
-
return
|
|
36
|
+
return upath.relative(from, upath.join(theme.location, maybeStyle));
|
|
46
37
|
}
|
|
47
38
|
}
|
|
48
39
|
export async function cleanupWorkspace({ entryContextDir, workspaceDir, themesDir, }) {
|
|
@@ -55,12 +46,12 @@ export async function cleanupWorkspace({ entryContextDir, workspaceDir, themesDi
|
|
|
55
46
|
let movedThemePath;
|
|
56
47
|
if (pathContains(workspaceDir, themesDir) && fs.existsSync(themesDir)) {
|
|
57
48
|
[movedThemePath] = await useTmpDirectory();
|
|
58
|
-
|
|
49
|
+
await copy(themesDir, movedThemePath);
|
|
59
50
|
}
|
|
60
|
-
|
|
51
|
+
await remove(workspaceDir);
|
|
61
52
|
if (movedThemePath) {
|
|
62
|
-
|
|
63
|
-
|
|
53
|
+
fs.mkdirSync(upath.dirname(themesDir), { recursive: true });
|
|
54
|
+
await copy(movedThemePath, themesDir);
|
|
64
55
|
}
|
|
65
56
|
}
|
|
66
57
|
export async function prepareThemeDirectory({ themesDir, themeIndexes, }) {
|
|
@@ -72,8 +63,8 @@ export async function prepareThemeDirectory({ themesDir, themeIndexes, }) {
|
|
|
72
63
|
// copy theme files
|
|
73
64
|
for (const theme of themeIndexes) {
|
|
74
65
|
if (theme.type === 'file' && !pathEquals(theme.source, theme.location)) {
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
fs.mkdirSync(upath.dirname(theme.location), { recursive: true });
|
|
67
|
+
await copy(theme.source, theme.location);
|
|
77
68
|
}
|
|
78
69
|
}
|
|
79
70
|
}
|
|
@@ -81,15 +72,19 @@ export async function prepareThemeDirectory({ themesDir, themeIndexes, }) {
|
|
|
81
72
|
export function generateManifest(outputPath, entryContextDir, options) {
|
|
82
73
|
const entries = options.entries.map((entry) => ({
|
|
83
74
|
url: encodeURI(entry.path),
|
|
84
|
-
name: entry.title,
|
|
75
|
+
...(entry.title && { name: entry.title }),
|
|
85
76
|
...(entry.encodingFormat && { encodingFormat: entry.encodingFormat }),
|
|
86
77
|
...(entry.rel && { rel: entry.rel }),
|
|
87
78
|
...(entry.rel === 'contents' && { type: 'LinkedResource' }),
|
|
88
79
|
}));
|
|
89
|
-
const links = [
|
|
90
|
-
|
|
80
|
+
const links = [
|
|
81
|
+
options.links || [],
|
|
82
|
+
].flat();
|
|
83
|
+
const resources = [
|
|
84
|
+
options.resources || [],
|
|
85
|
+
].flat();
|
|
91
86
|
if (options.cover) {
|
|
92
|
-
const { width, height, type } = imageSize(
|
|
87
|
+
const { width, height, type } = imageSize(upath.resolve(entryContextDir, options.cover));
|
|
93
88
|
let mimeType = false;
|
|
94
89
|
if (type) {
|
|
95
90
|
mimeType = mime(type);
|
|
@@ -111,36 +106,33 @@ export function generateManifest(outputPath, entryContextDir, options) {
|
|
|
111
106
|
'@context': ['https://schema.org', 'https://www.w3.org/ns/pub-context'],
|
|
112
107
|
type: 'Book',
|
|
113
108
|
conformsTo: 'https://github.com/vivliostyle/vivliostyle-cli',
|
|
114
|
-
|
|
109
|
+
...(options.title && { name: options.title }),
|
|
110
|
+
...(options.author && { author: options.author }),
|
|
115
111
|
...(options.language && { inLanguage: options.language }),
|
|
116
112
|
...(options.readingProgression && {
|
|
117
113
|
readingProgression: options.readingProgression,
|
|
118
114
|
}),
|
|
119
115
|
dateModified: options.modified,
|
|
120
|
-
name: options.title,
|
|
121
116
|
readingOrder: entries,
|
|
122
117
|
resources,
|
|
123
118
|
links,
|
|
124
119
|
};
|
|
125
120
|
const publicationJson = JSON.stringify(publication, null, 2);
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const validate = ajv.compile(publicationSchema);
|
|
131
|
-
const valid = validate(publication);
|
|
132
|
-
if (!valid) {
|
|
133
|
-
const message = `Validation of pubManifest failed. Please check the schema: ${outputPath}`;
|
|
134
|
-
const detailMessage = validate.errors &&
|
|
135
|
-
betterAjvErrors(publicationSchemas, publication, filterRelevantAjvErrors(validate.errors), {
|
|
136
|
-
json: publicationJson,
|
|
137
|
-
});
|
|
138
|
-
throw detailMessage
|
|
139
|
-
? new DetailError(message, detailMessage)
|
|
140
|
-
: new Error(message);
|
|
121
|
+
try {
|
|
122
|
+
assertPubManifestSchema(publication, {
|
|
123
|
+
json: publicationJson,
|
|
124
|
+
});
|
|
141
125
|
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
const thrownError = error;
|
|
128
|
+
throw new DetailError(`Validation of pubManifest failed. Please check the schema: ${outputPath}`, typeof thrownError === 'string'
|
|
129
|
+
? thrownError
|
|
130
|
+
: thrownError.stack ?? thrownError.message);
|
|
131
|
+
}
|
|
132
|
+
fs.writeFileSync(outputPath, publicationJson);
|
|
133
|
+
return publication;
|
|
142
134
|
}
|
|
143
|
-
export async function compile({ entryContextDir, workspaceDir, manifestPath,
|
|
135
|
+
export async function compile({ entryContextDir, workspaceDir, manifestPath, needToGenerateManifest, title, author, entries, language, readingProgression, cover, vfmOptions, }) {
|
|
144
136
|
const generativeContentsEntry = entries.find((e) => !('source' in e) && e.rel === 'contents');
|
|
145
137
|
if (generativeContentsEntry &&
|
|
146
138
|
fs.existsSync(generativeContentsEntry.target) &&
|
|
@@ -149,9 +141,9 @@ export async function compile({ entryContextDir, workspaceDir, manifestPath, man
|
|
|
149
141
|
}
|
|
150
142
|
const contentEntries = entries.filter((e) => 'source' in e);
|
|
151
143
|
for (const entry of contentEntries) {
|
|
152
|
-
|
|
144
|
+
fs.mkdirSync(upath.dirname(entry.target), { recursive: true });
|
|
153
145
|
// calculate style path
|
|
154
|
-
const style = entry.themes.flatMap((theme) => locateThemePath(theme,
|
|
146
|
+
const style = entry.themes.flatMap((theme) => locateThemePath(theme, upath.dirname(entry.target)));
|
|
155
147
|
if (entry.type === 'text/markdown') {
|
|
156
148
|
// compile markdown
|
|
157
149
|
const vfile = processMarkdown(entry.source, {
|
|
@@ -177,7 +169,7 @@ export async function compile({ entryContextDir, workspaceDir, manifestPath, man
|
|
|
177
169
|
}
|
|
178
170
|
else {
|
|
179
171
|
if (!pathEquals(entry.source, entry.target)) {
|
|
180
|
-
|
|
172
|
+
await copy(entry.source, entry.target);
|
|
181
173
|
}
|
|
182
174
|
}
|
|
183
175
|
}
|
|
@@ -187,23 +179,24 @@ export async function compile({ entryContextDir, workspaceDir, manifestPath, man
|
|
|
187
179
|
const tocString = generateTocHtml({
|
|
188
180
|
entries: contentEntries,
|
|
189
181
|
manifestPath,
|
|
190
|
-
distDir:
|
|
191
|
-
title
|
|
182
|
+
distDir: upath.dirname(generativeContentsEntry.target),
|
|
183
|
+
title,
|
|
192
184
|
tocTitle: generativeContentsEntry.title ?? TOC_TITLE,
|
|
193
185
|
style,
|
|
194
186
|
});
|
|
195
187
|
fs.writeFileSync(generativeContentsEntry.target, tocString);
|
|
196
188
|
}
|
|
197
189
|
// generate manifest
|
|
198
|
-
if (
|
|
190
|
+
if (needToGenerateManifest) {
|
|
199
191
|
generateManifest(manifestPath, entryContextDir, {
|
|
200
|
-
|
|
192
|
+
title,
|
|
193
|
+
author,
|
|
201
194
|
language,
|
|
202
195
|
readingProgression,
|
|
203
|
-
cover: cover &&
|
|
196
|
+
cover: cover && upath.relative(entryContextDir, cover),
|
|
204
197
|
entries: entries.map((entry) => ({
|
|
205
198
|
title: entry.title,
|
|
206
|
-
path:
|
|
199
|
+
path: upath.relative(workspaceDir, entry.target),
|
|
207
200
|
encodingFormat: !('type' in entry) ||
|
|
208
201
|
entry.type === 'text/markdown' ||
|
|
209
202
|
entry.type === 'text/html'
|
|
@@ -219,7 +212,7 @@ export async function copyAssets({ entryContextDir, workspaceDir, includeAssets,
|
|
|
219
212
|
if (pathEquals(entryContextDir, workspaceDir)) {
|
|
220
213
|
return;
|
|
221
214
|
}
|
|
222
|
-
const relWorkspaceDir =
|
|
215
|
+
const relWorkspaceDir = upath.relative(entryContextDir, workspaceDir);
|
|
223
216
|
const assets = await safeGlob(includeAssets, {
|
|
224
217
|
cwd: entryContextDir,
|
|
225
218
|
ignore: [
|
|
@@ -227,10 +220,10 @@ export async function copyAssets({ entryContextDir, workspaceDir, includeAssets,
|
|
|
227
220
|
...outputs.flatMap(({ format, path: p }) => !pathContains(entryContextDir, p)
|
|
228
221
|
? []
|
|
229
222
|
: format === 'webpub'
|
|
230
|
-
?
|
|
231
|
-
:
|
|
223
|
+
? upath.join(upath.relative(entryContextDir, p), '**')
|
|
224
|
+
: upath.relative(entryContextDir, p)),
|
|
232
225
|
// don't copy workspace itself
|
|
233
|
-
...(relWorkspaceDir ? [
|
|
226
|
+
...(relWorkspaceDir ? [upath.join(relWorkspaceDir, '**')] : []),
|
|
234
227
|
],
|
|
235
228
|
caseSensitiveMatch: false,
|
|
236
229
|
followSymbolicLinks: false,
|
|
@@ -238,9 +231,9 @@ export async function copyAssets({ entryContextDir, workspaceDir, includeAssets,
|
|
|
238
231
|
});
|
|
239
232
|
debug('assets', assets);
|
|
240
233
|
for (const asset of assets) {
|
|
241
|
-
const target =
|
|
242
|
-
|
|
243
|
-
|
|
234
|
+
const target = upath.join(workspaceDir, asset);
|
|
235
|
+
fs.mkdirSync(upath.dirname(target), { recursive: true });
|
|
236
|
+
await copy(upath.resolve(entryContextDir, asset), target);
|
|
244
237
|
}
|
|
245
238
|
}
|
|
246
239
|
export function checkOverwriteViolation({ entryContextDir, workspaceDir }, target, fileInformation) {
|
|
@@ -252,4 +245,4 @@ export function checkOverwriteViolation({ entryContextDir, workspaceDir }, targe
|
|
|
252
245
|
throw new Error(`${target} is set as output destination of ${fileInformation}, however, this output path will overwrite the working directory of Vivliostyle. Please specify other paths.`);
|
|
253
246
|
}
|
|
254
247
|
}
|
|
255
|
-
//# sourceMappingURL=
|
|
248
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/processor/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import jsdom, { ResourceLoader as BaseResourceLoader, JSDOM } from '@vivliostyle/jsdom';
|
|
3
|
+
import { ManuscriptEntry } from '../input/config.js';
|
|
4
|
+
import type { PublicationManifest } from '../schema/publication.schema.js';
|
|
5
|
+
export declare class ResourceLoader extends BaseResourceLoader {
|
|
6
|
+
fetcherMap: Map<string, jsdom.AbortablePromise<Buffer>>;
|
|
7
|
+
fetch(url: string, options?: jsdom.FetchOptions): jsdom.AbortablePromise<Buffer> | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function getJsdomFromUrlOrFile(src: string, resourceLoader?: ResourceLoader): Promise<{
|
|
10
|
+
dom: JSDOM;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function generateTocHtml({ entries, manifestPath, distDir, title, tocTitle, style, }: {
|
|
13
|
+
entries: Pick<ManuscriptEntry, 'target' | 'title'>[];
|
|
14
|
+
manifestPath: string;
|
|
15
|
+
distDir: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
tocTitle: string;
|
|
18
|
+
style?: string[];
|
|
19
|
+
}): string;
|
|
20
|
+
export declare function processManuscriptHtml(filepath: string, { title, style, contentType, language, }: {
|
|
21
|
+
title?: string;
|
|
22
|
+
style?: string[];
|
|
23
|
+
contentType?: 'text/html' | 'application/xhtml+xml';
|
|
24
|
+
language?: string | null;
|
|
25
|
+
}): string;
|
|
26
|
+
export declare function isTocHtml(filepath: string): boolean;
|
|
27
|
+
export declare function fetchLinkedPublicationManifest({ dom, resourceLoader, baseUrl, }: {
|
|
28
|
+
dom: JSDOM;
|
|
29
|
+
resourceLoader: ResourceLoader;
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
}): Promise<PublicationManifest | null>;
|
|
32
|
+
export type TocResourceTreeItem = {
|
|
33
|
+
element: HTMLElement;
|
|
34
|
+
label: HTMLElement;
|
|
35
|
+
children?: TocResourceTreeItem[];
|
|
36
|
+
};
|
|
37
|
+
export type TocResourceTreeRoot = {
|
|
38
|
+
element: HTMLElement;
|
|
39
|
+
heading?: HTMLElement;
|
|
40
|
+
children: TocResourceTreeItem[];
|
|
41
|
+
};
|
|
42
|
+
export declare function parseTocDocument(dom: JSDOM): TocResourceTreeRoot | null;
|
|
43
|
+
export type PageListResourceTreeItem = {
|
|
44
|
+
element: HTMLElement;
|
|
45
|
+
};
|
|
46
|
+
export type PageListResourceTreeRoot = {
|
|
47
|
+
element: HTMLElement;
|
|
48
|
+
heading?: HTMLElement;
|
|
49
|
+
children: PageListResourceTreeItem[];
|
|
50
|
+
};
|
|
51
|
+
export declare function parsePageListDocument(dom: JSDOM): PageListResourceTreeRoot | null;
|
|
52
|
+
//# sourceMappingURL=html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/processor/html.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EACZ,cAAc,IAAI,kBAAkB,EACpC,KAAK,EACN,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AA0C3E,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,UAAU,8CAAqD;IAE/D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY;CAQhD;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC;IACT,GAAG,EAAE,KAAK,CAAC;CACZ,CAAC,CAsBD;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE;IACD,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,MAAM,CAiCT;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,EACE,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,GAAG,uBAAuB,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GACA,MAAM,CA4BR;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUnD;AAED,wBAAsB,8BAA8B,CAAC,EACnD,GAAG,EACH,cAAc,EACd,OAAO,GACR,EAAE;IACD,GAAG,EAAE,KAAK,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAuDtC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,GAAG,mBAAmB,GAAG,IAAI,CA6DvE;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,KAAK,GACT,wBAAwB,GAAG,IAAI,CAkCjC"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import jsdom, { ResourceLoader as BaseResourceLoader, JSDOM, } from '@vivliostyle/jsdom';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import cheerio from 'cheerio';
|
|
4
|
+
import toHTML from 'hast-util-to-html';
|
|
5
|
+
import h from 'hastscript';
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
8
|
+
import prettier from 'prettier';
|
|
9
|
+
import { DetailError, assertPubManifestSchema, debug, isUrlString, logWarn, upath, } from '../util.js';
|
|
10
|
+
const virtualConsole = new jsdom.VirtualConsole();
|
|
11
|
+
/* c8 ignore start */
|
|
12
|
+
virtualConsole.on('error', (message) => {
|
|
13
|
+
debug('[JSDOM Console] error:', message);
|
|
14
|
+
});
|
|
15
|
+
virtualConsole.on('warn', (message) => {
|
|
16
|
+
debug('[JSDOM Console] warn:', message);
|
|
17
|
+
});
|
|
18
|
+
virtualConsole.on('log', (message) => {
|
|
19
|
+
debug('[JSDOM Console] log:', message);
|
|
20
|
+
});
|
|
21
|
+
virtualConsole.on('info', (message) => {
|
|
22
|
+
debug('[JSDOM Console] info:', message);
|
|
23
|
+
});
|
|
24
|
+
virtualConsole.on('dir', (message) => {
|
|
25
|
+
debug('[JSDOM Console] dir:', message);
|
|
26
|
+
});
|
|
27
|
+
virtualConsole.on('jsdomError', (error) => {
|
|
28
|
+
// Most of CSS using Paged media will be failed to run CSS parser of JSDOM.
|
|
29
|
+
// We just ignore it because we don't use CSS parse results.
|
|
30
|
+
// https://github.com/jsdom/jsdom/blob/a39e0ec4ce9a8806692d986a7ed0cd565ec7498a/lib/jsdom/living/helpers/stylesheets.js#L33-L44
|
|
31
|
+
// see also: https://github.com/jsdom/jsdom/issues/2005
|
|
32
|
+
if (error.message === 'Could not parse CSS stylesheet') {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
throw new DetailError('Error occurred when loading HTML', error.stack ?? error.message);
|
|
36
|
+
});
|
|
37
|
+
/* c8 ignore end */
|
|
38
|
+
export class ResourceLoader extends BaseResourceLoader {
|
|
39
|
+
fetcherMap = new Map();
|
|
40
|
+
fetch(url, options) {
|
|
41
|
+
debug(`[JSDOM] Fetching resource: ${url}`);
|
|
42
|
+
const fetcher = super.fetch(url, options);
|
|
43
|
+
if (fetcher) {
|
|
44
|
+
this.fetcherMap.set(url, fetcher);
|
|
45
|
+
}
|
|
46
|
+
return fetcher;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export async function getJsdomFromUrlOrFile(src, resourceLoader) {
|
|
50
|
+
const url = isUrlString(src) ? new URL(src) : pathToFileURL(src);
|
|
51
|
+
let dom;
|
|
52
|
+
if (url.protocol === 'http:' || url.protocol === 'https:') {
|
|
53
|
+
dom = await JSDOM.fromURL(src, {
|
|
54
|
+
virtualConsole,
|
|
55
|
+
resources: resourceLoader,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else if (url.protocol === 'file:') {
|
|
59
|
+
if (resourceLoader) {
|
|
60
|
+
const file = resourceLoader._readFile(fileURLToPath(url));
|
|
61
|
+
resourceLoader.fetcherMap.set(url.href, file);
|
|
62
|
+
}
|
|
63
|
+
dom = await JSDOM.fromFile(fileURLToPath(url), {
|
|
64
|
+
virtualConsole,
|
|
65
|
+
resources: resourceLoader,
|
|
66
|
+
contentType: 'text/html; charset=UTF-8',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new Error(`Unsupported protocol: ${url.protocol}`);
|
|
71
|
+
}
|
|
72
|
+
return { dom };
|
|
73
|
+
}
|
|
74
|
+
export function generateTocHtml({ entries, manifestPath, distDir, title, tocTitle, style, }) {
|
|
75
|
+
const items = entries.map((entry) => h('li', h('a', { href: encodeURI(upath.relative(distDir, entry.target)) }, entry.title || upath.basename(entry.target, '.html'))));
|
|
76
|
+
const toc = h('html', h('head', ...[
|
|
77
|
+
h('meta', { charset: 'utf-8' }),
|
|
78
|
+
h('title', title ?? ''),
|
|
79
|
+
h('link', {
|
|
80
|
+
href: encodeURI(upath.relative(distDir, manifestPath)),
|
|
81
|
+
rel: 'publication',
|
|
82
|
+
type: 'application/ld+json',
|
|
83
|
+
}),
|
|
84
|
+
...(style || []).map((s) => h('link', { href: s, rel: 'stylesheet' })),
|
|
85
|
+
].filter((n) => !!n)), h('body', h('h1', title || ''), h('nav#toc', { role: 'doc-toc' }, h('h2', tocTitle), h('ol', items))));
|
|
86
|
+
return prettier.format(toHTML(toc), { parser: 'html' });
|
|
87
|
+
}
|
|
88
|
+
export function processManuscriptHtml(filepath, { title, style, contentType, language, }) {
|
|
89
|
+
const $ = cheerio.load(fs.readFileSync(filepath, 'utf8'), {
|
|
90
|
+
xmlMode: contentType === 'application/xhtml+xml',
|
|
91
|
+
});
|
|
92
|
+
if (title) {
|
|
93
|
+
if (!$('title')) {
|
|
94
|
+
$('head').append($('<title></title>'));
|
|
95
|
+
}
|
|
96
|
+
$('title').text(title);
|
|
97
|
+
}
|
|
98
|
+
for (const s of style ?? []) {
|
|
99
|
+
$('head').append(`<link rel="stylesheet" />`);
|
|
100
|
+
$('head > *:last-child').attr('href', s);
|
|
101
|
+
}
|
|
102
|
+
if (language) {
|
|
103
|
+
if (contentType === 'application/xhtml+xml') {
|
|
104
|
+
if (!$('html').attr('xml:lang')) {
|
|
105
|
+
$('html').attr('lang', language);
|
|
106
|
+
$('html').attr('xml:lang', language);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
if (!$('html').attr('lang')) {
|
|
111
|
+
$('html').attr('lang', language);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
let processed = $.html();
|
|
116
|
+
return processed;
|
|
117
|
+
}
|
|
118
|
+
export function isTocHtml(filepath) {
|
|
119
|
+
try {
|
|
120
|
+
const $ = cheerio.load(fs.readFileSync(filepath, 'utf8'));
|
|
121
|
+
return ($('[role="doc-toc"], [role="directory"], nav, .toc, #toc').length > 0);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
// seems not to be a html file
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export async function fetchLinkedPublicationManifest({ dom, resourceLoader, baseUrl, }) {
|
|
129
|
+
const { document } = dom.window;
|
|
130
|
+
const linkEl = document.querySelector('link[href][rel="publication"]');
|
|
131
|
+
if (!linkEl) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const href = linkEl.getAttribute('href').trim();
|
|
135
|
+
let manifest;
|
|
136
|
+
let manifestJson;
|
|
137
|
+
if (href.startsWith('#')) {
|
|
138
|
+
const scriptEl = document.getElementById(href.slice(1));
|
|
139
|
+
if (scriptEl?.getAttribute('type') !== 'application/ld+json') {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
debug(`Found embedded publication manifest: ${href}`);
|
|
143
|
+
try {
|
|
144
|
+
manifest = JSON.parse(scriptEl.innerHTML);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
const thrownError = error;
|
|
148
|
+
throw new DetailError('Failed to parse manifest data', typeof thrownError.stack ?? thrownError.message);
|
|
149
|
+
}
|
|
150
|
+
manifestJson = JSON.stringify(manifest, null, 2);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
debug(`Found linked publication manifest: ${href}`);
|
|
154
|
+
const url = new URL(href, baseUrl);
|
|
155
|
+
const buffer = await resourceLoader.fetch(url.href);
|
|
156
|
+
if (!buffer) {
|
|
157
|
+
throw new Error(`Failed to fetch manifest JSON file: ${url.href}`);
|
|
158
|
+
}
|
|
159
|
+
manifestJson = buffer.toString();
|
|
160
|
+
try {
|
|
161
|
+
manifest = JSON.parse(manifestJson);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
const thrownError = error;
|
|
165
|
+
throw new DetailError('Failed to parse manifest data', typeof thrownError.stack ?? thrownError.message);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
assertPubManifestSchema(manifest, { json: manifestJson });
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
logWarn(`${chalk.yellowBright('Publication manifest validation failed. Processing continues, but some problems may occur.')}\n${error}`);
|
|
173
|
+
}
|
|
174
|
+
return manifest;
|
|
175
|
+
}
|
|
176
|
+
export function parseTocDocument(dom) {
|
|
177
|
+
const { document } = dom.window;
|
|
178
|
+
const docTocEl = document.querySelectorAll('[role="doc-toc"]');
|
|
179
|
+
if (docTocEl.length === 0) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
const tocRoot = docTocEl.item(0);
|
|
183
|
+
const parseTocItem = (element) => {
|
|
184
|
+
if (element.tagName !== 'LI') {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
const label = element.children.item(0);
|
|
188
|
+
const ol = element.children.item(1);
|
|
189
|
+
if (!label || (label.tagName !== 'A' && label.tagName !== 'SPAN')) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
if (!ol || ol.tagName !== 'OL') {
|
|
193
|
+
return { element: element, label: label };
|
|
194
|
+
}
|
|
195
|
+
const children = Array.from(ol.children).reduce((acc, val) => {
|
|
196
|
+
if (!acc) {
|
|
197
|
+
return acc;
|
|
198
|
+
}
|
|
199
|
+
const res = parseTocItem(val);
|
|
200
|
+
return res && [...acc, res];
|
|
201
|
+
}, []);
|
|
202
|
+
return (children && {
|
|
203
|
+
element: element,
|
|
204
|
+
label: label,
|
|
205
|
+
children,
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
let heading;
|
|
209
|
+
for (let child of Array.from(tocRoot.children)) {
|
|
210
|
+
if (child.tagName === 'OL') {
|
|
211
|
+
const children = Array.from(child.children).reduce((acc, val) => {
|
|
212
|
+
if (!acc) {
|
|
213
|
+
return acc;
|
|
214
|
+
}
|
|
215
|
+
const res = parseTocItem(val);
|
|
216
|
+
return res && [...acc, res];
|
|
217
|
+
}, []);
|
|
218
|
+
return children && { element: tocRoot, heading, children };
|
|
219
|
+
}
|
|
220
|
+
else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HGROUP'].includes(child.tagName)) {
|
|
221
|
+
heading = child;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
export function parsePageListDocument(dom) {
|
|
230
|
+
const { document } = dom.window;
|
|
231
|
+
const docPageListEl = document.querySelectorAll('[role="doc-pagelist"]');
|
|
232
|
+
if (docPageListEl.length === 0) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
const pageListRoot = docPageListEl.item(0);
|
|
236
|
+
let heading;
|
|
237
|
+
for (let child of Array.from(pageListRoot.children)) {
|
|
238
|
+
if (child.tagName === 'OL') {
|
|
239
|
+
const children = Array.from(child.children).reduce((acc, element) => {
|
|
240
|
+
return (acc &&
|
|
241
|
+
(element.tagName === 'LI'
|
|
242
|
+
? [...acc, { element: element }]
|
|
243
|
+
: null));
|
|
244
|
+
}, []);
|
|
245
|
+
return (children && { element: pageListRoot, heading, children });
|
|
246
|
+
}
|
|
247
|
+
else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HGROUP'].includes(child.tagName)) {
|
|
248
|
+
heading = child;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/processor/html.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/processor/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,wBAAwB,EAEzB,MAAM,kBAAkB,CAAC;AAE1B,OAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAErC,MAAM,WAAW,MAAO,SAAQ,KAAK;IACnC,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAOR;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAE/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/processor/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAEZ,GAAG,GACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAgB,MAAM,OAAO,CAAC;AASrC,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,UAAoC,EAAE;IAEtC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAC/B,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAC1C,CAAC;IACZ,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import npa from 'npm-package-arg';
|
|
2
|
-
import { MergedConfig } from '
|
|
2
|
+
import type { MergedConfig } from '../input/config.js';
|
|
3
3
|
export declare function checkThemeInstallationNecessity({ themesDir, themeIndexes, }: Pick<MergedConfig, 'themesDir' | 'themeIndexes'>): Promise<boolean>;
|
|
4
4
|
export declare function installThemeDependencies({ themesDir, themeIndexes, }: Pick<MergedConfig, 'themesDir' | 'themeIndexes'>): Promise<void>;
|
|
5
5
|
export declare function parsePackageName(specifier: string, cwd: string): npa.Result | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/processor/theme.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAgCvD,wBAAsB,+BAA+B,CAAC,EACpD,SAAS,EACT,YAAY,GACb,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBrE;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,SAAS,EACT,YAAY,GACb,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkClE;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,GAAG,CAAC,MAAM,GAAG,IAAI,CAYnB"}
|