@wasp.sh/wasp-cli-darwin-arm64-unknown 0.24.0 → 0.25.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 (189) hide show
  1. package/data/Cli/starters/basic/main.wasp.ts +1 -1
  2. package/data/Cli/starters/basic/package.json +5 -5
  3. package/data/Cli/starters/basic/src/App.css +12 -11
  4. package/data/Cli/starters/basic/src/assets/wasp-logo-rounded.svg +1 -0
  5. package/data/Cli/starters/basic/src/shared/components/Header.tsx +3 -3
  6. package/data/Cli/starters/minimal/main.wasp.ts +1 -1
  7. package/data/Cli/starters/minimal/package.json +4 -4
  8. package/data/Cli/starters/minimal/src/Main.css +5 -5
  9. package/data/Cli/starters/minimal/src/MainPage.tsx +2 -2
  10. package/data/Cli/starters/minimal/src/assets/wasp-logo-rounded.svg +1 -0
  11. package/data/Cli/starters/skeleton/public/favicon.ico +0 -0
  12. package/data/Cli/starters/skeleton/tsconfig.src.json +2 -1
  13. package/data/Cli/starters/skeleton/tsconfig.wasp.json +3 -2
  14. package/data/Generator/libs/auth/wasp.sh-lib-auth-0.25.0.tgz +0 -0
  15. package/data/Generator/libs/vite-ssr/wasp.sh-lib-vite-ssr-0.25.0.tgz +0 -0
  16. package/data/Generator/templates/sdk/wasp/api/index.ts +2 -2
  17. package/data/Generator/templates/sdk/wasp/auth/email/actions/login.ts +1 -1
  18. package/data/Generator/templates/sdk/wasp/auth/email/actions/passwordReset.ts +1 -1
  19. package/data/Generator/templates/sdk/wasp/auth/email/actions/signup.ts +1 -1
  20. package/data/Generator/templates/sdk/wasp/auth/email/actions/verifyEmail.ts +1 -1
  21. package/data/Generator/templates/sdk/wasp/auth/forms/internal/auth-styles.css +2 -2
  22. package/data/Generator/templates/sdk/wasp/auth/forms/internal/common/LoginSignupForm.tsx +1 -1
  23. package/data/Generator/templates/sdk/wasp/auth/helpers/_Provider.tsx +1 -1
  24. package/data/Generator/templates/sdk/wasp/auth/helpers/user.ts +1 -1
  25. package/data/Generator/templates/sdk/wasp/auth/jwt.ts +1 -1
  26. package/data/Generator/templates/sdk/wasp/auth/logout.ts +1 -1
  27. package/data/Generator/templates/sdk/wasp/auth/lucia.ts +2 -2
  28. package/data/Generator/templates/sdk/wasp/auth/providers/types.ts +1 -1
  29. package/data/Generator/templates/sdk/wasp/auth/session.ts +1 -1
  30. package/data/Generator/templates/sdk/wasp/auth/types.ts +1 -1
  31. package/data/Generator/templates/sdk/wasp/auth/useAuth.ts +5 -5
  32. package/data/Generator/templates/sdk/wasp/auth/username/actions/login.ts +1 -1
  33. package/data/Generator/templates/sdk/wasp/auth/username/actions/signup.ts +1 -1
  34. package/data/Generator/templates/sdk/wasp/auth/utils.ts +3 -3
  35. package/data/Generator/templates/sdk/wasp/auth/validation.ts +1 -1
  36. package/data/Generator/templates/sdk/wasp/client/app/layout.tsx +55 -46
  37. package/data/Generator/templates/sdk/wasp/client/app/router.tsx +2 -5
  38. package/data/Generator/templates/sdk/wasp/client/crud/_crud.ts +2 -2
  39. package/data/Generator/templates/sdk/wasp/client/operations/actions/core.ts +1 -1
  40. package/data/Generator/templates/sdk/wasp/client/operations/index.ts +5 -0
  41. package/data/Generator/templates/sdk/wasp/client/operations/internal/index.ts +3 -3
  42. package/data/Generator/templates/sdk/wasp/client/operations/internal/resources.js +4 -2
  43. package/data/Generator/templates/sdk/wasp/client/operations/queries/core.ts +2 -2
  44. package/data/Generator/templates/sdk/wasp/client/operations/rpc.ts +2 -2
  45. package/data/Generator/templates/sdk/wasp/client/test/vitest/helpers.tsx +3 -4
  46. package/data/Generator/templates/sdk/wasp/client/vite/plugins/validateEnv.ts +14 -8
  47. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/client-entry.tsx +31 -11
  48. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/routes.tsx +26 -20
  49. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/ssr-entry.tsx +29 -24
  50. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/resolver.ts +12 -5
  51. package/data/Generator/templates/sdk/wasp/client/webSocket/WebSocketProvider.tsx +4 -4
  52. package/data/Generator/templates/sdk/wasp/client/webSocket/index.ts +1 -1
  53. package/data/Generator/templates/sdk/wasp/core/auth.ts +3 -3
  54. package/data/Generator/templates/sdk/wasp/env/validation.ts +1 -1
  55. package/data/Generator/templates/sdk/wasp/package.json +2 -42
  56. package/data/Generator/templates/sdk/wasp/serialization/index.ts +11 -0
  57. package/data/Generator/templates/sdk/wasp/server/_types/index.ts +6 -6
  58. package/data/Generator/templates/sdk/wasp/server/_types/taggedEntities.ts +1 -1
  59. package/data/Generator/templates/sdk/wasp/server/auth/email/utils.ts +6 -6
  60. package/data/Generator/templates/sdk/wasp/server/crud/_operationTypes.ts +2 -2
  61. package/data/Generator/templates/sdk/wasp/server/email/core/index.ts +4 -0
  62. package/data/Generator/templates/sdk/wasp/server/email/core/providers/dummy.ts +1 -1
  63. package/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts +31 -0
  64. package/data/Generator/templates/sdk/wasp/server/email/core/types.ts +7 -1
  65. package/data/Generator/templates/sdk/wasp/server/email/index.ts +6 -0
  66. package/data/Generator/templates/sdk/wasp/server/env.ts +5 -0
  67. package/data/Generator/templates/sdk/wasp/server/jobs/_job.ts +2 -2
  68. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBossJob.ts +3 -3
  69. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/types.ts +2 -2
  70. package/data/Generator/templates/sdk/wasp/server/operations/actions/index.ts +1 -1
  71. package/data/Generator/templates/sdk/wasp/server/operations/actions/types.ts +2 -2
  72. package/data/Generator/templates/sdk/wasp/server/operations/queries/index.ts +1 -1
  73. package/data/Generator/templates/sdk/wasp/server/operations/queries/types.ts +2 -2
  74. package/data/Generator/templates/sdk/wasp/server/operations/wrappers.ts +1 -1
  75. package/data/Generator/templates/sdk/wasp/server/webSocket/index.ts +2 -3
  76. package/data/Generator/templates/sdk/wasp/tsconfig.json +1 -0
  77. package/data/Generator/templates/server/tsconfig.json +2 -1
  78. package/data/packages/deploy/package-lock.json +2015 -2285
  79. package/data/packages/deploy/package.json +7 -6
  80. package/data/packages/prisma/package-lock.json +1730 -2131
  81. package/data/packages/prisma/package.json +6 -6
  82. package/data/packages/spec/dist/__tests__/spec/appAnalyzer.unit.test.js +4 -4
  83. package/data/packages/spec/dist/__tests__/spec/mapApp.unit.test.js +161 -129
  84. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.d.ts +2 -0
  85. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.d.ts.map +1 -0
  86. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.js +15 -0
  87. package/data/packages/spec/dist/__tests__/spec/refObject.unit.test.js +2 -2
  88. package/data/packages/spec/dist/__tests__/spec/refObjectPath.unit.test.js +3 -3
  89. package/data/packages/spec/dist/__tests__/spec-pipeline/pipeline.integration.test.js +38 -7
  90. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/imports.unit.test.js +5 -5
  91. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/refHelper.unit.test.js +2 -2
  92. package/data/packages/spec/dist/src/appSpec.d.ts +2 -2
  93. package/data/packages/spec/dist/src/appSpec.d.ts.map +1 -1
  94. package/data/packages/spec/dist/src/normalizePrerender.d.ts +11 -0
  95. package/data/packages/spec/dist/src/normalizePrerender.d.ts.map +1 -0
  96. package/data/packages/spec/dist/src/normalizePrerender.js +18 -0
  97. package/data/packages/spec/dist/src/run.js +2 -2
  98. package/data/packages/spec/dist/src/spec/appAnalyzer.js +5 -5
  99. package/data/packages/spec/dist/src/spec/mapper/app.d.ts +17 -0
  100. package/data/packages/spec/dist/src/spec/mapper/app.d.ts.map +1 -0
  101. package/data/packages/spec/dist/src/spec/mapper/app.js +119 -0
  102. package/data/packages/spec/dist/src/spec/mapper/context.d.ts +19 -0
  103. package/data/packages/spec/dist/src/spec/mapper/context.d.ts.map +1 -0
  104. package/data/packages/spec/dist/src/spec/mapper/context.js +65 -0
  105. package/data/packages/spec/dist/src/spec/mapper/index.d.ts +7 -0
  106. package/data/packages/spec/dist/src/spec/mapper/index.d.ts.map +1 -0
  107. package/data/packages/spec/dist/src/spec/mapper/index.js +20 -0
  108. package/data/packages/spec/dist/src/spec/mapper/specElements.d.ts +28 -0
  109. package/data/packages/spec/dist/src/spec/mapper/specElements.d.ts.map +1 -0
  110. package/data/packages/spec/dist/src/spec/mapper/specElements.js +162 -0
  111. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts +54 -13
  112. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts.map +1 -1
  113. package/data/packages/spec/dist/src/spec/publicApi/constructors.js +10 -7
  114. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts +2 -0
  115. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts.map +1 -1
  116. package/data/packages/spec/dist/src/spec/publicApi/index.js +1 -0
  117. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts +23 -10
  118. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts.map +1 -1
  119. package/data/packages/spec/dist/src/spec/refObject.js +4 -4
  120. package/data/packages/spec/dist/src/spec/refObjectPath.js +2 -2
  121. package/data/packages/spec/dist/src/spec/waspSpecUserError.d.ts +31 -0
  122. package/data/packages/spec/dist/src/spec/waspSpecUserError.d.ts.map +1 -0
  123. package/data/packages/spec/dist/src/spec/waspSpecUserError.js +30 -0
  124. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.d.ts.map +1 -1
  125. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.js +18 -15
  126. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/apply.js +2 -2
  127. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/check.js +2 -2
  128. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/plan.js +2 -2
  129. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.js +2 -2
  130. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/index.js +2 -2
  131. package/data/packages/spec/package-lock.json +189 -169
  132. package/data/packages/spec/package.json +30 -7
  133. package/data/packages/studio/dist/public/assets/Flow-CyIU6UP_.js +26 -0
  134. package/data/packages/studio/dist/public/assets/dist-CttM53IC.js +1 -0
  135. package/data/packages/studio/dist/public/assets/index-Cb2AqsRv.js +20 -0
  136. package/data/packages/studio/dist/public/assets/index-Cq-JJ-zI.css +1 -0
  137. package/data/packages/studio/dist/public/index.html +2 -2
  138. package/data/packages/studio/package-lock.json +6 -6
  139. package/data/packages/studio/package.json +2 -2
  140. package/data/packages/ts-inspect/package-lock.json +1918 -2142
  141. package/data/packages/ts-inspect/package.json +6 -6
  142. package/package.json +1 -1
  143. package/wasp-bin +0 -0
  144. package/data/Cli/starters/basic/src/assets/logo.svg +0 -1
  145. package/data/Cli/starters/minimal/src/assets/logo.svg +0 -1
  146. package/data/Cli/starters/skeleton/public/.gitkeep +0 -0
  147. package/data/Generator/libs/auth/wasp.sh-lib-auth-0.24.0.tgz +0 -0
  148. package/data/Generator/libs/vite-ssr/wasp.sh-lib-vite-ssr-0.24.0.tgz +0 -0
  149. package/data/Generator/templates/sdk/wasp/client/app/hooks/useIsClient.ts +0 -16
  150. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.d.ts +0 -2
  151. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.d.ts.map +0 -1
  152. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.js +0 -72
  153. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.d.ts +0 -2
  154. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.d.ts.map +0 -1
  155. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.js +0 -126
  156. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.d.ts +0 -2
  157. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.d.ts.map +0 -1
  158. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.js +0 -732
  159. package/data/packages/spec/dist/__tests__/legacy/testFixtures.d.ts +0 -224
  160. package/data/packages/spec/dist/__tests__/legacy/testFixtures.d.ts.map +0 -1
  161. package/data/packages/spec/dist/__tests__/legacy/testFixtures.js +0 -659
  162. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.d.ts +0 -2
  163. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.d.ts.map +0 -1
  164. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.js +0 -57
  165. package/data/packages/spec/dist/src/legacy/_private.d.ts +0 -2
  166. package/data/packages/spec/dist/src/legacy/_private.d.ts.map +0 -1
  167. package/data/packages/spec/dist/src/legacy/_private.js +0 -1
  168. package/data/packages/spec/dist/src/legacy/appAnalyzer.d.ts +0 -16
  169. package/data/packages/spec/dist/src/legacy/appAnalyzer.d.ts.map +0 -1
  170. package/data/packages/spec/dist/src/legacy/appAnalyzer.js +0 -34
  171. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.d.ts +0 -38
  172. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.d.ts.map +0 -1
  173. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.js +0 -294
  174. package/data/packages/spec/dist/src/legacy/publicApi/App.d.ts +0 -24
  175. package/data/packages/spec/dist/src/legacy/publicApi/App.d.ts.map +0 -1
  176. package/data/packages/spec/dist/src/legacy/publicApi/App.js +0 -75
  177. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.d.ts +0 -174
  178. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.d.ts.map +0 -1
  179. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.js +0 -1
  180. package/data/packages/spec/dist/src/spec/mapApp.d.ts +0 -54
  181. package/data/packages/spec/dist/src/spec/mapApp.d.ts.map +0 -1
  182. package/data/packages/spec/dist/src/spec/mapApp.js +0 -336
  183. package/data/packages/spec/dist/src/spec/specUserError.d.ts +0 -9
  184. package/data/packages/spec/dist/src/spec/specUserError.d.ts.map +0 -1
  185. package/data/packages/spec/dist/src/spec/specUserError.js +0 -8
  186. package/data/packages/studio/dist/public/assets/Flow-_d98T2dd.js +0 -26
  187. package/data/packages/studio/dist/public/assets/index-B6X8EdJH.js +0 -21
  188. package/data/packages/studio/dist/public/assets/index-CXlD_bzV.js +0 -1
  189. package/data/packages/studio/dist/public/assets/index-IWX3d-Jz.css +0 -1
@@ -11,8 +11,8 @@ import { tasksSpec } from "./src/tasks/task.wasp";
11
11
 
12
12
  export default app({
13
13
  name: "__waspAppName__",
14
- title: "__waspProjectName__",
15
14
  wasp: { version: "__waspVersion__" },
15
+ title: "__waspProjectName__",
16
16
  head: ["<link rel='icon' href='/favicon.ico' />"],
17
17
  auth: {
18
18
  userEntity: "User",
@@ -9,7 +9,7 @@
9
9
  "react": "^19.2.1",
10
10
  "react-dom": "^19.2.1",
11
11
  "react-hook-form": "^7.69.0",
12
- "react-router": "^7.12.0",
12
+ "react-router": "^8.0.1",
13
13
  "tailwind-merge": "~3.4.0",
14
14
  "tailwindcss": "^4.1.18"
15
15
  },
@@ -18,7 +18,7 @@
18
18
  "@types/node": "^24.0.0",
19
19
  "@types/react": "^19.2.7",
20
20
  "@types/react-dom": "^19.2.3",
21
- "@tailwindcss/vite": "^4.1.18",
21
+ "@tailwindcss/vite": "^4.3.1",
22
22
  "eslint": "^9.27.0",
23
23
  "eslint-config-prettier": "^10.1.5",
24
24
  "eslint-plugin-react": "^7.37.5",
@@ -26,10 +26,10 @@
26
26
  "prettier": "^3.5.3",
27
27
  "prettier-plugin-tailwindcss": "^0.7.2",
28
28
  "prisma": "5.19.1",
29
- "typescript": "5.9.3",
29
+ "typescript": "6.0.3",
30
30
  "typescript-eslint": "^8.32.1",
31
- "vite": "^7.0.6",
32
- "vitest": "^4.0.16",
31
+ "vite": "^8.1.0",
32
+ "vitest": "^4.1.9",
33
33
  "@wasp.sh/spec": "__waspSpecPackageSpecifier__"
34
34
  }
35
35
  }
@@ -5,17 +5,18 @@
5
5
  --text-tiny--line-height: 1rem;
6
6
 
7
7
  /* Created using https://www.tints.dev */
8
- --color-primary-50: #fffbeb;
9
- --color-primary-100: #fff7d6;
10
- --color-primary-200: #ffefad;
11
- --color-primary-300: #ffe680;
12
- --color-primary-400: #ffda47;
13
- --color-primary-500: #ffcc00;
14
- --color-primary-600: #e6b800;
15
- --color-primary-700: #cca300;
16
- --color-primary-800: #a88700;
17
- --color-primary-900: #7a6200;
18
- --color-primary-950: #574500;
8
+ /* Defaults settings, #f5c842 locked at 500 */
9
+ --color-primary-50: #fef9ef;
10
+ --color-primary-100: #fef2df;
11
+ --color-primary-200: #fde9c3;
12
+ --color-primary-300: #fcdc97;
13
+ --color-primary-400: #fcd26a;
14
+ --color-primary-500: #f5c842;
15
+ --color-primary-600: #c09c32;
16
+ --color-primary-700: #8c7122;
17
+ --color-primary-800: #5e4b13;
18
+ --color-primary-900: #322706;
19
+ --color-primary-950: #1e1703;
19
20
  }
20
21
 
21
22
  body {
@@ -0,0 +1 @@
1
+ <svg width="1520" height="1520" version="1.1" viewBox="0 0 1520 1520" xmlns="http://www.w3.org/2000/svg"><g><rect width="1520" height="1520" rx="300" fill="#f5c842"/><g fill="#111"><path d="m1007 300-156.98 2e-3 0.499 142.51h85.857c0.0239 2e-3 18.763 1.566 30.461 7.9108 13.537 7.3425 14.626 10.763 21.704 20.417 3.0674 4.1835 4.9651 10.687 6.0494 16.123 1.0827 5.4284 1.3754 9.7642 1.3762 9.7762v144.33l2e-3 0.0252s0.583 7.1093 1.796 15.918c1.213 8.809 3.0448 19.305 5.6079 26.205 4.3676 11.759 13.62 26.659 21.633 36.363 9.3866 11.367 22.228 20.124 34.969 27.568 11.294 6.5984 32.628 11.542 33.548 11.754v2.1847c-0.9202 0.21233-22.254 5.1555-33.548 11.754-12.741 7.4439-25.583 16.201-34.97 27.568-8.0134 9.7041-17.266 24.604-21.633 36.363-2.5631 6.9007-4.3948 17.396-5.6078 26.205-1.213 8.809-1.796 15.918-1.796 15.918l-2e-3 0.0271v144.33c-8.2e-4 0.012-0.29348 4.3478-1.3762 9.7762-1.0842 5.4359-2.982 11.94-6.0494 16.123-7.0789 9.6547-8.1671 13.075-21.704 20.418-11.698 6.3448-30.437 7.9107-30.461 7.9107h-85.857l-0.499 142.51h156.99s7.5461-0.1872 16.483-0.629c8.9371-0.4418 19.238-1.1296 24.889-2.1653 7.1809-1.3165 20.102-3.1616 33.53-9.0719 13.329-5.8668 16.299-7.3647 22.443-10.939 11.758-6.8408 24.169-19.146 34.441-32.311s18.389-27.167 21.463-37.524c6.1235-20.632 6.382-47.126 6.382-47.126v-195.36c0-0.0207 0.145-2.5801 0.505-5.7396 0.3614-3.1722 0.956-6.9416 1.7742-9.1512 0.9504-2.5664 2.8911-7.2999 5.3504-11.905 2.4592-4.6049 5.481-9.0841 8.3701-11.115 5.643-3.9674 12.809-9.5822 20.29-10.61 5.9133-0.81252 13.182-1.4397 13.202-1.4417h53.892v-149.83h-53.892c-0.019-2e-3 -7.2884-0.62915-13.202-1.4417-7.4814-1.028-14.648-6.6429-20.29-10.61-2.8891-2.0312-5.9109-6.5104-8.3701-11.115-2.4593-4.6049-4.4-9.3384-5.3504-11.905-0.8182-2.2095-1.4128-5.9789-1.7742-9.1512-0.36-3.1595-0.5038-5.7188-0.505-5.7396v-195.36s-0.2585-26.494-6.382-47.126c-3.0739-10.357-11.191-24.359-21.463-37.524s-22.683-25.47-34.441-32.311c-6.1438-3.5745-9.1141-5.0723-22.443-10.939-13.427-5.9102-26.349-7.7554-33.53-9.0718-5.6503-1.0358-15.952-1.7236-24.889-2.1654-8.9366-0.4418-16.483-0.62892-16.483-0.62892z" stop-color="#000000"/><rect x="250" y="830" width="500" height="160" stroke-width="1.3472"/><rect x="250" y="530" width="500" height="160" stroke-width="1.3472"/></g></g></svg>
@@ -1,6 +1,6 @@
1
1
  import { logout, useAuth } from "wasp/client/auth";
2
2
  import { Link } from "wasp/client/router";
3
- import Logo from "../../assets/logo.svg";
3
+ import Logo from "../../assets/wasp-logo-rounded.svg";
4
4
  import { Button, ButtonLink } from "./Button";
5
5
 
6
6
  export function Header() {
@@ -10,8 +10,8 @@ export function Header() {
10
10
  <header className="sticky top-0 z-10 flex justify-center border-b border-neutral-200 bg-white shadow-sm">
11
11
  <div className="flex w-full max-w-(--breakpoint-lg) items-center justify-between p-4 px-12">
12
12
  <Link to="/" className="flex items-center gap-2">
13
- <img src={Logo} alt="Todo App Logo" className="h-10 w-10" />
14
- <h1 className="text-2xl font-semibold">Todo App</h1>
13
+ <img src={Logo} alt="Wasp logo" className="h-10 w-10" />
14
+ <h1 className="text-2xl font-semibold">ToDo App</h1>
15
15
  </Link>
16
16
  <nav>
17
17
  <ul className="flex gap-4 font-semibold">
@@ -3,8 +3,8 @@ import { MainPage } from "./src/MainPage" with { type: "ref" };
3
3
 
4
4
  export default app({
5
5
  name: "__waspAppName__",
6
- title: "__waspProjectName__",
7
6
  wasp: { version: "__waspVersion__" },
7
+ title: "__waspProjectName__",
8
8
  head: ["<link rel='icon' href='/favicon.ico' />"],
9
9
  spec: [
10
10
  route("RootRoute", "/", page(MainPage)),
@@ -5,16 +5,16 @@
5
5
  "dependencies": {
6
6
  "react": "^19.2.1",
7
7
  "react-dom": "^19.2.1",
8
- "react-router": "^7.12.0"
8
+ "react-router": "^8.0.1"
9
9
  },
10
10
  "devDependencies": {
11
11
  "@types/node": "^24.0.0",
12
12
  "@types/react": "^19.2.7",
13
13
  "@types/react-dom": "^19.2.3",
14
14
  "prisma": "5.19.1",
15
- "typescript": "5.9.3",
16
- "vite": "^7.0.6",
17
- "vitest": "^4.0.16",
15
+ "typescript": "6.0.3",
16
+ "vite": "^8.1.0",
17
+ "vitest": "^4.1.9",
18
18
  "@wasp.sh/spec": "__waspSpecPackageSpecifier__"
19
19
  }
20
20
  }
@@ -64,8 +64,8 @@ body {
64
64
 
65
65
  .button-filled {
66
66
  color: black;
67
- background-color: #ffcc00;
68
- border: 2px solid #ffcc00;
67
+ background-color: #f5c842;
68
+ border: 2px solid #f5c842;
69
69
 
70
70
  transition: all 0.2s ease-in-out;
71
71
  }
@@ -77,7 +77,7 @@ body {
77
77
  .button-outlined {
78
78
  color: black;
79
79
  background-color: transparent;
80
- border: 2px solid #ffcc00;
80
+ border: 2px solid #f5c842;
81
81
 
82
82
  transition: all 0.2s ease-in-out;
83
83
  }
@@ -88,9 +88,9 @@ body {
88
88
 
89
89
  code {
90
90
  border-radius: 5px;
91
- border: 1px solid #ffcc00;
91
+ border: 1px solid #f5c842;
92
92
  padding: 0.2rem;
93
- background: #ffcc0044;
93
+ background: #f5c84244;
94
94
  font-family:
95
95
  Menlo,
96
96
  Monaco,
@@ -1,10 +1,10 @@
1
- import Logo from "./assets/logo.svg";
1
+ import Logo from "./assets/wasp-logo-rounded.svg";
2
2
  import "./Main.css";
3
3
 
4
4
  export function MainPage() {
5
5
  return (
6
6
  <main className="container">
7
- <img className="logo" src={Logo} alt="wasp" />
7
+ <img className="logo" src={Logo} alt="Wasp logo" />
8
8
 
9
9
  <h2 className="title">Welcome to Wasp!</h2>
10
10
 
@@ -0,0 +1 @@
1
+ <svg width="1520" height="1520" version="1.1" viewBox="0 0 1520 1520" xmlns="http://www.w3.org/2000/svg"><g><rect width="1520" height="1520" rx="300" fill="#f5c842"/><g fill="#111"><path d="m1007 300-156.98 2e-3 0.499 142.51h85.857c0.0239 2e-3 18.763 1.566 30.461 7.9108 13.537 7.3425 14.626 10.763 21.704 20.417 3.0674 4.1835 4.9651 10.687 6.0494 16.123 1.0827 5.4284 1.3754 9.7642 1.3762 9.7762v144.33l2e-3 0.0252s0.583 7.1093 1.796 15.918c1.213 8.809 3.0448 19.305 5.6079 26.205 4.3676 11.759 13.62 26.659 21.633 36.363 9.3866 11.367 22.228 20.124 34.969 27.568 11.294 6.5984 32.628 11.542 33.548 11.754v2.1847c-0.9202 0.21233-22.254 5.1555-33.548 11.754-12.741 7.4439-25.583 16.201-34.97 27.568-8.0134 9.7041-17.266 24.604-21.633 36.363-2.5631 6.9007-4.3948 17.396-5.6078 26.205-1.213 8.809-1.796 15.918-1.796 15.918l-2e-3 0.0271v144.33c-8.2e-4 0.012-0.29348 4.3478-1.3762 9.7762-1.0842 5.4359-2.982 11.94-6.0494 16.123-7.0789 9.6547-8.1671 13.075-21.704 20.418-11.698 6.3448-30.437 7.9107-30.461 7.9107h-85.857l-0.499 142.51h156.99s7.5461-0.1872 16.483-0.629c8.9371-0.4418 19.238-1.1296 24.889-2.1653 7.1809-1.3165 20.102-3.1616 33.53-9.0719 13.329-5.8668 16.299-7.3647 22.443-10.939 11.758-6.8408 24.169-19.146 34.441-32.311s18.389-27.167 21.463-37.524c6.1235-20.632 6.382-47.126 6.382-47.126v-195.36c0-0.0207 0.145-2.5801 0.505-5.7396 0.3614-3.1722 0.956-6.9416 1.7742-9.1512 0.9504-2.5664 2.8911-7.2999 5.3504-11.905 2.4592-4.6049 5.481-9.0841 8.3701-11.115 5.643-3.9674 12.809-9.5822 20.29-10.61 5.9133-0.81252 13.182-1.4397 13.202-1.4417h53.892v-149.83h-53.892c-0.019-2e-3 -7.2884-0.62915-13.202-1.4417-7.4814-1.028-14.648-6.6429-20.29-10.61-2.8891-2.0312-5.9109-6.5104-8.3701-11.115-2.4593-4.6049-4.4-9.3384-5.3504-11.905-0.8182-2.2095-1.4128-5.9789-1.7742-9.1512-0.36-3.1595-0.5038-5.7188-0.505-5.7396v-195.36s-0.2585-26.494-6.382-47.126c-3.0739-10.357-11.191-24.359-21.463-37.524s-22.683-25.47-34.441-32.311c-6.1438-3.5745-9.1141-5.0723-22.443-10.939-13.427-5.9102-26.349-7.7554-33.53-9.0718-5.6503-1.0358-15.952-1.7236-24.889-2.1654-8.9366-0.4418-16.483-0.62892-16.483-0.62892z" stop-color="#000000"/><rect x="250" y="830" width="500" height="160" stroke-width="1.3472"/><rect x="250" y="530" width="500" height="160" stroke-width="1.3472"/></g></g></svg>
@@ -22,7 +22,8 @@
22
22
  "lib": ["dom", "dom.iterable", "esnext"],
23
23
  "skipLibCheck": true,
24
24
  "allowJs": true,
25
- "outDir": ".wasp/out/user"
25
+ "outDir": ".wasp/out/user",
26
+ "types": ["react", "node"]
26
27
  },
27
28
  "include": ["src"],
28
29
  "exclude": ["**/*.wasp.ts"]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "skipLibCheck": true,
4
- "target": "ES2022",
4
+ "target": "ES2025",
5
5
  "isolatedModules": true,
6
6
  "moduleDetection": "force",
7
7
  "strict": true,
@@ -12,7 +12,8 @@
12
12
  "jsx": "preserve",
13
13
  "allowJs": true,
14
14
  "noEmit": true,
15
- "lib": ["ES2023"]
15
+ "lib": ["ES2025"],
16
+ "types": ["node"]
16
17
  },
17
18
  "include": ["**/*.wasp.ts", ".wasp/out/types/spec"]
18
19
  }
@@ -1,6 +1,6 @@
1
1
  import ky, { isHTTPError } from 'ky'
2
- import { config } from 'wasp/client'
3
- import { storage } from 'wasp/core/storage'
2
+ import { config } from '../client/index.js'
3
+ import { storage } from '../core/storage.js'
4
4
  import { apiEventsEmitter } from './events.js'
5
5
 
6
6
  const WASP_APP_AUTH_SESSION_ID_NAME = 'sessionId'
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api';
2
+ import { api, handleApiError } from '../../../api/index.js';
3
3
  import { initSession } from '../../helpers/user';
4
4
  import { SessionResponseSchema } from '../../responseSchemas';
5
5
 
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api';
2
+ import { api, handleApiError } from '../../../api/index.js';
3
3
  import { SuccessResponseSchema } from '../../responseSchemas';
4
4
 
5
5
  // PUBLIC API
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api';
2
+ import { api, handleApiError } from '../../../api/index.js';
3
3
  import { SuccessResponseSchema } from '../../responseSchemas';
4
4
  {=# emailUserSignupFields.isDefined =}
5
5
  import { type UserEmailSignupFields } from '../../providers'
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api'
2
+ import { api, handleApiError } from '../../../api/index.js'
3
3
  import { SuccessResponseSchema } from '../../responseSchemas'
4
4
 
5
5
  // PUBLIC API
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  /* Colors */
9
- --color-waspYellow: #ffcc00;
9
+ --color-waspYellow: #f5c842;
10
10
  --color-gray700: #a1a5ab;
11
11
  --color-gray600: #d1d5db;
12
12
  --color-gray500: gainsboro;
@@ -17,7 +17,7 @@
17
17
 
18
18
  /* Semantic colors */
19
19
  --color-brand: var(--color-waspYellow);
20
- --color-brandAccent: #ffdb46;
20
+ --color-brandAccent: #fccf49;
21
21
  --color-errorBackground: var(--color-red);
22
22
  --color-errorText: #2D3748;
23
23
  --color-successBackground: var(--color-green);
@@ -2,7 +2,7 @@
2
2
  import { useForm, UseFormReturn } from 'react-hook-form'
3
3
  import styles from './LoginSignupForm.module.css'
4
4
  import '../auth-styles.css'
5
- import { config } from 'wasp/client'
5
+ import { config } from '../../../../client/index.js'
6
6
  import { clsx } from '../util'
7
7
 
8
8
  import { useAuthContext } from '@wasp.sh/lib-auth/browser'
@@ -1,6 +1,6 @@
1
1
  {{={= =}=}}
2
2
 
3
- import { config } from 'wasp/client'
3
+ import { config } from '../../client/index.js'
4
4
  import { SocialButton } from '../forms/internal/social/SocialButton'
5
5
  import * as SocialIcons from '../forms/internal/social/SocialIcons'
6
6
 
@@ -1,4 +1,4 @@
1
- import { setSessionId } from 'wasp/client/api'
1
+ import { setSessionId } from '../../api/index.js'
2
2
  import { invalidateAndRemoveQueries } from '../../client/operations/internal/resources.js'
3
3
 
4
4
  // PRIVATE API
@@ -1,6 +1,6 @@
1
1
  import { createJWTHelpers } from "@wasp.sh/lib-auth/node";
2
2
 
3
- import { config } from "wasp/server";
3
+ import { config } from "../server/index.js";
4
4
 
5
5
  const JWT_SECRET = new TextEncoder().encode(config.auth.jwtSecret);
6
6
  const JWT_ALGORITHM = "HS256";
@@ -1,4 +1,4 @@
1
- import { api, removeLocalUserData } from 'wasp/client/api'
1
+ import { api, removeLocalUserData } from '../api/index.js'
2
2
  import { invalidateAndRemoveQueries } from '../client/operations/internal/resources.js'
3
3
 
4
4
  // PUBLIC API
@@ -1,8 +1,8 @@
1
1
  {{={= =}=}}
2
2
  import { Lucia } from "lucia";
3
3
  import { PrismaAdapter } from "@lucia-auth/adapter-prisma";
4
- import { prisma } from 'wasp/server'
5
- import { type {= userEntityUpper =} } from "wasp/entities"
4
+ import { prisma } from '../server/index.js'
5
+ import { type {= userEntityUpper =} } from "../entities/index.js"
6
6
 
7
7
  const prismaAdapter = new PrismaAdapter(
8
8
  prisma.{= sessionEntityLower =},
@@ -1,7 +1,7 @@
1
1
  {{={= =}=}}
2
2
  import type { Router, Request } from 'express'
3
3
  import type { Prisma } from '@prisma/client'
4
- import type { Expand, Exact } from 'wasp/universal/types'
4
+ import type { Expand, Exact } from '../../universal/types.js'
5
5
  import type { ProviderName } from '../utils'
6
6
 
7
7
  // PUBLIC API
@@ -8,7 +8,7 @@ import { auth } from "./lucia.js";
8
8
  import type { Session } from "lucia";
9
9
  import { createInvalidCredentialsError } from "./utils.js";
10
10
 
11
- import { prisma } from 'wasp/server';
11
+ import { prisma } from '../server/index.js';
12
12
  import { createAuthUserData } from "../server/auth/user.js";
13
13
 
14
14
  // PRIVATE API
@@ -1,2 +1,2 @@
1
1
  // todo(filip): turn into a proper import/path
2
- export type { ProviderName } from 'wasp/server/_types'
2
+ export type { ProviderName } from './utils.js'
@@ -1,9 +1,9 @@
1
1
  {{={= =}=}}
2
- import { deserialize } from 'wasp/core/serialization'
3
- import { useQuery, buildAndRegisterQuery } from 'wasp/client/operations'
4
- import type { QueryFunction, Query } from 'wasp/client/operations/rpc'
5
- import { api, handleApiError } from 'wasp/client/api'
6
- import { HttpMethod } from 'wasp/client'
2
+ import { deserialize } from '../core/serialization/index.js'
3
+ import { useQuery, buildAndRegisterQuery } from '../client/operations/index.js'
4
+ import type { QueryFunction, Query } from '../client/operations/rpc.js'
5
+ import { api, handleApiError } from '../api/index.js'
6
+ import { HttpMethod } from '../client/index.js'
7
7
  import type { AuthUser, AuthUserData } from '../server/auth/user.js'
8
8
  import { makeAuthUserIfPossible } from '../auth/user.js'
9
9
  import { UseQueryResult } from '@tanstack/react-query'
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api'
2
+ import { api, handleApiError } from '../../../api/index.js'
3
3
  import { initSession } from '../../helpers/user'
4
4
  import { SessionResponseSchema } from '../../responseSchemas'
5
5
 
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import { api, handleApiError } from 'wasp/client/api'
2
+ import { api, handleApiError } from '../../../api/index.js'
3
3
  {=# usernameAndPasswordUserSignupFields.isDefined =}
4
4
  import { type UserUsernameAndPasswordSignupFields } from '../../providers'
5
5
  {=/ usernameAndPasswordUserSignupFields.isDefined =}
@@ -1,12 +1,12 @@
1
1
  {{={= =}=}}
2
2
  import { hashPassword } from './password.js'
3
- import { prisma, HttpError } from 'wasp/server'
4
- import { sleep } from 'wasp/server/utils'
3
+ import { prisma, HttpError } from '../server/index.js'
4
+ import { sleep } from '../server/utils.js'
5
5
  import {
6
6
  type {= userEntityUpper =},
7
7
  type {= authEntityUpper =},
8
8
  type {= authIdentityEntityUpper =},
9
- } from 'wasp/entities'
9
+ } from '../entities/index.js'
10
10
  import { Prisma } from '@prisma/client';
11
11
 
12
12
  import { throwValidationError } from './validation.js'
@@ -1,4 +1,4 @@
1
- import { HttpError } from 'wasp/server';
1
+ import { HttpError } from '../server/index.js';
2
2
 
3
3
  export const PASSWORD_FIELD = 'password';
4
4
  const USERNAME_FIELD = 'username';
@@ -1,6 +1,5 @@
1
1
  {{={= =}=}}
2
- import { StrictMode, type ReactNode } from "react";
3
- import { useIsClient } from "./hooks/useIsClient.js"
2
+ import { StrictMode, type ReactNode, useSyncExternalStore } from "react";
4
3
 
5
4
  export function Layout({
6
5
  children,
@@ -11,31 +10,7 @@ export function Layout({
11
10
  isFallbackPage?: boolean;
12
11
  clientEntrySrc?: string;
13
12
  }) {
14
- const isClient = useIsClient()
15
-
16
- /*
17
- From the Vite SSR plugin, we inherit the concept of a "prerendered page" vs.
18
- a "fallback page".
19
- - A prerendered page is a page that is rendered on the server, and then
20
- hydrated on the client.
21
- - A fallback page is a page which only prerenders the common HTML structure
22
- on the server, and then renders the actual page content on the client.
23
-
24
- To use an analogy, a fallback page is a pluripotent stem cell that can turn
25
- into any page in the client; while a prerendered page is already specialized
26
- and can only render its specific content.
27
-
28
- So, if we are prerendering a fallback page, we want to avoid rendering the
29
- actual page content, so that it can turn into anything. If we're
30
- prerendering a non-fallback page, we'll give it its content.
31
-
32
- But, if we're already in the client, we always want to render the page
33
- content. Whether prerendered as a fallback or not, now it's showtime, so we
34
- must show the user the content.
35
-
36
- Thus, we end up with the line below:
37
- */
38
- const shouldRenderChildren = isClient || !isFallbackPage
13
+ const shouldRenderAppContent = useShouldRenderAppContent(isFallbackPage);
39
14
 
40
15
  return (
41
16
  <StrictMode>
@@ -52,34 +27,68 @@ export function Layout({
52
27
  <title>{= title =}</title>
53
28
 
54
29
  {
55
- // We pass that argument in SSR builds and not in client builds.
56
- // This would usually cause a hydration mismatch, but React has an
57
- // exception for `<script>` tags, for this specific usecase, so it
58
- // will work fine.
30
+ /*
31
+ This script tag's job is to load the client entry so the browser
32
+ downloads and runs it, hydrating the prerendered HTML.
33
+
34
+ We only need it in SSR builds, as by the time the client is
35
+ running this code, it doesn't need to run itself again (and could
36
+ lead to duplication).
37
+
38
+ Rendering it only on the server and not on the client would
39
+ normally cause a hydration mismatch, but React skips erroring on
40
+ server-only nodes if they are **direct children** of `<head>` and
41
+ `<body>`, to support this kind of usecase. (See
42
+ https://react.dev/reference/react-dom/static/prerenderToNodeStream)
43
+
44
+ We'd usually inject this via React prerender's `bootstrapModules`
45
+ option, but that has two problems:
46
+ 1. React also emits a `<link rel="modulepreload"
47
+ href="@/wasp/client">` for the bootstrap scripts, but Vite
48
+ doesn't rewrite `link.href`s, so it would end up as a broken
49
+ link.
50
+ 2. It hardcodes `async` on the script, which in dev races the
51
+ `@vitejs/plugin-react` refresh preamble (see #4258).
52
+ */
59
53
  clientEntrySrc ? (
60
- // We'd usually use React prerender's `bootstrapModules` options for
61
- // injecting this script, but it would also add a `<link
62
- // rel="modulepreload">` tag that Vite doesn't handle correctly. So
63
- // we just add the script ourselves in the regular way.
64
- //
65
- // https://react.dev/reference/react-dom/static/prerenderToNodeStream
66
54
  <script type="module" src={clientEntrySrc} />
67
55
  ) : null
68
56
  }
69
57
  </head>
70
58
  <body>
71
59
  <noscript>You need to enable JavaScript to run this app.</noscript>
72
-
73
- {
74
- // We don't really need to wrap the app in a div nor name it "root",
75
- // but we keep it for backwards compatibility with older Wasp
76
- // versions.
77
- }
78
- <div id="root">
79
- {shouldRenderChildren ? children : null}
80
- </div>
60
+ {shouldRenderAppContent ? children : null}
81
61
  </body>
82
62
  </html>
83
63
  </StrictMode>
84
64
  );
85
65
  }
66
+
67
+ function useShouldRenderAppContent(isFallbackPage: boolean) {
68
+ // We always want to render the content on the client.
69
+ const getOnClient = () => true;
70
+
71
+ // On the server, we only want to render the content if it's not a fallback page.
72
+ const getOnServer = () => !isFallbackPage;
73
+
74
+ const shouldRenderAppContent =
75
+ // We use `useSyncExternalStore` because it allows us to have different
76
+ // values on the server and client without hydration errors. The semantics
77
+ // also match, as in this case the fallback status is the synchronous state
78
+ // we are reading from, it just never changes after being first initialized.
79
+ useSyncExternalStore(
80
+ emptySubscribe,
81
+ getOnClient,
82
+ getOnServer,
83
+ );
84
+
85
+ return shouldRenderAppContent;
86
+ }
87
+
88
+ // The subscribe function is expected to only change when the store changes.
89
+ // Because our "store" is static, we make our function never change by putting
90
+ // it on the top.
91
+ function emptySubscribe() {
92
+ const emptyUnsubscribe = () => {};
93
+ return emptyUnsubscribe;
94
+ }
@@ -1,5 +1,5 @@
1
1
  {{={= =}=}}
2
- import type { ReactNode, ComponentType } from 'react'
2
+ import type { ReactNode } from 'react'
3
3
  import type { RouteObject } from 'react-router'
4
4
 
5
5
  {=# isExternalAuthEnabled =}
@@ -10,10 +10,7 @@ import { DefaultRootErrorBoundary } from './components/DefaultRootErrorBoundary'
10
10
 
11
11
  import { routes } from '../router/index'
12
12
 
13
- type RouteMapping = Record<
14
- string,
15
- { Component: ComponentType }
16
- >;
13
+ type RouteMapping = Record<string, RouteObject>;
17
14
 
18
15
  export function getRouteObjects({
19
16
  routesMapping,
@@ -2,7 +2,7 @@
2
2
  import { createAction } from "../operations/actions/core.js";
3
3
  import { createQuery } from "../operations/queries/core.js";
4
4
  import { makeUseActionFor, makeUseQueryFor } from "./operationsHelpers.js";
5
- import {
5
+ import type {
6
6
  {=# operations.Get =}
7
7
  GetQueryResolved,
8
8
  {=/ operations.Get =}
@@ -18,7 +18,7 @@ import {
18
18
  {=# operations.Delete =}
19
19
  DeleteActionResolved,
20
20
  {=/ operations.Delete =}
21
- } from 'wasp/server/crud/{= name =}'
21
+ } from '../../server/crud/{= name =}.js'
22
22
 
23
23
  function createCrud() {
24
24
  {=# operations.Get =}
@@ -1,4 +1,4 @@
1
- import type { _Awaited, _ReturnType } from 'wasp/universal/types'
1
+ import type { _Awaited, _ReturnType } from '../../../universal/types.js'
2
2
  import type { OperationRpcFor, GenericBackendOperation } from '../rpc.js'
3
3
  import { callOperation, makeOperationRoute } from '../internal/index.js'
4
4
  import {
@@ -20,3 +20,8 @@ export {
20
20
  // PRIVATE API (framework code)
21
21
  queryClientInitialized
22
22
  } from './queryClient'
23
+
24
+ export {
25
+ // PUBLIC API
26
+ type QueryMetadata,
27
+ } from './rpc'
@@ -1,6 +1,6 @@
1
- import { api, handleApiError } from 'wasp/client/api'
2
- import { HttpMethod } from 'wasp/client'
3
- import { serialize, deserialize } from 'wasp/core/serialization'
1
+ import { api, handleApiError } from '../../../api/index.js'
2
+ import { HttpMethod } from '../../index.js'
3
+ import { serialize, deserialize } from '../../../core/serialization/index.js'
4
4
 
5
5
  // PRIVATE API
6
6
  export type OperationRoute = { method: HttpMethod.Post, path: string }