@stoker-platform/cli 0.5.72 → 0.5.74

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/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoker-platform/cli",
3
- "version": "0.5.71",
3
+ "version": "0.5.74",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "./lib/src/main.js",
@@ -24,9 +24,9 @@
24
24
  "@google-cloud/secret-manager": "^6.1.1",
25
25
  "@google-cloud/storage": "^7.19.0",
26
26
  "@inquirer/prompts": "^8.4.2",
27
- "@stoker-platform/node-client": "0.5.51",
28
- "@stoker-platform/types": "0.5.32",
29
- "@stoker-platform/utils": "0.5.43",
27
+ "@stoker-platform/node-client": "0.5.52",
28
+ "@stoker-platform/types": "0.5.33",
29
+ "@stoker-platform/utils": "0.5.44",
30
30
  "algoliasearch": "^5.51.0",
31
31
  "commander": "^14.0.0",
32
32
  "cross-spawn": "^7.0.6",
@@ -26,5 +26,24 @@ export const generateFirestoreIndexes = async () => {
26
26
  indexes.indexes = [...indexes.indexes, ...customIndexes.indexes];
27
27
  indexes.fieldOverrides = [...indexes.fieldOverrides, ...customIndexes.fieldOverrides];
28
28
  }
29
+ for (const fieldOverride of indexes.fieldOverrides) {
30
+ const mainOverride = fieldOverride;
31
+ if (fieldOverride.indexes.length === 0)
32
+ continue;
33
+ const mainQueryScope = fieldOverride.indexes[0].queryScope;
34
+ const mainPath = `${fieldOverride.collectionGroup}:${fieldOverride.fieldPath}:${mainQueryScope}`;
35
+ for (const fieldOverride of indexes.fieldOverrides) {
36
+ if (fieldOverride.indexes.length === 0)
37
+ continue;
38
+ const queryScope = fieldOverride.indexes[0].queryScope;
39
+ const path = `${fieldOverride.collectionGroup}:${fieldOverride.fieldPath}:${queryScope}`;
40
+ if (fieldOverride.collectionGroup === mainOverride.collectionGroup &&
41
+ fieldOverride.fieldPath === mainOverride.fieldPath &&
42
+ mainPath !== path) {
43
+ mainOverride.indexes.push(...fieldOverride.indexes);
44
+ indexes.fieldOverrides.splice(indexes.fieldOverrides.indexOf(fieldOverride), 1);
45
+ }
46
+ }
47
+ }
29
48
  writeFileSync(resolve(__dirname, process.cwd(), "firebase-rules", "firestore.indexes.json"), JSON.stringify(indexes, null, 4));
30
49
  };
@@ -422,11 +422,13 @@ export const lintSchema = async (noLog = false) => {
422
422
  errors.push(`Collection ${collectionName} has a default sort field ${defaultSort.field} that does not exist`);
423
423
  }
424
424
  else {
425
- for (const role of readRoles) {
426
- if (!(preloadCache?.roles.includes(role) || serverReadOnly?.includes(role)) &&
427
- !(fieldSchema.name === recordTitleField || fieldSchema.sorting)) {
425
+ if (!preloadCache?.roles.every((role) => preloadCache?.roles.includes(role) || serverReadOnly?.includes(role))) {
426
+ if (!(fieldSchema.name === recordTitleField || fieldSchema.sorting)) {
428
427
  errors.push(`Collection ${collectionName} has a default sort field ${defaultSort.field} that must have sorting enabled.`);
429
428
  }
429
+ if (!(fieldSchema.required || fieldSchema.nullable)) {
430
+ errors.push(`Collection ${collectionName} has a default sort field ${defaultSort.field} that must be required or nullable.`);
431
+ }
430
432
  }
431
433
  }
432
434
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoker-platform/cli",
3
- "version": "0.5.72",
3
+ "version": "0.5.74",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "./lib/src/main.js",