@primate/core 0.7.5 → 0.8.1

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 (124) hide show
  1. package/lib/private/App.d.ts +128 -65
  2. package/lib/private/Bag.d.ts +11 -0
  3. package/lib/private/Bag.js +31 -0
  4. package/lib/private/Flags.d.ts +5 -5
  5. package/lib/private/Flags.js +2 -1
  6. package/lib/private/app/Facade.client.d.ts +20 -0
  7. package/lib/private/app/Facade.client.js +30 -0
  8. package/lib/private/app/{Facade.d.ts → Facade.server.d.ts} +141 -72
  9. package/lib/private/app/{Facade.js → Facade.server.js} +12 -4
  10. package/lib/private/build/App.d.ts +0 -2
  11. package/lib/private/build/App.js +0 -7
  12. package/lib/private/build/client/index.js +29 -27
  13. package/lib/private/build/client/plugin/frontend.js +1 -1
  14. package/lib/private/build/client/plugin/routes.js +1 -1
  15. package/lib/private/build/hook.js +0 -3
  16. package/lib/private/build/server/index.js +5 -18
  17. package/lib/private/build/server/plugin/native-addons.d.ts +1 -1
  18. package/lib/private/build/server/plugin/native-addons.js +1 -1
  19. package/lib/private/build/shared/intercept.d.ts +1 -1
  20. package/lib/private/build/shared/intercept.js +4 -2
  21. package/lib/private/client/create-form.d.ts +13 -9
  22. package/lib/private/client/create-form.js +21 -4
  23. package/lib/private/config/index.d.ts +6 -2
  24. package/lib/private/config/schema.d.ts +28 -21
  25. package/lib/private/config/schema.js +5 -3
  26. package/lib/private/cookie.d.ts +5 -5
  27. package/lib/private/db/errors.d.ts +82 -82
  28. package/lib/private/db/migrate/store.d.ts +2 -2
  29. package/lib/private/db/primary.d.ts +1 -1
  30. package/lib/private/db/sql.d.ts +1 -1
  31. package/lib/private/errors.d.ts +80 -68
  32. package/lib/private/errors.js +23 -1
  33. package/lib/private/frontend.d.ts +7 -7
  34. package/lib/private/frontend.js +7 -10
  35. package/lib/private/i18n/API.d.ts +14 -18
  36. package/lib/private/i18n/config.client.d.ts +7 -0
  37. package/lib/private/i18n/config.client.js +130 -0
  38. package/lib/private/i18n/config.server.d.ts +7 -0
  39. package/lib/private/i18n/{index/server.js → config.server.js} +31 -23
  40. package/lib/private/i18n/constant/COOKIE_NAME.d.ts +1 -1
  41. package/lib/private/i18n/constant/DEFAULT_LOCALE.d.ts +1 -1
  42. package/lib/private/i18n/constant/DEFAULT_PERSIST_MODE.d.ts +1 -1
  43. package/lib/private/i18n/constant/PERSIST_HEADER.d.ts +1 -1
  44. package/lib/private/i18n/constant/PERSIST_METHOD.d.ts +1 -1
  45. package/lib/private/i18n/constant/PERSIST_STORAGE_KEY.d.ts +1 -1
  46. package/lib/private/i18n/index.d.ts +42 -0
  47. package/lib/private/i18n/index.js +6 -0
  48. package/lib/private/i18n/missing.d.ts +5 -0
  49. package/lib/private/i18n/missing.js +38 -0
  50. package/lib/private/i18n/module.js +36 -52
  51. package/lib/private/i18n/schema.d.ts +4 -4
  52. package/lib/private/loader.d.ts +5 -0
  53. package/lib/private/loader.js +28 -0
  54. package/lib/private/logger.d.ts +1 -1
  55. package/lib/private/request/RequestBag.d.ts +12 -13
  56. package/lib/private/request/RequestBag.js +5 -4
  57. package/lib/private/request/RequestView.d.ts +5 -5
  58. package/lib/private/request/RequestView.js +0 -1
  59. package/lib/private/response/view.d.ts +1 -0
  60. package/lib/private/response/view.js +0 -7
  61. package/lib/private/route/Handler.d.ts +1 -1
  62. package/lib/private/route/NarrowedRequest.d.ts +6 -1
  63. package/lib/private/route/Options.d.ts +2 -1
  64. package/lib/private/route/hook.d.ts +1 -2
  65. package/lib/private/route/router.d.ts +9 -9
  66. package/lib/private/route/router.js +9 -0
  67. package/lib/private/route.client.d.ts +20 -4
  68. package/lib/private/route.client.js +7 -3
  69. package/lib/private/route.d.ts +3 -0
  70. package/lib/private/route.js +2 -0
  71. package/lib/private/serve/App.d.ts +2 -13
  72. package/lib/private/serve/App.js +63 -46
  73. package/lib/private/serve/Init.d.ts +0 -3
  74. package/lib/private/server/TAG.d.ts +1 -1
  75. package/lib/private/session/{index.client.d.ts → config.client.d.ts} +1 -1
  76. package/lib/private/session/{index.client.js → config.client.js} +1 -1
  77. package/lib/private/session/config.server.d.ts +15 -0
  78. package/lib/private/session/config.server.js +44 -0
  79. package/lib/private/session/index.d.ts +2 -14
  80. package/lib/private/session/index.js +2 -43
  81. package/lib/private/session/module.js +1 -1
  82. package/lib/private/session/schema.d.ts +5 -5
  83. package/lib/private/store/PrimaryKey.d.ts +1 -1
  84. package/lib/private/store.client.d.ts +2 -0
  85. package/lib/private/store.d.ts +2 -0
  86. package/lib/private/target/Manager.d.ts +2 -0
  87. package/lib/private/target/Manager.js +29 -5
  88. package/lib/private/target/Target.d.ts +2 -0
  89. package/lib/public/i18n.d.ts +3 -0
  90. package/lib/public/{i18n/config.js → i18n.js} +1 -1
  91. package/lib/public/loader.d.ts +2 -0
  92. package/lib/public/loader.js +2 -0
  93. package/lib/public/response.d.ts +1 -1
  94. package/lib/public/{session/config.d.ts → session.d.ts} +1 -1
  95. package/lib/public/{session/config.js → session.js} +1 -1
  96. package/package.json +27 -18
  97. package/lib/private/app/Facade.browser.d.ts +0 -11
  98. package/lib/private/app/Facade.browser.js +0 -19
  99. package/lib/private/build/server/plugin/store.d.ts +0 -4
  100. package/lib/private/build/server/plugin/store.js +0 -25
  101. package/lib/private/build/server/plugin/stores.d.ts +0 -4
  102. package/lib/private/build/server/plugin/stores.js +0 -28
  103. package/lib/private/i18n/index/client.d.ts +0 -9
  104. package/lib/private/i18n/index/client.js +0 -152
  105. package/lib/private/i18n/index/server.d.ts +0 -9
  106. package/lib/private/i18n/symbol/internal.d.ts +0 -3
  107. package/lib/private/i18n/symbol/internal.js +0 -3
  108. package/lib/public/i18n/API.d.ts +0 -2
  109. package/lib/public/i18n/API.js +0 -2
  110. package/lib/public/i18n/Catalogs.d.ts +0 -2
  111. package/lib/public/i18n/Catalogs.js +0 -2
  112. package/lib/public/i18n/ContextData.d.ts +0 -2
  113. package/lib/public/i18n/ContextData.js +0 -2
  114. package/lib/public/i18n/config.d.ts +0 -2
  115. package/lib/public/i18n/locale.d.ts +0 -2
  116. package/lib/public/i18n/locale.js +0 -2
  117. package/lib/public/i18n/sInternal.d.ts +0 -2
  118. package/lib/public/i18n/sInternal.js +0 -2
  119. package/lib/public/route/hook.d.ts +0 -2
  120. package/lib/public/route/hook.js +0 -2
  121. package/lib/public/session/config.client.d.ts +0 -2
  122. package/lib/public/session/config.client.js +0 -2
  123. /package/lib/private/i18n/{index/types.d.ts → types.d.ts} +0 -0
  124. /package/lib/private/i18n/{index/types.js → types.js} +0 -0
@@ -0,0 +1,30 @@
1
+ import create_i18n from "#i18n/config";
2
+ import missing_i18n from "#i18n/missing";
3
+ /**
4
+ * Browser stub for AppFacade.
5
+ * env/config/root/log must never expose server-only data to clients.
6
+ */
7
+ export default class AppFacade {
8
+ #i18n;
9
+ constructor(config) {
10
+ this.#i18n = (config.i18n === undefined
11
+ ? missing_i18n()
12
+ : create_i18n(config.i18n));
13
+ }
14
+ get i18n() {
15
+ return this.#i18n;
16
+ }
17
+ config(_path) {
18
+ throw new Error("AppFacade.config() is not available in the browser");
19
+ }
20
+ env(_key) {
21
+ throw new Error("AppFacade.env() is server-only. Do not call env() in frontend/browser code.");
22
+ }
23
+ get root() {
24
+ throw new Error("AppFacade.root is not available in the browser");
25
+ }
26
+ get log() {
27
+ throw new Error("AppFacade.log is not available in the browser");
28
+ }
29
+ }
30
+ //# sourceMappingURL=Facade.client.js.map
@@ -1,12 +1,14 @@
1
1
  import type EnvSchema from "#app/EnvSchema";
2
- import type ServerView from "#client/ServerView";
3
2
  import type Config from "#config/Config";
3
+ import create_i18n from "#i18n/config";
4
+ import type I18NConfig from "#i18n/Config";
4
5
  import type ServeApp from "#serve/App";
5
6
  import type { ObjectType } from "pema";
6
7
  declare const s_attach: unique symbol;
7
8
  declare const s_config: unique symbol;
8
9
  export { s_attach, s_config };
9
- export default class AppFacade<T extends EnvSchema = EnvSchema> {
10
+ type I18NRuntime<I extends I18NConfig | undefined> = I extends I18NConfig<infer C> ? ReturnType<typeof create_i18n<C>> : ReturnType<typeof create_i18n>;
11
+ export default class AppFacade<T extends EnvSchema = EnvSchema, I extends I18NConfig | undefined = undefined> {
10
12
  #private;
11
13
  constructor(config: Config);
12
14
  [s_attach](app: ServeApp): void;
@@ -18,8 +20,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
18
20
  host: string;
19
21
  port: number;
20
22
  ssl: {
21
- cert: string | import("@rcompat/fs").FileRef | undefined;
22
- key: string | import("@rcompat/fs").FileRef | undefined;
23
+ cert: string | undefined;
24
+ key: string | undefined;
23
25
  };
24
26
  static: {
25
27
  root: string;
@@ -37,13 +39,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
37
39
  } | undefined;
38
40
  };
39
41
  env: {
40
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
42
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
41
43
  [x: string]: unknown;
42
44
  }> | undefined;
43
45
  };
46
+ i18n: I18NConfig | undefined;
47
+ loaders: Record<string, "file"> | undefined;
48
+ entrypoints: Record<string, string> | undefined;
44
49
  modules: import("../Module.js").default[];
45
50
  };
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<{
51
+ get i18n(): I18NRuntime<I>;
52
+ config<P extends string>(path: P): P extends `${infer P1}.${infer Rest}` ? P1 extends "conditions" | "db" | "entrypoints" | "env" | "http" | "i18n" | "livereload" | "loaders" | "modules" ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<{
47
53
  conditions: string[];
48
54
  http: {
49
55
  csp: Record<string, string[]> | undefined;
@@ -51,8 +57,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
51
57
  host: string;
52
58
  port: number;
53
59
  ssl: {
54
- cert: string | import("@rcompat/fs").FileRef | undefined;
55
- key: string | import("@rcompat/fs").FileRef | undefined;
60
+ cert: string | undefined;
61
+ key: string | undefined;
56
62
  };
57
63
  static: {
58
64
  root: string;
@@ -70,10 +76,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
70
76
  } | undefined;
71
77
  };
72
78
  env: {
73
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
79
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
74
80
  [x: string]: unknown;
75
81
  }> | undefined;
76
82
  };
83
+ i18n: I18NConfig | undefined;
84
+ loaders: Record<string, "file"> | undefined;
85
+ entrypoints: Record<string, string> | undefined;
77
86
  modules: import("../Module.js").default[];
78
87
  }[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<{
79
88
  conditions: string[];
@@ -83,8 +92,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
83
92
  host: string;
84
93
  port: number;
85
94
  ssl: {
86
- cert: string | import("@rcompat/fs").FileRef | undefined;
87
- key: string | import("@rcompat/fs").FileRef | undefined;
95
+ cert: string | undefined;
96
+ key: string | undefined;
88
97
  };
89
98
  static: {
90
99
  root: string;
@@ -102,10 +111,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
102
111
  } | undefined;
103
112
  };
104
113
  env: {
105
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
114
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
106
115
  [x: string]: unknown;
107
116
  }> | undefined;
108
117
  };
118
+ i18n: I18NConfig | undefined;
119
+ loaders: Record<string, "file"> | undefined;
120
+ entrypoints: Record<string, string> | undefined;
109
121
  modules: import("../Module.js").default[];
110
122
  }[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<{
111
123
  conditions: string[];
@@ -115,8 +127,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
115
127
  host: string;
116
128
  port: number;
117
129
  ssl: {
118
- cert: string | import("@rcompat/fs").FileRef | undefined;
119
- key: string | import("@rcompat/fs").FileRef | undefined;
130
+ cert: string | undefined;
131
+ key: string | undefined;
120
132
  };
121
133
  static: {
122
134
  root: string;
@@ -134,10 +146,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
134
146
  } | undefined;
135
147
  };
136
148
  env: {
137
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
149
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
138
150
  [x: string]: unknown;
139
151
  }> | undefined;
140
152
  };
153
+ i18n: I18NConfig | undefined;
154
+ loaders: Record<string, "file"> | undefined;
155
+ entrypoints: Record<string, string> | undefined;
141
156
  modules: import("../Module.js").default[];
142
157
  }[P1], undefined>[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<Exclude<{
143
158
  conditions: string[];
@@ -147,8 +162,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
147
162
  host: string;
148
163
  port: number;
149
164
  ssl: {
150
- cert: string | import("@rcompat/fs").FileRef | undefined;
151
- key: string | import("@rcompat/fs").FileRef | undefined;
165
+ cert: string | undefined;
166
+ key: string | undefined;
152
167
  };
153
168
  static: {
154
169
  root: string;
@@ -166,10 +181,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
166
181
  } | undefined;
167
182
  };
168
183
  env: {
169
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
184
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
170
185
  [x: string]: unknown;
171
186
  }> | undefined;
172
187
  };
188
+ i18n: I18NConfig | undefined;
189
+ loaders: Record<string, "file"> | undefined;
190
+ entrypoints: Record<string, string> | undefined;
173
191
  modules: import("../Module.js").default[];
174
192
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? (Rest extends `${infer P1}.${infer Rest}` ? P1 extends keyof Exclude<Exclude<Exclude<Exclude<Exclude<{
175
193
  conditions: string[];
@@ -179,8 +197,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
179
197
  host: string;
180
198
  port: number;
181
199
  ssl: {
182
- cert: string | import("@rcompat/fs").FileRef | undefined;
183
- key: string | import("@rcompat/fs").FileRef | undefined;
200
+ cert: string | undefined;
201
+ key: string | undefined;
184
202
  };
185
203
  static: {
186
204
  root: string;
@@ -198,10 +216,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
198
216
  } | undefined;
199
217
  };
200
218
  env: {
201
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
219
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
202
220
  [x: string]: unknown;
203
221
  }> | undefined;
204
222
  };
223
+ i18n: I18NConfig | undefined;
224
+ loaders: Record<string, "file"> | undefined;
225
+ entrypoints: Record<string, string> | undefined;
205
226
  modules: import("../Module.js").default[];
206
227
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? unknown : undefined : Rest extends keyof Exclude<Exclude<Exclude<Exclude<Exclude<{
207
228
  conditions: string[];
@@ -211,8 +232,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
211
232
  host: string;
212
233
  port: number;
213
234
  ssl: {
214
- cert: string | import("@rcompat/fs").FileRef | undefined;
215
- key: string | import("@rcompat/fs").FileRef | undefined;
235
+ cert: string | undefined;
236
+ key: string | undefined;
216
237
  };
217
238
  static: {
218
239
  root: string;
@@ -230,10 +251,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
230
251
  } | undefined;
231
252
  };
232
253
  env: {
233
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
254
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
234
255
  [x: string]: unknown;
235
256
  }> | undefined;
236
257
  };
258
+ i18n: I18NConfig | undefined;
259
+ loaders: Record<string, "file"> | undefined;
260
+ entrypoints: Record<string, string> | undefined;
237
261
  modules: import("../Module.js").default[];
238
262
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<Exclude<Exclude<{
239
263
  conditions: string[];
@@ -243,8 +267,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
243
267
  host: string;
244
268
  port: number;
245
269
  ssl: {
246
- cert: string | import("@rcompat/fs").FileRef | undefined;
247
- key: string | import("@rcompat/fs").FileRef | undefined;
270
+ cert: string | undefined;
271
+ key: string | undefined;
248
272
  };
249
273
  static: {
250
274
  root: string;
@@ -262,10 +286,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
262
286
  } | undefined;
263
287
  };
264
288
  env: {
265
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
289
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
266
290
  [x: string]: unknown;
267
291
  }> | undefined;
268
292
  };
293
+ i18n: I18NConfig | undefined;
294
+ loaders: Record<string, "file"> | undefined;
295
+ entrypoints: Record<string, string> | undefined;
269
296
  modules: import("../Module.js").default[];
270
297
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<Exclude<Exclude<{
271
298
  conditions: string[];
@@ -275,8 +302,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
275
302
  host: string;
276
303
  port: number;
277
304
  ssl: {
278
- cert: string | import("@rcompat/fs").FileRef | undefined;
279
- key: string | import("@rcompat/fs").FileRef | undefined;
305
+ cert: string | undefined;
306
+ key: string | undefined;
280
307
  };
281
308
  static: {
282
309
  root: string;
@@ -294,10 +321,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
294
321
  } | undefined;
295
322
  };
296
323
  env: {
297
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
324
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
298
325
  [x: string]: unknown;
299
326
  }> | undefined;
300
327
  };
328
+ i18n: I18NConfig | undefined;
329
+ loaders: Record<string, "file"> | undefined;
330
+ entrypoints: Record<string, string> | undefined;
301
331
  modules: import("../Module.js").default[];
302
332
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<Exclude<Exclude<{
303
333
  conditions: string[];
@@ -307,8 +337,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
307
337
  host: string;
308
338
  port: number;
309
339
  ssl: {
310
- cert: string | import("@rcompat/fs").FileRef | undefined;
311
- key: string | import("@rcompat/fs").FileRef | undefined;
340
+ cert: string | undefined;
341
+ key: string | undefined;
312
342
  };
313
343
  static: {
314
344
  root: string;
@@ -326,10 +356,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
326
356
  } | undefined;
327
357
  };
328
358
  env: {
329
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
359
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
330
360
  [x: string]: unknown;
331
361
  }> | undefined;
332
362
  };
363
+ i18n: I18NConfig | undefined;
364
+ loaders: Record<string, "file"> | undefined;
365
+ entrypoints: Record<string, string> | undefined;
333
366
  modules: import("../Module.js").default[];
334
367
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<Exclude<{
335
368
  conditions: string[];
@@ -339,8 +372,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
339
372
  host: string;
340
373
  port: number;
341
374
  ssl: {
342
- cert: string | import("@rcompat/fs").FileRef | undefined;
343
- key: string | import("@rcompat/fs").FileRef | undefined;
375
+ cert: string | undefined;
376
+ key: string | undefined;
344
377
  };
345
378
  static: {
346
379
  root: string;
@@ -358,10 +391,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
358
391
  } | undefined;
359
392
  };
360
393
  env: {
361
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
394
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
362
395
  [x: string]: unknown;
363
396
  }> | undefined;
364
397
  };
398
+ i18n: I18NConfig | undefined;
399
+ loaders: Record<string, "file"> | undefined;
400
+ entrypoints: Record<string, string> | undefined;
365
401
  modules: import("../Module.js").default[];
366
402
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<Exclude<{
367
403
  conditions: string[];
@@ -371,8 +407,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
371
407
  host: string;
372
408
  port: number;
373
409
  ssl: {
374
- cert: string | import("@rcompat/fs").FileRef | undefined;
375
- key: string | import("@rcompat/fs").FileRef | undefined;
410
+ cert: string | undefined;
411
+ key: string | undefined;
376
412
  };
377
413
  static: {
378
414
  root: string;
@@ -390,10 +426,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
390
426
  } | undefined;
391
427
  };
392
428
  env: {
393
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
429
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
394
430
  [x: string]: unknown;
395
431
  }> | undefined;
396
432
  };
433
+ i18n: I18NConfig | undefined;
434
+ loaders: Record<string, "file"> | undefined;
435
+ entrypoints: Record<string, string> | undefined;
397
436
  modules: import("../Module.js").default[];
398
437
  }[P1], undefined>[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<Exclude<{
399
438
  conditions: string[];
@@ -403,8 +442,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
403
442
  host: string;
404
443
  port: number;
405
444
  ssl: {
406
- cert: string | import("@rcompat/fs").FileRef | undefined;
407
- key: string | import("@rcompat/fs").FileRef | undefined;
445
+ cert: string | undefined;
446
+ key: string | undefined;
408
447
  };
409
448
  static: {
410
449
  root: string;
@@ -422,10 +461,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
422
461
  } | undefined;
423
462
  };
424
463
  env: {
425
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
464
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
426
465
  [x: string]: unknown;
427
466
  }> | undefined;
428
467
  };
468
+ i18n: I18NConfig | undefined;
469
+ loaders: Record<string, "file"> | undefined;
470
+ entrypoints: Record<string, string> | undefined;
429
471
  modules: import("../Module.js").default[];
430
472
  }[P1], undefined>[P1], undefined>[P1], undefined> ? Exclude<Exclude<Exclude<{
431
473
  conditions: string[];
@@ -435,8 +477,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
435
477
  host: string;
436
478
  port: number;
437
479
  ssl: {
438
- cert: string | import("@rcompat/fs").FileRef | undefined;
439
- key: string | import("@rcompat/fs").FileRef | undefined;
480
+ cert: string | undefined;
481
+ key: string | undefined;
440
482
  };
441
483
  static: {
442
484
  root: string;
@@ -454,10 +496,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
454
496
  } | undefined;
455
497
  };
456
498
  env: {
457
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
499
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
458
500
  [x: string]: unknown;
459
501
  }> | undefined;
460
502
  };
503
+ i18n: I18NConfig | undefined;
504
+ loaders: Record<string, "file"> | undefined;
505
+ entrypoints: Record<string, string> | undefined;
461
506
  modules: import("../Module.js").default[];
462
507
  }[P1], undefined>[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<Exclude<{
463
508
  conditions: string[];
@@ -467,8 +512,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
467
512
  host: string;
468
513
  port: number;
469
514
  ssl: {
470
- cert: string | import("@rcompat/fs").FileRef | undefined;
471
- key: string | import("@rcompat/fs").FileRef | undefined;
515
+ cert: string | undefined;
516
+ key: string | undefined;
472
517
  };
473
518
  static: {
474
519
  root: string;
@@ -486,10 +531,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
486
531
  } | undefined;
487
532
  };
488
533
  env: {
489
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
534
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
490
535
  [x: string]: unknown;
491
536
  }> | undefined;
492
537
  };
538
+ i18n: I18NConfig | undefined;
539
+ loaders: Record<string, "file"> | undefined;
540
+ entrypoints: Record<string, string> | undefined;
493
541
  modules: import("../Module.js").default[];
494
542
  }[P1], undefined>[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<Exclude<{
495
543
  conditions: string[];
@@ -499,8 +547,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
499
547
  host: string;
500
548
  port: number;
501
549
  ssl: {
502
- cert: string | import("@rcompat/fs").FileRef | undefined;
503
- key: string | import("@rcompat/fs").FileRef | undefined;
550
+ cert: string | undefined;
551
+ key: string | undefined;
504
552
  };
505
553
  static: {
506
554
  root: string;
@@ -518,10 +566,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
518
566
  } | undefined;
519
567
  };
520
568
  env: {
521
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
569
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
522
570
  [x: string]: unknown;
523
571
  }> | undefined;
524
572
  };
573
+ i18n: I18NConfig | undefined;
574
+ loaders: Record<string, "file"> | undefined;
575
+ entrypoints: Record<string, string> | undefined;
525
576
  modules: import("../Module.js").default[];
526
577
  }[P1], undefined>[P1], undefined> ? Exclude<Exclude<{
527
578
  conditions: string[];
@@ -531,8 +582,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
531
582
  host: string;
532
583
  port: number;
533
584
  ssl: {
534
- cert: string | import("@rcompat/fs").FileRef | undefined;
535
- key: string | import("@rcompat/fs").FileRef | undefined;
585
+ cert: string | undefined;
586
+ key: string | undefined;
536
587
  };
537
588
  static: {
538
589
  root: string;
@@ -550,10 +601,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
550
601
  } | undefined;
551
602
  };
552
603
  env: {
553
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
604
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
554
605
  [x: string]: unknown;
555
606
  }> | undefined;
556
607
  };
608
+ i18n: I18NConfig | undefined;
609
+ loaders: Record<string, "file"> | undefined;
610
+ entrypoints: Record<string, string> | undefined;
557
611
  modules: import("../Module.js").default[];
558
612
  }[P1], undefined>[P1], undefined>[Rest] : undefined) | (Exclude<{
559
613
  conditions: string[];
@@ -563,8 +617,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
563
617
  host: string;
564
618
  port: number;
565
619
  ssl: {
566
- cert: string | import("@rcompat/fs").FileRef | undefined;
567
- key: string | import("@rcompat/fs").FileRef | undefined;
620
+ cert: string | undefined;
621
+ key: string | undefined;
568
622
  };
569
623
  static: {
570
624
  root: string;
@@ -582,10 +636,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
582
636
  } | undefined;
583
637
  };
584
638
  env: {
585
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
639
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
586
640
  [x: string]: unknown;
587
641
  }> | undefined;
588
642
  };
643
+ i18n: I18NConfig | undefined;
644
+ loaders: Record<string, "file"> | undefined;
645
+ entrypoints: Record<string, string> | undefined;
589
646
  modules: import("../Module.js").default[];
590
647
  }[P1], undefined>[P1] & undefined) : undefined : Rest extends keyof Exclude<{
591
648
  conditions: string[];
@@ -595,8 +652,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
595
652
  host: string;
596
653
  port: number;
597
654
  ssl: {
598
- cert: string | import("@rcompat/fs").FileRef | undefined;
599
- key: string | import("@rcompat/fs").FileRef | undefined;
655
+ cert: string | undefined;
656
+ key: string | undefined;
600
657
  };
601
658
  static: {
602
659
  root: string;
@@ -614,10 +671,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
614
671
  } | undefined;
615
672
  };
616
673
  env: {
617
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
674
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
618
675
  [x: string]: unknown;
619
676
  }> | undefined;
620
677
  };
678
+ i18n: I18NConfig | undefined;
679
+ loaders: Record<string, "file"> | undefined;
680
+ entrypoints: Record<string, string> | undefined;
621
681
  modules: import("../Module.js").default[];
622
682
  }[P1], undefined> ? Exclude<{
623
683
  conditions: string[];
@@ -627,8 +687,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
627
687
  host: string;
628
688
  port: number;
629
689
  ssl: {
630
- cert: string | import("@rcompat/fs").FileRef | undefined;
631
- key: string | import("@rcompat/fs").FileRef | undefined;
690
+ cert: string | undefined;
691
+ key: string | undefined;
632
692
  };
633
693
  static: {
634
694
  root: string;
@@ -646,10 +706,13 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
646
706
  } | undefined;
647
707
  };
648
708
  env: {
649
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
709
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
650
710
  [x: string]: unknown;
651
711
  }> | undefined;
652
712
  };
713
+ i18n: I18NConfig | undefined;
714
+ loaders: Record<string, "file"> | undefined;
715
+ entrypoints: Record<string, string> | undefined;
653
716
  modules: import("../Module.js").default[];
654
717
  }[P1], undefined>[Rest] : undefined) | ({
655
718
  conditions: string[];
@@ -659,8 +722,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
659
722
  host: string;
660
723
  port: number;
661
724
  ssl: {
662
- cert: string | import("@rcompat/fs").FileRef | undefined;
663
- key: string | import("@rcompat/fs").FileRef | undefined;
725
+ cert: string | undefined;
726
+ key: string | undefined;
664
727
  };
665
728
  static: {
666
729
  root: string;
@@ -678,12 +741,15 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
678
741
  } | undefined;
679
742
  };
680
743
  env: {
681
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
744
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
682
745
  [x: string]: unknown;
683
746
  }> | undefined;
684
747
  };
748
+ i18n: I18NConfig | undefined;
749
+ loaders: Record<string, "file"> | undefined;
750
+ entrypoints: Record<string, string> | undefined;
685
751
  modules: import("../Module.js").default[];
686
- }[P1] & undefined) : undefined : P extends "http" | "livereload" | "db" | "env" | "conditions" | "modules" ? {
752
+ }[P1] & undefined) : undefined : P extends "conditions" | "db" | "entrypoints" | "env" | "http" | "i18n" | "livereload" | "loaders" | "modules" ? {
687
753
  conditions: string[];
688
754
  http: {
689
755
  csp: Record<string, string[]> | undefined;
@@ -691,8 +757,8 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
691
757
  host: string;
692
758
  port: number;
693
759
  ssl: {
694
- cert: string | import("@rcompat/fs").FileRef | undefined;
695
- key: string | import("@rcompat/fs").FileRef | undefined;
760
+ cert: string | undefined;
761
+ key: string | undefined;
696
762
  };
697
763
  static: {
698
764
  root: string;
@@ -710,14 +776,17 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
710
776
  } | undefined;
711
777
  };
712
778
  env: {
713
- schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, {
779
+ schema: ObjectType<import("@rcompat/type").Dict<import("pema").Parsed<unknown>>, undefined, {
714
780
  [x: string]: unknown;
715
781
  }> | undefined;
716
782
  };
783
+ i18n: I18NConfig | undefined;
784
+ loaders: Record<string, "file"> | undefined;
785
+ entrypoints: Record<string, string> | undefined;
717
786
  modules: import("../Module.js").default[];
718
787
  }[P] : undefined;
719
788
  env<K extends keyof T>(key: K): T[K]["infer"];
720
- view<SV = ServerView>(name: string): SV;
789
+ get views(): import("../Bag.js").default;
721
790
  get root(): import("@rcompat/fs").FileRef;
722
791
  get log(): {
723
792
  readonly level: string;
@@ -729,4 +798,4 @@ export default class AppFacade<T extends EnvSchema = EnvSchema> {
729
798
  error(error: unknown): void;
730
799
  };
731
800
  }
732
- //# sourceMappingURL=Facade.d.ts.map
801
+ //# sourceMappingURL=Facade.server.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import E from "#errors";
2
+ import create_i18n from "#i18n/config";
3
+ import missing_i18n from "#i18n/missing";
2
4
  import dict from "@rcompat/dict";
3
5
  import env from "@rcompat/env";
4
6
  import ParseError from "pema/ParseError";
@@ -9,8 +11,12 @@ export default class AppFacade {
9
11
  #config;
10
12
  #app;
11
13
  #env;
14
+ #i18n;
12
15
  constructor(config) {
13
16
  this.#config = config;
17
+ this.#i18n = (config.i18n === undefined
18
+ ? missing_i18n()
19
+ : create_i18n(config.i18n));
14
20
  }
15
21
  [s_attach](app) {
16
22
  this.#app = app;
@@ -29,6 +35,9 @@ export default class AppFacade {
29
35
  get [s_config]() {
30
36
  return this.#config;
31
37
  }
38
+ get i18n() {
39
+ return this.#i18n;
40
+ }
32
41
  config(path) {
33
42
  return dict.get(this.#config, path);
34
43
  }
@@ -45,10 +54,9 @@ export default class AppFacade {
45
54
  throw new Error("ServeApp not bound yet (used too early)");
46
55
  return this.#app;
47
56
  }
48
- view(name) {
49
- return this.#with.loadView(name);
57
+ get views() {
58
+ return this.#with.views;
50
59
  }
51
- ;
52
60
  get root() {
53
61
  return this.#with.root;
54
62
  }
@@ -56,4 +64,4 @@ export default class AppFacade {
56
64
  return this.#with.log;
57
65
  }
58
66
  }
59
- //# sourceMappingURL=Facade.js.map
67
+ //# sourceMappingURL=Facade.server.js.map