emberflow 2.0.0 → 2.0.2

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/README.md CHANGED
@@ -363,8 +363,117 @@ Then pass `cleanupConfigs` to `initializeEmberFlow` (see step 2 in **Usage** abo
363
363
  deleted documents per collection is reported to the logs.
364
364
 
365
365
  > **Composite indexes**: Collection-group queries and any `conditions` combined with the
366
- > timestamp filter may require composite Firestore indexes in your project. If a rule fails,
367
- > check the function logs for an index-creation link.
366
+ > timestamp filter may require composite Firestore indexes in your project. Emberflow's own
367
+ > collection-group cleanup fields are covered by the shipped `firestore.indexes.json` fragment
368
+ > (see **Firestore Indexes** below); composite indexes for your **own** cleanup configs must be
369
+ > declared in your project's `firestore.indexes.json` and deployed with
370
+ > `firebase deploy --only firestore:indexes`. If a rule fails, check the function logs for an
371
+ > index-creation link.
372
+
373
+ ### Firestore Indexes (`firestore.indexes.json`)
374
+
375
+ Emberflow's internal collection-group cleanup queries
376
+ (`computations`/`createdAt`, `executions`/`execDate`, `processedIds`/`timestamp`) require
377
+ single-field indexes at `COLLECTION_GROUP` scope, which Firestore does **not** auto-create. To
378
+ avoid manual `COLLECTION_GROUP_ASC` exemptions, Emberflow ships those index definitions as a static
379
+ `firestore.indexes.json` fragment at the root of the package.
380
+
381
+ Emberflow only declares the indexes **its own internal queries require**. It does **not** manage
382
+ your application's indexes — you keep those in your own `firestore.indexes.json`. This gives a
383
+ single, unambiguous owner for every index: Emberflow owns the framework indexes, your app owns the
384
+ rest.
385
+
386
+ The shipped fragment contains single-field `fieldOverrides` that enable Emberflow's internal
387
+ collection-group queries while preserving the collection-scope single-field indexes other queries
388
+ still rely on.
389
+
390
+ #### Option A — Merge with the `emberflow-indexes` CLI (recommended)
391
+
392
+ Emberflow ships an `emberflow-indexes` binary that merges the shipped fragment into your
393
+ project's `firestore.indexes.json` for you, so you never have to hand-copy the overrides.
394
+ Run it via `npx` from the directory that holds your `firestore.indexes.json`:
395
+
396
+ ```bash
397
+ npx emberflow-indexes merge
398
+ ```
399
+
400
+ By default it reads `firestore.indexes.json` in the current directory (creating it from an empty
401
+ base if it doesn't exist), merges in Emberflow's required overrides, and writes the file back.
402
+ Useful flags:
403
+
404
+ - `-p, --path <file>` — path to your `firestore.indexes.json` (default: `firestore.indexes.json`).
405
+ - `-o, --out <file>` — where to write the merged result (default: same as `--path`).
406
+ - `-f, --fragment <file>` — path to Emberflow's fragment (default: the copy shipped in the package).
407
+ - `--dry-run` — print the merged result to stdout without writing to disk.
408
+
409
+ The merge is safe to run repeatedly: it is keyed by `(collectionGroup, fieldPath)`, so it never
410
+ creates a second override for the same field. If your file already has an override for one of
411
+ Emberflow's fields, the CLI **unions the scope/order rows** into your existing entry (rather than
412
+ clobbering it), and it leaves all of your own indexes untouched.
413
+
414
+ Wire it into a Firebase **`predeploy`** hook so your indexes are always up to date before every
415
+ deploy:
416
+
417
+ ```json
418
+ // firebase.json
419
+ {
420
+ "firestore": {
421
+ "indexes": "firestore.indexes.json",
422
+ "predeploy": [
423
+ "npx emberflow-indexes merge"
424
+ ]
425
+ }
426
+ }
427
+ ```
428
+
429
+ Then deploy as usual:
430
+
431
+ ```bash
432
+ firebase deploy --only firestore:indexes
433
+ ```
434
+
435
+ #### Option B — Merge manually
436
+
437
+ If you'd rather not run the CLI, merge Emberflow's fragment into your project's
438
+ `firestore.indexes.json` by hand. The fragment lives at
439
+ `node_modules/emberflow/firestore.indexes.json` and looks like:
440
+
441
+ ```json
442
+ {
443
+ "indexes": [],
444
+ "fieldOverrides": [
445
+ {
446
+ "collectionGroup": "computations",
447
+ "fieldPath": "createdAt",
448
+ "indexes": [
449
+ { "queryScope": "COLLECTION", "order": "ASCENDING" },
450
+ { "queryScope": "COLLECTION", "order": "DESCENDING" },
451
+ { "queryScope": "COLLECTION_GROUP", "order": "ASCENDING" },
452
+ { "queryScope": "COLLECTION_GROUP", "order": "DESCENDING" }
453
+ ]
454
+ }
455
+ // ...executions/execDate and processedIds/timestamp
456
+ ]
457
+ }
458
+ ```
459
+
460
+ Add its `indexes` and `fieldOverrides` entries alongside your own, then deploy:
461
+
462
+ ```bash
463
+ firebase deploy --only firestore:indexes
464
+ ```
465
+
466
+ #### Notes
467
+
468
+ - **Field overrides**: When you add one of Emberflow's `fieldOverrides` for a field, it **replaces**
469
+ the field's automatic single-field index config — that's why each override keeps the `COLLECTION`
470
+ scope rows in addition to `COLLECTION_GROUP`, so collection-scope queries keep working. When
471
+ merging manually, never create two overrides for the same `(collectionGroup, fieldPath)`; union
472
+ the scope rows into a single entry (the CLI does this for you).
473
+ - **Idempotent**: both the CLI merge and `firebase deploy --only firestore:indexes` are declarative
474
+ — unchanged entries are left as-is, so re-running/re-deploying is safe.
475
+ - **Async builds**: A deploy only *requests* an index; it then sits in **Building** in the Firestore
476
+ console until Firestore finishes, so it may not be usable immediately after the deploy.
368
477
 
369
478
  ## Reference
370
479
 
@@ -0,0 +1,35 @@
1
+ {
2
+ "indexes": [],
3
+ "fieldOverrides": [
4
+ {
5
+ "collectionGroup": "computations",
6
+ "fieldPath": "createdAt",
7
+ "indexes": [
8
+ { "queryScope": "COLLECTION", "order": "ASCENDING" },
9
+ { "queryScope": "COLLECTION", "order": "DESCENDING" },
10
+ { "queryScope": "COLLECTION_GROUP", "order": "ASCENDING" },
11
+ { "queryScope": "COLLECTION_GROUP", "order": "DESCENDING" }
12
+ ]
13
+ },
14
+ {
15
+ "collectionGroup": "executions",
16
+ "fieldPath": "execDate",
17
+ "indexes": [
18
+ { "queryScope": "COLLECTION", "order": "ASCENDING" },
19
+ { "queryScope": "COLLECTION", "order": "DESCENDING" },
20
+ { "queryScope": "COLLECTION_GROUP", "order": "ASCENDING" },
21
+ { "queryScope": "COLLECTION_GROUP", "order": "DESCENDING" }
22
+ ]
23
+ },
24
+ {
25
+ "collectionGroup": "processedIds",
26
+ "fieldPath": "timestamp",
27
+ "indexes": [
28
+ { "queryScope": "COLLECTION", "order": "ASCENDING" },
29
+ { "queryScope": "COLLECTION", "order": "DESCENDING" },
30
+ { "queryScope": "COLLECTION_GROUP", "order": "ASCENDING" },
31
+ { "queryScope": "COLLECTION_GROUP", "order": "DESCENDING" }
32
+ ]
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ export interface MergeCliOptions {
3
+ command: string;
4
+ targetPath: string;
5
+ outPath: string;
6
+ fragmentPath: string;
7
+ dryRun: boolean;
8
+ }
9
+ export declare function defaultFragmentPath(): string;
10
+ export declare function parseArgs(argv: string[]): MergeCliOptions;
11
+ export declare function runMerge(options: MergeCliOptions): string;
12
+ export declare function printUsage(): void;
13
+ export declare function main(argv: string[]): void;
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.main = exports.printUsage = exports.runMerge = exports.parseArgs = exports.defaultFragmentPath = void 0;
28
+ const fs = __importStar(require("fs"));
29
+ const path = __importStar(require("path"));
30
+ const firestore_indexes_1 = require("../utils/firestore-indexes");
31
+ const DEFAULT_TARGET = "firestore.indexes.json";
32
+ const EMPTY_INDEXES = { indexes: [], fieldOverrides: [] };
33
+ // Path to Emberflow's shipped firestore.indexes.json fragment. When the compiled
34
+ // CLI runs from lib/bin/merge-indexes.js, the fragment sits at the package root,
35
+ // two directories up.
36
+ function defaultFragmentPath() {
37
+ return path.resolve(__dirname, "..", "..", "firestore.indexes.json");
38
+ }
39
+ exports.defaultFragmentPath = defaultFragmentPath;
40
+ function parseArgs(argv) {
41
+ var _a, _b, _c, _d;
42
+ const args = [...argv];
43
+ const command = (_a = args.shift()) !== null && _a !== void 0 ? _a : "";
44
+ let targetPath = DEFAULT_TARGET;
45
+ let outPath = "";
46
+ let fragmentPath = "";
47
+ let dryRun = false;
48
+ while (args.length > 0) {
49
+ const arg = args.shift();
50
+ switch (arg) {
51
+ case "--path":
52
+ case "-p":
53
+ targetPath = (_b = args.shift()) !== null && _b !== void 0 ? _b : targetPath;
54
+ break;
55
+ case "--out":
56
+ case "-o":
57
+ outPath = (_c = args.shift()) !== null && _c !== void 0 ? _c : outPath;
58
+ break;
59
+ case "--fragment":
60
+ case "-f":
61
+ fragmentPath = (_d = args.shift()) !== null && _d !== void 0 ? _d : fragmentPath;
62
+ break;
63
+ case "--dry-run":
64
+ dryRun = true;
65
+ break;
66
+ default:
67
+ throw new Error(`Unknown argument: ${arg}`);
68
+ }
69
+ }
70
+ return {
71
+ command,
72
+ targetPath,
73
+ outPath: outPath || targetPath,
74
+ fragmentPath: fragmentPath || defaultFragmentPath(),
75
+ dryRun,
76
+ };
77
+ }
78
+ exports.parseArgs = parseArgs;
79
+ function readIndexesFile(filePath, fallback) {
80
+ if (!fs.existsSync(filePath)) {
81
+ if (fallback) {
82
+ return fallback;
83
+ }
84
+ throw new Error(`File not found: ${filePath}`);
85
+ }
86
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
87
+ }
88
+ // Read the target and fragment files, merge them and (unless dryRun) write the
89
+ // result back. Returns the serialized merged content.
90
+ function runMerge(options) {
91
+ const fragment = readIndexesFile(options.fragmentPath);
92
+ const target = readIndexesFile(options.targetPath, EMPTY_INDEXES);
93
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
94
+ const output = `${JSON.stringify(merged, null, 2)}\n`;
95
+ if (options.dryRun) {
96
+ console.log(output);
97
+ return output;
98
+ }
99
+ fs.writeFileSync(options.outPath, output, "utf8");
100
+ console.log(`Merged Emberflow indexes from ${options.fragmentPath} into ${options.outPath}.`);
101
+ return output;
102
+ }
103
+ exports.runMerge = runMerge;
104
+ function printUsage() {
105
+ console.log([
106
+ "Usage: emberflow-indexes merge [options]",
107
+ "",
108
+ "Merge Emberflow's required Firestore indexes into your firestore.indexes.json.",
109
+ "",
110
+ "Options:",
111
+ " -p, --path <file> Path to your firestore.indexes.json (default: firestore.indexes.json)",
112
+ " -o, --out <file> Where to write the merged result (default: same as --path)",
113
+ " -f, --fragment <file> Path to Emberflow's fragment (default: the shipped copy)",
114
+ " --dry-run Print the merged result without writing to disk",
115
+ " -h, --help Show this help",
116
+ ].join("\n"));
117
+ }
118
+ exports.printUsage = printUsage;
119
+ function main(argv) {
120
+ if (argv.length === 0 || argv.includes("--help") || argv.includes("-h")) {
121
+ printUsage();
122
+ return;
123
+ }
124
+ const options = parseArgs(argv);
125
+ if (options.command !== "merge") {
126
+ printUsage();
127
+ throw new Error(`Unknown command: ${options.command || "(none)"}`);
128
+ }
129
+ runMerge(options);
130
+ }
131
+ exports.main = main;
132
+ if (require.main === module) {
133
+ try {
134
+ main(process.argv.slice(2));
135
+ }
136
+ catch (err) {
137
+ console.error(err.message);
138
+ process.exit(1);
139
+ }
140
+ }
141
+ //# sourceMappingURL=merge-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-indexes.js","sourceRoot":"","sources":["../../src/bin/merge-indexes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAC7B,kEAAmF;AAEnF,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAChD,MAAM,aAAa,GAAqB,EAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,CAAC;AAU1E,iFAAiF;AACjF,iFAAiF;AACjF,sBAAsB;AACtB,SAAgB,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;AACvE,CAAC;AAFD,kDAEC;AAED,SAAgB,SAAS,CAAC,IAAc;;IACtC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,KAAK,EAAE,mCAAI,EAAE,CAAC;IACnC,IAAI,UAAU,GAAG,cAAc,CAAC;IAChC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAY,CAAC;QACnC,QAAQ,GAAG,EAAE;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,UAAU,GAAG,MAAA,IAAI,CAAC,KAAK,EAAE,mCAAI,UAAU,CAAC;gBACxC,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,IAAI;gBACP,OAAO,GAAG,MAAA,IAAI,CAAC,KAAK,EAAE,mCAAI,OAAO,CAAC;gBAClC,MAAM;YACR,KAAK,YAAY,CAAC;YAClB,KAAK,IAAI;gBACP,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,EAAE,mCAAI,YAAY,CAAC;gBAC5C,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;SAC7C;KACF;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,OAAO,EAAE,OAAO,IAAI,UAAU;QAC9B,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE;QACnD,MAAM;KACP,CAAC;AACJ,CAAC;AAtCD,8BAsCC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,QAA2B;IACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC;SACjB;QACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;KAChD;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAqB,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,sDAAsD;AACtD,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAEtD,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IAED,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC;AAChB,CAAC;AAdD,4BAcC;AAED,SAAgB,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC;QACV,0CAA0C;QAC1C,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,UAAU;QACV,gGAAgG;QAChG,qFAAqF;QACrF,mFAAmF;QACnF,0EAA0E;QAC1E,yCAAyC;KAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,CAAC;AAbD,gCAaC;AAED,SAAgB,IAAI,CAAC,IAAc;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACvE,UAAU,EAAE,CAAC;QACb,OAAO;KACR;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;QAC/B,UAAU,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;KACpE;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAbD,oBAaC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;CACF"}
package/lib/index.js CHANGED
@@ -161,9 +161,9 @@ function initializeEmberFlow(options) {
161
161
  },
162
162
  }));
163
163
  exports.functionsConfig["onMessageGroupPatchQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.GROUP_PATCH_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_j = exports.projectConfig.functionsConfig) === null || _j === void 0 ? void 0 : _j.onMessageGroupPatchQueue), distribution_1.onMessageGroupPatchQueue);
164
- exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_k = exports.projectConfig.functionsConfig) === null || _k === void 0 ? void 0 : _k.resetUsageStats), bill_protect_1.resetUsageStats);
165
- exports.functionsConfig["cleanupCollections"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_l = exports.projectConfig.functionsConfig) === null || _l === void 0 ? void 0 : _l.cleanupCollections), cleanup_1.cleanupCollections);
166
- exports.functionsConfig["createMetricComputation"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_m = exports.projectConfig.functionsConfig) === null || _m === void 0 ? void 0 : _m.createMetricComputation), index_utils_1.createMetricComputation);
164
+ exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_k = exports.projectConfig.functionsConfig) === null || _k === void 0 ? void 0 : _k.resetUsageStats), bill_protect_1.resetUsageStats);
165
+ exports.functionsConfig["cleanupCollections"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_l = exports.projectConfig.functionsConfig) === null || _l === void 0 ? void 0 : _l.cleanupCollections), cleanup_1.cleanupCollections);
166
+ exports.functionsConfig["createMetricComputation"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_m = exports.projectConfig.functionsConfig) === null || _m === void 0 ? void 0 : _m.createMetricComputation), index_utils_1.createMetricComputation);
167
167
  exports.functionsConfig["onDeleteFunctions"] = (0, firestore_1.onDocumentCreated)(Object.assign({ document: "@server/delete/functions/{deleteFuncId}" }, (_o = exports.projectConfig.functionsConfig) === null || _o === void 0 ? void 0 : _o.onDeleteFunctions), index_utils_1.onDeleteFunction);
168
168
  const onUserRegisterConfig = (_p = exports.projectConfig.functionsConfig) === null || _p === void 0 ? void 0 : _p.onUserRegister;
169
169
  const _q = onUserRegisterConfig || {}, { memory, timeoutSeconds, minInstances, maxInstances, secrets } = _q, restConfig = __rest(_q, ["memory", "timeoutSeconds", "minInstances", "maxInstances", "secrets"]);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fs = __importStar(require("fs"));
27
+ const os = __importStar(require("os"));
28
+ const path = __importStar(require("path"));
29
+ const merge_indexes_1 = require("../../bin/merge-indexes");
30
+ const fragment = {
31
+ indexes: [],
32
+ fieldOverrides: [
33
+ {
34
+ collectionGroup: "computations",
35
+ fieldPath: "createdAt",
36
+ indexes: [
37
+ { queryScope: "COLLECTION", order: "ASCENDING" },
38
+ { queryScope: "COLLECTION_GROUP", order: "ASCENDING" },
39
+ ],
40
+ },
41
+ ],
42
+ };
43
+ describe("defaultFragmentPath", () => {
44
+ it("resolves to the shipped firestore.indexes.json fragment", () => {
45
+ var _a;
46
+ const fragmentPath = (0, merge_indexes_1.defaultFragmentPath)();
47
+ expect(fs.existsSync(fragmentPath)).toBe(true);
48
+ const shipped = JSON.parse(fs.readFileSync(fragmentPath, "utf8"));
49
+ const groups = ((_a = shipped.fieldOverrides) !== null && _a !== void 0 ? _a : []).map((o) => o.collectionGroup);
50
+ expect(groups).toEqual(expect.arrayContaining(["computations", "executions", "processedIds"]));
51
+ });
52
+ });
53
+ describe("parseArgs", () => {
54
+ it("uses defaults and points out at the target path", () => {
55
+ const options = (0, merge_indexes_1.parseArgs)(["merge"]);
56
+ expect(options.command).toBe("merge");
57
+ expect(options.targetPath).toBe("firestore.indexes.json");
58
+ expect(options.outPath).toBe("firestore.indexes.json");
59
+ expect(options.fragmentPath).toBe((0, merge_indexes_1.defaultFragmentPath)());
60
+ expect(options.dryRun).toBe(false);
61
+ });
62
+ it("parses long and short flags", () => {
63
+ const options = (0, merge_indexes_1.parseArgs)([
64
+ "merge",
65
+ "--path", "app.json",
66
+ "-o", "out.json",
67
+ "--fragment", "frag.json",
68
+ "--dry-run",
69
+ ]);
70
+ expect(options.targetPath).toBe("app.json");
71
+ expect(options.outPath).toBe("out.json");
72
+ expect(options.fragmentPath).toBe("frag.json");
73
+ expect(options.dryRun).toBe(true);
74
+ });
75
+ it("throws on unknown arguments", () => {
76
+ expect(() => (0, merge_indexes_1.parseArgs)(["merge", "--nope"])).toThrow("Unknown argument: --nope");
77
+ });
78
+ });
79
+ describe("runMerge", () => {
80
+ let tmpDir;
81
+ let fragmentPath;
82
+ let logSpy;
83
+ beforeEach(() => {
84
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "emberflow-indexes-"));
85
+ fragmentPath = path.join(tmpDir, "fragment.json");
86
+ fs.writeFileSync(fragmentPath, JSON.stringify(fragment), "utf8");
87
+ logSpy = jest.spyOn(console, "log").mockImplementation(() => undefined);
88
+ });
89
+ afterEach(() => {
90
+ logSpy.mockRestore();
91
+ fs.rmSync(tmpDir, { recursive: true, force: true });
92
+ });
93
+ function optionsFor(overrides) {
94
+ return Object.assign({ command: "merge", targetPath: path.join(tmpDir, "firestore.indexes.json"), outPath: path.join(tmpDir, "firestore.indexes.json"), fragmentPath, dryRun: false }, overrides);
95
+ }
96
+ it("creates the target from an empty base when it does not exist", () => {
97
+ const targetPath = path.join(tmpDir, "firestore.indexes.json");
98
+ (0, merge_indexes_1.runMerge)(optionsFor({ targetPath, outPath: targetPath }));
99
+ const written = JSON.parse(fs.readFileSync(targetPath, "utf8"));
100
+ expect(written.fieldOverrides).toEqual(fragment.fieldOverrides);
101
+ // Trailing newline for a clean git diff.
102
+ expect(fs.readFileSync(targetPath, "utf8").endsWith("}\n")).toBe(true);
103
+ });
104
+ it("merges into an existing target without dropping its own indexes", () => {
105
+ var _a;
106
+ const targetPath = path.join(tmpDir, "firestore.indexes.json");
107
+ fs.writeFileSync(targetPath, JSON.stringify({
108
+ indexes: [],
109
+ fieldOverrides: [
110
+ {
111
+ collectionGroup: "posts",
112
+ fieldPath: "authorId",
113
+ indexes: [{ queryScope: "COLLECTION_GROUP", order: "ASCENDING" }],
114
+ },
115
+ ],
116
+ }), "utf8");
117
+ (0, merge_indexes_1.runMerge)(optionsFor({ targetPath, outPath: targetPath }));
118
+ const written = JSON.parse(fs.readFileSync(targetPath, "utf8"));
119
+ const groups = ((_a = written.fieldOverrides) !== null && _a !== void 0 ? _a : []).map((o) => o.collectionGroup);
120
+ expect(groups).toEqual(["posts", "computations"]);
121
+ });
122
+ it("does not write anything in dry-run mode", () => {
123
+ const targetPath = path.join(tmpDir, "firestore.indexes.json");
124
+ const output = (0, merge_indexes_1.runMerge)(optionsFor({ targetPath, outPath: targetPath, dryRun: true }));
125
+ expect(fs.existsSync(targetPath)).toBe(false);
126
+ expect(output).toContain("computations");
127
+ });
128
+ it("throws when the fragment file is missing", () => {
129
+ expect(() => (0, merge_indexes_1.runMerge)(optionsFor({ fragmentPath: path.join(tmpDir, "missing.json") })))
130
+ .toThrow("File not found");
131
+ });
132
+ });
133
+ describe("main", () => {
134
+ let logSpy;
135
+ beforeEach(() => {
136
+ logSpy = jest.spyOn(console, "log").mockImplementation(() => undefined);
137
+ });
138
+ afterEach(() => {
139
+ logSpy.mockRestore();
140
+ });
141
+ it("prints usage when called with no arguments", () => {
142
+ (0, merge_indexes_1.main)([]);
143
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Usage: emberflow-indexes merge"));
144
+ });
145
+ it("prints usage for --help", () => {
146
+ (0, merge_indexes_1.main)(["--help"]);
147
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining("Usage: emberflow-indexes merge"));
148
+ });
149
+ it("throws on an unknown command", () => {
150
+ expect(() => (0, merge_indexes_1.main)(["bogus"])).toThrow("Unknown command: bogus");
151
+ });
152
+ });
153
+ //# sourceMappingURL=merge-indexes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-indexes.test.js","sourceRoot":"","sources":["../../../src/tests/bin/merge-indexes.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const firestore_indexes_1 = require("../../utils/firestore-indexes");
4
+ describe("compositeIndexSignature", () => {
5
+ it("defaults queryScope to COLLECTION and encodes fields in order", () => {
6
+ expect((0, firestore_indexes_1.compositeIndexSignature)({
7
+ collectionGroup: "posts",
8
+ fields: [
9
+ { fieldPath: "authorId", order: "ASCENDING" },
10
+ { fieldPath: "createdAt", order: "DESCENDING" },
11
+ ],
12
+ })).toBe("posts|COLLECTION|authorId:ASCENDING:,createdAt:DESCENDING:");
13
+ });
14
+ it("distinguishes indexes that differ only by query scope", () => {
15
+ const collection = (0, firestore_indexes_1.compositeIndexSignature)({
16
+ collectionGroup: "posts",
17
+ queryScope: "COLLECTION",
18
+ fields: [{ fieldPath: "createdAt", order: "ASCENDING" }],
19
+ });
20
+ const group = (0, firestore_indexes_1.compositeIndexSignature)({
21
+ collectionGroup: "posts",
22
+ queryScope: "COLLECTION_GROUP",
23
+ fields: [{ fieldPath: "createdAt", order: "ASCENDING" }],
24
+ });
25
+ expect(collection).not.toBe(group);
26
+ });
27
+ });
28
+ describe("fieldOverrideIndexSignature", () => {
29
+ it("encodes scope, order and arrayConfig", () => {
30
+ expect((0, firestore_indexes_1.fieldOverrideIndexSignature)({ queryScope: "COLLECTION_GROUP", order: "ASCENDING" }))
31
+ .toBe("COLLECTION_GROUP|ASCENDING|");
32
+ expect((0, firestore_indexes_1.fieldOverrideIndexSignature)({ queryScope: "COLLECTION", arrayConfig: "CONTAINS" }))
33
+ .toBe("COLLECTION||CONTAINS");
34
+ });
35
+ });
36
+ describe("mergeFirestoreIndexes", () => {
37
+ const fragment = {
38
+ indexes: [],
39
+ fieldOverrides: [
40
+ {
41
+ collectionGroup: "computations",
42
+ fieldPath: "createdAt",
43
+ indexes: [
44
+ { queryScope: "COLLECTION", order: "ASCENDING" },
45
+ { queryScope: "COLLECTION", order: "DESCENDING" },
46
+ { queryScope: "COLLECTION_GROUP", order: "ASCENDING" },
47
+ { queryScope: "COLLECTION_GROUP", order: "DESCENDING" },
48
+ ],
49
+ },
50
+ ],
51
+ };
52
+ it("adds all fragment overrides when the target is empty", () => {
53
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)({ indexes: [], fieldOverrides: [] }, fragment);
54
+ expect(merged.indexes).toEqual([]);
55
+ expect(merged.fieldOverrides).toEqual(fragment.fieldOverrides);
56
+ });
57
+ it("treats missing indexes/fieldOverrides arrays as empty", () => {
58
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)({}, {});
59
+ expect(merged).toEqual({ indexes: [], fieldOverrides: [] });
60
+ });
61
+ it("preserves unrelated target overrides and appends the fragment's", () => {
62
+ const target = {
63
+ fieldOverrides: [
64
+ {
65
+ collectionGroup: "posts",
66
+ fieldPath: "authorId",
67
+ indexes: [{ queryScope: "COLLECTION_GROUP", order: "ASCENDING" }],
68
+ },
69
+ ],
70
+ };
71
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
72
+ expect(merged.fieldOverrides).toHaveLength(2);
73
+ expect(merged.fieldOverrides[0].collectionGroup).toBe("posts");
74
+ expect(merged.fieldOverrides[1].collectionGroup).toBe("computations");
75
+ });
76
+ it("unions scope rows for the same (collectionGroup, fieldPath) instead of duplicating", () => {
77
+ const target = {
78
+ fieldOverrides: [
79
+ {
80
+ collectionGroup: "computations",
81
+ fieldPath: "createdAt",
82
+ indexes: [
83
+ // Already has the COLLECTION rows; missing the COLLECTION_GROUP ones.
84
+ { queryScope: "COLLECTION", order: "ASCENDING" },
85
+ { queryScope: "COLLECTION", order: "DESCENDING" },
86
+ ],
87
+ },
88
+ ],
89
+ };
90
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
91
+ // Still a single override entry for the field.
92
+ expect(merged.fieldOverrides).toHaveLength(1);
93
+ // The COLLECTION_GROUP rows from the fragment are unioned in; no duplicate COLLECTION rows.
94
+ expect(merged.fieldOverrides[0].indexes).toEqual([
95
+ { queryScope: "COLLECTION", order: "ASCENDING" },
96
+ { queryScope: "COLLECTION", order: "DESCENDING" },
97
+ { queryScope: "COLLECTION_GROUP", order: "ASCENDING" },
98
+ { queryScope: "COLLECTION_GROUP", order: "DESCENDING" },
99
+ ]);
100
+ });
101
+ it("preserves extra keys (e.g. Firebase's \"ttl\": false) on target overrides", () => {
102
+ const target = {
103
+ fieldOverrides: [
104
+ // Firebase emits "ttl": false on every fieldOverride; it must survive the merge.
105
+ {
106
+ collectionGroup: "posts",
107
+ fieldPath: "authorId",
108
+ ttl: false,
109
+ indexes: [{ queryScope: "COLLECTION_GROUP", order: "ASCENDING" }],
110
+ },
111
+ ],
112
+ };
113
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
114
+ expect(merged.fieldOverrides[0]).toEqual({
115
+ collectionGroup: "posts",
116
+ fieldPath: "authorId",
117
+ ttl: false,
118
+ indexes: [{ queryScope: "COLLECTION_GROUP", order: "ASCENDING" }],
119
+ });
120
+ });
121
+ it("de-duplicates composite indexes by signature", () => {
122
+ const index = {
123
+ collectionGroup: "posts",
124
+ queryScope: "COLLECTION",
125
+ fields: [{ fieldPath: "createdAt", order: "ASCENDING" }],
126
+ };
127
+ const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)({ indexes: [index] }, { indexes: [Object.assign({}, index)] });
128
+ expect(merged.indexes).toHaveLength(1);
129
+ });
130
+ it("does not mutate the input objects", () => {
131
+ var _a;
132
+ const target = {
133
+ fieldOverrides: [
134
+ {
135
+ collectionGroup: "computations",
136
+ fieldPath: "createdAt",
137
+ indexes: [{ queryScope: "COLLECTION", order: "ASCENDING" }],
138
+ },
139
+ ],
140
+ };
141
+ (0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
142
+ expect((_a = target.fieldOverrides) === null || _a === void 0 ? void 0 : _a[0].indexes).toHaveLength(1);
143
+ });
144
+ });
145
+ //# sourceMappingURL=firestore-indexes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore-indexes.test.js","sourceRoot":"","sources":["../../../src/tests/utils/firestore-indexes.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export type FirestoreIndexOrder = "ASCENDING" | "DESCENDING";
2
+ export type FirestoreIndexArrayConfig = "CONTAINS";
3
+ export type FirestoreIndexQueryScope = "COLLECTION" | "COLLECTION_GROUP" | "COLLECTION_RECURSIVE";
4
+ /** A single field entry within a composite index (matches firestore.indexes.json). */
5
+ export interface FirestoreIndexField {
6
+ fieldPath: string;
7
+ order?: FirestoreIndexOrder;
8
+ arrayConfig?: FirestoreIndexArrayConfig;
9
+ }
10
+ /** A composite index definition (matches firestore.indexes.json "indexes" entries). */
11
+ export interface FirestoreCompositeIndex {
12
+ collectionGroup: string;
13
+ /** Defaults to "COLLECTION" when omitted, mirroring Firestore. */
14
+ queryScope?: FirestoreIndexQueryScope;
15
+ fields: FirestoreIndexField[];
16
+ [key: string]: unknown;
17
+ }
18
+ /** A single scope/order entry for a single-field override. */
19
+ export interface FirestoreFieldOverrideIndex {
20
+ queryScope: FirestoreIndexQueryScope;
21
+ order?: FirestoreIndexOrder;
22
+ arrayConfig?: FirestoreIndexArrayConfig;
23
+ }
24
+ /** A single-field index override (matches firestore.indexes.json "fieldOverrides" entries). */
25
+ export interface FirestoreFieldOverride {
26
+ collectionGroup: string;
27
+ fieldPath: string;
28
+ indexes: FirestoreFieldOverrideIndex[];
29
+ ttl?: boolean;
30
+ [key: string]: unknown;
31
+ }
32
+ /** Firestore index configuration, shaped exactly like a firestore.indexes.json file. */
33
+ export interface FirestoreIndexes {
34
+ indexes?: FirestoreCompositeIndex[];
35
+ fieldOverrides?: FirestoreFieldOverride[];
36
+ }
37
+ export declare function compositeIndexSignature(index: FirestoreCompositeIndex): string;
38
+ export declare function fieldOverrideIndexSignature(index: FirestoreFieldOverrideIndex): string;
39
+ export declare function mergeFirestoreIndexes(target: FirestoreIndexes, fragment: FirestoreIndexes): Required<FirestoreIndexes>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeFirestoreIndexes = exports.fieldOverrideIndexSignature = exports.compositeIndexSignature = void 0;
4
+ // Stable signature for a composite index, used to de-duplicate composite indexes
5
+ // when merging. Two composite indexes with the same collection group, query scope
6
+ // and (ordered) field list are considered identical.
7
+ function compositeIndexSignature(index) {
8
+ var _a, _b;
9
+ const scope = (_a = index.queryScope) !== null && _a !== void 0 ? _a : "COLLECTION";
10
+ const fields = ((_b = index.fields) !== null && _b !== void 0 ? _b : [])
11
+ .map((field) => { var _a, _b; return `${field.fieldPath}:${(_a = field.order) !== null && _a !== void 0 ? _a : ""}:${(_b = field.arrayConfig) !== null && _b !== void 0 ? _b : ""}`; })
12
+ .join(",");
13
+ return `${index.collectionGroup}|${scope}|${fields}`;
14
+ }
15
+ exports.compositeIndexSignature = compositeIndexSignature;
16
+ // Stable signature for a single scope/order row of a field override, used to union
17
+ // the scope rows of two overrides that target the same (collectionGroup, fieldPath).
18
+ function fieldOverrideIndexSignature(index) {
19
+ var _a, _b;
20
+ return `${index.queryScope}|${(_a = index.order) !== null && _a !== void 0 ? _a : ""}|${(_b = index.arrayConfig) !== null && _b !== void 0 ? _b : ""}`;
21
+ }
22
+ exports.fieldOverrideIndexSignature = fieldOverrideIndexSignature;
23
+ function fieldOverrideKey(override) {
24
+ return `${override.collectionGroup}|${override.fieldPath}`;
25
+ }
26
+ // Merge Emberflow's index fragment into a target firestore.indexes.json object.
27
+ //
28
+ // - Composite `indexes` are unioned and de-duplicated by compositeIndexSignature.
29
+ // - `fieldOverrides` are keyed by `(collectionGroup, fieldPath)`. A field override
30
+ // *replaces* Firestore's whole single-field index config for that field, so two
31
+ // overrides for the same field must never coexist. Instead, their scope/order rows
32
+ // are unioned into a single entry (de-duplicated by fieldOverrideIndexSignature),
33
+ // preserving both sides' scopes.
34
+ //
35
+ // The `target` entries are kept first and in order; fragment-only entries are appended.
36
+ // The inputs are never mutated.
37
+ function mergeFirestoreIndexes(target, fragment) {
38
+ var _a, _b, _c, _d, _e, _f;
39
+ const mergedIndexes = [];
40
+ const seenIndexSignatures = new Set();
41
+ for (const index of [...((_a = target.indexes) !== null && _a !== void 0 ? _a : []), ...((_b = fragment.indexes) !== null && _b !== void 0 ? _b : [])]) {
42
+ const signature = compositeIndexSignature(index);
43
+ if (seenIndexSignatures.has(signature)) {
44
+ continue;
45
+ }
46
+ seenIndexSignatures.add(signature);
47
+ mergedIndexes.push(index);
48
+ }
49
+ const mergedOverrides = [];
50
+ const overridesByKey = new Map();
51
+ for (const override of [...((_c = target.fieldOverrides) !== null && _c !== void 0 ? _c : []), ...((_d = fragment.fieldOverrides) !== null && _d !== void 0 ? _d : [])]) {
52
+ const key = fieldOverrideKey(override);
53
+ const existing = overridesByKey.get(key);
54
+ if (!existing) {
55
+ // Spread the whole override so unknown keys (e.g. Firebase's "ttl": false)
56
+ // are preserved; only the indexes array is copied to avoid shared mutation.
57
+ const copy = Object.assign(Object.assign({}, override), { indexes: [...((_e = override.indexes) !== null && _e !== void 0 ? _e : [])] });
58
+ overridesByKey.set(key, copy);
59
+ mergedOverrides.push(copy);
60
+ continue;
61
+ }
62
+ const seenScopes = new Set(existing.indexes.map(fieldOverrideIndexSignature));
63
+ for (const scopeRow of (_f = override.indexes) !== null && _f !== void 0 ? _f : []) {
64
+ const scopeSignature = fieldOverrideIndexSignature(scopeRow);
65
+ if (seenScopes.has(scopeSignature)) {
66
+ continue;
67
+ }
68
+ seenScopes.add(scopeSignature);
69
+ existing.indexes.push(scopeRow);
70
+ }
71
+ }
72
+ return {
73
+ indexes: mergedIndexes,
74
+ fieldOverrides: mergedOverrides,
75
+ };
76
+ }
77
+ exports.mergeFirestoreIndexes = mergeFirestoreIndexes;
78
+ //# sourceMappingURL=firestore-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore-indexes.js","sourceRoot":"","sources":["../../src/utils/firestore-indexes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "emberflow",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "A Firebase Cloud Functions library for handling document changes in a structured way",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.js",
7
+ "bin": {
8
+ "emberflow-indexes": "lib/bin/merge-indexes.js"
9
+ },
7
10
  "files": [
8
11
  "lib/",
9
- "src/sample-custom"
12
+ "src/sample-custom",
13
+ "firestore.indexes.json"
10
14
  ],
11
15
  "scripts": {
12
16
  "prepublishOnly": "tsc"