akanjs 2.0.7 → 2.1.0-rc.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 (498) hide show
  1. package/README.ko.md +4 -4
  2. package/README.md +4 -4
  3. package/client/router.ts +10 -3
  4. package/document/documentSchema.ts +9 -1
  5. package/index.ts +187 -0
  6. package/package.json +6 -50
  7. package/server/akanApp.ts +2 -24
  8. package/server/akanAppHeaders.ts +30 -0
  9. package/server/di/predefinedAdaptor.ts +1 -1
  10. package/types/dictionary/base.dictionary.d.ts +1 -1
  11. package/types/dictionary/dictionary.d.ts +8 -8
  12. package/types/document/documentSchema.d.ts +33 -0
  13. package/types/document/index.d.ts +1 -1
  14. package/types/document/schema.d.ts +1 -1
  15. package/types/document/types.d.ts +1 -1
  16. package/types/{devkit/akanConfig/types.d.ts → index.d.ts} +45 -54
  17. package/types/server/akanAppHeaders.d.ts +1 -0
  18. package/types/server/di/predefinedAdaptor.d.ts +1 -1
  19. package/types/store/baseSt.d.ts +2 -2
  20. package/ui/Link/SsrLink.tsx +2 -2
  21. package/webkit/useCodepush.tsx +1 -1
  22. package/cli/application/application.command.ts +0 -224
  23. package/cli/application/application.interface.tsx +0 -225
  24. package/cli/application/application.runner.ts +0 -355
  25. package/cli/application/application.script.ts +0 -244
  26. package/cli/build.ts +0 -27
  27. package/cli/cloud/cloud.command.ts +0 -48
  28. package/cli/cloud/cloud.runner.ts +0 -157
  29. package/cli/cloud/cloud.script.ts +0 -40
  30. package/cli/guideline/guideline.command.ts +0 -31
  31. package/cli/guideline/guideline.prompt.ts +0 -212
  32. package/cli/guideline/guideline.runner.ts +0 -53
  33. package/cli/guideline/guideline.script.ts +0 -33
  34. package/cli/guidelines/___library/sharedUiStructureDescription.en.md +0 -767
  35. package/cli/guidelines/___library/utilUiStructureDescription.en.md +0 -395
  36. package/cli/guidelines/___lint/lintRuleDescription.en.md +0 -64
  37. package/cli/guidelines/___module/moduleStructureDescription.en.md +0 -80
  38. package/cli/guidelines/componentRule/componentRule.generate.json +0 -131
  39. package/cli/guidelines/componentRule/componentRule.instruction.md +0 -637
  40. package/cli/guidelines/cssRule/cssRule.generate.json +0 -93
  41. package/cli/guidelines/cssRule/cssRule.instruction.md +0 -435
  42. package/cli/guidelines/databaseModule/databaseModule.generate.json +0 -51
  43. package/cli/guidelines/databaseModule/databaseModule.instruction.md +0 -612
  44. package/cli/guidelines/docPageRule/docPageRule.generate.json +0 -72
  45. package/cli/guidelines/docPageRule/docPageRule.instruction.md +0 -389
  46. package/cli/guidelines/enumConstant/enumConstant.generate.json +0 -24
  47. package/cli/guidelines/enumConstant/enumConstant.instruction.md +0 -232
  48. package/cli/guidelines/framework/framework.generate.json +0 -119
  49. package/cli/guidelines/framework/framework.instruction.md +0 -1110
  50. package/cli/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  51. package/cli/guidelines/modelConstant/modelConstant.generate.json +0 -128
  52. package/cli/guidelines/modelConstant/modelConstant.instruction.md +0 -506
  53. package/cli/guidelines/modelDictionary/modelDictionary.generate.json +0 -108
  54. package/cli/guidelines/modelDictionary/modelDictionary.instruction.md +0 -547
  55. package/cli/guidelines/modelDocument/modelDocument.generate.json +0 -129
  56. package/cli/guidelines/modelDocument/modelDocument.instruction.md +0 -509
  57. package/cli/guidelines/modelService/modelService.generate.json +0 -135
  58. package/cli/guidelines/modelService/modelService.instruction.md +0 -708
  59. package/cli/guidelines/modelSignal/modelSignal.generate.json +0 -201
  60. package/cli/guidelines/modelSignal/modelSignal.instruction.md +0 -552
  61. package/cli/guidelines/modelStore/modelStore.generate.json +0 -130
  62. package/cli/guidelines/modelStore/modelStore.instruction.md +0 -585
  63. package/cli/guidelines/modelTemplate/modelTemplate.generate.json +0 -104
  64. package/cli/guidelines/modelTemplate/modelTemplate.instruction.md +0 -604
  65. package/cli/guidelines/modelUnit/modelUnit.generate.json +0 -92
  66. package/cli/guidelines/modelUnit/modelUnit.instruction.md +0 -541
  67. package/cli/guidelines/modelUtil/modelUtil.generate.json +0 -93
  68. package/cli/guidelines/modelUtil/modelUtil.instruction.md +0 -752
  69. package/cli/guidelines/modelView/modelView.generate.json +0 -80
  70. package/cli/guidelines/modelView/modelView.instruction.md +0 -1005
  71. package/cli/guidelines/modelZone/modelZone.generate.json +0 -126
  72. package/cli/guidelines/modelZone/modelZone.instruction.md +0 -528
  73. package/cli/guidelines/scalarConstant/scalarConstant.generate.json +0 -106
  74. package/cli/guidelines/scalarConstant/scalarConstant.instruction.md +0 -442
  75. package/cli/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -83
  76. package/cli/guidelines/scalarDictionary/scalarDictionary.instruction.md +0 -273
  77. package/cli/guidelines/scalarModule/scalarModule.generate.json +0 -35
  78. package/cli/guidelines/scalarModule/scalarModule.instruction.md +0 -81
  79. package/cli/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -108
  80. package/cli/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -310
  81. package/cli/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -140
  82. package/cli/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -339
  83. package/cli/index.js +0 -184444
  84. package/cli/index.ts +0 -24
  85. package/cli/library/library.command.ts +0 -28
  86. package/cli/library/library.runner.ts +0 -66
  87. package/cli/library/library.script.ts +0 -39
  88. package/cli/module/module.command.ts +0 -35
  89. package/cli/module/module.prompt.ts +0 -18
  90. package/cli/module/module.request.ts +0 -319
  91. package/cli/module/module.runner.ts +0 -76
  92. package/cli/module/module.script.ts +0 -161
  93. package/cli/npmRegistry.ts +0 -13
  94. package/cli/openBrowser.ts +0 -15
  95. package/cli/package/package.command.ts +0 -32
  96. package/cli/package/package.runner.ts +0 -94
  97. package/cli/package/package.script.ts +0 -35
  98. package/cli/page/page.command.ts +0 -14
  99. package/cli/page/page.runner.ts +0 -14
  100. package/cli/page/page.script.ts +0 -12
  101. package/cli/pluralizeName.ts +0 -5
  102. package/cli/scalar/scalar.command.ts +0 -21
  103. package/cli/scalar/scalar.prompt.ts +0 -131
  104. package/cli/scalar/scalar.runner.ts +0 -38
  105. package/cli/scalar/scalar.script.ts +0 -16
  106. package/cli/semver.ts +0 -18
  107. package/cli/templates/__scalar/__model__/__model__.constant.ts +0 -15
  108. package/cli/templates/__scalar/__model__/__model__.dictionary.ts +0 -19
  109. package/cli/templates/__scalar/__model__/__model__.document.ts +0 -15
  110. package/cli/templates/app/akan.config.ts +0 -14
  111. package/cli/templates/app/env/env.client.debug.ts.template +0 -7
  112. package/cli/templates/app/env/env.client.develop.ts.template +0 -7
  113. package/cli/templates/app/env/env.client.local.ts.template +0 -7
  114. package/cli/templates/app/env/env.client.main.ts.template +0 -7
  115. package/cli/templates/app/env/env.client.testing.ts.template +0 -7
  116. package/cli/templates/app/env/env.client.ts +0 -21
  117. package/cli/templates/app/env/env.client.type.ts +0 -16
  118. package/cli/templates/app/env/env.server.debug.ts.template +0 -7
  119. package/cli/templates/app/env/env.server.develop.ts.template +0 -7
  120. package/cli/templates/app/env/env.server.local.ts.template +0 -7
  121. package/cli/templates/app/env/env.server.main.ts.template +0 -7
  122. package/cli/templates/app/env/env.server.testing.ts.template +0 -6
  123. package/cli/templates/app/env/env.server.ts +0 -20
  124. package/cli/templates/app/lib/___appName__/__appName__.dictionary.ts +0 -17
  125. package/cli/templates/app/lib/___appName__/__appName__.service.ts +0 -13
  126. package/cli/templates/app/lib/___appName__/__appName__.signal.ts +0 -17
  127. package/cli/templates/app/lib/___appName__/__appName__.store.ts +0 -15
  128. package/cli/templates/app/lib/option.ts +0 -17
  129. package/cli/templates/app/main.ts +0 -16
  130. package/cli/templates/app/package.json.template +0 -5
  131. package/cli/templates/app/page/_index.tsx +0 -296
  132. package/cli/templates/app/page/_layout.tsx +0 -31
  133. package/cli/templates/app/page/styles.css.template +0 -53
  134. package/cli/templates/app/public/favicon.ico +0 -0
  135. package/cli/templates/app/public/logo.png +0 -0
  136. package/cli/templates/app/tsconfig.json.template +0 -21
  137. package/cli/templates/client.ts +0 -46
  138. package/cli/templates/crudPages/[__model__Id]/edit/page.tsx +0 -47
  139. package/cli/templates/crudPages/[__model__Id]/page.tsx +0 -52
  140. package/cli/templates/crudPages/new/page.tsx +0 -42
  141. package/cli/templates/crudPages/page.tsx +0 -43
  142. package/cli/templates/crudSinglePage/page.tsx +0 -37
  143. package/cli/templates/env/_env.server.type.ts +0 -16
  144. package/cli/templates/facetIndex/index.ts +0 -32
  145. package/cli/templates/index.ts +0 -10
  146. package/cli/templates/lib/__lib/lib.constant.ts +0 -38
  147. package/cli/templates/lib/__lib/lib.dictionary.ts +0 -33
  148. package/cli/templates/lib/__lib/lib.document.ts +0 -35
  149. package/cli/templates/lib/__lib/lib.service.ts +0 -33
  150. package/cli/templates/lib/__lib/lib.signal.ts +0 -34
  151. package/cli/templates/lib/__lib/lib.store.ts +0 -33
  152. package/cli/templates/lib/cnst.ts +0 -29
  153. package/cli/templates/lib/db.ts +0 -32
  154. package/cli/templates/lib/dict.ts +0 -49
  155. package/cli/templates/lib/sig.ts +0 -60
  156. package/cli/templates/lib/srv.ts +0 -34
  157. package/cli/templates/lib/st.ts +0 -31
  158. package/cli/templates/lib/useClient.ts +0 -19
  159. package/cli/templates/lib/useServer.ts +0 -7
  160. package/cli/templates/libRoot/.gitignore.template +0 -16
  161. package/cli/templates/libRoot/akan.config.ts +0 -12
  162. package/cli/templates/libRoot/base/baseLogic.ts +0 -10
  163. package/cli/templates/libRoot/base/index.ts +0 -8
  164. package/cli/templates/libRoot/common/commonLogic.ts +0 -10
  165. package/cli/templates/libRoot/common/index.ts +0 -8
  166. package/cli/templates/libRoot/env/env.server.example.ts.template +0 -6
  167. package/cli/templates/libRoot/env/env.server.testing.ts.template +0 -6
  168. package/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.ts +0 -15
  169. package/cli/templates/libRoot/lib/___libName__/__libName__.service.ts +0 -11
  170. package/cli/templates/libRoot/lib/___libName__/__libName__.store.ts +0 -13
  171. package/cli/templates/libRoot/lib/option.ts +0 -17
  172. package/cli/templates/libRoot/package.json.template +0 -5
  173. package/cli/templates/libRoot/srvkit/backendLogic.ts +0 -10
  174. package/cli/templates/libRoot/srvkit/index.ts +0 -8
  175. package/cli/templates/libRoot/tsconfig.json.template +0 -11
  176. package/cli/templates/libRoot/ui/index.ts +0 -7
  177. package/cli/templates/libRoot/webkit/frontendLogic.ts +0 -10
  178. package/cli/templates/libRoot/webkit/index.ts +0 -8
  179. package/cli/templates/localDev/docker-compose.yaml.template +0 -37
  180. package/cli/templates/module/__Model__.Template.tsx +0 -36
  181. package/cli/templates/module/__Model__.Unit.tsx +0 -26
  182. package/cli/templates/module/__Model__.Util.tsx +0 -30
  183. package/cli/templates/module/__Model__.View.tsx +0 -29
  184. package/cli/templates/module/__Model__.Zone.tsx +0 -43
  185. package/cli/templates/module/__model__.constant.ts +0 -24
  186. package/cli/templates/module/__model__.dictionary.ts +0 -30
  187. package/cli/templates/module/__model__.document.ts +0 -23
  188. package/cli/templates/module/__model__.service.ts +0 -16
  189. package/cli/templates/module/__model__.signal.ts +0 -27
  190. package/cli/templates/module/__model__.store.ts +0 -19
  191. package/cli/templates/moduleRoot/index.tsx +0 -31
  192. package/cli/templates/pkgRoot/tsconfig.json.template +0 -10
  193. package/cli/templates/server.ts +0 -45
  194. package/cli/templates/workspaceRoot/.env.template +0 -14
  195. package/cli/templates/workspaceRoot/.gitignore.template +0 -120
  196. package/cli/templates/workspaceRoot/.vscode/settings.json.template +0 -23
  197. package/cli/templates/workspaceRoot/biome.json.template +0 -191
  198. package/cli/templates/workspaceRoot/bunfig.toml +0 -4
  199. package/cli/templates/workspaceRoot/package.json.template +0 -7
  200. package/cli/templates/workspaceRoot/tsconfig.json.template +0 -29
  201. package/cli/testHelpers.ts +0 -171
  202. package/cli/workspace/workspace.command.ts +0 -55
  203. package/cli/workspace/workspace.runner.ts +0 -79
  204. package/cli/workspace/workspace.script.ts +0 -74
  205. package/devkit/aiEditor.ts +0 -299
  206. package/devkit/akanApp/akanApp.host.ts +0 -393
  207. package/devkit/akanApp/index.ts +0 -1
  208. package/devkit/akanConfig/akanConfig.ts +0 -360
  209. package/devkit/akanConfig/index.ts +0 -2
  210. package/devkit/akanConfig/types.ts +0 -187
  211. package/devkit/applicationBuildReporter.ts +0 -69
  212. package/devkit/applicationBuildRunner.ts +0 -302
  213. package/devkit/applicationReleasePackager.ts +0 -205
  214. package/devkit/artifact/implicitRootLayout.ts +0 -155
  215. package/devkit/artifact/index.ts +0 -1
  216. package/devkit/artifact/routeSeedIndex.ts +0 -128
  217. package/devkit/auth.ts +0 -41
  218. package/devkit/builder.ts +0 -164
  219. package/devkit/capacitor.base.config.ts +0 -88
  220. package/devkit/capacitorApp.ts +0 -443
  221. package/devkit/commandDecorators/argMeta.ts +0 -102
  222. package/devkit/commandDecorators/command.ts +0 -340
  223. package/devkit/commandDecorators/commandBuilder.ts +0 -224
  224. package/devkit/commandDecorators/commandMeta.ts +0 -6
  225. package/devkit/commandDecorators/dependencyBuilder.ts +0 -100
  226. package/devkit/commandDecorators/helpFormatter.ts +0 -220
  227. package/devkit/commandDecorators/index.ts +0 -8
  228. package/devkit/commandDecorators/targetMeta.ts +0 -31
  229. package/devkit/commandDecorators/types.ts +0 -10
  230. package/devkit/constants.ts +0 -25
  231. package/devkit/createTunnel.ts +0 -36
  232. package/devkit/dependencyScanner.ts +0 -339
  233. package/devkit/executors.ts +0 -1362
  234. package/devkit/extractDeps.ts +0 -85
  235. package/devkit/fileEditor.ts +0 -106
  236. package/devkit/fileSys.ts +0 -39
  237. package/devkit/frontendBuild/allRoutesBuilder.ts +0 -103
  238. package/devkit/frontendBuild/clientBuildTypes.ts +0 -114
  239. package/devkit/frontendBuild/clientEntriesBundler.ts +0 -300
  240. package/devkit/frontendBuild/clientEntryDiscovery.ts +0 -196
  241. package/devkit/frontendBuild/csrArtifactBuilder.ts +0 -237
  242. package/devkit/frontendBuild/cssCompiler.ts +0 -285
  243. package/devkit/frontendBuild/cssImportResolver.ts +0 -116
  244. package/devkit/frontendBuild/fontOptimizer.ts +0 -427
  245. package/devkit/frontendBuild/hmrChangeClassifier.ts +0 -28
  246. package/devkit/frontendBuild/hmrWatcher.ts +0 -101
  247. package/devkit/frontendBuild/index.ts +0 -18
  248. package/devkit/frontendBuild/pagesBundleBuilder.ts +0 -137
  249. package/devkit/frontendBuild/pagesEntrySourceGenerator.ts +0 -37
  250. package/devkit/frontendBuild/precompressArtifacts.ts +0 -59
  251. package/devkit/frontendBuild/routeClientBuilder.ts +0 -290
  252. package/devkit/frontendBuild/routesManifestArtifactSerializer.ts +0 -62
  253. package/devkit/frontendBuild/ssrBaseArtifactBuilder.ts +0 -139
  254. package/devkit/frontendBuild/vendorSpecifiers.ts +0 -16
  255. package/devkit/frontendBuild/watchRootResolver.ts +0 -28
  256. package/devkit/getCredentials.ts +0 -19
  257. package/devkit/getDirname.ts +0 -3
  258. package/devkit/getModelFileData.ts +0 -59
  259. package/devkit/getRelatedCnsts.ts +0 -300
  260. package/devkit/guideline.ts +0 -19
  261. package/devkit/incrementalBuilder/incrementalBuilder.host.ts +0 -152
  262. package/devkit/incrementalBuilder/incrementalBuilder.proc.ts +0 -331
  263. package/devkit/incrementalBuilder/index.ts +0 -1
  264. package/devkit/index.ts +0 -36
  265. package/devkit/lint/no-deep-internal-import.grit +0 -25
  266. package/devkit/lint/no-import-client-functions.grit +0 -32
  267. package/devkit/lint/no-import-external-library.grit +0 -21
  268. package/devkit/lint/no-js-private-class-method.grit +0 -42
  269. package/devkit/lint/no-use-client-in-server.grit +0 -7
  270. package/devkit/lint/non-scalar-props-restricted.grit +0 -13
  271. package/devkit/linter.ts +0 -248
  272. package/devkit/mobile/index.ts +0 -1
  273. package/devkit/mobile/mobileTarget.ts +0 -88
  274. package/devkit/prompter.ts +0 -71
  275. package/devkit/scanInfo.ts +0 -606
  276. package/devkit/selectModel.ts +0 -11
  277. package/devkit/spinner.ts +0 -54
  278. package/devkit/src/capacitorApp.ts +0 -277
  279. package/devkit/sshTunnel.ts +0 -151
  280. package/devkit/streamAi.ts +0 -45
  281. package/devkit/transforms/barrelAnalyzer.ts +0 -249
  282. package/devkit/transforms/barrelImportsPlugin.ts +0 -457
  283. package/devkit/transforms/externalizeFrameworkPlugin.ts +0 -159
  284. package/devkit/transforms/index.ts +0 -5
  285. package/devkit/transforms/rscUseClientTransform.ts +0 -52
  286. package/devkit/transforms/useClientBundlePlugin.ts +0 -47
  287. package/devkit/typeChecker.ts +0 -260
  288. package/devkit/types.ts +0 -44
  289. package/devkit/ui/MultiScrollList.tsx +0 -228
  290. package/devkit/ui/ScrollList.tsx +0 -106
  291. package/devkit/ui/index.ts +0 -2
  292. package/devkit/uploadRelease.ts +0 -95
  293. package/devkit/useStdoutDimensions.ts +0 -20
  294. package/types/cli/application/application.command.d.ts +0 -7
  295. package/types/cli/application/application.interface.d.ts +0 -40
  296. package/types/cli/application/application.runner.d.ts +0 -66
  297. package/types/cli/application/application.script.d.ts +0 -72
  298. package/types/cli/build.d.ts +0 -1
  299. package/types/cli/cloud/cloud.command.d.ts +0 -7
  300. package/types/cli/cloud/cloud.runner.d.ts +0 -13
  301. package/types/cli/cloud/cloud.script.d.ts +0 -23
  302. package/types/cli/guideline/guideline.command.d.ts +0 -7
  303. package/types/cli/guideline/guideline.prompt.d.ts +0 -29
  304. package/types/cli/guideline/guideline.runner.d.ts +0 -21
  305. package/types/cli/guideline/guideline.script.d.ts +0 -16
  306. package/types/cli/index.d.ts +0 -2
  307. package/types/cli/library/library.command.d.ts +0 -7
  308. package/types/cli/library/library.runner.d.ts +0 -11
  309. package/types/cli/library/library.script.d.ts +0 -13
  310. package/types/cli/module/module.command.d.ts +0 -7
  311. package/types/cli/module/module.prompt.d.ts +0 -13
  312. package/types/cli/module/module.request.d.ts +0 -63
  313. package/types/cli/module/module.runner.d.ts +0 -55
  314. package/types/cli/module/module.script.d.ts +0 -22
  315. package/types/cli/npmRegistry.d.ts +0 -1
  316. package/types/cli/openBrowser.d.ts +0 -1
  317. package/types/cli/package/package.command.d.ts +0 -7
  318. package/types/cli/package/package.runner.d.ts +0 -13
  319. package/types/cli/package/package.script.d.ts +0 -18
  320. package/types/cli/page/page.command.d.ts +0 -7
  321. package/types/cli/page/page.runner.d.ts +0 -10
  322. package/types/cli/page/page.script.d.ts +0 -13
  323. package/types/cli/pluralizeName.d.ts +0 -1
  324. package/types/cli/scalar/scalar.command.d.ts +0 -7
  325. package/types/cli/scalar/scalar.prompt.d.ts +0 -23
  326. package/types/cli/scalar/scalar.runner.d.ts +0 -16
  327. package/types/cli/scalar/scalar.script.d.ts +0 -11
  328. package/types/cli/semver.d.ts +0 -1
  329. package/types/cli/templates/__scalar/__model__/__model__.constant.d.ts +0 -7
  330. package/types/cli/templates/__scalar/__model__/__model__.dictionary.d.ts +0 -7
  331. package/types/cli/templates/__scalar/__model__/__model__.document.d.ts +0 -7
  332. package/types/cli/templates/app/akan.config.d.ts +0 -6
  333. package/types/cli/templates/app/env/env.client.d.ts +0 -6
  334. package/types/cli/templates/app/env/env.client.type.d.ts +0 -6
  335. package/types/cli/templates/app/env/env.server.d.ts +0 -6
  336. package/types/cli/templates/app/lib/___appName__/__appName__.dictionary.d.ts +0 -7
  337. package/types/cli/templates/app/lib/___appName__/__appName__.service.d.ts +0 -7
  338. package/types/cli/templates/app/lib/___appName__/__appName__.signal.d.ts +0 -7
  339. package/types/cli/templates/app/lib/___appName__/__appName__.store.d.ts +0 -7
  340. package/types/cli/templates/app/lib/option.d.ts +0 -6
  341. package/types/cli/templates/app/main.d.ts +0 -6
  342. package/types/cli/templates/app/page/_index.d.ts +0 -9
  343. package/types/cli/templates/app/page/_layout.d.ts +0 -11
  344. package/types/cli/templates/client.d.ts +0 -4
  345. package/types/cli/templates/crudPages/[__model__Id]/edit/page.d.ts +0 -11
  346. package/types/cli/templates/crudPages/[__model__Id]/page.d.ts +0 -11
  347. package/types/cli/templates/crudPages/new/page.d.ts +0 -11
  348. package/types/cli/templates/crudPages/page.d.ts +0 -11
  349. package/types/cli/templates/crudSinglePage/page.d.ts +0 -11
  350. package/types/cli/templates/env/_env.server.type.d.ts +0 -7
  351. package/types/cli/templates/facetIndex/index.d.ts +0 -13
  352. package/types/cli/templates/facetIndex.d.ts +0 -1
  353. package/types/cli/templates/index.d.ts +0 -6
  354. package/types/cli/templates/lib/__lib/lib.constant.d.ts +0 -4
  355. package/types/cli/templates/lib/__lib/lib.dictionary.d.ts +0 -4
  356. package/types/cli/templates/lib/__lib/lib.document.d.ts +0 -4
  357. package/types/cli/templates/lib/__lib/lib.service.d.ts +0 -4
  358. package/types/cli/templates/lib/__lib/lib.signal.d.ts +0 -4
  359. package/types/cli/templates/lib/__lib/lib.store.d.ts +0 -4
  360. package/types/cli/templates/lib/cnst.d.ts +0 -4
  361. package/types/cli/templates/lib/db.d.ts +0 -4
  362. package/types/cli/templates/lib/dict.d.ts +0 -4
  363. package/types/cli/templates/lib/sig.d.ts +0 -4
  364. package/types/cli/templates/lib/srv.d.ts +0 -4
  365. package/types/cli/templates/lib/st.d.ts +0 -4
  366. package/types/cli/templates/lib/useClient.d.ts +0 -4
  367. package/types/cli/templates/lib/useServer.d.ts +0 -4
  368. package/types/cli/templates/libRoot/akan.config.d.ts +0 -5
  369. package/types/cli/templates/libRoot/base/baseLogic.d.ts +0 -5
  370. package/types/cli/templates/libRoot/base/index.d.ts +0 -5
  371. package/types/cli/templates/libRoot/base.d.ts +0 -1
  372. package/types/cli/templates/libRoot/common/commonLogic.d.ts +0 -5
  373. package/types/cli/templates/libRoot/common/index.d.ts +0 -5
  374. package/types/cli/templates/libRoot/common.d.ts +0 -1
  375. package/types/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.d.ts +0 -6
  376. package/types/cli/templates/libRoot/lib/___libName__/__libName__.service.d.ts +0 -6
  377. package/types/cli/templates/libRoot/lib/___libName__/__libName__.store.d.ts +0 -6
  378. package/types/cli/templates/libRoot/lib/option.d.ts +0 -6
  379. package/types/cli/templates/libRoot/srvkit/backendLogic.d.ts +0 -5
  380. package/types/cli/templates/libRoot/srvkit/index.d.ts +0 -5
  381. package/types/cli/templates/libRoot/srvkit.d.ts +0 -1
  382. package/types/cli/templates/libRoot/ui/index.d.ts +0 -5
  383. package/types/cli/templates/libRoot/ui.d.ts +0 -1
  384. package/types/cli/templates/libRoot/webkit/frontendLogic.d.ts +0 -5
  385. package/types/cli/templates/libRoot/webkit/index.d.ts +0 -5
  386. package/types/cli/templates/libRoot/webkit.d.ts +0 -1
  387. package/types/cli/templates/module/__Model__.Template.d.ts +0 -11
  388. package/types/cli/templates/module/__Model__.Unit.d.ts +0 -11
  389. package/types/cli/templates/module/__Model__.Util.d.ts +0 -11
  390. package/types/cli/templates/module/__Model__.View.d.ts +0 -11
  391. package/types/cli/templates/module/__Model__.Zone.d.ts +0 -11
  392. package/types/cli/templates/module/__model__.constant.d.ts +0 -8
  393. package/types/cli/templates/module/__model__.dictionary.d.ts +0 -8
  394. package/types/cli/templates/module/__model__.document.d.ts +0 -8
  395. package/types/cli/templates/module/__model__.service.d.ts +0 -8
  396. package/types/cli/templates/module/__model__.signal.d.ts +0 -9
  397. package/types/cli/templates/module/__model__.store.d.ts +0 -8
  398. package/types/cli/templates/moduleRoot/index.d.ts +0 -11
  399. package/types/cli/templates/moduleRoot.d.ts +0 -1
  400. package/types/cli/templates/server.d.ts +0 -4
  401. package/types/cli/templates.d.ts +0 -1
  402. package/types/cli/testHelpers.d.ts +0 -64
  403. package/types/cli/workspace/workspace.command.d.ts +0 -7
  404. package/types/cli/workspace/workspace.runner.d.ts +0 -14
  405. package/types/cli/workspace/workspace.script.d.ts +0 -29
  406. package/types/cli.d.ts +0 -1
  407. package/types/devkit/aiEditor.d.ts +0 -50
  408. package/types/devkit/akanApp/akanApp.host.d.ts +0 -16
  409. package/types/devkit/akanApp/index.d.ts +0 -1
  410. package/types/devkit/akanApp.d.ts +0 -1
  411. package/types/devkit/akanConfig/akanConfig.d.ts +0 -36
  412. package/types/devkit/akanConfig/index.d.ts +0 -2
  413. package/types/devkit/akanConfig.d.ts +0 -1
  414. package/types/devkit/applicationBuildReporter.d.ts +0 -25
  415. package/types/devkit/applicationBuildRunner.d.ts +0 -29
  416. package/types/devkit/applicationReleasePackager.d.ts +0 -17
  417. package/types/devkit/artifact/implicitRootLayout.d.ts +0 -17
  418. package/types/devkit/artifact/index.d.ts +0 -1
  419. package/types/devkit/artifact/routeSeedIndex.d.ts +0 -38
  420. package/types/devkit/artifact.d.ts +0 -1
  421. package/types/devkit/auth.d.ts +0 -9
  422. package/types/devkit/builder.d.ts +0 -18
  423. package/types/devkit/capacitor.base.config.d.ts +0 -3
  424. package/types/devkit/capacitorApp.d.ts +0 -58
  425. package/types/devkit/commandDecorators/argMeta.d.ts +0 -68
  426. package/types/devkit/commandDecorators/command.d.ts +0 -2
  427. package/types/devkit/commandDecorators/commandBuilder.d.ts +0 -60
  428. package/types/devkit/commandDecorators/commandMeta.d.ts +0 -2
  429. package/types/devkit/commandDecorators/dependencyBuilder.d.ts +0 -22
  430. package/types/devkit/commandDecorators/helpFormatter.d.ts +0 -3
  431. package/types/devkit/commandDecorators/index.d.ts +0 -8
  432. package/types/devkit/commandDecorators/targetMeta.d.ts +0 -21
  433. package/types/devkit/commandDecorators/types.d.ts +0 -8
  434. package/types/devkit/commandDecorators.d.ts +0 -1
  435. package/types/devkit/constants.d.ts +0 -25
  436. package/types/devkit/createTunnel.d.ts +0 -8
  437. package/types/devkit/dependencyScanner.d.ts +0 -33
  438. package/types/devkit/executors.d.ts +0 -320
  439. package/types/devkit/extractDeps.d.ts +0 -7
  440. package/types/devkit/fileEditor.d.ts +0 -16
  441. package/types/devkit/fileSys.d.ts +0 -12
  442. package/types/devkit/frontendBuild/allRoutesBuilder.d.ts +0 -18
  443. package/types/devkit/frontendBuild/clientBuildTypes.d.ts +0 -107
  444. package/types/devkit/frontendBuild/clientEntriesBundler.d.ts +0 -12
  445. package/types/devkit/frontendBuild/clientEntryDiscovery.d.ts +0 -19
  446. package/types/devkit/frontendBuild/csrArtifactBuilder.d.ts +0 -16
  447. package/types/devkit/frontendBuild/cssCompiler.d.ts +0 -25
  448. package/types/devkit/frontendBuild/cssImportResolver.d.ts +0 -9
  449. package/types/devkit/frontendBuild/fontOptimizer.d.ts +0 -14
  450. package/types/devkit/frontendBuild/hmrChangeClassifier.d.ts +0 -5
  451. package/types/devkit/frontendBuild/hmrWatcher.d.ts +0 -21
  452. package/types/devkit/frontendBuild/index.d.ts +0 -18
  453. package/types/devkit/frontendBuild/pagesBundleBuilder.d.ts +0 -28
  454. package/types/devkit/frontendBuild/pagesEntrySourceGenerator.d.ts +0 -9
  455. package/types/devkit/frontendBuild/precompressArtifacts.d.ts +0 -7
  456. package/types/devkit/frontendBuild/routeClientBuilder.d.ts +0 -50
  457. package/types/devkit/frontendBuild/routesManifestArtifactSerializer.d.ts +0 -12
  458. package/types/devkit/frontendBuild/ssrBaseArtifactBuilder.d.ts +0 -16
  459. package/types/devkit/frontendBuild/vendorSpecifiers.d.ts +0 -2
  460. package/types/devkit/frontendBuild/watchRootResolver.d.ts +0 -6
  461. package/types/devkit/frontendBuild.d.ts +0 -1
  462. package/types/devkit/getCredentials.d.ts +0 -12
  463. package/types/devkit/getDirname.d.ts +0 -1
  464. package/types/devkit/getModelFileData.d.ts +0 -16
  465. package/types/devkit/getRelatedCnsts.d.ts +0 -53
  466. package/types/devkit/guideline.d.ts +0 -19
  467. package/types/devkit/incrementalBuilder/incrementalBuilder.host.d.ts +0 -30
  468. package/types/devkit/incrementalBuilder/incrementalBuilder.proc.d.ts +0 -1
  469. package/types/devkit/incrementalBuilder/index.d.ts +0 -1
  470. package/types/devkit/incrementalBuilder.d.ts +0 -1
  471. package/types/devkit/index.d.ts +0 -36
  472. package/types/devkit/linter.d.ts +0 -108
  473. package/types/devkit/mobile/index.d.ts +0 -1
  474. package/types/devkit/mobile/mobileTarget.d.ts +0 -14
  475. package/types/devkit/mobile.d.ts +0 -1
  476. package/types/devkit/prompter.d.ts +0 -15
  477. package/types/devkit/scanInfo.d.ts +0 -82
  478. package/types/devkit/selectModel.d.ts +0 -1
  479. package/types/devkit/spinner.d.ts +0 -20
  480. package/types/devkit/src/capacitorApp.d.ts +0 -39
  481. package/types/devkit/sshTunnel.d.ts +0 -14
  482. package/types/devkit/streamAi.d.ts +0 -6
  483. package/types/devkit/transforms/barrelAnalyzer.d.ts +0 -27
  484. package/types/devkit/transforms/barrelImportsPlugin.d.ts +0 -26
  485. package/types/devkit/transforms/externalizeFrameworkPlugin.d.ts +0 -49
  486. package/types/devkit/transforms/index.d.ts +0 -5
  487. package/types/devkit/transforms/rscUseClientTransform.d.ts +0 -10
  488. package/types/devkit/transforms/useClientBundlePlugin.d.ts +0 -19
  489. package/types/devkit/transforms.d.ts +0 -1
  490. package/types/devkit/typeChecker.d.ts +0 -62
  491. package/types/devkit/types.d.ts +0 -43
  492. package/types/devkit/ui/MultiScrollList.d.ts +0 -13
  493. package/types/devkit/ui/ScrollList.d.ts +0 -7
  494. package/types/devkit/ui/index.d.ts +0 -2
  495. package/types/devkit/ui.d.ts +0 -1
  496. package/types/devkit/uploadRelease.d.ts +0 -10
  497. package/types/devkit/useStdoutDimensions.d.ts +0 -1
  498. package/types/devkit.d.ts +0 -1
@@ -1,159 +0,0 @@
1
- import path from "node:path";
2
- import type { BunPlugin } from "bun";
3
- import type { App } from "../commandDecorators";
4
-
5
- /**
6
- * Keep framework/runtime singletons external while bundling authored
7
- * workspace sources and ordinary npm dependencies into the pages bundle.
8
- *
9
- * Why a plugin instead of `Bun.build({ external })` or
10
- * `Bun.build({ packages: "external" })`:
11
- * - `packages: "external"` externalizes every bare specifier, including
12
- * `@apps/*` / `@libs/*` — workspace packages that must stay bundled
13
- * so the `"use client"` plugin can rewrite their exports — and ordinary
14
- * npm dependencies like `dayjs` / `clsx`, which the production runtime
15
- * package.json does not install for the SSR pages artifact.
16
- * - Top-level `external: [...]` applies to macro-time module resolution
17
- * too; any `with { type: "macro" }` import chain that transitively
18
- * resolves `react` during build then fails with `ENOENT "react"`.
19
- *
20
- * An `onResolve` plugin only participates in the output-graph walk, so
21
- * macros evaluate against the real modules in node_modules while the
22
- * emitted bundle keeps bare specifiers only for runtime singletons that
23
- * are installed in the generated production package.json.
24
- *
25
- * Externalization rules (applied in order):
26
- * 1. Relative specifiers (`./`, `../`) are NEVER externalized — they
27
- * always resolve to the current package's source tree and must be
28
- * inlined so transitive `"use client"` stubs work.
29
- * 2. Specifiers listed in `include` (workspace aliases like
30
- * `@apps/*`, `@libs/*`) are NEVER externalized.
31
- * 3. React / RSC runtime packages and framework host packages are
32
- * externalized so the runtime supplies a single shared instance.
33
- * 4. Other bare npm packages are bundled so the Docker runtime does not
34
- * need to install every transitive page dependency separately.
35
- */
36
- export interface ExternalizeFrameworkOptions {
37
- app: App;
38
- /**
39
- * Prefixes that should be BUNDLED (kept internal). Defaults to
40
- * `@apps/` and `@libs/` which are the workspace aliases used by the
41
- * framework's app template.
42
- */
43
- include?: string[];
44
- /**
45
- * Extra bare specifiers to force-externalize beyond the allowlist
46
- * defaults. Not commonly needed since the default rule already
47
- * externalizes every non-workspace specifier.
48
- */
49
- extra?: string[];
50
- }
51
-
52
- const DEFAULT_INCLUDE = ["akanjs/", "@apps/", "@libs/"];
53
-
54
- const DEFAULT_EXCLUDE_EXACT = new Set<string>(["akanjs/webkit", "akanjs/server", "akanjs/cli", "akanjs/devkit"]);
55
- const DEFAULT_EXCLUDE_PREFIX = ["akanjs/server/", "akanjs/cli/", "akanjs/devkit/"];
56
- const RUNTIME_EXTERNAL_EXACT = new Set<string>([
57
- "react",
58
- "react-dom",
59
- "react/jsx-runtime",
60
- "react/jsx-dev-runtime",
61
- "react-server-dom-webpack",
62
- "react-server-dom-webpack/server.node",
63
- "react-server-dom-webpack/client.node",
64
- "react-server-dom-webpack/client.browser",
65
- ]);
66
- const RUNTIME_EXTERNAL_PREFIX = ["react-dom/", "react-server-dom-webpack/"];
67
-
68
- const CANDIDATE_EXTS = [".tsx", ".ts", ".jsx", ".js", ".mjs", ".cjs"];
69
-
70
- export async function createExternalizeFrameworkPlugin(options: ExternalizeFrameworkOptions): Promise<BunPlugin> {
71
- const tsconfig = await options.app.getTsConfig();
72
- const includePrefixes = options.include ?? DEFAULT_INCLUDE;
73
- const extraExact = new Set(options.extra ?? []);
74
- const workspaceRoot = options.app.workspace.workspaceRoot;
75
- const tsconfigPaths = tsconfig.compilerOptions.paths ?? {};
76
-
77
- const rootEntries = Object.entries(tsconfigPaths)
78
- .filter(([k]) => !k.endsWith("/*"))
79
- .map(([k, v]) => ({ pkg: k, entryFile: v[0] ?? null }))
80
- .filter((e): e is { pkg: string; entryFile: string } => e.entryFile !== null);
81
- const wildcardEntries = Object.entries(tsconfigPaths)
82
- .filter(([k]) => k.endsWith("/*"))
83
- .map(([k, v]) => ({ prefix: k.slice(0, -1), replacements: v }))
84
- .sort((a, b) => b.prefix.length - a.prefix.length);
85
-
86
- async function resolveWorkspaceSubpath(spec: string): Promise<string | null> {
87
- if (!workspaceRoot) return null;
88
-
89
- for (const { prefix, replacements } of wildcardEntries) {
90
- if (!spec.startsWith(prefix)) continue;
91
- const suffix = spec.slice(prefix.length);
92
- for (const repl of replacements) {
93
- const replPath = repl?.endsWith("/*") ? repl.slice(0, -1) : (repl ?? "");
94
- if (!replPath) continue;
95
- const candidate = path.resolve(workspaceRoot, replPath + suffix);
96
- const hit = await firstExisting(candidate);
97
- if (hit) return hit;
98
- }
99
- }
100
-
101
- for (const { pkg, entryFile } of rootEntries) {
102
- if (spec !== pkg && !spec.startsWith(`${pkg}/`)) continue;
103
- if (spec === pkg) continue;
104
- const suffix = spec.slice(pkg.length + 1);
105
- const pkgDir = path.dirname(path.resolve(workspaceRoot, entryFile));
106
- const candidate = path.join(pkgDir, suffix);
107
- const hit = await firstExisting(candidate);
108
- if (hit) return hit;
109
- }
110
- return null;
111
- }
112
-
113
- return {
114
- name: "akan-externalize-framework",
115
- setup(build) {
116
- build.onResolve({ filter: /.*/ }, async (args) => {
117
- const spec = args.path;
118
-
119
- if (spec === "." || spec === ".." || spec.startsWith("./") || spec.startsWith("../") || spec.startsWith("/"))
120
- return undefined;
121
-
122
- if (extraExact.has(spec) || DEFAULT_EXCLUDE_EXACT.has(spec)) return { path: spec, external: true };
123
- for (const prefix of DEFAULT_EXCLUDE_PREFIX) {
124
- if (spec.startsWith(prefix)) return { path: spec, external: true };
125
- }
126
- if (RUNTIME_EXTERNAL_EXACT.has(spec)) return { path: spec, external: true };
127
- for (const prefix of RUNTIME_EXTERNAL_PREFIX) {
128
- if (spec.startsWith(prefix)) return { path: spec, external: true };
129
- }
130
-
131
- for (const prefix of includePrefixes) {
132
- if (!spec.startsWith(prefix)) continue;
133
- const resolved = await resolveWorkspaceSubpath(spec);
134
- if (resolved) return { path: resolved };
135
-
136
- return undefined;
137
- }
138
-
139
- return undefined;
140
- });
141
- },
142
- };
143
- }
144
-
145
- async function firstExisting(basePath: string): Promise<string | null> {
146
-
147
- if (await Bun.file(basePath).exists()) return basePath;
148
-
149
- for (const ext of CANDIDATE_EXTS) {
150
- const candidate = `${basePath}${ext}`;
151
- if (await Bun.file(candidate).exists()) return candidate;
152
- }
153
-
154
- for (const ext of CANDIDATE_EXTS) {
155
- const candidate = path.join(basePath, `index${ext}`);
156
- if (await Bun.file(candidate).exists()) return candidate;
157
- }
158
- return null;
159
- }
@@ -1,5 +0,0 @@
1
- export * from "./barrelAnalyzer";
2
- export * from "./barrelImportsPlugin";
3
- export * from "./externalizeFrameworkPlugin";
4
- export * from "./rscUseClientTransform";
5
- export * from "./useClientBundlePlugin";
@@ -1,52 +0,0 @@
1
- import path from "node:path";
2
-
3
- const USE_CLIENT_RE = /^\s*(?:\/\*[\s\S]*?\*\/\s*|\/\/[^\n]*\n\s*)*["']use client["']/;
4
- const IMPLICIT_ROOT_LAYOUT_RE =
5
- /[/\\]\.akan[/\\]generated[/\\](?:implicit-root-layout|root-layouts[/\\].*__root_layout)\.(tsx|ts|jsx|js)$/;
6
-
7
- export interface UseClientTransformArgs {
8
- path: string;
9
- workspaceRoot?: string;
10
- }
11
-
12
- export function toClientReferencePath(absPath: string, workspaceRoot: string): string {
13
- return path.relative(path.resolve(workspaceRoot), path.resolve(absPath)).split(path.sep).join("/");
14
- }
15
-
16
- /**
17
- * Returns the stubbed module source if `source` is a client module, else null.
18
- * The returned source is TypeScript-compatible (loader "ts" is safe).
19
- */
20
- export function transformUseClient(source: string, args: UseClientTransformArgs): string | null {
21
- if (!USE_CLIENT_RE.test(source)) return null;
22
- if (IMPLICIT_ROOT_LAYOUT_RE.test(args.path)) return null;
23
- const transpiler = new Bun.Transpiler({ loader: loaderFor(args.path) });
24
- const { exports } = transpiler.scan(source);
25
- if (exports.length === 0) return null;
26
-
27
- const referencePath = args.workspaceRoot ? toClientReferencePath(args.path, args.workspaceRoot) : args.path;
28
- const filePathLit = JSON.stringify(referencePath);
29
- const lines: string[] = [`import { registerClientReference } from "react-server-dom-webpack/server.node";`];
30
-
31
- for (const name of exports) {
32
- const nameLit = JSON.stringify(name);
33
- const errMsg = JSON.stringify(
34
- `Attempted to call '${name}' from '${referencePath}' on the server, but it is a client-only export.`,
35
- );
36
- const proxy = `() => { throw new Error(${errMsg}); }`;
37
- const binding =
38
- name === "default"
39
- ? `export default registerClientReference(${proxy}, ${filePathLit}, ${nameLit});`
40
- : `export const ${name} = registerClientReference(${proxy}, ${filePathLit}, ${nameLit});`;
41
- lines.push(binding);
42
- }
43
-
44
- return lines.join("\n");
45
- }
46
-
47
- function loaderFor(absPath: string): "ts" | "tsx" | "js" | "jsx" {
48
- if (absPath.endsWith(".tsx")) return "tsx";
49
- if (absPath.endsWith(".jsx")) return "jsx";
50
- if (absPath.endsWith(".ts")) return "ts";
51
- return "js";
52
- }
@@ -1,47 +0,0 @@
1
- import type { BunPlugin } from "bun";
2
- import { transformUseClient } from "./rscUseClientTransform";
3
-
4
- /**
5
- * BunPlugin that stubs `"use client"` modules so the server bundle sees
6
- * `registerClientReference(proxy, absPath, name)` stubs instead of the
7
- * original client code.
8
- *
9
- * The bundle produced by `PagesBundleBuilder` is loaded in the RSC worker
10
- * with `--conditions react-server`; client components are never supposed
11
- * to execute there. The resulting stub references keep the client
12
- * component manifest lookups working at render time while ensuring the
13
- * server bundle never drags the real client source graph in.
14
- *
15
- * Important: the second argument to `registerClientReference` must match the
16
- * key the client manifest uses. When `workspaceRoot` is provided, both sides
17
- * use workspace-relative keys so production artifacts are portable.
18
- */
19
- export function createUseClientBundlePlugin(options: { workspaceRoot?: string } = {}): BunPlugin {
20
- return {
21
- name: "akan-use-client-bundle",
22
- setup(build) {
23
- build.onLoad({ filter: /\.(tsx|ts|jsx|js)$/ }, async (args) => {
24
- if (args.path.includes("/node_modules/")) return undefined;
25
- let source: string;
26
- try {
27
- source = await Bun.file(args.path).text();
28
- } catch {
29
- return undefined;
30
- }
31
- const stubbed = transformUseClient(source, {
32
- path: args.path,
33
- workspaceRoot: options.workspaceRoot,
34
- });
35
- if (stubbed === null) return undefined;
36
- return { contents: stubbed, loader: loaderFor(args.path) };
37
- });
38
- },
39
- };
40
- }
41
-
42
- function loaderFor(absPath: string): "ts" | "tsx" | "js" | "jsx" {
43
- if (absPath.endsWith(".tsx")) return "tsx";
44
- if (absPath.endsWith(".jsx")) return "jsx";
45
- if (absPath.endsWith(".ts")) return "ts";
46
- return "js";
47
- }
@@ -1,260 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import * as path from "node:path";
3
- import chalk from "chalk";
4
- import * as ts from "typescript";
5
-
6
- import type { Executor } from "./executors";
7
-
8
- export interface ProjectTypecheckResult {
9
- configPath: string;
10
- diagnostics: ts.Diagnostic[];
11
- errors: ts.Diagnostic[];
12
- warnings: ts.Diagnostic[];
13
- message: string;
14
- }
15
-
16
- export class TypeChecker {
17
- readonly configPath: string;
18
- readonly configFile: { config?: any; error?: ts.Diagnostic };
19
- readonly config: ts.ParsedCommandLine;
20
- constructor(executor: Executor) {
21
- const configPath = this.#findConfigFile(executor.cwdPath);
22
- if (!configPath) throw new Error("No tsconfig.json found in the project");
23
- this.configPath = configPath;
24
- this.configFile = ts.readConfigFile(this.configPath, (fileName) => ts.sys.readFile(fileName));
25
- const parsedConfig = ts.parseJsonConfigFileContent(
26
- this.configFile.config,
27
- ts.sys,
28
- path.dirname(this.configPath),
29
- undefined,
30
- this.configPath,
31
- );
32
-
33
- if (parsedConfig.errors.length > 0) {
34
- const errorMessages = parsedConfig.errors
35
- .map((error) => ts.flattenDiagnosticMessageText(error.messageText, "\n"))
36
- .join("\n");
37
- throw new Error(`Error parsing tsconfig.json:\n${errorMessages}`);
38
- }
39
- this.config = parsedConfig;
40
- }
41
- /**
42
- * Find tsconfig.json by walking up the directory tree
43
- */
44
- #findConfigFile(searchPath: string): string | undefined {
45
- return ts.findConfigFile(searchPath, (fileName) => ts.sys.fileExists(fileName), "tsconfig.json");
46
- }
47
-
48
- /**
49
- * Type-check a single TypeScript file
50
- * @param filePath - Path to the TypeScript file to check
51
- * @returns Array of diagnostic messages
52
- */
53
- check(filePath: string): {
54
- diagnostics: ts.Diagnostic[];
55
- errors: ts.Diagnostic[];
56
- warnings: ts.Diagnostic[];
57
- fileDiagnostics: ts.Diagnostic[];
58
- fileErrors: ts.Diagnostic[];
59
- fileWarnings: ts.Diagnostic[];
60
- } {
61
- const program = ts.createProgram([filePath], this.config.options);
62
- const diagnostics = [
63
- ...program.getSemanticDiagnostics(),
64
- ...program.getSyntacticDiagnostics(),
65
-
66
- ...(this.config.options.declaration ? program.getDeclarationDiagnostics() : []),
67
- ];
68
- const errors = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error);
69
- const warnings = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Warning);
70
- const fileDiagnostics = diagnostics.filter((diagnostic) => diagnostic.file?.fileName === filePath);
71
- const fileErrors = fileDiagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error);
72
- const fileWarnings = fileDiagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Warning);
73
- return { diagnostics, errors, warnings, fileDiagnostics, fileErrors, fileWarnings };
74
- }
75
-
76
- /**
77
- * Format diagnostics for console output
78
- * @param diagnostics - Array of TypeScript diagnostics
79
- * @returns Formatted string
80
- */
81
- formatDiagnostics(diagnostics: ts.Diagnostic[]): string {
82
- if (diagnostics.length === 0) return chalk.bold("✅ No type errors found");
83
-
84
- const output: string[] = [];
85
- let errorCount = 0;
86
- let warningCount = 0;
87
- let suggestionCount = 0;
88
-
89
- const diagnosticsByFile = new Map<string, ts.Diagnostic[]>();
90
- diagnostics.forEach((diagnostic) => {
91
- if (diagnostic.category === ts.DiagnosticCategory.Error) errorCount++;
92
- else if (diagnostic.category === ts.DiagnosticCategory.Warning) warningCount++;
93
- else if (diagnostic.category === ts.DiagnosticCategory.Suggestion) suggestionCount++;
94
-
95
- if (diagnostic.file) {
96
- const fileName = diagnostic.file.fileName;
97
- if (!diagnosticsByFile.has(fileName)) diagnosticsByFile.set(fileName, []);
98
- const fileDiagnostics = diagnosticsByFile.get(fileName);
99
- if (fileDiagnostics) fileDiagnostics.push(diagnostic);
100
- } else {
101
- if (!diagnosticsByFile.has("")) diagnosticsByFile.set("", []);
102
- const fileDiagnostics = diagnosticsByFile.get("");
103
- if (fileDiagnostics) fileDiagnostics.push(diagnostic);
104
- }
105
- });
106
-
107
- diagnosticsByFile.forEach((fileDiagnostics, fileName) => {
108
- if (fileName) output.push(`\n${chalk.cyan(fileName)}`);
109
-
110
- fileDiagnostics.forEach((diagnostic) => {
111
- const categoryText =
112
- diagnostic.category === ts.DiagnosticCategory.Error
113
- ? "error"
114
- : diagnostic.category === ts.DiagnosticCategory.Warning
115
- ? "warning"
116
- : "suggestion";
117
- const categoryColor =
118
- diagnostic.category === ts.DiagnosticCategory.Error
119
- ? chalk.red
120
- : diagnostic.category === ts.DiagnosticCategory.Warning
121
- ? chalk.yellow
122
- : chalk.blue;
123
- const icon =
124
- diagnostic.category === ts.DiagnosticCategory.Error
125
- ? "❌"
126
- : diagnostic.category === ts.DiagnosticCategory.Warning
127
- ? "⚠️"
128
- : "💡";
129
- const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
130
- const tsCode = chalk.dim(`(TS${diagnostic.code})`);
131
-
132
- if (diagnostic.file && diagnostic.start !== undefined) {
133
- const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
134
-
135
- output.push(`\n ${icon} ${categoryColor(categoryText)}: ${message} ${tsCode}`);
136
- output.push(` ${chalk.gray("at")} ${fileName}:${chalk.bold(`${line + 1}:${character + 1}`)}`);
137
-
138
- const sourceLines = diagnostic.file.text.split("\n");
139
- if (line < sourceLines.length) {
140
- const sourceLine = sourceLines[line];
141
- const lineNumber = (line + 1).toString().padStart(5, " ");
142
-
143
- output.push(`\n${chalk.dim(`${lineNumber} |`)} ${sourceLine}`);
144
-
145
- const underlinePrefix = " ".repeat(character);
146
- const length = diagnostic.length ?? 1;
147
- const underline = "~".repeat(Math.max(1, length));
148
-
149
- output.push(
150
- `${chalk.dim(`${" ".repeat(lineNumber.length)} |`)} ${underlinePrefix}${categoryColor(underline)}`,
151
- );
152
- }
153
- } else output.push(`\n ${icon} ${categoryColor(categoryText)}: ${message} ${tsCode}`);
154
- });
155
- });
156
-
157
- const summary = [] as string[];
158
- if (errorCount > 0) summary.push(chalk.red(`${errorCount} error(s)`));
159
- if (warningCount > 0) summary.push(chalk.yellow(`${warningCount} warning(s)`));
160
- if (suggestionCount > 0) summary.push(chalk.blue(`${suggestionCount} suggestion(s)`));
161
-
162
- return `\n${summary.join(", ")} found${output.join("\n")}`;
163
- }
164
-
165
- /**
166
- * Get detailed diagnostic information with code snippet
167
- * @param filePath - Path to the TypeScript file to check
168
- * @returns Object containing diagnostics and detailed information
169
- */
170
- getDetailedDiagnostics(filePath: string): {
171
- diagnostics: ts.Diagnostic[];
172
- details: { line: number; column: number; message: string; code: number; codeSnippet?: string }[];
173
- } {
174
- const { diagnostics } = this.check(filePath);
175
- const sourceFile = ts.createSourceFile(filePath, readFileSync(filePath, "utf8"), ts.ScriptTarget.Latest, true);
176
-
177
- const details = diagnostics.map((diagnostic) => {
178
- if (diagnostic.file && diagnostic.start !== undefined) {
179
- const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
180
- const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
181
-
182
- const lines = sourceFile.text.split("\n");
183
- const codeSnippet = line < lines.length ? lines[line] : undefined;
184
- return { line: line + 1, column: character + 1, message, code: diagnostic.code, codeSnippet };
185
- }
186
-
187
- return {
188
- line: 0,
189
- column: 0,
190
- message: ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"),
191
- code: diagnostic.code,
192
- };
193
- });
194
-
195
- return { diagnostics, details };
196
- }
197
-
198
- /**
199
- * Check if a file has type errors
200
- * @param filePath - Path to the TypeScript file to check
201
- * @returns true if there are no type errors, false otherwise
202
- */
203
- hasNoTypeErrors(filePath: string): boolean {
204
- try {
205
- const { diagnostics } = this.check(filePath);
206
- return diagnostics.length === 0;
207
- } catch (error) {
208
- return false;
209
- }
210
- }
211
-
212
- static checkProject(configPath: string): ProjectTypecheckResult {
213
- const parsedConfig = TypeChecker.parseConfig(configPath);
214
- const host = ts.createIncrementalCompilerHost(parsedConfig.options);
215
- const builderProgram = ts.createIncrementalProgram({
216
- rootNames: parsedConfig.fileNames,
217
- options: parsedConfig.options,
218
- projectReferences: parsedConfig.projectReferences,
219
- configFileParsingDiagnostics: parsedConfig.errors,
220
- host,
221
- });
222
- const program = builderProgram.getProgram();
223
- const diagnostics = [...ts.getPreEmitDiagnostics(program), ...builderProgram.emit().diagnostics];
224
- const errors = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error);
225
- const warnings = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Warning);
226
- return {
227
- configPath,
228
- diagnostics,
229
- errors,
230
- warnings,
231
- message: TypeChecker.formatDiagnosticMessages(diagnostics),
232
- };
233
- }
234
-
235
- static parseConfig(configPath: string): ts.ParsedCommandLine {
236
- const configFile = ts.readConfigFile(configPath, (fileName) => ts.sys.readFile(fileName));
237
- const configDiagnostics = configFile.error ? [configFile.error] : [];
238
- if (!configFile.config) {
239
- const message = TypeChecker.formatDiagnosticMessages(configDiagnostics);
240
- throw new Error(message || `Error reading tsconfig.json: ${configPath}`);
241
- }
242
- const parsedConfig = ts.parseJsonConfigFileContent(
243
- configFile.config,
244
- ts.sys,
245
- path.dirname(configPath),
246
- undefined,
247
- configPath,
248
- );
249
- if (parsedConfig.errors.length > 0) throw new Error(TypeChecker.formatDiagnosticMessages(parsedConfig.errors));
250
- return parsedConfig;
251
- }
252
-
253
- static formatDiagnosticMessages(diagnostics: ts.Diagnostic[]): string {
254
- return ts.formatDiagnosticsWithColorAndContext(diagnostics, {
255
- getCanonicalFileName: (fileName) => fileName,
256
- getCurrentDirectory: () => process.cwd(),
257
- getNewLine: () => ts.sys.newLine,
258
- });
259
- }
260
- }
package/devkit/types.ts DELETED
@@ -1,44 +0,0 @@
1
- export interface PackageJson {
2
- name: string;
3
- type?: "module" | "commonjs";
4
- version: string;
5
- main?: string;
6
- description: string;
7
- scripts?: Record<string, string>;
8
- dependencies?: Record<string, string>;
9
- devDependencies?: Record<string, string>;
10
- peerDependencies?: Record<string, string>;
11
- peerDependenciesMeta?: Record<string, { optional?: boolean }>;
12
- optionalDependencies?: Record<string, string>;
13
- engines?: Record<string, string>;
14
- exports?: Record<string, string | Record<string, string>>;
15
- bun?: {
16
- platform?: "node" | "browser" | "bun";
17
- };
18
- [key: string]: unknown;
19
- }
20
-
21
- export interface TsConfigJson {
22
- extends?: string;
23
- compilerOptions: {
24
- target: string;
25
- paths?: Record<string, string[]>;
26
- };
27
- references?: {
28
- path: string;
29
- }[];
30
- }
31
-
32
- export interface FileContent {
33
- filePath: string;
34
- content: string;
35
- }
36
-
37
- export interface BaseDevEnv {
38
- workspaceRoot: string | undefined;
39
- repoName: string;
40
- serveDomain: string;
41
- env: "testing" | "debug" | "develop" | "main" | "local";
42
- portOffset: number;
43
- appName?: string | undefined;
44
- }