@kosmojs/dev 0.0.11 → 0.0.20

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 (195) hide show
  1. package/package.json +8 -41
  2. package/pkg/base-plugin/worker.js +252 -102
  3. package/pkg/base-plugin/worker.js.map +4 -4
  4. package/pkg/index.js +540 -206
  5. package/pkg/index.js.map +4 -4
  6. package/pkg/src/{base-plugin/ast.d.ts → ast.d.ts} +3 -3
  7. package/pkg/src/base-plugin/api-handler.d.ts +1 -1
  8. package/pkg/src/base-plugin/index.d.ts +1 -1
  9. package/pkg/src/base-plugin/worker.d.ts +1 -1
  10. package/pkg/src/{base-plugin/cache.d.ts → cache.d.ts} +2 -2
  11. package/pkg/src/defaults.d.ts +13 -0
  12. package/pkg/src/fs.d.ts +1 -0
  13. package/pkg/src/index.d.ts +6 -3
  14. package/pkg/src/paths.d.ts +13 -0
  15. package/pkg/src/render.d.ts +28 -0
  16. package/pkg/src/routes-factory/base.d.ts +17 -0
  17. package/pkg/src/routes-factory/index.d.ts +8 -0
  18. package/pkg/src/routes-factory/nesting.d.ts +3 -0
  19. package/pkg/src/{base-plugin/routes → routes-factory}/resolve.d.ts +3 -3
  20. package/pkg/src/stub-generator/index.d.ts +1 -1
  21. package/pkg/src/typebox.d.ts +2 -0
  22. package/pkg/src/types.d.ts +288 -0
  23. package/pkg/stub-generator/index.js +166 -24
  24. package/pkg/stub-generator/index.js.map +4 -4
  25. package/pkg/test/routes/{base.d.ts → index.d.ts} +2 -2
  26. package/pkg/base-plugin/routes.js +0 -819
  27. package/pkg/base-plugin/routes.js.map +0 -7
  28. package/pkg/cli/cli.js +0 -583
  29. package/pkg/cli/cli.js.map +0 -7
  30. package/pkg/cli/index.js +0 -422
  31. package/pkg/cli/index.js.map +0 -7
  32. package/pkg/cli/templates/.env +0 -1
  33. package/pkg/cli/templates/@src/api/app.hbs +0 -32
  34. package/pkg/cli/templates/@src/api/router.hbs +0 -11
  35. package/pkg/cli/templates/@src/api/server.hbs +0 -4
  36. package/pkg/cli/templates/@src/api/use.hbs +0 -6
  37. package/pkg/cli/templates/@src/config/index.hbs +0 -2
  38. package/pkg/cli/templates/@src/index.html +0 -4
  39. package/pkg/cli/templates/@src/vite.config.hbs +0 -29
  40. package/pkg/cli/templates/core/api/app.ts +0 -6
  41. package/pkg/cli/templates/core/api/env.d.ts +0 -4
  42. package/pkg/cli/templates/core/api/errors.ts +0 -18
  43. package/pkg/cli/templates/core/api/router.ts +0 -6
  44. package/pkg/cli/templates/core/api/server.ts +0 -63
  45. package/pkg/cli/templates/core/api/use.ts +0 -25
  46. package/pkg/cli/templates/vite.base.hbs +0 -44
  47. package/pkg/src/base-plugin/routes/nesting.d.ts +0 -5
  48. package/pkg/src/base-plugin/routes.d.ts +0 -9
  49. package/pkg/src/cli/base.d.ts +0 -30
  50. package/pkg/src/cli/cli.d.ts +0 -2
  51. package/pkg/src/cli/factory.d.ts +0 -12
  52. package/pkg/src/cli/index.d.ts +0 -2
  53. package/pkg/src/cli/templates/core/api/app.d.ts +0 -3
  54. package/pkg/src/cli/templates/core/api/errors.d.ts +0 -1
  55. package/pkg/src/cli/templates/core/api/router.d.ts +0 -3
  56. package/pkg/src/cli/templates/core/api/server.d.ts +0 -3
  57. package/pkg/src/cli/templates/core/api/use.d.ts +0 -2
  58. package/pkg/test/setup.d.ts +0 -1
  59. /package/pkg/test/@fixtures/app/{@src → src/test}/api/articles/[...path]/index.d.ts +0 -0
  60. /package/pkg/test/@fixtures/app/{@src → src/test}/api/books/[category]/[[author]]/index.d.ts +0 -0
  61. /package/pkg/test/@fixtures/app/{@src → src/test}/api/books/[category]/index.d.ts +0 -0
  62. /package/pkg/test/@fixtures/app/{@src → src/test}/api/books/index.d.ts +0 -0
  63. /package/pkg/test/@fixtures/app/{@src → src/test}/api/files/[[folder]]/[[id]].json/index.d.ts +0 -0
  64. /package/pkg/test/@fixtures/app/{@src → src/test}/api/files/[[folder]]/index.d.ts +0 -0
  65. /package/pkg/test/@fixtures/app/{@src → src/test}/api/index/index.d.ts +0 -0
  66. /package/pkg/test/@fixtures/app/{@src → src/test}/api/pages/[...path].html/index.d.ts +0 -0
  67. /package/pkg/test/@fixtures/app/{@src → src/test}/api/users/[id].json/index.d.ts +0 -0
  68. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/about/careers/[jobId]/index.d.ts +0 -0
  69. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/about/careers/layout.d.ts +0 -0
  70. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/about/index.d.ts +0 -0
  71. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/about/layout.d.ts +0 -0
  72. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/about/team/index.d.ts +0 -0
  73. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/account/layout.d.ts +0 -0
  74. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/account/profile/index.d.ts +0 -0
  75. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/index.d.ts +0 -0
  76. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/resources/[[type]]/[...path]/index.d.ts +0 -0
  77. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/resources/[[type]]/index.d.ts +0 -0
  78. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/resources/[[type]]/layout.d.ts +0 -0
  79. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/resources/index.d.ts +0 -0
  80. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/resources/layout.d.ts +0 -0
  81. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/settings/general/index.d.ts +0 -0
  82. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/settings/index.d.ts +0 -0
  83. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/settings/layout.d.ts +0 -0
  84. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/settings/permissions/index.d.ts +0 -0
  85. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/users/[userId]/index.d.ts +0 -0
  86. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/users/index.d.ts +0 -0
  87. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/[tenant]/users/layout.d.ts +0 -0
  88. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/index.d.ts +0 -0
  89. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/admin/layout.d.ts +0 -0
  90. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/[[category]]/[[tag]]/index.d.ts +0 -0
  91. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/[[category]]/index.d.ts +0 -0
  92. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/index.d.ts +0 -0
  93. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/layout.d.ts +0 -0
  94. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/post/[slug]/index.d.ts +0 -0
  95. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/blog/post/[slug]/layout.d.ts +0 -0
  96. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/contact/index.d.ts +0 -0
  97. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/contact/layout.d.ts +0 -0
  98. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/courses/[courseId]/layout.d.ts +0 -0
  99. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/courses/[courseId]/lessons/[[lessonId]]/assignments/[...assignmentPath]/index.d.ts +0 -0
  100. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/[view]/index.d.ts +0 -0
  101. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/analytics/index.d.ts +0 -0
  102. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/index.d.ts +0 -0
  103. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/layout.d.ts +0 -0
  104. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/billing/index.d.ts +0 -0
  105. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/index.d.ts +0 -0
  106. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/layout.d.ts +0 -0
  107. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/notifications/index.d.ts +0 -0
  108. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/profile/index.d.ts +0 -0
  109. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/security/index.d.ts +0 -0
  110. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/dashboard/settings/security/layout.d.ts +0 -0
  111. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/docs/[...path]/index.d.ts +0 -0
  112. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/docs/index.d.ts +0 -0
  113. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/docs/layout.d.ts +0 -0
  114. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/files/[...filePath]/index.d.ts +0 -0
  115. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/files/[...filePath]/layout.d.ts +0 -0
  116. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/legal/layout.d.ts +0 -0
  117. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/legal/privacy/index.d.ts +0 -0
  118. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/legal/terms/index.d.ts +0 -0
  119. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/news/[category]/articles/[...articlePath]/index.d.ts +0 -0
  120. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/news/[category]/layout.d.ts +0 -0
  121. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/[clientId]/layout.d.ts +0 -0
  122. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/[clientId]/reports/[reportType]/data/[dataView]/index.d.ts +0 -0
  123. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/[clientId]/reports/[reportType]/data/[dataView]/layout.d.ts +0 -0
  124. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/[clientId]/reports/[reportType]/layout.d.ts +0 -0
  125. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/[clientId]/reports/layout.d.ts +0 -0
  126. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/portal/layout.d.ts +0 -0
  127. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/products/[id]/index.d.ts +0 -0
  128. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/products/index.d.ts +0 -0
  129. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/profile/[username]/layout.d.ts +0 -0
  130. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/profile/[username]/posts/[postId]/comments/[...thread]/index.d.ts +0 -0
  131. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/profile/[username]/posts/[postId]/layout.d.ts +0 -0
  132. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/files/[...path]/index.d.ts +0 -0
  133. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/files/index.d.ts +0 -0
  134. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/files/layout.d.ts +0 -0
  135. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/index.d.ts +0 -0
  136. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/layout.d.ts +0 -0
  137. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/[taskId]/comments/[commentId]/index.d.ts +0 -0
  138. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/[taskId]/comments/index.d.ts +0 -0
  139. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/[taskId]/comments/layout.d.ts +0 -0
  140. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/[taskId]/index.d.ts +0 -0
  141. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/[taskId]/layout.d.ts +0 -0
  142. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/index.d.ts +0 -0
  143. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/tasks/layout.d.ts +0 -0
  144. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/team/[userId]/index.d.ts +0 -0
  145. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/team/index.d.ts +0 -0
  146. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/[projectId]/team/layout.d.ts +0 -0
  147. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/index.d.ts +0 -0
  148. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/projects/layout.d.ts +0 -0
  149. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/properties/[[city]]/filters/[...filters]/index.d.ts +0 -0
  150. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/properties/filters/index.d.ts +0 -0
  151. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/properties/layout.d.ts +0 -0
  152. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/search/[[query]]/[[page]]/index.d.ts +0 -0
  153. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/search/[[query]]/layout.d.ts +0 -0
  154. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/search/index.d.ts +0 -0
  155. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/[category]/[productId]/index.d.ts +0 -0
  156. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/[category]/[productId]/layout.d.ts +0 -0
  157. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/cart/index.d.ts +0 -0
  158. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/checkout/confirm/index.d.ts +0 -0
  159. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/checkout/layout.d.ts +0 -0
  160. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/checkout/payment/index.d.ts +0 -0
  161. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/checkout/shipping/index.d.ts +0 -0
  162. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/checkout/shipping/layout.d.ts +0 -0
  163. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/index.d.ts +0 -0
  164. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/layout.d.ts +0 -0
  165. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/orders/[orderId]/index.d.ts +0 -0
  166. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/orders/index.d.ts +0 -0
  167. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/orders/layout.d.ts +0 -0
  168. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/product/[id]/index.d.ts +0 -0
  169. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/product/[id]/layout.d.ts +0 -0
  170. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/product/[id]/reviews/index.d.ts +0 -0
  171. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/products/[[category]]/index.d.ts +0 -0
  172. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/products/index.d.ts +0 -0
  173. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/shop/products/layout.d.ts +0 -0
  174. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/signup/index.d.ts +0 -0
  175. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/store/[category]/filters/[...filters]/index.d.ts +0 -0
  176. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/store/[category]/sort/[sortBy]/index.d.ts +0 -0
  177. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/store/[category]/sort/layout.d.ts +0 -0
  178. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/store/layout.d.ts +0 -0
  179. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/followers/index.d.ts +0 -0
  180. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/following/index.d.ts +0 -0
  181. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/index.d.ts +0 -0
  182. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/layout.d.ts +0 -0
  183. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/posts/[postId]/index.d.ts +0 -0
  184. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/posts/[postId]/layout.d.ts +0 -0
  185. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/posts/index.d.ts +0 -0
  186. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/[username]/posts/layout.d.ts +0 -0
  187. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/index.d.ts +0 -0
  188. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/users/layout.d.ts +0 -0
  189. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/analytics/[range]/index.d.ts +0 -0
  190. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/analytics/[range]/layout.d.ts +0 -0
  191. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/analytics/index.d.ts +0 -0
  192. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/analytics/layout.d.ts +0 -0
  193. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/team/[memberId]/permissions/[...permissionPath]/index.d.ts +0 -0
  194. /package/pkg/test/@fixtures/app/{@src → src/test}/pages/workspace/[workspaceId]/team/layout.d.ts +0 -0
  195. /package/pkg/test/{cli/create.test.d.ts → routes/routes.test.d.ts} +0 -0
@@ -1,4 +0,0 @@
1
- import createServer from "{{importPathmap.core}}/server";
2
- import createApp from "./app";
3
-
4
- createServer(createApp);
@@ -1,6 +0,0 @@
1
- import globalMiddleware from "{{defaults.appPrefix}}/core/api/use";
2
-
3
- export default [
4
- // Global middleware applied to all routes
5
- ...globalMiddleware,
6
- ];
@@ -1,2 +0,0 @@
1
- export const baseurl = "{{folder.base}}";
2
- export const apiurl = "/api"; // relative to baseurl
@@ -1,4 +0,0 @@
1
- <!--
2
- Do not remove! Build process requires this file for framework-less source folders.
3
- Framework generators will override this stub with their own setup.
4
- -->
@@ -1,29 +0,0 @@
1
- import { join } from "node:path";
2
-
3
- {{#each plugins}}{{importDeclaration}}
4
- {{/each}}
5
- import devPlugin, { apiGenerator, fetchGenerator } from "@kosmojs/dev";
6
- {{#each generators}}{{importDeclaration}}
7
- {{/each}}
8
-
9
- import defineConfig from "../vite.base";
10
- import { apiurl, baseurl } from "./config";
11
-
12
- export default defineConfig(import.meta.dirname, {
13
- base: join(baseurl, "/"),
14
- server: {
15
- port: {{folder.port}},
16
- },
17
- plugins: [
18
- {{#each plugins}}{{importName}}({{options}}),
19
- {{/each}}
20
- devPlugin(apiurl, {
21
- generators: [
22
- apiGenerator(),
23
- fetchGenerator(),
24
- {{#each generators}}{{importName}}({{options}}),
25
- {{/each}}
26
- ],
27
- }),
28
- ],
29
- });
@@ -1,6 +0,0 @@
1
- import { type AppOptions, createApp } from "@kosmojs/api";
2
-
3
- export default (options?: AppOptions) => {
4
- const app = createApp(options);
5
- return app;
6
- };
@@ -1,4 +0,0 @@
1
- export declare module "@kosmojs/api" {
2
- interface DefaultState {}
3
- interface DefaultContext {}
4
- }
@@ -1,18 +0,0 @@
1
- import { createErrorHandler, ValidationError } from "@kosmojs/api";
2
-
3
- export const errorHandler = createErrorHandler(
4
- async function useErrorHandler(ctx, next) {
5
- try {
6
- await next();
7
- } catch (error: any) {
8
- if (error instanceof ValidationError) {
9
- const { scope, errorMessage } = error;
10
- ctx.status = 400;
11
- ctx.body = { error: `ValidationError: ${scope} - ${errorMessage}` };
12
- } else {
13
- ctx.status = error.statusCode || error.status || 500;
14
- ctx.body = { error: error.message };
15
- }
16
- }
17
- },
18
- );
@@ -1,6 +0,0 @@
1
- import { createRouter, type RouterOptions } from "@kosmojs/api";
2
-
3
- export default (options?: RouterOptions) => {
4
- const router = createRouter(options);
5
- return router;
6
- };
@@ -1,63 +0,0 @@
1
- import { chmod, unlink } from "node:fs/promises";
2
- import { parseArgs } from "node:util";
3
-
4
- import type { App } from "@kosmojs/api";
5
-
6
- const {
7
- values: { port, sock },
8
- } = parseArgs({
9
- options: {
10
- port: {
11
- type: "string",
12
- short: "p",
13
- },
14
- sock: {
15
- type: "string",
16
- short: "s",
17
- },
18
- },
19
- });
20
-
21
- if (![port, sock].some((e) => e)) {
22
- console.error("Please provide either -p/--port number or -s/--sock path");
23
- process.exit(1);
24
- }
25
-
26
- console.log("\n ➜ Starting Server", { port, sock });
27
-
28
- if (sock) {
29
- await unlink(sock).catch((error) => {
30
- if (error.code === "ENOENT") {
31
- return;
32
- }
33
- console.error(error.message);
34
- process.exit(1);
35
- });
36
- }
37
-
38
- export default async <T extends App = App>(
39
- createApp: () => T | Promise<T>,
40
- ): Promise<import("node:http").Server> => {
41
- const app = await createApp();
42
- // app.listen is returning the actual server
43
- return app.listen(port || sock, async () => {
44
- if (sock) {
45
- await chmod(sock, 0o777);
46
- }
47
- console.log("\n ➜ Server Started ✨\n");
48
- });
49
- };
50
-
51
- process.on("unhandledRejection", (reason) => {
52
- console.error("💥 UNHANDLED REJECTION - This is likely caused by:");
53
- console.error(" - Middleware not awaiting next()");
54
- console.error(" - Middleware not returning next()");
55
- console.error("");
56
- console.error("Reason:", reason);
57
- console.error("");
58
-
59
- // In development, crash hard
60
- if (process.env.NODE_ENV === "development") {
61
- process.exit(1);
62
- }
63
- });
@@ -1,25 +0,0 @@
1
- import { use } from "@kosmojs/api";
2
- import bodyparser from "@kosmojs/api/bodyparser";
3
-
4
- import { errorHandler } from "./errors";
5
-
6
- // Middleware applied to all routes by default.
7
- // Can be overridden on a per-route basis using the slot key.
8
- export default [
9
- use(errorHandler, { slot: "errorHandler" }),
10
-
11
- use(bodyparser.json(), {
12
- on: ["POST", "PUT", "PATCH"],
13
- slot: "bodyparser",
14
- }),
15
-
16
- use(
17
- function usePayload(ctx, next) {
18
- ctx.payload = ["POST", "PUT", "PATCH"].includes(ctx.method)
19
- ? ctx.request.body
20
- : ctx.query;
21
- return next();
22
- },
23
- { slot: "payload" },
24
- ),
25
- ];
@@ -1,44 +0,0 @@
1
- import { basename, resolve } from "node:path";
2
-
3
- import { aliasPlugin, definePlugin } from "@kosmojs/dev";
4
- import { loadEnv, mergeConfig, type UserConfig } from "vite";
5
-
6
- import pkg from "./package.json" with { type: "json" };
7
-
8
- export default async (sourceFolderPath: string, config: UserConfig) => {
9
- const env = loadEnv("mock", import.meta.dirname);
10
- const sourceFolder = basename(sourceFolderPath);
11
- return mergeConfig(config, {
12
- build: {
13
- outDir: resolve(import.meta.dirname, `${pkg.distDir}/${sourceFolder}`),
14
- emptyOutDir: true,
15
- sourcemap: true,
16
- },
17
-
18
- server: {
19
- host: true,
20
- allowedHosts: [env.VITE_HOSTNAME],
21
- fs: {
22
- strict: false,
23
- },
24
- watch: {
25
- awaitWriteFinish: {
26
- stabilityThreshold: 800,
27
- pollInterval: 200,
28
- },
29
- },
30
- },
31
-
32
- cacheDir: resolve(import.meta.dirname, `var/.vite/${sourceFolder}`),
33
-
34
- plugins: [
35
- aliasPlugin(import.meta.dirname),
36
- definePlugin([
37
- {
38
- // keys extracted from process.env and exposed to client
39
- keys: ["DEBUG"],
40
- },
41
- ]),
42
- ],
43
- });
44
- };
@@ -1,5 +0,0 @@
1
- import { type NestedRouteEntry, type RouteEntry } from "@kosmojs/devlib";
2
- /**
3
- * Build a nested route tree from flat route entries.
4
- * */
5
- export declare const nestedRoutesFactory: (routeEntries: Array<RouteEntry>) => NestedRouteEntry[];
@@ -1,9 +0,0 @@
1
- import { type PluginOptionsResolved } from "@kosmojs/devlib";
2
- import { type ResolverSignature } from "./routes/resolve";
3
- export * from "./routes/nesting";
4
- export * from "./routes/resolve";
5
- declare const _default: (pluginOptions: PluginOptionsResolved) => Promise<{
6
- resolvers: Map<string, ResolverSignature>;
7
- resolversFactory: (routeFiles: Array<string>) => Map<string, ResolverSignature>;
8
- }>;
9
- export default _default;
@@ -1,30 +0,0 @@
1
- export type Project = {
2
- name: string;
3
- distDir?: string;
4
- };
5
- export type SourceFolder = {
6
- name: string;
7
- framework?: (typeof FRAMEWORK_OPTIONS)[number];
8
- ssr?: boolean;
9
- base?: string;
10
- port?: number | string;
11
- };
12
- export declare const CREATE_OPTIONS: readonly ["project", "folder"];
13
- export declare const FRAMEWORK_OPTIONS: readonly ["none", "solid", "react", "vue"];
14
- export declare const NODE_VERSION = "22";
15
- export declare const DEFAULT_DIST = "dist";
16
- export declare const DEFAULT_BASE = "/";
17
- export declare const DEFAULT_PORT = "4000";
18
- export declare const DEFAULT_FRAMEWORK: "none";
19
- export declare const copyFiles: (src: string, dst: string, { exclude }?: {
20
- exclude?: Array<string | RegExp>;
21
- }) => Promise<void>;
22
- export declare const pathExists: (path: string) => Promise<boolean>;
23
- export declare const validateName: (name: string | undefined) => "Invalid name provided" | "May contain only alphanumerics, hyphens, periods or any of @ $ +" | undefined;
24
- export declare const validateBase: (base: string | undefined) => "Should start with a slash" | "Should not contain path traversal patterns" | undefined;
25
- export declare const validatePort: (port: string | number | undefined) => "Invalid port number" | undefined;
26
- export declare const assertNoError: (validator: () => string | undefined) => void;
27
- export declare const messageFactory: (logger?: (...lines: Array<unknown>) => void) => {
28
- projectCreated(project: Project): unknown[] | undefined;
29
- sourceFolderCreated(_folder: SourceFolder): unknown[] | undefined;
30
- };
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env -S node --enable-source-maps --no-warnings=ExperimentalWarning
2
- export {};
@@ -1,12 +0,0 @@
1
- import { type Project, type SourceFolder } from "./base";
2
- export declare const createProject: (path: string, project: Project, assets?: {
3
- NODE_VERSION?: `${number}`;
4
- dependencies?: Record<string, string>;
5
- devDependencies?: Record<string, string>;
6
- }) => Promise<void>;
7
- export declare const createSourceFolder: (projectRoot: string, // path inside project
8
- folder: SourceFolder, opt?: {
9
- frameworkOptions?: Record<string, unknown>;
10
- dependencies?: Record<string, string>;
11
- devDependencies?: Record<string, string>;
12
- }) => Promise<void>;
@@ -1,2 +0,0 @@
1
- export * from "./base";
2
- export * from "./factory";
@@ -1,3 +0,0 @@
1
- import { type AppOptions } from "@kosmojs/api";
2
- declare const _default: (options?: AppOptions) => import("@kosmojs/api").App;
3
- export default _default;
@@ -1 +0,0 @@
1
- export declare const errorHandler: import("@kosmojs/api").ParameterizedMiddleware;
@@ -1,3 +0,0 @@
1
- import { type RouterOptions } from "@kosmojs/api";
2
- declare const _default: (options?: RouterOptions) => import("@kosmojs/api").Router;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { App } from "@kosmojs/api";
2
- declare const _default: <T extends App = App>(createApp: () => T | Promise<T>) => Promise<import("node:http").Server>;
3
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: import("@kosmojs/api").MiddlewareDefinition[];
2
- export default _default;
@@ -1 +0,0 @@
1
- export {};