@sanity/export 6.0.4 → 6.0.6-alpha.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/bin/detect-corrupt.js +7 -1
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +35 -18
- package/dist/export.js.map +1 -1
- package/dist/validateOptions.d.ts +3 -0
- package/dist/validateOptions.d.ts.map +1 -0
- package/dist/validateOptions.js +81 -0
- package/dist/validateOptions.js.map +1 -0
- package/package.json +3 -6
- package/src/export.ts +40 -18
package/bin/detect-corrupt.js
CHANGED
|
@@ -58,7 +58,13 @@ function printReport(filename, corruptions) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
async function main() {
|
|
61
|
-
|
|
61
|
+
let args = process.argv.slice(2)
|
|
62
|
+
|
|
63
|
+
// When called via `npx @sanity/export detect-corrupt`, the command name
|
|
64
|
+
// is passed as the first argument. Skip it if present.
|
|
65
|
+
if (args[0] === 'detect-corrupt') {
|
|
66
|
+
args = args.slice(1)
|
|
67
|
+
}
|
|
62
68
|
|
|
63
69
|
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
64
70
|
printUsage()
|
package/dist/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,QAAQ,EAAC,MAAM,aAAa,CAAA;AAoBtD,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EAGb,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,QAAQ,EAAC,MAAM,aAAa,CAAA;AAoBtD,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EAGb,MAAM,YAAY,CAAA;AAmBnB;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAAG;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAC,GAC3C,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;AAClC,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAAG;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GACzC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;AAChC,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAyS/E,KAAK,yBAAyB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,gBAAgB,CAAC,GAAG;IACnF,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GAAG;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAC,GAC1D,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;AAClC,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GAAG;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GACxD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;AAChC,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAOnG;;;;;;GAMG;+BAE+B,aAAa,KAAG,OAAO,CAAC,YAAY,CAAC;AADvE,wBAMC"}
|
package/dist/export.js
CHANGED
|
@@ -6,7 +6,7 @@ import { PassThrough } from 'node:stream';
|
|
|
6
6
|
import { finished, pipeline } from 'node:stream/promises';
|
|
7
7
|
import { deprecate } from 'node:util';
|
|
8
8
|
import { constants as zlib } from 'node:zlib';
|
|
9
|
-
import
|
|
9
|
+
import { Pack } from 'tar';
|
|
10
10
|
import { JsonStreamStringify } from 'json-stream-stringify';
|
|
11
11
|
import { isWritableStream, split, throughObj } from './util/streamHelpers.js';
|
|
12
12
|
import { AssetHandler } from './AssetHandler.js';
|
|
@@ -22,21 +22,20 @@ import { stringifyStream } from './stringifyStream.js';
|
|
|
22
22
|
import { tryParseJson } from './tryParseJson.js';
|
|
23
23
|
import { getSource, validateOptions } from './options.js';
|
|
24
24
|
const noop = () => null;
|
|
25
|
+
/** Assert that a value is a readable stream (Pack from tar extends Minipass, which is pipe-compatible but not typed as a Node.js stream) */
|
|
26
|
+
function assertReadableStream(value) {
|
|
27
|
+
if (typeof value !== 'object' ||
|
|
28
|
+
value === null ||
|
|
29
|
+
!('pipe' in value) ||
|
|
30
|
+
typeof value.pipe !== 'function' ||
|
|
31
|
+
!('on' in value) ||
|
|
32
|
+
typeof value.on !== 'function') {
|
|
33
|
+
throw new TypeError('Expected a readable stream');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
25
36
|
export async function exportDataset(opts) {
|
|
26
37
|
const options = validateOptions(opts);
|
|
27
38
|
const onProgress = options.onProgress ?? noop;
|
|
28
|
-
const archive = archiver('tar', {
|
|
29
|
-
gzip: true,
|
|
30
|
-
gzipOptions: {
|
|
31
|
-
level: options.compress ? zlib.Z_DEFAULT_COMPRESSION : zlib.Z_NO_COMPRESSION,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
archive.on('warning', (err) => {
|
|
35
|
-
debug('Archive warning: %s', err.message);
|
|
36
|
-
});
|
|
37
|
-
archive.on('entry', (entry) => {
|
|
38
|
-
debug('Adding archive entry: %s', entry.name);
|
|
39
|
-
});
|
|
40
39
|
const slugDate = new Date()
|
|
41
40
|
.toISOString()
|
|
42
41
|
.replace(/[^a-z0-9]/gi, '-')
|
|
@@ -45,6 +44,23 @@ export async function exportDataset(opts) {
|
|
|
45
44
|
const prefix = `${source.id}-export-${slugDate}`;
|
|
46
45
|
const tmpDir = joinPath(tmpdir(), prefix);
|
|
47
46
|
await mkdir(tmpDir, { recursive: true });
|
|
47
|
+
// Pre-create asset directories so tar.Pack.add() doesn't throw if no assets are downloaded
|
|
48
|
+
await mkdir(joinPath(tmpDir, 'files'), { recursive: true });
|
|
49
|
+
await mkdir(joinPath(tmpDir, 'images'), { recursive: true });
|
|
50
|
+
const archive = new Pack({
|
|
51
|
+
gzip: options.compress
|
|
52
|
+
? { level: zlib.Z_DEFAULT_COMPRESSION }
|
|
53
|
+
: { level: zlib.Z_NO_COMPRESSION },
|
|
54
|
+
cwd: tmpDir,
|
|
55
|
+
prefix,
|
|
56
|
+
portable: true,
|
|
57
|
+
onwarn: (_code, message) => {
|
|
58
|
+
debug('Archive warning: %s', message);
|
|
59
|
+
},
|
|
60
|
+
onWriteEntry: (entry) => {
|
|
61
|
+
debug('Adding archive entry: %s', entry.path);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
48
64
|
const dataPath = joinPath(tmpDir, 'data.ndjson');
|
|
49
65
|
const assetsPath = joinPath(tmpDir, 'assets.json');
|
|
50
66
|
const cleanup = () => rm(tmpDir, { recursive: true, force: true }).catch((err) => {
|
|
@@ -74,6 +90,7 @@ export async function exportDataset(opts) {
|
|
|
74
90
|
resolve = res;
|
|
75
91
|
reject = rej;
|
|
76
92
|
});
|
|
93
|
+
assertReadableStream(archive);
|
|
77
94
|
finished(archive)
|
|
78
95
|
.then(() => {
|
|
79
96
|
debug('Archive finished');
|
|
@@ -172,7 +189,7 @@ export async function exportDataset(opts) {
|
|
|
172
189
|
update: true,
|
|
173
190
|
});
|
|
174
191
|
debug('Adding data.ndjson to archive');
|
|
175
|
-
archive.
|
|
192
|
+
archive.add('data.ndjson');
|
|
176
193
|
if (!options.raw && options.assets) {
|
|
177
194
|
onProgress({ step: 'Downloading assets...' });
|
|
178
195
|
}
|
|
@@ -203,7 +220,7 @@ export async function exportDataset(opts) {
|
|
|
203
220
|
const assetsStream = createWriteStream(assetsPath);
|
|
204
221
|
await pipeline(new JsonStreamStringify(assetMap), assetsStream);
|
|
205
222
|
if (options.assetsMap) {
|
|
206
|
-
archive.
|
|
223
|
+
archive.add('assets.json');
|
|
207
224
|
}
|
|
208
225
|
clearInterval(progressInterval);
|
|
209
226
|
}
|
|
@@ -214,11 +231,11 @@ export async function exportDataset(opts) {
|
|
|
214
231
|
return;
|
|
215
232
|
}
|
|
216
233
|
// Add all downloaded assets to archive
|
|
217
|
-
archive.
|
|
218
|
-
archive.
|
|
234
|
+
archive.add('files');
|
|
235
|
+
archive.add('images');
|
|
219
236
|
debug('Finalizing archive, flushing streams');
|
|
220
237
|
onProgress({ step: 'Adding assets to archive...' });
|
|
221
|
-
|
|
238
|
+
archive.end();
|
|
222
239
|
})
|
|
223
240
|
.catch(async (err) => {
|
|
224
241
|
if (debugTimer !== null)
|
package/dist/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AACzC,OAAO,EAAC,KAAK,EAAE,EAAE,EAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAC,IAAI,IAAI,QAAQ,EAAC,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAC,WAAW,EAAgB,MAAM,aAAa,CAAA;AACtD,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,SAAS,IAAI,IAAI,EAAC,MAAM,WAAW,CAAA;AAE3C,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAC,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAC,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,8BAA8B,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAChC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAQ9C,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,cAAc,CAAA;AAEvD,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,IAAI,CAAA;AAgB7B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAmB;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAA;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE;QAC9B,IAAI,EAAE,IAAI;QACV,WAAW,EAAE;YACX,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB;SAC7E;KACF,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5B,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5B,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE;SACxB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,WAAW,EAAE,CAAA;IAEhB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,WAAW,QAAQ,EAAE,CAAA;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,EAAE,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAChE,KAAK,CAAC,4CAA4C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC7F,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEJ,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,MAAM;QACN,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAC,CAAC;QACtF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,EAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAC,CAAC;QAC/E,UAAU,EAAE,OAAO,CAAC,eAAe;KACpC,CAAC,CAAA;IAEF,KAAK,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAA;IACvD,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEhG,MAAM,YAAY,GAAa,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;QACjE,CAAC,CAAC,OAAO,CAAC,UAAU;QACpB,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEzC,IAAI,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAA;IAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAA;IAC7F,CAAC;IAED,IAAI,OAAsC,CAAA;IAC1C,IAAI,MAA+B,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,OAAO,GAAG,GAAG,CAAA;QACb,MAAM,GAAG,GAAG,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,OAAO,CAAC;SACd,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC3B,CAAC,CAAC;SACD,KAAK,CAAC,KAAK,EAAE,UAAmB,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,CAAA;QACjF,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QACzC,oFAAoF;QACpF,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAA;IACb,CAAC,CAAC,CAAA;IAEJ,KAAK,CAAC,2CAA2C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,UAAU,CAAC,EAAC,IAAI,EAAE,wBAAwB,EAAC,CAAC,CAAA;IAE5C,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,cAAc,GAAkB,IAAI,CAAA;IACxC,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC7B,MAAM,mBAAmB,GAAG,CAC1B,GAAmB,EACnB,IAAoB,EACpB,EAAoD,EAC9C,EAAE;QACR,EAAE,aAAa,CAAA;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,qDAAqD;QACrD,2DAA2D;QAC3D,IAAI,GAAG,GAAG,YAAY,GAAG,EAAE,EAAE,CAAC;YAC5B,UAAU,CAAC;gBACT,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;YAEF,YAAY,GAAG,GAAG,CAAA;QACpB,CAAC;QAED,cAAc,GAAG,GAAG,CAAC,GAAG,CAAA;QAExB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACzD,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;QAChC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7B,KAAK,CAAC,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,UAAU,GAAyC,IAAI,CAAA;IAC3D,SAAS,kBAAkB;QACzB,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,KAAK,CAAC,2BAA2B,EAAE;gBACjC,aAAa;gBACb,cAAc;aACf,CAAC,CAAA;YAEF,yBAAyB;YACzB,kBAAkB,EAAE,CAAA;QACtB,CAAC,EAAE,8BAA8B,CAAC,CAAA;IACpC,CAAC;IAED,kBAAkB,EAAE,CAAA;IAEpB,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,GAAmB,EAAE,IAAoB,EAAE,QAAQ,EAAE,EAAE;QACzF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAA;YACZ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,GAAmB,EAAE,IAAoB,EAAE,QAAQ,EAAE,EAAE;QAC5F,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAEvD,2DAA2D;IAC3D,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC;SACjB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAEpF,QAAQ,CACN,WAAW,EACX,aAAa,EAAE,EACf,KAAK,CAAC,YAAY,CAAC,EACnB,gBAAgB,EAAE,EAClB,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAC/B,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAClC,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EAAE,EACjB,UAAU,CACX,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACvB,IAAI,UAAU,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACjD,KAAK,CAAC,yBAAyB,cAAc,IAAI,aAAa,IAAI,EAAE,GAAG,CAAC,CAAA;QACxE,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SAC9C,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,UAAU,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QAEjD,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAChC,UAAU,CAAC;YACT,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAC,CAAC,CAAA;QAErD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,UAAU,CAAC,EAAC,IAAI,EAAE,uBAAuB,EAAC,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,MAAM,SAAS,GACb,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAA;YAE/E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa,GAAG,SAAS,CAAA;YACzB,UAAU,CAAC;gBACT,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,YAAY,CAAC,SAAS;gBAC7B,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;QACJ,CAAC,EAAE,GAAG,CAAC,CAAA;QAEP,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAA;YAE5C,wEAAwE;YACxE,UAAU,CAAC;gBACT,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,YAAY,CAAC,SAAS;gBAC/B,KAAK,EAAE,YAAY,CAAC,SAAS;gBAC7B,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;YAEF,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;YAClD,MAAM,QAAQ,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAA;YAE/D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAC,CAAC,CAAA;YACzD,CAAC;YAED,aAAa,CAAC,gBAAgB,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,gBAAgB,CAAC,CAAA;YAC/B,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,0CAA0C;YACtE,MAAM,CAAC,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAA;YACvE,OAAM;QACR,CAAC;QAED,uCAAuC;QACvC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAA;QAC/D,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,MAAM,SAAS,CAAC,CAAA;QAEjE,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAC7C,UAAU,CAAC,EAAC,IAAI,EAAE,6BAA6B,EAAC,CAAC,CAAA;QACjD,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC,CAAC;SACD,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5B,IAAI,UAAU,KAAK,IAAI;YAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACjD,KAAK,CAAC,yBAAyB,cAAc,IAAI,aAAa,IAAI,EAAE,GAAG,CAAC,CAAA;QACxE,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEJ,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;SAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;SACxB,KAAK,CAAC,UAAU,CAAC,CAAA;IAEpB,KAAK,UAAU,UAAU,CAAC,GAAW;QACnC,UAAU,CAAC,EAAC,IAAI,EAAE,6BAA6B,EAAC,CAAC,CAAA;QACjD,MAAM,OAAO,EAAE,CAAA;QAEf,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,KAAK,CAAC,kBAAkB,CAAC,CAAA;YACzB,OAAO,CAAC;gBACN,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa;gBACb,UAAU,EAAE,YAAY,CAAC,YAAY;aACtC,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAC9C,YAAY,CAAC,KAAK,EAAE,CAAA;QACpB,MAAM,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgC;IAC9D,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW;QACjC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC7B,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,OAAO,aAAa,CAAC,OAAwB,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;GAMG;AACH,eAAe,SAAS,CACtB,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,EACD,kJAAkJ,EAClJ,2BAA2B,CAC5B,CAAA"}
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateOptions.d.ts","sourceRoot":"","sources":["../src/validateOptions.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,kBAAkB,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAA;AAyBjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,aAAa,CA+FvE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ASSET_DOWNLOAD_MAX_RETRIES, DOCUMENT_STREAM_MAX_RETRIES, MODE_CURSOR, MODE_STREAM, REQUEST_READ_TIMEOUT, } from './constants.js';
|
|
2
|
+
const clientMethods = ['getUrl', 'config'];
|
|
3
|
+
const booleanFlags = ['assets', 'raw', 'compress', 'drafts'];
|
|
4
|
+
const numberFlags = ['maxAssetRetries', 'maxRetries', 'assetConcurrency', 'readTimeout'];
|
|
5
|
+
const exportDefaults = {
|
|
6
|
+
compress: true,
|
|
7
|
+
drafts: true,
|
|
8
|
+
assets: true,
|
|
9
|
+
assetsMap: true,
|
|
10
|
+
raw: false,
|
|
11
|
+
mode: MODE_STREAM,
|
|
12
|
+
maxRetries: DOCUMENT_STREAM_MAX_RETRIES,
|
|
13
|
+
maxAssetRetries: ASSET_DOWNLOAD_MAX_RETRIES,
|
|
14
|
+
readTimeout: REQUEST_READ_TIMEOUT,
|
|
15
|
+
filterDocument: () => true,
|
|
16
|
+
transformDocument: (doc) => doc,
|
|
17
|
+
};
|
|
18
|
+
export function validateOptions(opts) {
|
|
19
|
+
const options = { ...exportDefaults, ...opts };
|
|
20
|
+
const resources = [options.dataset, options.mediaLibraryId].filter((resource) => typeof resource === 'string' && resource.length !== 0);
|
|
21
|
+
if (resources.length === 0) {
|
|
22
|
+
throw new Error('either `options.dataset` or `options.mediaLibraryId` must be specified, got neither');
|
|
23
|
+
}
|
|
24
|
+
if (resources.length === 2) {
|
|
25
|
+
throw new Error('either `options.dataset` or `options.mediaLibraryId` must be specified, got both');
|
|
26
|
+
}
|
|
27
|
+
// Type narrowing for mode validation
|
|
28
|
+
const mode = options.mode;
|
|
29
|
+
if (typeof mode !== 'string') {
|
|
30
|
+
throw new Error(`options.mode must be either "${MODE_STREAM}" or "${MODE_CURSOR}", got "${String(mode)}"`);
|
|
31
|
+
}
|
|
32
|
+
if (mode !== MODE_STREAM && mode !== MODE_CURSOR) {
|
|
33
|
+
throw new Error(`options.mode must be either "${MODE_STREAM}" or "${MODE_CURSOR}", got "${mode}"`);
|
|
34
|
+
}
|
|
35
|
+
const onProgress = options.onProgress;
|
|
36
|
+
if (onProgress !== undefined && typeof onProgress !== 'function') {
|
|
37
|
+
throw new Error(`options.onProgress must be a function`);
|
|
38
|
+
}
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
40
|
+
if (!options.client) {
|
|
41
|
+
throw new Error('`options.client` must be set to an instance of @sanity/client');
|
|
42
|
+
}
|
|
43
|
+
const client = options.client;
|
|
44
|
+
const missing = clientMethods.find((key) => typeof client[key] !== 'function');
|
|
45
|
+
if (missing) {
|
|
46
|
+
throw new Error(`\`options.client\` is not a valid @sanity/client instance - no "${missing}" method found`);
|
|
47
|
+
}
|
|
48
|
+
const clientConfig = options.client.config();
|
|
49
|
+
if (!clientConfig.token) {
|
|
50
|
+
throw new Error('Client is not instantiated with a `token`');
|
|
51
|
+
}
|
|
52
|
+
for (const flag of booleanFlags) {
|
|
53
|
+
if (typeof options[flag] !== 'boolean') {
|
|
54
|
+
throw new Error(`Flag ${flag} must be a boolean (true/false)`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (const flag of numberFlags) {
|
|
58
|
+
if (typeof options[flag] !== 'undefined' && typeof options[flag] !== 'number') {
|
|
59
|
+
throw new Error(`Flag ${flag} must be a number if specified`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!options.outputPath) {
|
|
63
|
+
throw new Error('outputPath must be specified (- for stdout)');
|
|
64
|
+
}
|
|
65
|
+
if (options.assetConcurrency && (options.assetConcurrency < 1 || options.assetConcurrency > 24)) {
|
|
66
|
+
throw new Error('`assetConcurrency` must be between 1 and 24');
|
|
67
|
+
}
|
|
68
|
+
if (typeof options.filterDocument !== 'undefined' &&
|
|
69
|
+
typeof options.filterDocument !== 'function') {
|
|
70
|
+
throw new Error('`filterDocument` must be a function');
|
|
71
|
+
}
|
|
72
|
+
if (typeof options.transformDocument !== 'undefined' &&
|
|
73
|
+
typeof options.transformDocument !== 'function') {
|
|
74
|
+
throw new Error('`transformDocument` must be a function');
|
|
75
|
+
}
|
|
76
|
+
if (typeof options.assetsMap !== 'undefined' && typeof options.assetsMap !== 'boolean') {
|
|
77
|
+
throw new Error('`assetsMap` must be a boolean');
|
|
78
|
+
}
|
|
79
|
+
return options;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=validateOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateOptions.js","sourceRoot":"","sources":["../src/validateOptions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/export",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.6-alpha.0",
|
|
4
4
|
"description": "Export Sanity documents and assets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -47,18 +47,17 @@
|
|
|
47
47
|
"typecheck": "tsc --noEmit"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"archiver": "^7.0.1",
|
|
51
50
|
"debug": "^4.3.4",
|
|
52
51
|
"get-it": "^8.6.10",
|
|
53
52
|
"json-stream-stringify": "^3.1.6",
|
|
54
53
|
"p-queue": "^9.0.1",
|
|
54
|
+
"tar": "^7.5.2",
|
|
55
55
|
"tar-stream": "^3.1.7"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@eslint/js": "^9.39.1",
|
|
59
59
|
"@sanity/client": "^7.13.1",
|
|
60
60
|
"@sanity/semantic-release-preset": "^5.0.0",
|
|
61
|
-
"@types/archiver": "^7.0.0",
|
|
62
61
|
"@types/debug": "^4.1.12",
|
|
63
62
|
"@types/node": "^20.19.0",
|
|
64
63
|
"@types/tar-stream": "^3.1.3",
|
|
@@ -69,7 +68,6 @@
|
|
|
69
68
|
"nock": "^14.0.10",
|
|
70
69
|
"prettier": "^3.7.4",
|
|
71
70
|
"prettier-plugin-packagejson": "^2.5.20",
|
|
72
|
-
"tar": "^7.5.2",
|
|
73
71
|
"typescript": "^5.9.3",
|
|
74
72
|
"typescript-eslint": "^8.48.1",
|
|
75
73
|
"vitest": "^4.0.15"
|
|
@@ -78,7 +76,6 @@
|
|
|
78
76
|
"node": ">=20.19 <22 || >=22.12"
|
|
79
77
|
},
|
|
80
78
|
"publishConfig": {
|
|
81
|
-
"access": "public"
|
|
82
|
-
"provenance": true
|
|
79
|
+
"access": "public"
|
|
83
80
|
}
|
|
84
81
|
}
|
package/src/export.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {finished, pipeline} from 'node:stream/promises'
|
|
|
7
7
|
import {deprecate} from 'node:util'
|
|
8
8
|
import {constants as zlib} from 'node:zlib'
|
|
9
9
|
|
|
10
|
-
import
|
|
10
|
+
import {Pack} from 'tar'
|
|
11
11
|
import {JsonStreamStringify} from 'json-stream-stringify'
|
|
12
12
|
|
|
13
13
|
import {isWritableStream, split, throughObj} from './util/streamHelpers.js'
|
|
@@ -33,6 +33,20 @@ import {getSource, validateOptions} from './options.js'
|
|
|
33
33
|
|
|
34
34
|
const noop = (): null => null
|
|
35
35
|
|
|
36
|
+
/** Assert that a value is a readable stream (Pack from tar extends Minipass, which is pipe-compatible but not typed as a Node.js stream) */
|
|
37
|
+
function assertReadableStream(value: unknown): asserts value is NodeJS.ReadableStream {
|
|
38
|
+
if (
|
|
39
|
+
typeof value !== 'object' ||
|
|
40
|
+
value === null ||
|
|
41
|
+
!('pipe' in value) ||
|
|
42
|
+
typeof value.pipe !== 'function' ||
|
|
43
|
+
!('on' in value) ||
|
|
44
|
+
typeof value.on !== 'function'
|
|
45
|
+
) {
|
|
46
|
+
throw new TypeError('Expected a readable stream')
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
36
50
|
/**
|
|
37
51
|
* Export the dataset with the given options.
|
|
38
52
|
*
|
|
@@ -50,18 +64,6 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
50
64
|
export async function exportDataset(opts: ExportOptions): Promise<ExportResult> {
|
|
51
65
|
const options = validateOptions(opts)
|
|
52
66
|
const onProgress = options.onProgress ?? noop
|
|
53
|
-
const archive = archiver('tar', {
|
|
54
|
-
gzip: true,
|
|
55
|
-
gzipOptions: {
|
|
56
|
-
level: options.compress ? zlib.Z_DEFAULT_COMPRESSION : zlib.Z_NO_COMPRESSION,
|
|
57
|
-
},
|
|
58
|
-
})
|
|
59
|
-
archive.on('warning', (err) => {
|
|
60
|
-
debug('Archive warning: %s', err.message)
|
|
61
|
-
})
|
|
62
|
-
archive.on('entry', (entry) => {
|
|
63
|
-
debug('Adding archive entry: %s', entry.name)
|
|
64
|
-
})
|
|
65
67
|
|
|
66
68
|
const slugDate = new Date()
|
|
67
69
|
.toISOString()
|
|
@@ -72,6 +74,25 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
72
74
|
const prefix = `${source.id}-export-${slugDate}`
|
|
73
75
|
const tmpDir = joinPath(tmpdir(), prefix)
|
|
74
76
|
await mkdir(tmpDir, {recursive: true})
|
|
77
|
+
// Pre-create asset directories so tar.Pack.add() doesn't throw if no assets are downloaded
|
|
78
|
+
await mkdir(joinPath(tmpDir, 'files'), {recursive: true})
|
|
79
|
+
await mkdir(joinPath(tmpDir, 'images'), {recursive: true})
|
|
80
|
+
|
|
81
|
+
const archive = new Pack({
|
|
82
|
+
gzip: options.compress
|
|
83
|
+
? {level: zlib.Z_DEFAULT_COMPRESSION}
|
|
84
|
+
: {level: zlib.Z_NO_COMPRESSION},
|
|
85
|
+
cwd: tmpDir,
|
|
86
|
+
prefix,
|
|
87
|
+
portable: true,
|
|
88
|
+
onwarn: (_code, message) => {
|
|
89
|
+
debug('Archive warning: %s', message)
|
|
90
|
+
},
|
|
91
|
+
onWriteEntry: (entry) => {
|
|
92
|
+
debug('Adding archive entry: %s', entry.path)
|
|
93
|
+
},
|
|
94
|
+
})
|
|
95
|
+
|
|
75
96
|
const dataPath = joinPath(tmpDir, 'data.ndjson')
|
|
76
97
|
const assetsPath = joinPath(tmpDir, 'assets.json')
|
|
77
98
|
|
|
@@ -109,6 +130,7 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
109
130
|
reject = rej
|
|
110
131
|
})
|
|
111
132
|
|
|
133
|
+
assertReadableStream(archive)
|
|
112
134
|
finished(archive)
|
|
113
135
|
.then(() => {
|
|
114
136
|
debug('Archive finished')
|
|
@@ -237,7 +259,7 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
237
259
|
})
|
|
238
260
|
|
|
239
261
|
debug('Adding data.ndjson to archive')
|
|
240
|
-
archive.
|
|
262
|
+
archive.add('data.ndjson')
|
|
241
263
|
|
|
242
264
|
if (!options.raw && options.assets) {
|
|
243
265
|
onProgress({step: 'Downloading assets...'})
|
|
@@ -277,7 +299,7 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
277
299
|
await pipeline(new JsonStreamStringify(assetMap), assetsStream)
|
|
278
300
|
|
|
279
301
|
if (options.assetsMap) {
|
|
280
|
-
archive.
|
|
302
|
+
archive.add('assets.json')
|
|
281
303
|
}
|
|
282
304
|
|
|
283
305
|
clearInterval(progressInterval)
|
|
@@ -289,12 +311,12 @@ export async function exportDataset(opts: ExportOptions): Promise<ExportResult>
|
|
|
289
311
|
}
|
|
290
312
|
|
|
291
313
|
// Add all downloaded assets to archive
|
|
292
|
-
archive.
|
|
293
|
-
archive.
|
|
314
|
+
archive.add('files')
|
|
315
|
+
archive.add('images')
|
|
294
316
|
|
|
295
317
|
debug('Finalizing archive, flushing streams')
|
|
296
318
|
onProgress({step: 'Adding assets to archive...'})
|
|
297
|
-
|
|
319
|
+
archive.end()
|
|
298
320
|
})
|
|
299
321
|
.catch(async (err: unknown) => {
|
|
300
322
|
if (debugTimer !== null) clearTimeout(debugTimer)
|