emberflow 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -2
- package/firestore.indexes.json +35 -0
- package/lib/bin/merge-indexes.d.ts +13 -0
- package/lib/bin/merge-indexes.js +141 -0
- package/lib/bin/merge-indexes.js.map +1 -0
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/tests/bin/merge-indexes.test.d.ts +1 -0
- package/lib/tests/bin/merge-indexes.test.js +153 -0
- package/lib/tests/bin/merge-indexes.test.js.map +1 -0
- package/lib/tests/utils/firestore-indexes.test.d.ts +1 -0
- package/lib/tests/utils/firestore-indexes.test.js +125 -0
- package/lib/tests/utils/firestore-indexes.test.js.map +1 -0
- package/lib/utils/firestore-indexes.d.ts +36 -0
- package/lib/utils/firestore-indexes.js +80 -0
- package/lib/utils/firestore-indexes.js.map +1 -0
- package/package.json +6 -2
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.
|
|
367
|
-
>
|
|
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: "
|
|
165
|
-
exports.functionsConfig["cleanupCollections"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "
|
|
166
|
-
exports.functionsConfig["createMetricComputation"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "
|
|
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,125 @@
|
|
|
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("de-duplicates composite indexes by signature", () => {
|
|
102
|
+
const index = {
|
|
103
|
+
collectionGroup: "posts",
|
|
104
|
+
queryScope: "COLLECTION",
|
|
105
|
+
fields: [{ fieldPath: "createdAt", order: "ASCENDING" }],
|
|
106
|
+
};
|
|
107
|
+
const merged = (0, firestore_indexes_1.mergeFirestoreIndexes)({ indexes: [index] }, { indexes: [Object.assign({}, index)] });
|
|
108
|
+
expect(merged.indexes).toHaveLength(1);
|
|
109
|
+
});
|
|
110
|
+
it("does not mutate the input objects", () => {
|
|
111
|
+
var _a;
|
|
112
|
+
const target = {
|
|
113
|
+
fieldOverrides: [
|
|
114
|
+
{
|
|
115
|
+
collectionGroup: "computations",
|
|
116
|
+
fieldPath: "createdAt",
|
|
117
|
+
indexes: [{ queryScope: "COLLECTION", order: "ASCENDING" }],
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
};
|
|
121
|
+
(0, firestore_indexes_1.mergeFirestoreIndexes)(target, fragment);
|
|
122
|
+
expect((_a = target.fieldOverrides) === null || _a === void 0 ? void 0 : _a[0].indexes).toHaveLength(1);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# 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":";;AAAA,qEAKuC;AAEvC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CACJ,IAAA,2CAAuB,EAAC;YACtB,eAAe,EAAE,OAAO;YACxB,MAAM,EAAE;gBACN,EAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC;gBAC3C,EAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAC;aAC9C;SACF,CAAC,CACH,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,UAAU,GAAG,IAAA,2CAAuB,EAAC;YACzC,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,CAAC,EAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,2CAAuB,EAAC;YACpC,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,kBAAkB;YAC9B,MAAM,EAAE,CAAC,EAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,+CAA2B,EAAC,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;aACtF,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACvC,MAAM,CAAC,IAAA,+CAA2B,EAAC,EAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAC,CAAC,CAAC;aACrF,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,QAAQ,GAAqB;QACjC,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACd;gBACE,eAAe,EAAE,cAAc;gBAC/B,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE;oBACP,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAC;oBAC9C,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;oBAC/C,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAC;oBACpD,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAC;iBACtD;aACF;SACF;KACF,CAAC;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,EAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,EAAE,QAAQ,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAqB;YAC/B,cAAc,EAAE;gBACd;oBACE,eAAe,EAAE,OAAO;oBACxB,SAAS,EAAE,UAAU;oBACrB,OAAO,EAAE,CAAC,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;iBAChE;aACF;SACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,MAAM,MAAM,GAAqB;YAC/B,cAAc,EAAE;gBACd;oBACE,eAAe,EAAE,cAAc;oBAC/B,SAAS,EAAE,WAAW;oBACtB,OAAO,EAAE;wBACP,sEAAsE;wBACtE,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAC;wBAC9C,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;qBAChD;iBACF;aACF;SACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,+CAA+C;QAC/C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,4FAA4F;QAC5F,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YAC/C,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAC;YAC9C,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;YAC/C,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAC;YACpD,EAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAC;SACtD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GAAG;YACZ,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,YAAqB;YACjC,MAAM,EAAE,CAAC,EAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAoB,EAAC,CAAC;SAChE,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,yCAAqB,EAAC,EAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAC,EAAE,EAAC,OAAO,EAAE,mBAAK,KAAK,EAAE,EAAC,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;;QAC3C,MAAM,MAAM,GAAqB;YAC/B,cAAc,EAAE;gBACd;oBACE,eAAe,EAAE,cAAc;oBAC/B,SAAS,EAAE,WAAW;oBACtB,OAAO,EAAE,CAAC,EAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;iBAC1D;aACF;SACF,CAAC;QACF,IAAA,yCAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAA,MAAM,CAAC,cAAc,0CAAG,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
}
|
|
17
|
+
/** A single scope/order entry for a single-field override. */
|
|
18
|
+
export interface FirestoreFieldOverrideIndex {
|
|
19
|
+
queryScope: FirestoreIndexQueryScope;
|
|
20
|
+
order?: FirestoreIndexOrder;
|
|
21
|
+
arrayConfig?: FirestoreIndexArrayConfig;
|
|
22
|
+
}
|
|
23
|
+
/** A single-field index override (matches firestore.indexes.json "fieldOverrides" entries). */
|
|
24
|
+
export interface FirestoreFieldOverride {
|
|
25
|
+
collectionGroup: string;
|
|
26
|
+
fieldPath: string;
|
|
27
|
+
indexes: FirestoreFieldOverrideIndex[];
|
|
28
|
+
}
|
|
29
|
+
/** Firestore index configuration, shaped exactly like a firestore.indexes.json file. */
|
|
30
|
+
export interface FirestoreIndexes {
|
|
31
|
+
indexes?: FirestoreCompositeIndex[];
|
|
32
|
+
fieldOverrides?: FirestoreFieldOverride[];
|
|
33
|
+
}
|
|
34
|
+
export declare function compositeIndexSignature(index: FirestoreCompositeIndex): string;
|
|
35
|
+
export declare function fieldOverrideIndexSignature(index: FirestoreFieldOverrideIndex): string;
|
|
36
|
+
export declare function mergeFirestoreIndexes(target: FirestoreIndexes, fragment: FirestoreIndexes): Required<FirestoreIndexes>;
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
const copy = {
|
|
56
|
+
collectionGroup: override.collectionGroup,
|
|
57
|
+
fieldPath: override.fieldPath,
|
|
58
|
+
indexes: [...((_e = override.indexes) !== null && _e !== void 0 ? _e : [])],
|
|
59
|
+
};
|
|
60
|
+
overridesByKey.set(key, copy);
|
|
61
|
+
mergedOverrides.push(copy);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const seenScopes = new Set(existing.indexes.map(fieldOverrideIndexSignature));
|
|
65
|
+
for (const scopeRow of (_f = override.indexes) !== null && _f !== void 0 ? _f : []) {
|
|
66
|
+
const scopeSignature = fieldOverrideIndexSignature(scopeRow);
|
|
67
|
+
if (seenScopes.has(scopeSignature)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
seenScopes.add(scopeSignature);
|
|
71
|
+
existing.indexes.push(scopeRow);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
indexes: mergedIndexes,
|
|
76
|
+
fieldOverrides: mergedOverrides,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
exports.mergeFirestoreIndexes = mergeFirestoreIndexes;
|
|
80
|
+
//# 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.
|
|
3
|
+
"version": "2.0.1",
|
|
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"
|