@simondotm/nx-firebase 1.1.0 → 2.0.0-beta.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 (126) hide show
  1. package/README.md +10 -10
  2. package/executors.json +0 -8
  3. package/generators.json +11 -0
  4. package/package.json +7 -4
  5. package/src/generators/application/application.d.ts +3 -3
  6. package/src/generators/application/application.js +119 -19
  7. package/src/generators/application/application.js.map +1 -1
  8. package/src/generators/application/files/readme.md__tmpl__ +12 -9
  9. package/src/generators/application/files_firebase/firebase.json__tmpl__ +6 -13
  10. package/src/generators/application/files_workspace/{firebase.__name__.json__tmpl__ → firebase.__projectName__.json__tmpl__} +6 -13
  11. package/src/generators/application/lib/create-files.js +10 -25
  12. package/src/generators/application/lib/create-files.js.map +1 -1
  13. package/src/generators/application/lib/index.d.ts +0 -3
  14. package/src/generators/application/lib/index.js +0 -3
  15. package/src/generators/application/lib/index.js.map +1 -1
  16. package/src/generators/application/schema.d.ts +3 -11
  17. package/src/generators/application/schema.json +0 -41
  18. package/src/generators/function/files/package.json__tmpl__ +19 -0
  19. package/src/generators/function/files/readme.md__tmpl__ +31 -0
  20. package/src/generators/function/function.d.ts +14 -0
  21. package/src/generators/function/function.js +77 -0
  22. package/src/generators/function/function.js.map +1 -0
  23. package/src/generators/function/lib/add-function.d.ts +3 -0
  24. package/src/generators/function/lib/add-function.js +25 -0
  25. package/src/generators/function/lib/add-function.js.map +1 -0
  26. package/src/generators/function/lib/create-files.d.ts +9 -0
  27. package/src/generators/function/lib/create-files.js +37 -0
  28. package/src/generators/function/lib/create-files.js.map +1 -0
  29. package/src/generators/{application → function}/lib/delete-files.d.ts +1 -1
  30. package/src/generators/{application → function}/lib/delete-files.js +1 -1
  31. package/src/generators/function/lib/delete-files.js.map +1 -0
  32. package/src/generators/function/lib/index.d.ts +3 -0
  33. package/src/generators/function/lib/index.js +7 -0
  34. package/src/generators/function/lib/index.js.map +1 -0
  35. package/src/generators/function/lib/update-project.d.ts +3 -0
  36. package/src/generators/function/lib/update-project.js +52 -0
  37. package/src/generators/function/lib/update-project.js.map +1 -0
  38. package/src/generators/function/schema.d.ts +51 -0
  39. package/src/generators/function/schema.json +57 -0
  40. package/src/generators/init/init.js +1 -5
  41. package/src/generators/init/init.js.map +1 -1
  42. package/src/generators/init/lib/add-dependencies.js +3 -4
  43. package/src/generators/init/lib/add-dependencies.js.map +1 -1
  44. package/src/generators/init/lib/add-git-ignore-entry.d.ts +1 -1
  45. package/src/generators/init/lib/add-git-ignore-entry.js +1 -0
  46. package/src/generators/init/lib/add-git-ignore-entry.js.map +1 -1
  47. package/src/generators/init/schema.d.ts +4 -4
  48. package/src/generators/init/schema.json +8 -7
  49. package/src/generators/sync/lib/firebase-changes.d.ts +3 -0
  50. package/src/generators/sync/lib/firebase-changes.js +102 -0
  51. package/src/generators/sync/lib/firebase-changes.js.map +1 -0
  52. package/src/generators/sync/lib/firebase-configs.d.ts +3 -0
  53. package/src/generators/sync/lib/firebase-configs.js +61 -0
  54. package/src/generators/sync/lib/firebase-configs.js.map +1 -0
  55. package/src/generators/sync/lib/firebase-projects.d.ts +20 -0
  56. package/src/generators/sync/lib/firebase-projects.js +75 -0
  57. package/src/generators/sync/lib/firebase-projects.js.map +1 -0
  58. package/src/generators/sync/lib/firebase-workspace.d.ts +3 -0
  59. package/src/generators/sync/lib/firebase-workspace.js +15 -0
  60. package/src/generators/sync/lib/firebase-workspace.js.map +1 -0
  61. package/src/generators/sync/lib/index.d.ts +7 -0
  62. package/src/generators/sync/lib/index.js +11 -0
  63. package/src/generators/sync/lib/index.js.map +1 -0
  64. package/src/generators/sync/lib/tags.d.ts +14 -0
  65. package/src/generators/sync/lib/tags.js +43 -0
  66. package/src/generators/sync/lib/tags.js.map +1 -0
  67. package/src/generators/sync/lib/types.d.ts +46 -0
  68. package/src/generators/sync/lib/types.js +5 -0
  69. package/src/generators/sync/lib/types.js.map +1 -0
  70. package/src/generators/sync/schema.d.ts +5 -0
  71. package/src/generators/sync/schema.json +19 -0
  72. package/src/generators/sync/sync.d.ts +8 -0
  73. package/src/generators/sync/sync.js +167 -0
  74. package/src/generators/sync/sync.js.map +1 -0
  75. package/src/utils/debug.d.ts +4 -0
  76. package/src/utils/debug.js +25 -0
  77. package/src/utils/debug.js.map +1 -0
  78. package/src/utils/firebase-config.d.ts +77 -0
  79. package/src/utils/firebase-config.js +52 -0
  80. package/src/utils/firebase-config.js.map +1 -0
  81. package/src/utils/index.d.ts +3 -0
  82. package/src/utils/index.js +3 -0
  83. package/src/utils/index.js.map +1 -1
  84. package/src/utils/project-name.d.ts +5 -0
  85. package/src/utils/project-name.js +38 -0
  86. package/src/utils/project-name.js.map +1 -0
  87. package/src/utils/update-tsconfig.d.ts +8 -0
  88. package/src/{generators/application/lib → utils}/update-tsconfig.js +5 -5
  89. package/src/utils/update-tsconfig.js.map +1 -0
  90. package/src/utils/versions.d.ts +1 -0
  91. package/src/utils/versions.js +5 -4
  92. package/src/utils/versions.js.map +1 -1
  93. package/src/executors/build/build.d.ts +0 -8
  94. package/src/executors/build/build.js +0 -82
  95. package/src/executors/build/build.js.map +0 -1
  96. package/src/executors/build/lib/copy-dependencies.d.ts +0 -3
  97. package/src/executors/build/lib/copy-dependencies.js +0 -53
  98. package/src/executors/build/lib/copy-dependencies.js.map +0 -1
  99. package/src/executors/build/lib/firebase-build.d.ts +0 -2
  100. package/src/executors/build/lib/firebase-build.js +0 -16
  101. package/src/executors/build/lib/firebase-build.js.map +0 -1
  102. package/src/executors/build/lib/get-dependencies.d.ts +0 -8
  103. package/src/executors/build/lib/get-dependencies.js +0 -87
  104. package/src/executors/build/lib/get-dependencies.js.map +0 -1
  105. package/src/executors/build/lib/index.d.ts +0 -1
  106. package/src/executors/build/lib/index.js +0 -5
  107. package/src/executors/build/lib/index.js.map +0 -1
  108. package/src/executors/build/lib/rewrite-package.d.ts +0 -8
  109. package/src/executors/build/lib/rewrite-package.js +0 -44
  110. package/src/executors/build/lib/rewrite-package.js.map +0 -1
  111. package/src/executors/build/schema.d.ts +0 -1
  112. package/src/executors/build/schema.json +0 -167
  113. package/src/generators/application/files/package.json__tmpl__ +0 -21
  114. package/src/generators/application/lib/add-project.d.ts +0 -39
  115. package/src/generators/application/lib/add-project.js +0 -115
  116. package/src/generators/application/lib/add-project.js.map +0 -1
  117. package/src/generators/application/lib/delete-files.js.map +0 -1
  118. package/src/generators/application/lib/normalize-options.d.ts +0 -5
  119. package/src/generators/application/lib/normalize-options.js +0 -44
  120. package/src/generators/application/lib/normalize-options.js.map +0 -1
  121. package/src/generators/application/lib/update-tsconfig.d.ts +0 -9
  122. package/src/generators/application/lib/update-tsconfig.js.map +0 -1
  123. package/src/utils/e2ePatch.d.ts +0 -2
  124. package/src/utils/e2ePatch.js +0 -135
  125. package/src/utils/e2ePatch.js.map +0 -1
  126. /package/src/generators/{application/files/src/index.ts__tmpl__ → function/files/src/main.ts__tmpl__} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-changes.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/firebase-changes.ts"],"names":[],"mappings":";;;AAIA,gDAAyD;AACzD,iCAAgD;AAGhD;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAA6B;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAuB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACtE,IAAA,iBAAS,EACP,yBAAyB,OAAO,CAAC,IAAI,qCAAqC,QAAQ,EAAE,CACrF,CAAA;IACD,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE;QAC7B,IAAA,iBAAS,EACP,sBAAsB,QAAQ,wBAAwB,OAAO,CAAC,IAAI,GAAG,CACtE,CAAA;QACD,OAAO,QAAQ,CAAA;KAChB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,kBAAkB,CAChC,IAAU,EACV,QAA0B,EAC1B,OAAwB;IAExB,yCAAyC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAA;IACnD,mCAAmC;IACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAA;IAC3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAA;IAEhE,wDAAwD;IACxD,SAAS,mBAAmB,CAC1B,OAA6B,EAC7B,iBAAoD;QAEpD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,cAAc,EAAE;YAClB,IAAA,iBAAS,EAAC,KAAK,cAAc,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAA;YACrE,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;SAC/C;IACH,CAAC;IACD,IAAA,iBAAS,EAAC,yCAAyC,CAAC,CAAA;IACpD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/C,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAC1C,CAAA;IACD,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACpD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC/C,CAAA;IAED,iCAAiC;IACjC,2CAA2C;IAC3C,IAAA,iBAAS,EAAC,2CAA2C,CAAC,CAAA;IACtD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAClC,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,EAAE;;QAC7C,oDAAoD;QACpD,MAAA,kBAAkB,CAAC,oBAAoB,0CAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,IACE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC3C,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAC1B;gBACA,IAAA,iBAAS,EACP,cAAc,GAAG,yDAAyD,CAC3E,CAAA;gBACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;aAChC;QACH,CAAC,CAAC,CAAA;QAEF,uEAAuE;QACvE,oFAAoF;QACpF,4FAA4F;QAC5F,oDAAoD;QAEpD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CACvD,sBAAsB,CACvB,CAAA;QAED,IAAA,iBAAS,EACP,qBAAqB,kBAAkB,qDAAqD,CAC7F,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC9D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,kBAAkB,GAAG,CAAC,CAAA;SACzE;QAED,sEAAsE;QACtE,uCAAuC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YACpC,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;SACtC;QAED,2BAA2B;QAC3B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,EAAE;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC9B,IACE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAChD,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC/B;gBACA,IAAA,iBAAS,EACP,cAAc,QAAQ,iBAAiB,kBAAkB,qDAAqD,CAC/G,CAAA;gBACD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;aACrC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED,iDAAiD;IACjD,2BAA2B;IAC3B,oFAAoF;IACpF,iEAAiE;IAEjE,yBAAyB;IACzB,IAAA,iBAAS,EAAC,uCAAuC,CAAC,CAAA;IAClD,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CACvC,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,EAAE;QAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAuB,EAC1C,uBAAuB,EACvB,cAAc,CACf,CAAA;QACD,IACE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC3C,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC1B;YACA,IAAA,iBAAS,EACP,cAAc,oBAAoB,kBAAkB,QAAQ,6CAA6C,CAC1G,CAAA;YACD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;SAChC;IACH,CAAC,CACF,CAAA;IAED,IAAA,iBAAS,EAAC,iBAAiB,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAClD,IAAA,iBAAS,EAAC,sBAAsB,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAC5D,IAAA,iBAAS,EAAC,iBAAiB,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAClD,IAAA,iBAAS,EAAC,sBAAsB,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAE5D,OAAO;QACL,WAAW;QACX,gBAAgB;QAChB,WAAW;QACX,gBAAgB;KACjB,CAAA;AACH,CAAC;AA5HD,gDA4HC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { FirebaseConfigs, FirebaseProjects } from './types';
3
+ export declare function getFirebaseConfigs(tree: Tree, projects: FirebaseProjects): FirebaseConfigs;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFirebaseConfigs = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const utils_1 = require("../../../utils");
6
+ const types_1 = require("./types");
7
+ const debug_1 = require("../../../utils/debug");
8
+ const FIREBASE_CONFIG_FILE_MATCHER = /(firebase)(\S*)(.json)/;
9
+ function getFirebaseConfigs(tree, projects) {
10
+ const firebaseConfigs = new Map();
11
+ const firebaseAppConfigs = new Map();
12
+ const firebaseConfigProjects = new Map();
13
+ (0, debug_1.debugInfo)(`- firebaseAppProjects=${(0, debug_1.mapKeys)(projects.firebaseAppProjects)}`);
14
+ (0, debug_1.debugInfo)(`- firebaseFunctionProjects=${(0, debug_1.mapKeys)(projects.firebaseFunctionProjects)}`);
15
+ // collect all firebase[.*].json config files in workspace
16
+ const rootFiles = tree.children('');
17
+ rootFiles.map((child) => {
18
+ if (tree.isFile(child)) {
19
+ if (child.match(FIREBASE_CONFIG_FILE_MATCHER)) {
20
+ firebaseConfigs.set(child, (0, devkit_1.readJson)(tree, child));
21
+ // set an firebaseConfigProjects as null for now, later we will add the project
22
+ firebaseConfigProjects.set(child, types_1.CONFIG_NO_APP);
23
+ }
24
+ }
25
+ });
26
+ (0, debug_1.debugInfo)(`- firebaseConfigs=${(0, debug_1.mapKeys)(firebaseConfigs)}`);
27
+ // map firebase configs to their apps
28
+ // we do this by reading the --config setting directly from each firebase app's firebase target
29
+ // this is more robust & flexible than using filename assumptions for configs
30
+ // it also means users can freely rename their firebase configs and the plugin will work
31
+ projects.firebaseAppProjects.forEach((project, name) => {
32
+ const firebaseTarget = project.targets.firebase;
33
+ if (!firebaseTarget) {
34
+ throw new Error(`Firebase app project ${name} does not have a 'firebase' target. Sync will no longer work.`);
35
+ }
36
+ const firebaseConfigName = (0, utils_1.getFirebaseConfigFromProject)(tree, project);
37
+ firebaseAppConfigs.set(name, firebaseConfigName);
38
+ firebaseConfigProjects.set(firebaseConfigName, name);
39
+ // bit opinionated, but we need to sanity check that
40
+ // production configurations on this target use the same config file.
41
+ // since we cant rename configs safely with this scenario
42
+ // different build configs should only differ in --project
43
+ const configurations = firebaseTarget.configurations;
44
+ for (const configuration in configurations) {
45
+ const additionalConfigName = (0, utils_1.getFirebaseConfigFromCommand)(tree, project, configurations[configuration].command);
46
+ if (additionalConfigName !== firebaseConfigName) {
47
+ throw new Error(`Firebase app project ${name} target firebase.configurations.${configuration} has a different --config setting which is unsupported by this plugin.`);
48
+ }
49
+ }
50
+ });
51
+ (0, debug_1.debugInfo)(`- firebaseAppConfigs=${(0, debug_1.mapEntries)(firebaseAppConfigs)}`);
52
+ (0, debug_1.debugInfo)(`- firebaseConfigProjects=${(0, debug_1.mapEntries)(firebaseConfigProjects)},
53
+ )}`);
54
+ return {
55
+ firebaseConfigs,
56
+ firebaseAppConfigs,
57
+ firebaseConfigProjects,
58
+ };
59
+ }
60
+ exports.getFirebaseConfigs = getFirebaseConfigs;
61
+ //# sourceMappingURL=firebase-configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-configs.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/firebase-configs.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAE3C,0CAIuB;AACvB,mCAA0E;AAC1E,gDAAqE;AAErE,MAAM,4BAA4B,GAAG,wBAAwB,CAAA;AAE7D,SAAgB,kBAAkB,CAChC,IAAU,EACV,QAA0B;IAE1B,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAA;IACzD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACpD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAExD,IAAA,iBAAS,EAAC,yBAAyB,IAAA,eAAO,EAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAC3E,IAAA,iBAAS,EACP,8BAA8B,IAAA,eAAO,EAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAC3E,CAAA;IAED,0DAA0D;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACnC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE;gBAC7C,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,IAAA,iBAAQ,EAAiB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;gBACjE,+EAA+E;gBAC/E,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAa,CAAC,CAAA;aACjD;SACF;IACH,CAAC,CAAC,CAAA;IACF,IAAA,iBAAS,EAAC,qBAAqB,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAE1D,qCAAqC;IACrC,+FAA+F;IAC/F,6EAA6E;IAC7E,wFAAwF;IACxF,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACrD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAA;QAC/C,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,+DAA+D,CAC5F,CAAA;SACF;QACD,MAAM,kBAAkB,GAAG,IAAA,oCAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtE,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;QAChD,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAEpD,oDAAoD;QACpD,qEAAqE;QACrE,yDAAyD;QACzD,0DAA0D;QAC1D,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAA;QACpD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC1C,MAAM,oBAAoB,GAAG,IAAA,oCAA4B,EACvD,IAAI,EACJ,OAAO,EACP,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,CACtC,CAAA;YACD,IAAI,oBAAoB,KAAK,kBAAkB,EAAE;gBAC/C,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,mCAAmC,aAAa,wEAAwE,CACrJ,CAAA;aACF;SACF;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC,wBAAwB,IAAA,kBAAU,EAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;IACnE,IAAA,iBAAS,EACP,4BAA4B,IAAA,kBAAU,EAAC,sBAAsB,CAAC;OAC3D,CACJ,CAAA;IAED,OAAO;QACL,eAAe;QACf,kBAAkB;QAClB,sBAAsB;KACvB,CAAA;AACH,CAAC;AAvED,gDAuEC"}
@@ -0,0 +1,20 @@
1
+ import { ProjectConfiguration, TargetConfiguration, Tree } from '@nx/devkit';
2
+ import { SyncGeneratorSchema } from '../schema';
3
+ import { FirebaseProjects } from './types';
4
+ export declare function isFirebaseApp(project: ProjectConfiguration): boolean;
5
+ export declare function isFirebaseFunction(project: ProjectConfiguration): boolean;
6
+ /**
7
+ * Scan the workspace, identifying firebase projects managed by this plugin by their tags:
8
+ * - firebase:app
9
+ * - firebase:function
10
+ * @param tree - host workspace
11
+ * @returns FirebaseProjects object
12
+ */
13
+ export declare function getFirebaseProjects(tree: Tree): FirebaseProjects;
14
+ /**
15
+ * Rewrite the firebase deploy command for the given function deploy target
16
+ * to either add or update the --project cli parameter
17
+ * @param target - deploy target in the function
18
+ * @param options -
19
+ */
20
+ export declare function updateFirebaseAppDeployProject(target: TargetConfiguration, options: SyncGeneratorSchema): boolean;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateFirebaseAppDeployProject = exports.getFirebaseProjects = exports.isFirebaseFunction = exports.isFirebaseApp = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const debug_1 = require("../../../utils/debug");
6
+ const FIREBASE_PROJECT_MATCHER = /(--project[ =])([^\s]+)/;
7
+ const FIREBASE_COMMAND_MATCHER = /(firebase)/;
8
+ function isFirebaseApp(project) {
9
+ var _a;
10
+ return (_a = project.tags) === null || _a === void 0 ? void 0 : _a.includes('firebase:app');
11
+ }
12
+ exports.isFirebaseApp = isFirebaseApp;
13
+ function isFirebaseFunction(project) {
14
+ var _a;
15
+ return (_a = project.tags) === null || _a === void 0 ? void 0 : _a.includes('firebase:function');
16
+ }
17
+ exports.isFirebaseFunction = isFirebaseFunction;
18
+ /**
19
+ * Scan the workspace, identifying firebase projects managed by this plugin by their tags:
20
+ * - firebase:app
21
+ * - firebase:function
22
+ * @param tree - host workspace
23
+ * @returns FirebaseProjects object
24
+ */
25
+ function getFirebaseProjects(tree) {
26
+ const projects = (0, devkit_1.getProjects)(tree);
27
+ const firebaseAppProjects = new Map();
28
+ const firebaseFunctionProjects = new Map();
29
+ (0, debug_1.debugInfo)('- building list of firebase apps & functions');
30
+ projects.forEach((project, projectName) => {
31
+ if (isFirebaseApp(project)) {
32
+ firebaseAppProjects.set(projectName, project);
33
+ }
34
+ if (isFirebaseFunction(project)) {
35
+ firebaseFunctionProjects.set(projectName, project);
36
+ }
37
+ });
38
+ return {
39
+ firebaseAppProjects,
40
+ firebaseFunctionProjects,
41
+ };
42
+ }
43
+ exports.getFirebaseProjects = getFirebaseProjects;
44
+ /**
45
+ * Rewrite the firebase deploy command for the given function deploy target
46
+ * to either add or update the --project cli parameter
47
+ * @param target - deploy target in the function
48
+ * @param options -
49
+ */
50
+ function updateFirebaseAppDeployProject(target, options) {
51
+ const command = target.options.command;
52
+ if (command.includes('firebase')) {
53
+ (0, debug_1.debugInfo)('- found firebase target command');
54
+ (0, debug_1.debugInfo)(`- command=${command}`);
55
+ if (command.includes('--project')) {
56
+ (0, debug_1.debugInfo)('- found --project in firebase target command');
57
+ // already set, so update
58
+ target.options.command = command.replace(FIREBASE_PROJECT_MATCHER, '$1' + options.project);
59
+ (0, debug_1.debugInfo)(`- new command: ${target.options.command}`);
60
+ devkit_1.logger.info(`CHANGE updating firebase target --project for '${options.app}' to '--project=${options.project}'`);
61
+ return true;
62
+ }
63
+ else {
64
+ (0, debug_1.debugInfo)('- did not find --project in deploy command');
65
+ // no set, so add
66
+ target.options.command = command.replace(FIREBASE_COMMAND_MATCHER, '$1' + ' ' + `--project=${options.project}`);
67
+ (0, debug_1.debugInfo)(`- new command: ${target.options.command}`);
68
+ devkit_1.logger.info(`CHANGE setting firebase target --project for '${options.app}' to '--project=${options.project}'`);
69
+ return true;
70
+ }
71
+ }
72
+ return false;
73
+ }
74
+ exports.updateFirebaseAppDeployProject = updateFirebaseAppDeployProject;
75
+ //# sourceMappingURL=firebase-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-projects.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/firebase-projects.ts"],"names":[],"mappings":";;;AAAA,uCAMmB;AAGnB,gDAAgD;AAGhD,MAAM,wBAAwB,GAAG,yBAAyB,CAAA;AAC1D,MAAM,wBAAwB,GAAG,YAAY,CAAA;AAE7C,SAAgB,aAAa,CAAC,OAA6B;;IACzD,OAAO,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;AAC/C,CAAC;AAFD,sCAEC;AAED,SAAgB,kBAAkB,CAAC,OAA6B;;IAC9D,OAAO,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AACpD,CAAC;AAFD,gDAEC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,IAAU;IAC5C,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAA;IAClC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAgC,CAAA;IACnE,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAgC,CAAA;IAExE,IAAA,iBAAS,EAAC,8CAA8C,CAAC,CAAA;IACzD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE;QACxC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YAC1B,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;SAC9C;QACD,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;YAC/B,wBAAwB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;SACnD;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,mBAAmB;QACnB,wBAAwB;KACzB,CAAA;AACH,CAAC;AAnBD,kDAmBC;AAED;;;;;GAKG;AACH,SAAgB,8BAA8B,CAC5C,MAA2B,EAC3B,OAA4B;IAE5B,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,OAAO,CAAA;IAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAChC,IAAA,iBAAS,EAAC,iCAAiC,CAAC,CAAA;QAC5C,IAAA,iBAAS,EAAC,aAAa,OAAO,EAAE,CAAC,CAAA;QACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACjC,IAAA,iBAAS,EAAC,8CAA8C,CAAC,CAAA;YACzD,yBAAyB;YACzB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CACtC,wBAAwB,EACxB,IAAI,GAAG,OAAO,CAAC,OAAO,CACvB,CAAA;YACD,IAAA,iBAAS,EAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAErD,eAAM,CAAC,IAAI,CACT,kDAAkD,OAAO,CAAC,GAAG,mBAAmB,OAAO,CAAC,OAAO,GAAG,CACnG,CAAA;YACD,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,IAAA,iBAAS,EAAC,4CAA4C,CAAC,CAAA;YAEvD,iBAAiB;YACjB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CACtC,wBAAwB,EACxB,IAAI,GAAG,GAAG,GAAG,aAAa,OAAO,CAAC,OAAO,EAAE,CAC5C,CAAA;YACD,IAAA,iBAAS,EAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YACrD,eAAM,CAAC,IAAI,CACT,iDAAiD,OAAO,CAAC,GAAG,mBAAmB,OAAO,CAAC,OAAO,GAAG,CAClG,CAAA;YACD,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AArCD,wEAqCC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { FirebaseWorkspace } from './types';
3
+ export declare function getFirebaseWorkspace(tree: Tree): FirebaseWorkspace;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFirebaseWorkspace = void 0;
4
+ const firebase_changes_1 = require("./firebase-changes");
5
+ const firebase_projects_1 = require("./firebase-projects");
6
+ const firebase_configs_1 = require("./firebase-configs");
7
+ function getFirebaseWorkspace(tree) {
8
+ // build list of firebase apps and functions in the workspace
9
+ const projects = (0, firebase_projects_1.getFirebaseProjects)(tree);
10
+ const configs = (0, firebase_configs_1.getFirebaseConfigs)(tree, projects);
11
+ const changes = (0, firebase_changes_1.getFirebaseChanges)(tree, projects, configs);
12
+ return Object.assign(Object.assign(Object.assign({}, projects), changes), configs);
13
+ }
14
+ exports.getFirebaseWorkspace = getFirebaseWorkspace;
15
+ //# sourceMappingURL=firebase-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-workspace.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/firebase-workspace.ts"],"names":[],"mappings":";;;AACA,yDAAuD;AACvD,2DAAyD;AAEzD,yDAAuD;AAEvD,SAAgB,oBAAoB,CAAC,IAAU;IAC7C,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAA,uCAAmB,EAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAA,qCAAkB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,qCAAkB,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE3D,qDACK,QAAQ,GACR,OAAO,GACP,OAAO,EACX;AACH,CAAC;AAXD,oDAWC"}
@@ -0,0 +1,7 @@
1
+ export * from '../../../utils/debug';
2
+ export * from './firebase-changes';
3
+ export * from './firebase-configs';
4
+ export * from './firebase-projects';
5
+ export * from './firebase-workspace';
6
+ export * from './tags';
7
+ export * from './types';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("../../../utils/debug"), exports);
5
+ tslib_1.__exportStar(require("./firebase-changes"), exports);
6
+ tslib_1.__exportStar(require("./firebase-configs"), exports);
7
+ tslib_1.__exportStar(require("./firebase-projects"), exports);
8
+ tslib_1.__exportStar(require("./firebase-workspace"), exports);
9
+ tslib_1.__exportStar(require("./tags"), exports);
10
+ tslib_1.__exportStar(require("./types"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/index.ts"],"names":[],"mappings":";;;AAAA,+DAAoC;AACpC,6DAAkC;AAClC,6DAAkC;AAClC,8DAAmC;AACnC,+DAAoC;AACpC,iDAAsB;AACtB,kDAAuB"}
@@ -0,0 +1,14 @@
1
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
2
+ /**
3
+ * Parse a firebase tag value for the given scope
4
+ * Expected to find tag of format: `firebase:name:<projectname>` or `firebase:dep:<appname>`
5
+ * @param project - Project to be checked
6
+ * @param scope - `firebase:name` or `firebase:dep`
7
+ * @returns value part of tag
8
+ * @throws if requested tag is missing, or malformed
9
+ */
10
+ export declare function getFirebaseScopeFromTag(project: ProjectConfiguration, scope: 'firebase:name' | 'firebase:dep'): {
11
+ tagValue: string;
12
+ tagIndex: number;
13
+ };
14
+ export declare function updateFirebaseProjectNameTag(tree: Tree, project: ProjectConfiguration): void;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateFirebaseProjectNameTag = exports.getFirebaseScopeFromTag = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const debug_1 = require("../../../utils/debug");
6
+ /**
7
+ * Parse a firebase tag value for the given scope
8
+ * Expected to find tag of format: `firebase:name:<projectname>` or `firebase:dep:<appname>`
9
+ * @param project - Project to be checked
10
+ * @param scope - `firebase:name` or `firebase:dep`
11
+ * @returns value part of tag
12
+ * @throws if requested tag is missing, or malformed
13
+ */
14
+ function getFirebaseScopeFromTag(project, scope) {
15
+ const tags = project.tags;
16
+ if (tags) {
17
+ for (let i = 0; i < tags.length; ++i) {
18
+ const tag = tags[i];
19
+ (0, debug_1.debugInfo)(`- checking tag '${tag}' for scope '${scope}'`);
20
+ if (tag.includes(scope)) {
21
+ (0, debug_1.debugInfo)(`- matched tag '${tag}' for scope '${scope}'`);
22
+ const scopes = tag.split(':');
23
+ if (scopes.length === 3) {
24
+ (0, debug_1.debugInfo)(`- returning tagValue '${scopes[2]}' tagIndex '${i}'`);
25
+ return { tagValue: scopes[2], tagIndex: i };
26
+ }
27
+ else {
28
+ throw new Error(`Malformed '${scope}' tag in project '${project.name}', expected '${scope}:<value>', found '${tag}'`);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ throw new Error(`Project '${project.name}' has a missing '${scope}' tag in project. Ensure this is set correctly.`);
34
+ }
35
+ exports.getFirebaseScopeFromTag = getFirebaseScopeFromTag;
36
+ function updateFirebaseProjectNameTag(tree, project) {
37
+ const appNameTag = getFirebaseScopeFromTag(project, 'firebase:name');
38
+ const newAppNameTag = `firebase:name:${project.name}`;
39
+ project.tags[appNameTag.tagIndex] = newAppNameTag;
40
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
41
+ }
42
+ exports.updateFirebaseProjectNameTag = updateFirebaseProjectNameTag;
43
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/tags.ts"],"names":[],"mappings":";;;AAAA,uCAImB;AACnB,gDAAgD;AAEhD;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACrC,OAA6B,EAC7B,KAAuC;IAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,IAAI,IAAI,EAAE;QACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,IAAA,iBAAS,EAAC,mBAAmB,GAAG,gBAAgB,KAAK,GAAG,CAAC,CAAA;YACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAA,iBAAS,EAAC,kBAAkB,GAAG,gBAAgB,KAAK,GAAG,CAAC,CAAA;gBACxD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,IAAA,iBAAS,EAAC,yBAAyB,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;iBAC5C;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,qBAAqB,OAAO,CAAC,IAAI,gBAAgB,KAAK,qBAAqB,GAAG,GAAG,CACrG,CAAA;iBACF;aACF;SACF;KACF;IACD,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,IAAI,oBAAoB,KAAK,iDAAiD,CACnG,CAAA;AACH,CAAC;AA1BD,0DA0BC;AAED,SAAgB,4BAA4B,CAC1C,IAAU,EACV,OAA6B;IAE7B,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IACpE,MAAM,aAAa,GAAG,iBAAiB,OAAO,CAAC,IAAI,EAAE,CAAA;IACrD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAA;IACjD,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACzD,CAAC;AARD,oEAQC"}
@@ -0,0 +1,46 @@
1
+ import { ProjectConfiguration } from '@nx/devkit';
2
+ import { FirebaseConfig } from '../../../utils';
3
+ export declare const CONFIG_NO_APP = "CONFIG_NO_APP";
4
+ export interface FirebaseProjects {
5
+ /**
6
+ * app projectName -> ProjectConfig
7
+ */
8
+ firebaseAppProjects: Map<string, ProjectConfiguration>;
9
+ /**
10
+ * function projectName -> ProjectConfig
11
+ */
12
+ firebaseFunctionProjects: Map<string, ProjectConfiguration>;
13
+ }
14
+ export interface FirebaseConfigs {
15
+ /**
16
+ * configFilename -> FirebaseConfig
17
+ */
18
+ firebaseConfigs: Map<string, FirebaseConfig>;
19
+ /**
20
+ * projectName -> configFileName
21
+ */
22
+ firebaseAppConfigs: Map<string, string>;
23
+ /**
24
+ * configFilename -> Project Name (or MISSING_CONFIG if config is not referenced by an app)
25
+ */
26
+ firebaseConfigProjects: Map<string, string>;
27
+ }
28
+ export interface FirebaseChanges {
29
+ /**
30
+ * map of app project name -> deletion status
31
+ */
32
+ deletedApps: Map<string, boolean>;
33
+ /**
34
+ * map of function project name -> deletion status
35
+ */
36
+ deletedFunctions: Map<string, boolean>;
37
+ /**
38
+ * map of previous app name -> new app project
39
+ */
40
+ renamedApps: Map<string, ProjectConfiguration>;
41
+ /**
42
+ * map of previous function name -> new function project
43
+ */
44
+ renamedFunctions: Map<string, ProjectConfiguration>;
45
+ }
46
+ export type FirebaseWorkspace = FirebaseProjects & FirebaseChanges & FirebaseConfigs;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONFIG_NO_APP = void 0;
4
+ exports.CONFIG_NO_APP = 'CONFIG_NO_APP';
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/nx-firebase/src/generators/sync/lib/types.ts"],"names":[],"mappings":";;;AAIa,QAAA,aAAa,GAAG,eAAe,CAAA"}
@@ -0,0 +1,5 @@
1
+ export interface SyncGeneratorSchema {
2
+ app?: string
3
+ project?: string
4
+ // functions?: boolean
5
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "Sync",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "app": {
8
+ "type": "string",
9
+ "description": "The Nx firebase application you would like to sync",
10
+ "default": ""
11
+ },
12
+ "project": {
13
+ "type": "string",
14
+ "description": "The firebase project that should be associated with this application",
15
+ "default": ""
16
+ }
17
+ },
18
+ "required": []
19
+ }
@@ -0,0 +1,8 @@
1
+ import { GeneratorCallback, Tree } from '@nx/devkit';
2
+ import { SyncGeneratorSchema } from './schema';
3
+ /**
4
+ * Sync firebase workspace
5
+ *
6
+ */
7
+ export declare function syncGenerator(tree: Tree, options: SyncGeneratorSchema): Promise<GeneratorCallback>;
8
+ export default syncGenerator;
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const utils_1 = require("../../utils");
7
+ const init_1 = require("../init/init");
8
+ const lib_1 = require("./lib");
9
+ const FUNCTIONS_DEPLOY_MATCHER = /(--only[ =]functions:)([^\s]+)/;
10
+ /**
11
+ * Sync firebase workspace
12
+ *
13
+ */
14
+ function syncGenerator(tree, options) {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ const tasks = [];
17
+ // initialise plugin
18
+ const initTask = yield (0, init_1.default)(tree, {});
19
+ tasks.push(initTask);
20
+ // change the firebase project for an nx firebase app project
21
+ if (options.project) {
22
+ // --project option requires --app option to be specified
23
+ if (!options.app) {
24
+ throw new Error('--app not specified for --project option');
25
+ }
26
+ // validate app parameter
27
+ const project = (0, devkit_1.readProjectConfiguration)(tree, options.app);
28
+ if (!(0, lib_1.isFirebaseApp)(project)) {
29
+ throw new Error(`Project '${options.app}' is not a Firebase application.`);
30
+ }
31
+ (0, lib_1.debugInfo)(`- changing project for ${options.app} to ${options.project}`);
32
+ if ((0, lib_1.updateFirebaseAppDeployProject)(project.targets.firebase, options)) {
33
+ (0, devkit_1.updateProjectConfiguration)(tree, options.app, project);
34
+ }
35
+ return;
36
+ }
37
+ // otherwise, sync the workspace.
38
+ // build lists of firebase apps & functions that have been deleted or renamed
39
+ (0, lib_1.debugInfo)('- Syncing workspace');
40
+ const workspace = (0, lib_1.getFirebaseWorkspace)(tree);
41
+ devkit_1.logger.info(`This workspace has ${workspace.firebaseAppProjects.size} firebase apps and ${workspace.firebaseFunctionProjects.size} firebase functions\n\n`);
42
+ /**
43
+ * Nx automatically:
44
+ * - updates implicitDependencies when projects are renamed with `nx g mv`
45
+ * - deletes implicitDependencies when projects are deleted with `nx g rm`
46
+ * So we do not have to consider these scenarios.
47
+ */
48
+ // 1. remove any orphaned firebase config files that no longer linked to an app
49
+ workspace.firebaseConfigProjects.forEach((projectName, configName) => {
50
+ if (projectName === lib_1.CONFIG_NO_APP) {
51
+ (0, lib_1.debugInfo)(`- found firebase config ${configName} with no app`);
52
+ tree.delete(configName);
53
+ // its ok to delete keys in forEach
54
+ workspace.firebaseConfigProjects.delete(configName);
55
+ workspace.firebaseConfigs.delete(configName);
56
+ // dont need to sync firebaseAppConfigs since this app wont exist in there
57
+ devkit_1.logger.info(`CHANGE Firebase config '${configName}' is no longer referenced by any firebase app, deleted`);
58
+ }
59
+ });
60
+ // 2. rename firebase config files too if app is renamed
61
+ workspace.renamedApps.forEach((project, oldProjectName) => {
62
+ const configFileName = workspace.firebaseAppConfigs.get(project.name);
63
+ // dont rename config file if it is firebase.json
64
+ if (configFileName === 'firebase.json') {
65
+ devkit_1.logger.info(`CHANGE Firebase app '${oldProjectName}' linked to primary config file was renamed to '${project.name}', skipping rename of '${configFileName}'`);
66
+ }
67
+ else {
68
+ const config = workspace.firebaseConfigs.get(configFileName);
69
+ // create a copy of the firebase config with the renamed project name
70
+ const newConfigFileName = `firebase.${project.name}.json`;
71
+ (0, devkit_1.writeJson)(tree, newConfigFileName, config);
72
+ // rewrite the --config=<configFileName> part of the firebase target command
73
+ (0, utils_1.setFirebaseConfigFromCommand)(project, newConfigFileName);
74
+ // write the updated project
75
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
76
+ // delete the original config from the workspace
77
+ tree.delete(configFileName);
78
+ // rewrite the workspace to the newly renamed config file
79
+ workspace.firebaseConfigs.delete(configFileName);
80
+ workspace.firebaseAppConfigs.delete(project.name);
81
+ workspace.firebaseConfigProjects.delete(configFileName);
82
+ workspace.firebaseConfigs.set(newConfigFileName, config);
83
+ workspace.firebaseAppConfigs.set(project.name, newConfigFileName);
84
+ workspace.firebaseConfigProjects.set(newConfigFileName, project.name);
85
+ devkit_1.logger.info(`CHANGE Firebase app '${oldProjectName}' was renamed to '${project.name}', renamed config file to '${newConfigFileName}'`);
86
+ }
87
+ });
88
+ // 3. update the firebase:name tag for renamed apps
89
+ workspace.renamedApps.forEach((project, oldName) => {
90
+ (0, lib_1.updateFirebaseProjectNameTag)(tree, project);
91
+ devkit_1.logger.info(`CHANGE Firebase app '${oldName}' was renamed to '${project.name}', updated firebase:name tag`);
92
+ });
93
+ // 4. update the firebase:dep tag for functions linked to renamed apps
94
+ workspace.firebaseFunctionProjects.forEach((project, name) => {
95
+ const { tagValue, tagIndex } = (0, lib_1.getFirebaseScopeFromTag)(project, 'firebase:dep');
96
+ if (workspace.renamedApps.has(tagValue)) {
97
+ const renamedApp = workspace.renamedApps.get(tagValue);
98
+ project.tags[tagIndex] = `firebase:dep:${renamedApp.name}`;
99
+ devkit_1.logger.info(`CHANGE Firebase app '${tagValue}' was renamed to '${renamedApp.name}', updated firebase:dep tag in firebase function '${name}'`);
100
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
101
+ }
102
+ else {
103
+ if (workspace.deletedApps.has(tagValue) ||
104
+ !workspace.firebaseAppProjects.has(tagValue)) {
105
+ devkit_1.logger.warn(`CHANGE Firebase app '${tagValue}' was deleted, firebase:dep tag for firebase function '${name}' is no longer linked to a Firebase app.`);
106
+ }
107
+ }
108
+ });
109
+ // 5. update the firebase:name tag for renamed functions
110
+ workspace.renamedFunctions.forEach((project, oldName) => {
111
+ (0, lib_1.updateFirebaseProjectNameTag)(tree, project);
112
+ devkit_1.logger.info(`CHANGE Firebase function '${oldName}' was renamed to '${project.name}', updated firebase:name tag`);
113
+ });
114
+ // 6. update the deploy command for renamed functions
115
+ workspace.renamedFunctions.forEach((project, oldName) => {
116
+ const deployCommand = project.targets.deploy.options.command;
117
+ project.targets.deploy.options.command = deployCommand.replace(FUNCTIONS_DEPLOY_MATCHER, '$1' + project.name);
118
+ devkit_1.logger.info(`CHANGE Firebase function '${oldName}' was renamed to '${project.name}', updated deploy target to '--only=functions:${project.name}'`);
119
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
120
+ });
121
+ // 7. sync firebase configs for deleted & renamed functions
122
+ workspace.firebaseConfigs.forEach((config, configFileName) => {
123
+ let configUpdated = false;
124
+ const functions = config.functions;
125
+ const updatedFunctions = [];
126
+ // remove deleted functions
127
+ functions.forEach((func) => {
128
+ // remove functions where codebase is linked to a now deleted firebase function project
129
+ if (workspace.deletedFunctions.has(func.codebase)) {
130
+ devkit_1.logger.info(`CHANGE Firebase function '${func.codebase}' was deleted, removing function codebase from '${configFileName}'`);
131
+ configUpdated = true;
132
+ }
133
+ else {
134
+ // rename function codebase if linked to a renamed firebase function project
135
+ const codebase = func.codebase;
136
+ (0, lib_1.debugInfo)(`- checking if codebase '${codebase}' is renamed`);
137
+ if (workspace.renamedFunctions.has(codebase)) {
138
+ // change name of codebase
139
+ const project = workspace.renamedFunctions.get(codebase);
140
+ (0, lib_1.debugInfo)(`- codebase '${codebase}' is renamed to ${project.name}`);
141
+ func.codebase = project.name;
142
+ // change source dir
143
+ func.source = project.targets.build.options.outputPath;
144
+ devkit_1.logger.info(`CHANGE Firebase function '${codebase}' was renamed to '${project.name}', updated codebase in '${configFileName}'`);
145
+ configUpdated = true;
146
+ }
147
+ updatedFunctions.push(func);
148
+ }
149
+ });
150
+ if (configUpdated) {
151
+ config.functions = updatedFunctions;
152
+ (0, devkit_1.writeJson)(tree, configFileName, config);
153
+ }
154
+ });
155
+ // if user deletes a project that was linked to firebase.json config but there
156
+ // are other firebase apps in the workspace, we need to inform user about
157
+ // this, since we dont have a way
158
+ // other firebase apps in the workspace, we'll just advise
159
+ if (!tree.exists('firebase.json') && workspace.firebaseAppProjects.size) {
160
+ devkit_1.logger.warn(`None of the Firebase apps in this workspace use 'firebase.json' as their config. Firebase CLI may not work as expected. This can be fixed by renaming the config for one of your firebase projects to 'firebase.json'.`);
161
+ }
162
+ return (0, devkit_1.runTasksInSerial)(...tasks);
163
+ });
164
+ }
165
+ exports.syncGenerator = syncGenerator;
166
+ exports.default = syncGenerator;
167
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../../../packages/nx-firebase/src/generators/sync/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function debugInfo(info: string): void;
2
+ export declare function mapKeys(map: Map<any, any>): string;
3
+ export declare function mapValues(map: Map<any, any>): string;
4
+ export declare function mapEntries(map: Map<any, any>): string;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapEntries = exports.mapValues = exports.mapKeys = exports.debugInfo = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ // debug info just for plugin
6
+ const ENABLE_DEBUG_INFO = false;
7
+ function debugInfo(info) {
8
+ if (ENABLE_DEBUG_INFO) {
9
+ devkit_1.logger.info(info);
10
+ }
11
+ }
12
+ exports.debugInfo = debugInfo;
13
+ function mapKeys(map) {
14
+ return JSON.stringify([...map.keys()], null, 3);
15
+ }
16
+ exports.mapKeys = mapKeys;
17
+ function mapValues(map) {
18
+ return JSON.stringify([...map.values()], null, 3);
19
+ }
20
+ exports.mapValues = mapValues;
21
+ function mapEntries(map) {
22
+ return JSON.stringify([...map.entries()], null, 3);
23
+ }
24
+ exports.mapEntries = mapEntries;
25
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../../../packages/nx-firebase/src/utils/debug.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAEnC,6BAA6B;AAC7B,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAE/B,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,iBAAiB,EAAE;QACrB,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClB;AACH,CAAC;AAJD,8BAIC;AAED,SAAgB,OAAO,CAAC,GAAkB;IACxC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACjD,CAAC;AAFD,0BAEC;AAED,SAAgB,SAAS,CAAC,GAAkB;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACnD,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,GAAkB;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACpD,CAAC;AAFD,gCAEC"}