@fougere/nuxt 0.12.4-alpha.0 → 0.12.6-alpha.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.
- package/dist/module.d.ts +3 -2
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +48 -30
- package/dist/module.js.map +1 -1
- package/dist/runtime/server/api/crud.js +2 -1
- package/dist/runtime/server/api/crud.js.map +1 -1
- package/dist/runtime/server/auth/routes/auth/[...].js +5 -3
- package/dist/runtime/server/auth/routes/auth/[...].js.map +1 -1
- package/dist/runtime/server/routes/call.post.js +9 -8
- package/dist/runtime/server/routes/call.post.js.map +1 -1
- package/dist/runtime/server/routes/graphql.post.d.ts +3 -0
- package/dist/runtime/server/routes/graphql.post.d.ts.map +1 -0
- package/dist/runtime/server/routes/graphql.post.js +17 -0
- package/dist/runtime/server/routes/graphql.post.js.map +1 -0
- package/dist/runtime/server/stateOf.d.ts +8 -0
- package/dist/runtime/server/stateOf.d.ts.map +1 -0
- package/dist/runtime/server/stateOf.js +14 -0
- package/dist/runtime/server/stateOf.js.map +1 -0
- package/package.json +12 -6
- package/src/module.ts +50 -30
- package/src/runtime/server/api/crud.ts +2 -1
- package/src/runtime/server/auth/routes/auth/[...].ts +4 -3
- package/src/runtime/server/routes/call.post.ts +9 -8
- package/src/runtime/server/routes/graphql.post.ts +20 -0
- package/src/runtime/server/stateOf.ts +16 -0
package/dist/module.d.ts
CHANGED
|
@@ -35,8 +35,9 @@ statedPath?: string,
|
|
|
35
35
|
*/
|
|
36
36
|
root?: string,
|
|
37
37
|
/**
|
|
38
|
-
* The config files `
|
|
39
|
-
*
|
|
38
|
+
* The config files `fronds:` may come from, the app's first. A module key's options may hold
|
|
39
|
+
* a class — `user: User` for `@fougere/auth-better` — which the config's JSON cannot carry,
|
|
40
|
+
* so the plugin imports the file and hands its `fronds` over as written.
|
|
40
41
|
*/
|
|
41
42
|
configFiles?: readonly string[]): string;
|
|
42
43
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9D,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAChD,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;CACzC;AAKD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,CAI/F;AASD,QAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9D,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAChD,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;CACzC;AAKD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,CAI/F;AASD,QAAA,MAAM,MAAM,sFAiSV,CAAC;eAEY,MAAM;AAkDrB,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,SAAS,EAAE,EAClB,cAAc,EAAE,MAAM;AACtB,sFAAsF;AACtF,UAAU,GAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAO;AACpD,wFAAwF;AACxF,UAAU,CAAC,EAAE,MAAM;AACnB;;;;GAIG;AACH,IAAI,CAAC,EAAE,MAAM;AACb;;;;GAIG;AACH,WAAW,GAAE,SAAS,MAAM,EAAO,GAClC,MAAM,CA8IR"}
|
package/dist/module.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { defineNuxtModule, addServerHandler, addServerImportsDir, addServerPlugin, addPlugin, addTemplate, addImports, createResolver, useLogger, } from '@nuxt/kit';
|
|
3
3
|
import { orderSeeds } from '@fougere/core';
|
|
4
4
|
import { scanProject, emitStatement, emitFacade, emitNames, frondAliases, watchPathsOf } from '@fougere/compiler';
|
|
5
|
-
import { frondPackage, resolveConventions } from '@fougere/core';
|
|
5
|
+
import { frondPackage, resolveConventions, statedFronds, statesModule } from '@fougere/core';
|
|
6
6
|
import { configFileIn, setModuleLoader, loadCascadedConfig, remotesOf } from '@fougere/core/node';
|
|
7
7
|
import { declaresStorage } from '@fougere/defaults';
|
|
8
8
|
import { createJiti } from 'jiti';
|
|
@@ -79,7 +79,7 @@ const module = defineNuxtModule({
|
|
|
79
79
|
// the workspace when the app declares `root`); module options override. ──
|
|
80
80
|
const fileConfig = await loadCascadedConfig(scanRoot, rootDir);
|
|
81
81
|
const optionsOverride = Object.fromEntries(Object.entries(options).filter(([, v]) => v !== undefined));
|
|
82
|
-
const config = {
|
|
82
|
+
const config = { ...fileConfig, ...optionsOverride };
|
|
83
83
|
// Nitro replaces `console` with consola, whose own threshold sits at `info` — and a
|
|
84
84
|
// Logger line at `debug` goes out through `console.debug`, which consola then drops.
|
|
85
85
|
// Measured: the level was `debug`, the boot logged nothing, and the silence read as
|
|
@@ -197,26 +197,32 @@ const module = defineNuxtModule({
|
|
|
197
197
|
route: '/api/**',
|
|
198
198
|
handler: runtimeResolve('server/api/crud'),
|
|
199
199
|
});
|
|
200
|
-
|
|
201
|
-
//
|
|
202
|
-
if (config.
|
|
203
|
-
// Session middleware — resolves user on every request
|
|
204
|
-
addServerHandler({
|
|
205
|
-
middleware: true,
|
|
206
|
-
handler: runtimeResolve('server/auth/middleware/auth'),
|
|
207
|
-
});
|
|
208
|
-
// Auth catch-all route (login, register, callback, etc.)
|
|
209
|
-
addServerHandler({
|
|
210
|
-
route: '/auth/**',
|
|
211
|
-
handler: runtimeResolve('server/auth/routes/auth/[...]'),
|
|
212
|
-
});
|
|
213
|
-
// /api/me — current user endpoint
|
|
200
|
+
// What `adapters: { graphql: true }` publishes — Express mounted it, and here it was
|
|
201
|
+
// ignored without a word.
|
|
202
|
+
if (config.adapters?.graphql) {
|
|
214
203
|
addServerHandler({
|
|
215
|
-
route: '/
|
|
216
|
-
method: '
|
|
217
|
-
handler: runtimeResolve('server/
|
|
204
|
+
route: '/graphql',
|
|
205
|
+
method: 'post',
|
|
206
|
+
handler: runtimeResolve('server/routes/graphql.post'),
|
|
218
207
|
});
|
|
219
208
|
}
|
|
209
|
+
addServerImportsDir(runtimeResolve('server/utils'));
|
|
210
|
+
// ── 5b. Auth — mounted always, answered only where a frond brought the engine ──
|
|
211
|
+
// Whether one did is known once the app is up: the auth is a frond, and `only:` or a
|
|
212
|
+
// placement decides which process serves it, not this build.
|
|
213
|
+
addServerHandler({
|
|
214
|
+
middleware: true,
|
|
215
|
+
handler: runtimeResolve('server/auth/middleware/auth'),
|
|
216
|
+
});
|
|
217
|
+
addServerHandler({
|
|
218
|
+
route: '/auth/**',
|
|
219
|
+
handler: runtimeResolve('server/auth/routes/auth/[...]'),
|
|
220
|
+
});
|
|
221
|
+
addServerHandler({
|
|
222
|
+
route: '/api/me',
|
|
223
|
+
method: 'get',
|
|
224
|
+
handler: runtimeResolve('server/auth/routes/api/me.get'),
|
|
225
|
+
});
|
|
220
226
|
// ── 6. What this app hosts ───
|
|
221
227
|
//
|
|
222
228
|
// A `fronds.ts` beside `fougere.config.ts` is the app STATING it — the same shape
|
|
@@ -275,7 +281,7 @@ const module = defineNuxtModule({
|
|
|
275
281
|
const bootTpl = addTemplate({
|
|
276
282
|
filename: 'fougere-boot.ts',
|
|
277
283
|
write: true,
|
|
278
|
-
getContents: () => generateBootPlugin(config, allSeeds, runtimeResolve('server/utils/boot'), extensionsOf(options), statedPath, scanRoot, config.
|
|
284
|
+
getContents: () => generateBootPlugin(config, allSeeds, runtimeResolve('server/utils/boot'), extensionsOf(options), statedPath, scanRoot, config.fronds ? configFilesOf(rootDir, scanRoot) : []),
|
|
279
285
|
});
|
|
280
286
|
addServerPlugin(bootTpl.dst);
|
|
281
287
|
},
|
|
@@ -339,8 +345,9 @@ statedPath,
|
|
|
339
345
|
*/
|
|
340
346
|
root,
|
|
341
347
|
/**
|
|
342
|
-
* The config files `
|
|
343
|
-
*
|
|
348
|
+
* The config files `fronds:` may come from, the app's first. A module key's options may hold
|
|
349
|
+
* a class — `user: User` for `@fougere/auth-better` — which the config's JSON cannot carry,
|
|
350
|
+
* so the plugin imports the file and hands its `fronds` over as written.
|
|
344
351
|
*/
|
|
345
352
|
configFiles = []) {
|
|
346
353
|
const lines = [];
|
|
@@ -358,8 +365,22 @@ configFiles = []) {
|
|
|
358
365
|
if (statedPath)
|
|
359
366
|
lines.push(`import fronds from '${statedPath.replace(/\.(m?)[jt]sx?$/, '')}';`);
|
|
360
367
|
configFiles.forEach((file, i) => lines.push(`import config_${i} from '${file.replace(/\.(m?)[jt]sx?$/, '')}';`));
|
|
361
|
-
const
|
|
362
|
-
const
|
|
368
|
+
const stated = configFiles.length > 0 ? `(${configFiles.map((_, i) => `config_${i}.fronds`).join(' ?? ')})` : undefined;
|
|
369
|
+
const configArg = stated ? `{ ...${JSON.stringify(carried(config))}, fronds: ${stated} }` : JSON.stringify(carried(config));
|
|
370
|
+
// A module key is imported by the BUNDLE, like a seed: nothing resolves a specifier once the
|
|
371
|
+
// app is built, and the loader core falls back to looks from its own directory.
|
|
372
|
+
const moduleKeys = statedFronds(config.fronds).map((entry) => entry.key).filter(statesModule);
|
|
373
|
+
if (moduleKeys.length > 0) {
|
|
374
|
+
lines.push(`import { getModuleLoader, setModuleLoader } from '@fougere/core/node';`);
|
|
375
|
+
moduleKeys.forEach((key, i) => {
|
|
376
|
+
const specifier = key.startsWith('.') ? resolve(root ?? '', key).replace(/\.(m?)[jt]sx?$/, '') : key;
|
|
377
|
+
lines.push(`import * as module_${i} from '${specifier}';`);
|
|
378
|
+
});
|
|
379
|
+
lines.push(`const modules = { ${moduleKeys.map((key, i) => `${JSON.stringify(key)}: module_${i}`).join(', ')} };`);
|
|
380
|
+
lines.push(`const loadModule = getModuleLoader();`);
|
|
381
|
+
lines.push(`setModuleLoader((id, options) => (id in modules ? Promise.resolve(modules[id]) : loadModule(id, options)));`);
|
|
382
|
+
}
|
|
383
|
+
const db = config.db;
|
|
363
384
|
const sources = config.sources;
|
|
364
385
|
// `declaresStorage` is the canonical reader of `db:` — asked, not re-interpreted.
|
|
365
386
|
// Reading `dialect` here made this codegen a SECOND reader, and the two disagreed:
|
|
@@ -374,8 +395,7 @@ configFiles = []) {
|
|
|
374
395
|
// Always configure, even with nothing to host: `hostedBy` is where the absence is
|
|
375
396
|
// answered, by name and with both keys. Skipping the call boots a silent app instead.
|
|
376
397
|
const states = statedPath ? 'fronds, ' : '';
|
|
377
|
-
|
|
378
|
-
lines.push(` configureFougere({ ${states}config: ${JSON.stringify(carried(config))}${extensions} });`);
|
|
398
|
+
lines.push(` configureFougere({ ${states}config: ${configArg} });`);
|
|
379
399
|
lines.push(`});`);
|
|
380
400
|
return lines.join('\n') + '\n';
|
|
381
401
|
}
|
|
@@ -406,7 +426,7 @@ configFiles = []) {
|
|
|
406
426
|
// Two unrelated facts had been sharing one failure. `remotes` rides along for the same
|
|
407
427
|
// reason: it is the whole of why a consumer that hosts nothing boots at all.
|
|
408
428
|
const states = statedPath ? 'fronds, ' : '';
|
|
409
|
-
lines.push(` configureFougere({ ${states}config: ${
|
|
429
|
+
lines.push(` configureFougere({ ${states}config: ${configArg} });`);
|
|
410
430
|
lines.push(``);
|
|
411
431
|
lines.push(` try {`);
|
|
412
432
|
// Pass `db` through unchanged — resolveStorage (@fougere/defaults → createSqliteSource)
|
|
@@ -421,7 +441,7 @@ configFiles = []) {
|
|
|
421
441
|
lines.push(` configureFougere({`);
|
|
422
442
|
if (statedPath)
|
|
423
443
|
lines.push(` fronds,`);
|
|
424
|
-
lines.push(` config: ${
|
|
444
|
+
lines.push(` config: ${configArg},`);
|
|
425
445
|
// The whole thing, not a hand-picked few of its members: the three this used to name
|
|
426
446
|
// left `transacted` and `close` behind, so a `Together` always compensated and the
|
|
427
447
|
// connection was never released — under Nuxt only, which is where the app really runs.
|
|
@@ -452,8 +472,6 @@ configFiles = []) {
|
|
|
452
472
|
for (const { key, options } of extensions) {
|
|
453
473
|
lines.push(` ${key}(${JSON.stringify(options ?? {})}),`);
|
|
454
474
|
}
|
|
455
|
-
if (auth)
|
|
456
|
-
lines.push(` ${auth},`);
|
|
457
475
|
lines.push(` ],`);
|
|
458
476
|
lines.push(` });`);
|
|
459
477
|
// A storage that could not be opened is REPORTED, never swallowed. Nitro takes a
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** REST catch-all — the h3 half of a facade whose decisions live in `@fougere/app`. */
|
|
2
2
|
import { defineEventHandler, readBody, getQuery, createError, setResponseStatus, setResponseHeaders } from 'h3';
|
|
3
3
|
import { serveRest, useFougereApp } from '@fougere/app';
|
|
4
|
+
import { stateOf } from '../stateOf.js';
|
|
4
5
|
export default defineEventHandler(async (event) => {
|
|
5
6
|
const app = await useFougereApp();
|
|
6
7
|
const method = event.method.toUpperCase();
|
|
@@ -10,7 +11,7 @@ export default defineEventHandler(async (event) => {
|
|
|
10
11
|
path: event.path.replace(/^\/api\//, '').replace(/\?.*$/, ''),
|
|
11
12
|
query: getQuery(event),
|
|
12
13
|
body: hasBody ? await readBody(event) : undefined,
|
|
13
|
-
state: (event
|
|
14
|
+
state: stateOf(event),
|
|
14
15
|
});
|
|
15
16
|
// Nothing here is ours — an app's own /api/* routes must still reach their handler.
|
|
16
17
|
if (outcome.kind === 'pass')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../src/runtime/server/api/crud.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAChH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../src/runtime/server/api/crud.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAChH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAe,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,CAAC;IAE5E,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;QACnC,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,KAAK,EAAE,QAAQ,CAAC,KAAK,CAA2B;QAChD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;KACtB,CAAC,CAAC;IAEH,oFAAoF;IACpF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO;IAEpC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,OAAO;YAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC;YAChB,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { defineEventHandler, toWebRequest, sendWebResponse } from 'h3';
|
|
2
|
-
import {
|
|
1
|
+
import { defineEventHandler, toWebRequest, sendWebResponse, createError } from 'h3';
|
|
2
|
+
import { authOf, useFougereApp } from '@fougere/app';
|
|
3
3
|
export default defineEventHandler(async (event) => {
|
|
4
|
-
const auth = await
|
|
4
|
+
const auth = authOf(await useFougereApp());
|
|
5
|
+
if (!auth)
|
|
6
|
+
throw createError({ statusCode: 404, message: 'No auth is served by this process' });
|
|
5
7
|
const webResponse = await auth.handler(toWebRequest(event));
|
|
6
8
|
return sendWebResponse(event, webResponse);
|
|
7
9
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"[...].js","sourceRoot":"","sources":["../../../../../../src/runtime/server/auth/routes/auth/[...].ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"[...].js","sourceRoot":"","sources":["../../../../../../src/runtime/server/auth/routes/auth/[...].ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAErD,eAAe,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,MAAM,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5D,OAAO,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
/** Receiving end for the browser — the h3 half. */
|
|
2
2
|
import { defineEventHandler } from 'h3';
|
|
3
3
|
import { serveRpc, rpcParseError, useFougereApp } from '@fougere/app';
|
|
4
|
-
import {
|
|
4
|
+
import { maxBodyBytes } from '@fougere/core';
|
|
5
|
+
import { stateOf } from '../stateOf.js';
|
|
5
6
|
function payloadTooLarge() {
|
|
6
7
|
return Object.assign(new Error('Payload too large'), { statusCode: 413, statusMessage: 'Payload too large' });
|
|
7
8
|
}
|
|
8
9
|
function parseRawJson(raw) {
|
|
9
|
-
if (Buffer.byteLength(raw) >
|
|
10
|
+
if (Buffer.byteLength(raw) > maxBodyBytes())
|
|
10
11
|
throw payloadTooLarge();
|
|
11
12
|
return raw ? JSON.parse(raw) : {};
|
|
12
13
|
}
|
|
13
14
|
async function readWebBody(req) {
|
|
14
15
|
const declaredLength = Number(req.headers?.get?.('content-length'));
|
|
15
|
-
if (Number.isFinite(declaredLength) && declaredLength >
|
|
16
|
+
if (Number.isFinite(declaredLength) && declaredLength > maxBodyBytes())
|
|
16
17
|
throw payloadTooLarge();
|
|
17
18
|
const reader = req.body?.getReader?.();
|
|
18
19
|
if (reader) {
|
|
@@ -24,7 +25,7 @@ async function readWebBody(req) {
|
|
|
24
25
|
break;
|
|
25
26
|
const chunk = Buffer.from(value ?? []);
|
|
26
27
|
size += chunk.length;
|
|
27
|
-
if (size >
|
|
28
|
+
if (size > maxBodyBytes()) {
|
|
28
29
|
await reader.cancel?.();
|
|
29
30
|
throw payloadTooLarge();
|
|
30
31
|
}
|
|
@@ -47,12 +48,12 @@ async function readJsonBody(event) {
|
|
|
47
48
|
const nodeReq = rawNodeReq && typeof rawNodeReq === 'object' ? rawNodeReq : undefined;
|
|
48
49
|
const preset = nodeReq?.body;
|
|
49
50
|
if (typeof preset === 'string') {
|
|
50
|
-
if (Buffer.byteLength(preset) >
|
|
51
|
+
if (Buffer.byteLength(preset) > maxBodyBytes())
|
|
51
52
|
throw payloadTooLarge();
|
|
52
53
|
return parseRawJson(preset);
|
|
53
54
|
}
|
|
54
55
|
if (preset instanceof Uint8Array) {
|
|
55
|
-
if (preset.byteLength >
|
|
56
|
+
if (preset.byteLength > maxBodyBytes())
|
|
56
57
|
throw payloadTooLarge();
|
|
57
58
|
const raw = Buffer.from(preset).toString('utf8');
|
|
58
59
|
return parseRawJson(raw);
|
|
@@ -71,7 +72,7 @@ async function readJsonBody(event) {
|
|
|
71
72
|
return;
|
|
72
73
|
const buffer = Buffer.from(chunk);
|
|
73
74
|
size += buffer.length;
|
|
74
|
-
if (size >
|
|
75
|
+
if (size > maxBodyBytes()) {
|
|
75
76
|
exceeded = true;
|
|
76
77
|
reject(payloadTooLarge());
|
|
77
78
|
return;
|
|
@@ -92,7 +93,7 @@ export default defineEventHandler(async (event) => {
|
|
|
92
93
|
return await serveRpc(app, {
|
|
93
94
|
path: event.path,
|
|
94
95
|
body: await readJsonBody(event),
|
|
95
|
-
state: (event
|
|
96
|
+
state: stateOf(event),
|
|
96
97
|
});
|
|
97
98
|
}
|
|
98
99
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.post.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/call.post.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"call.post.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/call.post.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAexC,SAAS,eAAe;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE;QAAE,MAAM,eAAe,EAAE,CAAC;IAErE,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW;IACpC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,YAAY,EAAE;QAAE,MAAM,eAAe,EAAE,CAAC;IAEhG,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,GAAG,YAAY,EAAE,EAAE,CAAC;gBAC1B,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxB,MAAM,eAAe,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,iFAAiF;IACjF,kFAAkF;IAClF,gEAAgE;IAChE,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IAEtD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8FAA8F;AAC9F,KAAK,UAAU,YAAY,CAAC,KAAkD;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,YAAY,EAAE;YAAE,MAAM,eAAe,EAAE,CAAC;QAExE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,EAAE;YAAE,MAAM,eAAe,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IACE,MAAM;WACH,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;QACrG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,EAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,IAAI,QAAQ;oBAAE,OAAO;gBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;gBACtB,IAAI,IAAI,GAAG,YAAY,EAAE,EAAE,CAAC;oBAC1B,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;oBAE1B,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,OAAO,CAAC,EAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,eAAe,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,MAAM,YAAY,CAAC,KAAK,CAAC;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA+B,EAAE,UAAU,KAAK,GAAG;YAAE,MAAM,GAAG,CAAC;QAEpE,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.post.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/routes/graphql.post.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** GraphQL, when the app declares `adapters: { graphql: true }` — the h3 half of `serveGraphQL`. */
|
|
2
|
+
import { defineEventHandler, readBody, createError, setResponseStatus } from 'h3';
|
|
3
|
+
import { serveGraphQL, useFougereApp } from '@fougere/app';
|
|
4
|
+
import { stateOf } from '../stateOf.js';
|
|
5
|
+
export default defineEventHandler(async (event) => {
|
|
6
|
+
const app = await useFougereApp();
|
|
7
|
+
const body = ((await readBody(event)) ?? {});
|
|
8
|
+
const outcome = await serveGraphQL(app, { ...body, state: stateOf(event) });
|
|
9
|
+
if (outcome.kind === 'pass')
|
|
10
|
+
return;
|
|
11
|
+
if (outcome.kind === 'error') {
|
|
12
|
+
throw createError({ statusCode: outcome.status, message: outcome.body.message, data: outcome.body });
|
|
13
|
+
}
|
|
14
|
+
setResponseStatus(event, outcome.status);
|
|
15
|
+
return outcome.body;
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=graphql.post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.post.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/graphql.post.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAe,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAoF,CAAC;IAChI,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE5E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO;IAEpC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { H3Event } from 'h3';
|
|
2
|
+
/**
|
|
3
|
+
* What a call carries of the request: the session the auth middleware put on the event, without
|
|
4
|
+
* its token, and nothing else of its context — the rest is Nitro's, and a call that crosses
|
|
5
|
+
* would carry it.
|
|
6
|
+
*/
|
|
7
|
+
export declare function stateOf(event: Pick<H3Event, 'context'>): Record<string, unknown>;
|
|
8
|
+
//# sourceMappingURL=stateOf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateOf.d.ts","sourceRoot":"","sources":["../../../src/runtime/server/stateOf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQhF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a call carries of the request: the session the auth middleware put on the event, without
|
|
3
|
+
* its token, and nothing else of its context — the rest is Nitro's, and a call that crosses
|
|
4
|
+
* would carry it.
|
|
5
|
+
*/
|
|
6
|
+
export function stateOf(event) {
|
|
7
|
+
const { user, session } = event.context;
|
|
8
|
+
const { token: _token, ...carried } = (session ?? {});
|
|
9
|
+
return {
|
|
10
|
+
...(user === undefined ? {} : { user }),
|
|
11
|
+
...(session === undefined ? {} : { session: carried }),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=stateOf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateOf.js","sourceRoot":"","sources":["../../../src/runtime/server/stateOf.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAA+B;IACrD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAEjF,OAAO;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/nuxt",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.6-alpha.0",
|
|
4
4
|
"description": "The Nuxt module: Fougere's client primitives and server surface.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@nuxt/kit": "^4.5.1",
|
|
36
36
|
"jiti": "^2.6.1",
|
|
37
|
-
"@fougere/app": "0.12.
|
|
38
|
-
"@fougere/core": "0.12.
|
|
39
|
-
"@fougere/defaults": "0.12.
|
|
40
|
-
"@fougere/compiler": "0.12.
|
|
37
|
+
"@fougere/app": "0.12.6-alpha.0",
|
|
38
|
+
"@fougere/core": "0.12.6-alpha.0",
|
|
39
|
+
"@fougere/defaults": "0.12.6-alpha.0",
|
|
40
|
+
"@fougere/compiler": "0.12.6-alpha.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@nuxt/schema": "^4.5.1",
|
|
@@ -50,11 +50,17 @@
|
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"h3": "^1.15.0",
|
|
52
52
|
"nuxt": "^4.0.0",
|
|
53
|
-
"vue": "^3.5.0"
|
|
53
|
+
"vue": "^3.5.0",
|
|
54
|
+
"nitropack": "*"
|
|
54
55
|
},
|
|
55
56
|
"publishConfig": {
|
|
56
57
|
"access": "public"
|
|
57
58
|
},
|
|
59
|
+
"peerDependenciesMeta": {
|
|
60
|
+
"nitropack": {
|
|
61
|
+
"optional": true
|
|
62
|
+
}
|
|
63
|
+
},
|
|
58
64
|
"scripts": {
|
|
59
65
|
"build": "rm -rf dist && tsc && tsc -p tsconfig.runtime.json",
|
|
60
66
|
"test": "vitest run --passWithNoTests",
|
package/src/module.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import type { Nuxt } from '@nuxt/schema';
|
|
14
14
|
import { orderSeeds } from '@fougere/core';
|
|
15
15
|
import { scanProject, emitStatement, emitFacade, emitNames, frondAliases, watchPathsOf } from '@fougere/compiler';
|
|
16
|
-
import { frondPackage, resolveConventions, type Conventions } from '@fougere/core';
|
|
16
|
+
import { frondPackage, resolveConventions, statedFronds, statesModule, type Conventions } from '@fougere/core';
|
|
17
17
|
import { configFileIn, setModuleLoader, loadCascadedConfig, remotesOf } from '@fougere/core/node';
|
|
18
18
|
import { declaresStorage } from '@fougere/defaults';
|
|
19
19
|
import type { SeedEntry, FougereConfig } from '@fougere/core';
|
|
@@ -120,7 +120,7 @@ const module = defineNuxtModule<FougereModuleOptions>({
|
|
|
120
120
|
const optionsOverride = Object.fromEntries(
|
|
121
121
|
Object.entries(options).filter(([, v]) => v !== undefined),
|
|
122
122
|
) as Partial<FougereConfig>;
|
|
123
|
-
const config: FougereConfig = {
|
|
123
|
+
const config: FougereConfig = { ...fileConfig, ...optionsOverride };
|
|
124
124
|
// Nitro replaces `console` with consola, whose own threshold sits at `info` — and a
|
|
125
125
|
// Logger line at `debug` goes out through `console.debug`, which consola then drops.
|
|
126
126
|
// Measured: the level was `debug`, the boot logged nothing, and the silence read as
|
|
@@ -248,27 +248,33 @@ const module = defineNuxtModule<FougereModuleOptions>({
|
|
|
248
248
|
route: '/api/**',
|
|
249
249
|
handler: runtimeResolve('server/api/crud'),
|
|
250
250
|
});
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
if (config.auth) {
|
|
255
|
-
// Session middleware — resolves user on every request
|
|
251
|
+
// What `adapters: { graphql: true }` publishes — Express mounted it, and here it was
|
|
252
|
+
// ignored without a word.
|
|
253
|
+
if (config.adapters?.graphql) {
|
|
256
254
|
addServerHandler({
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
// Auth catch-all route (login, register, callback, etc.)
|
|
261
|
-
addServerHandler({
|
|
262
|
-
route: '/auth/**',
|
|
263
|
-
handler: runtimeResolve('server/auth/routes/auth/[...]'),
|
|
264
|
-
});
|
|
265
|
-
// /api/me — current user endpoint
|
|
266
|
-
addServerHandler({
|
|
267
|
-
route: '/api/me',
|
|
268
|
-
method: 'get',
|
|
269
|
-
handler: runtimeResolve('server/auth/routes/api/me.get'),
|
|
255
|
+
route: '/graphql',
|
|
256
|
+
method: 'post',
|
|
257
|
+
handler: runtimeResolve('server/routes/graphql.post'),
|
|
270
258
|
});
|
|
271
259
|
}
|
|
260
|
+
addServerImportsDir(runtimeResolve('server/utils'));
|
|
261
|
+
|
|
262
|
+
// ── 5b. Auth — mounted always, answered only where a frond brought the engine ──
|
|
263
|
+
// Whether one did is known once the app is up: the auth is a frond, and `only:` or a
|
|
264
|
+
// placement decides which process serves it, not this build.
|
|
265
|
+
addServerHandler({
|
|
266
|
+
middleware: true,
|
|
267
|
+
handler: runtimeResolve('server/auth/middleware/auth'),
|
|
268
|
+
});
|
|
269
|
+
addServerHandler({
|
|
270
|
+
route: '/auth/**',
|
|
271
|
+
handler: runtimeResolve('server/auth/routes/auth/[...]'),
|
|
272
|
+
});
|
|
273
|
+
addServerHandler({
|
|
274
|
+
route: '/api/me',
|
|
275
|
+
method: 'get',
|
|
276
|
+
handler: runtimeResolve('server/auth/routes/api/me.get'),
|
|
277
|
+
});
|
|
272
278
|
|
|
273
279
|
// ── 6. What this app hosts ───
|
|
274
280
|
//
|
|
@@ -332,7 +338,7 @@ const module = defineNuxtModule<FougereModuleOptions>({
|
|
|
332
338
|
const bootTpl = addTemplate({
|
|
333
339
|
filename: 'fougere-boot.ts',
|
|
334
340
|
write: true,
|
|
335
|
-
getContents: () => generateBootPlugin(config, allSeeds, runtimeResolve('server/utils/boot'), extensionsOf(options), statedPath, scanRoot, config.
|
|
341
|
+
getContents: () => generateBootPlugin(config, allSeeds, runtimeResolve('server/utils/boot'), extensionsOf(options), statedPath, scanRoot, config.fronds ? configFilesOf(rootDir, scanRoot) : []),
|
|
336
342
|
});
|
|
337
343
|
addServerPlugin(bootTpl.dst);
|
|
338
344
|
|
|
@@ -404,8 +410,9 @@ export function generateBootPlugin(
|
|
|
404
410
|
*/
|
|
405
411
|
root?: string,
|
|
406
412
|
/**
|
|
407
|
-
* The config files `
|
|
408
|
-
*
|
|
413
|
+
* The config files `fronds:` may come from, the app's first. A module key's options may hold
|
|
414
|
+
* a class — `user: User` for `@fougere/auth-better` — which the config's JSON cannot carry,
|
|
415
|
+
* so the plugin imports the file and hands its `fronds` over as written.
|
|
409
416
|
*/
|
|
410
417
|
configFiles: readonly string[] = [],
|
|
411
418
|
): string {
|
|
@@ -423,9 +430,24 @@ export function generateBootPlugin(
|
|
|
423
430
|
// 500. Measured both ways on demos/nuxt-blog, in-process.
|
|
424
431
|
if (statedPath) lines.push(`import fronds from '${statedPath.replace(/\.(m?)[jt]sx?$/, '')}';`);
|
|
425
432
|
configFiles.forEach((file, i) => lines.push(`import config_${i} from '${file.replace(/\.(m?)[jt]sx?$/, '')}';`));
|
|
426
|
-
const
|
|
433
|
+
const stated = configFiles.length > 0 ? `(${configFiles.map((_, i) => `config_${i}.fronds`).join(' ?? ')})` : undefined;
|
|
434
|
+
const configArg = stated ? `{ ...${JSON.stringify(carried(config))}, fronds: ${stated} }` : JSON.stringify(carried(config));
|
|
435
|
+
|
|
436
|
+
// A module key is imported by the BUNDLE, like a seed: nothing resolves a specifier once the
|
|
437
|
+
// app is built, and the loader core falls back to looks from its own directory.
|
|
438
|
+
const moduleKeys = statedFronds(config.fronds).map((entry) => entry.key).filter(statesModule);
|
|
439
|
+
if (moduleKeys.length > 0) {
|
|
440
|
+
lines.push(`import { getModuleLoader, setModuleLoader } from '@fougere/core/node';`);
|
|
441
|
+
moduleKeys.forEach((key, i) => {
|
|
442
|
+
const specifier = key.startsWith('.') ? resolve(root ?? '', key).replace(/\.(m?)[jt]sx?$/, '') : key;
|
|
443
|
+
lines.push(`import * as module_${i} from '${specifier}';`);
|
|
444
|
+
});
|
|
445
|
+
lines.push(`const modules = { ${moduleKeys.map((key, i) => `${JSON.stringify(key)}: module_${i}`).join(', ')} };`);
|
|
446
|
+
lines.push(`const loadModule = getModuleLoader();`);
|
|
447
|
+
lines.push(`setModuleLoader((id, options) => (id in modules ? Promise.resolve(modules[id]) : loadModule(id, options)));`);
|
|
448
|
+
}
|
|
427
449
|
|
|
428
|
-
const db = config.db
|
|
450
|
+
const db = config.db;
|
|
429
451
|
const sources = (config as { sources?: unknown }).sources;
|
|
430
452
|
|
|
431
453
|
// `declaresStorage` is the canonical reader of `db:` — asked, not re-interpreted.
|
|
@@ -441,8 +463,7 @@ export function generateBootPlugin(
|
|
|
441
463
|
// Always configure, even with nothing to host: `hostedBy` is where the absence is
|
|
442
464
|
// answered, by name and with both keys. Skipping the call boots a silent app instead.
|
|
443
465
|
const states = statedPath ? 'fronds, ' : '';
|
|
444
|
-
|
|
445
|
-
lines.push(` configureFougere({ ${states}config: ${JSON.stringify(carried(config))}${extensions} });`);
|
|
466
|
+
lines.push(` configureFougere({ ${states}config: ${configArg} });`);
|
|
446
467
|
lines.push(`});`);
|
|
447
468
|
|
|
448
469
|
return lines.join('\n') + '\n';
|
|
@@ -475,7 +496,7 @@ export function generateBootPlugin(
|
|
|
475
496
|
// Two unrelated facts had been sharing one failure. `remotes` rides along for the same
|
|
476
497
|
// reason: it is the whole of why a consumer that hosts nothing boots at all.
|
|
477
498
|
const states = statedPath ? 'fronds, ' : '';
|
|
478
|
-
lines.push(` configureFougere({ ${states}config: ${
|
|
499
|
+
lines.push(` configureFougere({ ${states}config: ${configArg} });`);
|
|
479
500
|
lines.push(``);
|
|
480
501
|
lines.push(` try {`);
|
|
481
502
|
// Pass `db` through unchanged — resolveStorage (@fougere/defaults → createSqliteSource)
|
|
@@ -489,7 +510,7 @@ export function generateBootPlugin(
|
|
|
489
510
|
lines.push(``);
|
|
490
511
|
lines.push(` configureFougere({`);
|
|
491
512
|
if (statedPath) lines.push(` fronds,`);
|
|
492
|
-
lines.push(` config: ${
|
|
513
|
+
lines.push(` config: ${configArg},`);
|
|
493
514
|
// The whole thing, not a hand-picked few of its members: the three this used to name
|
|
494
515
|
// left `transacted` and `close` behind, so a `Together` always compensated and the
|
|
495
516
|
// connection was never released — under Nuxt only, which is where the app really runs.
|
|
@@ -522,7 +543,6 @@ export function generateBootPlugin(
|
|
|
522
543
|
for (const { key, options } of extensions) {
|
|
523
544
|
lines.push(` ${key}(${JSON.stringify(options ?? {})}),`);
|
|
524
545
|
}
|
|
525
|
-
if (auth) lines.push(` ${auth},`);
|
|
526
546
|
|
|
527
547
|
lines.push(` ],`);
|
|
528
548
|
lines.push(` });`);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** REST catch-all — the h3 half of a facade whose decisions live in `@fougere/app`. */
|
|
2
2
|
import { defineEventHandler, readBody, getQuery, createError, setResponseStatus, setResponseHeaders } from 'h3';
|
|
3
3
|
import { serveRest, useFougereApp } from '@fougere/app';
|
|
4
|
+
import { stateOf } from '../stateOf.js';
|
|
4
5
|
|
|
5
6
|
export default defineEventHandler(async (event) => {
|
|
6
7
|
const app = await useFougereApp();
|
|
@@ -13,7 +14,7 @@ export default defineEventHandler(async (event) => {
|
|
|
13
14
|
path: event.path.replace(/^\/api\//, '').replace(/\?.*$/, ''),
|
|
14
15
|
query: getQuery(event) as Record<string, string>,
|
|
15
16
|
body: hasBody ? await readBody(event) : undefined,
|
|
16
|
-
state: (event
|
|
17
|
+
state: stateOf(event),
|
|
17
18
|
});
|
|
18
19
|
|
|
19
20
|
// Nothing here is ours — an app's own /api/* routes must still reach their handler.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { defineEventHandler, toWebRequest, sendWebResponse } from 'h3';
|
|
2
|
-
import {
|
|
1
|
+
import { defineEventHandler, toWebRequest, sendWebResponse, createError } from 'h3';
|
|
2
|
+
import { authOf, useFougereApp } from '@fougere/app';
|
|
3
3
|
|
|
4
4
|
export default defineEventHandler(async (event) => {
|
|
5
|
-
const auth = await
|
|
5
|
+
const auth = authOf(await useFougereApp());
|
|
6
|
+
if (!auth) throw createError({ statusCode: 404, message: 'No auth is served by this process' });
|
|
6
7
|
const webResponse = await auth.handler(toWebRequest(event));
|
|
7
8
|
|
|
8
9
|
return sendWebResponse(event, webResponse);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/** Receiving end for the browser — the h3 half. */
|
|
2
2
|
import { defineEventHandler } from 'h3';
|
|
3
3
|
import { serveRpc, rpcParseError, useFougereApp } from '@fougere/app';
|
|
4
|
-
import {
|
|
4
|
+
import { maxBodyBytes } from '@fougere/core';
|
|
5
|
+
import { stateOf } from '../stateOf.js';
|
|
5
6
|
|
|
6
7
|
type NodeReq = {
|
|
7
8
|
body?: unknown;
|
|
@@ -21,14 +22,14 @@ function payloadTooLarge(): Error & { statusCode: number; statusMessage: string
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
function parseRawJson(raw: string): unknown {
|
|
24
|
-
if (Buffer.byteLength(raw) >
|
|
25
|
+
if (Buffer.byteLength(raw) > maxBodyBytes()) throw payloadTooLarge();
|
|
25
26
|
|
|
26
27
|
return raw ? JSON.parse(raw) : {};
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
async function readWebBody(req: WebReq): Promise<unknown> {
|
|
30
31
|
const declaredLength = Number(req.headers?.get?.('content-length'));
|
|
31
|
-
if (Number.isFinite(declaredLength) && declaredLength >
|
|
32
|
+
if (Number.isFinite(declaredLength) && declaredLength > maxBodyBytes()) throw payloadTooLarge();
|
|
32
33
|
|
|
33
34
|
const reader = req.body?.getReader?.();
|
|
34
35
|
if (reader) {
|
|
@@ -39,7 +40,7 @@ async function readWebBody(req: WebReq): Promise<unknown> {
|
|
|
39
40
|
if (done) break;
|
|
40
41
|
const chunk = Buffer.from(value ?? []);
|
|
41
42
|
size += chunk.length;
|
|
42
|
-
if (size >
|
|
43
|
+
if (size > maxBodyBytes()) {
|
|
43
44
|
await reader.cancel?.();
|
|
44
45
|
throw payloadTooLarge();
|
|
45
46
|
}
|
|
@@ -64,12 +65,12 @@ async function readJsonBody(event: { req?: unknown; node?: { req?: unknown } }):
|
|
|
64
65
|
const nodeReq = rawNodeReq && typeof rawNodeReq === 'object' ? rawNodeReq as NodeReq : undefined;
|
|
65
66
|
const preset = nodeReq?.body;
|
|
66
67
|
if (typeof preset === 'string') {
|
|
67
|
-
if (Buffer.byteLength(preset) >
|
|
68
|
+
if (Buffer.byteLength(preset) > maxBodyBytes()) throw payloadTooLarge();
|
|
68
69
|
|
|
69
70
|
return parseRawJson(preset);
|
|
70
71
|
}
|
|
71
72
|
if (preset instanceof Uint8Array) {
|
|
72
|
-
if (preset.byteLength >
|
|
73
|
+
if (preset.byteLength > maxBodyBytes()) throw payloadTooLarge();
|
|
73
74
|
const raw = Buffer.from(preset).toString('utf8');
|
|
74
75
|
|
|
75
76
|
return parseRawJson(raw);
|
|
@@ -88,7 +89,7 @@ async function readJsonBody(event: { req?: unknown; node?: { req?: unknown } }):
|
|
|
88
89
|
if (exceeded) return;
|
|
89
90
|
const buffer = Buffer.from(chunk);
|
|
90
91
|
size += buffer.length;
|
|
91
|
-
if (size >
|
|
92
|
+
if (size > maxBodyBytes()) {
|
|
92
93
|
exceeded = true;
|
|
93
94
|
reject(payloadTooLarge());
|
|
94
95
|
|
|
@@ -112,7 +113,7 @@ export default defineEventHandler(async (event) => {
|
|
|
112
113
|
return await serveRpc(app, {
|
|
113
114
|
path: event.path,
|
|
114
115
|
body: await readJsonBody(event),
|
|
115
|
-
state: (event
|
|
116
|
+
state: stateOf(event),
|
|
116
117
|
});
|
|
117
118
|
} catch (err) {
|
|
118
119
|
if ((err as { statusCode?: number })?.statusCode === 413) throw err;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** GraphQL, when the app declares `adapters: { graphql: true }` — the h3 half of `serveGraphQL`. */
|
|
2
|
+
import { defineEventHandler, readBody, createError, setResponseStatus } from 'h3';
|
|
3
|
+
import { serveGraphQL, useFougereApp } from '@fougere/app';
|
|
4
|
+
import { stateOf } from '../stateOf.js';
|
|
5
|
+
|
|
6
|
+
export default defineEventHandler(async (event) => {
|
|
7
|
+
const app = await useFougereApp();
|
|
8
|
+
const body = ((await readBody(event)) ?? {}) as { query?: string; variables?: Record<string, unknown>; operationName?: string };
|
|
9
|
+
const outcome = await serveGraphQL(app, { ...body, state: stateOf(event) });
|
|
10
|
+
|
|
11
|
+
if (outcome.kind === 'pass') return;
|
|
12
|
+
|
|
13
|
+
if (outcome.kind === 'error') {
|
|
14
|
+
throw createError({ statusCode: outcome.status, message: outcome.body.message, data: outcome.body });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
setResponseStatus(event, outcome.status);
|
|
18
|
+
|
|
19
|
+
return outcome.body;
|
|
20
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { H3Event } from 'h3';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* What a call carries of the request: the session the auth middleware put on the event, without
|
|
5
|
+
* its token, and nothing else of its context — the rest is Nitro's, and a call that crosses
|
|
6
|
+
* would carry it.
|
|
7
|
+
*/
|
|
8
|
+
export function stateOf(event: Pick<H3Event, 'context'>): Record<string, unknown> {
|
|
9
|
+
const { user, session } = event.context;
|
|
10
|
+
const { token: _token, ...carried } = (session ?? {}) as Record<string, unknown>;
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
...(user === undefined ? {} : { user }),
|
|
14
|
+
...(session === undefined ? {} : { session: carried }),
|
|
15
|
+
};
|
|
16
|
+
}
|