@wasp.sh/wasp-cli-darwin-arm64-unknown 0.23.0 → 0.24.0-rc.2

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 (233) hide show
  1. package/data/Cli/starters/basic/main.wasp.ts +60 -0
  2. package/data/Cli/starters/basic/package.json +4 -1
  3. package/data/Cli/starters/basic/prettier.config.mjs +9 -0
  4. package/data/Cli/starters/basic/src/tags/tags.wasp.ts +8 -0
  5. package/data/Cli/starters/basic/src/tasks/task.wasp.ts +16 -0
  6. package/data/Cli/starters/minimal/main.wasp.ts +12 -0
  7. package/data/Cli/starters/minimal/package.json +4 -1
  8. package/data/Cli/starters/skeleton/AGENTS.md +23 -0
  9. package/data/Cli/starters/skeleton/CLAUDE.md +23 -0
  10. package/data/Cli/starters/skeleton/tsconfig.json +5 -26
  11. package/data/Cli/starters/{ts-minimal → skeleton}/tsconfig.src.json +2 -1
  12. package/data/Cli/starters/{ts-minimal → skeleton}/tsconfig.wasp.json +5 -2
  13. package/data/Generator/libs/auth/{wasp.sh-lib-auth-0.23.0.tgz → wasp.sh-lib-auth-0.24.0.tgz} +0 -0
  14. package/data/Generator/libs/vite-ssr/{wasp.sh-lib-vite-ssr-0.23.0.tgz → wasp.sh-lib-vite-ssr-0.24.0.tgz} +0 -0
  15. package/data/Generator/templates/sdk/wasp/api/index.ts +51 -47
  16. package/data/Generator/templates/sdk/wasp/auth/email/actions/login.ts +5 -2
  17. package/data/Generator/templates/sdk/wasp/auth/email/actions/passwordReset.ts +9 -4
  18. package/data/Generator/templates/sdk/wasp/auth/email/actions/signup.ts +5 -2
  19. package/data/Generator/templates/sdk/wasp/auth/email/actions/verifyEmail.ts +5 -2
  20. package/data/Generator/templates/sdk/wasp/auth/responseSchemas.ts +10 -0
  21. package/data/Generator/templates/sdk/wasp/auth/useAuth.ts +2 -2
  22. package/data/Generator/templates/sdk/wasp/auth/username/actions/login.ts +5 -3
  23. package/data/Generator/templates/sdk/wasp/auth/username/actions/signup.ts +3 -2
  24. package/data/Generator/templates/sdk/wasp/client/app/layout.tsx +13 -20
  25. package/data/Generator/templates/sdk/wasp/client/app/pages/OAuthCallback.tsx +12 -11
  26. package/data/Generator/templates/sdk/wasp/client/env/schema.ts +8 -8
  27. package/data/Generator/templates/sdk/wasp/client/env.ts +2 -2
  28. package/data/Generator/templates/sdk/wasp/client/operations/internal/index.ts +4 -2
  29. package/data/Generator/templates/sdk/wasp/client/router/NavLink.tsx +21 -0
  30. package/data/Generator/templates/sdk/wasp/client/router/index.ts +2 -0
  31. package/data/Generator/templates/sdk/wasp/client/vite/plugins/typescriptCheck.ts +8 -4
  32. package/data/Generator/templates/sdk/wasp/client/vite/plugins/validateEnv.ts +72 -44
  33. package/data/Generator/templates/sdk/wasp/client/vite/plugins/wasp.ts +1 -1
  34. package/data/Generator/templates/sdk/wasp/tsconfig.json +3 -0
  35. package/data/Generator/templates/types/spec/register.ts +14 -0
  36. package/data/packages/deploy/dist/providers/railway/commands/setup/setup.js +9 -0
  37. package/data/packages/deploy/dist/providers/railway/jsonOutputSchemas.js +47 -0
  38. package/data/packages/deploy/dist/providers/railway/railwayService/deployment.js +45 -0
  39. package/data/packages/deploy/package-lock.json +2 -2
  40. package/data/packages/deploy/package.json +1 -1
  41. package/data/packages/prisma/package-lock.json +2 -2
  42. package/data/packages/prisma/package.json +1 -2
  43. package/data/packages/spec/dist/__tests__/cli.unit.test.js +128 -0
  44. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.d.ts.map +1 -0
  45. package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/appAnalyzer.unit.test.js +3 -3
  46. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.d.ts.map +1 -0
  47. package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/mapTsAppSpecToAppSpecDecls.integration.test.js +2 -2
  48. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.d.ts.map +1 -0
  49. package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/mapTsAppSpecToAppSpecDecls.unit.test.js +4 -18
  50. package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/testFixtures.d.ts +4 -4
  51. package/data/packages/spec/dist/__tests__/legacy/testFixtures.d.ts.map +1 -0
  52. package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/testFixtures.js +2 -2
  53. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.d.ts.map +1 -0
  54. package/data/packages/spec/dist/__tests__/spec/appAnalyzer.unit.test.d.ts +2 -0
  55. package/data/packages/spec/dist/__tests__/spec/appAnalyzer.unit.test.d.ts.map +1 -0
  56. package/data/packages/spec/dist/__tests__/spec/appAnalyzer.unit.test.js +68 -0
  57. package/data/packages/spec/dist/__tests__/spec/mapApp.unit.test.d.ts +2 -0
  58. package/data/packages/spec/dist/__tests__/spec/mapApp.unit.test.d.ts.map +1 -0
  59. package/data/packages/spec/dist/__tests__/spec/mapApp.unit.test.js +814 -0
  60. package/data/packages/spec/dist/__tests__/spec/refObject.test-d.d.ts +2 -0
  61. package/data/packages/spec/dist/__tests__/spec/refObject.test-d.d.ts.map +1 -0
  62. package/data/packages/spec/dist/__tests__/spec/refObject.test-d.js +148 -0
  63. package/data/packages/spec/dist/__tests__/spec/refObject.unit.test.d.ts +2 -0
  64. package/data/packages/spec/dist/__tests__/spec/refObject.unit.test.d.ts.map +1 -0
  65. package/data/packages/spec/dist/__tests__/spec/refObject.unit.test.js +49 -0
  66. package/data/packages/spec/dist/__tests__/spec/refObjectPath.unit.test.d.ts +2 -0
  67. package/data/packages/spec/dist/__tests__/spec/refObjectPath.unit.test.d.ts.map +1 -0
  68. package/data/packages/spec/dist/__tests__/spec/refObjectPath.unit.test.js +204 -0
  69. package/data/packages/spec/dist/__tests__/spec/testFixtures.d.ts +85 -0
  70. package/data/packages/spec/dist/__tests__/spec/testFixtures.d.ts.map +1 -0
  71. package/data/packages/spec/dist/__tests__/spec/testFixtures.js +473 -0
  72. package/data/packages/spec/dist/__tests__/spec/tsAppSpec.test-d.d.ts +2 -0
  73. package/data/packages/spec/dist/__tests__/spec/tsAppSpec.test-d.d.ts.map +1 -0
  74. package/data/packages/spec/dist/__tests__/spec/tsAppSpec.test-d.js +44 -0
  75. package/data/packages/spec/dist/__tests__/spec-pipeline/pipeline.integration.test.d.ts +2 -0
  76. package/data/packages/spec/dist/__tests__/spec-pipeline/pipeline.integration.test.d.ts.map +1 -0
  77. package/data/packages/spec/dist/__tests__/spec-pipeline/pipeline.integration.test.js +218 -0
  78. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/imports.unit.test.d.ts +2 -0
  79. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/imports.unit.test.d.ts.map +1 -0
  80. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/imports.unit.test.js +174 -0
  81. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/refHelper.unit.test.d.ts +2 -0
  82. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/refHelper.unit.test.d.ts.map +1 -0
  83. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/refHelper.unit.test.js +119 -0
  84. package/data/packages/{wasp-config → spec}/dist/src/appSpec.d.ts +11 -4
  85. package/data/packages/spec/dist/src/appSpec.d.ts.map +1 -0
  86. package/data/packages/{wasp-config → spec}/dist/src/cli.d.ts +3 -1
  87. package/data/packages/spec/dist/src/cli.d.ts.map +1 -0
  88. package/data/packages/spec/dist/src/cli.js +28 -0
  89. package/data/packages/spec/dist/src/index.d.ts +2 -0
  90. package/data/packages/spec/dist/src/index.d.ts.map +1 -0
  91. package/data/packages/spec/dist/src/index.js +1 -0
  92. package/data/packages/spec/dist/src/internal.d.ts +2 -0
  93. package/data/packages/spec/dist/src/internal.d.ts.map +1 -0
  94. package/data/packages/spec/dist/src/internal.js +1 -0
  95. package/data/packages/spec/dist/src/legacy/_private.d.ts.map +1 -0
  96. package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/appAnalyzer.d.ts +1 -1
  97. package/data/packages/spec/dist/src/legacy/appAnalyzer.d.ts.map +1 -0
  98. package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/mapTsAppSpecToAppSpecDecls.d.ts +1 -1
  99. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.d.ts.map +1 -0
  100. package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/mapTsAppSpecToAppSpecDecls.js +3 -6
  101. package/data/packages/spec/dist/src/legacy/publicApi/App.d.ts.map +1 -0
  102. package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/publicApi/tsAppSpec.d.ts +3 -3
  103. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.d.ts.map +1 -0
  104. package/data/packages/spec/dist/src/run.js +28 -0
  105. package/data/packages/spec/dist/src/spec/appAnalyzer.d.ts +8 -0
  106. package/data/packages/spec/dist/src/spec/appAnalyzer.d.ts.map +1 -0
  107. package/data/packages/spec/dist/src/spec/appAnalyzer.js +35 -0
  108. package/data/packages/spec/dist/src/spec/mapApp.d.ts +54 -0
  109. package/data/packages/spec/dist/src/spec/mapApp.d.ts.map +1 -0
  110. package/data/packages/spec/dist/src/spec/mapApp.js +336 -0
  111. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts +296 -0
  112. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts.map +1 -0
  113. package/data/packages/spec/dist/src/spec/publicApi/constructors.js +277 -0
  114. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts +5 -0
  115. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts.map +1 -0
  116. package/data/packages/spec/dist/src/spec/publicApi/index.js +2 -0
  117. package/data/packages/spec/dist/src/spec/publicApi/register.d.ts +9 -0
  118. package/data/packages/spec/dist/src/spec/publicApi/register.d.ts.map +1 -0
  119. package/data/packages/spec/dist/src/spec/publicApi/register.js +1 -0
  120. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts +872 -0
  121. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts.map +1 -0
  122. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.js +1 -0
  123. package/data/packages/spec/dist/src/spec/refObject.d.ts +95 -0
  124. package/data/packages/spec/dist/src/spec/refObject.d.ts.map +1 -0
  125. package/data/packages/spec/dist/src/spec/refObject.js +119 -0
  126. package/data/packages/spec/dist/src/spec/refObjectPath.d.ts +18 -0
  127. package/data/packages/spec/dist/src/spec/refObjectPath.d.ts.map +1 -0
  128. package/data/packages/spec/dist/src/spec/refObjectPath.js +79 -0
  129. package/data/packages/spec/dist/src/spec/specUserError.d.ts +9 -0
  130. package/data/packages/spec/dist/src/spec/specUserError.d.ts.map +1 -0
  131. package/data/packages/spec/dist/src/spec/specUserError.js +8 -0
  132. package/data/packages/spec/dist/src/spec-pipeline/common.d.ts +2 -0
  133. package/data/packages/spec/dist/src/spec-pipeline/common.d.ts.map +1 -0
  134. package/data/packages/spec/dist/src/spec-pipeline/common.js +1 -0
  135. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.d.ts +5 -0
  136. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.d.ts.map +1 -0
  137. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.js +46 -0
  138. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/apply.d.ts +4 -0
  139. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/apply.d.ts.map +1 -0
  140. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/apply.js +34 -0
  141. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/check.d.ts +3 -0
  142. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/check.d.ts.map +1 -0
  143. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/check.js +14 -0
  144. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/index.d.ts +5 -0
  145. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/index.d.ts.map +1 -0
  146. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/index.js +40 -0
  147. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/plan.d.ts +26 -0
  148. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/plan.d.ts.map +1 -0
  149. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/plan.js +57 -0
  150. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/index.d.ts +3 -0
  151. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/index.d.ts.map +1 -0
  152. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/index.js +8 -0
  153. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/apply.d.ts +4 -0
  154. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/apply.d.ts.map +1 -0
  155. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/apply.js +18 -0
  156. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.d.ts +3 -0
  157. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.d.ts.map +1 -0
  158. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.js +13 -0
  159. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/index.d.ts +5 -0
  160. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/index.d.ts.map +1 -0
  161. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/index.js +40 -0
  162. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/plan.d.ts +19 -0
  163. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/plan.d.ts.map +1 -0
  164. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/plan.js +60 -0
  165. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/util.d.ts +10 -0
  166. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/util.d.ts.map +1 -0
  167. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/util.js +53 -0
  168. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/index.d.ts +5 -0
  169. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/index.d.ts.map +1 -0
  170. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/index.js +38 -0
  171. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/project.d.ts +9 -0
  172. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/project.d.ts.map +1 -0
  173. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/project.js +66 -0
  174. package/data/packages/spec/dist/src/typeUtils.d.ts +3 -0
  175. package/data/packages/spec/dist/src/typeUtils.d.ts.map +1 -0
  176. package/data/packages/spec/dist/src/typeUtils.js +1 -0
  177. package/data/packages/{wasp-config → spec}/package-lock.json +921 -1475
  178. package/data/packages/spec/package.json +48 -0
  179. package/data/packages/studio/package-lock.json +2 -2
  180. package/data/packages/studio/package.json +1 -1
  181. package/data/packages/ts-inspect/package-lock.json +2 -2
  182. package/data/packages/ts-inspect/package.json +1 -1
  183. package/package.json +1 -1
  184. package/wasp-bin +0 -0
  185. package/data/Cli/starters/basic/.prettierrc +0 -3
  186. package/data/Cli/starters/basic/main.wasp +0 -100
  187. package/data/Cli/starters/minimal/main.wasp +0 -14
  188. package/data/Cli/starters/ts-minimal/main.wasp.ts +0 -15
  189. package/data/Cli/starters/ts-minimal/package.json +0 -18
  190. package/data/Cli/starters/ts-minimal/schema.prisma +0 -10
  191. package/data/Cli/starters/ts-minimal/src/Main.css +0 -103
  192. package/data/Cli/starters/ts-minimal/src/MainPage.tsx +0 -37
  193. package/data/Cli/starters/ts-minimal/src/assets/logo.svg +0 -1
  194. package/data/Cli/starters/ts-minimal/tsconfig.json +0 -7
  195. package/data/Cli/starters/ts-minimal/vite.config.ts +0 -9
  196. package/data/packages/wasp-config/dist/__tests__/appAnalyzer.unit.test.d.ts.map +0 -1
  197. package/data/packages/wasp-config/dist/__tests__/cli.unit.test.js +0 -65
  198. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.integration.test.d.ts.map +0 -1
  199. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.unit.test.d.ts.map +0 -1
  200. package/data/packages/wasp-config/dist/__tests__/testFixtures.d.ts.map +0 -1
  201. package/data/packages/wasp-config/dist/__tests__/testFixtures.test-d.d.ts.map +0 -1
  202. package/data/packages/wasp-config/dist/src/_private.d.ts.map +0 -1
  203. package/data/packages/wasp-config/dist/src/appAnalyzer.d.ts.map +0 -1
  204. package/data/packages/wasp-config/dist/src/appSpec.d.ts.map +0 -1
  205. package/data/packages/wasp-config/dist/src/cli.d.ts.map +0 -1
  206. package/data/packages/wasp-config/dist/src/cli.js +0 -24
  207. package/data/packages/wasp-config/dist/src/index.d.ts +0 -8
  208. package/data/packages/wasp-config/dist/src/index.d.ts.map +0 -1
  209. package/data/packages/wasp-config/dist/src/index.js +0 -1
  210. package/data/packages/wasp-config/dist/src/mapTsAppSpecToAppSpecDecls.d.ts.map +0 -1
  211. package/data/packages/wasp-config/dist/src/publicApi/App.d.ts.map +0 -1
  212. package/data/packages/wasp-config/dist/src/publicApi/tsAppSpec.d.ts.map +0 -1
  213. package/data/packages/wasp-config/dist/src/run.js +0 -18
  214. package/data/packages/wasp-config/package.json +0 -40
  215. /package/data/packages/{wasp-config → spec}/dist/__tests__/cli.unit.test.d.ts +0 -0
  216. /package/data/packages/{wasp-config → spec}/dist/__tests__/cli.unit.test.d.ts.map +0 -0
  217. /package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/appAnalyzer.unit.test.d.ts +0 -0
  218. /package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/mapTsAppSpecToAppSpecDecls.integration.test.d.ts +0 -0
  219. /package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/mapTsAppSpecToAppSpecDecls.unit.test.d.ts +0 -0
  220. /package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/testFixtures.test-d.d.ts +0 -0
  221. /package/data/packages/{wasp-config/dist/__tests__ → spec/dist/__tests__/legacy}/testFixtures.test-d.js +0 -0
  222. /package/data/packages/{wasp-config → spec}/dist/src/appSpec.js +0 -0
  223. /package/data/packages/{wasp-config → spec}/dist/src/branded.d.ts +0 -0
  224. /package/data/packages/{wasp-config → spec}/dist/src/branded.d.ts.map +0 -0
  225. /package/data/packages/{wasp-config → spec}/dist/src/branded.js +0 -0
  226. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/_private.d.ts +0 -0
  227. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/_private.js +0 -0
  228. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/appAnalyzer.js +0 -0
  229. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/publicApi/App.d.ts +0 -0
  230. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/publicApi/App.js +0 -0
  231. /package/data/packages/{wasp-config/dist/src → spec/dist/src/legacy}/publicApi/tsAppSpec.js +0 -0
  232. /package/data/packages/{wasp-config → spec}/dist/src/run.d.ts +0 -0
  233. /package/data/packages/{wasp-config → spec}/dist/src/run.d.ts.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAKzD"}
@@ -0,0 +1,8 @@
1
+ import { transformRefImportsPlugin } from "./imports/index.js";
2
+ import { transformRefHelperPlugin } from "./refHelper/index.js";
3
+ export function transformWaspTsSpecFilesPlugin() {
4
+ return [
5
+ transformRefImportsPlugin(), // Ref imports transforms to the ref helper, so it should come first.
6
+ transformRefHelperPlugin(),
7
+ ];
8
+ }
@@ -0,0 +1,4 @@
1
+ import type { RolldownMagicString } from "rolldown";
2
+ import { Plan } from "./plan.js";
3
+ export declare function applyTransformRefHelperPlan_mutate(importingFilePath: string, magicString: RolldownMagicString, { refHelperLocalNames, removals, safeMakeRefHelperName: safeMakeRefHelperName, }: Plan): void;
4
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wBAAgB,kCAAkC,CAChD,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,mBAAmB,EAChC,EACE,mBAAmB,EACnB,QAAQ,EACR,qBAAqB,EAAE,qBAAqB,GAC7C,EAAE,IAAI,GACN,IAAI,CA2BN"}
@@ -0,0 +1,18 @@
1
+ import { buildImportStatement, INTERNAL_MAKE_REF_HELPER_IMPORT_NAME, INTERNAL_MAKE_REF_HELPER_IMPORT_SOURCE, } from "../util.js";
2
+ export function applyTransformRefHelperPlan_mutate(importingFilePath, magicString, { refHelperLocalNames, removals, safeMakeRefHelperName: safeMakeRefHelperName, }) {
3
+ for (const removal of removals) {
4
+ magicString.remove(removal.start, removal.end);
5
+ }
6
+ if (refHelperLocalNames.length === 0) {
7
+ return;
8
+ }
9
+ // We'll use the first local name for the ref helper as the main one, and create
10
+ // aliases for the rest if needed. This way we minimize the number of new
11
+ // variables we introduce.
12
+ const [firstRefHelperLocalName, ...extraRefHelperAliases] = refHelperLocalNames;
13
+ magicString.prepend([
14
+ buildImportStatement([[INTERNAL_MAKE_REF_HELPER_IMPORT_NAME, safeMakeRefHelperName]], INTERNAL_MAKE_REF_HELPER_IMPORT_SOURCE),
15
+ `const ${firstRefHelperLocalName} = ${safeMakeRefHelperName}(${JSON.stringify(importingFilePath)});\n`,
16
+ ...extraRefHelperAliases.map((localName) => `const ${localName} = ${firstRefHelperLocalName};\n`),
17
+ ].join(""));
18
+ }
@@ -0,0 +1,3 @@
1
+ import type { ESTree as t } from "rolldown/utils";
2
+ export declare function assertCanTransformRefHelper(ast: t.Program): void;
3
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAIlD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAOhE"}
@@ -0,0 +1,13 @@
1
+ import { SpecUserError } from "../../../spec/specUserError.js";
2
+ import { PUBLIC_REF_HELPER_IMPORT_SOURCE } from "../util.js";
3
+ export function assertCanTransformRefHelper(ast) {
4
+ const hasRefHelperExports = ast.body.some(isRefHelperExportDeclaration);
5
+ if (hasRefHelperExports) {
6
+ throw new SpecUserError(`Re-exporting from the ${PUBLIC_REF_HELPER_IMPORT_SOURCE} package is not supported. First import it and then re-export it if needed.`);
7
+ }
8
+ }
9
+ function isRefHelperExportDeclaration(node) {
10
+ return ((node.type === "ExportNamedDeclaration" ||
11
+ node.type === "ExportAllDeclaration") &&
12
+ node.source?.value === PUBLIC_REF_HELPER_IMPORT_SOURCE);
13
+ }
@@ -0,0 +1,5 @@
1
+ import type { Plugin, RolldownMagicString } from "rolldown";
2
+ import type { ESTree as t } from "rolldown/utils";
3
+ export declare function transformRefHelperPlugin(): Plugin;
4
+ export declare function transformRefHelper_mutate(id: string, ast: t.Program, magicString: RolldownMagicString): void;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAMlD,wBAAgB,wBAAwB,IAAI,MAAM,CA+BjD;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,WAAW,EAAE,mBAAmB,GAC/B,IAAI,CASN"}
@@ -0,0 +1,40 @@
1
+ import assert from "node:assert/strict";
2
+ import { WASP_SPEC_FILE_REGEX } from "../../common.js";
3
+ import { applyTransformRefHelperPlan_mutate } from "./apply.js";
4
+ import { assertCanTransformRefHelper } from "./check.js";
5
+ import { planTransformRefHelper } from "./plan.js";
6
+ export function transformRefHelperPlugin() {
7
+ return {
8
+ name: "wasp/spec/transform-ref-helper",
9
+ options(opts) {
10
+ return {
11
+ ...opts,
12
+ experimental: {
13
+ ...opts.experimental,
14
+ // TODO: Remove this once it goes out of experimental phase.
15
+ // https://rolldown.rs/in-depth/native-magic-string
16
+ nativeMagicString: true,
17
+ },
18
+ };
19
+ },
20
+ transform: {
21
+ filter: { id: WASP_SPEC_FILE_REGEX },
22
+ handler(code, id, meta) {
23
+ assert(meta.magicString);
24
+ // If the AST is already available, use it; otherwise ask the bundler to
25
+ // parse it.
26
+ const ast = meta.ast || this.parse(code, { lang: "ts" });
27
+ transformRefHelper_mutate(id, ast, meta.magicString);
28
+ return { code: meta.magicString };
29
+ },
30
+ },
31
+ };
32
+ }
33
+ export function transformRefHelper_mutate(id, ast, magicString) {
34
+ assertCanTransformRefHelper(ast);
35
+ const refHelperPlan = planTransformRefHelper(ast);
36
+ if (!refHelperPlan) {
37
+ return;
38
+ }
39
+ applyTransformRefHelperPlan_mutate(id, magicString, refHelperPlan);
40
+ }
@@ -0,0 +1,19 @@
1
+ import type { ESTree as t } from "rolldown/utils";
2
+ export type Plan = {
3
+ /**
4
+ * The local names `ref` was imported under (e.g. `["ref"]` or `["appRef"]`),
5
+ * one per `ref` specifier we removed. Each gets aliased back to the generated
6
+ * helper so the rest of the file keeps working.
7
+ */
8
+ refHelperLocalNames: string[];
9
+ /** Source ranges to delete */
10
+ removals: SourceRange[];
11
+ safeMakeRefHelperName: string;
12
+ };
13
+ type SourceRange = {
14
+ start: number;
15
+ end: number;
16
+ };
17
+ export declare function planTransformRefHelper(ast: t.Program): Plan | null;
18
+ export {};
19
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAUlD,MAAM,MAAM,IAAI,GAAG;IACjB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAgClE"}
@@ -0,0 +1,60 @@
1
+ import { getStringValue, getTopLevelBindings, INTERNAL_MAKE_REF_HELPER_IMPORT_NAME, makeSafeName, PUBLIC_REF_HELPER_IMPORT_NAME, PUBLIC_REF_HELPER_IMPORT_SOURCE, } from "../util.js";
2
+ export function planTransformRefHelper(ast) {
3
+ const refHelperImportDeclarations = ast.body.filter(isRefHelperImportDeclaration);
4
+ if (refHelperImportDeclarations.length === 0) {
5
+ return null;
6
+ }
7
+ const removals = refHelperImportDeclarations.flatMap(planRefSpecifierRemovals);
8
+ const refHelperLocalNames = refHelperImportDeclarations.flatMap((declaration) => declaration.specifiers
9
+ .filter(isRefHelperImportSpecifier)
10
+ .map((specifier) => getStringValue(specifier.local)));
11
+ const scope = getTopLevelBindings(ast);
12
+ const safeMakeRefHelperName = makeSafeName(INTERNAL_MAKE_REF_HELPER_IMPORT_NAME, scope);
13
+ return {
14
+ refHelperLocalNames,
15
+ removals,
16
+ safeMakeRefHelperName,
17
+ };
18
+ }
19
+ function isRefHelperImportDeclaration(node) {
20
+ return (node.type === "ImportDeclaration" &&
21
+ node.importKind === "value" &&
22
+ getStringValue(node.source) === PUBLIC_REF_HELPER_IMPORT_SOURCE);
23
+ }
24
+ // We want to remove all `ref` specifiers, with two caveats:
25
+ // - If `ref` is the only specifier in its import declaration, we remove the
26
+ // whole declaration.
27
+ // - If there are multiple specifiers, we need to extend the range a bit to also
28
+ // remove the comma next to it, as a leftover comma would cause a SyntaxError.
29
+ function planRefSpecifierRemovals(importDeclaration) {
30
+ const specifiersCount = importDeclaration.specifiers.length;
31
+ const specifiersToRemove = importDeclaration.specifiers
32
+ .map((node, position) => ({ node, position }))
33
+ .filter(({ node }) => isRefHelperImportSpecifier(node));
34
+ if (specifiersToRemove.length === 0)
35
+ return [];
36
+ if (specifiersToRemove.length === specifiersCount)
37
+ return [importDeclaration];
38
+ return specifiersToRemove.map(({ node: currentSpecifier, position }) => {
39
+ const isFirstSpecifier = position === 0;
40
+ if (isFirstSpecifier) {
41
+ const nextSpecifier = importDeclaration.specifiers[position + 1];
42
+ return {
43
+ start: currentSpecifier.start,
44
+ end: nextSpecifier?.start ?? currentSpecifier.end,
45
+ };
46
+ }
47
+ else {
48
+ const previousSpecifier = importDeclaration.specifiers[position - 1];
49
+ return {
50
+ start: previousSpecifier?.end ?? currentSpecifier.start,
51
+ end: currentSpecifier.end,
52
+ };
53
+ }
54
+ });
55
+ }
56
+ function isRefHelperImportSpecifier(node) {
57
+ return (node.type === "ImportSpecifier" &&
58
+ node.importKind === "value" &&
59
+ getStringValue(node.imported) === PUBLIC_REF_HELPER_IMPORT_NAME);
60
+ }
@@ -0,0 +1,10 @@
1
+ import { type ESTree as t } from "rolldown/utils";
2
+ export declare const PUBLIC_REF_HELPER_IMPORT_SOURCE = "@wasp.sh/spec";
3
+ export declare const PUBLIC_REF_HELPER_IMPORT_NAME = "ref";
4
+ export declare const INTERNAL_MAKE_REF_HELPER_IMPORT_SOURCE = "@wasp.sh/spec/internal";
5
+ export declare const INTERNAL_MAKE_REF_HELPER_IMPORT_NAME = "_waspMakeRef";
6
+ export declare function getStringValue(node: t.IdentifierName | t.StringLiteral): string;
7
+ export declare function getTopLevelBindings(ast: t.Program): Set<string>;
8
+ export declare function makeSafeName(desiredName: string, definedBindings: ReadonlySet<string>): string;
9
+ export declare function buildImportStatement(imports: readonly [importName: string, localName?: string][], source: string): string;
10
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/spec-pipeline/transformWaspTsSpecFilesPlugin/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,+BAA+B,kBAAkB,CAAC;AAC/D,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,eAAO,MAAM,sCAAsC,2BAA2B,CAAC;AAC/E,eAAO,MAAM,oCAAoC,iBAAiB,CAAC;AAEnE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,GACvC,MAAM,CAER;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAsC/D;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GACnC,MAAM,CAOR;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,EAC5D,MAAM,EAAE,MAAM,UAWf"}
@@ -0,0 +1,53 @@
1
+ import { createVisitors } from "estree-util-scope";
2
+ import { walk } from "estree-walker";
3
+ import assert from "node:assert/strict";
4
+ export const PUBLIC_REF_HELPER_IMPORT_SOURCE = "@wasp.sh/spec";
5
+ export const PUBLIC_REF_HELPER_IMPORT_NAME = "ref";
6
+ export const INTERNAL_MAKE_REF_HELPER_IMPORT_SOURCE = "@wasp.sh/spec/internal";
7
+ export const INTERNAL_MAKE_REF_HELPER_IMPORT_NAME = "_waspMakeRef";
8
+ export function getStringValue(node) {
9
+ return node.type === "Identifier" ? node.name : node.value;
10
+ }
11
+ export function getTopLevelBindings(ast) {
12
+ const visitors = createVisitors();
13
+ walk(
14
+ // @ts-expect-error - The types are not exactly the same between Rolldown
15
+ // and ESTree, but the differences are in extra metadata and not the core
16
+ // structure.
17
+ ast, {
18
+ enter(node) {
19
+ visitors.enter(node);
20
+ // Taken from estree-util-scope's documentation, we don't enter any
21
+ // nodes that define their own scope, so we stay in the top-level.
22
+ // https://github.com/syntax-tree/estree-util-scope#example-just-the-top-scope
23
+ if (node.type === "ArrowFunctionExpression" ||
24
+ node.type === "FunctionDeclaration" ||
25
+ node.type === "FunctionExpression" ||
26
+ node.type === "BlockStatement") {
27
+ this.skip();
28
+ visitors.exit(node);
29
+ }
30
+ },
31
+ leave: visitors.exit,
32
+ });
33
+ const topLevelScope = visitors.scopes.at(-1);
34
+ assert(topLevelScope, "Expected to find a scope for the top-level program node");
35
+ const bindings = new Set(topLevelScope.defined);
36
+ return bindings;
37
+ }
38
+ export function makeSafeName(desiredName, definedBindings) {
39
+ let i = 0;
40
+ let name = desiredName;
41
+ while (definedBindings.has(name)) {
42
+ name = `${desiredName}_${i++}`;
43
+ }
44
+ return name;
45
+ }
46
+ export function buildImportStatement(imports, source) {
47
+ const specifiers = imports
48
+ .map(([importName, localName]) => !localName || importName === localName
49
+ ? importName
50
+ : `${importName} as ${localName}`)
51
+ .join(", ");
52
+ return `import { ${specifiers} } from ${JSON.stringify(source)};\n`;
53
+ }
@@ -0,0 +1,5 @@
1
+ import type { Plugin } from "rolldown";
2
+ export declare function typecheckPlugin({ tsconfigPath, }: {
3
+ tsconfigPath: string;
4
+ }): Plugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spec-pipeline/typecheckPlugin/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,wBAAgB,eAAe,CAAC,EAC9B,YAAY,GACb,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAyCT"}
@@ -0,0 +1,38 @@
1
+ import assert from "node:assert/strict";
2
+ import ts from "typescript";
3
+ import { SpecUserError } from "../../spec/specUserError.js";
4
+ import { WASP_SPEC_FILE_REGEX } from "../common.js";
5
+ import { typecheckProject } from "./project.js";
6
+ export function typecheckPlugin({ tsconfigPath, }) {
7
+ // The bundler hands us each spec file's (already lowered) source as it parses
8
+ // it. We collect them here and type check them together once the build ends.
9
+ const specFileSources = new Map();
10
+ return {
11
+ name: "wasp/spec/typecheck",
12
+ moduleParsed(info) {
13
+ if (!WASP_SPEC_FILE_REGEX.test(info.id))
14
+ return;
15
+ assert(info.code);
16
+ specFileSources.set(info.id, info.code);
17
+ },
18
+ buildEnd(err) {
19
+ if (err) {
20
+ return;
21
+ }
22
+ const { diagnostics, formatDiagnosticsWithColorAndContext } = typecheckProject({
23
+ tsconfigPath,
24
+ overriddenFiles: specFileSources,
25
+ });
26
+ const formattedDiagnostics = diagnostics.length > 0
27
+ ? formatDiagnosticsWithColorAndContext(diagnostics).trimEnd()
28
+ : undefined;
29
+ const hasErrorDiagnostic = diagnostics.some((d) => d.category === ts.DiagnosticCategory.Error);
30
+ if (hasErrorDiagnostic) {
31
+ throw new SpecUserError(formattedDiagnostics);
32
+ }
33
+ else if (formattedDiagnostics) {
34
+ console.warn(formattedDiagnostics);
35
+ }
36
+ },
37
+ };
38
+ }
@@ -0,0 +1,9 @@
1
+ import ts from "typescript";
2
+ export declare function typecheckProject({ tsconfigPath, overriddenFiles, }: {
3
+ tsconfigPath: string;
4
+ overriddenFiles: ReadonlyMap<string, string>;
5
+ }): {
6
+ diagnostics: readonly ts.Diagnostic[];
7
+ formatDiagnosticsWithColorAndContext: (diagnostics: readonly ts.Diagnostic[]) => string;
8
+ };
9
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/spec-pipeline/typecheckPlugin/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;;wDAkBgB,SAAS,EAAE,CAAC,UAAU,EAAE;EAIxC"}
@@ -0,0 +1,66 @@
1
+ import * as path from "node:path";
2
+ import ts from "typescript";
3
+ export function typecheckProject({ tsconfigPath, overriddenFiles, }) {
4
+ const { options: compilerOptions, tsconfigDir } = parseTsConfig(tsconfigPath);
5
+ const host = createCompilerHostWithOverriddenFiles({
6
+ compilerOptions,
7
+ tsconfigDir,
8
+ overriddenFiles,
9
+ });
10
+ const program = ts.createProgram({
11
+ rootNames: [...overriddenFiles.keys()],
12
+ options: compilerOptions,
13
+ host,
14
+ });
15
+ const diagnostics = ts.getPreEmitDiagnostics(program);
16
+ const formatDiagnosticsWithColorAndContext = (diagnostics) => ts.formatDiagnosticsWithColorAndContext(diagnostics, host);
17
+ return { diagnostics, formatDiagnosticsWithColorAndContext };
18
+ }
19
+ function parseTsConfig(tsconfigPath) {
20
+ const tsconfigDir = path.dirname(tsconfigPath);
21
+ const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
22
+ if (configFile.error) {
23
+ throw new Error(`Error when reading ${tsconfigPath}:\n${formatConfigError(configFile.error, tsconfigDir)}`);
24
+ }
25
+ // Converts the raw JSON (e.g. `"target": "ES2022"`) into the typed compiler
26
+ // options the compiler API expects (e.g. `target: ts.ScriptTarget.ES2022`).
27
+ const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, tsconfigDir, undefined, tsconfigPath);
28
+ if (parsed.errors.length > 0) {
29
+ const formattedErrors = parsed.errors
30
+ .map((error) => formatConfigError(error, tsconfigDir))
31
+ .join("\n");
32
+ throw new Error(`Error when parsing ${tsconfigPath}:\n${formattedErrors}`);
33
+ }
34
+ return { options: parsed.options, tsconfigDir };
35
+ }
36
+ function createCompilerHostWithOverriddenFiles({ compilerOptions, tsconfigDir, overriddenFiles, }) {
37
+ const host = ts.createCompilerHost(compilerOptions, true);
38
+ // Resolve everything relative to the project root (where `node_modules` and
39
+ // its `@types/*` packages live) so type acquisition works regardless of the
40
+ // process' working directory.
41
+ host.getCurrentDirectory = () => tsconfigDir;
42
+ overlayOverriddenFilesOnHost_mutate(host, overriddenFiles);
43
+ return host;
44
+ }
45
+ // We want to read the specific overridden files from memory instead of disk.
46
+ // For other files, we delegate to the normal FS implementation.
47
+ function overlayOverriddenFilesOnHost_mutate(host, overriddenFiles) {
48
+ const fsGetSourceFile = host.getSourceFile.bind(host);
49
+ host.getSourceFile = (fileName, languageVersionOrOptions, ...rest) => {
50
+ const source = overriddenFiles.get(fileName);
51
+ return source !== undefined
52
+ ? ts.createSourceFile(fileName, source, languageVersionOrOptions, true)
53
+ : fsGetSourceFile(fileName, languageVersionOrOptions, ...rest);
54
+ };
55
+ const fsFileExists = host.fileExists.bind(host);
56
+ host.fileExists = (fileName) => overriddenFiles.has(fileName) || fsFileExists(fileName);
57
+ const fsReadFile = host.readFile.bind(host);
58
+ host.readFile = (fileName) => overriddenFiles.get(fileName) ?? fsReadFile(fileName);
59
+ }
60
+ function formatConfigError(diagnostic, cwd) {
61
+ return ts.formatDiagnostic(diagnostic, {
62
+ getCurrentDirectory: () => cwd,
63
+ getCanonicalFileName: (fileName) => fileName,
64
+ getNewLine: () => ts.sys.newLine,
65
+ });
66
+ }
@@ -0,0 +1,3 @@
1
+ export type AnyFunction = (...args: never[]) => unknown;
2
+ export type AnyObject = Record<PropertyKey, unknown>;
3
+ //# sourceMappingURL=typeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../src/typeUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};