@nx/angular 16.1.3 → 16.2.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 (160) hide show
  1. package/generators.d.ts +2 -0
  2. package/generators.js +2 -0
  3. package/generators.js.map +1 -1
  4. package/generators.json +14 -2
  5. package/migrations.json +21 -0
  6. package/package.json +10 -11
  7. package/src/builders/webpack-dev-server/schema.json +1 -1
  8. package/src/builders/webpack-server/schema.json +1 -1
  9. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +3 -4
  10. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js.map +1 -1
  11. package/src/generators/add-linting/schema.json +1 -1
  12. package/src/generators/application/lib/add-unit-test-runner.d.ts +1 -1
  13. package/src/generators/application/lib/add-unit-test-runner.js +13 -0
  14. package/src/generators/application/lib/add-unit-test-runner.js.map +1 -1
  15. package/src/generators/application/lib/normalize-options.js +3 -2
  16. package/src/generators/application/lib/normalize-options.js.map +1 -1
  17. package/src/generators/component/lib/validate-options.js +1 -2
  18. package/src/generators/component/lib/validate-options.js.map +1 -1
  19. package/src/generators/convert-to-with-mf/schema.json +1 -1
  20. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +30 -28
  21. package/src/generators/cypress-component-configuration/cypress-component-configuration.js.map +1 -1
  22. package/src/generators/directive/lib/validate-options.js +1 -2
  23. package/src/generators/directive/lib/validate-options.js.map +1 -1
  24. package/src/generators/host/host.js +1 -0
  25. package/src/generators/host/host.js.map +1 -1
  26. package/src/generators/host/schema.json +1 -1
  27. package/src/generators/init/schema.json +4 -4
  28. package/src/generators/library/files/base/package.json__tpl__ +1 -1
  29. package/src/generators/library/lib/create-files.js +1 -2
  30. package/src/generators/library/lib/create-files.js.map +1 -1
  31. package/src/generators/library/lib/normalize-options.js +6 -4
  32. package/src/generators/library/lib/normalize-options.js.map +1 -1
  33. package/src/generators/library/library.js +12 -0
  34. package/src/generators/library/library.js.map +1 -1
  35. package/src/generators/move/schema.json +1 -1
  36. package/src/generators/ng-add/migrate-from-angular-cli.d.ts +1 -1
  37. package/src/generators/ng-add/migrate-from-angular-cli.js +1 -2
  38. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  39. package/src/generators/ng-add/schema.d.ts +3 -1
  40. package/src/generators/ng-add/schema.json +1 -1
  41. package/src/generators/ng-add/utilities/index.d.ts +0 -1
  42. package/src/generators/ng-add/utilities/index.js +0 -1
  43. package/src/generators/ng-add/utilities/index.js.map +1 -1
  44. package/src/generators/ng-add/utilities/workspace.js +11 -6
  45. package/src/generators/ng-add/utilities/workspace.js.map +1 -1
  46. package/src/generators/ngrx/lib/add-imports-to-module.js +20 -4
  47. package/src/generators/ngrx/lib/add-imports-to-module.js.map +1 -1
  48. package/src/generators/ngrx/schema.json +5 -4
  49. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +16 -0
  50. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +37 -0
  51. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  52. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +99 -0
  53. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
  54. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.models.ts__tmpl__ +7 -0
  55. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +37 -0
  56. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +41 -0
  57. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +58 -0
  58. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +38 -0
  59. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +22 -0
  60. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +27 -0
  61. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.d.ts +3 -0
  62. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +39 -0
  63. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js.map +1 -0
  64. package/src/generators/ngrx-feature-store/lib/add-imports.d.ts +3 -0
  65. package/src/generators/ngrx-feature-store/lib/add-imports.js +103 -0
  66. package/src/generators/ngrx-feature-store/lib/add-imports.js.map +1 -0
  67. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.d.ts +3 -0
  68. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +28 -0
  69. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js.map +1 -0
  70. package/src/generators/ngrx-feature-store/lib/generate-files.d.ts +3 -0
  71. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -0
  72. package/src/generators/ngrx-feature-store/lib/generate-files.js.map +1 -0
  73. package/src/generators/ngrx-feature-store/lib/index.d.ts +6 -0
  74. package/src/generators/ngrx-feature-store/lib/index.js +10 -0
  75. package/src/generators/ngrx-feature-store/lib/index.js.map +1 -0
  76. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +7 -0
  77. package/src/generators/ngrx-feature-store/lib/normalize-options.js +20 -0
  78. package/src/generators/ngrx-feature-store/lib/normalize-options.js.map +1 -0
  79. package/src/generators/ngrx-feature-store/lib/validate-options.d.ts +3 -0
  80. package/src/generators/ngrx-feature-store/lib/validate-options.js +35 -0
  81. package/src/generators/ngrx-feature-store/lib/validate-options.js.map +1 -0
  82. package/src/generators/ngrx-feature-store/ngrx-feature-store.d.ts +5 -0
  83. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +30 -0
  84. package/src/generators/ngrx-feature-store/ngrx-feature-store.js.map +1 -0
  85. package/src/generators/ngrx-feature-store/schema.d.ts +12 -0
  86. package/src/generators/ngrx-feature-store/schema.json +72 -0
  87. package/src/generators/ngrx-root-store/lib/add-imports.d.ts +3 -0
  88. package/src/generators/ngrx-root-store/lib/add-imports.js +80 -0
  89. package/src/generators/ngrx-root-store/lib/add-imports.js.map +1 -0
  90. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.d.ts +3 -0
  91. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +28 -0
  92. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js.map +1 -0
  93. package/src/generators/ngrx-root-store/lib/index.d.ts +4 -0
  94. package/src/generators/ngrx-root-store/lib/index.js +8 -0
  95. package/src/generators/ngrx-root-store/lib/index.js.map +1 -0
  96. package/src/generators/ngrx-root-store/lib/normalize-options.d.ts +7 -0
  97. package/src/generators/ngrx-root-store/lib/normalize-options.js +37 -0
  98. package/src/generators/ngrx-root-store/lib/normalize-options.js.map +1 -0
  99. package/src/generators/ngrx-root-store/lib/validate-options.d.ts +3 -0
  100. package/src/generators/ngrx-root-store/lib/validate-options.js +33 -0
  101. package/src/generators/ngrx-root-store/lib/validate-options.js.map +1 -0
  102. package/src/generators/ngrx-root-store/ngrx-root-store.d.ts +5 -0
  103. package/src/generators/ngrx-root-store/ngrx-root-store.js +40 -0
  104. package/src/generators/ngrx-root-store/ngrx-root-store.js.map +1 -0
  105. package/src/generators/ngrx-root-store/schema.d.ts +10 -0
  106. package/src/generators/ngrx-root-store/schema.json +66 -0
  107. package/src/generators/pipe/lib/validate-options.js +1 -2
  108. package/src/generators/pipe/lib/validate-options.js.map +1 -1
  109. package/src/generators/remote/remote.js +1 -0
  110. package/src/generators/remote/remote.js.map +1 -1
  111. package/src/generators/remote/schema.json +1 -1
  112. package/src/generators/scam/lib/validate-options.js +1 -2
  113. package/src/generators/scam/lib/validate-options.js.map +1 -1
  114. package/src/generators/scam/schema.json +1 -1
  115. package/src/generators/scam-directive/lib/validate-options.js +1 -2
  116. package/src/generators/scam-directive/lib/validate-options.js.map +1 -1
  117. package/src/generators/scam-directive/schema.json +1 -1
  118. package/src/generators/scam-pipe/lib/validate-options.js +1 -2
  119. package/src/generators/scam-pipe/lib/validate-options.js.map +1 -1
  120. package/src/generators/scam-pipe/schema.json +1 -1
  121. package/src/generators/setup-mf/lib/add-remote-entry.js +0 -3
  122. package/src/generators/setup-mf/lib/add-remote-entry.js.map +1 -1
  123. package/src/generators/setup-mf/lib/index.d.ts +1 -0
  124. package/src/generators/setup-mf/lib/index.js +1 -0
  125. package/src/generators/setup-mf/lib/index.js.map +1 -1
  126. package/src/generators/setup-mf/lib/normalize-options.d.ts +3 -0
  127. package/src/generators/setup-mf/lib/normalize-options.js +10 -0
  128. package/src/generators/setup-mf/lib/normalize-options.js.map +1 -0
  129. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +1 -1
  130. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +9 -13
  131. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js.map +1 -1
  132. package/src/generators/setup-mf/schema.d.ts +8 -1
  133. package/src/generators/setup-mf/setup-mf.d.ts +1 -1
  134. package/src/generators/setup-mf/setup-mf.js +3 -4
  135. package/src/generators/setup-mf/setup-mf.js.map +1 -1
  136. package/src/generators/utils/path.d.ts +0 -1
  137. package/src/generators/utils/path.js +1 -16
  138. package/src/generators/utils/path.js.map +1 -1
  139. package/src/generators/utils/project.d.ts +3 -1
  140. package/src/generators/utils/project.js +17 -7
  141. package/src/generators/utils/project.js.map +1 -1
  142. package/src/generators/utils/selector.js +2 -2
  143. package/src/generators/utils/selector.js.map +1 -1
  144. package/src/generators/utils/testing.js +24 -7
  145. package/src/generators/utils/testing.js.map +1 -1
  146. package/src/generators/utils/validations.d.ts +1 -0
  147. package/src/generators/utils/validations.js +17 -1
  148. package/src/generators/utils/validations.js.map +1 -1
  149. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +45 -25
  150. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js.map +1 -1
  151. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.d.ts +2 -0
  152. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +124 -0
  153. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js.map +1 -0
  154. package/src/utils/versions.d.ts +1 -1
  155. package/src/utils/versions.js +1 -1
  156. package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__ +0 -42
  157. package/src/generators/cypress-component-configuration/files/cypress.config.ts__tpl__ +0 -6
  158. package/src/generators/ng-add/utilities/normalize-options.d.ts +0 -4
  159. package/src/generators/ng-add/utilities/normalize-options.js +0 -30
  160. package/src/generators/ng-add/utilities/normalize-options.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "NxNgrxFeatureStoreGenerator",
4
+ "title": "NgRx Feature Store Generator",
5
+ "description": "Add an NgRx Feature Store to an application or library.",
6
+ "cli": "nx",
7
+ "type": "object",
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.",
12
+ "$default": {
13
+ "$source": "argv",
14
+ "index": 0
15
+ },
16
+ "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.",
17
+ "x-priority": "important"
18
+ },
19
+ "parent": {
20
+ "type": "string",
21
+ "description": "The path to the file where the state will be registered. For NgModule usage, this will be your Feature Module. For Standalone API usage, this will be your Routes definition file for your feature state. The host directory will create/use the new state directory. _Note: The Standalone API usage is only supported in Angular versions >= 14.1.0_.",
22
+ "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?",
23
+ "x-priority": "important"
24
+ },
25
+ "route": {
26
+ "type": "string",
27
+ "description": "The route that the Standalone NgRx Providers should be added to. _Note: This is only supported in Angular versions >= 14.1.0_.",
28
+ "default": "''"
29
+ },
30
+ "minimal": {
31
+ "type": "boolean",
32
+ "default": false,
33
+ "description": "Only register the feature state.",
34
+ "x-priority": "important"
35
+ },
36
+ "directory": {
37
+ "type": "string",
38
+ "default": "+state",
39
+ "description": "The name of the folder used to contain/group the generated NgRx files."
40
+ },
41
+ "facade": {
42
+ "type": "boolean",
43
+ "default": false,
44
+ "description": "Create a Facade class for the the feature.",
45
+ "x-prompt": "Would you like to use a Facade with your NgRx state?"
46
+ },
47
+ "skipImport": {
48
+ "type": "boolean",
49
+ "default": false,
50
+ "description": "Generate NgRx feature files without registering the feature in the NgModule."
51
+ },
52
+ "skipFormat": {
53
+ "description": "Skip formatting files.",
54
+ "type": "boolean",
55
+ "default": false,
56
+ "x-priority": "internal"
57
+ },
58
+ "skipPackageJson": {
59
+ "type": "boolean",
60
+ "default": false,
61
+ "description": "Do not update the `package.json` with NgRx dependencies.",
62
+ "x-priority": "internal"
63
+ },
64
+ "barrels": {
65
+ "type": "boolean",
66
+ "default": false,
67
+ "description": "Use barrels to re-export actions, state and selectors."
68
+ }
69
+ },
70
+ "additionalProperties": false,
71
+ "required": ["name"]
72
+ }
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import { NormalizedNgRxRootStoreGeneratorOptions } from './normalize-options';
3
+ export declare function addImportsToModule(tree: Tree, options: NormalizedNgRxRootStoreGeneratorOptions): void;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addImportsToModule = void 0;
4
+ const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
5
+ const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
6
+ const js_1 = require("@nx/js");
7
+ let tsModule;
8
+ function addRootStoreImport(tree, isParentStandalone, sourceFile, parentPath, provideRootStore, storeForRoot) {
9
+ if (isParentStandalone) {
10
+ if (tree.read(parentPath, 'utf-8').includes('ApplicationConfig')) {
11
+ (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideRootStore);
12
+ }
13
+ else {
14
+ (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideRootStore);
15
+ }
16
+ }
17
+ else {
18
+ sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeForRoot);
19
+ }
20
+ return sourceFile;
21
+ }
22
+ function addRootEffectsImport(tree, isParentStandalone, sourceFile, parentPath, provideRootEffects, effectsForEmptyRoot) {
23
+ if (isParentStandalone) {
24
+ if (tree.read(parentPath, 'utf-8').includes('ApplicationConfig')) {
25
+ (0, ast_utils_1.addProviderToAppConfig)(tree, parentPath, provideRootEffects);
26
+ }
27
+ else {
28
+ (0, ast_utils_1.addProviderToBootstrapApplication)(tree, parentPath, provideRootEffects);
29
+ }
30
+ }
31
+ else {
32
+ sourceFile = (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, effectsForEmptyRoot);
33
+ }
34
+ return sourceFile;
35
+ }
36
+ function addRouterStoreImport(tree, sourceFile, addImport, parentPath, storeRouterModule) {
37
+ sourceFile = addImport(sourceFile, 'StoreRouterConnectingModule', '@ngrx/router-store');
38
+ return (0, ast_utils_1.addImportToModule)(tree, sourceFile, parentPath, storeRouterModule);
39
+ }
40
+ function addImportsToModule(tree, options) {
41
+ if (!tsModule) {
42
+ tsModule = (0, ensure_typescript_1.ensureTypescript)();
43
+ }
44
+ const parentPath = options.parent;
45
+ const sourceText = tree.read(parentPath, 'utf-8');
46
+ let sourceFile = tsModule.createSourceFile(parentPath, sourceText, tsModule.ScriptTarget.Latest, true);
47
+ const isParentStandalone = !sourceText.includes('@NgModule');
48
+ const addImport = (source, symbolName, fileName, isDefault = false) => {
49
+ return (0, js_1.insertImport)(tree, source, parentPath, symbolName, fileName, isDefault);
50
+ };
51
+ const storeMetaReducers = `metaReducers: []`;
52
+ const storeForRoot = `StoreModule.forRoot({}, {
53
+ ${storeMetaReducers},
54
+ runtimeChecks: {
55
+ strictActionImmutability: true,
56
+ strictStateImmutability: true
57
+ }
58
+ })`;
59
+ const effectsForEmptyRoot = `EffectsModule.forRoot([])`;
60
+ const storeRouterModule = 'StoreRouterConnectingModule.forRoot()';
61
+ const provideRootStore = `provideStore()`;
62
+ const provideRootEffects = `provideEffects()`;
63
+ if (isParentStandalone) {
64
+ sourceFile = addImport(sourceFile, 'provideStore', '@ngrx/store');
65
+ sourceFile = addImport(sourceFile, 'provideEffects', '@ngrx/effects');
66
+ }
67
+ else {
68
+ sourceFile = addImport(sourceFile, 'StoreModule', '@ngrx/store');
69
+ sourceFile = addImport(sourceFile, 'EffectsModule', '@ngrx/effects');
70
+ }
71
+ sourceFile = addRootStoreImport(tree, isParentStandalone, sourceFile, parentPath, provideRootStore, storeForRoot);
72
+ sourceFile = addRootEffectsImport(tree, isParentStandalone, sourceFile, parentPath, provideRootEffects, effectsForEmptyRoot);
73
+ // this is just a heuristic
74
+ const hasRouter = sourceText.indexOf('RouterModule') > -1;
75
+ if (hasRouter && !isParentStandalone) {
76
+ sourceFile = addRouterStoreImport(tree, sourceFile, addImport, parentPath, storeRouterModule);
77
+ }
78
+ }
79
+ exports.addImportsToModule = addImportsToModule;
80
+ //# sourceMappingURL=add-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-imports.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-root-store/lib/add-imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratorCallback, Tree } from '@nx/devkit';
2
+ import { NormalizedNgRxRootStoreGeneratorOptions } from './normalize-options';
3
+ export declare function addNgRxToPackageJson(tree: Tree, options: NormalizedNgRxRootStoreGeneratorOptions): GeneratorCallback;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addNgRxToPackageJson = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const semver_1 = require("semver");
6
+ const version_utils_1 = require("../../utils/version-utils");
7
+ function addNgRxToPackageJson(tree, options) {
8
+ var _a;
9
+ var _b;
10
+ const jasmineMarblesVersion = (0, semver_1.gte)(options.rxjsVersion, '7.0.0')
11
+ ? '~0.9.1'
12
+ : '~0.8.3';
13
+ const ngrxVersion = (0, version_utils_1.versions)(tree).ngrxVersion;
14
+ (_a = (_b = process.env).npm_config_legacy_peer_deps) !== null && _a !== void 0 ? _a : (_b.npm_config_legacy_peer_deps = 'true');
15
+ return (0, devkit_1.addDependenciesToPackageJson)(tree, {
16
+ '@ngrx/store': ngrxVersion,
17
+ '@ngrx/effects': ngrxVersion,
18
+ '@ngrx/entity': ngrxVersion,
19
+ '@ngrx/router-store': ngrxVersion,
20
+ '@ngrx/component-store': ngrxVersion,
21
+ }, {
22
+ '@ngrx/schematics': ngrxVersion,
23
+ '@ngrx/store-devtools': ngrxVersion,
24
+ 'jasmine-marbles': jasmineMarblesVersion,
25
+ });
26
+ }
27
+ exports.addNgRxToPackageJson = addNgRxToPackageJson;
28
+ //# sourceMappingURL=add-ngrx-to-package-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-ngrx-to-package-json.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.ts"],"names":[],"mappings":";;;AACA,uCAA0D;AAC1D,mCAA6B;AAC7B,6DAAqD;AAGrD,SAAgB,oBAAoB,CAClC,IAAU,EACV,OAAgD;;;IAEhD,MAAM,qBAAqB,GAAG,IAAA,YAAG,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;QAC7D,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,WAAW,GAAG,IAAA,wBAAQ,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IAE/C,YAAA,OAAO,CAAC,GAAG,EAAC,2BAA2B,uCAA3B,2BAA2B,GAAK,MAAM,EAAC;IAEnD,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ;QACE,aAAa,EAAE,WAAW;QAC1B,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,WAAW;QAC3B,oBAAoB,EAAE,WAAW;QACjC,uBAAuB,EAAE,WAAW;KACrC,EACD;QACE,kBAAkB,EAAE,WAAW;QAC/B,sBAAsB,EAAE,WAAW;QACnC,iBAAiB,EAAE,qBAAqB;KACzC,CACF,CAAC;AACJ,CAAC;AA1BD,oDA0BC"}
@@ -0,0 +1,4 @@
1
+ export * from './add-imports';
2
+ export * from './add-ngrx-to-package-json';
3
+ export * from './normalize-options';
4
+ export * from './validate-options';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./add-imports"), exports);
5
+ tslib_1.__exportStar(require("./add-ngrx-to-package-json"), exports);
6
+ tslib_1.__exportStar(require("./normalize-options"), exports);
7
+ tslib_1.__exportStar(require("./validate-options"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-root-store/lib/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,qEAA2C;AAC3C,8DAAoC;AACpC,6DAAmC"}
@@ -0,0 +1,7 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import type { Schema } from '../schema';
3
+ export type NormalizedNgRxRootStoreGeneratorOptions = Schema & {
4
+ parent: string;
5
+ rxjsVersion: string;
6
+ };
7
+ export declare function normalizeOptions(tree: Tree, options: Schema): NormalizedNgRxRootStoreGeneratorOptions;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeOptions = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const semver_1 = require("@nx/devkit/src/utils/semver");
6
+ const versions_1 = require("../../../utils/versions");
7
+ const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
8
+ function normalizeOptions(tree, options) {
9
+ var _a;
10
+ let rxjsVersion;
11
+ try {
12
+ rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', (0, devkit_1.readJson)(tree, 'package.json').dependencies['rxjs']);
13
+ }
14
+ catch (_b) {
15
+ rxjsVersion = (0, semver_1.checkAndCleanWithSemver)('rxjs', versions_1.rxjsVersion);
16
+ }
17
+ const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
18
+ const isStandalone = (0, ast_utils_1.isNgStandaloneApp)(tree, options.project);
19
+ const appConfigPath = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.config.ts');
20
+ const appMainPath = project.targets.build.options.main;
21
+ /** If NgModule App
22
+ * -> Use App Module
23
+ * If Standalone
24
+ * -> Check Config File exists (v16+)
25
+ * --> If so, use that
26
+ * --> If not, use main.ts
27
+ */
28
+ const parent = !isStandalone
29
+ ? (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts')
30
+ : tree.exists(appConfigPath)
31
+ ? appConfigPath
32
+ : appMainPath;
33
+ options.directory = (_a = options.directory) !== null && _a !== void 0 ? _a : '+state';
34
+ return Object.assign(Object.assign({}, options), { parent, directory: (0, devkit_1.names)(options.directory).fileName, rxjsVersion });
35
+ }
36
+ exports.normalizeOptions = normalizeOptions;
37
+ //# sourceMappingURL=normalize-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-root-store/lib/normalize-options.ts"],"names":[],"mappings":";;;AACA,uCAKoB;AACpB,wDAAsE;AACtE,sDAA4E;AAE5E,kEAAuE;AAOvE,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAe;;IAEf,IAAI,WAAmB,CAAC;IACxB,IAAI;QACF,WAAW,GAAG,IAAA,gCAAuB,EACnC,MAAM,EACN,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CACpD,CAAC;KACH;IAAC,WAAM;QACN,WAAW,GAAG,IAAA,gCAAuB,EAAC,MAAM,EAAE,sBAAkB,CAAC,CAAC;KACnE;IAED,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAA,6BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAA,0BAAiB,EACrC,OAAO,CAAC,UAAU,EAClB,mBAAmB,CACpB,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,MAAM,MAAM,GAAG,CAAC,YAAY;QAC1B,CAAC,CAAC,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC5B,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,WAAW,CAAC;IAEhB,OAAO,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,mCAAI,QAAQ,CAAC;IAElD,uCACK,OAAO,KACV,MAAM,EACN,SAAS,EAAE,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAC5C,WAAW,IACX;AACJ,CAAC;AA3CD,4CA2CC"}
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import { Schema } from '../schema';
3
+ export declare function validateOptions(tree: Tree, options: Schema): void;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateOptions = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const version_utils_1 = require("../../utils/version-utils");
6
+ const version_utils_2 = require("../../../utils/version-utils");
7
+ const semver_1 = require("semver");
8
+ const ast_utils_1 = require("../../../utils/nx-devkit/ast-utils");
9
+ function validateOptions(tree, options) {
10
+ var _a, _b;
11
+ if (!(0, devkit_1.getProjects)(tree).has(options.project)) {
12
+ throw new Error(`Could not find project '${options.project}'. Please ensure the project name is correct and exists.`);
13
+ }
14
+ const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
15
+ if (project.projectType !== 'application') {
16
+ throw new Error(`NgRx Root Stores can only be added to applications, please ensure the project you use is an application.`);
17
+ }
18
+ if (!options.minimal && !options.name) {
19
+ throw new Error(`If generating a global feature state with your root store, you must provide a name for it with '--name'.`);
20
+ }
21
+ const angularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
22
+ const intendedNgRxVersionForAngularMajor = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('ngrxVersion', angularVersionInfo.major);
23
+ const ngrxMajorVersion = (_b = (_a = (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@ngrx/store')) === null || _a === void 0 ? void 0 : _a.major) !== null && _b !== void 0 ? _b : (0, semver_1.major)((0, semver_1.coerce)(intendedNgRxVersionForAngularMajor));
24
+ const isStandalone = (0, ast_utils_1.isNgStandaloneApp)(tree, options.project);
25
+ if ((0, semver_1.lt)(angularVersionInfo.version, '14.1.0') || ngrxMajorVersion < 15) {
26
+ if (isStandalone) {
27
+ throw new Error(`The provided project '${options.project}' is set up to use Standalone APIs, however your workspace is not configured to support Standalone APIs. ` +
28
+ 'Please make sure to provide a path to an "NgModule" where the state will be registered. ');
29
+ }
30
+ }
31
+ }
32
+ exports.validateOptions = validateOptions;
33
+ //# sourceMappingURL=validate-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ngrx-root-store/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,uCAAmE;AAEnE,6DAGmC;AACnC,gEAAmF;AACnF,mCAA2C;AAC3C,kEAAuE;AAEvE,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;;IACzD,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,CAAC,OAAO,0DAA0D,CACrG,CAAC;KACH;IAED,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAC;KACH;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAC;KACH;IAED,MAAM,kBAAkB,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;IAChE,MAAM,kCAAkC,GACtC,IAAA,mDAAmC,EACjC,aAAa,EACb,kBAAkB,CAAC,KAAK,CACzB,CAAC;IAEJ,MAAM,gBAAgB,GACpB,MAAA,MAAA,IAAA,8CAA8B,EAAC,IAAI,EAAE,aAAa,CAAC,0CAAE,KAAK,mCAC1D,IAAA,cAAK,EAAC,IAAA,eAAM,EAAC,kCAAkC,CAAC,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,IAAA,6BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,IAAA,WAAE,EAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,gBAAgB,GAAG,EAAE,EAAE;QACrE,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,CAAC,OAAO,2GAA2G;gBACjJ,0FAA0F,CAC7F,CAAC;SACH;KACF;AACH,CAAC;AAzCD,0CAyCC"}
@@ -0,0 +1,5 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import { GeneratorCallback } from '@nx/devkit';
3
+ import type { Schema } from './schema';
4
+ export declare function ngrxRootStoreGenerator(tree: Tree, schema: Schema): Promise<GeneratorCallback>;
5
+ export default ngrxRootStoreGenerator;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ngrxRootStoreGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const lib_1 = require("./lib");
7
+ const ngrx_feature_store_1 = require("../ngrx-feature-store/ngrx-feature-store");
8
+ function ngrxRootStoreGenerator(tree, schema) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ (0, lib_1.validateOptions)(tree, schema);
11
+ const options = (0, lib_1.normalizeOptions)(tree, schema);
12
+ if (!options.skipImport) {
13
+ (0, lib_1.addImportsToModule)(tree, options);
14
+ }
15
+ if (!options.minimal) {
16
+ yield (0, ngrx_feature_store_1.default)(tree, {
17
+ name: options.name,
18
+ parent: options.parent,
19
+ directory: options.directory,
20
+ minimal: false,
21
+ facade: options.facade,
22
+ barrels: false,
23
+ skipImport: false,
24
+ skipPackageJson: true,
25
+ skipFormat: true,
26
+ });
27
+ }
28
+ let packageInstallationTask = () => { };
29
+ if (!options.skipPackageJson) {
30
+ packageInstallationTask = (0, lib_1.addNgRxToPackageJson)(tree, options);
31
+ }
32
+ if (!options.skipFormat) {
33
+ yield (0, devkit_1.formatFiles)(tree);
34
+ }
35
+ return packageInstallationTask;
36
+ });
37
+ }
38
+ exports.ngrxRootStoreGenerator = ngrxRootStoreGenerator;
39
+ exports.default = ngrxRootStoreGenerator;
40
+ //# sourceMappingURL=ngrx-root-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngrx-root-store.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/ngrx-root-store/ngrx-root-store.ts"],"names":[],"mappings":";;;;AACA,uCAA4D;AAG5D,+BAKe;AAEf,iFAAiF;AAEjF,SAAsB,sBAAsB,CAAC,IAAU,EAAE,MAAc;;QACrE,IAAA,qBAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAA,sBAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,IAAA,4BAAyB,EAAC,IAAI,EAAE;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,IAAI;gBACrB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;SACJ;QAED,IAAI,uBAAuB,GAAsB,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAC5B,uBAAuB,GAAG,IAAA,0BAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,uBAAuB,CAAC;IACjC,CAAC;CAAA;AAhCD,wDAgCC;AAED,kBAAe,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface Schema {
2
+ project: string;
3
+ minimal: boolean;
4
+ name?: string;
5
+ directory?: string;
6
+ facade?: boolean;
7
+ skipFormat?: boolean;
8
+ skipImport?: boolean;
9
+ skipPackageJson?: boolean;
10
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "NxNgrxRootStoreGenerator",
4
+ "title": "Add NgRx support to an application.",
5
+ "description": "Adds NgRx support to an application.",
6
+ "cli": "nx",
7
+ "type": "object",
8
+ "properties": {
9
+ "project": {
10
+ "type": "string",
11
+ "description": "The name of the application to generate the NgRx configuration for.",
12
+ "$default": {
13
+ "$source": "argv",
14
+ "index": 0
15
+ },
16
+ "x-prompt": "What app would you like to generate a NgRx configuration for?",
17
+ "x-dropdown": "projects"
18
+ },
19
+ "minimal": {
20
+ "type": "boolean",
21
+ "default": true,
22
+ "description": "Only register the root state management setup or also generate a global feature state.",
23
+ "x-priority": "important"
24
+ },
25
+ "name": {
26
+ "type": "string",
27
+ "description": "Name of the NgRx state, such as `products` or `users`. Recommended to use the plural form of the name.",
28
+ "x-priority": "important"
29
+ },
30
+ "route": {
31
+ "type": "string",
32
+ "description": "The route that the Standalone NgRx Providers should be added to. _Note: This is only supported in Angular versions >= 14.1.0_.",
33
+ "default": "''"
34
+ },
35
+ "directory": {
36
+ "type": "string",
37
+ "default": "+state",
38
+ "description": "The name of the folder used to contain/group the generated NgRx files."
39
+ },
40
+ "facade": {
41
+ "type": "boolean",
42
+ "default": false,
43
+ "description": "Create a Facade class for the the feature.",
44
+ "x-prompt": "Would you like to use a Facade with your NgRx state?"
45
+ },
46
+ "skipImport": {
47
+ "type": "boolean",
48
+ "default": false,
49
+ "description": "Generate NgRx feature files without registering the feature in the NgModule."
50
+ },
51
+ "skipFormat": {
52
+ "description": "Skip formatting files.",
53
+ "type": "boolean",
54
+ "default": false,
55
+ "x-priority": "internal"
56
+ },
57
+ "skipPackageJson": {
58
+ "type": "boolean",
59
+ "default": false,
60
+ "description": "Do not update the `package.json` with NgRx dependencies.",
61
+ "x-priority": "internal"
62
+ }
63
+ },
64
+ "additionalProperties": false,
65
+ "required": ["project"]
66
+ }
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateOptions = void 0;
4
- const path_1 = require("../../utils/path");
5
4
  const validations_1 = require("../../utils/validations");
6
5
  function validateOptions(tree, options) {
7
6
  (0, validations_1.validateProject)(tree, options.project);
8
- (0, path_1.checkPathUnderProjectRoot)(tree, options.project, options.path);
7
+ (0, validations_1.validatePathIsUnderProjectRoot)(tree, options.project, options.path);
9
8
  (0, validations_1.validateStandaloneOption)(tree, options.standalone);
10
9
  }
11
10
  exports.validateOptions = validateOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/pipe/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAC7D,yDAGiC;AAGjC,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,gCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAA,sCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC;AAJD,0CAIC"}
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/pipe/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,yDAIiC;AAGjC,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,4CAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,IAAA,sCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC;AAJD,0CAIC"}
@@ -38,6 +38,7 @@ function remote(tree, options) {
38
38
  skipE2E,
39
39
  e2eProjectName: skipE2E ? undefined : `${appName}-e2e`,
40
40
  standalone: options.standalone,
41
+ prefix: options.prefix,
41
42
  });
42
43
  let installTasks = [appInstallTask];
43
44
  if (options.ssr) {
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.ts"],"names":[],"mappings":";;;;AAAA,uCAOoB;AAEpB,4DAA8D;AAC9D,8CAAwD;AACxD,mDAA+C;AAC/C,2DAAyD;AACzD,+BAAsD;AAEtD,0DAAwE;AACxE,mCAA4B;AAE5B,SAAsB,MAAM,CAAC,IAAU,EAAE,OAAe;;;QACtD,MAAM,2BAA2B,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,IAAA,WAAE,EAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;YAC3E,MAAM,IAAI,KAAK,CAAC,IAAA,qBAAY,EAAA,2FAA2F,2BAA2B,CAAC,OAAO;sGACxD,CAAC,CAAC;SACrG;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/C,MAAM,IAAI,KAAK,CACb,2EAA2E,OAAO,CAAC,IAAI,GAAG,CAC3F,CAAC;SACH;QAED,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,+BAAsB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAA,2BAAqB,EAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAoB,EAAC,IAAI,kCACjD,OAAO,KACV,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,KAAK,EACvC,OAAO,EAAE,IAAI,EACb,IAAI,EACJ,UAAU,EAAE,IAAI,IAChB,CAAC;QAEH,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,4BAAa,CAAC,IAAI,CAAC;QAEzE,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE;YAClB,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,IAAI;YAChB,OAAO;YACP,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM;YACtD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,IAAI,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,cAAc,GAAG,MAAM,IAAA,YAAM,EAAC,IAAI,EAAE;gBACtC,OAAO;gBACP,IAAI;gBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,yBAAgB,EAAC,GAAG,YAAY,CAAC,CAAC;;CAC1C;AA1DD,wBA0DC;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.ts"],"names":[],"mappings":";;;;AAAA,uCAOoB;AAEpB,4DAA8D;AAC9D,8CAAwD;AACxD,mDAA+C;AAC/C,2DAAyD;AACzD,+BAAsD;AAEtD,0DAAwE;AACxE,mCAA4B;AAE5B,SAAsB,MAAM,CAAC,IAAU,EAAE,OAAe;;;QACtD,MAAM,2BAA2B,GAAG,IAAA,8CAA8B,EAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,IAAA,WAAE,EAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;YAC3E,MAAM,IAAI,KAAK,CAAC,IAAA,qBAAY,EAAA,2FAA2F,2BAA2B,CAAC,OAAO;sGACxD,CAAC,CAAC;SACrG;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/C,MAAM,IAAI,KAAK,CACb,2EAA2E,OAAO,CAAC,IAAI,GAAG,CAC3F,CAAC;SACH;QAED,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,+BAAsB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAA,2BAAqB,EAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAoB,EAAC,IAAI,kCACjD,OAAO,KACV,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,KAAK,EACvC,OAAO,EAAE,IAAI,EACb,IAAI,EACJ,UAAU,EAAE,IAAI,IAChB,CAAC;QAEH,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,4BAAa,CAAC,IAAI,CAAC;QAEzE,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE;YAClB,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,IAAI;YAChB,OAAO;YACP,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM;YACtD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,cAAc,GAAG,MAAM,IAAA,YAAM,EAAC,IAAI,EAAE;gBACtC,OAAO;gBACP,IAAI;gBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,yBAAgB,EAAC,GAAG,YAAY,CAAC,CAAC;;CAC1C;AA3DD,wBA2DC;AAED,kBAAe,MAAM,CAAC"}
@@ -7,7 +7,7 @@
7
7
  "type": "object",
8
8
  "examples": [
9
9
  {
10
- "command": "nx g @nrwl/angular:remote appName --host=host --port=4201",
10
+ "command": "nx g @nx/angular:remote appName --host=host --port=4201",
11
11
  "description": "Create an Angular app with configuration in place for Module Federation. If host is provided, attach this remote app to host app's configuration."
12
12
  }
13
13
  ],
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateOptions = void 0;
4
- const path_1 = require("../../utils/path");
5
4
  const validations_1 = require("../../utils/validations");
6
5
  function validateOptions(tree, options) {
7
6
  (0, validations_1.validateProject)(tree, options.project);
8
- (0, path_1.checkPathUnderProjectRoot)(tree, options.project, options.path);
7
+ (0, validations_1.validatePathIsUnderProjectRoot)(tree, options.project, options.path);
9
8
  }
10
9
  exports.validateOptions = validateOptions;
11
10
  //# sourceMappingURL=validate-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAC7D,yDAA0D;AAG1D,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,gCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAHD,0CAGC"}
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,yDAGiC;AAGjC,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,4CAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAHD,0CAGC"}
@@ -6,7 +6,7 @@
6
6
  "type": "object",
7
7
  "examples": [
8
8
  {
9
- "command": "nx g @nrwl/angular:scam --project=my-lib my-sample",
9
+ "command": "nx g @nx/angular:scam --project=my-lib my-sample",
10
10
  "description": "Generate a `MySampleComponent` component in the `my-lib` library."
11
11
  }
12
12
  ],
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateOptions = void 0;
4
- const path_1 = require("../../utils/path");
5
4
  const validations_1 = require("../../utils/validations");
6
5
  function validateOptions(tree, options) {
7
6
  (0, validations_1.validateProject)(tree, options.project);
8
- (0, path_1.checkPathUnderProjectRoot)(tree, options.project, options.path);
7
+ (0, validations_1.validatePathIsUnderProjectRoot)(tree, options.project, options.path);
9
8
  }
10
9
  exports.validateOptions = validateOptions;
11
10
  //# sourceMappingURL=validate-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam-directive/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAC7D,yDAA0D;AAG1D,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,gCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAHD,0CAGC"}
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam-directive/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,yDAGiC;AAGjC,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,4CAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAHD,0CAGC"}
@@ -6,7 +6,7 @@
6
6
  "type": "object",
7
7
  "examples": [
8
8
  {
9
- "command": "nx g @nrwl/angular:scam-directive --project=my-lib --flat=false my-sample",
9
+ "command": "nx g @nx/angular:scam-directive --project=my-lib --flat=false my-sample",
10
10
  "description": "Generate a `MySampleDirective` directive in a `my-sample` folder in the `my-lib` library"
11
11
  }
12
12
  ],
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateOptions = void 0;
4
- const path_1 = require("../../utils/path");
5
4
  const validations_1 = require("../../utils/validations");
6
5
  function validateOptions(tree, options) {
7
6
  (0, validations_1.validateProject)(tree, options.project);
8
- (0, path_1.checkPathUnderProjectRoot)(tree, options.project, options.path);
7
+ (0, validations_1.validatePathIsUnderProjectRoot)(tree, options.project, options.path);
9
8
  }
10
9
  exports.validateOptions = validateOptions;
11
10
  //# sourceMappingURL=validate-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam-pipe/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAC7D,yDAA0D;AAG1D,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,gCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAHD,0CAGC"}
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/scam-pipe/lib/validate-options.ts"],"names":[],"mappings":";;;AACA,yDAGiC;AAGjC,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAA,6BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,4CAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAHD,0CAGC"}
@@ -6,7 +6,7 @@
6
6
  "type": "object",
7
7
  "examples": [
8
8
  {
9
- "command": "nx g @nrwl/angular:scam-pipe --project=my-lib --flat=false my-transformation",
9
+ "command": "nx g @nx/angular:scam-pipe --project=my-lib --flat=false my-transformation",
10
10
  "description": "Generates a `MyTransformationPipe` in a `my-transformation` folder in the `my-lib` project"
11
11
  }
12
12
  ],
@@ -4,9 +4,6 @@ exports.addRemoteEntry = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
6
6
  function addRemoteEntry(tree, { appName, routing, prefix, standalone }, appRoot) {
7
- var _a, _b;
8
- prefix =
9
- (_b = prefix !== null && prefix !== void 0 ? prefix : (_a = (0, devkit_1.readProjectConfiguration)(tree, appName)) === null || _a === void 0 ? void 0 : _a.prefix) !== null && _b !== void 0 ? _b : (0, devkit_1.readNxJson)(tree).npmScope;
10
7
  (0, devkit_1.generateFiles)(tree, standalone
11
8
  ? (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-entry-component-files')
12
9
  : (0, devkit_1.joinPathFragments)(__dirname, '../files/entry-module-files'), `${appRoot}/src/app/remote-entry`, {
@@ -1 +1 @@
1
- {"version":3,"file":"add-remote-entry.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/add-remote-entry.ts"],"names":[],"mappings":";;;AACA,uCAKoB;AACpB,sEAAgE;AAIhE,SAAgB,cAAc,CAC5B,IAAU,EACV,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAU,EAChD,OAAe;;IAEf,MAAM;QACJ,MAAA,MAAM,aAAN,MAAM,cAAN,MAAM,GACN,MAAC,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAiC,0CACpE,MAAM,mCACV,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC5B,IAAA,sBAAa,EACX,IAAI,EACJ,UAAU;QACR,CAAC,CAAC,IAAA,0BAAiB,EACf,SAAS,EACT,2CAA2C,CAC5C;QACH,CAAC,CAAC,IAAA,0BAAiB,EAAC,SAAS,EAAE,6BAA6B,CAAC,EAC/D,GAAG,OAAO,uBAAuB,EACjC;QACE,IAAI,EAAE,EAAE;QACR,OAAO;QACP,OAAO;QACP,MAAM;KACP,CACF,CAAC;IAEF,IAAI,UAAU,IAAI,OAAO,EAAE;QACzB,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,iGAAiG,CAClG,CAAC;KACH;SAAM;QACL,IAAI,OAAO,EAAE;YACX,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,sGAAsG,CACvG,CAAC;SACH;QAED,IAAI,CAAC,KAAK,CACR,GAAG,OAAO,wBAAwB,EAClC;;;;;;EAMJ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,CACrD,CAAC;KACH;AACH,CAAC;AArDD,wCAqDC"}
1
+ {"version":3,"file":"add-remote-entry.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/add-remote-entry.ts"],"names":[],"mappings":";;;AACA,uCAA8D;AAC9D,sEAAgE;AAGhE,SAAgB,cAAc,CAC5B,IAAU,EACV,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAU,EAChD,OAAe;IAEf,IAAA,sBAAa,EACX,IAAI,EACJ,UAAU;QACR,CAAC,CAAC,IAAA,0BAAiB,EACf,SAAS,EACT,2CAA2C,CAC5C;QACH,CAAC,CAAC,IAAA,0BAAiB,EAAC,SAAS,EAAE,6BAA6B,CAAC,EAC/D,GAAG,OAAO,uBAAuB,EACjC;QACE,IAAI,EAAE,EAAE;QACR,OAAO;QACP,OAAO;QACP,MAAM;KACP,CACF,CAAC;IAEF,IAAI,UAAU,IAAI,OAAO,EAAE;QACzB,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,iGAAiG,CAClG,CAAC;KACH;SAAM;QACL,IAAI,OAAO,EAAE;YACX,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,sGAAsG,CACvG,CAAC;SACH;QAED,IAAI,CAAC,KAAK,CACR,GAAG,OAAO,wBAAwB,EAClC;;;;;;EAMJ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,CACrD,CAAC;KACH;AACH,CAAC;AAhDD,wCAgDC"}