@sanity/export 5.0.1 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AssetHandler.d.ts +47 -0
- package/dist/AssetHandler.d.ts.map +1 -0
- package/dist/AssetHandler.js +384 -0
- package/dist/AssetHandler.js.map +1 -0
- package/dist/constants.d.ts +45 -0
- package/dist/constants.d.ts.map +1 -0
- package/{src → dist}/constants.js +13 -18
- package/dist/constants.js.map +1 -0
- package/dist/debug.d.ts +3 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +3 -0
- package/dist/debug.js.map +1 -0
- package/dist/export.d.ts +43 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +269 -0
- package/dist/export.js.map +1 -0
- package/dist/filterDocumentTypes.d.ts +3 -0
- package/dist/filterDocumentTypes.d.ts.map +1 -0
- package/dist/filterDocumentTypes.js +16 -0
- package/dist/filterDocumentTypes.js.map +1 -0
- package/dist/filterDocuments.d.ts +3 -0
- package/dist/filterDocuments.d.ts.map +1 -0
- package/dist/filterDocuments.js +36 -0
- package/dist/filterDocuments.js.map +1 -0
- package/dist/getDocumentCursorStream.d.ts +4 -0
- package/dist/getDocumentCursorStream.d.ts.map +1 -0
- package/dist/getDocumentCursorStream.js +85 -0
- package/dist/getDocumentCursorStream.js.map +1 -0
- package/dist/getDocumentsStream.d.ts +5 -0
- package/dist/getDocumentsStream.d.ts.map +1 -0
- package/dist/getDocumentsStream.js +28 -0
- package/dist/getDocumentsStream.js.map +1 -0
- package/dist/getUserAgent.d.ts +2 -0
- package/dist/getUserAgent.d.ts.map +1 -0
- package/dist/getUserAgent.js +12 -0
- package/dist/getUserAgent.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/logFirstChunk.d.ts +3 -0
- package/dist/logFirstChunk.d.ts.map +1 -0
- package/dist/logFirstChunk.js +14 -0
- package/dist/logFirstChunk.js.map +1 -0
- package/dist/options.d.ts +14 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +97 -0
- package/dist/options.js.map +1 -0
- package/dist/rejectOnApiError.d.ts +3 -0
- package/dist/rejectOnApiError.d.ts.map +1 -0
- package/dist/rejectOnApiError.js +35 -0
- package/dist/rejectOnApiError.js.map +1 -0
- package/dist/requestStream.d.ts +3 -0
- package/dist/requestStream.d.ts.map +1 -0
- package/dist/requestStream.js +48 -0
- package/dist/requestStream.js.map +1 -0
- package/dist/stringifyStream.d.ts +3 -0
- package/dist/stringifyStream.d.ts.map +1 -0
- package/dist/stringifyStream.js +5 -0
- package/dist/stringifyStream.js.map +1 -0
- package/dist/tryParseJson.d.ts +10 -0
- package/dist/tryParseJson.d.ts.map +1 -0
- package/dist/tryParseJson.js +36 -0
- package/dist/tryParseJson.js.map +1 -0
- package/dist/types.d.ts +241 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/util/delay.d.ts +2 -0
- package/dist/util/delay.d.ts.map +1 -0
- package/dist/util/delay.js +4 -0
- package/dist/util/delay.js.map +1 -0
- package/dist/util/extractFirstError.d.ts +2 -0
- package/dist/util/extractFirstError.d.ts.map +1 -0
- package/dist/util/extractFirstError.js +22 -0
- package/dist/util/extractFirstError.js.map +1 -0
- package/dist/util/friendlyError.d.ts +2 -0
- package/dist/util/friendlyError.d.ts.map +1 -0
- package/dist/util/friendlyError.js +49 -0
- package/dist/util/friendlyError.js.map +1 -0
- package/dist/util/streamHelpers.d.ts +10 -0
- package/dist/util/streamHelpers.d.ts.map +1 -0
- package/dist/util/streamHelpers.js +99 -0
- package/dist/util/streamHelpers.js.map +1 -0
- package/package.json +22 -7
- package/src/{AssetHandler.js → AssetHandler.ts} +174 -99
- package/src/constants.ts +50 -0
- package/src/debug.ts +3 -0
- package/src/{export.js → export.ts} +110 -70
- package/src/filterDocumentTypes.ts +21 -0
- package/src/filterDocuments.ts +55 -0
- package/src/{getDocumentCursorStream.js → getDocumentCursorStream.ts} +37 -18
- package/src/{getDocumentsStream.js → getDocumentsStream.ts} +16 -6
- package/src/{getUserAgent.js → getUserAgent.ts} +8 -3
- package/src/index.ts +11 -0
- package/src/{logFirstChunk.js → logFirstChunk.ts} +6 -4
- package/src/options.ts +138 -0
- package/src/rejectOnApiError.ts +62 -0
- package/src/requestStream.ts +81 -0
- package/src/stringifyStream.ts +7 -0
- package/src/{tryParseJson.js → tryParseJson.ts} +29 -17
- package/src/types.ts +274 -0
- package/src/util/{delay.js → delay.ts} +1 -1
- package/src/util/extractFirstError.ts +31 -0
- package/src/util/friendlyError.ts +75 -0
- package/src/util/{streamHelpers.js → streamHelpers.ts} +35 -18
- package/src/debug.js +0 -3
- package/src/filterDocumentTypes.js +0 -18
- package/src/filterDocuments.js +0 -33
- package/src/rejectOnApiError.js +0 -31
- package/src/requestStream.js +0 -64
- package/src/stringifyStream.js +0 -5
- package/src/util/extractFirstError.js +0 -14
- package/src/util/friendlyError.js +0 -58
- package/src/validateOptions.js +0 -113
package/dist/export.js
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { createWriteStream } from 'node:fs';
|
|
2
|
+
import { mkdir, rm } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join as joinPath } from 'node:path';
|
|
5
|
+
import { PassThrough } from 'node:stream';
|
|
6
|
+
import { finished, pipeline } from 'node:stream/promises';
|
|
7
|
+
import { deprecate } from 'node:util';
|
|
8
|
+
import { constants as zlib } from 'node:zlib';
|
|
9
|
+
import archiver from 'archiver';
|
|
10
|
+
import { JsonStreamStringify } from 'json-stream-stringify';
|
|
11
|
+
import { isWritableStream, split, throughObj } from './util/streamHelpers.js';
|
|
12
|
+
import { AssetHandler } from './AssetHandler.js';
|
|
13
|
+
import { DOCUMENT_STREAM_DEBUG_INTERVAL, MODE_STREAM } from './constants.js';
|
|
14
|
+
import { debug } from './debug.js';
|
|
15
|
+
import { filterDocuments } from './filterDocuments.js';
|
|
16
|
+
import { filterDocumentTypes } from './filterDocumentTypes.js';
|
|
17
|
+
import { getDocumentCursorStream } from './getDocumentCursorStream.js';
|
|
18
|
+
import { getDocumentsStream } from './getDocumentsStream.js';
|
|
19
|
+
import { logFirstChunk } from './logFirstChunk.js';
|
|
20
|
+
import { rejectOnApiError } from './rejectOnApiError.js';
|
|
21
|
+
import { stringifyStream } from './stringifyStream.js';
|
|
22
|
+
import { tryParseJson } from './tryParseJson.js';
|
|
23
|
+
import { getSource, validateOptions } from './options.js';
|
|
24
|
+
const noop = () => null;
|
|
25
|
+
export async function exportDataset(opts) {
|
|
26
|
+
const options = validateOptions(opts);
|
|
27
|
+
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
|
+
const slugDate = new Date()
|
|
41
|
+
.toISOString()
|
|
42
|
+
.replace(/[^a-z0-9]/gi, '-')
|
|
43
|
+
.toLowerCase();
|
|
44
|
+
const source = getSource(opts);
|
|
45
|
+
const prefix = `${source.id}-export-${slugDate}`;
|
|
46
|
+
const tmpDir = joinPath(tmpdir(), prefix);
|
|
47
|
+
await mkdir(tmpDir, { recursive: true });
|
|
48
|
+
const dataPath = joinPath(tmpDir, 'data.ndjson');
|
|
49
|
+
const assetsPath = joinPath(tmpDir, 'assets.json');
|
|
50
|
+
const cleanup = () => rm(tmpDir, { recursive: true, force: true }).catch((err) => {
|
|
51
|
+
debug(`Error while cleaning up temporary files: ${err instanceof Error ? err.message : err}`);
|
|
52
|
+
return false;
|
|
53
|
+
});
|
|
54
|
+
const assetHandler = new AssetHandler({
|
|
55
|
+
client: options.client,
|
|
56
|
+
tmpDir,
|
|
57
|
+
prefix,
|
|
58
|
+
...(options.assetConcurrency !== undefined && { concurrency: options.assetConcurrency }),
|
|
59
|
+
...(options.retryDelayMs !== undefined && { retryDelayMs: options.retryDelayMs }),
|
|
60
|
+
maxRetries: options.maxAssetRetries,
|
|
61
|
+
});
|
|
62
|
+
debug('Downloading assets (temporarily) to %s', tmpDir);
|
|
63
|
+
debug('Downloading to %s', isWritableStream(options.outputPath) ? 'stream' : options.outputPath);
|
|
64
|
+
const outputStream = isWritableStream(options.outputPath)
|
|
65
|
+
? options.outputPath
|
|
66
|
+
: createWriteStream(options.outputPath);
|
|
67
|
+
let assetStreamHandler = assetHandler.noop;
|
|
68
|
+
if (!options.raw) {
|
|
69
|
+
assetStreamHandler = options.assets ? assetHandler.rewriteAssets : assetHandler.stripAssets;
|
|
70
|
+
}
|
|
71
|
+
let resolve;
|
|
72
|
+
let reject;
|
|
73
|
+
const result = new Promise((res, rej) => {
|
|
74
|
+
resolve = res;
|
|
75
|
+
reject = rej;
|
|
76
|
+
});
|
|
77
|
+
finished(archive)
|
|
78
|
+
.then(() => {
|
|
79
|
+
debug('Archive finished');
|
|
80
|
+
})
|
|
81
|
+
.catch(async (archiveErr) => {
|
|
82
|
+
const err = archiveErr instanceof Error ? archiveErr : new Error(`${archiveErr}`);
|
|
83
|
+
debug('Archiving errored: %s', err.stack);
|
|
84
|
+
// Try cleanup, but let original error be the main rejection reason, not the cleanup
|
|
85
|
+
await cleanup().catch(noop);
|
|
86
|
+
reject(err);
|
|
87
|
+
});
|
|
88
|
+
debug('Getting dataset export stream, mode: "%s"', options.mode);
|
|
89
|
+
onProgress({ step: 'Exporting documents...' });
|
|
90
|
+
let documentCount = 0;
|
|
91
|
+
let lastDocumentID = null;
|
|
92
|
+
let lastReported = Date.now();
|
|
93
|
+
const reportDocumentCount = (doc, _enc, cb) => {
|
|
94
|
+
++documentCount;
|
|
95
|
+
const now = Date.now();
|
|
96
|
+
// We report to the `onProgress` handler every 50 ms.
|
|
97
|
+
// It's up to the caller to not do too much expensive work.
|
|
98
|
+
if (now - lastReported > 50) {
|
|
99
|
+
onProgress({
|
|
100
|
+
step: 'Exporting documents...',
|
|
101
|
+
current: documentCount,
|
|
102
|
+
total: '?',
|
|
103
|
+
update: true,
|
|
104
|
+
});
|
|
105
|
+
lastReported = now;
|
|
106
|
+
}
|
|
107
|
+
lastDocumentID = doc._id;
|
|
108
|
+
cb(null, doc);
|
|
109
|
+
};
|
|
110
|
+
const inputStream = await getDocumentInputStream(options);
|
|
111
|
+
if ('statusCode' in inputStream) {
|
|
112
|
+
debug('Got HTTP %d', inputStream.statusCode);
|
|
113
|
+
}
|
|
114
|
+
if ('headers' in inputStream) {
|
|
115
|
+
debug('Response headers: %o', inputStream.headers);
|
|
116
|
+
}
|
|
117
|
+
let debugTimer = null;
|
|
118
|
+
function scheduleDebugTimer() {
|
|
119
|
+
debugTimer = setTimeout(() => {
|
|
120
|
+
debug('Still streaming documents', {
|
|
121
|
+
documentCount,
|
|
122
|
+
lastDocumentID,
|
|
123
|
+
});
|
|
124
|
+
// Schedule another tick:
|
|
125
|
+
scheduleDebugTimer();
|
|
126
|
+
}, DOCUMENT_STREAM_DEBUG_INTERVAL);
|
|
127
|
+
}
|
|
128
|
+
scheduleDebugTimer();
|
|
129
|
+
const filterTransform = throughObj((doc, _enc, callback) => {
|
|
130
|
+
try {
|
|
131
|
+
const include = options.filterDocument(doc);
|
|
132
|
+
if (include) {
|
|
133
|
+
callback(null, doc);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
callback();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
callback(err instanceof Error ? err : new Error(`${err}`));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
const transformTransform = throughObj((doc, _enc, callback) => {
|
|
144
|
+
try {
|
|
145
|
+
callback(null, options.transformDocument(doc));
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
callback(err instanceof Error ? err : new Error(`${err}`));
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const reportTransform = throughObj(reportDocumentCount);
|
|
152
|
+
// Use pipeline to chain streams with proper error handling
|
|
153
|
+
const jsonStream = new PassThrough();
|
|
154
|
+
finished(jsonStream)
|
|
155
|
+
.then(() => debug('JSON stream finished'))
|
|
156
|
+
.catch((err) => reject(err instanceof Error ? err : new Error(`${err}`)));
|
|
157
|
+
pipeline(inputStream, logFirstChunk(), split(tryParseJson), rejectOnApiError(), filterDocuments(options.drafts), filterDocumentTypes(options.types), assetStreamHandler, filterTransform, transformTransform, reportTransform, stringifyStream(), jsonStream).catch((err) => {
|
|
158
|
+
if (debugTimer !== null)
|
|
159
|
+
clearTimeout(debugTimer);
|
|
160
|
+
debug(`Export stream error @ ${lastDocumentID}/${documentCount}: `, err);
|
|
161
|
+
reject(err instanceof Error ? err : new Error(`${err}`));
|
|
162
|
+
});
|
|
163
|
+
pipeline(jsonStream, createWriteStream(dataPath))
|
|
164
|
+
.then(async () => {
|
|
165
|
+
if (debugTimer !== null)
|
|
166
|
+
clearTimeout(debugTimer);
|
|
167
|
+
debug('Export stream completed');
|
|
168
|
+
onProgress({
|
|
169
|
+
step: 'Exporting documents...',
|
|
170
|
+
current: documentCount,
|
|
171
|
+
total: documentCount,
|
|
172
|
+
update: true,
|
|
173
|
+
});
|
|
174
|
+
debug('Adding data.ndjson to archive');
|
|
175
|
+
archive.file(dataPath, { name: 'data.ndjson', prefix });
|
|
176
|
+
if (!options.raw && options.assets) {
|
|
177
|
+
onProgress({ step: 'Downloading assets...' });
|
|
178
|
+
}
|
|
179
|
+
let prevCompleted = 0;
|
|
180
|
+
const progressInterval = setInterval(() => {
|
|
181
|
+
const completed = assetHandler.queueSize - assetHandler.queue.size - assetHandler.queue.pending;
|
|
182
|
+
if (prevCompleted === completed) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
prevCompleted = completed;
|
|
186
|
+
onProgress({
|
|
187
|
+
step: 'Downloading assets...',
|
|
188
|
+
current: completed,
|
|
189
|
+
total: assetHandler.queueSize,
|
|
190
|
+
update: true,
|
|
191
|
+
});
|
|
192
|
+
}, 500);
|
|
193
|
+
debug('Waiting for asset handler to complete downloads');
|
|
194
|
+
try {
|
|
195
|
+
const assetMap = await assetHandler.finish();
|
|
196
|
+
// Make sure we mark the progress as done (eg 100/100 instead of 99/100)
|
|
197
|
+
onProgress({
|
|
198
|
+
step: 'Downloading assets...',
|
|
199
|
+
current: assetHandler.queueSize,
|
|
200
|
+
total: assetHandler.queueSize,
|
|
201
|
+
update: true,
|
|
202
|
+
});
|
|
203
|
+
const assetsStream = createWriteStream(assetsPath);
|
|
204
|
+
await pipeline(new JsonStreamStringify(assetMap), assetsStream);
|
|
205
|
+
if (options.assetsMap) {
|
|
206
|
+
archive.file(assetsPath, { name: 'assets.json', prefix });
|
|
207
|
+
}
|
|
208
|
+
clearInterval(progressInterval);
|
|
209
|
+
}
|
|
210
|
+
catch (assetErr) {
|
|
211
|
+
clearInterval(progressInterval);
|
|
212
|
+
await cleanup().catch(noop); // Try to clean up, but ignore errors here
|
|
213
|
+
reject(assetErr instanceof Error ? assetErr : new Error(`${assetErr}`));
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// Add all downloaded assets to archive
|
|
217
|
+
archive.directory(joinPath(tmpDir, 'files'), `${prefix}/files`);
|
|
218
|
+
archive.directory(joinPath(tmpDir, 'images'), `${prefix}/images`);
|
|
219
|
+
debug('Finalizing archive, flushing streams');
|
|
220
|
+
onProgress({ step: 'Adding assets to archive...' });
|
|
221
|
+
await archive.finalize();
|
|
222
|
+
})
|
|
223
|
+
.catch(async (err) => {
|
|
224
|
+
if (debugTimer !== null)
|
|
225
|
+
clearTimeout(debugTimer);
|
|
226
|
+
debug(`Export stream error @ ${lastDocumentID}/${documentCount}: `, err);
|
|
227
|
+
await cleanup().catch(noop);
|
|
228
|
+
reject(err instanceof Error ? err : new Error(`${err}`));
|
|
229
|
+
});
|
|
230
|
+
pipeline(archive, outputStream)
|
|
231
|
+
.then(() => onComplete())
|
|
232
|
+
.catch(onComplete);
|
|
233
|
+
async function onComplete(err) {
|
|
234
|
+
onProgress({ step: 'Clearing temporary files...' });
|
|
235
|
+
await cleanup();
|
|
236
|
+
if (!err) {
|
|
237
|
+
debug('Export completed');
|
|
238
|
+
resolve({
|
|
239
|
+
outputPath: options.outputPath,
|
|
240
|
+
documentCount,
|
|
241
|
+
assetCount: assetHandler.filesWritten,
|
|
242
|
+
});
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
debug('Error during streaming: %s', err.stack);
|
|
246
|
+
assetHandler.clear();
|
|
247
|
+
reject(err);
|
|
248
|
+
}
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
251
|
+
function getDocumentInputStream(options) {
|
|
252
|
+
return options.mode === MODE_STREAM
|
|
253
|
+
? getDocumentsStream(options)
|
|
254
|
+
: getDocumentCursorStream(options);
|
|
255
|
+
}
|
|
256
|
+
export async function exportMediaLibrary(options) {
|
|
257
|
+
return exportDataset(options);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Alias for `exportDataset`, for backwards compatibility.
|
|
261
|
+
* Use named `exportDataset` instead.
|
|
262
|
+
*
|
|
263
|
+
* @deprecated Default export is deprecated and will be removed in a future release. Use named "exportDataset" function instead.
|
|
264
|
+
* @public
|
|
265
|
+
*/
|
|
266
|
+
export default deprecate(function deprecatedExport(opts) {
|
|
267
|
+
return exportDataset(opts);
|
|
268
|
+
}, `Default export of "@sanity/export" is deprecated and will be removed in a future release. Please use the named "exportDataset" function instead.`, 'DEP_SANITY_EXPORT_DEFAULT');
|
|
269
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDocumentTypes.d.ts","sourceRoot":"","sources":["../src/filterDocumentTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAK1C,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,CAejF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { throughObj } from './util/streamHelpers.js';
|
|
2
|
+
export function filterDocumentTypes(allowedTypes) {
|
|
3
|
+
if (!allowedTypes || allowedTypes.length === 0) {
|
|
4
|
+
// Pass-through
|
|
5
|
+
return throughObj((doc, _enc, callback) => callback(null, doc));
|
|
6
|
+
}
|
|
7
|
+
return throughObj(function docTypesFilter(doc, _enc, callback) {
|
|
8
|
+
const type = doc._type;
|
|
9
|
+
if (allowedTypes.includes(type)) {
|
|
10
|
+
callback(null, doc);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
callback();
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=filterDocumentTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDocumentTypes.js","sourceRoot":"","sources":["../src/filterDocumentTypes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAA;AAGlD,MAAM,UAAU,mBAAmB,CAAC,YAAkC;IACpE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,eAAe;QACf,OAAO,UAAU,CAAC,CAAC,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,cAAc,CAAC,GAAmB,EAAE,IAAI,EAAE,QAAQ;QAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAA;QACtB,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACnB,OAAM;QACR,CAAC;QAED,QAAQ,EAAE,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDocuments.d.ts","sourceRoot":"","sources":["../src/filterDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AA0B1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CA4B1D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { throughObj } from './util/streamHelpers.js';
|
|
2
|
+
import { debug } from './debug.js';
|
|
3
|
+
const isDraftOrVersion = (doc) => Boolean(doc._id && (doc._id.indexOf('drafts.') === 0 || doc._id.indexOf('versions.') === 0));
|
|
4
|
+
const isSystemDocument = (doc) => Boolean(doc._id && doc._id.indexOf('_.') === 0);
|
|
5
|
+
const isReleaseDocument = (doc) => Boolean(doc._id && doc._id.indexOf('_.releases.') === 0);
|
|
6
|
+
const isCursor = (doc) => typeof doc === 'object' &&
|
|
7
|
+
doc !== null &&
|
|
8
|
+
!('_id' in doc) &&
|
|
9
|
+
'nextCursor' in doc &&
|
|
10
|
+
doc.nextCursor !== undefined;
|
|
11
|
+
export function filterDocuments(drafts) {
|
|
12
|
+
return throughObj(function filterDocs(doc, _enc, callback) {
|
|
13
|
+
if (isCursor(doc)) {
|
|
14
|
+
debug('%o is a cursor, skipping', doc);
|
|
15
|
+
callback();
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const sanityDoc = doc;
|
|
19
|
+
if (!drafts && isDraftOrVersion(sanityDoc)) {
|
|
20
|
+
debug('%s is a draft or version, skipping', sanityDoc._id);
|
|
21
|
+
callback();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (isSystemDocument(sanityDoc)) {
|
|
25
|
+
if (drafts && isReleaseDocument(sanityDoc)) {
|
|
26
|
+
callback(null, sanityDoc);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
debug('%s is a system document, skipping', sanityDoc._id);
|
|
30
|
+
callback();
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
callback(null, sanityDoc);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=filterDocuments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDocuments.js","sourceRoot":"","sources":["../src/filterDocuments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAOhC,MAAM,gBAAgB,GAAG,CAAC,GAAmB,EAAW,EAAE,CACxD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE9F,MAAM,gBAAgB,GAAG,CAAC,GAAmB,EAAW,EAAE,CACxD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAEjD,MAAM,iBAAiB,GAAG,CAAC,GAAmB,EAAW,EAAE,CACzD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAE1D,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAyB,EAAE,CACvD,OAAO,GAAG,KAAK,QAAQ;IACvB,GAAG,KAAK,IAAI;IACZ,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;IACf,YAAY,IAAI,GAAG;IAClB,GAAsB,CAAC,UAAU,KAAK,SAAS,CAAA;AAElD,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,OAAO,UAAU,CAAC,SAAS,UAAU,CAAC,GAAoC,EAAE,IAAI,EAAE,QAAQ;QACxF,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;YACtC,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAA;QAErB,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,oCAAoC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;YAC1D,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,IAAI,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBACzB,OAAM;YACR,CAAC;YACD,KAAK,CAAC,mCAAmC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;YACzD,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentCursorStream.d.ts","sourceRoot":"","sources":["../src/getDocumentCursorStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAyB,MAAM,aAAa,CAAA;AAK7D,OAAO,KAAK,EAAC,uBAAuB,EAAiB,MAAM,YAAY,CAAA;AAWvE,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,SAAS,CAAC,CA8DpB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Transform } from 'node:stream';
|
|
2
|
+
import { debug } from './debug.js';
|
|
3
|
+
import { getUserAgent } from './getUserAgent.js';
|
|
4
|
+
import { requestStream } from './requestStream.js';
|
|
5
|
+
import { getSource } from './options.js';
|
|
6
|
+
// same regex as split2 is using by default: https://github.com/mcollina/split2/blob/53432f54bd5bf422bd55d91d38f898b6c9496fc1/index.js#L86
|
|
7
|
+
const splitRegex = /\r?\n/;
|
|
8
|
+
export async function getDocumentCursorStream(options) {
|
|
9
|
+
let streamsInflight = 0;
|
|
10
|
+
function decrementInflight(stream) {
|
|
11
|
+
streamsInflight--;
|
|
12
|
+
if (streamsInflight === 0) {
|
|
13
|
+
stream.end();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const stream = new Transform({
|
|
17
|
+
transform(chunk, encoding, callback) {
|
|
18
|
+
if (encoding !== 'buffer' && encoding !== 'string') {
|
|
19
|
+
callback(null, chunk);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.push(chunk, encoding);
|
|
23
|
+
let parsedChunk = null;
|
|
24
|
+
for (const chunkStr of chunk.toString().split(splitRegex)) {
|
|
25
|
+
if (chunkStr.trim() === '') {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
parsedChunk = JSON.parse(chunkStr);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Ignore JSON parse errors
|
|
33
|
+
// this can happen if the chunk is not a JSON object. We just pass it through and let the caller handle it.
|
|
34
|
+
debug('Failed to parse JSON chunk, ignoring', chunkStr);
|
|
35
|
+
}
|
|
36
|
+
if (parsedChunk !== null &&
|
|
37
|
+
typeof parsedChunk === 'object' &&
|
|
38
|
+
'nextCursor' in parsedChunk &&
|
|
39
|
+
typeof parsedChunk.nextCursor === 'string' &&
|
|
40
|
+
!('_id' in parsedChunk)) {
|
|
41
|
+
debug('Got next cursor "%s", fetching next stream', parsedChunk.nextCursor);
|
|
42
|
+
streamsInflight++;
|
|
43
|
+
void startStream(options, parsedChunk.nextCursor).then((reqStream) => {
|
|
44
|
+
reqStream.on('end', () => decrementInflight(this));
|
|
45
|
+
reqStream.pipe(this, { end: false });
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
callback();
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
streamsInflight++;
|
|
53
|
+
const reqStream = await startStream(options, '');
|
|
54
|
+
reqStream.on('end', () => decrementInflight(stream));
|
|
55
|
+
reqStream.pipe(stream, { end: false });
|
|
56
|
+
return stream;
|
|
57
|
+
}
|
|
58
|
+
function startStream(options, nextCursor) {
|
|
59
|
+
const source = getSource(options);
|
|
60
|
+
const baseUrl = options.client.getUrl(source.type === 'dataset'
|
|
61
|
+
? `/data/export/${source.id}`
|
|
62
|
+
: `/media-libraries/${source.id}/export`);
|
|
63
|
+
const url = new URL(baseUrl);
|
|
64
|
+
url.searchParams.set('nextCursor', nextCursor);
|
|
65
|
+
if (options.types && options.types.length > 0) {
|
|
66
|
+
url.searchParams.set('types', options.types.join());
|
|
67
|
+
}
|
|
68
|
+
const token = options.client.config().token;
|
|
69
|
+
const headers = {
|
|
70
|
+
'User-Agent': getUserAgent(),
|
|
71
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
72
|
+
};
|
|
73
|
+
debug('Starting stream with cursor "%s"', nextCursor);
|
|
74
|
+
return requestStream({
|
|
75
|
+
url: url.toString(),
|
|
76
|
+
headers,
|
|
77
|
+
maxRetries: options.maxRetries,
|
|
78
|
+
...(options.retryDelayMs !== undefined ? { retryDelayMs: options.retryDelayMs } : {}),
|
|
79
|
+
readTimeout: options.readTimeout,
|
|
80
|
+
}).then((res) => {
|
|
81
|
+
debug('Got stream with HTTP %d', res.statusCode);
|
|
82
|
+
return res;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=getDocumentCursorStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentCursorStream.js","sourceRoot":"","sources":["../src/getDocumentCursorStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ExportSource, NormalizedExportOptions, ResponseStream } from './types.js';
|
|
2
|
+
type GetDocumentStreamOptions = Partial<NormalizedExportOptions> & Pick<NormalizedExportOptions, 'client' | 'types' | 'maxRetries' | 'retryDelayMs' | 'readTimeout'> & ExportSource;
|
|
3
|
+
export declare function getDocumentsStream(options: GetDocumentStreamOptions): Promise<ResponseStream>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=getDocumentsStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentsStream.d.ts","sourceRoot":"","sources":["../src/getDocumentsStream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAC,MAAM,YAAY,CAAA;AAErF,KAAK,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,GAC9D,IAAI,CACF,uBAAuB,EACvB,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,CACnE,GACD,YAAY,CAAA;AAEd,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4B7F"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getUserAgent } from './getUserAgent.js';
|
|
2
|
+
import { getSource } from './options.js';
|
|
3
|
+
import { requestStream } from './requestStream.js';
|
|
4
|
+
export function getDocumentsStream(options) {
|
|
5
|
+
// Sanity client doesn't handle streams natively since we want to support node/browser
|
|
6
|
+
// with same API. We're just using it here to get hold of URLs and tokens.
|
|
7
|
+
const source = getSource(options);
|
|
8
|
+
const baseUrl = options.client.getUrl(source.type === 'dataset'
|
|
9
|
+
? `/data/export/${source.id}`
|
|
10
|
+
: `/media-libraries/${source.id}/export`);
|
|
11
|
+
const url = new URL(baseUrl);
|
|
12
|
+
if (options.types && options.types.length > 0) {
|
|
13
|
+
url.searchParams.set('types', options.types.join());
|
|
14
|
+
}
|
|
15
|
+
const token = options.client.config().token;
|
|
16
|
+
const headers = {
|
|
17
|
+
'User-Agent': getUserAgent(),
|
|
18
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
19
|
+
};
|
|
20
|
+
return requestStream({
|
|
21
|
+
url: url.toString(),
|
|
22
|
+
headers,
|
|
23
|
+
maxRetries: options.maxRetries,
|
|
24
|
+
...(options.retryDelayMs !== undefined ? { retryDelayMs: options.retryDelayMs } : {}),
|
|
25
|
+
readTimeout: options.readTimeout,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getDocumentsStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDocumentsStream.js","sourceRoot":"","sources":["../src/getDocumentsStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAA;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAUhD,MAAM,UAAU,kBAAkB,CAAC,OAAiC;IAClE,sFAAsF;IACtF,0EAA0E;IAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CACnC,MAAM,CAAC,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,gBAAgB,MAAM,CAAC,EAAE,EAAE;QAC7B,CAAC,CAAC,oBAAoB,MAAM,CAAC,EAAE,SAAS,CAC3C,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAA;IAC3C,MAAM,OAAO,GAA2B;QACtC,YAAY,EAAE,YAAY,EAAE;QAC5B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,KAAK,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAA;IAED,OAAO,aAAa,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserAgent.d.ts","sourceRoot":"","sources":["../src/getUserAgent.ts"],"names":[],"mappings":"AAUA,wBAAgB,YAAY,IAAI,MAAM,CAQrC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { join as joinPath } from 'node:path';
|
|
3
|
+
let ua = null;
|
|
4
|
+
export function getUserAgent() {
|
|
5
|
+
if (!ua) {
|
|
6
|
+
const data = readFileSync(joinPath(import.meta.dirname, '..', 'package.json'), 'utf-8');
|
|
7
|
+
const pkg = JSON.parse(data);
|
|
8
|
+
ua = `${pkg.name}@${pkg.version}`;
|
|
9
|
+
}
|
|
10
|
+
return ua;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=getUserAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserAgent.js","sourceRoot":"","sources":["../src/getUserAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AACpC,OAAO,EAAC,IAAI,IAAI,QAAQ,EAAC,MAAM,WAAW,CAAA;AAO1C,IAAI,EAAE,GAAkB,IAAI,CAAA;AAE5B,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;QACvF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAA;QAC3C,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,aAAa,CAAA;AACtE,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logFirstChunk.d.ts","sourceRoot":"","sources":["../src/logFirstChunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAK1C,wBAAgB,aAAa,IAAI,SAAS,CAWzC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { through } from './util/streamHelpers.js';
|
|
2
|
+
import { debug } from './debug.js';
|
|
3
|
+
export function logFirstChunk() {
|
|
4
|
+
let firstChunk = true;
|
|
5
|
+
return through((chunk, _enc, callback) => {
|
|
6
|
+
if (firstChunk) {
|
|
7
|
+
const string = chunk.toString('utf8').split('\n')[0];
|
|
8
|
+
debug('First chunk received: %s', string?.slice(0, 300));
|
|
9
|
+
firstChunk = false;
|
|
10
|
+
}
|
|
11
|
+
callback(null, chunk);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=logFirstChunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logFirstChunk.js","sourceRoot":"","sources":["../src/logFirstChunk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAEhC,MAAM,UAAU,aAAa;IAC3B,IAAI,UAAU,GAAG,IAAI,CAAA;IACrB,OAAO,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,KAAK,CAAC,0BAA0B,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YACxD,UAAU,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ExportOptions, ExportSource, NormalizedExportOptions } from './types.js';
|
|
2
|
+
export declare function validateOptions(opts: ExportOptions): NormalizedExportOptions;
|
|
3
|
+
/**
|
|
4
|
+
* Determines the source type and ID from the provided options.
|
|
5
|
+
*
|
|
6
|
+
* @param options - The export options containing either dataset or mediaLibraryId.
|
|
7
|
+
* @returns An object with the source type and its corresponding ID.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSource(options: ExportSource): {
|
|
11
|
+
type: 'dataset' | 'media-library';
|
|
12
|
+
id: string;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAiB,MAAM,YAAY,CAAA;AAmBpG,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,uBAAuB,CA4F5E;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG;IAChD,IAAI,EAAE,SAAS,GAAG,eAAe,CAAA;IACjC,EAAE,EAAE,MAAM,CAAA;CACX,CAOA"}
|