@mouryaamit/nx-polystack 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -2
  3. package/USER-MANUAL.md +1968 -0
  4. package/dist/bin/cli.d.ts +1 -0
  5. package/dist/bin/cli.js +92 -0
  6. package/dist/bin/cli.js.map +1 -0
  7. package/dist/executors.json +32 -0
  8. package/dist/generators.json +47 -0
  9. package/dist/migrations.json +87 -0
  10. package/dist/runtime/env-secret.cjs +736 -0
  11. package/dist/src/cli/args.d.ts +18 -0
  12. package/dist/src/cli/args.js +67 -0
  13. package/dist/src/cli/args.js.map +1 -0
  14. package/dist/src/cli/commands/app.d.ts +3 -0
  15. package/dist/src/cli/commands/app.js +108 -0
  16. package/dist/src/cli/commands/app.js.map +1 -0
  17. package/dist/src/cli/commands/build.d.ts +8 -0
  18. package/dist/src/cli/commands/build.js +132 -0
  19. package/dist/src/cli/commands/build.js.map +1 -0
  20. package/dist/src/cli/commands/csp.d.ts +19 -0
  21. package/dist/src/cli/commands/csp.js +238 -0
  22. package/dist/src/cli/commands/csp.js.map +1 -0
  23. package/dist/src/cli/commands/encryption.d.ts +4 -0
  24. package/dist/src/cli/commands/encryption.js +261 -0
  25. package/dist/src/cli/commands/encryption.js.map +1 -0
  26. package/dist/src/cli/commands/env.d.ts +2 -0
  27. package/dist/src/cli/commands/env.js +74 -0
  28. package/dist/src/cli/commands/env.js.map +1 -0
  29. package/dist/src/cli/commands/hardening.d.ts +2 -0
  30. package/dist/src/cli/commands/hardening.js +176 -0
  31. package/dist/src/cli/commands/hardening.js.map +1 -0
  32. package/dist/src/cli/commands/index.d.ts +3 -0
  33. package/dist/src/cli/commands/index.js +45 -0
  34. package/dist/src/cli/commands/index.js.map +1 -0
  35. package/dist/src/cli/commands/infra.d.ts +25 -0
  36. package/dist/src/cli/commands/infra.js +85 -0
  37. package/dist/src/cli/commands/infra.js.map +1 -0
  38. package/dist/src/cli/commands/internal-migrate.d.ts +3 -0
  39. package/dist/src/cli/commands/internal-migrate.js +65 -0
  40. package/dist/src/cli/commands/internal-migrate.js.map +1 -0
  41. package/dist/src/cli/commands/lib.d.ts +2 -0
  42. package/dist/src/cli/commands/lib.js +70 -0
  43. package/dist/src/cli/commands/lib.js.map +1 -0
  44. package/dist/src/cli/commands/llm.d.ts +2 -0
  45. package/dist/src/cli/commands/llm.js +46 -0
  46. package/dist/src/cli/commands/llm.js.map +1 -0
  47. package/dist/src/cli/commands/migrate.d.ts +2 -0
  48. package/dist/src/cli/commands/migrate.js +230 -0
  49. package/dist/src/cli/commands/migrate.js.map +1 -0
  50. package/dist/src/cli/commands/new.d.ts +6 -0
  51. package/dist/src/cli/commands/new.js +97 -0
  52. package/dist/src/cli/commands/new.js.map +1 -0
  53. package/dist/src/cli/commands/preset.d.ts +2 -0
  54. package/dist/src/cli/commands/preset.js +47 -0
  55. package/dist/src/cli/commands/preset.js.map +1 -0
  56. package/dist/src/cli/commands/release.d.ts +3 -0
  57. package/dist/src/cli/commands/release.js +83 -0
  58. package/dist/src/cli/commands/release.js.map +1 -0
  59. package/dist/src/cli/commands/shared.d.ts +3 -0
  60. package/dist/src/cli/commands/shared.js +55 -0
  61. package/dist/src/cli/commands/shared.js.map +1 -0
  62. package/dist/src/cli/commands/update.d.ts +11 -0
  63. package/dist/src/cli/commands/update.js +120 -0
  64. package/dist/src/cli/commands/update.js.map +1 -0
  65. package/dist/src/cli/context.d.ts +18 -0
  66. package/dist/src/cli/context.js +66 -0
  67. package/dist/src/cli/context.js.map +1 -0
  68. package/dist/src/cli/exec.d.ts +9 -0
  69. package/dist/src/cli/exec.js +34 -0
  70. package/dist/src/cli/exec.js.map +1 -0
  71. package/dist/src/cli/help.d.ts +1 -0
  72. package/dist/src/cli/help.js +291 -0
  73. package/dist/src/cli/help.js.map +1 -0
  74. package/dist/src/cli/install-source.d.ts +16 -0
  75. package/dist/src/cli/install-source.js +49 -0
  76. package/dist/src/cli/install-source.js.map +1 -0
  77. package/dist/src/cli/launcher.d.ts +32 -0
  78. package/dist/src/cli/launcher.js +168 -0
  79. package/dist/src/cli/launcher.js.map +1 -0
  80. package/dist/src/cli/migrations.d.ts +25 -0
  81. package/dist/src/cli/migrations.js +35 -0
  82. package/dist/src/cli/migrations.js.map +1 -0
  83. package/dist/src/cli/run-tree.d.ts +9 -0
  84. package/dist/src/cli/run-tree.js +32 -0
  85. package/dist/src/cli/run-tree.js.map +1 -0
  86. package/dist/src/cli/types.d.ts +18 -0
  87. package/dist/src/cli/types.js +12 -0
  88. package/dist/src/cli/types.js.map +1 -0
  89. package/dist/src/cli/update-plan.d.ts +15 -0
  90. package/dist/src/cli/update-plan.js +40 -0
  91. package/dist/src/cli/update-plan.js.map +1 -0
  92. package/dist/src/cli/versions.d.ts +26 -0
  93. package/dist/src/cli/versions.js +83 -0
  94. package/dist/src/cli/versions.js.map +1 -0
  95. package/dist/src/executors/build/executor.d.ts +19 -0
  96. package/dist/src/executors/build/executor.js +251 -0
  97. package/dist/src/executors/build/executor.js.map +1 -0
  98. package/dist/src/executors/build/schema.d.ts +42 -0
  99. package/dist/src/executors/build/schema.json +104 -0
  100. package/dist/src/executors/capacitor/executor.d.ts +8 -0
  101. package/dist/src/executors/capacitor/executor.js +45 -0
  102. package/dist/src/executors/capacitor/executor.js.map +1 -0
  103. package/dist/src/executors/capacitor/schema.d.ts +10 -0
  104. package/dist/src/executors/capacitor/schema.json +24 -0
  105. package/dist/src/executors/clean/executor.d.ts +19 -0
  106. package/dist/src/executors/clean/executor.js +134 -0
  107. package/dist/src/executors/clean/executor.js.map +1 -0
  108. package/dist/src/executors/clean/schema.d.ts +6 -0
  109. package/dist/src/executors/clean/schema.json +21 -0
  110. package/dist/src/executors/flutter-build/executor.d.ts +8 -0
  111. package/dist/src/executors/flutter-build/executor.js +70 -0
  112. package/dist/src/executors/flutter-build/executor.js.map +1 -0
  113. package/dist/src/executors/flutter-build/schema.d.ts +10 -0
  114. package/dist/src/executors/flutter-build/schema.json +44 -0
  115. package/dist/src/executors/flutter-export/executor.d.ts +8 -0
  116. package/dist/src/executors/flutter-export/executor.js +36 -0
  117. package/dist/src/executors/flutter-export/executor.js.map +1 -0
  118. package/dist/src/executors/flutter-export/schema.d.ts +6 -0
  119. package/dist/src/executors/flutter-export/schema.json +28 -0
  120. package/dist/src/generators/app/files/angular/.eslintrc.json__template__ +28 -0
  121. package/dist/src/generators/app/files/angular/csp-allowlist.json__template__ +1 -0
  122. package/dist/src/generators/app/files/angular/server/README.md__template__ +31 -0
  123. package/dist/src/generators/app/files/angular/src/app/app-routing.module.ts__template__ +10 -0
  124. package/dist/src/generators/app/files/angular/src/app/app.component.html__template__ +4 -0
  125. package/dist/src/generators/app/files/angular/src/app/app.component.scss__template__ +1 -0
  126. package/dist/src/generators/app/files/angular/src/app/app.component.ts__template__ +9 -0
  127. package/dist/src/generators/app/files/angular/src/app/app.module.ts__template__ +13 -0
  128. package/dist/src/generators/app/files/angular/src/index.html__template__ +12 -0
  129. package/dist/src/generators/app/files/angular/src/main.ts__template__ +16 -0
  130. package/dist/src/generators/app/files/angular/src/styles.scss__template__ +1 -0
  131. package/dist/src/generators/app/files/angular/tsconfig.app.json__template__ +10 -0
  132. package/dist/src/generators/app/files/angular/tsconfig.json__template__ +25 -0
  133. package/dist/src/generators/app/files/angular/tsconfig.spec.json__template__ +8 -0
  134. package/dist/src/generators/app/files/flutter/.gitignore__template__ +10 -0
  135. package/dist/src/generators/app/files/flutter/analysis_options.yaml__template__ +8 -0
  136. package/dist/src/generators/app/files/flutter/lib/main.dart__template__ +23 -0
  137. package/dist/src/generators/app/files/flutter/pubspec.yaml__template__ +26 -0
  138. package/dist/src/generators/app/files/flutter/server/nginx.conf__template__ +35 -0
  139. package/dist/src/generators/app/files/ionic/.gitignore__template__ +7 -0
  140. package/dist/src/generators/app/files/ionic/capacitor.config.ts__template__ +19 -0
  141. package/dist/src/generators/app/files/ionic/package.json__template__ +14 -0
  142. package/dist/src/generators/app/files/ionic/src/app/app.component.html__template__ +3 -0
  143. package/dist/src/generators/app/files/ionic/src/app/app.component.scss__template__ +0 -0
  144. package/dist/src/generators/app/files/ionic/src/app/app.module.ts__template__ +16 -0
  145. package/dist/src/generators/app/files/ionic/src/index.html__template__ +17 -0
  146. package/dist/src/generators/app/files/ionic/src/styles.scss__template__ +12 -0
  147. package/dist/src/generators/app/generator.d.ts +15 -0
  148. package/dist/src/generators/app/generator.js +363 -0
  149. package/dist/src/generators/app/generator.js.map +1 -0
  150. package/dist/src/generators/app/schema.d.ts +19 -0
  151. package/dist/src/generators/app/schema.json +77 -0
  152. package/dist/src/generators/env/generator.d.ts +3 -0
  153. package/dist/src/generators/env/generator.js +454 -0
  154. package/dist/src/generators/env/generator.js.map +1 -0
  155. package/dist/src/generators/env/schema.d.ts +18 -0
  156. package/dist/src/generators/env/schema.json +47 -0
  157. package/dist/src/generators/infra/files/ci/commitlint/commitlint.config.js__template__ +6 -0
  158. package/dist/src/generators/infra/files/ci/common/tools/config/allowed-cycles.json__template__ +1 -0
  159. package/dist/src/generators/infra/files/ci/common/tools/scripts/check-cycles.js__template__ +201 -0
  160. package/dist/src/generators/infra/files/ci/github-actions/.github/workflows/ci.yml__template__ +68 -0
  161. package/dist/src/generators/infra/files/ci/github-actions/.github/workflows/pr-title.yml__template__ +36 -0
  162. package/dist/src/generators/infra/files/ci/jenkins/Jenkinsfile__template__ +45 -0
  163. package/dist/src/generators/infra/files/docs/.github/ISSUE_TEMPLATE/bug.yml__template__ +39 -0
  164. package/dist/src/generators/infra/files/docs/.github/ISSUE_TEMPLATE/config.yml__template__ +1 -0
  165. package/dist/src/generators/infra/files/docs/.github/ISSUE_TEMPLATE/feature.yml__template__ +23 -0
  166. package/dist/src/generators/infra/files/docs/.github/PULL_REQUEST_TEMPLATE.md__template__ +23 -0
  167. package/dist/src/generators/infra/files/docs/CODE_OF_CONDUCT.md__template__ +18 -0
  168. package/dist/src/generators/infra/files/docs/CONTRIBUTING.md__template__ +61 -0
  169. package/dist/src/generators/infra/files/docs/SECURITY.md__template__ +25 -0
  170. package/dist/src/generators/infra/files/quality/.husky/pre-push__template__ +2 -0
  171. package/dist/src/generators/infra/files/quality/.secretlintignore__template__ +7 -0
  172. package/dist/src/generators/infra/files/quality/.secretlintrc.json__template__ +7 -0
  173. package/dist/src/generators/infra/files/quality/knip.json__template__ +9 -0
  174. package/dist/src/generators/infra/files/upgrades/.github/workflows/dependency-upgrade.yml__template__ +80 -0
  175. package/dist/src/generators/infra/generator.d.ts +60 -0
  176. package/dist/src/generators/infra/generator.js +356 -0
  177. package/dist/src/generators/infra/generator.js.map +1 -0
  178. package/dist/src/generators/infra/options.d.ts +28 -0
  179. package/dist/src/generators/infra/options.js +80 -0
  180. package/dist/src/generators/infra/options.js.map +1 -0
  181. package/dist/src/generators/infra/schema.d.ts +19 -0
  182. package/dist/src/generators/infra/schema.json +59 -0
  183. package/dist/src/generators/lib/angular-lib.d.ts +27 -0
  184. package/dist/src/generators/lib/angular-lib.js +85 -0
  185. package/dist/src/generators/lib/angular-lib.js.map +1 -0
  186. package/dist/src/generators/lib/files/angular/component/src/index.ts__template__ +2 -0
  187. package/dist/src/generators/lib/files/angular/component/src/lib/__fileName__/__fileName__.component.html__template__ +1 -0
  188. package/dist/src/generators/lib/files/angular/component/src/lib/__fileName__/__fileName__.component.scss__template__ +3 -0
  189. package/dist/src/generators/lib/files/angular/component/src/lib/__fileName__/__fileName__.component.ts__template__ +9 -0
  190. package/dist/src/generators/lib/files/angular/component/src/lib/__fileName__.module.ts__template__ +11 -0
  191. package/dist/src/generators/lib/files/angular/config/.eslintrc.json__template__ +32 -0
  192. package/dist/src/generators/lib/files/angular/config/tsconfig.json__template__ +22 -0
  193. package/dist/src/generators/lib/files/angular/config/tsconfig.lib.json__template__ +12 -0
  194. package/dist/src/generators/lib/files/assets/README.md__template__ +13 -0
  195. package/dist/src/generators/lib/files/design-tokens/README.md__template__ +90 -0
  196. package/dist/src/generators/lib/files/design-tokens/generated/dart/pubspec.yaml__template__ +11 -0
  197. package/dist/src/generators/lib/files/design-tokens/src/index.ts__template__ +1 -0
  198. package/dist/src/generators/lib/files/design-tokens/style-dictionary.config.js__template__ +41 -0
  199. package/dist/src/generators/lib/files/flutter/.gitignore__template__ +7 -0
  200. package/dist/src/generators/lib/files/flutter/analysis_options.yaml__template__ +6 -0
  201. package/dist/src/generators/lib/files/flutter/lib/__snakeName__.dart__template__ +1 -0
  202. package/dist/src/generators/lib/files/flutter/lib/src/__snakeName__.dart__template__ +6 -0
  203. package/dist/src/generators/lib/files/flutter/pubspec.yaml__template__ +18 -0
  204. package/dist/src/generators/lib/files/flutter/test/__snakeName___test.dart__template__ +8 -0
  205. package/dist/src/generators/lib/files/ionic/src/index.ts__template__ +2 -0
  206. package/dist/src/generators/lib/files/ionic/src/lib/__fileName__/__fileName__.page.html__template__ +9 -0
  207. package/dist/src/generators/lib/files/ionic/src/lib/__fileName__/__fileName__.page.scss__template__ +3 -0
  208. package/dist/src/generators/lib/files/ionic/src/lib/__fileName__/__fileName__.page.ts__template__ +9 -0
  209. package/dist/src/generators/lib/files/ionic/src/lib/__fileName__.module.ts__template__ +12 -0
  210. package/dist/src/generators/lib/files/pii/README.md__template__ +35 -0
  211. package/dist/src/generators/lib/files/pii/src/index.ts__template__ +5 -0
  212. package/dist/src/generators/lib/files/pii/src/lib/pii-mask.directive.ts__template__ +30 -0
  213. package/dist/src/generators/lib/files/pii/src/lib/pii-mask.module.ts__template__ +17 -0
  214. package/dist/src/generators/lib/files/pii/src/lib/pii-mask.options.ts__template__ +6 -0
  215. package/dist/src/generators/lib/files/pii/src/lib/pii-mask.pipe.ts__template__ +14 -0
  216. package/dist/src/generators/lib/files/pii/src/lib/pii-mask.ts__template__ +117 -0
  217. package/dist/src/generators/lib/files/session/README.md__template__ +39 -0
  218. package/dist/src/generators/lib/files/session/src/index.ts__template__ +5 -0
  219. package/dist/src/generators/lib/files/session/src/lib/session-clock.ts__template__ +113 -0
  220. package/dist/src/generators/lib/files/session/src/lib/session-timeout.config.ts__template__ +8 -0
  221. package/dist/src/generators/lib/files/session/src/lib/session-timeout.module.ts__template__ +23 -0
  222. package/dist/src/generators/lib/files/session/src/lib/session-timeout.service.ts__template__ +289 -0
  223. package/dist/src/generators/lib/files/session/src/lib/session-warning/session-warning.component.html__template__ +21 -0
  224. package/dist/src/generators/lib/files/session/src/lib/session-warning/session-warning.component.scss__template__ +40 -0
  225. package/dist/src/generators/lib/files/session/src/lib/session-warning/session-warning.component.ts__template__ +105 -0
  226. package/dist/src/generators/lib/files/state/ngrx/README.md__template__ +33 -0
  227. package/dist/src/generators/lib/files/state/ngrx/src/index.ts__template__ +6 -0
  228. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__-state.module.ts__template__ +18 -0
  229. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__.actions.ts__template__ +12 -0
  230. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__.effects.ts__template__ +26 -0
  231. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__.models.ts__template__ +4 -0
  232. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__.reducer.ts__template__ +33 -0
  233. package/dist/src/generators/lib/files/state/ngrx/src/lib/__fileName__.selectors.ts__template__ +14 -0
  234. package/dist/src/generators/lib/files/state/simple-service/README.md__template__ +20 -0
  235. package/dist/src/generators/lib/files/state/simple-service/src/index.ts__template__ +2 -0
  236. package/dist/src/generators/lib/files/state/simple-service/src/lib/__fileName__.store.ts__template__ +58 -0
  237. package/dist/src/generators/lib/files/state/simple-service/src/lib/store.ts__template__ +34 -0
  238. package/dist/src/generators/lib/files/styles/README.md__template__ +39 -0
  239. package/dist/src/generators/lib/files/styles/src/_index.scss__template__ +3 -0
  240. package/dist/src/generators/lib/files/styles/src/mixins/_index.scss__template__ +13 -0
  241. package/dist/src/generators/lib/files/styles/src/themes/_index.scss__template__ +20 -0
  242. package/dist/src/generators/lib/files/styles/src/tokens/_index.scss__template__ +27 -0
  243. package/dist/src/generators/lib/files/ts/config/.eslintrc.json__template__ +10 -0
  244. package/dist/src/generators/lib/files/ts/config/tsconfig.json__template__ +14 -0
  245. package/dist/src/generators/lib/files/ts/config/tsconfig.lib.json__template__ +10 -0
  246. package/dist/src/generators/lib/files/ts/sample/src/index.ts__template__ +1 -0
  247. package/dist/src/generators/lib/files/ts/sample/src/lib/__fileName__.ts__template__ +4 -0
  248. package/dist/src/generators/lib/generator.d.ts +3 -0
  249. package/dist/src/generators/lib/generator.js +53 -0
  250. package/dist/src/generators/lib/generator.js.map +1 -0
  251. package/dist/src/generators/lib/lib-utils.d.ts +72 -0
  252. package/dist/src/generators/lib/lib-utils.js +170 -0
  253. package/dist/src/generators/lib/lib-utils.js.map +1 -0
  254. package/dist/src/generators/lib/schema.d.ts +31 -0
  255. package/dist/src/generators/lib/schema.json +63 -0
  256. package/dist/src/generators/lib/style-dictionary.d.ts +36 -0
  257. package/dist/src/generators/lib/style-dictionary.js +183 -0
  258. package/dist/src/generators/lib/style-dictionary.js.map +1 -0
  259. package/dist/src/generators/lib/types/angular.d.ts +2 -0
  260. package/dist/src/generators/lib/types/angular.js +20 -0
  261. package/dist/src/generators/lib/types/angular.js.map +1 -0
  262. package/dist/src/generators/lib/types/assets.d.ts +2 -0
  263. package/dist/src/generators/lib/types/assets.js +20 -0
  264. package/dist/src/generators/lib/types/assets.js.map +1 -0
  265. package/dist/src/generators/lib/types/design-tokens.d.ts +10 -0
  266. package/dist/src/generators/lib/types/design-tokens.js +78 -0
  267. package/dist/src/generators/lib/types/design-tokens.js.map +1 -0
  268. package/dist/src/generators/lib/types/flutter.d.ts +2 -0
  269. package/dist/src/generators/lib/types/flutter.js +28 -0
  270. package/dist/src/generators/lib/types/flutter.js.map +1 -0
  271. package/dist/src/generators/lib/types/index.d.ts +8 -0
  272. package/dist/src/generators/lib/types/index.js +31 -0
  273. package/dist/src/generators/lib/types/index.js.map +1 -0
  274. package/dist/src/generators/lib/types/ionic.d.ts +4 -0
  275. package/dist/src/generators/lib/types/ionic.js +35 -0
  276. package/dist/src/generators/lib/types/ionic.js.map +1 -0
  277. package/dist/src/generators/lib/types/pii.d.ts +3 -0
  278. package/dist/src/generators/lib/types/pii.js +19 -0
  279. package/dist/src/generators/lib/types/pii.js.map +1 -0
  280. package/dist/src/generators/lib/types/session.d.ts +3 -0
  281. package/dist/src/generators/lib/types/session.js +21 -0
  282. package/dist/src/generators/lib/types/session.js.map +1 -0
  283. package/dist/src/generators/lib/types/state.d.ts +5 -0
  284. package/dist/src/generators/lib/types/state.js +48 -0
  285. package/dist/src/generators/lib/types/state.js.map +1 -0
  286. package/dist/src/generators/lib/types/styles.d.ts +2 -0
  287. package/dist/src/generators/lib/types/styles.js +19 -0
  288. package/dist/src/generators/lib/types/styles.js.map +1 -0
  289. package/dist/src/generators/lib/types/ts.d.ts +5 -0
  290. package/dist/src/generators/lib/types/ts.js +30 -0
  291. package/dist/src/generators/lib/types/ts.js.map +1 -0
  292. package/dist/src/generators/llm/generator.d.ts +8 -0
  293. package/dist/src/generators/llm/generator.js +13 -0
  294. package/dist/src/generators/llm/generator.js.map +1 -0
  295. package/dist/src/generators/llm/schema.d.ts +4 -0
  296. package/dist/src/generators/llm/schema.json +16 -0
  297. package/dist/src/generators/migrate/adapters/angular-cli.d.ts +82 -0
  298. package/dist/src/generators/migrate/adapters/angular-cli.js +439 -0
  299. package/dist/src/generators/migrate/adapters/angular-cli.js.map +1 -0
  300. package/dist/src/generators/migrate/adapters/angular-workspace.d.ts +28 -0
  301. package/dist/src/generators/migrate/adapters/angular-workspace.js +397 -0
  302. package/dist/src/generators/migrate/adapters/angular-workspace.js.map +1 -0
  303. package/dist/src/generators/migrate/adapters/external.d.ts +23 -0
  304. package/dist/src/generators/migrate/adapters/external.js +230 -0
  305. package/dist/src/generators/migrate/adapters/external.js.map +1 -0
  306. package/dist/src/generators/migrate/adapters/flutter.d.ts +26 -0
  307. package/dist/src/generators/migrate/adapters/flutter.js +176 -0
  308. package/dist/src/generators/migrate/adapters/flutter.js.map +1 -0
  309. package/dist/src/generators/migrate/adapters/index.d.ts +34 -0
  310. package/dist/src/generators/migrate/adapters/index.js +136 -0
  311. package/dist/src/generators/migrate/adapters/index.js.map +1 -0
  312. package/dist/src/generators/migrate/adapters/ionic.d.ts +17 -0
  313. package/dist/src/generators/migrate/adapters/ionic.js +137 -0
  314. package/dist/src/generators/migrate/adapters/ionic.js.map +1 -0
  315. package/dist/src/generators/migrate/adapters/npm-workspaces.d.ts +23 -0
  316. package/dist/src/generators/migrate/adapters/npm-workspaces.js +734 -0
  317. package/dist/src/generators/migrate/adapters/npm-workspaces.js.map +1 -0
  318. package/dist/src/generators/migrate/adapters/nx-workspace.d.ts +47 -0
  319. package/dist/src/generators/migrate/adapters/nx-workspace.js +1037 -0
  320. package/dist/src/generators/migrate/adapters/nx-workspace.js.map +1 -0
  321. package/dist/src/generators/migrate/adapters/scaffold.d.ts +2 -0
  322. package/dist/src/generators/migrate/adapters/scaffold.js +200 -0
  323. package/dist/src/generators/migrate/adapters/scaffold.js.map +1 -0
  324. package/dist/src/generators/migrate/adapters/types.d.ts +184 -0
  325. package/dist/src/generators/migrate/adapters/types.js +63 -0
  326. package/dist/src/generators/migrate/adapters/types.js.map +1 -0
  327. package/dist/src/generators/migrate/angular-code-scan.d.ts +6 -0
  328. package/dist/src/generators/migrate/angular-code-scan.js +150 -0
  329. package/dist/src/generators/migrate/angular-code-scan.js.map +1 -0
  330. package/dist/src/generators/migrate/angular-config-files.d.ts +49 -0
  331. package/dist/src/generators/migrate/angular-config-files.js +158 -0
  332. package/dist/src/generators/migrate/angular-config-files.js.map +1 -0
  333. package/dist/src/generators/migrate/angular-project-json.d.ts +73 -0
  334. package/dist/src/generators/migrate/angular-project-json.js +352 -0
  335. package/dist/src/generators/migrate/angular-project-json.js.map +1 -0
  336. package/dist/src/generators/migrate/angular-workspace/aliases.d.ts +30 -0
  337. package/dist/src/generators/migrate/angular-workspace/aliases.js +73 -0
  338. package/dist/src/generators/migrate/angular-workspace/aliases.js.map +1 -0
  339. package/dist/src/generators/migrate/angular-workspace/eslint.d.ts +8 -0
  340. package/dist/src/generators/migrate/angular-workspace/eslint.js +38 -0
  341. package/dist/src/generators/migrate/angular-workspace/eslint.js.map +1 -0
  342. package/dist/src/generators/migrate/angular-workspace/ng-package.d.ts +4 -0
  343. package/dist/src/generators/migrate/angular-workspace/ng-package.js +16 -0
  344. package/dist/src/generators/migrate/angular-workspace/ng-package.js.map +1 -0
  345. package/dist/src/generators/migrate/angular-workspace/source.d.ts +15 -0
  346. package/dist/src/generators/migrate/angular-workspace/source.js +108 -0
  347. package/dist/src/generators/migrate/angular-workspace/source.js.map +1 -0
  348. package/dist/src/generators/migrate/angular17.d.ts +45 -0
  349. package/dist/src/generators/migrate/angular17.js +495 -0
  350. package/dist/src/generators/migrate/angular17.js.map +1 -0
  351. package/dist/src/generators/migrate/batch.d.ts +29 -0
  352. package/dist/src/generators/migrate/batch.js +211 -0
  353. package/dist/src/generators/migrate/batch.js.map +1 -0
  354. package/dist/src/generators/migrate/copy.d.ts +60 -0
  355. package/dist/src/generators/migrate/copy.js +224 -0
  356. package/dist/src/generators/migrate/copy.js.map +1 -0
  357. package/dist/src/generators/migrate/dependencies.d.ts +38 -0
  358. package/dist/src/generators/migrate/dependencies.js +196 -0
  359. package/dist/src/generators/migrate/dependencies.js.map +1 -0
  360. package/dist/src/generators/migrate/generator.d.ts +9 -0
  361. package/dist/src/generators/migrate/generator.js +347 -0
  362. package/dist/src/generators/migrate/generator.js.map +1 -0
  363. package/dist/src/generators/migrate/imports/rewrite.d.ts +46 -0
  364. package/dist/src/generators/migrate/imports/rewrite.js +382 -0
  365. package/dist/src/generators/migrate/imports/rewrite.js.map +1 -0
  366. package/dist/src/generators/migrate/ionic/capacitor-config.d.ts +24 -0
  367. package/dist/src/generators/migrate/ionic/capacitor-config.js +113 -0
  368. package/dist/src/generators/migrate/ionic/capacitor-config.js.map +1 -0
  369. package/dist/src/generators/migrate/ionic/packages.d.ts +34 -0
  370. package/dist/src/generators/migrate/ionic/packages.js +92 -0
  371. package/dist/src/generators/migrate/ionic/packages.js.map +1 -0
  372. package/dist/src/generators/migrate/ionic/shape.d.ts +32 -0
  373. package/dist/src/generators/migrate/ionic/shape.js +221 -0
  374. package/dist/src/generators/migrate/ionic/shape.js.map +1 -0
  375. package/dist/src/generators/migrate/ionic/skip.d.ts +3 -0
  376. package/dist/src/generators/migrate/ionic/skip.js +25 -0
  377. package/dist/src/generators/migrate/ionic/skip.js.map +1 -0
  378. package/dist/src/generators/migrate/names.d.ts +3 -0
  379. package/dist/src/generators/migrate/names.js +21 -0
  380. package/dist/src/generators/migrate/names.js.map +1 -0
  381. package/dist/src/generators/migrate/npm-deps.d.ts +28 -0
  382. package/dist/src/generators/migrate/npm-deps.js +63 -0
  383. package/dist/src/generators/migrate/npm-deps.js.map +1 -0
  384. package/dist/src/generators/migrate/npm-workspaces/pnpm-yaml.d.ts +10 -0
  385. package/dist/src/generators/migrate/npm-workspaces/pnpm-yaml.js +246 -0
  386. package/dist/src/generators/migrate/npm-workspaces/pnpm-yaml.js.map +1 -0
  387. package/dist/src/generators/migrate/npm-workspaces/source.d.ts +46 -0
  388. package/dist/src/generators/migrate/npm-workspaces/source.js +253 -0
  389. package/dist/src/generators/migrate/npm-workspaces/source.js.map +1 -0
  390. package/dist/src/generators/migrate/nx/build-scripts.d.ts +22 -0
  391. package/dist/src/generators/migrate/nx/build-scripts.js +147 -0
  392. package/dist/src/generators/migrate/nx/build-scripts.js.map +1 -0
  393. package/dist/src/generators/migrate/nx/detect.d.ts +3 -0
  394. package/dist/src/generators/migrate/nx/detect.js +43 -0
  395. package/dist/src/generators/migrate/nx/detect.js.map +1 -0
  396. package/dist/src/generators/migrate/nx/env-encryption.d.ts +35 -0
  397. package/dist/src/generators/migrate/nx/env-encryption.js +423 -0
  398. package/dist/src/generators/migrate/nx/env-encryption.js.map +1 -0
  399. package/dist/src/generators/migrate/nx/rewrite.d.ts +27 -0
  400. package/dist/src/generators/migrate/nx/rewrite.js +223 -0
  401. package/dist/src/generators/migrate/nx/rewrite.js.map +1 -0
  402. package/dist/src/generators/migrate/nx/selection.d.ts +25 -0
  403. package/dist/src/generators/migrate/nx/selection.js +173 -0
  404. package/dist/src/generators/migrate/nx/selection.js.map +1 -0
  405. package/dist/src/generators/migrate/nx/shared-folders.d.ts +58 -0
  406. package/dist/src/generators/migrate/nx/shared-folders.js +239 -0
  407. package/dist/src/generators/migrate/nx/shared-folders.js.map +1 -0
  408. package/dist/src/generators/migrate/nx/workspace-source.d.ts +58 -0
  409. package/dist/src/generators/migrate/nx/workspace-source.js +275 -0
  410. package/dist/src/generators/migrate/nx/workspace-source.js.map +1 -0
  411. package/dist/src/generators/migrate/pnpm.d.ts +42 -0
  412. package/dist/src/generators/migrate/pnpm.js +132 -0
  413. package/dist/src/generators/migrate/pnpm.js.map +1 -0
  414. package/dist/src/generators/migrate/report.d.ts +21 -0
  415. package/dist/src/generators/migrate/report.js +243 -0
  416. package/dist/src/generators/migrate/report.js.map +1 -0
  417. package/dist/src/generators/migrate/rollback/manifest.d.ts +84 -0
  418. package/dist/src/generators/migrate/rollback/manifest.js +162 -0
  419. package/dist/src/generators/migrate/rollback/manifest.js.map +1 -0
  420. package/dist/src/generators/migrate/rollback/recording-tree.d.ts +19 -0
  421. package/dist/src/generators/migrate/rollback/recording-tree.js +87 -0
  422. package/dist/src/generators/migrate/rollback/recording-tree.js.map +1 -0
  423. package/dist/src/generators/migrate/rollback/rollback.d.ts +29 -0
  424. package/dist/src/generators/migrate/rollback/rollback.js +271 -0
  425. package/dist/src/generators/migrate/rollback/rollback.js.map +1 -0
  426. package/dist/src/generators/migrate/schema.d.ts +41 -0
  427. package/dist/src/generators/migrate/schema.json +85 -0
  428. package/dist/src/generators/migrate/source.d.ts +26 -0
  429. package/dist/src/generators/migrate/source.js +70 -0
  430. package/dist/src/generators/migrate/source.js.map +1 -0
  431. package/dist/src/generators/preset/files/root/.editorconfig__template__ +15 -0
  432. package/dist/src/generators/preset/files/root/.eslintignore__template__ +2 -0
  433. package/dist/src/generators/preset/files/root/.eslintrc.json__template__ +38 -0
  434. package/dist/src/generators/preset/files/root/.gitattributes__template__ +12 -0
  435. package/dist/src/generators/preset/files/root/.gitignore__template__ +9 -0
  436. package/dist/src/generators/preset/files/root/.husky/commit-msg__template__ +1 -0
  437. package/dist/src/generators/preset/files/root/.husky/pre-commit__template__ +1 -0
  438. package/dist/src/generators/preset/files/root/.npmrc__template__ +4 -0
  439. package/dist/src/generators/preset/files/root/.nvmrc__template__ +1 -0
  440. package/dist/src/generators/preset/files/root/.prettierignore__template__ +6 -0
  441. package/dist/src/generators/preset/files/root/.prettierrc__template__ +7 -0
  442. package/dist/src/generators/preset/files/root/commitlint.config.js__template__ +6 -0
  443. package/dist/src/generators/preset/files/root/nx.json__template__ +30 -0
  444. package/dist/src/generators/preset/files/root/package.json__template__ +34 -0
  445. package/dist/src/generators/preset/files/root/tools/config/sri-cdn-allowlist.json__template__ +1 -0
  446. package/dist/src/generators/preset/files/root/tsconfig.base.json__template__ +18 -0
  447. package/dist/src/generators/preset/generator.d.ts +11 -0
  448. package/dist/src/generators/preset/generator.js +91 -0
  449. package/dist/src/generators/preset/generator.js.map +1 -0
  450. package/dist/src/generators/preset/schema.d.ts +20 -0
  451. package/dist/src/generators/preset/schema.json +86 -0
  452. package/dist/src/generators/shared-libs/generator.d.ts +4 -0
  453. package/dist/src/generators/shared-libs/generator.js +60 -0
  454. package/dist/src/generators/shared-libs/generator.js.map +1 -0
  455. package/dist/src/generators/shared-libs/schema.d.ts +6 -0
  456. package/dist/src/generators/shared-libs/schema.json +21 -0
  457. package/dist/src/index.d.ts +16 -0
  458. package/dist/src/index.js +20 -0
  459. package/dist/src/index.js.map +1 -0
  460. package/dist/src/lib/csp/allowlist.d.ts +64 -0
  461. package/dist/src/lib/csp/allowlist.js +126 -0
  462. package/dist/src/lib/csp/allowlist.js.map +1 -0
  463. package/dist/src/lib/csp/import.d.ts +52 -0
  464. package/dist/src/lib/csp/import.js +291 -0
  465. package/dist/src/lib/csp/import.js.map +1 -0
  466. package/dist/src/lib/csp/render.d.ts +19 -0
  467. package/dist/src/lib/csp/render.js +116 -0
  468. package/dist/src/lib/csp/render.js.map +1 -0
  469. package/dist/src/lib/env/derive.d.ts +38 -0
  470. package/dist/src/lib/env/derive.js +115 -0
  471. package/dist/src/lib/env/derive.js.map +1 -0
  472. package/dist/src/lib/env-encryption/backup.d.ts +40 -0
  473. package/dist/src/lib/env-encryption/backup.js +234 -0
  474. package/dist/src/lib/env-encryption/backup.js.map +1 -0
  475. package/dist/src/lib/env-encryption/config.d.ts +50 -0
  476. package/dist/src/lib/env-encryption/config.js +173 -0
  477. package/dist/src/lib/env-encryption/config.js.map +1 -0
  478. package/dist/src/lib/env-encryption/domains.d.ts +9 -0
  479. package/dist/src/lib/env-encryption/domains.js +52 -0
  480. package/dist/src/lib/env-encryption/domains.js.map +1 -0
  481. package/dist/src/lib/env-encryption/encrypt.d.ts +48 -0
  482. package/dist/src/lib/env-encryption/encrypt.js +407 -0
  483. package/dist/src/lib/env-encryption/encrypt.js.map +1 -0
  484. package/dist/src/lib/env-encryption/env-file.d.ts +72 -0
  485. package/dist/src/lib/env-encryption/env-file.js +395 -0
  486. package/dist/src/lib/env-encryption/env-file.js.map +1 -0
  487. package/dist/src/lib/env-encryption/gcm.d.ts +51 -0
  488. package/dist/src/lib/env-encryption/gcm.js +76 -0
  489. package/dist/src/lib/env-encryption/gcm.js.map +1 -0
  490. package/dist/src/lib/env-encryption/key-material.d.ts +53 -0
  491. package/dist/src/lib/env-encryption/key-material.js +148 -0
  492. package/dist/src/lib/env-encryption/key-material.js.map +1 -0
  493. package/dist/src/lib/env-encryption/placeholders.d.ts +15 -0
  494. package/dist/src/lib/env-encryption/placeholders.js +93 -0
  495. package/dist/src/lib/env-encryption/placeholders.js.map +1 -0
  496. package/dist/src/lib/env-encryption/prepare.d.ts +43 -0
  497. package/dist/src/lib/env-encryption/prepare.js +245 -0
  498. package/dist/src/lib/env-encryption/prepare.js.map +1 -0
  499. package/dist/src/lib/env-encryption/sensitive.d.ts +2 -0
  500. package/dist/src/lib/env-encryption/sensitive.js +180 -0
  501. package/dist/src/lib/env-encryption/sensitive.js.map +1 -0
  502. package/dist/src/lib/env-encryption/stamp.d.ts +2 -0
  503. package/dist/src/lib/env-encryption/stamp.js +52 -0
  504. package/dist/src/lib/env-encryption/stamp.js.map +1 -0
  505. package/dist/src/lib/env-encryption/switch-gcm.d.ts +43 -0
  506. package/dist/src/lib/env-encryption/switch-gcm.js +371 -0
  507. package/dist/src/lib/env-encryption/switch-gcm.js.map +1 -0
  508. package/dist/src/lib/env-encryption/workspace.d.ts +10 -0
  509. package/dist/src/lib/env-encryption/workspace.js +48 -0
  510. package/dist/src/lib/env-encryption/workspace.js.map +1 -0
  511. package/dist/src/lib/hardening/files.d.ts +17 -0
  512. package/dist/src/lib/hardening/files.js +43 -0
  513. package/dist/src/lib/hardening/files.js.map +1 -0
  514. package/dist/src/lib/hardening/integrity.d.ts +24 -0
  515. package/dist/src/lib/hardening/integrity.js +112 -0
  516. package/dist/src/lib/hardening/integrity.js.map +1 -0
  517. package/dist/src/lib/hardening/leak-check.d.ts +15 -0
  518. package/dist/src/lib/hardening/leak-check.js +100 -0
  519. package/dist/src/lib/hardening/leak-check.js.map +1 -0
  520. package/dist/src/lib/hardening/ngsw.d.ts +7 -0
  521. package/dist/src/lib/hardening/ngsw.js +55 -0
  522. package/dist/src/lib/hardening/ngsw.js.map +1 -0
  523. package/dist/src/lib/hardening/obfuscate.d.ts +36 -0
  524. package/dist/src/lib/hardening/obfuscate.js +153 -0
  525. package/dist/src/lib/hardening/obfuscate.js.map +1 -0
  526. package/dist/src/lib/hardening/options.d.ts +36 -0
  527. package/dist/src/lib/hardening/options.js +143 -0
  528. package/dist/src/lib/hardening/options.js.map +1 -0
  529. package/dist/src/lib/hardening/source-maps.d.ts +7 -0
  530. package/dist/src/lib/hardening/source-maps.js +37 -0
  531. package/dist/src/lib/hardening/source-maps.js.map +1 -0
  532. package/dist/src/lib/hardening/strip.d.ts +55 -0
  533. package/dist/src/lib/hardening/strip.js +178 -0
  534. package/dist/src/lib/hardening/strip.js.map +1 -0
  535. package/dist/src/lib/helpers/encrypt-env.d.ts +13 -0
  536. package/dist/src/lib/helpers/encrypt-env.js +33 -0
  537. package/dist/src/lib/helpers/encrypt-env.js.map +1 -0
  538. package/dist/src/lib/helpers/inject-meta.d.ts +14 -0
  539. package/dist/src/lib/helpers/inject-meta.js +49 -0
  540. package/dist/src/lib/helpers/inject-meta.js.map +1 -0
  541. package/dist/src/lib/helpers/inject-nonce.d.ts +7 -0
  542. package/dist/src/lib/helpers/inject-nonce.js +59 -0
  543. package/dist/src/lib/helpers/inject-nonce.js.map +1 -0
  544. package/dist/src/lib/helpers/inject-sri.d.ts +11 -0
  545. package/dist/src/lib/helpers/inject-sri.js +92 -0
  546. package/dist/src/lib/helpers/inject-sri.js.map +1 -0
  547. package/dist/src/lib/helpers/strip-exif.d.ts +9 -0
  548. package/dist/src/lib/helpers/strip-exif.js +52 -0
  549. package/dist/src/lib/helpers/strip-exif.js.map +1 -0
  550. package/dist/src/lib/release/plan.d.ts +45 -0
  551. package/dist/src/lib/release/plan.js +76 -0
  552. package/dist/src/lib/release/plan.js.map +1 -0
  553. package/dist/src/lib/release/run.d.ts +46 -0
  554. package/dist/src/lib/release/run.js +160 -0
  555. package/dist/src/lib/release/run.js.map +1 -0
  556. package/dist/src/lib/utils/angular-deps.d.ts +22 -0
  557. package/dist/src/lib/utils/angular-deps.js +108 -0
  558. package/dist/src/lib/utils/angular-deps.js.map +1 -0
  559. package/dist/src/lib/utils/angular-project.d.ts +52 -0
  560. package/dist/src/lib/utils/angular-project.js +168 -0
  561. package/dist/src/lib/utils/angular-project.js.map +1 -0
  562. package/dist/src/lib/utils/app-dir.d.ts +17 -0
  563. package/dist/src/lib/utils/app-dir.js +52 -0
  564. package/dist/src/lib/utils/app-dir.js.map +1 -0
  565. package/dist/src/lib/utils/base-href.d.ts +26 -0
  566. package/dist/src/lib/utils/base-href.js +60 -0
  567. package/dist/src/lib/utils/base-href.js.map +1 -0
  568. package/dist/src/lib/utils/ci-resolve.d.ts +10 -0
  569. package/dist/src/lib/utils/ci-resolve.js +50 -0
  570. package/dist/src/lib/utils/ci-resolve.js.map +1 -0
  571. package/dist/src/lib/utils/csp-nonce.d.ts +34 -0
  572. package/dist/src/lib/utils/csp-nonce.js +142 -0
  573. package/dist/src/lib/utils/csp-nonce.js.map +1 -0
  574. package/dist/src/lib/utils/dependencies.d.ts +25 -0
  575. package/dist/src/lib/utils/dependencies.js +71 -0
  576. package/dist/src/lib/utils/dependencies.js.map +1 -0
  577. package/dist/src/lib/utils/devkit-deps.d.ts +19 -0
  578. package/dist/src/lib/utils/devkit-deps.js +34 -0
  579. package/dist/src/lib/utils/devkit-deps.js.map +1 -0
  580. package/dist/src/lib/utils/env-files.d.ts +18 -0
  581. package/dist/src/lib/utils/env-files.js +41 -0
  582. package/dist/src/lib/utils/env-files.js.map +1 -0
  583. package/dist/src/lib/utils/filesystem.d.ts +7 -0
  584. package/dist/src/lib/utils/filesystem.js +20 -0
  585. package/dist/src/lib/utils/filesystem.js.map +1 -0
  586. package/dist/src/lib/utils/flutter-web.d.ts +7 -0
  587. package/dist/src/lib/utils/flutter-web.js +56 -0
  588. package/dist/src/lib/utils/flutter-web.js.map +1 -0
  589. package/dist/src/lib/utils/knip.d.ts +16 -0
  590. package/dist/src/lib/utils/knip.js +71 -0
  591. package/dist/src/lib/utils/knip.js.map +1 -0
  592. package/dist/src/lib/utils/lint-staged.d.ts +5 -0
  593. package/dist/src/lib/utils/lint-staged.js +34 -0
  594. package/dist/src/lib/utils/lint-staged.js.map +1 -0
  595. package/dist/src/lib/utils/llm-block.d.ts +88 -0
  596. package/dist/src/lib/utils/llm-block.js +457 -0
  597. package/dist/src/lib/utils/llm-block.js.map +1 -0
  598. package/dist/src/lib/utils/node-engine.d.ts +9 -0
  599. package/dist/src/lib/utils/node-engine.js +63 -0
  600. package/dist/src/lib/utils/node-engine.js.map +1 -0
  601. package/dist/src/lib/utils/npm-scripts.d.ts +7 -0
  602. package/dist/src/lib/utils/npm-scripts.js +28 -0
  603. package/dist/src/lib/utils/npm-scripts.js.map +1 -0
  604. package/dist/src/lib/utils/nx-targets.d.ts +3 -0
  605. package/dist/src/lib/utils/nx-targets.js +25 -0
  606. package/dist/src/lib/utils/nx-targets.js.map +1 -0
  607. package/dist/src/lib/utils/project-json-files.d.ts +23 -0
  608. package/dist/src/lib/utils/project-json-files.js +73 -0
  609. package/dist/src/lib/utils/project-json-files.js.map +1 -0
  610. package/dist/src/lib/utils/quality.d.ts +71 -0
  611. package/dist/src/lib/utils/quality.js +295 -0
  612. package/dist/src/lib/utils/quality.js.map +1 -0
  613. package/dist/src/lib/utils/serve-port.d.ts +28 -0
  614. package/dist/src/lib/utils/serve-port.js +73 -0
  615. package/dist/src/lib/utils/serve-port.js.map +1 -0
  616. package/dist/src/lib/utils/shared-libs.d.ts +37 -0
  617. package/dist/src/lib/utils/shared-libs.js +152 -0
  618. package/dist/src/lib/utils/shared-libs.js.map +1 -0
  619. package/dist/src/lib/utils/ts-paths.d.ts +3 -0
  620. package/dist/src/lib/utils/ts-paths.js +31 -0
  621. package/dist/src/lib/utils/ts-paths.js.map +1 -0
  622. package/dist/src/lib/utils/workspace.d.ts +3 -0
  623. package/dist/src/lib/utils/workspace.js +15 -0
  624. package/dist/src/lib/utils/workspace.js.map +1 -0
  625. package/dist/src/migrate-sdk.d.ts +31 -0
  626. package/dist/src/migrate-sdk.js +35 -0
  627. package/dist/src/migrate-sdk.js.map +1 -0
  628. package/dist/src/migrations/add-csp-nonce-import/add-csp-nonce-import.d.ts +2 -0
  629. package/dist/src/migrations/add-csp-nonce-import/add-csp-nonce-import.js +40 -0
  630. package/dist/src/migrations/add-csp-nonce-import/add-csp-nonce-import.js.map +1 -0
  631. package/dist/src/migrations/add-executor-peers/add-executor-peers.d.ts +6 -0
  632. package/dist/src/migrations/add-executor-peers/add-executor-peers.js +21 -0
  633. package/dist/src/migrations/add-executor-peers/add-executor-peers.js.map +1 -0
  634. package/dist/src/migrations/add-lib-build-dependencies/add-lib-build-dependencies.d.ts +7 -0
  635. package/dist/src/migrations/add-lib-build-dependencies/add-lib-build-dependencies.js +47 -0
  636. package/dist/src/migrations/add-lib-build-dependencies/add-lib-build-dependencies.js.map +1 -0
  637. package/dist/src/migrations/add-lint-dependencies/add-lint-dependencies.d.ts +6 -0
  638. package/dist/src/migrations/add-lint-dependencies/add-lint-dependencies.js +27 -0
  639. package/dist/src/migrations/add-lint-dependencies/add-lint-dependencies.js.map +1 -0
  640. package/dist/src/migrations/add-lint-staged-config/add-lint-staged-config.d.ts +7 -0
  641. package/dist/src/migrations/add-lint-staged-config/add-lint-staged-config.js +22 -0
  642. package/dist/src/migrations/add-lint-staged-config/add-lint-staged-config.js.map +1 -0
  643. package/dist/src/migrations/angular-release-target/angular-release-target.d.ts +3 -0
  644. package/dist/src/migrations/angular-release-target/angular-release-target.js +80 -0
  645. package/dist/src/migrations/angular-release-target/angular-release-target.js.map +1 -0
  646. package/dist/src/migrations/app-clean-and-port/app-clean-and-port.d.ts +7 -0
  647. package/dist/src/migrations/app-clean-and-port/app-clean-and-port.js +89 -0
  648. package/dist/src/migrations/app-clean-and-port/app-clean-and-port.js.map +1 -0
  649. package/dist/src/migrations/env-encryption-config/env-encryption-config.d.ts +7 -0
  650. package/dist/src/migrations/env-encryption-config/env-encryption-config.js +42 -0
  651. package/dist/src/migrations/env-encryption-config/env-encryption-config.js.map +1 -0
  652. package/dist/src/migrations/env-encryption-key-sources/env-encryption-key-sources.d.ts +3 -0
  653. package/dist/src/migrations/env-encryption-key-sources/env-encryption-key-sources.js +15 -0
  654. package/dist/src/migrations/env-encryption-key-sources/env-encryption-key-sources.js.map +1 -0
  655. package/dist/src/migrations/fix-lint-script/fix-lint-script.d.ts +7 -0
  656. package/dist/src/migrations/fix-lint-script/fix-lint-script.js +27 -0
  657. package/dist/src/migrations/fix-lint-script/fix-lint-script.js.map +1 -0
  658. package/dist/src/migrations/flutter-web-platform/flutter-web-platform.d.ts +8 -0
  659. package/dist/src/migrations/flutter-web-platform/flutter-web-platform.js +35 -0
  660. package/dist/src/migrations/flutter-web-platform/flutter-web-platform.js.map +1 -0
  661. package/dist/src/migrations/plugin-repo-dev/plugin-repo-dev.d.ts +9 -0
  662. package/dist/src/migrations/plugin-repo-dev/plugin-repo-dev.js +42 -0
  663. package/dist/src/migrations/plugin-repo-dev/plugin-repo-dev.js.map +1 -0
  664. package/dist/src/migrations/prepush-audit-warn-only/prepush-audit-warn-only.d.ts +8 -0
  665. package/dist/src/migrations/prepush-audit-warn-only/prepush-audit-warn-only.js +30 -0
  666. package/dist/src/migrations/prepush-audit-warn-only/prepush-audit-warn-only.js.map +1 -0
  667. package/dist/src/migrations/quality-checks/quality-checks.d.ts +7 -0
  668. package/dist/src/migrations/quality-checks/quality-checks.js +46 -0
  669. package/dist/src/migrations/quality-checks/quality-checks.js.map +1 -0
  670. package/dist/src/migrations/release-hardening/release-hardening.d.ts +8 -0
  671. package/dist/src/migrations/release-hardening/release-hardening.js +98 -0
  672. package/dist/src/migrations/release-hardening/release-hardening.js.map +1 -0
  673. package/dist/src/migrations/sharp-security-update/sharp-security-update.d.ts +10 -0
  674. package/dist/src/migrations/sharp-security-update/sharp-security-update.js +40 -0
  675. package/dist/src/migrations/sharp-security-update/sharp-security-update.js.map +1 -0
  676. package/migrate/package.json +5 -0
  677. package/package.json +120 -4
  678. package/runtime/csp-nonce.js +109 -0
  679. package/runtime/env-secret.d.ts +63 -0
  680. package/runtime/env-secret.mjs +698 -0
@@ -0,0 +1,201 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * tools/scripts/check-cycles.js — generated by nx-polystack (pstack infra).
4
+ *
5
+ * Fails when the Nx project graph has a dependency cycle that is not in
6
+ * tools/config/allowed-cycles.json. Plain Node, no dependencies.
7
+ *
8
+ * npm run check:cycles reads the graph with `npx nx graph --file=<tmp>.json`
9
+ * node tools/scripts/check-cycles.js --graph=<file.json>
10
+ * reads an existing graph file instead
11
+ *
12
+ * A cycle is a group of projects that all depend on each other, directly or indirectly (a strongly
13
+ * connected component), or a project that depends on itself. The allowlist holds one array of
14
+ * project names per known cycle, in any order: [["app-a", "lib-b"], ...]. External npm packages
15
+ * ("npm:" nodes) are ignored.
16
+ */
17
+ 'use strict';
18
+
19
+ const { execSync } = require('child_process');
20
+ const fs = require('fs');
21
+ const os = require('os');
22
+ const path = require('path');
23
+
24
+ const ALLOWLIST = path.join('tools', 'config', 'allowed-cycles.json');
25
+
26
+ /**
27
+ * Project-to-project edges from `nx graph --file` output (Nx 17:
28
+ * { graph: { nodes, dependencies: { [project]: [{ source, target, type }] } } }).
29
+ * Only edges between workspace projects are kept.
30
+ */
31
+ function readProjectGraph(json) {
32
+ const graph = (json && json.graph) || json || {};
33
+ const nodes = Object.keys(graph.nodes || {});
34
+ const known = new Set(nodes);
35
+ const deps = graph.dependencies || {};
36
+ const edges = {};
37
+ for (const name of nodes) {
38
+ const targets = (deps[name] || [])
39
+ .map((d) => d && d.target)
40
+ .filter((t) => typeof t === 'string' && !t.startsWith('npm:') && known.has(t));
41
+ edges[name] = [...new Set(targets)].sort();
42
+ }
43
+ return edges;
44
+ }
45
+
46
+ /**
47
+ * Cycles in the graph (Tarjan's strongly connected components): every component with more than
48
+ * one project, plus single projects that depend on themselves. Members sorted; cycles sorted.
49
+ */
50
+ function findCycles(edges) {
51
+ let index = 0;
52
+ const indexOf = new Map();
53
+ const low = new Map();
54
+ const stack = [];
55
+ const onStack = new Set();
56
+ const found = [];
57
+
58
+ const connect = (v) => {
59
+ indexOf.set(v, index);
60
+ low.set(v, index);
61
+ index += 1;
62
+ stack.push(v);
63
+ onStack.add(v);
64
+ for (const w of edges[v] || []) {
65
+ if (!indexOf.has(w)) {
66
+ connect(w);
67
+ low.set(v, Math.min(low.get(v), low.get(w)));
68
+ } else if (onStack.has(w)) {
69
+ low.set(v, Math.min(low.get(v), indexOf.get(w)));
70
+ }
71
+ }
72
+ if (low.get(v) === indexOf.get(v)) {
73
+ const component = [];
74
+ let w;
75
+ do {
76
+ w = stack.pop();
77
+ onStack.delete(w);
78
+ component.push(w);
79
+ } while (w !== v);
80
+ if (component.length > 1 || (edges[v] || []).includes(v)) found.push(component.sort());
81
+ }
82
+ };
83
+
84
+ for (const v of Object.keys(edges).sort()) {
85
+ if (!indexOf.has(v)) connect(v);
86
+ }
87
+ return found.sort((a, b) => key(a).localeCompare(key(b)));
88
+ }
89
+
90
+ function key(members) {
91
+ return [...members].sort().join('\u0000');
92
+ }
93
+
94
+ /** Cycles that are not in the allowlist (compared as sets of project names). */
95
+ function newCycles(found, allowed) {
96
+ const ok = new Set(allowed.map(key));
97
+ return found.filter((c) => !ok.has(key(c)));
98
+ }
99
+
100
+ /** Allowlist entries that no longer match a cycle. */
101
+ function staleAllowed(found, allowed) {
102
+ const present = new Set(found.map(key));
103
+ return allowed.filter((c) => !present.has(key(c)));
104
+ }
105
+
106
+ /** One concrete loop through a cycle's members, for printing: a -> b -> c -> a. */
107
+ function cyclePath(edges, members) {
108
+ const inCycle = new Set(members);
109
+ const start = members[0];
110
+ if ((edges[start] || []).includes(start)) return [start, start];
111
+ const prev = new Map();
112
+ const queue = [start];
113
+ while (queue.length > 0) {
114
+ const v = queue.shift();
115
+ for (const w of edges[v] || []) {
116
+ if (!inCycle.has(w)) continue;
117
+ if (w === start) {
118
+ const loop = [start];
119
+ for (let x = v; x !== start; x = prev.get(x)) loop.splice(1, 0, x);
120
+ return [...loop, start];
121
+ }
122
+ if (!prev.has(w)) {
123
+ prev.set(w, v);
124
+ queue.push(w);
125
+ }
126
+ }
127
+ }
128
+ return [...members, start];
129
+ }
130
+
131
+ function readAllowlist(root) {
132
+ const file = path.join(root, ALLOWLIST);
133
+ if (!fs.existsSync(file)) return [];
134
+ const value = JSON.parse(fs.readFileSync(file, 'utf8'));
135
+ const valid =
136
+ Array.isArray(value) &&
137
+ value.every((c) => Array.isArray(c) && c.length > 0 && c.every((p) => typeof p === 'string'));
138
+ if (!valid) {
139
+ throw new Error(
140
+ `${ALLOWLIST} must be an array of arrays of project names, e.g. [["app-a", "lib-b"]].`,
141
+ );
142
+ }
143
+ return value;
144
+ }
145
+
146
+ function readGraphFromNx() {
147
+ const file = path.join(os.tmpdir(), `nx-graph-${process.pid}-${Date.now()}.json`);
148
+ try {
149
+ execSync(`npx nx graph --file="${file}"`, { stdio: ['ignore', 'pipe', 'pipe'] });
150
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
151
+ } catch (err) {
152
+ const out = [err.stdout, err.stderr].filter(Boolean).join('\n');
153
+ throw new Error(`"nx graph" failed.${out ? `\n${out}` : ''}`);
154
+ } finally {
155
+ fs.rmSync(file, { force: true });
156
+ }
157
+ }
158
+
159
+ function main(argv) {
160
+ const graphArg = argv.find((a) => a.startsWith('--graph='));
161
+ let edges;
162
+ let allowed;
163
+ try {
164
+ const json = graphArg
165
+ ? JSON.parse(fs.readFileSync(graphArg.slice('--graph='.length), 'utf8'))
166
+ : readGraphFromNx();
167
+ edges = readProjectGraph(json);
168
+ allowed = readAllowlist(process.cwd());
169
+ } catch (err) {
170
+ console.error(`check-cycles: ${err.message}`);
171
+ return 2;
172
+ }
173
+
174
+ const found = findCycles(edges);
175
+ const fresh = newCycles(found, allowed);
176
+ for (const c of staleAllowed(found, allowed)) {
177
+ const entry = JSON.stringify(c);
178
+ console.log(`check-cycles: ${entry} is no longer a cycle; remove it from ${ALLOWLIST}.`);
179
+ }
180
+ if (fresh.length === 0) {
181
+ const known = found.length - fresh.length;
182
+ console.log(
183
+ `check-cycles: No new dependency cycles (${Object.keys(edges).length} projects` +
184
+ `${known > 0 ? `, ${known} allowed cycle(s)` : ''}).`,
185
+ );
186
+ return 0;
187
+ }
188
+ console.error(`check-cycles: ${fresh.length} new dependency cycle(s):`);
189
+ for (const c of fresh) console.error(` ${cyclePath(edges, c).join(' -> ')}`);
190
+ const example = JSON.stringify(fresh[0]);
191
+ console.error(
192
+ `\nBreak the cycle, or add a known, accepted one (e.g. ${example}) to ${ALLOWLIST}.`,
193
+ );
194
+ return 1;
195
+ }
196
+
197
+ module.exports = { readProjectGraph, findCycles, newCycles, staleAllowed, cyclePath };
198
+
199
+ if (require.main === module) {
200
+ process.exitCode = main(process.argv.slice(2));
201
+ }
@@ -0,0 +1,68 @@
1
+ # Generated by nx-polystack (pstack infra). Lint, test and build what changed, then check for
2
+ # new project dependency cycles.
3
+ <%_ if (flutter) { _%>
4
+ # The workspace has Flutter projects, so the Flutter SDK (stable channel) is set up as well.
5
+ <%_ } else { _%>
6
+ # No Flutter projects when this was generated: after adding one, run `pstack infra --with=ci --force`
7
+ # (or `--flutter=on`) to add the Flutter setup step.
8
+ <%_ } _%>
9
+ name: CI
10
+
11
+ on:
12
+ pull_request:
13
+ push:
14
+ branches: [<%= baseBranch %>]
15
+
16
+ permissions:
17
+ actions: read
18
+ contents: read
19
+
20
+ concurrency:
21
+ group: ci-${{ github.ref }}
22
+ cancel-in-progress: true
23
+
24
+ jobs:
25
+ main:
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ with:
30
+ fetch-depth: 0
31
+ - uses: actions/setup-node@v4
32
+ with:
33
+ node-version-file: .nvmrc
34
+ cache: npm
35
+ <%_ if (flutter) { _%>
36
+ - uses: subosito/flutter-action@v2
37
+ with:
38
+ channel: stable
39
+ cache: true
40
+ <%_ } _%>
41
+ <%_ if (pluginFromGithub) { _%>
42
+ # The nx-polystack plugin is installed from a private GitHub repo. Add a repository secret
43
+ # PSTACK_REPO_TOKEN (a token that can read that repo) so npm ci can fetch it.
44
+ - name: Allow npm to fetch the private nx-polystack plugin
45
+ env:
46
+ PSTACK_REPO_TOKEN: ${{ secrets.PSTACK_REPO_TOKEN }}
47
+ run: |
48
+ if [ -n "$PSTACK_REPO_TOKEN" ]; then
49
+ git config --global url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
50
+ git config --global --add url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "git@github.com:"
51
+ fi
52
+ <%_ } _%>
53
+ - run: npm ci
54
+ <%_ if (ciCache) { _%>
55
+ - name: Nx cache
56
+ uses: actions/cache@v4
57
+ with:
58
+ path: <%= cacheDirectory %>
59
+ key: nx-${{ runner.os }}-${{ hashFiles('package-lock.json') }}-${{ github.sha }}
60
+ restore-keys: |
61
+ nx-${{ runner.os }}-${{ hashFiles('package-lock.json') }}-
62
+ nx-${{ runner.os }}-
63
+ <%_ } _%>
64
+ - uses: nrwl/nx-set-shas@v4
65
+ with:
66
+ main-branch-name: <%= baseBranch %>
67
+ - run: npx nx affected -t lint typecheck test build --parallel=3
68
+ - run: npm run check:cycles
@@ -0,0 +1,36 @@
1
+ # Generated by nx-polystack (pstack infra). The pull request title becomes the squash-merge
2
+ # commit message, so it must pass the same commitlint rules as every commit.
3
+ name: PR title
4
+
5
+ on:
6
+ pull_request:
7
+ types: [opened, edited, synchronize]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ commitlint:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: actions/setup-node@v4
18
+ with:
19
+ node-version-file: .nvmrc
20
+ cache: npm
21
+ <%_ if (pluginFromGithub) { _%>
22
+ # See ci.yml: PSTACK_REPO_TOKEN lets npm ci fetch the private nx-polystack plugin.
23
+ - name: Allow npm to fetch the private nx-polystack plugin
24
+ env:
25
+ PSTACK_REPO_TOKEN: ${{ secrets.PSTACK_REPO_TOKEN }}
26
+ run: |
27
+ if [ -n "$PSTACK_REPO_TOKEN" ]; then
28
+ git config --global url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
29
+ git config --global --add url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "git@github.com:"
30
+ fi
31
+ <%_ } _%>
32
+ - run: npm ci
33
+ - name: Check the title with commitlint
34
+ env:
35
+ TITLE: ${{ github.event.pull_request.title }}
36
+ run: echo "$TITLE" | npx --no-install commitlint
@@ -0,0 +1,45 @@
1
+ // Generated by nx-polystack (pstack infra).
2
+ // Lints, tests and builds the projects affected by the change, then checks for new project
3
+ // dependency cycles. Pull requests compare against their target branch (CHANGE_TARGET); builds of
4
+ // <%= baseBranch %> compare against the previous commit; other branches against <%= baseBranch %>.
5
+ <%_ if (flutter) { _%>
6
+ // The workspace has Flutter projects: Flutter must be on the agent's PATH.
7
+ <%_ } _%>
8
+ pipeline {
9
+ agent any
10
+
11
+ options {
12
+ timestamps()
13
+ timeout(time: 60, unit: 'MINUTES')
14
+ buildDiscarder(logRotator(numToKeepStr: '20'))
15
+ }
16
+
17
+ environment {
18
+ BASE_BRANCH = "${env.CHANGE_TARGET ?: '<%= baseBranch %>'}"
19
+ NX_BASE = "${env.CHANGE_TARGET ? 'origin/' + env.CHANGE_TARGET : (env.BRANCH_NAME == '<%= baseBranch %>' ? 'HEAD~1' : 'origin/<%= baseBranch %>')}"
20
+ }
21
+
22
+ stages {
23
+ stage('Install') {
24
+ steps {
25
+ <%_ if (flutter) { _%>
26
+ sh 'flutter --version'
27
+ <%_ } _%>
28
+ sh 'npm ci'
29
+ }
30
+ }
31
+
32
+ stage('Lint, test, build (affected)') {
33
+ steps {
34
+ sh 'git fetch --no-tags origin "+refs/heads/${BASE_BRANCH}:refs/remotes/origin/${BASE_BRANCH}"'
35
+ sh 'npx nx affected -t lint typecheck test build --parallel=3 --base="${NX_BASE}" --head=HEAD'
36
+ }
37
+ }
38
+
39
+ stage('Dependency cycles') {
40
+ steps {
41
+ sh 'npm run check:cycles'
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,39 @@
1
+ name: Bug report
2
+ description: Something does not work as expected.
3
+ title: 'bug: '
4
+ labels: ['bug']
5
+ body:
6
+ - type: input
7
+ id: affected
8
+ attributes:
9
+ label: Affected app or library
10
+ description: The Nx project name, for example the app or lib folder name.
11
+ validations:
12
+ required: true
13
+ - type: textarea
14
+ id: what-happened
15
+ attributes:
16
+ label: What happened?
17
+ description: What did you see, and what did you expect instead?
18
+ validations:
19
+ required: true
20
+ - type: textarea
21
+ id: steps
22
+ attributes:
23
+ label: Steps to reproduce
24
+ placeholder: |
25
+ 1. Go to …
26
+ 2. Click …
27
+ 3. See …
28
+ validations:
29
+ required: true
30
+ - type: input
31
+ id: environment
32
+ attributes:
33
+ label: Environment
34
+ description: Environment, browser or device, and version or commit.
35
+ - type: textarea
36
+ id: logs
37
+ attributes:
38
+ label: Logs or screenshots
39
+ description: Remove any secrets or personal data first.
@@ -0,0 +1,23 @@
1
+ name: Feature request
2
+ description: Suggest a change or a new capability.
3
+ title: 'feat: '
4
+ labels: ['enhancement']
5
+ body:
6
+ - type: textarea
7
+ id: problem
8
+ attributes:
9
+ label: Problem
10
+ description: What problem would this solve, and for whom?
11
+ validations:
12
+ required: true
13
+ - type: textarea
14
+ id: proposal
15
+ attributes:
16
+ label: Proposal
17
+ description: What should change? Include any apps or libraries affected.
18
+ validations:
19
+ required: true
20
+ - type: textarea
21
+ id: alternatives
22
+ attributes:
23
+ label: Alternatives considered
@@ -0,0 +1,23 @@
1
+ ## Summary
2
+
3
+ <!-- What does this change and why? -->
4
+
5
+ ## Ticket
6
+
7
+ <!-- Ticket ID or link -->
8
+
9
+ ## Type
10
+
11
+ - [ ] Feature
12
+ - [ ] Fix
13
+ - [ ] Refactor
14
+ - [ ] Docs
15
+ - [ ] Chore / CI
16
+
17
+ ## Checklist
18
+
19
+ - [ ] The title follows Conventional Commits, with the ticket as the scope (`feat(<ticket>): …`)
20
+ - [ ] `npx nx affected -t lint typecheck test build` passes
21
+ - [ ] No secrets, keys or plaintext environment values are committed
22
+ - [ ] Docs are updated
23
+ - [ ] Screenshots attached for UI changes
@@ -0,0 +1,18 @@
1
+ # Code of Conduct
2
+
3
+ ## Our pledge
4
+
5
+ We want this project to be a harassment-free experience for everyone. We act and speak in ways
6
+ that keep our community open, welcoming, diverse, inclusive and healthy.
7
+
8
+ ## Our standard
9
+
10
+ This project adopts the
11
+ [Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)
12
+ as its code of conduct. The full text, including the standards of behaviour, the enforcement
13
+ responsibilities and the enforcement guidelines, applies here.
14
+
15
+ ## Reporting
16
+
17
+ Report unacceptable behaviour to <conduct-contact>. All reports are reviewed promptly and fairly,
18
+ and the privacy and security of the reporter are respected.
@@ -0,0 +1,61 @@
1
+ # Contributing
2
+
3
+ Thanks for helping. This workspace is an Nx monorepo built with nx-polystack; the steps below keep
4
+ every app and library consistent.
5
+
6
+ ## Branches and pull requests
7
+
8
+ 1. Branch from `<%= baseBranch %>`: `feature-<ticket>` (for example `feature-ABC-123`).
9
+ 2. Keep each pull request small and focused on one ticket.
10
+ 3. Open the pull request against `<%= baseBranch %>`. CI must pass and a reviewer must approve
11
+ before it is merged.
12
+
13
+ ## Commit messages
14
+
15
+ Use [Conventional Commits](https://www.conventionalcommits.org/) with the ticket as the scope:
16
+
17
+ ```text
18
+ feat(<ticket>): add the order summary page
19
+ fix(<ticket>): keep the session after a token refresh
20
+ docs(<ticket>): explain the release steps
21
+ ```
22
+
23
+ Common types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `ci`, `perf`. Commit messages
24
+ are checked by commitlint on commit, and pull request titles are checked in CI.
25
+
26
+ ## Adding apps, libraries and environments
27
+
28
+ Use the generators so tags, tsconfig paths and npm scripts stay consistent:
29
+
30
+ ```bash
31
+ pstack app --type=<angular|ionic|flutter> --name=<name>
32
+ pstack lib --type=<type> --name=<name>
33
+ pstack env --name=<env>
34
+ pstack llm # refresh the generated block in the AI-assistant files
35
+ ```
36
+
37
+ ## Before you push
38
+
39
+ ```bash
40
+ npm run lint # lint the workspace
41
+ npx nx affected -t lint typecheck test build # lint, type-check, test and build what changed
42
+ npm run check:cycles # fail on new project dependency cycles
43
+ npm run stale-code # report unused files, exports and dependencies
44
+ ```
45
+
46
+ The pre-push hook runs `npm run check:prepush`: a secret scan that blocks the push, then a
47
+ dependency audit that only warns. Run `npm run check:audit` for the strict audit (it fails on
48
+ high or critical advisories).
49
+
50
+ ## Pull request checklist
51
+
52
+ - [ ] The title follows Conventional Commits, with the ticket as the scope.
53
+ - [ ] Lint, tests and build pass.
54
+ - [ ] No secrets, keys or plaintext environment values are committed.
55
+ - [ ] Docs are updated when behaviour changes.
56
+ - [ ] UI changes include screenshots.
57
+
58
+ ## Code of conduct and security
59
+
60
+ Read the [Code of Conduct](CODE_OF_CONDUCT.md). Report vulnerabilities as described in
61
+ [SECURITY.md](SECURITY.md), never in a public issue.
@@ -0,0 +1,25 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a vulnerability
4
+
5
+ Do not open a public issue for a security problem. Report it privately to <security-contact>
6
+ with:
7
+
8
+ - what is affected (app, library, version or commit),
9
+ - how to reproduce it,
10
+ - the impact you expect.
11
+
12
+ You will get an acknowledgement, and updates until the issue is resolved.
13
+
14
+ ## Supported versions
15
+
16
+ Only the latest release of each app, built from `<%= baseBranch %>`, receives security fixes.
17
+
18
+ ## Secrets
19
+
20
+ - Environment files are encrypted at build time; never commit plaintext secrets, keys or
21
+ tokens.
22
+ - `.env` files are never committed.
23
+ - The pre-push hook (`npm run check:prepush`) runs a secret scan, which blocks the push, and a
24
+ warn-only `npm audit`. Do not skip it. `npm run check:audit` is the strict audit.
25
+ - If a secret is committed, treat it as leaked: revoke and rotate it, then remove it from history.
@@ -0,0 +1,2 @@
1
+ <%= prepushMarker %>
2
+ npm run check:prepush
@@ -0,0 +1,7 @@
1
+ node_modules
2
+ dist
3
+ .nx
4
+ .angular
5
+ coverage
6
+ tmp
7
+ package-lock.json
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": [
3
+ {
4
+ "id": "@secretlint/secretlint-rule-preset-recommend"
5
+ }
6
+ ]
7
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://unpkg.com/knip@5/schema.json",
3
+ "entry": ["apps/**/src/main.ts", "libs/**/src/index.ts", "tools/**/*.js"],
4
+ "project": ["apps/**/*.{js,ts}", "libs/**/*.{js,ts}", "tools/**/*.js"],
5
+ <%_ if (flutter) { _%>
6
+ "ignoreBinaries": ["flutter", "dart"],
7
+ <%_ } _%>
8
+ "ignoreDependencies": ["<%= pluginName %>"]
9
+ }
@@ -0,0 +1,80 @@
1
+ # Generated by nx-polystack (pstack infra). Upgrades dependencies on a schedule and opens (or
2
+ # updates) a pull request with the result.
3
+ #
4
+ # Needs:
5
+ <%_ if (pluginFromGithub) { _%>
6
+ # - Repository secret PSTACK_REPO_TOKEN: a token that can read <%= pluginRepo %> (the plugin
7
+ # repo is private). Used by npm to install the plugin and by gh to find its latest release.
8
+ <%_ } _%>
9
+ # - Settings > Actions > General > "Allow GitHub Actions to create and approve pull requests".
10
+ # Pull requests opened with the default GITHUB_TOKEN do not start other workflows; close and
11
+ # reopen the pull request (or push to its branch) to run CI on it.
12
+ name: Dependency upgrade
13
+
14
+ on:
15
+ schedule:
16
+ - cron: '<%= upgradeCron %>' # <%= upgradeSchedule %>, UTC
17
+ workflow_dispatch:
18
+
19
+ permissions:
20
+ contents: write
21
+ pull-requests: write
22
+
23
+ jobs:
24
+ upgrade:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ with:
29
+ ref: <%= baseBranch %>
30
+ - uses: actions/setup-node@v4
31
+ with:
32
+ node-version-file: .nvmrc
33
+ cache: npm
34
+ <%_ if (pluginFromGithub) { _%>
35
+ - name: Allow npm to fetch the private nx-polystack plugin
36
+ env:
37
+ PSTACK_REPO_TOKEN: ${{ secrets.PSTACK_REPO_TOKEN }}
38
+ run: |
39
+ if [ -z "$PSTACK_REPO_TOKEN" ]; then
40
+ echo "::error::Add the PSTACK_REPO_TOKEN repository secret (read access to <%= pluginRepo %>)."
41
+ exit 1
42
+ fi
43
+ git config --global url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "ssh://git@github.com/"
44
+ git config --global --add url."https://x-access-token:${PSTACK_REPO_TOKEN}@github.com/".insteadOf "git@github.com:"
45
+ <%_ } _%>
46
+ - run: npm ci
47
+ - name: Upgrade nx-polystack to its latest release
48
+ <%_ if (pluginFromGithub) { _%>
49
+ env:
50
+ GH_TOKEN: ${{ secrets.PSTACK_REPO_TOKEN }}
51
+ run: |
52
+ latest=$(gh release view --repo <%= pluginRepo %> --json tagName --jq .tagName)
53
+ npx --no-install pstack update --to="${latest#v}" --allow-dirty
54
+ <%_ } else { _%>
55
+ run: |
56
+ latest=$(npm view <%= pluginName %> version)
57
+ npx --no-install pstack update --to="${latest}" --allow-dirty
58
+ <%_ } _%>
59
+ <%_ if (upgradeScope === 'nx-minor') { _%>
60
+ - name: Upgrade Nx within its current major
61
+ run: |
62
+ major=$(node -p "require('nx/package.json').version.split('.')[0]")
63
+ npx nx migrate "nx@${major}"
64
+ npm install
65
+ if [ -f migrations.json ]; then
66
+ npx nx migrate --run-migrations
67
+ rm migrations.json
68
+ fi
69
+ <%_ } _%>
70
+ - uses: peter-evans/create-pull-request@v6
71
+ with:
72
+ branch: chore/dependency-upgrade
73
+ base: <%= baseBranch %>
74
+ title: 'chore(deps): scheduled dependency upgrade'
75
+ commit-message: 'chore(deps): scheduled dependency upgrade'
76
+ body: |
77
+ Scheduled dependency upgrade (<%= upgradeScope %>), opened by the dependency-upgrade workflow.
78
+
79
+ Review the changes and the CI result before merging.
80
+ delete-branch: true