pyric-admin 0.1.0-alpha.30.1 → 0.1.0-alpha.31
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/database/index.d.ts +6 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +119 -65
- package/dist/database/index.js.map +1 -1
- package/dist/storage/delete-files.d.ts +6 -0
- package/dist/storage/delete-files.d.ts.map +1 -1
- package/dist/storage/delete-files.js +21 -1
- package/dist/storage/delete-files.js.map +1 -1
- package/dist/storage/file-query.d.ts +12 -0
- package/dist/storage/file-query.d.ts.map +1 -1
- package/dist/storage/file-query.js +22 -12
- package/dist/storage/file-query.js.map +1 -1
- package/dist/storage/get-files.d.ts +6 -0
- package/dist/storage/get-files.d.ts.map +1 -1
- package/dist/storage/get-files.js +24 -1
- package/dist/storage/get-files.js.map +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +11 -9
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/remote-names.d.ts +28 -4
- package/dist/storage/remote-names.d.ts.map +1 -1
- package/dist/storage/remote-names.js +125 -13
- package/dist/storage/remote-names.js.map +1 -1
- package/package.json +2 -2
- package/src/auth/oracle-admin-answers.test.ts +114 -0
- package/src/auth/verify-id-token-claims.test.ts +42 -0
- package/src/database/index.ts +136 -68
- package/src/storage/delete-files.ts +20 -1
- package/src/storage/file-query.ts +24 -12
- package/src/storage/get-files.ts +25 -0
- package/src/storage/index.ts +11 -9
- package/src/storage/remote-names.ts +144 -13
package/dist/database/index.d.ts
CHANGED
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* an in-memory RTDB implementing this load-bearing data-plane subset:
|
|
7
7
|
*
|
|
8
8
|
* - `Database.ref(path?)` returns a {@link Reference}.
|
|
9
|
-
* - `Reference#set(value)` writes into the in-memory tree
|
|
9
|
+
* - `Reference#set(value)` writes into the in-memory tree, normalized
|
|
10
|
+
* as the host normalizes it: arrays become integer-keyed children,
|
|
11
|
+
* null children and empty objects are dropped, and `val()` renders
|
|
12
|
+
* integer keys back as an array (`ChildrenNode.val`, #1121).
|
|
13
|
+
* Inline `.priority` keys are dropped, since priorities are not
|
|
14
|
+
* modeled here.
|
|
10
15
|
* - `Reference#get()` reads; returns a `DataSnapshot`-shaped
|
|
11
16
|
* `{ exists(), val(), key, child(), forEach(), … }`.
|
|
12
17
|
* - `Reference#update(values)` merges children (a `null` value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
|
package/dist/database/index.js
CHANGED
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* an in-memory RTDB implementing this load-bearing data-plane subset:
|
|
7
7
|
*
|
|
8
8
|
* - `Database.ref(path?)` returns a {@link Reference}.
|
|
9
|
-
* - `Reference#set(value)` writes into the in-memory tree
|
|
9
|
+
* - `Reference#set(value)` writes into the in-memory tree, normalized
|
|
10
|
+
* as the host normalizes it: arrays become integer-keyed children,
|
|
11
|
+
* null children and empty objects are dropped, and `val()` renders
|
|
12
|
+
* integer keys back as an array (`ChildrenNode.val`, #1121).
|
|
13
|
+
* Inline `.priority` keys are dropped, since priorities are not
|
|
14
|
+
* modeled here.
|
|
10
15
|
* - `Reference#get()` reads; returns a `DataSnapshot`-shaped
|
|
11
16
|
* `{ exists(), val(), key, child(), forEach(), … }`.
|
|
12
17
|
* - `Reference#update(values)` merges children (a `null` value
|
|
@@ -78,7 +83,7 @@ import { createDatabaseInstanceRegistry, isCustomDatabaseHost, isDefaultDatabase
|
|
|
78
83
|
import { ADMIN_APP_TARGET, getApp, } from '../app/index.js';
|
|
79
84
|
import { assertAdminAppActive } from '../app/lifecycle.js';
|
|
80
85
|
import { increment, serverTimestamp } from 'pyric/database';
|
|
81
|
-
import { assertGettablePath, valueAtChildPath, valueChildren } from 'pyric/database/internal';
|
|
86
|
+
import { assertGettablePath, coerceArrays, errorPrefix, inlinePriorities, normalizeNode, validateUpdate, validateWrite, valueAtChildPath, valueChildren, } from 'pyric/database/internal';
|
|
82
87
|
import { deferredExport } from 'pyric/app/internal';
|
|
83
88
|
/** `firebase-admin/database`'s `enableLogging`. The sandbox does not model
|
|
84
89
|
* the client logger, so it fails with an error naming it. */
|
|
@@ -277,20 +282,9 @@ function joinPath(segments) {
|
|
|
277
282
|
return '/';
|
|
278
283
|
return '/' + segments.join('/');
|
|
279
284
|
}
|
|
280
|
-
/**
|
|
281
|
-
*
|
|
282
|
-
|
|
283
|
-
if (v === null || typeof v !== 'object')
|
|
284
|
-
return v;
|
|
285
|
-
if (Array.isArray(v))
|
|
286
|
-
return v.map((x) => cloneJson(x));
|
|
287
|
-
const out = {};
|
|
288
|
-
for (const [k, val] of Object.entries(v)) {
|
|
289
|
-
out[k] = cloneJson(val);
|
|
290
|
-
}
|
|
291
|
-
return out;
|
|
292
|
-
}
|
|
293
|
-
/** Read the value at `path` in `root`. `null` for absent paths. */
|
|
285
|
+
/** Read the stored value at `path` in `root`: integer-keyed children stay
|
|
286
|
+
* object keys. `null` for absent paths. The result is a fresh copy, sharing
|
|
287
|
+
* nothing with the stored tree. */
|
|
294
288
|
function readPath(root, path) {
|
|
295
289
|
const segs = pathSegments(path);
|
|
296
290
|
let node = root;
|
|
@@ -305,9 +299,10 @@ function readPath(root, path) {
|
|
|
305
299
|
return null;
|
|
306
300
|
node = obj[seg];
|
|
307
301
|
}
|
|
308
|
-
return
|
|
302
|
+
return structuredClone(node);
|
|
309
303
|
}
|
|
310
|
-
/** Write
|
|
304
|
+
/** Write a value {@link normalizeNode} built at `path`. `null` deletes.
|
|
305
|
+
* Trims empty ancestor objects. */
|
|
311
306
|
function writePath(root, path, value) {
|
|
312
307
|
const segs = pathSegments(path);
|
|
313
308
|
if (segs.length === 0) {
|
|
@@ -319,7 +314,7 @@ function writePath(root, path, value) {
|
|
|
319
314
|
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
320
315
|
throw new Error('pyric-admin/database sandbox: root write must be an object (or null to clear).');
|
|
321
316
|
}
|
|
322
|
-
Object.assign(root,
|
|
317
|
+
Object.assign(root, value);
|
|
323
318
|
return;
|
|
324
319
|
}
|
|
325
320
|
// Walk to parent, creating intermediate objects as needed.
|
|
@@ -347,7 +342,7 @@ function writePath(root, path, value) {
|
|
|
347
342
|
trimEmptyAncestors(root, segs);
|
|
348
343
|
}
|
|
349
344
|
else {
|
|
350
|
-
cursor[lastKey] =
|
|
345
|
+
cursor[lastKey] = value;
|
|
351
346
|
}
|
|
352
347
|
}
|
|
353
348
|
/** Remove now-empty object ancestors after a delete. RTDB invariant:
|
|
@@ -381,6 +376,49 @@ function trimEmptyAncestors(root, segs) {
|
|
|
381
376
|
return;
|
|
382
377
|
}
|
|
383
378
|
}
|
|
379
|
+
// ─── Write validation (both arms) ────────────────────────────────────
|
|
380
|
+
//
|
|
381
|
+
// firebase-admin validates a write before it is sent and throws the error
|
|
382
|
+
// synchronously, so both arms do the same here, with the SDK's text
|
|
383
|
+
// (`validateFirebaseDataArg`, `validateFirebaseMergeDataArg`). Both arms
|
|
384
|
+
// then write the value as RTDB stores it (`normalizeNode`): the remote arm
|
|
385
|
+
// relays that, not the raw value, so a value JSON would carry differently
|
|
386
|
+
// (a `Date` becomes a string) is written as firebase-admin writes it.
|
|
387
|
+
//
|
|
388
|
+
// Priorities are not modeled on either arm: a valid priority, inline or
|
|
389
|
+
// under an `update()` key ending in `.priority`, is accepted and dropped.
|
|
390
|
+
/** The value a `set` or `push` writes, as RTDB stores it, after throwing the
|
|
391
|
+
* SDK's error for a value it refuses. `segs` is the reference's path: for
|
|
392
|
+
* `push`, the parent's. */
|
|
393
|
+
function validateValueArg(fnName, segs, value) {
|
|
394
|
+
validateWrite(value, joinPath(segs), errorPrefix(fnName, 'value'));
|
|
395
|
+
inlinePriorities(value);
|
|
396
|
+
return normalizeNode(value);
|
|
397
|
+
}
|
|
398
|
+
/** Whether an `update()` key addresses a priority, as `a/.priority` does. */
|
|
399
|
+
function isPriorityKey(key) {
|
|
400
|
+
const segments = pathSegments(key);
|
|
401
|
+
return segments[segments.length - 1] === '.priority';
|
|
402
|
+
}
|
|
403
|
+
/** The patch an `update` writes, each value as RTDB stores it and priority
|
|
404
|
+
* keys dropped, after throwing the SDK's error for values it refuses. */
|
|
405
|
+
function validateValuesArg(segs, values) {
|
|
406
|
+
const entries = Object.entries(validateUpdate(values, joinPath(segs)));
|
|
407
|
+
for (const [, value] of entries)
|
|
408
|
+
inlinePriorities(value);
|
|
409
|
+
const dataEntries = entries.filter(([key]) => !isPriorityKey(key));
|
|
410
|
+
return Object.fromEntries(dataEntries.map(([key, value]) => [key, normalizeNode(value)]));
|
|
411
|
+
}
|
|
412
|
+
/** Run a synchronous in-memory write as a promise that settles with it. */
|
|
413
|
+
function settled(write) {
|
|
414
|
+
try {
|
|
415
|
+
write();
|
|
416
|
+
return Promise.resolve();
|
|
417
|
+
}
|
|
418
|
+
catch (error) {
|
|
419
|
+
return Promise.reject(error);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
384
422
|
// ─── Push-id generator ────────────────────────────────────────────────
|
|
385
423
|
//
|
|
386
424
|
// Lifted from `pyric/database/sandbox/push-id.ts` — the algorithm
|
|
@@ -460,9 +498,11 @@ function buildSandboxRef(state, db, path) {
|
|
|
460
498
|
return `sandbox://rtdb${canonical}`;
|
|
461
499
|
},
|
|
462
500
|
// ─── Data-plane methods (implemented) ────────────────────────────
|
|
463
|
-
/** Set `value` at this path. `null` deletes.
|
|
464
|
-
|
|
465
|
-
|
|
501
|
+
/** Set `value` at this path. `null` deletes. A value the SDK refuses
|
|
502
|
+
* throws synchronously, as firebase-admin does. */
|
|
503
|
+
set(value) {
|
|
504
|
+
const stored = validateValueArg('set', segs, value);
|
|
505
|
+
return settled(() => writePath(state.root, canonical, stored));
|
|
466
506
|
},
|
|
467
507
|
/** Read this path. Resolves to a {@link DataSnapshot}-shaped value. */
|
|
468
508
|
async get() {
|
|
@@ -482,19 +522,19 @@ function buildSandboxRef(state, db, path) {
|
|
|
482
522
|
return buildSandboxSnap((p) => buildSandboxRef(state, db, p), canonical, val);
|
|
483
523
|
},
|
|
484
524
|
/** Shallow merge: each key in `values` replaces the corresponding
|
|
485
|
-
* child at this path. `null` values delete.
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
}
|
|
525
|
+
* child at this path. `null` values delete. Values the SDK refuses
|
|
526
|
+
* throw synchronously, as firebase-admin does. */
|
|
527
|
+
update(values) {
|
|
528
|
+
const patch = validateValuesArg(segs, values);
|
|
529
|
+
return settled(() => {
|
|
530
|
+
for (const [k, v] of Object.entries(patch)) {
|
|
531
|
+
writePath(state.root, joinPath([...segs, ...pathSegments(k)]), v);
|
|
532
|
+
}
|
|
533
|
+
});
|
|
494
534
|
},
|
|
495
535
|
/** Delete the subtree at this path. Equivalent to `set(null)`. */
|
|
496
|
-
|
|
497
|
-
writePath(state.root, canonical, null);
|
|
536
|
+
remove() {
|
|
537
|
+
return settled(() => writePath(state.root, canonical, null));
|
|
498
538
|
},
|
|
499
539
|
/** Mint a 20-char push id, optionally writing `value` at the new
|
|
500
540
|
* child. Returns a Reference at the new child path. The shape
|
|
@@ -502,11 +542,12 @@ function buildSandboxRef(state, db, path) {
|
|
|
502
542
|
* once the (synchronous) write completes; the underlying ref is
|
|
503
543
|
* available synchronously via the returned object's own methods. */
|
|
504
544
|
push(value, onComplete) {
|
|
545
|
+
const stored = value === undefined ? undefined : validateValueArg('push', segs, value);
|
|
505
546
|
const id = generatePushId();
|
|
506
547
|
const childPath = joinPath([...segs, id]);
|
|
507
|
-
if (
|
|
548
|
+
if (stored !== undefined) {
|
|
508
549
|
try {
|
|
509
|
-
writePath(state.root, childPath,
|
|
550
|
+
writePath(state.root, childPath, stored);
|
|
510
551
|
}
|
|
511
552
|
catch (err) {
|
|
512
553
|
if (onComplete)
|
|
@@ -617,14 +658,22 @@ function buildSandboxRef(state, db, path) {
|
|
|
617
658
|
* the load-bearing subset of firebase-admin's `DataSnapshot` shape.
|
|
618
659
|
* Backend-agnostic: the snapshot is a pure (path, value) view; `refAt`
|
|
619
660
|
* supplies backend-appropriate `Reference`s (local tree or remote), so
|
|
620
|
-
* the local and remote arms share one snapshot implementation.
|
|
621
|
-
|
|
661
|
+
* the local and remote arms share one snapshot implementation.
|
|
662
|
+
*
|
|
663
|
+
* `stored` is the value as RTDB stores it, children by key, with no
|
|
664
|
+
* arrays. `val()` renders integer keys as an array when they are dense
|
|
665
|
+
* enough; `exportVal()` and `toJSON()` never do (`ChildrenNode.val`
|
|
666
|
+
* builds an array only when not exporting). `exported`, when given, is the
|
|
667
|
+
* host's export of the same node, priorities included. */
|
|
668
|
+
function buildSandboxSnap(refAt, path, stored, exported) {
|
|
622
669
|
const segs = pathSegments(path);
|
|
623
670
|
const key = segs.length === 0 ? null : segs[segs.length - 1];
|
|
624
|
-
const exists =
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
const children = valueChildren(
|
|
671
|
+
const exists = stored !== null;
|
|
672
|
+
// A node `val()` renders as an array still has its children, keyed
|
|
673
|
+
// '0', '1', ... in index order (#1110).
|
|
674
|
+
const children = valueChildren(stored);
|
|
675
|
+
const val = coerceArrays(stored);
|
|
676
|
+
const exportedChild = (childSegs) => exported === undefined ? undefined : valueAtChildPath(exported, childSegs);
|
|
628
677
|
const snap = {
|
|
629
678
|
key,
|
|
630
679
|
get ref() {
|
|
@@ -638,8 +687,8 @@ function buildSandboxSnap(refAt, path, val) {
|
|
|
638
687
|
},
|
|
639
688
|
child(p) {
|
|
640
689
|
const childSegs = pathSegments(p);
|
|
641
|
-
const childVal = valueAtChildPath(
|
|
642
|
-
return buildSandboxSnap(refAt, joinPath([...segs, ...childSegs]), childVal);
|
|
690
|
+
const childVal = valueAtChildPath(stored, childSegs);
|
|
691
|
+
return buildSandboxSnap(refAt, joinPath([...segs, ...childSegs]), childVal, exportedChild(childSegs));
|
|
643
692
|
},
|
|
644
693
|
hasChild(p) {
|
|
645
694
|
return snap.child(p).exists();
|
|
@@ -652,14 +701,14 @@ function buildSandboxSnap(refAt, path, val) {
|
|
|
652
701
|
},
|
|
653
702
|
forEach(cb) {
|
|
654
703
|
for (const { key: childKey, value } of children) {
|
|
655
|
-
const childSnap = buildSandboxSnap(refAt, joinPath([...segs, childKey]), value);
|
|
704
|
+
const childSnap = buildSandboxSnap(refAt, joinPath([...segs, childKey]), value, exportedChild([childKey]));
|
|
656
705
|
if (cb(childSnap) === true)
|
|
657
706
|
return true;
|
|
658
707
|
}
|
|
659
708
|
return false;
|
|
660
709
|
},
|
|
661
710
|
toJSON() {
|
|
662
|
-
return
|
|
711
|
+
return snap.exportVal();
|
|
663
712
|
},
|
|
664
713
|
// RTDB priority isn't modeled — return `null`, matching the SDK
|
|
665
714
|
// default for a node without an explicit priority.
|
|
@@ -667,9 +716,9 @@ function buildSandboxSnap(refAt, path, val) {
|
|
|
667
716
|
return null;
|
|
668
717
|
},
|
|
669
718
|
exportVal() {
|
|
670
|
-
//
|
|
671
|
-
//
|
|
672
|
-
return
|
|
719
|
+
// The SDK's export format adds `.priority` where one is set. The
|
|
720
|
+
// in-process arm models no priorities, so it is the stored value.
|
|
721
|
+
return structuredClone(exported === undefined ? stored : exported);
|
|
673
722
|
},
|
|
674
723
|
};
|
|
675
724
|
return snap;
|
|
@@ -730,7 +779,11 @@ function buildRemoteRef(state, db, path) {
|
|
|
730
779
|
const segs = pathSegments(canonical);
|
|
731
780
|
const key = segs.length === 0 ? null : segs[segs.length - 1];
|
|
732
781
|
const refAt = (p) => buildRemoteRef(state, db, p);
|
|
733
|
-
|
|
782
|
+
// The host sends `val()`, arrays included; storing it again by key
|
|
783
|
+
// recovers the stored value (an array's nulls are holes, not children).
|
|
784
|
+
// `exportValue` carries the priorities another plane set; this arm writes
|
|
785
|
+
// none, but reads them back as the host has them.
|
|
786
|
+
const snapFromWire = (wire) => buildSandboxSnap(refAt, canonical, normalizeNode(wire.value ?? null), wire.exportValue);
|
|
734
787
|
const ref = {
|
|
735
788
|
key,
|
|
736
789
|
get parent() {
|
|
@@ -748,13 +801,14 @@ function buildRemoteRef(state, db, path) {
|
|
|
748
801
|
return `sandbox://rtdb${canonical}`;
|
|
749
802
|
},
|
|
750
803
|
// ─── Data-plane methods (relayed worker ops) ─────────────────────
|
|
751
|
-
/** Set `value` at this path. `null` deletes. Relays `rtdb.set`.
|
|
752
|
-
|
|
753
|
-
|
|
804
|
+
/** Set `value` at this path. `null` deletes. Relays `rtdb.set`. A
|
|
805
|
+
* value the SDK refuses throws synchronously and is not relayed. */
|
|
806
|
+
set(value) {
|
|
807
|
+
return relayRtdbOp(state, {
|
|
754
808
|
method: 'rtdb.set',
|
|
755
809
|
path: canonical,
|
|
756
|
-
value:
|
|
757
|
-
});
|
|
810
|
+
value: validateValueArg('set', segs, value),
|
|
811
|
+
}).then(() => undefined);
|
|
758
812
|
},
|
|
759
813
|
/** Read this path (`rtdb.get`). Resolves to a `DataSnapshot`. */
|
|
760
814
|
async get() {
|
|
@@ -795,16 +849,15 @@ function buildRemoteRef(state, db, path) {
|
|
|
795
849
|
},
|
|
796
850
|
/** Relays `rtdb.update` — the worker applies the FULL multi-path
|
|
797
851
|
* update semantics (`pyric/database`), an upgrade over the
|
|
798
|
-
* local arm's shallow per-key merge. `null` values delete.
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
await relayRtdbOp(state, {
|
|
852
|
+
* local arm's shallow per-key merge. `null` values delete. Values the
|
|
853
|
+
* SDK refuses throw synchronously and are not relayed. */
|
|
854
|
+
update(values) {
|
|
855
|
+
const patch = validateValuesArg(segs, values);
|
|
856
|
+
return relayRtdbOp(state, {
|
|
804
857
|
method: 'rtdb.update',
|
|
805
858
|
path: canonical,
|
|
806
|
-
values:
|
|
807
|
-
});
|
|
859
|
+
values: patch,
|
|
860
|
+
}).then(() => undefined);
|
|
808
861
|
},
|
|
809
862
|
/** Delete the subtree at this path (`rtdb.remove`). */
|
|
810
863
|
async remove() {
|
|
@@ -823,11 +876,12 @@ function buildRemoteRef(state, db, path) {
|
|
|
823
876
|
* rejects the thenable and reaches `onComplete`.
|
|
824
877
|
*/
|
|
825
878
|
push(value, onComplete) {
|
|
879
|
+
const stored = value === undefined ? undefined : validateValueArg('push', segs, value);
|
|
826
880
|
const id = generatePushId();
|
|
827
881
|
const childPath = joinPath([...segs, id]);
|
|
828
|
-
const write =
|
|
882
|
+
const write = stored === undefined
|
|
829
883
|
? Promise.resolve()
|
|
830
|
-
: relayRtdbOp(state, { method: 'rtdb.push', path: canonical, key: id, value })
|
|
884
|
+
: relayRtdbOp(state, { method: 'rtdb.push', path: canonical, key: id, value: stored })
|
|
831
885
|
.then(() => undefined);
|
|
832
886
|
// Surface completion without forcing the caller to await: `.then`'s
|
|
833
887
|
// rejection handler also keeps a fire-and-forget push from becoming
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,10 @@
|
|
|
10
10
|
import { type DeleteFilesOptions } from './file-query.js';
|
|
11
11
|
/** Delete each object of `names` that `query` lists, with `remove`. */
|
|
12
12
|
export declare function deleteListedFiles(names: readonly string[], query: DeleteFilesOptions, remove: (name: string) => Promise<void>): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* A stop rule for names arriving in name order: true once they hold the
|
|
15
|
+
* `maxResults` files `deleteFiles(query)` deletes. Without `maxResults` it
|
|
16
|
+
* deletes every listed file, so it needs every name.
|
|
17
|
+
*/
|
|
18
|
+
export declare function deletedNamesFound(query: DeleteFilesOptions): (name: string) => boolean;
|
|
13
19
|
//# sourceMappingURL=delete-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-files.d.ts","sourceRoot":"","sources":["../../src/storage/delete-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"delete-files.d.ts","sourceRoot":"","sources":["../../src/storage/delete-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA0C,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAKlG,uEAAuE;AACvE,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAYtF"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* started. With `force`, every file is tried, and the call rejects with the
|
|
8
8
|
* array of errors when any failed, as the library's callback receives them.
|
|
9
9
|
*/
|
|
10
|
-
import { everyListedName } from './file-query.js';
|
|
10
|
+
import { entryOf, everyListedName, resumesAfter } from './file-query.js';
|
|
11
11
|
/** How many deletes `@google-cloud/storage` runs at once. */
|
|
12
12
|
const PARALLEL_DELETES = 10;
|
|
13
13
|
/** Delete each object of `names` that `query` lists, with `remove`. */
|
|
@@ -36,4 +36,24 @@ export async function deleteListedFiles(names, query, remove) {
|
|
|
36
36
|
throw errors[0];
|
|
37
37
|
throw errors;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* A stop rule for names arriving in name order: true once they hold the
|
|
41
|
+
* `maxResults` files `deleteFiles(query)` deletes. Without `maxResults` it
|
|
42
|
+
* deletes every listed file, so it needs every name.
|
|
43
|
+
*/
|
|
44
|
+
export function deletedNamesFound(query) {
|
|
45
|
+
const maxResults = query.maxResults ?? 0;
|
|
46
|
+
const limited = maxResults > 0;
|
|
47
|
+
if (!limited)
|
|
48
|
+
return () => false;
|
|
49
|
+
const after = resumesAfter(query);
|
|
50
|
+
let found = 0;
|
|
51
|
+
return (name) => {
|
|
52
|
+
const entry = entryOf(name, query);
|
|
53
|
+
const listedFile = entry !== undefined && !entry.rolledUp && (after === undefined || entry.key > after);
|
|
54
|
+
if (listedFile)
|
|
55
|
+
found += 1;
|
|
56
|
+
return found >= maxResults;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
39
59
|
//# sourceMappingURL=delete-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-files.js","sourceRoot":"","sources":["../../src/storage/delete-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-files.js","sourceRoot":"","sources":["../../src/storage/delete-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAC;AAElG,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAwB,EACxB,KAAyB,EACzB,MAAuC;IAEvC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,SAAS,CAAC;YACR,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,OAAO,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QACxG,IAAI,UAAU;YAAE,KAAK,IAAI,CAAC,CAAC;QAC3B,OAAO,KAAK,IAAI,UAAU,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -49,4 +49,16 @@ export declare function listingPage(names: readonly string[], query: GetFilesOpt
|
|
|
49
49
|
export declare function everyListedName(names: readonly string[], query: GetFilesOptions): string[];
|
|
50
50
|
/** The JSON API response for `page`. */
|
|
51
51
|
export declare function apiResponseOf(page: ListingPage): GetFilesApiResponse;
|
|
52
|
+
/** The entry key a query's `pageToken` resumes after, if it has one. */
|
|
53
|
+
export declare function resumesAfter(query: GetFilesOptions): string | undefined;
|
|
54
|
+
export declare function pageSizeOf(query: GetFilesOptions): number;
|
|
55
|
+
/** A listed entry: a file name, or a prefix that names roll up to at the delimiter. */
|
|
56
|
+
export interface Entry {
|
|
57
|
+
key: string;
|
|
58
|
+
rolledUp: boolean;
|
|
59
|
+
}
|
|
60
|
+
/** The entry `name` lists as under `query`'s prefix and delimiter, or `undefined` outside the prefix. */
|
|
61
|
+
export declare function entryOf(name: string, query: GetFilesOptions): Entry | undefined;
|
|
62
|
+
/** Name order, as the JSON API lists objects. */
|
|
63
|
+
export declare function compareKeys(a: string, b: string): number;
|
|
52
64
|
//# sourceMappingURL=file-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-query.d.ts","sourceRoot":"","sources":["../../src/storage/file-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,kGAAkG;AAClG,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,wGAAwG;IACxG,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,0GAA0G;AAC1G,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAG9D;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,SAAoB,GAAG,WAAW,CAYvH;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,CAK1F;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB,CAMpE"}
|
|
1
|
+
{"version":3,"file":"file-query.d.ts","sourceRoot":"","sources":["../../src/storage/file-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,kGAAkG;AAClG,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,wGAAwG;IACxG,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,0GAA0G;AAC1G,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAG9D;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,SAAoB,GAAG,WAAW,CAYvH;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,CAK1F;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB,CAMpE;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAGzD;AAED,uFAAuF;AACvF,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,yGAAyG;AACzG,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,SAAS,CAS/E;AAYD,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD"}
|
|
@@ -31,7 +31,7 @@ export function readsEveryPage(query) {
|
|
|
31
31
|
/** The page of `names` that `query` asks for, `pageSize` entries at most. */
|
|
32
32
|
export function listingPage(names, query, pageSize = pageSizeOf(query)) {
|
|
33
33
|
const entries = entriesOf(names, query);
|
|
34
|
-
const after =
|
|
34
|
+
const after = resumesAfter(query);
|
|
35
35
|
const remaining = after === undefined ? entries : entries.filter(entry => entry.key > after);
|
|
36
36
|
const page = remaining.slice(0, pageSize);
|
|
37
37
|
const more = remaining.length > page.length;
|
|
@@ -57,28 +57,38 @@ export function apiResponseOf(page) {
|
|
|
57
57
|
...(page.nextPageToken !== undefined ? { nextPageToken: page.nextPageToken } : {}),
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
/** The entry key a query's `pageToken` resumes after, if it has one. */
|
|
61
|
+
export function resumesAfter(query) {
|
|
62
|
+
return query.pageToken === undefined ? undefined : decodeToken(query.pageToken);
|
|
63
|
+
}
|
|
64
|
+
export function pageSizeOf(query) {
|
|
61
65
|
const limited = typeof query.maxResults === 'number' && query.maxResults > 0;
|
|
62
66
|
return limited ? Math.min(query.maxResults, DEFAULT_PAGE_SIZE) : DEFAULT_PAGE_SIZE;
|
|
63
67
|
}
|
|
64
|
-
/** The
|
|
65
|
-
function
|
|
68
|
+
/** The entry `name` lists as under `query`'s prefix and delimiter, or `undefined` outside the prefix. */
|
|
69
|
+
export function entryOf(name, query) {
|
|
66
70
|
const prefix = query.prefix ?? '';
|
|
67
71
|
const delimiter = query.delimiter ?? '';
|
|
72
|
+
if (!name.startsWith(prefix))
|
|
73
|
+
return undefined;
|
|
74
|
+
const rest = name.slice(prefix.length);
|
|
75
|
+
const cut = delimiter === '' ? -1 : rest.indexOf(delimiter);
|
|
76
|
+
const rolledUp = cut !== -1;
|
|
77
|
+
const key = rolledUp ? prefix + rest.slice(0, cut + delimiter.length) : name;
|
|
78
|
+
return { key, rolledUp };
|
|
79
|
+
}
|
|
80
|
+
/** The names under the prefix, with the delimiter's roll-up applied, in name order. */
|
|
81
|
+
function entriesOf(names, query) {
|
|
68
82
|
const byKey = new Map();
|
|
69
83
|
for (const name of names) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const cut = delimiter === '' ? -1 : rest.indexOf(delimiter);
|
|
74
|
-
const rolledUp = cut !== -1;
|
|
75
|
-
const key = rolledUp ? prefix + rest.slice(0, cut + delimiter.length) : name;
|
|
76
|
-
byKey.set(key, { key, rolledUp });
|
|
84
|
+
const entry = entryOf(name, query);
|
|
85
|
+
if (entry !== undefined)
|
|
86
|
+
byKey.set(entry.key, entry);
|
|
77
87
|
}
|
|
78
88
|
return [...byKey.values()].sort((a, b) => compareKeys(a.key, b.key));
|
|
79
89
|
}
|
|
80
90
|
/** Name order, as the JSON API lists objects. */
|
|
81
|
-
function compareKeys(a, b) {
|
|
91
|
+
export function compareKeys(a, b) {
|
|
82
92
|
if (a < b)
|
|
83
93
|
return -1;
|
|
84
94
|
if (a > b)
|