emberflow 1.5.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +231 -4
  2. package/lib/index-utils.d.ts +18 -7
  3. package/lib/index-utils.js +70 -75
  4. package/lib/index-utils.js.map +1 -1
  5. package/lib/index.d.ts +22 -6
  6. package/lib/index.js +43 -34
  7. package/lib/index.js.map +1 -1
  8. package/lib/logics/view-logics.d.ts +0 -2
  9. package/lib/logics/view-logics.js +1 -19
  10. package/lib/logics/view-logics.js.map +1 -1
  11. package/lib/sample-custom/cleanup-configs.d.ts +2 -0
  12. package/lib/sample-custom/cleanup-configs.js +17 -0
  13. package/lib/sample-custom/cleanup-configs.js.map +1 -0
  14. package/lib/sample-custom/index.js +14 -1
  15. package/lib/sample-custom/index.js.map +1 -1
  16. package/lib/sample-custom/one-time-patches.d.ts +2 -0
  17. package/lib/sample-custom/one-time-patches.js +14 -0
  18. package/lib/sample-custom/one-time-patches.js.map +1 -0
  19. package/lib/tests/index-utils.test.js +345 -85
  20. package/lib/tests/index-utils.test.js.map +1 -1
  21. package/lib/tests/index.test.js +33 -5
  22. package/lib/tests/index.test.js.map +1 -1
  23. package/lib/tests/logics/patch-logics.test.js +50 -5
  24. package/lib/tests/logics/patch-logics.test.js.map +1 -1
  25. package/lib/tests/logics/view-logics.test.js +22 -4
  26. package/lib/tests/logics/view-logics.test.js.map +1 -1
  27. package/lib/tests/utils/cleanup.test.d.ts +1 -0
  28. package/lib/tests/utils/cleanup.test.js +243 -0
  29. package/lib/tests/utils/cleanup.test.js.map +1 -0
  30. package/lib/tests/utils/distribution.test.js +256 -1
  31. package/lib/tests/utils/distribution.test.js.map +1 -1
  32. package/lib/tests/utils/forms.test.js +10 -86
  33. package/lib/tests/utils/forms.test.js.map +1 -1
  34. package/lib/tests/utils/misc.test.js +96 -2
  35. package/lib/tests/utils/misc.test.js.map +1 -1
  36. package/lib/tests/utils/paths.test.js +20 -2
  37. package/lib/tests/utils/paths.test.js.map +1 -1
  38. package/lib/tests/utils/pubsub.test.js +10 -31
  39. package/lib/tests/utils/pubsub.test.js.map +1 -1
  40. package/lib/types.d.ts +51 -2
  41. package/lib/utils/cleanup.d.ts +5 -0
  42. package/lib/utils/cleanup.js +99 -0
  43. package/lib/utils/cleanup.js.map +1 -0
  44. package/lib/utils/distribution.d.ts +17 -3
  45. package/lib/utils/distribution.js +61 -23
  46. package/lib/utils/distribution.js.map +1 -1
  47. package/lib/utils/forms.d.ts +0 -2
  48. package/lib/utils/forms.js +1 -35
  49. package/lib/utils/forms.js.map +1 -1
  50. package/lib/utils/misc.d.ts +1 -0
  51. package/lib/utils/misc.js +32 -1
  52. package/lib/utils/misc.js.map +1 -1
  53. package/lib/utils/pubsub.d.ts +0 -2
  54. package/lib/utils/pubsub.js +1 -16
  55. package/lib/utils/pubsub.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/sample-custom/cleanup-configs.ts +15 -0
  58. package/src/sample-custom/index.ts +15 -11
  59. package/src/sample-custom/one-time-patches.ts +13 -0
package/lib/types.d.ts CHANGED
@@ -36,13 +36,14 @@ export interface ProjectConfig {
36
36
  onMessagePatchLogicsQueue?: FunctionConfig;
37
37
  onMessageForDistributionQueue?: FunctionConfig;
38
38
  onMessageInstructionsQueue?: FunctionConfig;
39
- onMessageAncestorIdsPatchQueue?: FunctionConfig;
39
+ onMessageGroupPatchQueue?: FunctionConfig;
40
40
  resetUsageStats?: FunctionConfig;
41
41
  cleanPubSubProcessedIds?: FunctionConfig;
42
42
  cleanMetricComputations?: FunctionConfig;
43
43
  cleanMetricExecutions?: FunctionConfig;
44
44
  cleanActionsAndForms?: FunctionConfig;
45
45
  cleanViewLogicExecutions?: FunctionConfig;
46
+ cleanupCollections?: FunctionConfig;
46
47
  createMetricComputation?: FunctionConfig;
47
48
  onDeleteFunctions?: FunctionConfig;
48
49
  onUserRegister?: FunctionConfig;
@@ -102,11 +103,32 @@ export interface InstructionsMessage {
102
103
  dstPath: string;
103
104
  instructions: Instructions;
104
105
  }
105
- export interface AncestorIdsPatchMessage {
106
+ export type GroupPatchType = "back-fill" | "patch-logics";
107
+ export interface GroupPatchMessage {
106
108
  collectionPath: string;
109
+ patchType: GroupPatchType;
110
+ backFillPatchName?: string;
111
+ appVersion?: string;
107
112
  lastPatchedId?: string;
108
113
  hydrationState?: HydrationState;
109
114
  }
115
+ export type OneTimePatchFn = (collectionPath: string, docs: FirebaseFirestore.QueryDocumentSnapshot[]) => Promise<void>;
116
+ export interface BackFillPatchConfig {
117
+ name: string;
118
+ patchFn: OneTimePatchFn;
119
+ }
120
+ export type GroupPatchRunStatus = "running" | "completed" | "error" | "reset";
121
+ export interface GroupPatchProgress {
122
+ patchType: GroupPatchType;
123
+ backFillPatchName?: string;
124
+ collectionPath: string;
125
+ status: GroupPatchRunStatus;
126
+ lastPatchedId?: string;
127
+ patchedCount?: number;
128
+ startedAt?: Timestamp;
129
+ updatedAt?: Timestamp;
130
+ error?: string;
131
+ }
110
132
  export interface HydrationState {
111
133
  pathSegments: string[];
112
134
  idx: number;
@@ -218,6 +240,33 @@ export interface QueryCondition {
218
240
  operator: firestore.WhereFilterOp;
219
241
  value: any;
220
242
  }
243
+ export type CleanupTimeUnit = "hours" | "days" | "months";
244
+ export interface CleanupConfig {
245
+ /** Exact collection path, or collection-group name when isCollectionGroup=true */
246
+ collectionPath: string;
247
+ /** If true, uses db.collectionGroup(collectionPath) */
248
+ isCollectionGroup?: boolean;
249
+ /** Timestamp/Date field used to compare against the cutoff */
250
+ timestampField: string;
251
+ /** Documents with timestampField < now-(value·unit) are deleted */
252
+ olderThan: {
253
+ value: number;
254
+ unit: CleanupTimeUnit;
255
+ };
256
+ /**
257
+ * Optional extra server-side filters, ANDed with the age threshold.
258
+ * Reuses the existing QueryCondition type: { fieldName, operator, value }.
259
+ * e.g. [{ fieldName: "hasTopic", operator: "==", value: false }]
260
+ */
261
+ conditions?: QueryCondition[];
262
+ /** If true (default), each matched doc is deleted with its whole subtree. */
263
+ recursive?: boolean;
264
+ /**
265
+ * Internal-only side-effect hook run per deleted batch (e.g. RTDB forms
266
+ * cleanup). Set only by built-in framework entries; project configs omit it.
267
+ */
268
+ onBatchDeleted?: (snapshot: FirebaseFirestore.QuerySnapshot) => Promise<void>;
269
+ }
221
270
  export type EntityCondition = Record<string, QueryCondition>;
222
271
  export type AnyObject = {
223
272
  [key: string]: any;
@@ -0,0 +1,5 @@
1
+ import type { ScheduledEvent } from "firebase-functions/v2/scheduler";
2
+ import { CleanupConfig, CleanupTimeUnit } from "../types";
3
+ export declare function computeCutoffDate(value: number, unit: CleanupTimeUnit): Date;
4
+ export declare function getInternalCleanupConfigs(): CleanupConfig[];
5
+ export declare function cleanupCollections(_event: ScheduledEvent): Promise<void>;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanupCollections = exports.getInternalCleanupConfigs = exports.computeCutoffDate = void 0;
4
+ const index_1 = require("../index");
5
+ const misc_1 = require("./misc");
6
+ function computeCutoffDate(value, unit) {
7
+ const now = new Date();
8
+ if (unit === "hours") {
9
+ return new Date(now.getTime() - value * 3600000);
10
+ }
11
+ if (unit === "days") {
12
+ return new Date(now.getTime() - value * 86400000);
13
+ }
14
+ // months -> calendar-aware
15
+ const d = new Date(now);
16
+ d.setMonth(d.getMonth() - value);
17
+ return d;
18
+ }
19
+ exports.computeCutoffDate = computeCutoffDate;
20
+ function getInternalCleanupConfigs() {
21
+ return [
22
+ {
23
+ collectionPath: "processedIds",
24
+ isCollectionGroup: true,
25
+ timestampField: "timestamp",
26
+ olderThan: { value: 7, unit: "days" },
27
+ recursive: false,
28
+ },
29
+ {
30
+ collectionPath: "executions",
31
+ isCollectionGroup: true,
32
+ timestampField: "execDate",
33
+ olderThan: { value: 7, unit: "days" },
34
+ recursive: false,
35
+ },
36
+ {
37
+ collectionPath: "computations",
38
+ isCollectionGroup: true,
39
+ timestampField: "createdAt",
40
+ olderThan: { value: 30, unit: "days" },
41
+ recursive: false,
42
+ },
43
+ {
44
+ collectionPath: "@emberflow/internal/viewLogicExecutions",
45
+ timestampField: "execDate",
46
+ olderThan: { value: 7, unit: "days" },
47
+ },
48
+ {
49
+ collectionPath: "@actions",
50
+ timestampField: "timeCreated",
51
+ olderThan: { value: 7, unit: "days" },
52
+ onBatchDeleted: async (snapshot) => {
53
+ var _a;
54
+ const updates = {};
55
+ for (const doc of snapshot.docs) {
56
+ const { formId, uid } = (_a = doc.data().eventContext) !== null && _a !== void 0 ? _a : {};
57
+ if (formId && uid) {
58
+ updates[`forms/${uid}/${formId}`] = null;
59
+ }
60
+ }
61
+ if (Object.keys(updates).length) {
62
+ await index_1.rtdb.ref().update(updates);
63
+ }
64
+ },
65
+ },
66
+ ];
67
+ }
68
+ exports.getInternalCleanupConfigs = getInternalCleanupConfigs;
69
+ async function cleanupCollections(_event) {
70
+ var _a;
71
+ console.info("Running cleanupCollections");
72
+ const all = [...getInternalCleanupConfigs(), ...index_1.cleanupConfigs];
73
+ for (const cfg of all) {
74
+ try {
75
+ const cutoff = computeCutoffDate(cfg.olderThan.value, cfg.olderThan.unit);
76
+ const base = cfg.isCollectionGroup ?
77
+ index_1.db.collectionGroup(cfg.collectionPath) :
78
+ index_1.db.collection(cfg.collectionPath);
79
+ let query = base.where(cfg.timestampField, "<", cutoff);
80
+ for (const condition of (_a = cfg.conditions) !== null && _a !== void 0 ? _a : []) {
81
+ query = query.where(condition.fieldName, condition.operator, condition.value);
82
+ }
83
+ let deleted = 0;
84
+ const del = cfg.recursive === false ? misc_1.deleteCollection : misc_1.deleteCollectionRecursive;
85
+ await del(query, async (snapshot) => {
86
+ deleted += snapshot.size;
87
+ if (cfg.onBatchDeleted) {
88
+ await cfg.onBatchDeleted(snapshot);
89
+ }
90
+ });
91
+ console.info(`cleanupCollections: deleted ${deleted} from ${cfg.collectionPath}`);
92
+ }
93
+ catch (e) {
94
+ console.error(`cleanupCollections failed for ${cfg.collectionPath}`, e);
95
+ }
96
+ }
97
+ }
98
+ exports.cleanupCollections = cleanupCollections;
99
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Instructions, LogicResultDoc } from "../types";
1
+ import { GroupPatchProgress, GroupPatchType, Instructions, LogicResultDoc } from "../types";
2
2
  import { CloudEvent } from "firebase-functions/lib/v2/core";
3
3
  import type { MessagePublishedData } from "firebase-functions/v2/pubsub";
4
4
  import { firestore } from "firebase-admin";
@@ -19,5 +19,19 @@ export declare function convertInstructionsToDbValues(txn: Transaction, instruct
19
19
  export declare function onMessageInstructionsQueue(event: CloudEvent<MessagePublishedData> | Map<string, Instructions>): Promise<void>;
20
20
  export declare const mergeInstructions: (existingInstructions: Instructions, instructions: Instructions) => void;
21
21
  export declare const instructionsReducer: (reducedInstructions: Map<string, Instructions>, event: CloudEvent<MessagePublishedData>) => Promise<void>;
22
- export declare const queueAncestorIdsPatch: (dstPathOrCollectionPath: string, lastPatchedId?: string) => Promise<void>;
23
- export declare function onMessageAncestorIdsPatchQueue(event: CloudEvent<MessagePublishedData>): Promise<void>;
22
+ export declare function getGroupPatchStatusPath(collectionPath: string, patchType: GroupPatchType, backFillPatchName?: string): string;
23
+ export interface QueueGroupPatchParams {
24
+ path: string;
25
+ patchType: GroupPatchType;
26
+ backFillPatchName?: string;
27
+ appVersion?: string;
28
+ lastPatchedId?: string;
29
+ }
30
+ export declare const queueGroupPatch: (params: QueueGroupPatchParams) => Promise<void>;
31
+ export declare function onMessageGroupPatchQueue(event: CloudEvent<MessagePublishedData>): Promise<void>;
32
+ export interface GetGroupPatchProgressParams {
33
+ collectionPath: string;
34
+ patchType: GroupPatchType;
35
+ backFillPatchName?: string;
36
+ }
37
+ export declare function getGroupPatchProgress(params: GetGroupPatchProgressParams): Promise<GroupPatchProgress | undefined>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.onMessageAncestorIdsPatchQueue = exports.queueAncestorIdsPatch = exports.instructionsReducer = exports.mergeInstructions = exports.onMessageInstructionsQueue = exports.convertInstructionsToDbValues = exports.queueInstructions = exports.onMessageForDistributionQueue = exports.queueForDistributionLater = void 0;
3
+ exports.getGroupPatchProgress = exports.onMessageGroupPatchQueue = exports.queueGroupPatch = exports.getGroupPatchStatusPath = exports.instructionsReducer = exports.mergeInstructions = exports.onMessageInstructionsQueue = exports.convertInstructionsToDbValues = exports.queueInstructions = exports.onMessageForDistributionQueue = exports.queueForDistributionLater = void 0;
4
4
  const paths_1 = require("./paths");
5
5
  const index_1 = require("../index");
6
6
  const index_utils_1 = require("../index-utils");
@@ -356,7 +356,15 @@ const instructionsReducer = async (reducedInstructions, event) => {
356
356
  }
357
357
  };
358
358
  exports.instructionsReducer = instructionsReducer;
359
- const queueAncestorIdsPatch = async (dstPathOrCollectionPath, lastPatchedId) => {
359
+ function getGroupPatchStatusPath(collectionPath, patchType, backFillPatchName) {
360
+ const patchIdentity = patchType === "back-fill" ?
361
+ `back-fill_${backFillPatchName}` :
362
+ "patch-logics";
363
+ return `@emberflow/internal/group-patches/${collectionPath.replace(/\//g, "_")}_${patchIdentity}`;
364
+ }
365
+ exports.getGroupPatchStatusPath = getGroupPatchStatusPath;
366
+ const queueGroupPatch = async (params) => {
367
+ const { path: dstPathOrCollectionPath, patchType, backFillPatchName, appVersion, lastPatchedId } = params;
360
368
  const segments = dstPathOrCollectionPath.split("/").filter((s) => s.length > 0);
361
369
  const collectionPath = segments.length % 2 === 0 ?
362
370
  "/" + segments.slice(0, -1).join("/") :
@@ -366,7 +374,7 @@ const queueAncestorIdsPatch = async (dstPathOrCollectionPath, lastPatchedId) =>
366
374
  }
367
375
  // If this is the start of a new patch (no lastPatchedId), check/lock it in Firestore
368
376
  if (!lastPatchedId) {
369
- const patchStatusPath = `@emberflow/internal/group-query-patches/${collectionPath.replace(/\//g, "_")}`;
377
+ const patchStatusPath = getGroupPatchStatusPath(collectionPath, patchType, backFillPatchName);
370
378
  const patchStatusRef = index_1.db.doc(patchStatusPath);
371
379
  try {
372
380
  const alreadyQueued = await index_1.db.runTransaction(async (txn) => {
@@ -381,6 +389,8 @@ const queueAncestorIdsPatch = async (dstPathOrCollectionPath, lastPatchedId) =>
381
389
  // Create or update record to "lock" it
382
390
  txn.set(patchStatusRef, {
383
391
  status: collectionPath.includes("{") ? "hydrating" : "queued",
392
+ patchType,
393
+ backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
384
394
  collectionPath,
385
395
  count: 0,
386
396
  lastPatchedId: null,
@@ -394,38 +404,41 @@ const queueAncestorIdsPatch = async (dstPathOrCollectionPath, lastPatchedId) =>
394
404
  }
395
405
  }
396
406
  catch (e) {
397
- console.error(`[AncestorIdsPatch] Error during transaction in queueAncestorIdsPatch for ${collectionPath}:`, e);
407
+ console.error(`[GroupPatch] Error during transaction in queueGroupPatch for ${collectionPath}:`, e);
398
408
  // We don't throw here to avoid failing the distribution, but we don't proceed to publish
399
409
  return;
400
410
  }
401
411
  }
402
412
  try {
403
- const message = { collectionPath, lastPatchedId };
404
- await index_1.ANCESTOR_IDS_PATCH_TOPIC.publishMessage({ json: message });
413
+ const message = { collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId };
414
+ await index_1.GROUP_PATCH_TOPIC.publishMessage({ json: message });
405
415
  }
406
416
  catch (error) {
407
- console.error(`[AncestorIdsPatch] Received error while publishing to ${index_1.ANCESTOR_IDS_PATCH_TOPIC_NAME}:`, error);
417
+ console.error(`[GroupPatch] Received error while publishing to ${index_1.GROUP_PATCH_TOPIC_NAME}:`, error);
408
418
  throw error;
409
419
  }
410
420
  };
411
- exports.queueAncestorIdsPatch = queueAncestorIdsPatch;
412
- async function onMessageAncestorIdsPatchQueue(event) {
413
- if (await pubsub_1.pubsubUtils.isProcessed(index_1.ANCESTOR_IDS_PATCH_TOPIC_NAME, event.id)) {
421
+ exports.queueGroupPatch = queueGroupPatch;
422
+ async function onMessageGroupPatchQueue(event) {
423
+ if (await pubsub_1.pubsubUtils.isProcessed(index_1.GROUP_PATCH_TOPIC_NAME, event.id)) {
414
424
  return;
415
425
  }
416
426
  try {
417
- const { collectionPath, lastPatchedId, hydrationState } = event.data.message.json;
427
+ const { collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId, hydrationState } = event.data.message.json;
418
428
  if (collectionPath.includes("{")) {
419
- console.log(`[AncestorIdsPatch] Hydration in Progress for ${collectionPath}...`);
429
+ console.log(`[GroupPatch] Hydration in Progress for ${collectionPath}...`);
420
430
  const { documentPaths, hydrationState: nextHydrationState } = await (0, paths_1.hydrateDocPath)(collectionPath, {}, hydrationState);
421
- const patchStatusPath = `@emberflow/internal/group-query-patches/${collectionPath.replace(/\//g, "_")}`;
431
+ const patchStatusPath = getGroupPatchStatusPath(collectionPath, patchType, backFillPatchName);
422
432
  if (nextHydrationState) {
423
433
  // Re-queue hydration
424
434
  const message = {
425
435
  collectionPath,
436
+ patchType,
437
+ backFillPatchName,
438
+ appVersion,
426
439
  hydrationState: nextHydrationState,
427
440
  };
428
- await index_1.ANCESTOR_IDS_PATCH_TOPIC.publishMessage({ json: message });
441
+ await index_1.GROUP_PATCH_TOPIC.publishMessage({ json: message });
429
442
  await index_1.db.doc(patchStatusPath).set({
430
443
  status: "hydrating",
431
444
  updatedAt: index_1.admin.firestore.Timestamp.now(),
@@ -437,25 +450,50 @@ async function onMessageAncestorIdsPatchQueue(event) {
437
450
  status: "completed",
438
451
  updatedAt: index_1.admin.firestore.Timestamp.now(),
439
452
  }, { merge: true });
440
- console.log(`[AncestorIdsPatch] Hydration complete for ${collectionPath}`);
453
+ console.log(`[GroupPatch] Hydration complete for ${collectionPath}`);
441
454
  }
442
- console.log(`[AncestorIdsPatch] Hydrated ${documentPaths.length} paths for ${collectionPath}. Remaining batches: ${nextHydrationState ? "yes" : "no"}`);
455
+ console.log(`[GroupPatch] Hydrated ${documentPaths.length} paths for ${collectionPath}. Remaining batches: ${nextHydrationState ? "yes" : "no"}`);
443
456
  for (const path of documentPaths) {
444
457
  // We trigger a patch for each hydrated path.
445
- // Note: These will go through the same queueAncestorIdsPatch logic,
458
+ // Note: These will go through the same queueGroupPatch logic,
446
459
  // so they will be tracked/locked individually.
447
- await (0, exports.queueAncestorIdsPatch)(path);
460
+ await (0, exports.queueGroupPatch)({ path, patchType, backFillPatchName, appVersion });
448
461
  }
449
462
  }
450
463
  else {
451
- await (0, index_utils_1.patchSiblingsWithAncestorIds)(collectionPath, lastPatchedId);
464
+ await (0, index_utils_1.patchGroupDocs)({ collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId });
452
465
  }
453
- await pubsub_1.pubsubUtils.trackProcessedIds(index_1.ANCESTOR_IDS_PATCH_TOPIC_NAME, event.id);
466
+ await pubsub_1.pubsubUtils.trackProcessedIds(index_1.GROUP_PATCH_TOPIC_NAME, event.id);
454
467
  }
455
468
  catch (e) {
456
- console.error("[AncestorIdsPatch] Error in onMessageAncestorIdsPatchQueue", e);
457
- throw new Error("Error in onMessageAncestorIdsPatchQueue");
469
+ console.error("[GroupPatch] Error in onMessageGroupPatchQueue", e);
470
+ throw new Error("Error in onMessageGroupPatchQueue");
471
+ }
472
+ }
473
+ exports.onMessageGroupPatchQueue = onMessageGroupPatchQueue;
474
+ async function getGroupPatchProgress(params) {
475
+ var _a, _b, _c, _d, _e;
476
+ const { collectionPath, patchType, backFillPatchName } = params;
477
+ const patchStatusPath = getGroupPatchStatusPath(collectionPath, patchType, backFillPatchName);
478
+ const patchStatusDoc = await index_1.db.doc(patchStatusPath).get();
479
+ if (!patchStatusDoc.exists) {
480
+ return undefined;
481
+ }
482
+ const data = patchStatusDoc.data();
483
+ if (!data) {
484
+ return undefined;
458
485
  }
486
+ return {
487
+ patchType,
488
+ backFillPatchName,
489
+ collectionPath,
490
+ status: data.status,
491
+ lastPatchedId: (_a = data.lastPatchedId) !== null && _a !== void 0 ? _a : undefined,
492
+ patchedCount: (_b = data.count) !== null && _b !== void 0 ? _b : undefined,
493
+ startedAt: (_c = data.createdAt) !== null && _c !== void 0 ? _c : undefined,
494
+ updatedAt: (_d = data.updatedAt) !== null && _d !== void 0 ? _d : undefined,
495
+ error: (_e = data.error) !== null && _e !== void 0 ? _e : undefined,
496
+ };
459
497
  }
460
- exports.onMessageAncestorIdsPatchQueue = onMessageAncestorIdsPatchQueue;
498
+ exports.getGroupPatchProgress = getGroupPatchProgress;
461
499
  //# sourceMappingURL=distribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/utils/distribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/utils/distribution.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import { FormData } from "emberflow-admin-client/lib/types";
2
2
  import { CloudEvent } from "firebase-functions/lib/v2/core";
3
3
  import type { MessagePublishedData } from "firebase-functions/v2/pubsub";
4
- import type { ScheduledEvent } from "firebase-functions/v2/scheduler";
5
4
  export declare function queueSubmitForm(formData: FormData): Promise<string>;
6
5
  export declare function onMessageSubmitFormQueue(event: CloudEvent<MessagePublishedData>): Promise<"Processed form data" | undefined>;
7
- export declare function cleanActionsAndForms(_event: ScheduledEvent): Promise<void>;
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanActionsAndForms = exports.onMessageSubmitFormQueue = exports.queueSubmitForm = void 0;
3
+ exports.onMessageSubmitFormQueue = exports.queueSubmitForm = void 0;
4
4
  const index_1 = require("../index");
5
5
  const lib_1 = require("emberflow-admin-client/lib");
6
6
  const pubsub_1 = require("./pubsub");
7
- const misc_1 = require("./misc");
8
7
  async function queueSubmitForm(formData) {
9
8
  try {
10
9
  return await index_1.SUBMIT_FORM_TOPIC.publishMessage({ json: formData });
@@ -39,37 +38,4 @@ async function onMessageSubmitFormQueue(event) {
39
38
  return "Processed form data";
40
39
  }
41
40
  exports.onMessageSubmitFormQueue = onMessageSubmitFormQueue;
42
- async function cleanActionsAndForms(_event) {
43
- console.info("Running cleanActionsAndForms");
44
- const query = index_1.db.collection("@actions")
45
- .where("timeCreated", "<", new Date(Date.now() - 1000 * 60 * 60 * 24 * 7));
46
- await (0, misc_1.deleteCollection)(query, async (snapshot) => {
47
- const forms = {};
48
- for (const doc of snapshot.docs) {
49
- const logicResultsQuery = index_1.db.collection(`${doc.ref.path}/logicResults`);
50
- await (0, misc_1.deleteCollection)(logicResultsQuery, async (logicResultSnapshot) => {
51
- for (const logicResultDoc of logicResultSnapshot.docs) {
52
- const documentsQuery = index_1.db.collection(`${logicResultDoc.ref.path}/documents`);
53
- await (0, misc_1.deleteCollection)(documentsQuery);
54
- }
55
- });
56
- const data = doc.data();
57
- if (data.eventContext) {
58
- const { formId, uid } = data.eventContext;
59
- forms[`forms/${uid}/${formId}`] = null;
60
- }
61
- }
62
- const rtdbBatchSize = 100;
63
- const formKeys = Object.keys(forms);
64
- for (let i = 0; i < formKeys.length; i += rtdbBatchSize) {
65
- const batch = {};
66
- formKeys.slice(i, i + rtdbBatchSize).forEach((key) => {
67
- batch[key] = forms[key];
68
- });
69
- await index_1.rtdb.ref().update(batch);
70
- }
71
- });
72
- console.info("Cleaned actions and forms");
73
- }
74
- exports.cleanActionsAndForms = cleanActionsAndForms;
75
41
  //# sourceMappingURL=forms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/utils/forms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/utils/forms.ts"],"names":[],"mappings":";;;AACA,oCAAmE;AAGnE,oDAAsD;AACtD,qCAAqC;AAE9B,KAAK,UAAU,eAAe,CAAC,QAAkB;IACtD,IAAI;QACF,OAAO,MAAM,yBAAiB,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;KACjE;IAAC,OAAO,KAAc,EAAE;QACvB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACpE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAXD,0CAWC;AAEM,KAAK,UAAU,wBAAwB,CAAC,KAAuC;IACpF,IAAI,MAAM,oBAAW,CAAC,WAAW,CAAC,8BAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;QACnE,OAAO;KACR;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAgB,CAAC;IAEnD,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,QAAQ,GAAG,MAAM,IAAA,gBAAU,EAAC,QAAQ,EAAE;QACpC,GAAG,EAAE,YAAY;QACjB,UAAU;QACV,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,oBAAW,CAAC,iBAAiB,CAAC,8BAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAnBD,4DAmBC"}
@@ -15,6 +15,7 @@ export declare class LimitedSet<T> {
15
15
  get queue(): T[];
16
16
  }
17
17
  export declare function deleteCollection(query: Query, callback?: (snapshot: firestore.QuerySnapshot) => void): Promise<void>;
18
+ export declare function deleteCollectionRecursive(query: Query, callback?: (snapshot: firestore.QuerySnapshot) => void): Promise<void>;
18
19
  export declare const reviveDateAndTimestamp: (json: {
19
20
  [key: string]: any;
20
21
  }) => {
package/lib/utils/misc.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logObjectSize = exports.logMemoryUsage = exports.trimStrings = exports.reviveDateAndTimestamp = exports.deleteCollection = exports.LimitedSet = exports.sleep = exports.computeHashCode = exports.deepEqual = void 0;
6
+ exports.logObjectSize = exports.logMemoryUsage = exports.trimStrings = exports.reviveDateAndTimestamp = exports.deleteCollectionRecursive = exports.deleteCollection = exports.LimitedSet = exports.sleep = exports.computeHashCode = exports.deepEqual = void 0;
7
7
  const firebase_admin_1 = require("firebase-admin");
8
8
  var Timestamp = firebase_admin_1.firestore.Timestamp;
9
9
  var GeoPoint = firebase_admin_1.firestore.GeoPoint;
@@ -145,6 +145,37 @@ async function deleteQueryBatch(query, resolve, callback) {
145
145
  deleteQueryBatch(query, resolve, callback);
146
146
  });
147
147
  }
148
+ async function deleteCollectionRecursive(query, callback) {
149
+ // Note: no keys-only .select() here so that field data (e.g. eventContext)
150
+ // stays available for callbacks that need it.
151
+ query = query.limit(100);
152
+ return new Promise((resolve, reject) => {
153
+ deleteQueryBatchRecursive(query, resolve, callback).catch(reject);
154
+ });
155
+ }
156
+ exports.deleteCollectionRecursive = deleteCollectionRecursive;
157
+ async function deleteQueryBatchRecursive(query, resolve, callback) {
158
+ const snapshot = await query.get();
159
+ if (snapshot.size === 0) {
160
+ resolve();
161
+ return;
162
+ }
163
+ const batch = batch_1.BatchUtil.getInstance();
164
+ for (const doc of snapshot.docs) {
165
+ const subcollections = await doc.ref.listCollections();
166
+ for (const subcollection of subcollections) {
167
+ await deleteCollectionRecursive(subcollection);
168
+ }
169
+ await batch.deleteDoc(doc.ref);
170
+ }
171
+ await batch.commit();
172
+ if (callback) {
173
+ await callback(snapshot);
174
+ }
175
+ process.nextTick(() => {
176
+ deleteQueryBatchRecursive(query, resolve, callback);
177
+ });
178
+ }
148
179
  const reviveDateAndTimestamp = (json) => {
149
180
  const stack = [json];
150
181
  while (stack.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAyC;AACzC,IAAO,SAAS,GAAG,0BAAS,CAAC,SAAS,CAAC;AACvC,IAAO,QAAQ,GAAG,0BAAS,CAAC,QAAQ,CAAC;AAErC,mCAAkC;AAClC,gEAAyC;AAEzC,SAAS,QAAQ,CAAC,IAAS;IACzB,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,OAAO,CAAC,IAAS;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,IAAS;IAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAS;IACzB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAS;IACrC,OAAO,IAAI,YAAY,SAAS,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAS;IACpC,OAAO,IAAI,YAAY,QAAQ,CAAC;AAClC,CAAC;AAED,SAAgB,SAAS,CAAC,CAAM,EAAE,CAAM;IACtC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;QACtD,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,IAAI,mBAAmB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;QACpD,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC;KACjE;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;QAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEhD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;SAC9C;QAED,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAlCD,8BAkCC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,kDAAkD;KAClG;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC;KAC5F;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,sFAAsF;AACvI,CAAC;AAVD,0CAUC;AAEM,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAFD,sBAEC;AAED,MAAa,UAAU;IAIrB,YAAY,SAAiB;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,IAAO;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,CAAC,sCAAsC;SAC/C;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,wCAAwC;YAChF,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC;aACrE;SACF;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B;IACrD,CAAC;IAED,GAAG,CAAC,IAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAhDD,gCAgDC;AAGM,KAAK,UAAU,gBAAgB,CAAC,KAAY,EAAE,QAAsD;IACzG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AALD,4CAKC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAY,EAAE,OAAmB,EAAE,QAAsD;IACvH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAEnC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;QACvB,OAAO,EAAE,CAAC;QACV,OAAO;KACR;IAED,MAAM,KAAK,GAAG,iBAAS,CAAC,WAAW,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC/B,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAChC;IAED,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;IAErB,IAAI,QAAQ,EAAE;QACZ,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAED,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;QACpB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,MAAM,sBAAsB,GAAG,CAAC,IAA4B,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACrB,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBACzD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEvB,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;oBAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,SAAS;iBACV;gBAED,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;oBACvB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3B,SAAS;iBACV;gBAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACnB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;wBACtB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;wBAC7D,SAAS;qBACV;oBAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnB;aACF;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhCW,QAAA,sBAAsB,0BAgCjC;AAEK,MAAM,WAAW,GAAG,CAAC,IAA4B,EAAE,EAAE;IAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACrB,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBACzD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEvB,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;oBAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClB,SAAS;iBACV;gBAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACnB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBACxB,SAAS;iBACV;gBAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnB;aACF;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA3BW,QAAA,WAAW,eA2BtB;AAEF,SAAgB,cAAc,CAAC,WAAmB;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7E,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;AACtF,CAAC;AAXD,wCAWC;AAED,SAAgB,aAAa,CAAC,GAAQ,EAAE,KAAK,GAAG,aAAa;IAC3D,MAAM,WAAW,GAAG,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,WAAW,WAAW,QAAQ,MAAM,CAAC,CAAC;AACjE,CAAC;AAJD,sCAIC"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}