@primate/core 0.6.2 → 0.7.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 (185) hide show
  1. package/lib/private/App.d.ts +76 -149
  2. package/lib/private/App.js +22 -6
  3. package/lib/private/Flags.d.ts +5 -3
  4. package/lib/private/Flags.js +4 -2
  5. package/lib/private/app/Facade.d.ts +77 -156
  6. package/lib/private/app/Facade.js +4 -1
  7. package/lib/private/build/App.d.ts +4 -2
  8. package/lib/private/build/App.js +13 -4
  9. package/lib/private/build/client/index.js +24 -10
  10. package/lib/private/build/client/plugin/routes.d.ts +4 -0
  11. package/lib/private/build/client/plugin/routes.js +74 -0
  12. package/lib/private/build/hook.js +14 -6
  13. package/lib/private/build/index.d.ts +3 -2
  14. package/lib/private/build/index.js +9 -15
  15. package/lib/private/build/preclient/index.d.ts +3 -0
  16. package/lib/private/build/preclient/index.js +69 -0
  17. package/lib/private/build/preclient/plugin/routes.d.ts +4 -0
  18. package/lib/private/build/preclient/plugin/routes.js +44 -0
  19. package/lib/private/build/server/index.js +8 -5
  20. package/lib/private/build/server/plugin/assets.js +3 -3
  21. package/lib/private/build/server/plugin/native-addons.js +6 -8
  22. package/lib/private/build/server/plugin/node-imports.js +5 -7
  23. package/lib/private/build/server/plugin/route-client.d.ts +4 -0
  24. package/lib/private/build/server/plugin/route-client.js +110 -0
  25. package/lib/private/build/server/plugin/route.js +3 -10
  26. package/lib/private/build/server/plugin/virtual-pages.js +3 -3
  27. package/lib/private/build/server/plugin/virtual-routes.d.ts +2 -1
  28. package/lib/private/build/server/plugin/virtual-routes.js +27 -8
  29. package/lib/private/build/server/plugin/wasm.js +3 -2
  30. package/lib/private/client/Data.d.ts +1 -1
  31. package/lib/private/client/boot.js +2 -2
  32. package/lib/private/client/create-form.d.ts +11 -1
  33. package/lib/private/client/create-form.js +21 -3
  34. package/lib/private/client/index.d.ts +2 -2
  35. package/lib/private/client/navigate.d.ts +1 -0
  36. package/lib/private/client/navigate.js +7 -6
  37. package/lib/private/client/submit.d.ts +2 -1
  38. package/lib/private/client/submit.js +8 -7
  39. package/lib/private/client/{http.d.ts → transport.d.ts} +3 -3
  40. package/lib/private/client/{http.js → transport.js} +7 -9
  41. package/lib/private/config/schema.d.ts +5 -13
  42. package/lib/private/config/schema.js +1 -5
  43. package/lib/private/db/DB.d.ts +3 -1
  44. package/lib/private/db/MemoryDB.d.ts +5 -2
  45. package/lib/private/db/MemoryDB.js +33 -19
  46. package/lib/private/db/SQLDB.d.ts +23 -0
  47. package/lib/private/db/SQLDB.js +2 -0
  48. package/lib/private/db/errors.d.ts +74 -7
  49. package/lib/private/db/errors.js +31 -7
  50. package/lib/private/db/migrate/apply.js +8 -9
  51. package/lib/private/db/migrate/bundle.js +3 -2
  52. package/lib/private/db/migrate/create.js +18 -20
  53. package/lib/private/db/migrate/status.js +9 -10
  54. package/lib/private/db/migrate/store.d.ts +3 -3
  55. package/lib/private/db/migrate/store.js +5 -5
  56. package/lib/private/db/test.js +256 -115
  57. package/lib/private/db/testSQL.d.ts +50 -0
  58. package/lib/private/db/testSQL.js +196 -0
  59. package/lib/private/errors.d.ts +66 -9
  60. package/lib/private/errors.js +37 -16
  61. package/lib/private/frontend.d.ts +4 -4
  62. package/lib/private/frontend.js +11 -8
  63. package/lib/private/i18n/errors.d.ts +7 -1
  64. package/lib/private/i18n/errors.js +1 -1
  65. package/lib/private/i18n/index/types.d.ts +1 -1
  66. package/lib/private/i18n/locale.d.ts +1 -1
  67. package/lib/private/i18n/module.js +6 -5
  68. package/lib/private/index.d.ts +10 -2
  69. package/lib/private/index.js +13 -1
  70. package/lib/private/logger.d.ts +24 -0
  71. package/lib/private/logger.js +66 -0
  72. package/lib/private/module/Setup.d.ts +3 -0
  73. package/lib/private/module/create.d.ts +2 -1
  74. package/lib/private/module/create.js +4 -0
  75. package/lib/private/paths.d.ts +2 -3
  76. package/lib/private/paths.js +6 -12
  77. package/lib/private/request/ContentType.d.ts +3 -0
  78. package/lib/private/request/ContentType.js +2 -0
  79. package/lib/private/request/RequestBag.d.ts +2 -18
  80. package/lib/private/request/RequestBag.js +4 -16
  81. package/lib/private/request/RequestBody.d.ts +20 -28
  82. package/lib/private/request/RequestBody.js +63 -86
  83. package/lib/private/request/RequestFacade.d.ts +2 -2
  84. package/lib/private/request/handle.js +2 -2
  85. package/lib/private/request/parse.js +2 -4
  86. package/lib/private/request/route.js +15 -8
  87. package/lib/private/response/binary.d.ts +2 -2
  88. package/lib/private/response/binary.js +6 -6
  89. package/lib/private/response/error.js +6 -2
  90. package/lib/private/response/json.js +2 -2
  91. package/lib/private/response/null.d.ts +3 -0
  92. package/lib/private/response/null.js +6 -0
  93. package/lib/private/response/redirect.js +4 -3
  94. package/lib/private/response/respond.js +4 -4
  95. package/lib/private/response/sse.js +2 -2
  96. package/lib/private/response/text.js +2 -2
  97. package/lib/private/route/ContentTypeMap.d.ts +10 -0
  98. package/lib/private/route/ContentTypeMap.js +2 -0
  99. package/lib/private/route/Handler.d.ts +3 -2
  100. package/lib/private/route/NarrowedRequest.d.ts +23 -0
  101. package/lib/private/route/NarrowedRequest.js +2 -0
  102. package/lib/private/route/Options.d.ts +6 -1
  103. package/lib/private/route/Path.d.ts +2 -2
  104. package/lib/private/route/hook.d.ts +3 -1
  105. package/lib/private/route/hook.js +1 -2
  106. package/lib/private/route/router.d.ts +7 -11
  107. package/lib/private/route/router.js +13 -20
  108. package/lib/private/route.client.d.ts +36 -0
  109. package/lib/private/route.client.js +8 -0
  110. package/lib/private/route.d.ts +21 -5
  111. package/lib/private/route.js +21 -5
  112. package/lib/private/serve/App.d.ts +1 -2
  113. package/lib/private/serve/App.js +64 -58
  114. package/lib/private/serve/Init.d.ts +2 -0
  115. package/lib/private/serve/dev-module.js +2 -3
  116. package/lib/private/serve/index.js +5 -6
  117. package/lib/private/server/TAG.d.ts +1 -1
  118. package/lib/private/server/TAG.js +1 -1
  119. package/lib/private/session/index.d.ts +1 -1
  120. package/lib/private/session/index.js +3 -2
  121. package/lib/private/session/module.js +3 -3
  122. package/lib/private/session/schema.d.ts +3 -3
  123. package/lib/private/session/schema.js +4 -3
  124. package/lib/private/store/ExtractRelation.d.ts +7 -0
  125. package/lib/private/store/ExtractRelation.js +2 -0
  126. package/lib/private/store/ExtractSchema.d.ts +10 -0
  127. package/lib/private/{orm → store}/ForeignKey.d.ts +1 -1
  128. package/lib/private/store/Init.d.ts +13 -0
  129. package/lib/private/store/Init.js +2 -0
  130. package/lib/private/{orm/store.d.ts → store/Store.d.ts} +50 -50
  131. package/lib/private/{orm/store.js → store/Store.js} +163 -107
  132. package/lib/private/store/StoreInput.d.ts +11 -0
  133. package/lib/private/store/key.d.ts +8 -0
  134. package/lib/private/store/key.js +8 -0
  135. package/lib/private/{orm → store}/parse.d.ts +3 -3
  136. package/lib/private/{orm → store}/parse.js +7 -2
  137. package/lib/private/store/relation.d.ts +29 -0
  138. package/lib/private/store/relation.js +26 -0
  139. package/lib/private/store.d.ts +24 -0
  140. package/lib/private/store.js +10 -0
  141. package/lib/public/db/errors.d.ts +1 -1
  142. package/lib/public/db/errors.js +1 -1
  143. package/lib/public/db/testSQL.d.ts +2 -0
  144. package/lib/public/db/testSQL.js +2 -0
  145. package/lib/public/db.d.ts +1 -0
  146. package/lib/public/index.d.ts +1 -0
  147. package/lib/public/index.js +1 -1
  148. package/lib/public/response.d.ts +6 -6
  149. package/lib/public/response.js +4 -1
  150. package/lib/public/route.client.d.ts +2 -0
  151. package/lib/public/route.client.js +2 -0
  152. package/lib/public/store.d.ts +2 -0
  153. package/lib/public/store.js +2 -0
  154. package/package.json +24 -17
  155. package/lib/private/bye.d.ts +0 -3
  156. package/lib/private/bye.js +0 -4
  157. package/lib/private/log.d.ts +0 -20
  158. package/lib/private/log.js +0 -47
  159. package/lib/private/orm/ExtractSchema.d.ts +0 -9
  160. package/lib/private/orm/StoreInput.d.ts +0 -10
  161. package/lib/private/orm/key.d.ts +0 -8
  162. package/lib/private/orm/key.js +0 -8
  163. package/lib/private/orm/relation.d.ts +0 -43
  164. package/lib/private/orm/relation.js +0 -26
  165. package/lib/private/request/Verb.d.ts +0 -4
  166. package/lib/private/request/Verb.js +0 -2
  167. package/lib/private/request/verbs.d.ts +0 -3
  168. package/lib/private/request/verbs.js +0 -12
  169. package/lib/private/route/wrap.d.ts +0 -2
  170. package/lib/private/route/wrap.js +0 -12
  171. package/lib/public/log.d.ts +0 -2
  172. package/lib/public/log.js +0 -2
  173. package/lib/public/orm/key.d.ts +0 -2
  174. package/lib/public/orm/key.js +0 -2
  175. package/lib/public/orm/relation.d.ts +0 -2
  176. package/lib/public/orm/relation.js +0 -2
  177. package/lib/public/orm/store.d.ts +0 -2
  178. package/lib/public/orm/store.js +0 -2
  179. package/lib/public/request/verbs.d.ts +0 -2
  180. package/lib/public/request/verbs.js +0 -2
  181. /package/lib/private/{orm → store}/ExtractSchema.js +0 -0
  182. /package/lib/private/{orm → store}/ForeignKey.js +0 -0
  183. /package/lib/private/{orm → store}/PrimaryKey.d.ts +0 -0
  184. /package/lib/private/{orm → store}/PrimaryKey.js +0 -0
  185. /package/lib/private/{orm → store}/StoreInput.js +0 -0
@@ -11,6 +11,7 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
11
11
  constructor(config: Config);
12
12
  [s_attach](app: ServeApp): void;
13
13
  get [s_config](): {
14
+ conditions: string[];
14
15
  http: {
15
16
  csp: Record<string, string[]> | undefined;
16
17
  headers: Record<string, string> | undefined;
@@ -32,22 +33,18 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
32
33
  db: {
33
34
  migrations: {
34
35
  table: string;
35
- db: import("../db/DB.js").default;
36
+ db: import("../db/DB.js").default<unknown>;
36
37
  } | undefined;
37
38
  };
38
39
  env: {
39
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
40
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
40
41
  [x: string]: unknown;
41
42
  }> | undefined;
42
43
  };
43
44
  modules: import("../Module.js").default[];
44
- request: {
45
- body: {
46
- parse: boolean;
47
- };
48
- };
49
45
  };
50
- config<P extends string>(path: P): P extends `${infer P1}.${infer Rest}` ? P1 extends "http" | "livereload" | "db" | "env" | "request" | "modules" ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<{
46
+ config<P extends string>(path: P): P extends `${infer P1}.${infer Rest}` ? P1 extends "http" | "livereload" | "db" | "env" | "conditions" | "modules" ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<{
47
+ conditions: string[];
51
48
  http: {
52
49
  csp: Record<string, string[]> | undefined;
53
50
  headers: Record<string, string> | undefined;
@@ -69,21 +66,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
69
66
  db: {
70
67
  migrations: {
71
68
  table: string;
72
- db: import("../db/DB.js").default;
69
+ db: import("../db/DB.js").default<unknown>;
73
70
  } | undefined;
74
71
  };
75
72
  env: {
76
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
73
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
77
74
  [x: string]: unknown;
78
75
  }> | undefined;
79
76
  };
80
77
  modules: import("../Module.js").default[];
81
- request: {
82
- body: {
83
- parse: boolean;
84
- };
85
- };
86
78
  }[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<{
79
+ conditions: string[];
87
80
  http: {
88
81
  csp: Record<string, string[]> | undefined;
89
82
  headers: Record<string, string> | undefined;
@@ -105,21 +98,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
105
98
  db: {
106
99
  migrations: {
107
100
  table: string;
108
- db: import("../db/DB.js").default;
101
+ db: import("../db/DB.js").default<unknown>;
109
102
  } | undefined;
110
103
  };
111
104
  env: {
112
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
105
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
113
106
  [x: string]: unknown;
114
107
  }> | undefined;
115
108
  };
116
109
  modules: import("../Module.js").default[];
117
- request: {
118
- body: {
119
- parse: boolean;
120
- };
121
- };
122
110
  }[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<{
111
+ conditions: string[];
123
112
  http: {
124
113
  csp: Record<string, string[]> | undefined;
125
114
  headers: Record<string, string> | undefined;
@@ -141,21 +130,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
141
130
  db: {
142
131
  migrations: {
143
132
  table: string;
144
- db: import("../db/DB.js").default;
133
+ db: import("../db/DB.js").default<unknown>;
145
134
  } | undefined;
146
135
  };
147
136
  env: {
148
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
137
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
149
138
  [x: string]: unknown;
150
139
  }> | undefined;
151
140
  };
152
141
  modules: import("../Module.js").default[];
153
- request: {
154
- body: {
155
- parse: boolean;
156
- };
157
- };
158
142
  }[P1], undefined>[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<Exclude<{
143
+ conditions: string[];
159
144
  http: {
160
145
  csp: Record<string, string[]> | undefined;
161
146
  headers: Record<string, string> | undefined;
@@ -177,21 +162,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
177
162
  db: {
178
163
  migrations: {
179
164
  table: string;
180
- db: import("../db/DB.js").default;
165
+ db: import("../db/DB.js").default<unknown>;
181
166
  } | undefined;
182
167
  };
183
168
  env: {
184
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
169
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
185
170
  [x: string]: unknown;
186
171
  }> | undefined;
187
172
  };
188
173
  modules: import("../Module.js").default[];
189
- request: {
190
- body: {
191
- parse: boolean;
192
- };
193
- };
194
174
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<Exclude<Exclude<{
175
+ conditions: string[];
195
176
  http: {
196
177
  csp: Record<string, string[]> | undefined;
197
178
  headers: Record<string, string> | undefined;
@@ -213,21 +194,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
213
194
  db: {
214
195
  migrations: {
215
196
  table: string;
216
- db: import("../db/DB.js").default;
197
+ db: import("../db/DB.js").default<unknown>;
217
198
  } | undefined;
218
199
  };
219
200
  env: {
220
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
201
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
221
202
  [x: string]: unknown;
222
203
  }> | undefined;
223
204
  };
224
205
  modules: import("../Module.js").default[];
225
- request: {
226
- body: {
227
- parse: boolean;
228
- };
229
- };
230
206
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? unknown : undefined : Rest extends keyof Exclude<Exclude<Exclude<Exclude<Exclude<{
207
+ conditions: string[];
231
208
  http: {
232
209
  csp: Record<string, string[]> | undefined;
233
210
  headers: Record<string, string> | undefined;
@@ -249,21 +226,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
249
226
  db: {
250
227
  migrations: {
251
228
  table: string;
252
- db: import("../db/DB.js").default;
229
+ db: import("../db/DB.js").default<unknown>;
253
230
  } | undefined;
254
231
  };
255
232
  env: {
256
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
233
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
257
234
  [x: string]: unknown;
258
235
  }> | undefined;
259
236
  };
260
237
  modules: import("../Module.js").default[];
261
- request: {
262
- body: {
263
- parse: boolean;
264
- };
265
- };
266
238
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<Exclude<Exclude<{
239
+ conditions: string[];
267
240
  http: {
268
241
  csp: Record<string, string[]> | undefined;
269
242
  headers: Record<string, string> | undefined;
@@ -285,21 +258,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
285
258
  db: {
286
259
  migrations: {
287
260
  table: string;
288
- db: import("../db/DB.js").default;
261
+ db: import("../db/DB.js").default<unknown>;
289
262
  } | undefined;
290
263
  };
291
264
  env: {
292
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
265
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
293
266
  [x: string]: unknown;
294
267
  }> | undefined;
295
268
  };
296
269
  modules: import("../Module.js").default[];
297
- request: {
298
- body: {
299
- parse: boolean;
300
- };
301
- };
302
270
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<Exclude<Exclude<{
271
+ conditions: string[];
303
272
  http: {
304
273
  csp: Record<string, string[]> | undefined;
305
274
  headers: Record<string, string> | undefined;
@@ -321,21 +290,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
321
290
  db: {
322
291
  migrations: {
323
292
  table: string;
324
- db: import("../db/DB.js").default;
293
+ db: import("../db/DB.js").default<unknown>;
325
294
  } | undefined;
326
295
  };
327
296
  env: {
328
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
297
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
329
298
  [x: string]: unknown;
330
299
  }> | undefined;
331
300
  };
332
301
  modules: import("../Module.js").default[];
333
- request: {
334
- body: {
335
- parse: boolean;
336
- };
337
- };
338
302
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<Exclude<Exclude<{
303
+ conditions: string[];
339
304
  http: {
340
305
  csp: Record<string, string[]> | undefined;
341
306
  headers: Record<string, string> | undefined;
@@ -357,21 +322,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
357
322
  db: {
358
323
  migrations: {
359
324
  table: string;
360
- db: import("../db/DB.js").default;
325
+ db: import("../db/DB.js").default<unknown>;
361
326
  } | undefined;
362
327
  };
363
328
  env: {
364
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
329
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
365
330
  [x: string]: unknown;
366
331
  }> | undefined;
367
332
  };
368
333
  modules: import("../Module.js").default[];
369
- request: {
370
- body: {
371
- parse: boolean;
372
- };
373
- };
374
334
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<Exclude<{
335
+ conditions: string[];
375
336
  http: {
376
337
  csp: Record<string, string[]> | undefined;
377
338
  headers: Record<string, string> | undefined;
@@ -393,21 +354,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
393
354
  db: {
394
355
  migrations: {
395
356
  table: string;
396
- db: import("../db/DB.js").default;
357
+ db: import("../db/DB.js").default<unknown>;
397
358
  } | undefined;
398
359
  };
399
360
  env: {
400
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
361
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
401
362
  [x: string]: unknown;
402
363
  }> | undefined;
403
364
  };
404
365
  modules: import("../Module.js").default[];
405
- request: {
406
- body: {
407
- parse: boolean;
408
- };
409
- };
410
366
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<Exclude<{
367
+ conditions: string[];
411
368
  http: {
412
369
  csp: Record<string, string[]> | undefined;
413
370
  headers: Record<string, string> | undefined;
@@ -429,21 +386,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
429
386
  db: {
430
387
  migrations: {
431
388
  table: string;
432
- db: import("../db/DB.js").default;
389
+ db: import("../db/DB.js").default<unknown>;
433
390
  } | undefined;
434
391
  };
435
392
  env: {
436
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
393
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
437
394
  [x: string]: unknown;
438
395
  }> | undefined;
439
396
  };
440
397
  modules: import("../Module.js").default[];
441
- request: {
442
- body: {
443
- parse: boolean;
444
- };
445
- };
446
398
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<Exclude<{
399
+ conditions: string[];
447
400
  http: {
448
401
  csp: Record<string, string[]> | undefined;
449
402
  headers: Record<string, string> | undefined;
@@ -465,21 +418,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
465
418
  db: {
466
419
  migrations: {
467
420
  table: string;
468
- db: import("../db/DB.js").default;
421
+ db: import("../db/DB.js").default<unknown>;
469
422
  } | undefined;
470
423
  };
471
424
  env: {
472
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
425
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
473
426
  [x: string]: unknown;
474
427
  }> | undefined;
475
428
  };
476
429
  modules: import("../Module.js").default[];
477
- request: {
478
- body: {
479
- parse: boolean;
480
- };
481
- };
482
430
  }[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<{
431
+ conditions: string[];
483
432
  http: {
484
433
  csp: Record<string, string[]> | undefined;
485
434
  headers: Record<string, string> | undefined;
@@ -501,21 +450,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
501
450
  db: {
502
451
  migrations: {
503
452
  table: string;
504
- db: import("../db/DB.js").default;
453
+ db: import("../db/DB.js").default<unknown>;
505
454
  } | undefined;
506
455
  };
507
456
  env: {
508
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
457
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
509
458
  [x: string]: unknown;
510
459
  }> | undefined;
511
460
  };
512
461
  modules: import("../Module.js").default[];
513
- request: {
514
- body: {
515
- parse: boolean;
516
- };
517
- };
518
462
  }[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<{
463
+ conditions: string[];
519
464
  http: {
520
465
  csp: Record<string, string[]> | undefined;
521
466
  headers: Record<string, string> | undefined;
@@ -537,21 +482,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
537
482
  db: {
538
483
  migrations: {
539
484
  table: string;
540
- db: import("../db/DB.js").default;
485
+ db: import("../db/DB.js").default<unknown>;
541
486
  } | undefined;
542
487
  };
543
488
  env: {
544
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
489
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
545
490
  [x: string]: unknown;
546
491
  }> | undefined;
547
492
  };
548
493
  modules: import("../Module.js").default[];
549
- request: {
550
- body: {
551
- parse: boolean;
552
- };
553
- };
554
494
  }[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<{
495
+ conditions: string[];
555
496
  http: {
556
497
  csp: Record<string, string[]> | undefined;
557
498
  headers: Record<string, string> | undefined;
@@ -573,21 +514,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
573
514
  db: {
574
515
  migrations: {
575
516
  table: string;
576
- db: import("../db/DB.js").default;
517
+ db: import("../db/DB.js").default<unknown>;
577
518
  } | undefined;
578
519
  };
579
520
  env: {
580
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
521
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
581
522
  [x: string]: unknown;
582
523
  }> | undefined;
583
524
  };
584
525
  modules: import("../Module.js").default[];
585
- request: {
586
- body: {
587
- parse: boolean;
588
- };
589
- };
590
526
  }[P1], undefined>[P1], undefined> ? Exclude<Exclude<{
527
+ conditions: string[];
591
528
  http: {
592
529
  csp: Record<string, string[]> | undefined;
593
530
  headers: Record<string, string> | undefined;
@@ -609,21 +546,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
609
546
  db: {
610
547
  migrations: {
611
548
  table: string;
612
- db: import("../db/DB.js").default;
549
+ db: import("../db/DB.js").default<unknown>;
613
550
  } | undefined;
614
551
  };
615
552
  env: {
616
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
553
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
617
554
  [x: string]: unknown;
618
555
  }> | undefined;
619
556
  };
620
557
  modules: import("../Module.js").default[];
621
- request: {
622
- body: {
623
- parse: boolean;
624
- };
625
- };
626
558
  }[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<{
559
+ conditions: string[];
627
560
  http: {
628
561
  csp: Record<string, string[]> | undefined;
629
562
  headers: Record<string, string> | undefined;
@@ -645,21 +578,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
645
578
  db: {
646
579
  migrations: {
647
580
  table: string;
648
- db: import("../db/DB.js").default;
581
+ db: import("../db/DB.js").default<unknown>;
649
582
  } | undefined;
650
583
  };
651
584
  env: {
652
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
585
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
653
586
  [x: string]: unknown;
654
587
  }> | undefined;
655
588
  };
656
589
  modules: import("../Module.js").default[];
657
- request: {
658
- body: {
659
- parse: boolean;
660
- };
661
- };
662
590
  }[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<{
591
+ conditions: string[];
663
592
  http: {
664
593
  csp: Record<string, string[]> | undefined;
665
594
  headers: Record<string, string> | undefined;
@@ -681,21 +610,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
681
610
  db: {
682
611
  migrations: {
683
612
  table: string;
684
- db: import("../db/DB.js").default;
613
+ db: import("../db/DB.js").default<unknown>;
685
614
  } | undefined;
686
615
  };
687
616
  env: {
688
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
617
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
689
618
  [x: string]: unknown;
690
619
  }> | undefined;
691
620
  };
692
621
  modules: import("../Module.js").default[];
693
- request: {
694
- body: {
695
- parse: boolean;
696
- };
697
- };
698
622
  }[P1], undefined> ? Exclude<{
623
+ conditions: string[];
699
624
  http: {
700
625
  csp: Record<string, string[]> | undefined;
701
626
  headers: Record<string, string> | undefined;
@@ -717,21 +642,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
717
642
  db: {
718
643
  migrations: {
719
644
  table: string;
720
- db: import("../db/DB.js").default;
645
+ db: import("../db/DB.js").default<unknown>;
721
646
  } | undefined;
722
647
  };
723
648
  env: {
724
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
649
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
725
650
  [x: string]: unknown;
726
651
  }> | undefined;
727
652
  };
728
653
  modules: import("../Module.js").default[];
729
- request: {
730
- body: {
731
- parse: boolean;
732
- };
733
- };
734
654
  }[P1], undefined>[Rest] : undefined) | ({
655
+ conditions: string[];
735
656
  http: {
736
657
  csp: Record<string, string[]> | undefined;
737
658
  headers: Record<string, string> | undefined;
@@ -753,21 +674,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
753
674
  db: {
754
675
  migrations: {
755
676
  table: string;
756
- db: import("../db/DB.js").default;
677
+ db: import("../db/DB.js").default<unknown>;
757
678
  } | undefined;
758
679
  };
759
680
  env: {
760
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
681
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
761
682
  [x: string]: unknown;
762
683
  }> | undefined;
763
684
  };
764
685
  modules: import("../Module.js").default[];
765
- request: {
766
- body: {
767
- parse: boolean;
768
- };
769
- };
770
- }[P1] & undefined) : undefined : P extends "http" | "livereload" | "db" | "env" | "request" | "modules" ? {
686
+ }[P1] & undefined) : undefined : P extends "http" | "livereload" | "db" | "env" | "conditions" | "modules" ? {
687
+ conditions: string[];
771
688
  http: {
772
689
  csp: Record<string, string[]> | undefined;
773
690
  headers: Record<string, string> | undefined;
@@ -789,23 +706,27 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
789
706
  db: {
790
707
  migrations: {
791
708
  table: string;
792
- db: import("../db/DB.js").default;
709
+ db: import("../db/DB.js").default<unknown>;
793
710
  } | undefined;
794
711
  };
795
712
  env: {
796
- schema: ObjectType<import("@rcompat/dict").Dict<import("pema").Parsed<unknown>>, {
713
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
797
714
  [x: string]: unknown;
798
715
  }> | undefined;
799
716
  };
800
717
  modules: import("../Module.js").default[];
801
- request: {
802
- body: {
803
- parse: boolean;
804
- };
805
- };
806
718
  }[P] : undefined;
807
719
  env<K extends keyof T>(key: K): T[K]["infer"];
808
720
  view<SV = ServerView>(name: string): SV;
809
721
  get root(): import("@rcompat/fs").FileRef;
722
+ get log(): {
723
+ readonly level: string;
724
+ print(strings: TemplateStringsArray, ...params: unknown[]): void;
725
+ system(strings: TemplateStringsArray, ...params: unknown[]): void;
726
+ trace(strings: TemplateStringsArray, ...params: unknown[]): void;
727
+ info(strings: TemplateStringsArray, ...params: unknown[]): void;
728
+ warn(strings: TemplateStringsArray, ...params: unknown[]): void;
729
+ error(error: unknown): void;
730
+ };
810
731
  }
811
732
  //# sourceMappingURL=Facade.d.ts.map
@@ -17,7 +17,7 @@ export default class AppFacade {
17
17
  const schema = this.#config.env.schema;
18
18
  if (schema !== undefined) {
19
19
  try {
20
- this.#env = schema.coerce(env.toJSON());
20
+ this.#env = schema.parse(env.toJSON());
21
21
  }
22
22
  catch (error) {
23
23
  if (ParseError.is(error))
@@ -52,5 +52,8 @@ export default class AppFacade {
52
52
  get root() {
53
53
  return this.#with.root;
54
54
  }
55
+ get log() {
56
+ return this.#with.log;
57
+ }
55
58
  }
56
59
  //# sourceMappingURL=Facade.js.map
@@ -1,18 +1,19 @@
1
1
  import App from "#App";
2
2
  import type Binder from "#Binder";
3
+ import type ServeApp from "#serve/App";
3
4
  import type { FileRef } from "@rcompat/fs";
4
5
  import type { Dict } from "@rcompat/type";
5
6
  import type { Plugin } from "esbuild";
6
7
  type PluginType = "server" | "client";
7
8
  export default class BuildApp extends App {
8
9
  #private;
9
- frontends: Map<string, string[]>;
10
- conditions: Set<string>;
11
10
  buildInit(): Promise<void>;
12
11
  get extensions(): string[];
13
12
  get id(): string;
14
13
  get paths(): Dict<string[]>;
15
14
  get frontendExtensions(): string[];
15
+ get frontends(): Map<string, string[]>;
16
+ get conditions(): Set<string>;
16
17
  addRoot(name: string, source: string): void;
17
18
  get roots(): Dict<string>;
18
19
  plugin(type: PluginType, plugin: Plugin): void;
@@ -29,6 +30,7 @@ export default class BuildApp extends App {
29
30
  set i18n_active(active: boolean);
30
31
  get session_active(): boolean;
31
32
  set session_active(active: boolean);
33
+ serve(): Promise<ServeApp>;
32
34
  }
33
35
  export {};
34
36
  //# sourceMappingURL=App.d.ts.map
@@ -3,8 +3,8 @@ import build from "#build/hook";
3
3
  import resolve_paths from "#paths";
4
4
  import s_layout_depth from "#symbol/layout-depth";
5
5
  export default class BuildApp extends App {
6
- frontends = new Map();
7
- conditions = new Set();
6
+ #frontends = new Map();
7
+ #conditions = new Set();
8
8
  #postbuild = [];
9
9
  #roots = {};
10
10
  #id = crypto.randomUUID().slice(0, 8);
@@ -18,7 +18,7 @@ export default class BuildApp extends App {
18
18
  #plugins = [];
19
19
  #entrypoint_imports = [];
20
20
  async buildInit() {
21
- this.#paths = await resolve_paths(this.root, this.config("paths"));
21
+ this.#paths = await resolve_paths(this);
22
22
  await build(this);
23
23
  }
24
24
  get extensions() {
@@ -32,7 +32,13 @@ export default class BuildApp extends App {
32
32
  return this.#paths;
33
33
  }
34
34
  get frontendExtensions() {
35
- return [...this.frontends.values()].flat();
35
+ return [...this.#frontends.values()].flat();
36
+ }
37
+ get frontends() {
38
+ return this.#frontends;
39
+ }
40
+ get conditions() {
41
+ return this.#conditions;
36
42
  }
37
43
  addRoot(name, source) {
38
44
  this.#roots[name] = source;
@@ -97,5 +103,8 @@ export default class BuildApp extends App {
97
103
  set session_active(active) {
98
104
  this.#session_active = active;
99
105
  }
106
+ async serve() {
107
+ return this.root.join("build/server.js").import("default");
108
+ }
100
109
  }
101
110
  //# sourceMappingURL=App.js.map