pyric-admin 0.1.0-alpha.30.2 → 0.1.0-alpha.32

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.
@@ -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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
@@ -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
- /** Deep-clone a JSON value so stored state doesn't share identity with
281
- * caller-held references. */
282
- function cloneJson(v) {
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 cloneJson(node);
302
+ return structuredClone(node);
309
303
  }
310
- /** Write `value` at `path`. `null` deletes. Trims empty ancestor objects. */
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, cloneJson(value));
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] = cloneJson(value);
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
- async set(value) {
465
- writePath(state.root, canonical, value);
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
- async update(values) {
487
- if (values === null || typeof values !== 'object') {
488
- throw new TypeError('pyric-admin/database sandbox: update expected an object.');
489
- }
490
- for (const [k, v] of Object.entries(values)) {
491
- const subSegs = [...segs, ...pathSegments(k)];
492
- writePath(state.root, joinPath(subSegs), v);
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
- async remove() {
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 (value !== undefined) {
548
+ if (stored !== undefined) {
508
549
  try {
509
- writePath(state.root, childPath, value);
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
- function buildSandboxSnap(refAt, path, val) {
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 = val !== null;
625
- // An array value still has children: `val()` renders integer keys as an
626
- // array, and the SDK iterates them as '0', '1', ... (#1110).
627
- const children = valueChildren(val);
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(val, childSegs);
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 val;
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
- // No priorities → `exportVal()` matches `val()`. The SDK's
671
- // exportVal includes `.priority` when set; we have none.
672
- return val;
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
- const snapFromWire = (wire) => buildSandboxSnap(refAt, canonical, (wire.value ?? null));
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
- async set(value) {
753
- await relayRtdbOp(state, {
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: value ?? null,
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
- async update(values) {
800
- if (values === null || typeof values !== 'object') {
801
- throw new TypeError('pyric-admin/database sandbox: update expected an object.');
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: 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 = value === undefined
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,EAAmB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK3E,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"}
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;AAE3E,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"}
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 = query.pageToken === undefined ? undefined : decodeToken(query.pageToken);
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
- function pageSizeOf(query) {
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 names under the prefix, with the delimiter's roll-up applied, in name order. */
65
- function entriesOf(names, query) {
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
- if (!name.startsWith(prefix))
71
- continue;
72
- const rest = name.slice(prefix.length);
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)