@quillmark/registry 0.6.1 → 0.7.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.
- package/dist/bundle.d.ts +23 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +86 -0
- package/dist/bundle.js.map +1 -0
- package/dist/sources/file-system-source.d.ts +3 -2
- package/dist/sources/file-system-source.d.ts.map +1 -1
- package/dist/sources/file-system-source.js +27 -12
- package/dist/sources/file-system-source.js.map +1 -1
- package/dist/sources/http-source.d.ts +2 -4
- package/dist/sources/http-source.d.ts.map +1 -1
- package/dist/sources/http-source.js +13 -23
- package/dist/sources/http-source.js.map +1 -1
- package/package.json +4 -4
package/dist/bundle.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tar archive packing/unpacking for bundling quill files.
|
|
3
|
+
*
|
|
4
|
+
* Uses node-tar for standards-compliant POSIX tar archives.
|
|
5
|
+
* Packing is deterministic: paths are sorted lexicographically
|
|
6
|
+
* and all metadata (uid, gid, mtime) is fixed.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Creates a tar archive directly from a directory on disk using node-tar.
|
|
10
|
+
* Entries are sorted lexicographically and metadata is fixed for deterministic output.
|
|
11
|
+
*/
|
|
12
|
+
export declare function packDirectory(dirPath: string, fileList: string[]): Promise<Uint8Array>;
|
|
13
|
+
/**
|
|
14
|
+
* Packs a flat file map into a tar archive using node-tar.
|
|
15
|
+
* Files are written to a temporary directory, then archived.
|
|
16
|
+
* Paths are sorted lexicographically for deterministic output.
|
|
17
|
+
*/
|
|
18
|
+
export declare function packFiles(files: Record<string, Uint8Array>): Promise<Uint8Array>;
|
|
19
|
+
/**
|
|
20
|
+
* Unpacks a tar archive into a flat file map using node-tar.
|
|
21
|
+
*/
|
|
22
|
+
export declare function unpackFiles(data: Uint8Array): Promise<Record<string, Uint8Array>>;
|
|
23
|
+
//# sourceMappingURL=bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAe5F;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBtF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAuBvF"}
|
package/dist/bundle.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tar archive packing/unpacking for bundling quill files.
|
|
3
|
+
*
|
|
4
|
+
* Uses node-tar for standards-compliant POSIX tar archives.
|
|
5
|
+
* Packing is deterministic: paths are sorted lexicographically
|
|
6
|
+
* and all metadata (uid, gid, mtime) is fixed.
|
|
7
|
+
*/
|
|
8
|
+
import { create as tarCreate, Parser as TarParser } from 'tar';
|
|
9
|
+
import * as fs from 'node:fs/promises';
|
|
10
|
+
import * as os from 'node:os';
|
|
11
|
+
import * as path from 'node:path';
|
|
12
|
+
/** Collects all chunks from an async iterable into a single Uint8Array. */
|
|
13
|
+
async function collectStream(stream) {
|
|
14
|
+
const chunks = [];
|
|
15
|
+
for await (const chunk of stream) {
|
|
16
|
+
chunks.push(Buffer.from(chunk));
|
|
17
|
+
}
|
|
18
|
+
return new Uint8Array(Buffer.concat(chunks));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a tar archive directly from a directory on disk using node-tar.
|
|
22
|
+
* Entries are sorted lexicographically and metadata is fixed for deterministic output.
|
|
23
|
+
*/
|
|
24
|
+
export async function packDirectory(dirPath, fileList) {
|
|
25
|
+
const sorted = [...fileList].sort();
|
|
26
|
+
if (sorted.length === 0) {
|
|
27
|
+
// node-tar requires at least one entry; return a minimal empty archive (two zero blocks)
|
|
28
|
+
return new Uint8Array(1024);
|
|
29
|
+
}
|
|
30
|
+
const stream = tarCreate({
|
|
31
|
+
cwd: dirPath,
|
|
32
|
+
portable: true,
|
|
33
|
+
mtime: new Date(0),
|
|
34
|
+
}, sorted);
|
|
35
|
+
return collectStream(stream);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Packs a flat file map into a tar archive using node-tar.
|
|
39
|
+
* Files are written to a temporary directory, then archived.
|
|
40
|
+
* Paths are sorted lexicographically for deterministic output.
|
|
41
|
+
*/
|
|
42
|
+
export async function packFiles(files) {
|
|
43
|
+
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'quill-pack-'));
|
|
44
|
+
try {
|
|
45
|
+
const sortedPaths = Object.keys(files).sort();
|
|
46
|
+
for (const filePath of sortedPaths) {
|
|
47
|
+
const fullPath = path.resolve(tmpDir, ...filePath.split('/'));
|
|
48
|
+
if (!fullPath.startsWith(tmpDir + path.sep) && fullPath !== tmpDir) {
|
|
49
|
+
throw new Error(`Path traversal detected: "${filePath}"`);
|
|
50
|
+
}
|
|
51
|
+
await fs.mkdir(path.dirname(fullPath), { recursive: true });
|
|
52
|
+
await fs.writeFile(fullPath, files[filePath]);
|
|
53
|
+
}
|
|
54
|
+
return packDirectory(tmpDir, sortedPaths);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
await fs.rm(tmpDir, { recursive: true, force: true });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Unpacks a tar archive into a flat file map using node-tar.
|
|
62
|
+
*/
|
|
63
|
+
export async function unpackFiles(data) {
|
|
64
|
+
const files = {};
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
const parser = new TarParser({
|
|
67
|
+
onReadEntry: (entry) => {
|
|
68
|
+
if (entry.type === 'File') {
|
|
69
|
+
const chunks = [];
|
|
70
|
+
entry.on('data', (d) => chunks.push(d));
|
|
71
|
+
entry.on('end', () => {
|
|
72
|
+
files[entry.path] = new Uint8Array(Buffer.concat(chunks));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
entry.resume();
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
parser.on('end', () => resolve(files));
|
|
81
|
+
parser.on('error', reject);
|
|
82
|
+
parser.write(Buffer.from(data));
|
|
83
|
+
parser.end();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ import type { QuillBundle, QuillManifest, QuillSource } from '../types.js';
|
|
|
23
23
|
* derived from the directory structure; Quill.yaml content is validated by the
|
|
24
24
|
* @quillmark/wasm engine at registration time.
|
|
25
25
|
*
|
|
26
|
-
* Also exposes `packageForHttp(outputDir)` to
|
|
26
|
+
* Also exposes `packageForHttp(outputDir)` to create Brotli-compressed tar bundles and write a manifest
|
|
27
27
|
* for static hosting.
|
|
28
28
|
*/
|
|
29
29
|
export declare class FileSystemSource implements QuillSource {
|
|
@@ -33,7 +33,8 @@ export declare class FileSystemSource implements QuillSource {
|
|
|
33
33
|
loadQuill(name: string, version?: string): Promise<QuillBundle>;
|
|
34
34
|
/**
|
|
35
35
|
* Packages all quills for HTTP static hosting.
|
|
36
|
-
*
|
|
36
|
+
* Creates a tar archive of each quill version, Brotli-compresses it, and writes
|
|
37
|
+
* `.tar.br` bundles plus a `manifest.json` to `outputDir`.
|
|
37
38
|
*/
|
|
38
39
|
packageForHttp(outputDir: string): Promise<void>;
|
|
39
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-source.d.ts","sourceRoot":"","sources":["../../src/sources/file-system-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file-system-source.d.ts","sourceRoot":"","sources":["../../src/sources/file-system-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AA+F1F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IACnD,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,EAAE,MAAM;IAIvB,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAuCrC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoDrE;;;;OAIG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtD;;;OAGG;YACW,oBAAoB;CA+BlC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
-
import
|
|
3
|
+
import { brotliCompressSync, constants } from 'node:zlib';
|
|
4
4
|
import { RegistryError } from '../errors.js';
|
|
5
5
|
import { toEngineFileTree } from '../format.js';
|
|
6
|
+
import { packDirectory } from '../bundle.js';
|
|
6
7
|
/** Reads files from a directory recursively, returning a map of relative paths to contents. */
|
|
7
8
|
async function readDirRecursive(dirPath, basePath = dirPath) {
|
|
8
9
|
const files = {};
|
|
@@ -20,6 +21,21 @@ async function readDirRecursive(dirPath, basePath = dirPath) {
|
|
|
20
21
|
}
|
|
21
22
|
return files;
|
|
22
23
|
}
|
|
24
|
+
/** Lists files in a directory recursively, returning relative paths (without reading contents). */
|
|
25
|
+
async function listFilesRecursive(dirPath, basePath = dirPath) {
|
|
26
|
+
const paths = [];
|
|
27
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
28
|
+
for (const entry of entries) {
|
|
29
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
30
|
+
if (entry.isDirectory()) {
|
|
31
|
+
paths.push(...(await listFilesRecursive(fullPath, basePath)));
|
|
32
|
+
}
|
|
33
|
+
else if (entry.isFile()) {
|
|
34
|
+
paths.push(path.relative(basePath, fullPath));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return paths;
|
|
38
|
+
}
|
|
23
39
|
/**
|
|
24
40
|
* Verifies that a Quill.yaml file exists in the given quill directory.
|
|
25
41
|
* Name and version are derived from the directory structure; Quill.yaml
|
|
@@ -86,7 +102,7 @@ function compareSemver(a, b) {
|
|
|
86
102
|
* derived from the directory structure; Quill.yaml content is validated by the
|
|
87
103
|
* @quillmark/wasm engine at registration time.
|
|
88
104
|
*
|
|
89
|
-
* Also exposes `packageForHttp(outputDir)` to
|
|
105
|
+
* Also exposes `packageForHttp(outputDir)` to create Brotli-compressed tar bundles and write a manifest
|
|
90
106
|
* for static hosting.
|
|
91
107
|
*/
|
|
92
108
|
export class FileSystemSource {
|
|
@@ -177,22 +193,21 @@ export class FileSystemSource {
|
|
|
177
193
|
}
|
|
178
194
|
/**
|
|
179
195
|
* Packages all quills for HTTP static hosting.
|
|
180
|
-
*
|
|
196
|
+
* Creates a tar archive of each quill version, Brotli-compresses it, and writes
|
|
197
|
+
* `.tar.br` bundles plus a `manifest.json` to `outputDir`.
|
|
181
198
|
*/
|
|
182
199
|
async packageForHttp(outputDir) {
|
|
183
200
|
await fs.mkdir(outputDir, { recursive: true });
|
|
184
201
|
const manifest = await this.getManifest();
|
|
185
202
|
for (const entry of manifest.quills) {
|
|
186
203
|
const quillDir = path.join(this.quillsDir, entry.name, entry.version);
|
|
187
|
-
const
|
|
188
|
-
const
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
const zipFileName = `${entry.name}@${entry.version}.zip`;
|
|
195
|
-
await fs.writeFile(path.join(outputDir, zipFileName), zipBuffer);
|
|
204
|
+
const fileList = await listFilesRecursive(quillDir);
|
|
205
|
+
const packed = await packDirectory(quillDir, fileList);
|
|
206
|
+
const compressed = brotliCompressSync(packed, {
|
|
207
|
+
params: { [constants.BROTLI_PARAM_QUALITY]: 6 },
|
|
208
|
+
});
|
|
209
|
+
const bundleFileName = `${entry.name}@${entry.version}.tar.br`;
|
|
210
|
+
await fs.writeFile(path.join(outputDir, bundleFileName), compressed);
|
|
196
211
|
}
|
|
197
212
|
await fs.writeFile(path.join(outputDir, 'manifest.json'), JSON.stringify(manifest, null, 2));
|
|
198
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-source.js","sourceRoot":"","sources":["../../src/sources/file-system-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"file-system-source.js","sourceRoot":"","sources":["../../src/sources/file-system-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,10 @@ export interface HttpSourceOptions {
|
|
|
8
8
|
fetch?: typeof globalThis.fetch;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* QuillSource that fetches quill
|
|
11
|
+
* QuillSource that fetches Brotli-compressed quill tar bundles and manifest from any HTTP endpoint.
|
|
12
12
|
*
|
|
13
13
|
* Supports local static serving, CDN hosting, and remote quill registries
|
|
14
|
-
* with the same interface. Appends `?v={version}` to
|
|
15
|
-
*
|
|
16
|
-
* Works in both browser and Node.js environments.
|
|
14
|
+
* with the same interface. Appends `?v={version}` to bundle URLs for cache-busting.
|
|
17
15
|
*/
|
|
18
16
|
export declare class HttpSource implements QuillSource {
|
|
19
17
|
private baseUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-source.d.ts","sourceRoot":"","sources":["../../src/sources/http-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http-source.d.ts","sourceRoot":"","sources":["../../src/sources/http-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3E,MAAM,WAAW,iBAAiB;IACjC,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,iBAAiB;IAOhC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAuCrC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA+DrE"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { brotliDecompressSync } from 'node:zlib';
|
|
2
2
|
import { RegistryError } from '../errors.js';
|
|
3
3
|
import { toEngineFileTree } from '../format.js';
|
|
4
|
+
import { unpackFiles } from '../bundle.js';
|
|
4
5
|
/**
|
|
5
|
-
* QuillSource that fetches quill
|
|
6
|
+
* QuillSource that fetches Brotli-compressed quill tar bundles and manifest from any HTTP endpoint.
|
|
6
7
|
*
|
|
7
8
|
* Supports local static serving, CDN hosting, and remote quill registries
|
|
8
|
-
* with the same interface. Appends `?v={version}` to
|
|
9
|
-
*
|
|
10
|
-
* Works in both browser and Node.js environments.
|
|
9
|
+
* with the same interface. Appends `?v={version}` to bundle URLs for cache-busting.
|
|
11
10
|
*/
|
|
12
11
|
export class HttpSource {
|
|
13
12
|
baseUrl;
|
|
@@ -65,39 +64,30 @@ export class HttpSource {
|
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
66
|
const resolvedVersion = entry.version;
|
|
68
|
-
const
|
|
69
|
-
const
|
|
67
|
+
const bundleFileName = `${name}@${resolvedVersion}.tar.br`;
|
|
68
|
+
const bundleUrl = `${this.baseUrl}${bundleFileName}?v=${resolvedVersion}`;
|
|
70
69
|
let response;
|
|
71
70
|
try {
|
|
72
|
-
response = await this.fetchFn(
|
|
71
|
+
response = await this.fetchFn(bundleUrl);
|
|
73
72
|
}
|
|
74
73
|
catch (err) {
|
|
75
|
-
throw new RegistryError('load_error', `Failed to fetch quill
|
|
74
|
+
throw new RegistryError('load_error', `Failed to fetch quill bundle from ${bundleUrl}`, {
|
|
76
75
|
quillName: name,
|
|
77
76
|
version: resolvedVersion,
|
|
78
77
|
cause: err,
|
|
79
78
|
});
|
|
80
79
|
}
|
|
81
80
|
if (!response.ok) {
|
|
82
|
-
throw new RegistryError('load_error', `Failed to fetch quill
|
|
81
|
+
throw new RegistryError('load_error', `Failed to fetch quill bundle: ${response.status} ${response.statusText}`, { quillName: name, version: resolvedVersion });
|
|
83
82
|
}
|
|
84
83
|
let files;
|
|
85
84
|
try {
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
files =
|
|
89
|
-
const zipEntries = [];
|
|
90
|
-
zip.forEach((relativePath, zipEntry) => {
|
|
91
|
-
if (!zipEntry.dir) {
|
|
92
|
-
zipEntries.push(zipEntry.async('uint8array').then((content) => {
|
|
93
|
-
files[relativePath] = content;
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
await Promise.all(zipEntries);
|
|
85
|
+
const brData = new Uint8Array(await response.arrayBuffer());
|
|
86
|
+
const decompressed = brotliDecompressSync(brData);
|
|
87
|
+
files = await unpackFiles(new Uint8Array(decompressed));
|
|
98
88
|
}
|
|
99
89
|
catch (err) {
|
|
100
|
-
throw new RegistryError('load_error', `Failed to
|
|
90
|
+
throw new RegistryError('load_error', `Failed to decompress quill "${name}"`, {
|
|
101
91
|
quillName: name,
|
|
102
92
|
version: resolvedVersion,
|
|
103
93
|
cause: err,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-source.js","sourceRoot":"","sources":["../../src/sources/http-source.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"http-source.js","sourceRoot":"","sources":["../../src/sources/http-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quillmark/registry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Unified API for discovering, loading, packaging, and registering Quills with the WASM engine",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -36,9 +36,6 @@
|
|
|
36
36
|
"url": "https://github.com/nibsbin/quillmark-registry/issues"
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/nibsbin/quillmark-registry#readme",
|
|
39
|
-
"dependencies": {
|
|
40
|
-
"jszip": "^3.10.1"
|
|
41
|
-
},
|
|
42
39
|
"devDependencies": {
|
|
43
40
|
"@quillmark/wasm": "^0.37.0",
|
|
44
41
|
"@types/node": "^25.3.3",
|
|
@@ -62,5 +59,8 @@
|
|
|
62
59
|
"@quillmark/wasm": {
|
|
63
60
|
"optional": false
|
|
64
61
|
}
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"tar": "^7.5.11"
|
|
65
65
|
}
|
|
66
66
|
}
|