@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,26 @@
1
+ type Target = {
2
+ executor?: string;
3
+ options?: Record<string, unknown>;
4
+ configurations?: Record<string, Record<string, unknown>>;
5
+ };
6
+ /**
7
+ * A base href is a path: "/" or "/seg/…/seg/" with URL-safe segments (letters, digits, . _ ~ % -).
8
+ * No host (`//x/`), no `..`, nothing a shell would read (it ends up on the build command line).
9
+ */
10
+ export declare function checkBaseHref(href: string): string;
11
+ /**
12
+ * The target whose configurations carry the base href: the polystack release target of an
13
+ * Angular/Ionic app, else a Flutter app's build-web.
14
+ */
15
+ export declare function baseHrefTarget(projectJson: Record<string, unknown>): {
16
+ name: string;
17
+ target: Target;
18
+ } | undefined;
19
+ /**
20
+ * Whether a configuration builds DEV: its env, else the target's env option, else the executor's
21
+ * default (dev for Flutter builds), else its name.
22
+ */
23
+ export declare function isDevConfiguration(target: Target, name: string): boolean;
24
+ /** Sets (or, with undefined, removes) baseHref on the given configurations; returns their names. */
25
+ export declare function setBaseHref(target: Target, configurations: string[], href: string | undefined): string[];
26
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setBaseHref = exports.isDevConfiguration = exports.baseHrefTarget = exports.checkBaseHref = void 0;
4
+ const angular_project_1 = require("./angular-project");
5
+ const FLUTTER_BUILD_EXECUTOR = '@mouryaamit/nx-polystack:flutter-build';
6
+ /**
7
+ * A base href is a path: "/" or "/seg/…/seg/" with URL-safe segments (letters, digits, . _ ~ % -).
8
+ * No host (`//x/`), no `..`, nothing a shell would read (it ends up on the build command line).
9
+ */
10
+ function checkBaseHref(href) {
11
+ const ok = /^\/(?:[A-Za-z0-9._~%-]+\/)*$/.test(href) &&
12
+ !href.split('/').some((s) => s === '..' || s === '.');
13
+ if (!ok) {
14
+ throw new Error(`base href "${href}" must start and end with "/" and hold only letters, digits, . _ ~ % - ` +
15
+ 'between the slashes (e.g. /portal/)');
16
+ }
17
+ return href;
18
+ }
19
+ exports.checkBaseHref = checkBaseHref;
20
+ /**
21
+ * The target whose configurations carry the base href: the polystack release target of an
22
+ * Angular/Ionic app, else a Flutter app's build-web.
23
+ */
24
+ function baseHrefTarget(projectJson) {
25
+ const targets = (projectJson['targets'] ?? {});
26
+ const release = Object.entries(targets).find(([, t]) => t.executor === angular_project_1.POLYSTACK_BUILD_EXECUTOR);
27
+ if (release)
28
+ return { name: release[0], target: release[1] };
29
+ const web = targets['build-web'];
30
+ if (web?.executor === FLUTTER_BUILD_EXECUTOR)
31
+ return { name: 'build-web', target: web };
32
+ return undefined;
33
+ }
34
+ exports.baseHrefTarget = baseHrefTarget;
35
+ /**
36
+ * Whether a configuration builds DEV: its env, else the target's env option, else the executor's
37
+ * default (dev for Flutter builds), else its name.
38
+ */
39
+ function isDevConfiguration(target, name) {
40
+ const env = target.configurations?.[name]?.['env'] ??
41
+ target.options?.['env'] ??
42
+ (target.executor === FLUTTER_BUILD_EXECUTOR ? 'dev' : name);
43
+ return ['dev', 'development'].includes(String(env).toLowerCase());
44
+ }
45
+ exports.isDevConfiguration = isDevConfiguration;
46
+ /** Sets (or, with undefined, removes) baseHref on the given configurations; returns their names. */
47
+ function setBaseHref(target, configurations, href) {
48
+ target.configurations ??= {};
49
+ for (const name of configurations) {
50
+ const conf = { ...(target.configurations[name] ?? {}) };
51
+ if (href === undefined)
52
+ delete conf['baseHref'];
53
+ else
54
+ conf['baseHref'] = href;
55
+ target.configurations[name] = conf;
56
+ }
57
+ return configurations;
58
+ }
59
+ exports.setBaseHref = setBaseHref;
60
+ //# sourceMappingURL=base-href.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-href.js","sourceRoot":"","sources":["../../../../src/lib/utils/base-href.ts"],"names":[],"mappings":";;;AAAA,uDAA6D;AAE7D,MAAM,sBAAsB,GAAG,wCAAwC,CAAC;AAQxE;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,MAAM,EAAE,GACN,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,yEAAyE;YACzF,qCAAqC,CACxC,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,sCAWC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,WAAoC;IAEpC,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAA2B,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,0CAAwB,CAAC,CAAC;IACjG,IAAI,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,GAAG,EAAE,QAAQ,KAAK,sBAAsB;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxF,OAAO,SAAS,CAAC;AACnB,CAAC;AATD,wCASC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,IAAY;IAC7D,MAAM,GAAG,GACP,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QACvB,CAAC,MAAM,CAAC,QAAQ,KAAK,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACpE,CAAC;AAND,gDAMC;AAED,oGAAoG;AACpG,SAAgB,WAAW,CACzB,MAAc,EACd,cAAwB,EACxB,IAAwB;IAExB,MAAM,CAAC,cAAc,KAAK,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QACjC,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;;YAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACpC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAbD,kCAaC"}
@@ -0,0 +1,10 @@
1
+ export interface CiContext {
2
+ branch: string;
3
+ commit: string;
4
+ buildNumber: string;
5
+ }
6
+ export interface CiContextOptions {
7
+ /** Override how git is invoked (for tests). Returns trimmed stdout, or null on failure. */
8
+ git?: (cmd: string) => string | null;
9
+ }
10
+ export declare function resolveCiContext(opts?: CiContextOptions): CiContext;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveCiContext = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const defaultGit = (cmd) => {
6
+ try {
7
+ return ((0, child_process_1.execSync)(cmd, { stdio: ['ignore', 'pipe', 'ignore'] })
8
+ .toString()
9
+ .trim() || null);
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ };
15
+ const stripBranchPrefixes = (b) => b
16
+ .replace(/^origin\//, '')
17
+ .replace(/^refs\/heads\//, '')
18
+ .replace(/^remotes\//, '');
19
+ function resolveCiContext(opts = {}) {
20
+ const git = opts.git ?? defaultGit;
21
+ let branch = process.env['BUILD_BRANCH'] ||
22
+ process.env['BRANCH_NAME'] ||
23
+ process.env['GIT_BRANCH'] ||
24
+ process.env['CHANGE_BRANCH'] ||
25
+ process.env['GITHUB_HEAD_REF'] ||
26
+ process.env['GITHUB_REF_NAME'] ||
27
+ process.env['CI_COMMIT_REF_NAME'] ||
28
+ process.env['BITBUCKET_BRANCH'] ||
29
+ process.env['CIRCLE_BRANCH'] ||
30
+ process.env['BUILD_SOURCEBRANCHNAME'] ||
31
+ git('git rev-parse --abbrev-ref HEAD') ||
32
+ 'unknown';
33
+ if (branch === 'HEAD') {
34
+ branch = git('git name-rev --name-only HEAD') || 'unknown';
35
+ }
36
+ branch = stripBranchPrefixes(branch);
37
+ const ciCommit = process.env['BUILD_COMMIT'] ||
38
+ process.env['GIT_COMMIT'] ||
39
+ process.env['GITHUB_SHA'] ||
40
+ process.env['CI_COMMIT_SHA'] ||
41
+ process.env['BITBUCKET_COMMIT'] ||
42
+ process.env['CIRCLE_SHA1'] ||
43
+ process.env['BUILD_SOURCEVERSION'];
44
+ // Used as given: the encryption key and the meta tag take the same value, so they always match.
45
+ const commit = ciCommit || git('git rev-parse --short HEAD') || 'unknown';
46
+ const buildNumber = process.env['BUILD_NUMBER'] || process.env['BUILD_ID'] || String(Date.now());
47
+ return { branch, commit, buildNumber };
48
+ }
49
+ exports.resolveCiContext = resolveCiContext;
50
+ //# sourceMappingURL=ci-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-resolve.js","sourceRoot":"","sources":["../../../../src/lib/utils/ci-resolve.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAazC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAiB,EAAE;IAChD,IAAI;QACF,OAAO,CACL,IAAA,wBAAQ,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;aACnD,QAAQ,EAAE;aACV,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;KACH;IAAC,MAAM;QACN,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAS,EAAU,EAAE,CAChD,CAAC;KACE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;KACxB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;KAC7B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE/B,SAAgB,gBAAgB,CAAC,OAAyB,EAAE;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IAEnC,IAAI,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACrC,GAAG,CAAC,iCAAiC,CAAC;QACtC,SAAS,CAAC;IAEZ,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,MAAM,GAAG,GAAG,CAAC,+BAA+B,CAAC,IAAI,SAAS,CAAC;KAC5D;IACD,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACrC,gGAAgG;IAChG,MAAM,MAAM,GAAG,QAAQ,IAAI,GAAG,CAAC,4BAA4B,CAAC,IAAI,SAAS,CAAC;IAE1E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEjG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AApCD,4CAoCC"}
@@ -0,0 +1,34 @@
1
+ import { Tree } from '@nx/devkit';
2
+ /** The library's runtime CSP nonce patch (see runtime/csp-nonce.js). */
3
+ export declare const CSP_NONCE_IMPORT = "@mouryaamit/nx-polystack/runtime/csp-nonce";
4
+ export declare const hasCspNonceImport: (text: string) => boolean;
5
+ /**
6
+ * `text` with the library import as its first statement (unchanged when already there). It goes
7
+ * after a shebang and `/// <reference …>` directives, which only count before any statement.
8
+ */
9
+ export declare function withCspNonceImport(text: string): string;
10
+ export interface NoncePatchSwap {
11
+ /** The new main.ts text. */
12
+ text: string;
13
+ /** Local nonce patch imports replaced by the library's (specifiers as written). */
14
+ replaced: string[];
15
+ /** Local nonce patch imports kept (the library import was added before them). */
16
+ kept: string[];
17
+ }
18
+ export interface NoncePatchOptions {
19
+ /** Replace compatible local patches (`:migrate`); false keeps every local import. */
20
+ replaceLocal: boolean;
21
+ }
22
+ /**
23
+ * main.ts (`file`, workspace-relative) with the library nonce patch: a compatible local patch
24
+ * import is replaced in place; otherwise the library import is added first and local ones stay.
25
+ * `read` returns a workspace file (or undefined).
26
+ */
27
+ export declare function useLibraryNoncePatch(file: string, text: string, read: (workspacePath: string) => string | undefined, opts?: NoncePatchOptions): NoncePatchSwap;
28
+ /** Applies useLibraryNoncePatch to a main.ts in the tree. */
29
+ export declare function patchMainInTree(tree: Tree, mainFile: string, opts?: NoncePatchOptions): NoncePatchSwap | undefined;
30
+ /**
31
+ * Patches the main.ts of migrated apps and returns the report note (undefined when nothing
32
+ * changed). `mains` are workspace paths.
33
+ */
34
+ export declare function noncePatchMains(tree: Tree, mains: string[]): string | undefined;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noncePatchMains = exports.patchMainInTree = exports.useLibraryNoncePatch = exports.withCspNonceImport = exports.hasCspNonceImport = exports.CSP_NONCE_IMPORT = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ /** The library's runtime CSP nonce patch (see runtime/csp-nonce.js). */
7
+ exports.CSP_NONCE_IMPORT = '@mouryaamit/nx-polystack/runtime/csp-nonce';
8
+ const IMPORT_LINE = `import '${exports.CSP_NONCE_IMPORT}';`;
9
+ const COMMENT = "// Gives <script>/<style> elements added at runtime the page's CSP nonce (keep it first).";
10
+ /** Side-effect imports: `import './x';` (one per line). */
11
+ const SIDE_EFFECT = /^[ \t]*import[ \t]+(['"])([^'"]+)\1[ \t]*;?[ \t]*(\/\/.*)?$/gm;
12
+ const hasCspNonceImport = (text) => text.includes(exports.CSP_NONCE_IMPORT);
13
+ exports.hasCspNonceImport = hasCspNonceImport;
14
+ /**
15
+ * `text` with the library import as its first statement (unchanged when already there). It goes
16
+ * after a shebang and `/// <reference …>` directives, which only count before any statement.
17
+ */
18
+ function withCspNonceImport(text) {
19
+ if ((0, exports.hasCspNonceImport)(text))
20
+ return text;
21
+ const lines = text.split('\n');
22
+ // After the last shebang or `///` directive of the leading block of comments and blank lines.
23
+ let at = 0;
24
+ let inBlock = false;
25
+ for (let i = 0; i < lines.length; i++) {
26
+ const line = lines[i].trim();
27
+ if (inBlock) {
28
+ if (line.includes('*/'))
29
+ inBlock = false;
30
+ continue;
31
+ }
32
+ if (/^#!/.test(line) || /^\/\/\/\s*</.test(line))
33
+ at = i + 1;
34
+ else if (line.startsWith('/*'))
35
+ inBlock = !line.includes('*/');
36
+ else if (!(line === '' || line.startsWith('//')))
37
+ break;
38
+ }
39
+ const head = lines.slice(0, at);
40
+ const rest = lines.slice(at).join('\n');
41
+ const block = `${COMMENT}\n${IMPORT_LINE}\n${rest.startsWith('\n') || rest === '' ? '' : '\n'}`;
42
+ return head.length > 0 ? `${head.join('\n')}\n${block}${rest}` : `${block}${rest}`;
43
+ }
44
+ exports.withCspNonceImport = withCspNonceImport;
45
+ const RESOLVE_SUFFIXES = ['', '.ts', '.js', '.mjs', '/index.ts', '/index.js'];
46
+ /**
47
+ * What a local side-effect import is:
48
+ * - `compatible`: a nonce patch that reads the nonce where the library does
49
+ * (`window.__cspNonce` or the csp-nonce meta tag), so the library can replace it;
50
+ * - `other`: a nonce patch that reads it some other way (or can't be read), kept as is;
51
+ * - `none`: not a nonce patch.
52
+ */
53
+ function noncePatchKind(spec, text) {
54
+ if (text === undefined) {
55
+ return /csp[-_]?nonce|nonce[-_]?patch/i.test(path.posix.basename(spec)) ? 'other' : 'none';
56
+ }
57
+ if (!/nonce/i.test(text) || !/(appendChild|insertBefore)/.test(text))
58
+ return 'none';
59
+ return /__cspNonce|csp-nonce/i.test(text) ? 'compatible' : 'other';
60
+ }
61
+ /**
62
+ * main.ts (`file`, workspace-relative) with the library nonce patch: a compatible local patch
63
+ * import is replaced in place; otherwise the library import is added first and local ones stay.
64
+ * `read` returns a workspace file (or undefined).
65
+ */
66
+ function useLibraryNoncePatch(file, text, read, opts = { replaceLocal: true }) {
67
+ const replaced = [];
68
+ const kept = [];
69
+ let swapped = text.replace(SIDE_EFFECT, (line, _q, spec) => {
70
+ if (!spec.startsWith('.'))
71
+ return line;
72
+ const base = path.posix.normalize(path.posix.join(path.posix.dirname(file), spec));
73
+ const target = RESOLVE_SUFFIXES.map((s) => base + s).find((p) => read(p) !== undefined);
74
+ const kind = noncePatchKind(spec, target ? read(target) : undefined);
75
+ if (kind === 'none')
76
+ return line;
77
+ if (kind === 'other' || !opts.replaceLocal || (0, exports.hasCspNonceImport)(text)) {
78
+ kept.push(spec);
79
+ return line;
80
+ }
81
+ replaced.push(spec);
82
+ return replaced.length === 1 ? `${IMPORT_LINE} // was '${spec}'` : `// was: ${line.trim()}`;
83
+ });
84
+ // A replaced import stays where the local patch was imported (normally first).
85
+ if (replaced.length === 0)
86
+ swapped = withCspNonceImport(swapped);
87
+ return { text: swapped, replaced, kept };
88
+ }
89
+ exports.useLibraryNoncePatch = useLibraryNoncePatch;
90
+ /** Applies useLibraryNoncePatch to a main.ts in the tree. */
91
+ function patchMainInTree(tree, mainFile, opts) {
92
+ if (!tree.exists(mainFile))
93
+ return undefined;
94
+ const text = tree.read(mainFile, 'utf8') ?? '';
95
+ const result = useLibraryNoncePatch(mainFile, text, (p) => (tree.exists(p) && tree.isFile(p) ? tree.read(p, 'utf8') ?? '' : undefined), opts);
96
+ if (result.text !== text)
97
+ tree.write(mainFile, result.text);
98
+ return result;
99
+ }
100
+ exports.patchMainInTree = patchMainInTree;
101
+ const code = (s) => `\`${s}\``;
102
+ /**
103
+ * Patches the main.ts of migrated apps and returns the report note (undefined when nothing
104
+ * changed). `mains` are workspace paths.
105
+ */
106
+ function noncePatchMains(tree, mains) {
107
+ const added = [];
108
+ const swapped = [];
109
+ const keptLocal = [];
110
+ for (const main of mains) {
111
+ const before = tree.exists(main) ? tree.read(main, 'utf8') : undefined;
112
+ const result = patchMainInTree(tree, main, { replaceLocal: true });
113
+ if (result === undefined)
114
+ continue;
115
+ if (result.kept.length > 0) {
116
+ keptLocal.push(`${code(main)} (${result.kept.map(code).join(', ')})`);
117
+ }
118
+ if (tree.read(main, 'utf8') === before)
119
+ continue;
120
+ if (result.replaced.length > 0) {
121
+ swapped.push(`${code(main)} (was ${result.replaced.map(code).join(', ')})`);
122
+ }
123
+ else
124
+ added.push(code(main));
125
+ }
126
+ const parts = [];
127
+ if (swapped.length > 0) {
128
+ parts.push(`the local CSP nonce patch import was replaced by ${code(exports.CSP_NONCE_IMPORT)} in ` +
129
+ `${swapped.join(', ')}; the local file stays where it was copied, delete it once ` +
130
+ 'nothing imports it');
131
+ }
132
+ if (added.length > 0) {
133
+ parts.push(`${code(exports.CSP_NONCE_IMPORT)} was added first in ${added.join(', ')} (it gives runtime ` +
134
+ '<script>/<style> elements the page CSP nonce; without a nonce it does nothing)');
135
+ }
136
+ if (keptLocal.length > 0) {
137
+ parts.push(`local nonce patches that read the nonce some other way were kept in ${keptLocal.join(', ')}; check whether the library patch can replace them`);
138
+ }
139
+ return parts.length > 0 ? `CSP nonce: ${parts.join('; ')}.` : undefined;
140
+ }
141
+ exports.noncePatchMains = noncePatchMains;
142
+ //# sourceMappingURL=csp-nonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csp-nonce.js","sourceRoot":"","sources":["../../../../src/lib/utils/csp-nonce.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { GeneratorCallback, Tree } from '@nx/devkit';
2
+ export type Deps = Record<string, string>;
3
+ /** Major version of a semver-ish range ("~15.2.0" → 15); undefined when it can't be read. */
4
+ export declare function majorOf(version: string): number | undefined;
5
+ /** Version declared for `name` in dependencies or devDependencies. */
6
+ export declare function declaredVersion(tree: Tree, name: string): string | undefined;
7
+ /**
8
+ * The workspace's nx version, for the @nx/* packages that must match it exactly: the installed
9
+ * version from node_modules when present, else the declared range, else ^17.0.0.
10
+ */
11
+ export declare function nxVersion(tree: Tree): string;
12
+ /**
13
+ * Adds only the packages that are not declared yet (in either field) and never changes an
14
+ * existing version. Returns the install callback, or undefined when nothing was added.
15
+ */
16
+ export declare function addMissingDependencies(tree: Tree, deps: Deps, devDeps: Deps): GeneratorCallback | undefined;
17
+ /** ESLint stack every workspace needs for the root .eslintrc.json (same versions as the sample). */
18
+ export declare function lintDependencies(nx: string): Deps;
19
+ export declare function ensureLintDependencies(tree: Tree): GeneratorCallback | undefined;
20
+ /** terser: loaded from the workspace by the release target's comment and console stripping. */
21
+ export declare const RELEASE_HARDENING_DEV_DEPENDENCIES: Deps;
22
+ export declare function ensureReleaseHardeningDependencies(tree: Tree): GeneratorCallback | undefined;
23
+ /** javascript-obfuscator: loaded from the workspace by the release target's obfuscate step. */
24
+ export declare const OBFUSCATION_DEV_DEPENDENCIES: Deps;
25
+ export declare function ensureObfuscationDependencies(tree: Tree): GeneratorCallback | undefined;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureObfuscationDependencies = exports.OBFUSCATION_DEV_DEPENDENCIES = exports.ensureReleaseHardeningDependencies = exports.RELEASE_HARDENING_DEV_DEPENDENCIES = exports.ensureLintDependencies = exports.lintDependencies = exports.addMissingDependencies = exports.nxVersion = exports.declaredVersion = exports.majorOf = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ /** Major version of a semver-ish range ("~15.2.0" → 15); undefined when it can't be read. */
6
+ function majorOf(version) {
7
+ const m = /^\D*(\d+)(?:[.\s]|$)/.exec(version.trim());
8
+ return m ? Number(m[1]) : undefined;
9
+ }
10
+ exports.majorOf = majorOf;
11
+ /** Version declared for `name` in dependencies or devDependencies. */
12
+ function declaredVersion(tree, name) {
13
+ const pkg = (0, devkit_1.readJson)(tree, 'package.json');
14
+ return pkg.dependencies?.[name] ?? pkg.devDependencies?.[name];
15
+ }
16
+ exports.declaredVersion = declaredVersion;
17
+ /**
18
+ * The workspace's nx version, for the @nx/* packages that must match it exactly: the installed
19
+ * version from node_modules when present, else the declared range, else ^17.0.0.
20
+ */
21
+ function nxVersion(tree) {
22
+ if (tree.exists('node_modules/nx/package.json')) {
23
+ const installed = (0, devkit_1.readJson)(tree, 'node_modules/nx/package.json').version;
24
+ if (typeof installed === 'string')
25
+ return installed;
26
+ }
27
+ return declaredVersion(tree, 'nx') ?? '^17.0.0';
28
+ }
29
+ exports.nxVersion = nxVersion;
30
+ /**
31
+ * Adds only the packages that are not declared yet (in either field) and never changes an
32
+ * existing version. Returns the install callback, or undefined when nothing was added.
33
+ */
34
+ function addMissingDependencies(tree, deps, devDeps) {
35
+ const missing = (wanted) => Object.fromEntries(Object.entries(wanted).filter(([name]) => declaredVersion(tree, name) === undefined));
36
+ const d = missing(deps);
37
+ const dd = missing(devDeps);
38
+ if (Object.keys(d).length === 0 && Object.keys(dd).length === 0)
39
+ return undefined;
40
+ return (0, devkit_1.addDependenciesToPackageJson)(tree, d, dd);
41
+ }
42
+ exports.addMissingDependencies = addMissingDependencies;
43
+ /** ESLint stack every workspace needs for the root .eslintrc.json (same versions as the sample). */
44
+ function lintDependencies(nx) {
45
+ return {
46
+ eslint: '^8.57.0',
47
+ '@nx/eslint': nx,
48
+ '@nx/eslint-plugin': nx,
49
+ '@typescript-eslint/eslint-plugin': '^5.62.0',
50
+ '@typescript-eslint/parser': '^5.62.0',
51
+ 'eslint-config-prettier': '^9.1.0',
52
+ };
53
+ }
54
+ exports.lintDependencies = lintDependencies;
55
+ function ensureLintDependencies(tree) {
56
+ return addMissingDependencies(tree, {}, lintDependencies(nxVersion(tree)));
57
+ }
58
+ exports.ensureLintDependencies = ensureLintDependencies;
59
+ /** terser: loaded from the workspace by the release target's comment and console stripping. */
60
+ exports.RELEASE_HARDENING_DEV_DEPENDENCIES = { terser: '^5.16.0' };
61
+ function ensureReleaseHardeningDependencies(tree) {
62
+ return addMissingDependencies(tree, {}, exports.RELEASE_HARDENING_DEV_DEPENDENCIES);
63
+ }
64
+ exports.ensureReleaseHardeningDependencies = ensureReleaseHardeningDependencies;
65
+ /** javascript-obfuscator: loaded from the workspace by the release target's obfuscate step. */
66
+ exports.OBFUSCATION_DEV_DEPENDENCIES = { 'javascript-obfuscator': '^4.2.2' };
67
+ function ensureObfuscationDependencies(tree) {
68
+ return addMissingDependencies(tree, {}, exports.OBFUSCATION_DEV_DEPENDENCIES);
69
+ }
70
+ exports.ensureObfuscationDependencies = ensureObfuscationDependencies;
71
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/lib/utils/dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /** The parts of `semver` we use (typed here so the build needs no @types/semver). */
2
+ interface Semver {
3
+ validRange(range: string): string | null;
4
+ intersects(a: string, b: string): boolean;
5
+ }
6
+ /** The parts of `ignore` we use. */
7
+ export interface Ignore {
8
+ add(patterns: string): Ignore;
9
+ ignores(pathname: string): boolean;
10
+ }
11
+ export declare const semver: Semver;
12
+ export declare const createIgnore: () => Ignore;
13
+ /**
14
+ * True when two version specs can be satisfied together. Ranges that semver understands are
15
+ * compared by intersection (`^15.2.0` and `~15.2.0` overlap); anything else (tags, URLs, `file:`)
16
+ * only matches when the strings are equal.
17
+ */
18
+ export declare function rangesOverlap(a: string, b: string): boolean;
19
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rangesOverlap = exports.createIgnore = exports.semver = void 0;
4
+ const module_1 = require("module");
5
+ /**
6
+ * `semver` and `ignore` are direct dependencies of @nx/devkit (our peer). Resolving them through
7
+ * @nx/devkit works with hoisted (npm) and strict (pnpm) node_modules layouts alike, without the
8
+ * plugin declaring its own copies.
9
+ */
10
+ const fromDevkit = (0, module_1.createRequire)(require.resolve('@nx/devkit/package.json'));
11
+ exports.semver = fromDevkit('semver');
12
+ const ignoreModule = fromDevkit('ignore');
13
+ exports.createIgnore = ignoreModule.default ?? ignoreModule;
14
+ /**
15
+ * True when two version specs can be satisfied together. Ranges that semver understands are
16
+ * compared by intersection (`^15.2.0` and `~15.2.0` overlap); anything else (tags, URLs, `file:`)
17
+ * only matches when the strings are equal.
18
+ */
19
+ function rangesOverlap(a, b) {
20
+ if (a === b)
21
+ return true;
22
+ const ra = exports.semver.validRange(a);
23
+ const rb = exports.semver.validRange(b);
24
+ if (!ra || !rb)
25
+ return false;
26
+ try {
27
+ return exports.semver.intersects(ra, rb);
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ exports.rangesOverlap = rangesOverlap;
34
+ //# sourceMappingURL=devkit-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devkit-deps.js","sourceRoot":"","sources":["../../../../src/lib/utils/devkit-deps.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAchE,QAAA,MAAM,GAAW,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,YAAY,GAAiB,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;AAE/E;;;;GAIG;AACH,SAAgB,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI;QACF,OAAO,cAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAClC;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,18 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { EnvLayout } from './angular-project';
3
+ /**
4
+ * environments/<app>/environment.ts (dev), .uat.ts and .prod.ts; in the per-env layout
5
+ * environment.dev.ts instead of environment.ts, plus the shared environments/environment.ts
6
+ * (created when missing) that the app imports and its build configurations replace.
7
+ */
8
+ export declare function generateAngularEnvFiles(tree: Tree, projectName: string, layout?: EnvLayout): void;
9
+ export interface FlutterEnvFilesOptions {
10
+ /** Leave env/<env>.json files that already exist in the tree as they are. */
11
+ keepExisting?: boolean;
12
+ /** Write `{}` instead of the example values (for apps with their own configuration). */
13
+ empty?: boolean;
14
+ /** Project root (default apps/<name>). */
15
+ root?: string;
16
+ }
17
+ /** apps/<name>/env/{dev,uat,prod}.json; returns the files written. */
18
+ export declare function generateFlutterEnvFiles(tree: Tree, projectName: string, opts?: FlutterEnvFilesOptions): string[];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateFlutterEnvFiles = exports.generateAngularEnvFiles = void 0;
4
+ const angular_project_1 = require("./angular-project");
5
+ /**
6
+ * environments/<app>/environment.ts (dev), .uat.ts and .prod.ts; in the per-env layout
7
+ * environment.dev.ts instead of environment.ts, plus the shared environments/environment.ts
8
+ * (created when missing) that the app imports and its build configurations replace.
9
+ */
10
+ function generateAngularEnvFiles(tree, projectName, layout = 'default') {
11
+ const base = `environments/${projectName}`;
12
+ tree.write(layout === 'per-env' ? `${base}/environment.dev.ts` : `${base}/environment.ts`, `export const environment = {\n production: false,\n envName: 'dev',\n};\n`);
13
+ tree.write(`${base}/environment.uat.ts`, `export const environment = {\n production: false,\n envName: 'uat',\n};\n`);
14
+ tree.write(`${base}/environment.prod.ts`, `export const environment = {\n production: true,\n envName: 'prod',\n};\n`);
15
+ if (layout === 'per-env' && !tree.exists(angular_project_1.PER_ENV_ROOT_FILE)) {
16
+ tree.write(angular_project_1.PER_ENV_ROOT_FILE, "// Replaced at build time by each app's environments/<app>/environment.<env>.ts\n" +
17
+ '// (fileReplacements in its project.json). Only the shape matters here.\n' +
18
+ `export const environment = {\n production: false,\n envName: 'dev',\n};\n`);
19
+ }
20
+ }
21
+ exports.generateAngularEnvFiles = generateAngularEnvFiles;
22
+ /** apps/<name>/env/{dev,uat,prod}.json; returns the files written. */
23
+ function generateFlutterEnvFiles(tree, projectName, opts = {}) {
24
+ const base = `${opts.root ?? `apps/${projectName}`}/env`;
25
+ const files = {
26
+ dev: { FLUTTER_ENV: 'dev', API_BASE_URL: 'https://dev.example.com' },
27
+ uat: { FLUTTER_ENV: 'uat', API_BASE_URL: 'https://uat.example.com' },
28
+ prod: { FLUTTER_ENV: 'prod', API_BASE_URL: 'https://example.com' },
29
+ };
30
+ const written = [];
31
+ for (const [env, content] of Object.entries(files)) {
32
+ const file = `${base}/${env}.json`;
33
+ if (opts.keepExisting && tree.exists(file))
34
+ continue;
35
+ tree.write(file, opts.empty ? '{}\n' : JSON.stringify(content, null, 2) + '\n');
36
+ written.push(file);
37
+ }
38
+ return written;
39
+ }
40
+ exports.generateFlutterEnvFiles = generateFlutterEnvFiles;
41
+ //# sourceMappingURL=env-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-files.js","sourceRoot":"","sources":["../../../../src/lib/utils/env-files.ts"],"names":[],"mappings":";;;AAEA,uDAAiE;AAEjE;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,IAAU,EACV,WAAmB,EACnB,SAAoB,SAAS;IAE7B,MAAM,IAAI,GAAG,gBAAgB,WAAW,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK,CACR,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,EAC9E,6EAA6E,CAC9E,CAAC;IACF,IAAI,CAAC,KAAK,CACR,GAAG,IAAI,qBAAqB,EAC5B,6EAA6E,CAC9E,CAAC;IACF,IAAI,CAAC,KAAK,CACR,GAAG,IAAI,sBAAsB,EAC7B,6EAA6E,CAC9E,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAiB,CAAC,EAAE;QAC3D,IAAI,CAAC,KAAK,CACR,mCAAiB,EACjB,mFAAmF;YACjF,2EAA2E;YAC3E,6EAA6E,CAChF,CAAC;KACH;AACH,CAAC;AA1BD,0DA0BC;AAWD,sEAAsE;AACtE,SAAgB,uBAAuB,CACrC,IAAU,EACV,WAAmB,EACnB,OAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,WAAW,EAAE,MAAM,CAAC;IACzD,MAAM,KAAK,GAA2B;QACpC,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE;QACpE,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE;QACpE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE;KACnE,CAAC;IACF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAClD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC;QACnC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,SAAS;QACrD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAnBD,0DAmBC"}
@@ -0,0 +1,7 @@
1
+ import { Tree } from '@nx/devkit';
2
+ /**
3
+ * Writes newContent to filePath. If a file already exists and content differs,
4
+ * backs up the original to filePath.bak before overwriting.
5
+ * Returns true if the file was written, false if content was identical.
6
+ */
7
+ export declare function backupAndOverwrite(tree: Tree, filePath: string, newContent: string): boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.backupAndOverwrite = void 0;
4
+ /**
5
+ * Writes newContent to filePath. If a file already exists and content differs,
6
+ * backs up the original to filePath.bak before overwriting.
7
+ * Returns true if the file was written, false if content was identical.
8
+ */
9
+ function backupAndOverwrite(tree, filePath, newContent) {
10
+ if (tree.exists(filePath)) {
11
+ const existing = (tree.read(filePath) ?? Buffer.alloc(0)).toString();
12
+ if (existing === newContent)
13
+ return false;
14
+ tree.write(`${filePath}.bak`, existing);
15
+ }
16
+ tree.write(filePath, newContent);
17
+ return true;
18
+ }
19
+ exports.backupAndOverwrite = backupAndOverwrite;
20
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../../src/lib/utils/filesystem.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAU,EAAE,QAAgB,EAAE,UAAkB;IACjF,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACzB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC;KACzC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AARD,gDAQC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The web platform folder of a Flutter app (what `flutter create --platforms web` writes, minus the
3
+ * icons). `flutter build web` refuses to run without web/index.html. The page loads Flutter through
4
+ * flutter_bootstrap.js (Flutter 3.22+) with no inline script, so it works under a strict CSP, and
5
+ * keeps $FLUTTER_BASE_HREF so `--base-href` takes effect.
6
+ */
7
+ export declare function flutterWebFiles(projectName: string): Record<string, string>;