@cbnventures/nova 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/build/package.json +9 -13
  2. package/build/src/api/node-releases.d.ts +1 -1
  3. package/build/src/api/spdx-licenses.d.ts +1 -1
  4. package/build/src/cli/index.js +155 -39
  5. package/build/src/cli/index.js.map +1 -1
  6. package/build/src/cli/recipe/index.d.ts +3 -0
  7. package/build/src/cli/recipe/index.d.ts.map +1 -0
  8. package/build/src/cli/recipe/index.js +57 -0
  9. package/build/src/cli/recipe/index.js.map +1 -0
  10. package/build/src/cli/recipe/package-json/cleanup.d.ts +8 -0
  11. package/build/src/cli/recipe/package-json/cleanup.d.ts.map +1 -0
  12. package/build/src/cli/recipe/package-json/cleanup.js +174 -0
  13. package/build/src/cli/recipe/package-json/cleanup.js.map +1 -0
  14. package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts +8 -0
  15. package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts.map +1 -0
  16. package/build/src/cli/recipe/package-json/normalize-artifacts.js +242 -0
  17. package/build/src/cli/recipe/package-json/normalize-artifacts.js.map +1 -0
  18. package/build/src/cli/recipe/package-json/normalize-bundler.d.ts +6 -0
  19. package/build/src/cli/recipe/package-json/normalize-bundler.d.ts.map +1 -0
  20. package/build/src/cli/recipe/package-json/normalize-bundler.js +145 -0
  21. package/build/src/cli/recipe/package-json/normalize-bundler.js.map +1 -0
  22. package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts +9 -0
  23. package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts.map +1 -0
  24. package/build/src/cli/recipe/package-json/normalize-dependencies.js +262 -0
  25. package/build/src/cli/recipe/package-json/normalize-dependencies.js.map +1 -0
  26. package/build/src/cli/recipe/package-json/normalize-modules.d.ts +6 -0
  27. package/build/src/cli/recipe/package-json/normalize-modules.d.ts.map +1 -0
  28. package/build/src/cli/recipe/package-json/normalize-modules.js +249 -0
  29. package/build/src/cli/recipe/package-json/normalize-modules.js.map +1 -0
  30. package/build/src/cli/recipe/package-json/normalize-tooling.d.ts +7 -0
  31. package/build/src/cli/recipe/package-json/normalize-tooling.d.ts.map +1 -0
  32. package/build/src/cli/recipe/package-json/normalize-tooling.js +168 -0
  33. package/build/src/cli/recipe/package-json/normalize-tooling.js.map +1 -0
  34. package/build/src/cli/recipe/package-json/sync-environment.d.ts +9 -0
  35. package/build/src/cli/recipe/package-json/sync-environment.d.ts.map +1 -0
  36. package/build/src/cli/recipe/package-json/sync-environment.js +286 -0
  37. package/build/src/cli/recipe/package-json/sync-environment.js.map +1 -0
  38. package/build/src/cli/recipe/package-json/sync-identity.d.ts +6 -0
  39. package/build/src/cli/recipe/package-json/sync-identity.d.ts.map +1 -0
  40. package/build/src/cli/recipe/package-json/sync-identity.js +219 -0
  41. package/build/src/cli/recipe/package-json/sync-identity.js.map +1 -0
  42. package/build/src/cli/recipe/package-json/sync-ownership.d.ts +6 -0
  43. package/build/src/cli/recipe/package-json/sync-ownership.d.ts.map +1 -0
  44. package/build/src/cli/recipe/package-json/sync-ownership.js +349 -0
  45. package/build/src/cli/recipe/package-json/sync-ownership.js.map +1 -0
  46. package/build/src/cli/utility/changelog.d.ts +1 -1
  47. package/build/src/cli/utility/changelog.d.ts.map +1 -1
  48. package/build/src/cli/utility/changelog.js +10 -10
  49. package/build/src/cli/utility/changelog.js.map +1 -1
  50. package/build/src/cli/utility/initialize.d.ts +1 -1
  51. package/build/src/cli/utility/initialize.d.ts.map +1 -1
  52. package/build/src/cli/utility/initialize.js +259 -74
  53. package/build/src/cli/utility/initialize.js.map +1 -1
  54. package/build/src/cli/utility/run-recipes.d.ts +5 -0
  55. package/build/src/cli/utility/run-recipes.d.ts.map +1 -0
  56. package/build/src/cli/utility/run-recipes.js +42 -0
  57. package/build/src/cli/utility/run-recipes.js.map +1 -0
  58. package/build/src/cli/utility/run-scripts.d.ts +10 -0
  59. package/build/src/cli/utility/run-scripts.d.ts.map +1 -0
  60. package/build/src/cli/utility/run-scripts.js +160 -0
  61. package/build/src/cli/utility/run-scripts.js.map +1 -0
  62. package/build/src/cli/utility/transpile.d.ts +9 -0
  63. package/build/src/cli/utility/transpile.d.ts.map +1 -0
  64. package/build/src/cli/utility/transpile.js +59 -0
  65. package/build/src/cli/utility/transpile.js.map +1 -0
  66. package/build/src/cli/utility/type-check.d.ts +1 -1
  67. package/build/src/cli/utility/type-check.d.ts.map +1 -1
  68. package/build/src/cli/utility/type-check.js +3 -3
  69. package/build/src/cli/utility/type-check.js.map +1 -1
  70. package/build/src/cli/utility/version.d.ts +1 -1
  71. package/build/src/cli/utility/version.d.ts.map +1 -1
  72. package/build/src/cli/utility/version.js.map +1 -1
  73. package/build/src/lib/item.d.ts +7 -2
  74. package/build/src/lib/item.d.ts.map +1 -1
  75. package/build/src/lib/item.js +37 -10
  76. package/build/src/lib/item.js.map +1 -1
  77. package/build/src/lib/nova-config.d.ts +2 -2
  78. package/build/src/lib/nova-config.d.ts.map +1 -1
  79. package/build/src/lib/nova-config.js +46 -21
  80. package/build/src/lib/nova-config.js.map +1 -1
  81. package/build/src/lib/utility.d.ts +1 -1
  82. package/build/src/lib/utility.d.ts.map +1 -1
  83. package/build/src/lib/utility.js +9 -6
  84. package/build/src/lib/utility.js.map +1 -1
  85. package/build/src/presets/eslint/dx-code-style.d.mts +1 -1
  86. package/build/src/presets/eslint/dx-ignore.d.mts +1 -1
  87. package/build/src/presets/eslint/env-browser.d.mts +1 -1
  88. package/build/src/presets/eslint/env-edge.d.mts +1 -1
  89. package/build/src/presets/eslint/env-node.d.mts +1 -1
  90. package/build/src/presets/eslint/env-service-worker.d.mts +1 -1
  91. package/build/src/presets/eslint/env-web-worker.d.mts +1 -1
  92. package/build/src/presets/eslint/fw-docusaurus.d.mts +1 -1
  93. package/build/src/presets/eslint/fw-expressjs.d.mts +1 -1
  94. package/build/src/presets/eslint/fw-nextjs.d.mts +1 -1
  95. package/build/src/presets/eslint/lang-javascript.d.mts +1 -1
  96. package/build/src/presets/eslint/lang-mdx.d.mts +1 -1
  97. package/build/src/presets/eslint/lang-typescript.d.mts +1 -1
  98. package/build/src/presets/eslint/platform-cloudflare-workers.d.mts +1 -1
  99. package/build/src/presets/eslint/tool-vite.d.mts +1 -1
  100. package/build/src/rules/eslint/formatting/no-raw-text-in-code.d.ts.map +1 -0
  101. package/build/src/rules/eslint/{no-raw-text-in-code.js → formatting/no-raw-text-in-code.js} +1 -1
  102. package/build/src/rules/eslint/formatting/no-raw-text-in-code.js.map +1 -0
  103. package/build/src/rules/eslint/formatting/require-padding-lines.d.ts +13 -0
  104. package/build/src/rules/eslint/formatting/require-padding-lines.d.ts.map +1 -0
  105. package/build/src/rules/eslint/formatting/require-padding-lines.js +173 -0
  106. package/build/src/rules/eslint/formatting/require-padding-lines.js.map +1 -0
  107. package/build/src/rules/eslint/index.d.ts +14 -5
  108. package/build/src/rules/eslint/index.d.ts.map +1 -1
  109. package/build/src/rules/eslint/index.js +14 -5
  110. package/build/src/rules/eslint/index.js.map +1 -1
  111. package/build/src/rules/eslint/nova/no-logger-dev.d.ts.map +1 -0
  112. package/build/src/rules/eslint/{no-logger-dev.js → nova/no-logger-dev.js} +6 -4
  113. package/build/src/rules/eslint/nova/no-logger-dev.js.map +1 -0
  114. package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts +6 -0
  115. package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts.map +1 -0
  116. package/build/src/rules/eslint/patterns/no-assign-then-return.js +55 -0
  117. package/build/src/rules/eslint/patterns/no-assign-then-return.js.map +1 -0
  118. package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts +6 -0
  119. package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts.map +1 -0
  120. package/build/src/rules/eslint/patterns/no-bracket-assignment.js +31 -0
  121. package/build/src/rules/eslint/patterns/no-bracket-assignment.js.map +1 -0
  122. package/build/src/rules/eslint/patterns/no-destructuring.d.ts +13 -0
  123. package/build/src/rules/eslint/patterns/no-destructuring.d.ts.map +1 -0
  124. package/build/src/rules/eslint/patterns/no-destructuring.js +177 -0
  125. package/build/src/rules/eslint/patterns/no-destructuring.js.map +1 -0
  126. package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts +6 -0
  127. package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts.map +1 -0
  128. package/build/src/rules/eslint/patterns/no-implicit-boolean.js +62 -0
  129. package/build/src/rules/eslint/patterns/no-implicit-boolean.js.map +1 -0
  130. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts +6 -0
  131. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts.map +1 -0
  132. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js +32 -0
  133. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js.map +1 -0
  134. package/build/src/rules/eslint/patterns/switch-case-blocks.d.ts.map +1 -0
  135. package/build/src/rules/eslint/{switch-case-blocks.js → patterns/switch-case-blocks.js} +2 -2
  136. package/build/src/rules/eslint/patterns/switch-case-blocks.js.map +1 -0
  137. package/build/src/rules/eslint/regex/no-regex-literal-flags.d.ts.map +1 -0
  138. package/build/src/rules/eslint/regex/no-regex-literal-flags.js.map +1 -0
  139. package/build/src/rules/eslint/{no-regex-literals.d.ts → regex/no-regex-literals.d.ts} +1 -1
  140. package/build/src/rules/eslint/regex/no-regex-literals.d.ts.map +1 -0
  141. package/build/src/rules/eslint/{no-regex-literals.js → regex/no-regex-literals.js} +4 -4
  142. package/build/src/rules/eslint/regex/no-regex-literals.js.map +1 -0
  143. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts +6 -0
  144. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts.map +1 -0
  145. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js +38 -0
  146. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js.map +1 -0
  147. package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts +6 -0
  148. package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts.map +1 -0
  149. package/build/src/rules/eslint/typescript/no-inline-type-annotation.js +36 -0
  150. package/build/src/rules/eslint/typescript/no-inline-type-annotation.js.map +1 -0
  151. package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts +9 -0
  152. package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts.map +1 -0
  153. package/build/src/rules/eslint/typescript/no-shared-type-import.js +57 -0
  154. package/build/src/rules/eslint/typescript/no-shared-type-import.js.map +1 -0
  155. package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts +2 -0
  156. package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts.map +1 -0
  157. package/build/src/tests/cli/recipe/package-json/cleanup.test.js +240 -0
  158. package/build/src/tests/cli/recipe/package-json/cleanup.test.js.map +1 -0
  159. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts +2 -0
  160. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts.map +1 -0
  161. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js +161 -0
  162. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js.map +1 -0
  163. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts +2 -0
  164. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts.map +1 -0
  165. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js +161 -0
  166. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js.map +1 -0
  167. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts +2 -0
  168. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts.map +1 -0
  169. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js +175 -0
  170. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js.map +1 -0
  171. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts +2 -0
  172. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts.map +1 -0
  173. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js +164 -0
  174. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js.map +1 -0
  175. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts +2 -0
  176. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts.map +1 -0
  177. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js +193 -0
  178. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js.map +1 -0
  179. package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts +2 -0
  180. package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts.map +1 -0
  181. package/build/src/tests/cli/recipe/package-json/sync-environment.test.js +158 -0
  182. package/build/src/tests/cli/recipe/package-json/sync-environment.test.js.map +1 -0
  183. package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts +2 -0
  184. package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts.map +1 -0
  185. package/build/src/tests/cli/recipe/package-json/sync-identity.test.js +156 -0
  186. package/build/src/tests/cli/recipe/package-json/sync-identity.test.js.map +1 -0
  187. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts +2 -0
  188. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts.map +1 -0
  189. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js +164 -0
  190. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js.map +1 -0
  191. package/build/src/tests/cli/utility/changelog.test.d.ts +2 -0
  192. package/build/src/tests/cli/utility/changelog.test.d.ts.map +1 -0
  193. package/build/src/tests/cli/utility/changelog.test.js +274 -0
  194. package/build/src/tests/cli/utility/changelog.test.js.map +1 -0
  195. package/build/src/tests/cli/utility/initialize.test.d.ts +2 -0
  196. package/build/src/tests/cli/utility/initialize.test.d.ts.map +1 -0
  197. package/build/src/tests/cli/utility/initialize.test.js +27 -0
  198. package/build/src/tests/cli/utility/initialize.test.js.map +1 -0
  199. package/build/src/tests/cli/utility/run-recipes.test.d.ts +2 -0
  200. package/build/src/tests/cli/utility/run-recipes.test.d.ts.map +1 -0
  201. package/build/src/tests/cli/utility/run-recipes.test.js +41 -0
  202. package/build/src/tests/cli/utility/run-recipes.test.js.map +1 -0
  203. package/build/src/tests/cli/utility/run-scripts.test.d.ts +2 -0
  204. package/build/src/tests/cli/utility/run-scripts.test.d.ts.map +1 -0
  205. package/build/src/tests/cli/utility/run-scripts.test.js +153 -0
  206. package/build/src/tests/cli/utility/run-scripts.test.js.map +1 -0
  207. package/build/src/tests/cli/utility/transpile.test.d.ts +2 -0
  208. package/build/src/tests/cli/utility/transpile.test.d.ts.map +1 -0
  209. package/build/src/tests/cli/utility/transpile.test.js +65 -0
  210. package/build/src/tests/cli/utility/transpile.test.js.map +1 -0
  211. package/build/src/tests/cli/utility/type-check.test.d.ts +2 -0
  212. package/build/src/tests/cli/utility/type-check.test.d.ts.map +1 -0
  213. package/build/src/tests/cli/utility/type-check.test.js +63 -0
  214. package/build/src/tests/cli/utility/type-check.test.js.map +1 -0
  215. package/build/src/tests/cli/utility/version.test.d.ts +2 -0
  216. package/build/src/tests/cli/utility/version.test.d.ts.map +1 -0
  217. package/build/src/tests/cli/utility/version.test.js +38 -0
  218. package/build/src/tests/cli/utility/version.test.js.map +1 -0
  219. package/build/src/tests/lib/item.test.js +8 -8
  220. package/build/src/tests/lib/item.test.js.map +1 -1
  221. package/build/src/tests/lib/nova-config.test.js +53 -26
  222. package/build/src/tests/lib/nova-config.test.js.map +1 -1
  223. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts.map +1 -0
  224. package/build/src/tests/rules/eslint/{no-raw-text-in-code.test.js → formatting/no-raw-text-in-code.test.js} +1 -1
  225. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.js.map +1 -0
  226. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts +2 -0
  227. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts.map +1 -0
  228. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js +131 -0
  229. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js.map +1 -0
  230. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.d.ts.map +1 -0
  231. package/build/src/tests/rules/eslint/{no-logger-dev.test.js → nova/no-logger-dev.test.js} +1 -1
  232. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.js.map +1 -0
  233. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts +2 -0
  234. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts.map +1 -0
  235. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js +39 -0
  236. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js.map +1 -0
  237. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts +2 -0
  238. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts.map +1 -0
  239. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js +40 -0
  240. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js.map +1 -0
  241. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts +2 -0
  242. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts.map +1 -0
  243. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js +86 -0
  244. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js.map +1 -0
  245. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts +2 -0
  246. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts.map +1 -0
  247. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js +76 -0
  248. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js.map +1 -0
  249. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts +2 -0
  250. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts.map +1 -0
  251. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js +42 -0
  252. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js.map +1 -0
  253. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.d.ts.map +1 -0
  254. package/build/src/tests/rules/eslint/{switch-case-blocks.test.js → patterns/switch-case-blocks.test.js} +1 -1
  255. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.js.map +1 -0
  256. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts.map +1 -0
  257. package/build/src/tests/rules/eslint/{no-regex-literal-flags.test.js → regex/no-regex-literal-flags.test.js} +1 -1
  258. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.js.map +1 -0
  259. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.d.ts.map +1 -0
  260. package/build/src/tests/rules/eslint/{no-regex-literals.test.js → regex/no-regex-literals.test.js} +1 -1
  261. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.js.map +1 -0
  262. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts +2 -0
  263. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts.map +1 -0
  264. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js +34 -0
  265. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js.map +1 -0
  266. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts +2 -0
  267. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts.map +1 -0
  268. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js +55 -0
  269. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js.map +1 -0
  270. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts +2 -0
  271. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts.map +1 -0
  272. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js +51 -0
  273. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js.map +1 -0
  274. package/build/src/toolkit/cli-header.d.ts +1 -1
  275. package/build/src/toolkit/cli-header.js +1 -1
  276. package/build/src/toolkit/logger.d.ts +1 -1
  277. package/build/src/toolkit/markdown-table.d.ts +1 -1
  278. package/package.json +9 -13
  279. package/build/eslint.config.d.ts +0 -34
  280. package/build/eslint.config.d.ts.map +0 -1
  281. package/build/eslint.config.js +0 -40
  282. package/build/eslint.config.js.map +0 -1
  283. package/build/src/cli/recipe/pin-versions.d.ts +0 -7
  284. package/build/src/cli/recipe/pin-versions.d.ts.map +0 -1
  285. package/build/src/cli/recipe/pin-versions.js +0 -145
  286. package/build/src/cli/recipe/pin-versions.js.map +0 -1
  287. package/build/src/cli/recipe/sync-lts-engines.d.ts +0 -6
  288. package/build/src/cli/recipe/sync-lts-engines.d.ts.map +0 -1
  289. package/build/src/cli/recipe/sync-lts-engines.js +0 -118
  290. package/build/src/cli/recipe/sync-lts-engines.js.map +0 -1
  291. package/build/src/cli/recipe/sync-packages.d.ts +0 -18
  292. package/build/src/cli/recipe/sync-packages.d.ts.map +0 -1
  293. package/build/src/cli/recipe/sync-packages.js +0 -1212
  294. package/build/src/cli/recipe/sync-packages.js.map +0 -1
  295. package/build/src/rules/eslint/no-logger-dev.d.ts.map +0 -1
  296. package/build/src/rules/eslint/no-logger-dev.js.map +0 -1
  297. package/build/src/rules/eslint/no-raw-text-in-code.d.ts.map +0 -1
  298. package/build/src/rules/eslint/no-raw-text-in-code.js.map +0 -1
  299. package/build/src/rules/eslint/no-regex-literal-flags.d.ts.map +0 -1
  300. package/build/src/rules/eslint/no-regex-literal-flags.js.map +0 -1
  301. package/build/src/rules/eslint/no-regex-literals.d.ts.map +0 -1
  302. package/build/src/rules/eslint/no-regex-literals.js.map +0 -1
  303. package/build/src/rules/eslint/switch-case-blocks.d.ts.map +0 -1
  304. package/build/src/rules/eslint/switch-case-blocks.js.map +0 -1
  305. package/build/src/tests/cli/recipe/pin-versions.test.d.ts +0 -2
  306. package/build/src/tests/cli/recipe/pin-versions.test.d.ts.map +0 -1
  307. package/build/src/tests/cli/recipe/pin-versions.test.js +0 -197
  308. package/build/src/tests/cli/recipe/pin-versions.test.js.map +0 -1
  309. package/build/src/tests/cli/recipe/sync-lts-engines.test.d.ts +0 -2
  310. package/build/src/tests/cli/recipe/sync-lts-engines.test.d.ts.map +0 -1
  311. package/build/src/tests/cli/recipe/sync-lts-engines.test.js +0 -131
  312. package/build/src/tests/cli/recipe/sync-lts-engines.test.js.map +0 -1
  313. package/build/src/tests/rules/eslint/no-logger-dev.test.d.ts.map +0 -1
  314. package/build/src/tests/rules/eslint/no-logger-dev.test.js.map +0 -1
  315. package/build/src/tests/rules/eslint/no-raw-text-in-code.test.d.ts.map +0 -1
  316. package/build/src/tests/rules/eslint/no-raw-text-in-code.test.js.map +0 -1
  317. package/build/src/tests/rules/eslint/no-regex-literal-flags.test.d.ts.map +0 -1
  318. package/build/src/tests/rules/eslint/no-regex-literal-flags.test.js.map +0 -1
  319. package/build/src/tests/rules/eslint/no-regex-literals.test.d.ts.map +0 -1
  320. package/build/src/tests/rules/eslint/no-regex-literals.test.js.map +0 -1
  321. package/build/src/tests/rules/eslint/switch-case-blocks.test.d.ts.map +0 -1
  322. package/build/src/tests/rules/eslint/switch-case-blocks.test.js.map +0 -1
  323. /package/build/src/rules/eslint/{no-raw-text-in-code.d.ts → formatting/no-raw-text-in-code.d.ts} +0 -0
  324. /package/build/src/rules/eslint/{no-logger-dev.d.ts → nova/no-logger-dev.d.ts} +0 -0
  325. /package/build/src/rules/eslint/{switch-case-blocks.d.ts → patterns/switch-case-blocks.d.ts} +0 -0
  326. /package/build/src/rules/eslint/{no-regex-literal-flags.d.ts → regex/no-regex-literal-flags.d.ts} +0 -0
  327. /package/build/src/rules/eslint/{no-regex-literal-flags.js → regex/no-regex-literal-flags.js} +0 -0
  328. /package/build/src/tests/rules/eslint/{no-raw-text-in-code.test.d.ts → formatting/no-raw-text-in-code.test.d.ts} +0 -0
  329. /package/build/src/tests/rules/eslint/{no-logger-dev.test.d.ts → nova/no-logger-dev.test.d.ts} +0 -0
  330. /package/build/src/tests/rules/eslint/{switch-case-blocks.test.d.ts → patterns/switch-case-blocks.test.d.ts} +0 -0
  331. /package/build/src/tests/rules/eslint/{no-regex-literal-flags.test.d.ts → regex/no-regex-literal-flags.test.d.ts} +0 -0
  332. /package/build/src/tests/rules/eslint/{no-regex-literals.test.d.ts → regex/no-regex-literals.test.d.ts} +0 -0
@@ -0,0 +1,168 @@
1
+ import { dirname, join, } from 'path';
2
+ import chalk from 'chalk';
3
+ import { NovaConfig } from '../../../lib/nova-config.js';
4
+ import { isPlainObject, isProjectRoot, loadWorkspaceManifests, pathExists, saveWorkspaceManifest, } from '../../../lib/utility.js';
5
+ import { Logger } from '../../../toolkit/index.js';
6
+ export class CLIRecipePackageJsonNormalizeTooling {
7
+ static async run(options) {
8
+ const currentDirectory = process.cwd();
9
+ const isAtProjectRoot = await isProjectRoot(currentDirectory);
10
+ if (isAtProjectRoot !== true) {
11
+ process.exitCode = 1;
12
+ return;
13
+ }
14
+ const isDryRun = options.dryRun === true;
15
+ const isReplaceFile = options.replaceFile === true;
16
+ if (isDryRun === true) {
17
+ Logger.customize({
18
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
19
+ purpose: 'options',
20
+ }).warn('Dry run enabled. File changes will not be made in this session.');
21
+ }
22
+ if (isReplaceFile === true) {
23
+ const replaceFileNotice = (isDryRun) ? 'This option has no effect during a dry run session.' : 'Backup file will not be created.';
24
+ Logger.customize({
25
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
26
+ purpose: 'options',
27
+ }).warn(`Replace file enabled. ${replaceFileNotice}`);
28
+ }
29
+ const novaConfig = new NovaConfig();
30
+ const workingFile = await novaConfig.load();
31
+ const workingFileWorkspaces = Object.entries(workingFile.workspaces ?? {});
32
+ if (workingFileWorkspaces.length === 0) {
33
+ Logger.customize({
34
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
35
+ purpose: 'workspaces',
36
+ }).warn('Skipping normalize-tooling. No workspaces detected in the "nova.config.json" file.');
37
+ return;
38
+ }
39
+ const eligibleWorkspaces = workingFileWorkspaces.filter((workspace) => {
40
+ const workspaceConfig = workspace[1];
41
+ const workspaceRecipes = workspaceConfig.recipes;
42
+ if (workspaceRecipes === undefined) {
43
+ return false;
44
+ }
45
+ const recipeTuple = workspaceRecipes['normalize-tooling'];
46
+ if (recipeTuple === undefined) {
47
+ return false;
48
+ }
49
+ return recipeTuple[0] === true;
50
+ });
51
+ if (eligibleWorkspaces.length === 0) {
52
+ Logger.customize({
53
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
54
+ purpose: 'workspaces',
55
+ }).warn('Skipping normalize-tooling. No workspaces have this recipe enabled.');
56
+ return;
57
+ }
58
+ const workspaces = await loadWorkspaceManifests({
59
+ projectRoot: currentDirectory,
60
+ workspaces: eligibleWorkspaces,
61
+ });
62
+ if (workspaces.length === 0) {
63
+ Logger.customize({
64
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
65
+ purpose: 'workspaces',
66
+ }).warn('Skipping normalize-tooling. No accessible "package.json" files were found for the configured workspaces.');
67
+ return;
68
+ }
69
+ Logger.customize({
70
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
71
+ purpose: 'summary',
72
+ }).info(`Prepared ${workspaces.length} workspace "package.json" file(s) for normalize-tooling.`);
73
+ for (const workspace of workspaces) {
74
+ Logger.customize({
75
+ name: 'CLIRecipePackageJsonNormalizeTooling.run',
76
+ purpose: 'iteration',
77
+ }).info(`Running normalize-tooling for the "${workspace.manifest.name}" workspace ...`);
78
+ await CLIRecipePackageJsonNormalizeTooling.handle(workspace);
79
+ if (isDryRun === true) {
80
+ continue;
81
+ }
82
+ await saveWorkspaceManifest(workspace, isReplaceFile);
83
+ }
84
+ }
85
+ static async handle(workspace) {
86
+ const fileContents = workspace.fileContents;
87
+ const filePath = workspace.filePath;
88
+ const manifest = workspace.manifest;
89
+ const packageScripts = fileContents['scripts'];
90
+ const packageGypfile = fileContents['gypfile'];
91
+ const packageConfig = fileContents['config'];
92
+ const packageWorkspaces = fileContents['workspaces'];
93
+ const workspaceDirectory = dirname(filePath);
94
+ const bindingGypPath = join(workspaceDirectory, 'binding.gyp');
95
+ const hasBindingGyp = await pathExists(bindingGypPath);
96
+ if (packageScripts === undefined) {
97
+ Logger.customize({
98
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
99
+ purpose: 'scripts',
100
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "scripts" as an empty object ...`);
101
+ Reflect.set(fileContents, 'scripts', {});
102
+ }
103
+ if (packageGypfile !== undefined
104
+ && hasBindingGyp === false) {
105
+ Logger.customize({
106
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
107
+ purpose: 'gypfile',
108
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing "gypfile". No "binding.gyp" file is found.`);
109
+ Reflect.deleteProperty(fileContents, 'gypfile');
110
+ }
111
+ else {
112
+ if (packageGypfile === undefined
113
+ && hasBindingGyp === true
114
+ && (!isPlainObject(packageScripts)
115
+ || (isPlainObject(packageScripts)
116
+ && packageScripts['preinstall'] === undefined
117
+ && packageScripts['install'] === undefined))) {
118
+ Logger.customize({
119
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
120
+ purpose: 'gypfile',
121
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "gypfile" as the npm default ...`);
122
+ Reflect.set(fileContents, 'gypfile', true);
123
+ }
124
+ }
125
+ if (packageConfig !== undefined
126
+ && CLIRecipePackageJsonNormalizeTooling.isEmpty(packageConfig)) {
127
+ Logger.customize({
128
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
129
+ purpose: 'config',
130
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing empty "config" ...`);
131
+ Reflect.deleteProperty(fileContents, 'config');
132
+ }
133
+ if (packageWorkspaces !== undefined
134
+ && manifest.role !== 'project') {
135
+ Logger.customize({
136
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
137
+ purpose: 'workspaces',
138
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing "workspaces". Workspace role "${manifest.role}" does not allow it.`);
139
+ Reflect.deleteProperty(fileContents, 'workspaces');
140
+ }
141
+ else {
142
+ if (manifest.role === 'project'
143
+ && packageWorkspaces === undefined) {
144
+ Logger.customize({
145
+ name: 'CLIRecipePackageJsonNormalizeTooling.handle',
146
+ purpose: 'workspaces',
147
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "workspaces" as an empty array ...`);
148
+ Reflect.set(fileContents, 'workspaces', []);
149
+ }
150
+ }
151
+ }
152
+ static isEmpty(value) {
153
+ if (value === null || value === undefined) {
154
+ return true;
155
+ }
156
+ if (typeof value === 'string') {
157
+ return value.trim() === '';
158
+ }
159
+ if (Array.isArray(value)) {
160
+ return value.length === 0;
161
+ }
162
+ if (typeof value === 'object') {
163
+ return Object.keys(value).length === 0;
164
+ }
165
+ return false;
166
+ }
167
+ }
168
+ //# sourceMappingURL=normalize-tooling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-tooling.js","sourceRoot":"","sources":["../../../../../src/cli/recipe/package-json/normalize-tooling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CLIRecipePackageJsonSyncEnvironmentRunOptions, CLIRecipePackageJsonSyncEnvironmentRunReturns } from '../../../types/cli/recipe/package-json/sync-environment.d.ts';
2
+ export declare class CLIRecipePackageJsonSyncEnvironment {
3
+ static run(options: CLIRecipePackageJsonSyncEnvironmentRunOptions): CLIRecipePackageJsonSyncEnvironmentRunReturns;
4
+ private static handle;
5
+ private static handleCorepack;
6
+ private static syncNodeConstraint;
7
+ private static isEmpty;
8
+ }
9
+ //# sourceMappingURL=sync-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-environment.d.ts","sourceRoot":"","sources":["../../../../../src/cli/recipe/package-json/sync-environment.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAOV,6CAA6C,EAC7C,6CAA6C,EAI9C,MAAM,uDAAuD,CAAC;AAO/D,qBAAa,mCAAmC;WAU1B,GAAG,CAAC,OAAO,EAAE,6CAA6C,GAAG,6CAA6C;mBAsHzG,MAAM;IAoM3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgD7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2DjC,OAAO,CAAC,MAAM,CAAC,OAAO;CAmBvB"}
@@ -0,0 +1,286 @@
1
+ import chalk from 'chalk';
2
+ import { NodeReleases } from '../../../api/node-releases.js';
3
+ import { NovaConfig } from '../../../lib/nova-config.js';
4
+ import { PATTERN_DIGITS, PATTERN_NAME_AT_VERSION, PATTERN_RANGE_GREATER_EQUAL_MAJOR, PATTERN_RANGE_MAJOR, } from '../../../lib/regex.js';
5
+ import { isPlainObject, isProjectRoot, loadWorkspaceManifests, saveWorkspaceManifest, } from '../../../lib/utility.js';
6
+ import { Logger } from '../../../toolkit/index.js';
7
+ export class CLIRecipePackageJsonSyncEnvironment {
8
+ static async run(options) {
9
+ const currentDirectory = process.cwd();
10
+ const isAtProjectRoot = await isProjectRoot(currentDirectory);
11
+ if (isAtProjectRoot !== true) {
12
+ process.exitCode = 1;
13
+ return;
14
+ }
15
+ const isDryRun = options.dryRun === true;
16
+ const isReplaceFile = options.replaceFile === true;
17
+ if (isDryRun === true) {
18
+ Logger.customize({
19
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
20
+ purpose: 'options',
21
+ }).warn('Dry run enabled. File changes will not be made in this session.');
22
+ }
23
+ if (isReplaceFile === true) {
24
+ const replaceFileNotice = (isDryRun) ? 'This option has no effect during a dry run session.' : 'Backup file will not be created.';
25
+ Logger.customize({
26
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
27
+ purpose: 'options',
28
+ }).warn(`Replace file enabled. ${replaceFileNotice}`);
29
+ }
30
+ const novaConfig = new NovaConfig();
31
+ const workingFile = await novaConfig.load();
32
+ const workingFileWorkspaces = Object.entries(workingFile.workspaces ?? {});
33
+ if (workingFileWorkspaces.length === 0) {
34
+ Logger.customize({
35
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
36
+ purpose: 'workspaces',
37
+ }).warn('Skipping sync-environment. No workspaces detected in the "nova.config.json" file.');
38
+ return;
39
+ }
40
+ const eligibleWorkspaces = workingFileWorkspaces.filter((workspace) => {
41
+ const workspaceConfig = workspace[1];
42
+ const workspaceRecipes = workspaceConfig.recipes;
43
+ if (workspaceRecipes === undefined) {
44
+ return false;
45
+ }
46
+ const recipeTuple = workspaceRecipes['sync-environment'];
47
+ if (recipeTuple === undefined) {
48
+ return false;
49
+ }
50
+ return recipeTuple[0] === true;
51
+ });
52
+ if (eligibleWorkspaces.length === 0) {
53
+ Logger.customize({
54
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
55
+ purpose: 'workspaces',
56
+ }).warn('Skipping sync-environment. No workspaces have this recipe enabled.');
57
+ return;
58
+ }
59
+ const workspaces = await loadWorkspaceManifests({
60
+ projectRoot: currentDirectory,
61
+ workspaces: eligibleWorkspaces,
62
+ });
63
+ if (workspaces.length === 0) {
64
+ Logger.customize({
65
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
66
+ purpose: 'workspaces',
67
+ }).warn('Skipping sync-environment. No accessible "package.json" files were found for the configured workspaces.');
68
+ return;
69
+ }
70
+ Logger.customize({
71
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
72
+ purpose: 'summary',
73
+ }).info(`Prepared ${workspaces.length} workspace "package.json" file(s) for sync-environment.`);
74
+ for (const workspace of workspaces) {
75
+ Logger.customize({
76
+ name: 'CLIRecipePackageJsonSyncEnvironment.run',
77
+ purpose: 'iteration',
78
+ }).info(`Running sync-environment for the "${workspace.manifest.name}" workspace ...`);
79
+ CLIRecipePackageJsonSyncEnvironment.handleCorepack(workspace);
80
+ await CLIRecipePackageJsonSyncEnvironment.handle(workspace);
81
+ if (isDryRun === true) {
82
+ continue;
83
+ }
84
+ await saveWorkspaceManifest(workspace, isReplaceFile);
85
+ }
86
+ }
87
+ static async handle(workspace) {
88
+ const fileContents = workspace.fileContents;
89
+ const manifest = workspace.manifest;
90
+ const packageEngines = fileContents['engines'];
91
+ const packageOs = fileContents['os'];
92
+ const packageCpu = fileContents['cpu'];
93
+ const packageLibc = fileContents['libc'];
94
+ const packageDevEngines = fileContents['devEngines'];
95
+ const ltsConstraint = await NodeReleases.fetchLtsVersions();
96
+ if (packageEngines === undefined) {
97
+ if (ltsConstraint !== undefined) {
98
+ Logger.customize({
99
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
100
+ purpose: 'engines',
101
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "engines" with "node" set to "${ltsConstraint}" ...`);
102
+ Reflect.set(fileContents, 'engines', {
103
+ node: ltsConstraint,
104
+ });
105
+ }
106
+ else {
107
+ Logger.customize({
108
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
109
+ purpose: 'engines',
110
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "engines" as an empty object ...`);
111
+ Reflect.set(fileContents, 'engines', {});
112
+ }
113
+ }
114
+ else {
115
+ if (isPlainObject(packageEngines)
116
+ && packageEngines['node'] === undefined
117
+ && ltsConstraint !== undefined) {
118
+ Logger.customize({
119
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
120
+ purpose: 'engines',
121
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "engines.node" set to "${ltsConstraint}" ...`);
122
+ Reflect.set(packageEngines, 'node', ltsConstraint);
123
+ }
124
+ }
125
+ const recipes = manifest.recipes;
126
+ const recipeTuple = (recipes !== undefined) ? recipes['sync-environment'] : undefined;
127
+ const recipeSettings = (recipeTuple !== undefined && recipeTuple.length > 1) ? recipeTuple[1] : undefined;
128
+ const trackNodeLtsVersions = (recipeSettings !== undefined && recipeSettings['trackNodeLtsVersions'] === true);
129
+ if (trackNodeLtsVersions === true
130
+ && isPlainObject(fileContents['engines'])
131
+ && typeof fileContents['engines']['node'] === 'string'
132
+ && ltsConstraint !== undefined) {
133
+ const existingNode = fileContents['engines']['node'];
134
+ const ltsMatches = [...ltsConstraint.matchAll(new RegExp(PATTERN_DIGITS.source, 'g'))];
135
+ if (ltsMatches.length > 0) {
136
+ const ltsMajors = ltsMatches.map((ltsMatch) => {
137
+ return parseInt(ltsMatch[0], 10);
138
+ });
139
+ const branches = existingNode.split('||').map((branch) => branch.trim());
140
+ const coversAll = ltsMajors.every((ltsMajor) => {
141
+ return branches.some((branch) => {
142
+ if (branch === '*') {
143
+ return true;
144
+ }
145
+ const geMatch = branch.match(PATTERN_RANGE_GREATER_EQUAL_MAJOR);
146
+ if (geMatch !== null) {
147
+ return parseInt(geMatch[1] ?? '', 10) <= ltsMajor;
148
+ }
149
+ const majorMatch = branch.match(PATTERN_RANGE_MAJOR);
150
+ if (majorMatch !== null) {
151
+ return parseInt(majorMatch[1] ?? '', 10) === ltsMajor;
152
+ }
153
+ return false;
154
+ });
155
+ });
156
+ if (coversAll !== true) {
157
+ Logger.customize({
158
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
159
+ purpose: 'engines',
160
+ }).warn(`${chalk.magenta(`"${manifest.name}" workspace`)} → "engines.node" is "${existingNode}" but must cover all active LTS versions (${ltsMajors.join(', ')}). Run "nova recipe package-json sync-environment" with "trackNodeLtsVersions" enabled to update.`);
161
+ }
162
+ }
163
+ }
164
+ if (trackNodeLtsVersions === true
165
+ && ltsConstraint !== undefined) {
166
+ CLIRecipePackageJsonSyncEnvironment.syncNodeConstraint(workspace, ltsConstraint);
167
+ }
168
+ if (packageOs !== undefined
169
+ && CLIRecipePackageJsonSyncEnvironment.isEmpty(packageOs)) {
170
+ Logger.customize({
171
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
172
+ purpose: 'os',
173
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing empty "os" ...`);
174
+ Reflect.deleteProperty(fileContents, 'os');
175
+ }
176
+ if (packageCpu !== undefined
177
+ && CLIRecipePackageJsonSyncEnvironment.isEmpty(packageCpu)) {
178
+ Logger.customize({
179
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
180
+ purpose: 'cpu',
181
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing empty "cpu" ...`);
182
+ Reflect.deleteProperty(fileContents, 'cpu');
183
+ }
184
+ if (packageLibc !== undefined
185
+ && !(Array.isArray(fileContents['os'])
186
+ && fileContents['os'].includes('linux'))) {
187
+ Logger.customize({
188
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
189
+ purpose: 'libc',
190
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing "libc". Package "os" does not include "linux".`);
191
+ Reflect.deleteProperty(fileContents, 'libc');
192
+ }
193
+ else {
194
+ if (packageLibc === undefined
195
+ && (Array.isArray(fileContents['os'])
196
+ && fileContents['os'].includes('linux'))) {
197
+ Logger.customize({
198
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
199
+ purpose: 'libc',
200
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Adding "libc" as "glibc" ...`);
201
+ Reflect.set(fileContents, 'libc', ['glibc']);
202
+ }
203
+ }
204
+ if (packageDevEngines !== undefined
205
+ && CLIRecipePackageJsonSyncEnvironment.isEmpty(packageDevEngines)) {
206
+ Logger.customize({
207
+ name: 'CLIRecipePackageJsonSyncEnvironment.handle',
208
+ purpose: 'devEngines',
209
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing empty "devEngines" ...`);
210
+ Reflect.deleteProperty(fileContents, 'devEngines');
211
+ }
212
+ }
213
+ static handleCorepack(workspace) {
214
+ const fileContents = workspace.fileContents;
215
+ const manifest = workspace.manifest;
216
+ const packageManager = fileContents['packageManager'];
217
+ if (packageManager !== undefined
218
+ && manifest.role !== 'project') {
219
+ Logger.customize({
220
+ name: 'CLIRecipePackageJsonSyncEnvironment.handleCorepack',
221
+ purpose: 'packageManager',
222
+ }).info(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing "packageManager". Workspace role "${manifest.role}" does not allow it.`);
223
+ Reflect.deleteProperty(fileContents, 'packageManager');
224
+ }
225
+ else {
226
+ if (manifest.role === 'project'
227
+ && packageManager !== undefined
228
+ && (typeof packageManager !== 'string'
229
+ || !PATTERN_NAME_AT_VERSION.test(packageManager))) {
230
+ Logger.customize({
231
+ name: 'CLIRecipePackageJsonSyncEnvironment.handleCorepack',
232
+ purpose: 'packageManager',
233
+ }).warn(`${chalk.magenta(`"${manifest.name}" workspace`)} → Removing "packageManager". Invalid format detected.`);
234
+ Reflect.deleteProperty(fileContents, 'packageManager');
235
+ }
236
+ }
237
+ }
238
+ static syncNodeConstraint(workspace, constraint) {
239
+ const engines = workspace.fileContents['engines'];
240
+ if (engines === undefined) {
241
+ Reflect.set(workspace.fileContents, 'engines', { node: constraint });
242
+ Logger.customize({
243
+ name: 'CLIRecipePackageJsonSyncEnvironment.syncNodeConstraint',
244
+ purpose: 'engines',
245
+ }).info(`${chalk.magenta(`"${workspace.manifest.name}" workspace`)} → Created "engines.node" with "${constraint}".`);
246
+ return;
247
+ }
248
+ if (!isPlainObject(engines)) {
249
+ Logger.customize({
250
+ name: 'CLIRecipePackageJsonSyncEnvironment.syncNodeConstraint',
251
+ purpose: 'engines',
252
+ }).warn(`${chalk.magenta(`"${workspace.manifest.name}" workspace`)} → "engines" is not a plain object. Skipping.`);
253
+ return;
254
+ }
255
+ const currentNode = engines['node'];
256
+ if (currentNode === constraint) {
257
+ Logger.customize({
258
+ name: 'CLIRecipePackageJsonSyncEnvironment.syncNodeConstraint',
259
+ purpose: 'engines',
260
+ }).info(`${chalk.magenta(`"${workspace.manifest.name}" workspace`)} → "engines.node" is already up to date.`);
261
+ return;
262
+ }
263
+ Reflect.set(engines, 'node', constraint);
264
+ const previous = (typeof currentNode === 'string') ? currentNode : String(currentNode ?? 'undefined');
265
+ Logger.customize({
266
+ name: 'CLIRecipePackageJsonSyncEnvironment.syncNodeConstraint',
267
+ purpose: 'engines',
268
+ }).info(`${chalk.magenta(`"${workspace.manifest.name}" workspace`)} → Updated "engines.node" from "${previous}" to "${constraint}".`);
269
+ }
270
+ static isEmpty(value) {
271
+ if (value === null || value === undefined) {
272
+ return true;
273
+ }
274
+ if (typeof value === 'string') {
275
+ return value.trim() === '';
276
+ }
277
+ if (Array.isArray(value)) {
278
+ return value.length === 0;
279
+ }
280
+ if (typeof value === 'object') {
281
+ return Object.keys(value).length === 0;
282
+ }
283
+ return false;
284
+ }
285
+ }
286
+ //# sourceMappingURL=sync-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-environment.js","sourceRoot":"","sources":["../../../../../src/cli/recipe/package-json/sync-environment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CLIRecipePackageJsonSyncIdentityRunOptions, CLIRecipePackageJsonSyncIdentityRunReturns } from '../../../types/cli/recipe/package-json/sync-identity.d.ts';
2
+ export declare class CLIRecipePackageJsonSyncIdentity {
3
+ static run(options: CLIRecipePackageJsonSyncIdentityRunOptions): CLIRecipePackageJsonSyncIdentityRunReturns;
4
+ private static handle;
5
+ }
6
+ //# sourceMappingURL=sync-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-identity.d.ts","sourceRoot":"","sources":["../../../../../src/cli/recipe/package-json/sync-identity.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAKV,0CAA0C,EAC1C,0CAA0C,EAC3C,MAAM,oDAAoD,CAAC;AAO5D,qBAAa,gCAAgC;WAUvB,GAAG,CAAC,OAAO,EAAE,0CAA0C,GAAG,0CAA0C;mBAqHnG,MAAM;CAmM5B"}