@fougere/nuxt 0.6.0-alpha.0 → 0.7.0-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 -16
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +9 -26
- package/dist/module.js.map +1 -1
- package/dist/runtime/composables/useCurrentUser.d.ts.map +1 -1
- package/dist/runtime/composables/useCurrentUser.js +1 -8
- package/dist/runtime/composables/useCurrentUser.js.map +1 -1
- package/dist/runtime/composables/useFormFor.d.ts +2 -4
- package/dist/runtime/composables/useFormFor.d.ts.map +1 -1
- package/dist/runtime/composables/useFormFor.js +8 -23
- package/dist/runtime/composables/useFormFor.js.map +1 -1
- package/dist/runtime/composables/useFougereData.d.ts.map +1 -1
- package/dist/runtime/composables/useFougereData.js +2 -13
- package/dist/runtime/composables/useFougereData.js.map +1 -1
- package/dist/runtime/plugins/session.server.js +1 -6
- package/dist/runtime/plugins/session.server.js.map +1 -1
- package/dist/runtime/server/api/crud.js +1 -17
- package/dist/runtime/server/api/crud.js.map +1 -1
- package/dist/runtime/server/routes/call.post.js +2 -23
- package/dist/runtime/server/routes/call.post.js.map +1 -1
- package/dist/runtime/server/routes/session.get.js +2 -3
- package/dist/runtime/server/routes/session.get.js.map +1 -1
- package/dist/runtime/server/utils/boot.d.ts +1 -11
- package/dist/runtime/server/utils/boot.d.ts.map +1 -1
- package/dist/runtime/server/utils/boot.js +1 -11
- package/dist/runtime/server/utils/boot.js.map +1 -1
- package/dist/runtime/server/utils/invoke.d.ts.map +1 -1
- package/dist/runtime/server/utils/invoke.js +1 -9
- package/dist/runtime/server/utils/invoke.js.map +1 -1
- package/package.json +4 -4
- package/src/module.ts +12 -42
- package/src/runtime/composables/useCurrentUser.ts +1 -8
- package/src/runtime/composables/useFormFor.ts +8 -23
- package/src/runtime/composables/useFougereData.ts +2 -13
- package/src/runtime/plugins/session.server.ts +1 -6
- package/src/runtime/server/api/crud.ts +1 -17
- package/src/runtime/server/routes/call.post.ts +2 -23
- package/src/runtime/server/routes/session.get.ts +2 -3
- package/src/runtime/server/utils/boot.ts +1 -11
- package/src/runtime/server/utils/invoke.ts +1 -9
package/dist/module.d.ts
CHANGED
|
@@ -2,24 +2,11 @@ import type { SeedEntry, FougereConfig } from '@fougere/core';
|
|
|
2
2
|
export interface FougereModuleOptions {
|
|
3
3
|
/** Override fougere.config.ts values from nuxt.config. Optional. */
|
|
4
4
|
db?: FougereConfig['db'];
|
|
5
|
-
/**
|
|
6
|
-
* Where `fronds/` lives, relative to the app's rootDir. Default: the app
|
|
7
|
-
* itself. Set to `../..` for an app under `apps/*` in a workspace whose
|
|
8
|
-
* fronds are shared at the root. Config and `.fougere` stay app-local.
|
|
9
|
-
*/
|
|
5
|
+
/** Where `fronds/` lives, relative to the app's rootDir. */
|
|
10
6
|
root?: string;
|
|
11
7
|
/**
|
|
12
|
-
* One key per EXTENSION, and the key is the package suffix AND the export name —
|
|
13
|
-
* `
|
|
14
|
-
* keep in step with the packages, the same rule the scan applies to `@fronds/<name>`.
|
|
15
|
-
*
|
|
16
|
-
* An extension is a FUNCTION and this module writes a FILE, so a project cannot pass one
|
|
17
|
-
* here: it names one, and the options travel beside it as data.
|
|
18
|
-
*
|
|
19
|
-
* The keys are declared rather than left open on purpose. An open record would derive
|
|
20
|
-
* everything and accept `callz: {}` in silence — the failure this repo already records
|
|
21
|
-
* for `adapters:`, which "fails OPEN, giving neither completion nor a guard". The price
|
|
22
|
-
* is that a new extension package adds a key here.
|
|
8
|
+
* One key per EXTENSION, and the key is the package suffix AND the export name — `calls` is
|
|
9
|
+
* `import { calls } from '@fougere/calls'`.
|
|
23
10
|
*/
|
|
24
11
|
/** `@fougere/observability` — a span per operation, the four signals, OTLP. */
|
|
25
12
|
observability?: Record<string, unknown> | false;
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAmBA,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;AAUD,QAAA,MAAM,MAAM,sFA8OV,CAAC;eAEY,MAAM;AAwCrB,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,GAClB,MAAM,CA4HR"}
|
package/dist/module.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fougere/nuxt — Nuxt module: scans fronds, registers the four
|
|
3
|
-
* primitives (useQuery/useCommand, useFormFor, useCurrentUser) and the
|
|
4
|
-
* server surface (call envelope, session, REST bridge, auth).
|
|
5
|
-
*/
|
|
1
|
+
/** @fougere/nuxt — Nuxt module. */
|
|
6
2
|
import { defineNuxtModule, addServerHandler, addServerImportsDir, addServerPlugin, addPlugin, addTemplate, addImports, createResolver, useLogger, } from '@nuxt/kit';
|
|
7
3
|
import { orderSeeds } from '@fougere/core';
|
|
8
4
|
import { scanProject, emitStatement, frondAliases, frondPackage, watchPathsOf, resolveConventions, setModuleLoader, loadCascadedConfig, } from '@fougere/core/node';
|
|
@@ -10,13 +6,7 @@ import { declaresStorage } from '@fougere/defaults';
|
|
|
10
6
|
import { createJiti } from 'jiti';
|
|
11
7
|
import { resolve, relative } from 'node:path';
|
|
12
8
|
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
13
|
-
/**
|
|
14
|
-
* The extension keys, in the order they are mounted.
|
|
15
|
-
*
|
|
16
|
-
* A list and not the options object's own keys: the ORDER is ours, not the project's.
|
|
17
|
-
* `observability` installs the middleware that opens the span every log line written
|
|
18
|
-
* inside a call will carry — mounted the other way round, the lines leave uncorrelated.
|
|
19
|
-
*/
|
|
9
|
+
/** The extension keys, in the order they are mounted. */
|
|
20
10
|
const EXTENSION_KEYS = ['observability', 'calls'];
|
|
21
11
|
/** What the project asked for, in mount order. `false` is how a key is turned off. */
|
|
22
12
|
export function extensionsOf(options) {
|
|
@@ -222,7 +212,7 @@ const module = defineNuxtModule({
|
|
|
222
212
|
// 500 on every call in `nuxt dev`, 200 once the statement is the only source.
|
|
223
213
|
// A codegen inside one repo also had nothing to carry: `fougere sync` writes classes
|
|
224
214
|
// because its source is ANOTHER repo, and here the author can just import.
|
|
225
|
-
const
|
|
215
|
+
const frondsFile = ['fronds.ts', 'fronds.mts', 'fronds.js', 'fronds.mjs']
|
|
226
216
|
.map((f) => resolve(scanRoot, f)).find((f) => existsSync(f));
|
|
227
217
|
// No statement of its own: the build writes the one the scan implies, so the runtime
|
|
228
218
|
// never reaches `scanProject`. That fallback works — it has a disk under Nuxt — but it
|
|
@@ -232,7 +222,7 @@ const module = defineNuxtModule({
|
|
|
232
222
|
// do (`Post.js` for `Post.ts`), and Nitro externalizes a `.mjs` it can hand to Node —
|
|
233
223
|
// which then resolves `@fronds/*` against a package that does not exist, since an alias
|
|
234
224
|
// is a bundler's. Measured both ways, in-process: `.mjs` answers 500, `.ts` answers.
|
|
235
|
-
const statedPath =
|
|
225
|
+
const statedPath = frondsFile ?? addTemplate({
|
|
236
226
|
filename: 'fougere-fronds.ts',
|
|
237
227
|
write: true,
|
|
238
228
|
getContents: () => emitStatement(scan),
|
|
@@ -251,13 +241,7 @@ export default module;
|
|
|
251
241
|
// ── Boot plugin generation ─────────────────────────
|
|
252
242
|
// Exported (not just module-internal) so its output is unit-testable without
|
|
253
243
|
// spinning up a whole Nuxt build.
|
|
254
|
-
/**
|
|
255
|
-
* What of the config a generated plugin can carry: values, never providers.
|
|
256
|
-
*
|
|
257
|
-
* `auth` holds a live object built by `betterAuth(...)`, so it cannot be written into a
|
|
258
|
-
* module — and it needs a database, which a codegen'd host has already resolved its own
|
|
259
|
-
* way. The rest is data and travels.
|
|
260
|
-
*/
|
|
244
|
+
/** What of the config a generated plugin can carry: values, never providers. */
|
|
261
245
|
function carried(config) {
|
|
262
246
|
const { remotes, adapters, sources } = config;
|
|
263
247
|
return {
|
|
@@ -269,9 +253,6 @@ function carried(config) {
|
|
|
269
253
|
/**
|
|
270
254
|
* The entity names a SYNCED remote brought in — `fougere sync` writes the classes under
|
|
271
255
|
* `.fougere/`, and a consumer designates them exactly as it designates its own.
|
|
272
|
-
*
|
|
273
|
-
* By filename and not by loading them: this runs before the loader is installed, and a
|
|
274
|
-
* class file is named after its class by the same convention the scan reads.
|
|
275
256
|
*/
|
|
276
257
|
async function syncedEntityNames(rootDir, conventions) {
|
|
277
258
|
const remotesPath = resolve(rootDir, '.fougere', 'remotes.json');
|
|
@@ -375,8 +356,10 @@ statedPath) {
|
|
|
375
356
|
if (statedPath)
|
|
376
357
|
lines.push(` fronds,`);
|
|
377
358
|
lines.push(` config: ${JSON.stringify(carried(config))},`);
|
|
378
|
-
|
|
379
|
-
|
|
359
|
+
// The whole thing, not a hand-picked few of its members: the three this used to name
|
|
360
|
+
// left `transacted` and `close` behind, so a `Together` always compensated and the
|
|
361
|
+
// connection was never released — under Nuxt only, which is where the app really runs.
|
|
362
|
+
lines.push(` storage,`);
|
|
380
363
|
// Two members of the ascent, named — not a claim on everything after the boot. The
|
|
381
364
|
// storage's is core's own declaration (`migrating`), so this codegen states no order and
|
|
382
365
|
// cannot mistype the name it would otherwise be silently adding beside.
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentUser.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useCurrentUser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCurrentUser.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useCurrentUser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,wBAAgB,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;mBAOlC,OAAO,CAAC,IAAI,CAAC;EAKxC"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The session: resolved once server-side, hydrated with the page, read
|
|
3
|
-
* here as reactive state. refresh() re-reads it after a client-side
|
|
4
|
-
* auth change (login, logout) — no page reload, no hand-rolled /api/me.
|
|
5
|
-
*
|
|
6
|
-
* `session` is the whole view (extensible context); `user` is its
|
|
7
|
-
* everyday projection.
|
|
8
|
-
*/
|
|
1
|
+
/** The session. */
|
|
9
2
|
import { useState, useRequestFetch } from '#imports';
|
|
10
3
|
import { computed } from 'vue';
|
|
11
4
|
export function useCurrentUser() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentUser.js","sourceRoot":"","sources":["../../../src/runtime/composables/useCurrentUser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"useCurrentUser.js","sourceRoot":"","sources":["../../../src/runtime/composables/useCurrentUser.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,QAAQ,CAAc,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAiB,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IAE5D,KAAK,UAAU,OAAO;QACpB,OAAO,CAAC,KAAK,GAAG,MAAM,OAAO,CAAc,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -10,10 +10,8 @@ export interface FormOptions {
|
|
|
10
10
|
export declare function useFormFor<T = Record<string, unknown>>(entity: FormEntity, options?: FormOptions): {
|
|
11
11
|
fields: FormField[];
|
|
12
12
|
/**
|
|
13
|
-
* The same fields, keyed by name — a form that lays its inputs out by hand binds
|
|
14
|
-
*
|
|
15
|
-
* its own. Without it, a page retypes `type="email"` next to a card that says
|
|
16
|
-
* `format: 'email'`, and the browser enforces the page rather than the declaration.
|
|
13
|
+
* The same fields, keyed by name — a form that lays its inputs out by hand binds one at a time
|
|
14
|
+
* (`v-bind="fieldsByName.email.attrs"`), and still states no rule of its own.
|
|
17
15
|
*/
|
|
18
16
|
fieldsByName: Record<string, FormField>;
|
|
19
17
|
values: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormFor.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useFormFor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFormFor.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useFormFor.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0C,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9G,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,WAAgB;;IA4CjG;;;OAGG;kBACiE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;;;kBApBtE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;;IAyBxC,+EAA+E;;;EAIlF"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The form contract — state, validation, submission, error mapping.
|
|
3
|
-
* Never a widget: the page owns the rendering, this owns the mechanics.
|
|
4
|
-
*
|
|
5
|
-
* The cycle composes the other primitives: fields from the io axes,
|
|
6
|
-
* local pre-judgment with the same rules the handler enforces (one
|
|
7
|
-
* declaration, both sides), submission through the command (so the
|
|
8
|
-
* entity link revalidates mounted queries), and per-field errors in
|
|
9
|
-
* the same `{ path, message }` shape whoever judged.
|
|
10
|
-
*/
|
|
1
|
+
/** The form contract — state, validation, submission, error mapping. */
|
|
11
2
|
import { reactive, computed } from 'vue';
|
|
12
3
|
import { lowerFirst, validationErrorsOf } from '@fougere/core/contract';
|
|
13
4
|
import { useCommand } from './useFougereData.js';
|
|
@@ -26,8 +17,8 @@ export function useFormFor(entity, options = {}) {
|
|
|
26
17
|
for (const key of Object.keys(errors))
|
|
27
18
|
delete errors[key];
|
|
28
19
|
}
|
|
29
|
-
/** Local pre-
|
|
30
|
-
function
|
|
20
|
+
/** Local pre-verdict — same rules as the handler, saves a lost round-trip. */
|
|
21
|
+
function validator() {
|
|
31
22
|
clearErrors();
|
|
32
23
|
const result = entity.validate(payloadOf(values));
|
|
33
24
|
if (result.success)
|
|
@@ -35,16 +26,12 @@ export function useFormFor(entity, options = {}) {
|
|
|
35
26
|
Object.assign(errors, errorsByField(result.errors));
|
|
36
27
|
return false;
|
|
37
28
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Judge locally, then send through the command. Returns the created/updated
|
|
40
|
-
* value, or null when a judge (either side) rejected — the errors land per
|
|
41
|
-
* field either way, the form never knows who judged.
|
|
42
|
-
*/
|
|
29
|
+
/** Validate locally, then send through the command. */
|
|
43
30
|
async function submit() {
|
|
44
|
-
if (!
|
|
31
|
+
if (!validator())
|
|
45
32
|
return null;
|
|
46
33
|
try {
|
|
47
|
-
return await command.execute({ params: options.params,
|
|
34
|
+
return await command.execute({ params: options.params, input: payloadOf(values) });
|
|
48
35
|
}
|
|
49
36
|
catch (err) {
|
|
50
37
|
const refusals = validationErrorsOf(err);
|
|
@@ -58,10 +45,8 @@ export function useFormFor(entity, options = {}) {
|
|
|
58
45
|
return {
|
|
59
46
|
fields,
|
|
60
47
|
/**
|
|
61
|
-
* The same fields, keyed by name — a form that lays its inputs out by hand binds
|
|
62
|
-
*
|
|
63
|
-
* its own. Without it, a page retypes `type="email"` next to a card that says
|
|
64
|
-
* `format: 'email'`, and the browser enforces the page rather than the declaration.
|
|
48
|
+
* The same fields, keyed by name — a form that lays its inputs out by hand binds one at a time
|
|
49
|
+
* (`v-bind="fieldsByName.email.attrs"`), and still states no rule of its own.
|
|
65
50
|
*/
|
|
66
51
|
fieldsByName: Object.fromEntries(fields.map((f) => [f.name, f])),
|
|
67
52
|
values,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormFor.js","sourceRoot":"","sources":["../../../src/runtime/composables/useFormFor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"useFormFor.js","sourceRoot":"","sources":["../../../src/runtime/composables/useFormFor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFougereData.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useFougereData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFougereData.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useFougereData.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0C,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAWL,KAAK,SAAS,EACd,KAAK,WAAW,EAEjB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,wBAAsB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxD,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC,EAC/C,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE;UA0Bd,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;;;;;;aAQP,MAAM,OAAO,CAAC,IAAI,CAAC;GAE1C;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM;sBAOtC,SAAS,KAAG,OAAO,CAAC,CAAC,CAAC;;;EAkBtD"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The couple — useQuery (reads) and useCommand (writes), the two dual gestures of
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* What the gestures ARE lives in `@fougere/app/client`: designation is class +
|
|
6
|
-
* verb, the key derives from designation plus input, and a successful command on
|
|
7
|
-
* an entity revalidates every mounted query on that entity. What lives here is
|
|
8
|
-
* Vue — `useAsyncData` for the read, refs for the pending flags, `onScopeDispose`
|
|
9
|
-
* for unregistration. The React adapter states the same three facts against its
|
|
10
|
-
* own primitives, and neither restates the rules.
|
|
11
|
-
*
|
|
12
|
-
* Both gestures ride the call envelope: the browser POSTs JSON-RPC to
|
|
13
|
-
* /_fougere/call; during SSR Nuxt collapses the same call to an in-process fetch
|
|
14
|
-
* (no network, no port).
|
|
2
|
+
* The couple — useQuery (reads) and useCommand (writes), the two dual gestures of a page talking
|
|
3
|
+
* to a Frond, in Vue.
|
|
15
4
|
*/
|
|
16
5
|
import { useAsyncData, useRequestFetch, refreshNuxtData } from '#imports';
|
|
17
6
|
import { ref, computed, toValue, onScopeDispose } from 'vue';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFougereData.js","sourceRoot":"","sources":["../../../src/runtime/composables/useFougereData.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"useFougereData.js","sourceRoot":"","sources":["../../../src/runtime/composables/useFougereData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session hydration — server half of useCurrentUser. The auth middleware
|
|
3
|
-
* already resolved the user onto event.context; this plugin copies the
|
|
4
|
-
* session view into state so it rides the payload to the client. The
|
|
5
|
-
* page arrives already knowing its user — no round-trip.
|
|
6
|
-
*/
|
|
1
|
+
/** Session hydration — server half of useCurrentUser. */
|
|
7
2
|
import { defineNuxtPlugin, useRequestEvent, useState } from '#imports';
|
|
8
3
|
import { sessionViewOf } from '@fougere/app/client';
|
|
9
4
|
export default defineNuxtPlugin(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.server.js","sourceRoot":"","sources":["../../../src/runtime/plugins/session.server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session.server.js","sourceRoot":"","sources":["../../../src/runtime/plugins/session.server.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAEtE,eAAe,gBAAgB,CAAC,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,QAAQ,CAAc,iBAAiB,EAAE,GAAG,EAAE,CAC5C,aAAa,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAA4B,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* REST catch-all — the h3 half of a door whose decisions live in `@fougere/app`.
|
|
3
|
-
*
|
|
4
|
-
* It used to derive its own answers: its own `pluralize`, its own "segment = op or
|
|
5
|
-
* id", and its own method rule — which was no rule at all. A known operation name
|
|
6
|
-
* won whatever the verb, so `GET /api/blog/posts/delete?id=…` reached the mutating
|
|
7
|
-
* method with the session cookie a browser attaches to any navigation, and a
|
|
8
|
-
* body-less `DELETE /api/blog/posts` was read as `create`.
|
|
9
|
-
*
|
|
10
|
-
* `schema-rest` already answers all three in one place, `exposed === false`
|
|
11
|
-
* included — so the fix was not a guard added here, it was the removal of the
|
|
12
|
-
* second answer. `serveRest` is now the third: the same decision serves Next, and
|
|
13
|
-
* neither adapter restates it.
|
|
14
|
-
*
|
|
15
|
-
* What stays here is translation: read the h3 event, write the h3 answer. The state
|
|
16
|
-
* is stamped from `event.context` — what the server resolved, never the wire.
|
|
17
|
-
*/
|
|
1
|
+
/** REST catch-all — the h3 half of a door whose decisions live in `@fougere/app`. */
|
|
18
2
|
import { defineEventHandler, readBody, getQuery, createError, setResponseStatus, setResponseHeaders } from 'h3';
|
|
19
3
|
import { serveRest, useFougereApp } from '@fougere/app';
|
|
20
4
|
export default defineEventHandler(async (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../src/runtime/server/api/crud.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../src/runtime/server/api/crud.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,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;AAExD,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,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA4B;KACxD,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;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Receiving end for the browser — the h3 half. The decision (which audience, which
|
|
3
|
-
* runner, what a parse failure answers) lives in `@fougere/app`; what stays here is
|
|
4
|
-
* getting a JSON payload out of an h3 event, which is the one thing that genuinely
|
|
5
|
-
* differs between hosts. Next reads `await request.json()` and needs none of this.
|
|
6
|
-
*
|
|
7
|
-
* Trust boundary, unchanged: the browser sits outside the topology, so `state` is
|
|
8
|
-
* stamped from the server-resolved session (event.context), never taken from the wire.
|
|
9
|
-
*/
|
|
1
|
+
/** Receiving end for the browser — the h3 half. */
|
|
10
2
|
import { defineEventHandler } from 'h3';
|
|
11
3
|
import { serveRpc, rpcParseError, useFougereApp } from '@fougere/app';
|
|
12
4
|
import { MAX_BODY_BYTES } from '@fougere/core';
|
|
@@ -49,20 +41,7 @@ async function readWebBody(req) {
|
|
|
49
41
|
return req.json();
|
|
50
42
|
return {};
|
|
51
43
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Read the JSON-RPC payload from the h3 event, agnostic to h3 version AND trust
|
|
54
|
-
* boundary. We read the event's shape directly instead of calling `readBody`,
|
|
55
|
-
* whose static `from 'h3'` import can bind to a different h3 major than the one
|
|
56
|
-
* that shaped the event (nitro's runtime is v1 here; devtools drag in v2) —
|
|
57
|
-
* `readBody` v2 on a v1 event throws `event.req.text is not a function`.
|
|
58
|
-
*
|
|
59
|
-
* Two shapes occur, both verified:
|
|
60
|
-
* - SSR internal `$fetch`: a synthetic event whose `node.req.body` is already
|
|
61
|
-
* the raw JSON string — the mock stream is not readable, never drain it.
|
|
62
|
-
* - Browser POST: a real IncomingMessage, drained via stream events (`for
|
|
63
|
-
* await` fails: the SSR mock has no async iterator).
|
|
64
|
-
* The `event.req.json()` branch is the future once nitro is fully on h3 v2.
|
|
65
|
-
*/
|
|
44
|
+
/** Read the JSON-RPC payload from the h3 event, agnostic to h3 version AND trust boundary. */
|
|
66
45
|
async function readJsonBody(event) {
|
|
67
46
|
const rawNodeReq = event.node?.req;
|
|
68
47
|
const nodeReq = rawNodeReq && typeof rawNodeReq === 'object' ? rawNodeReq : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.post.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/call.post.ts"],"names":[],"mappings":"AAAA
|
|
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAe/C,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,cAAc;QAAE,MAAM,eAAe,EAAE,CAAC;IACrE,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,cAAc;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,cAAc,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;QACD,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;IACtD,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,cAAc;YAAE,MAAM,eAAe,EAAE,CAAC;QACxE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,UAAU,GAAG,cAAc;YAAE,MAAM,eAAe,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,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,cAAc,EAAE,CAAC;oBAC1B,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;oBAC1B,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;QACH,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,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,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA4B;SACxD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA+B,EAAE,UAAU,KAAK,GAAG;YAAE,MAAM,GAAG,CAAC;QACpE,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The session view over the wire — same resolution the hydration reads,
|
|
3
|
-
*
|
|
4
|
-
* family as /_fougere/call.
|
|
2
|
+
* The session view over the wire — same resolution the hydration reads, for a client refreshing
|
|
3
|
+
* after login/logout.
|
|
5
4
|
*/
|
|
6
5
|
import { defineEventHandler } from 'h3';
|
|
7
6
|
import { sessionViewOf } from '@fougere/app';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.get.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/session.get.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session.get.js","sourceRoot":"","sources":["../../../../src/runtime/server/routes/session.get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAe,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,aAAa,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC,CAChE,CAAC"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The boot, re-exported under a path inside this package.
|
|
3
|
-
*
|
|
4
|
-
* Every runtime file here reaches `@fougere/app` by name, because it is resolved
|
|
5
|
-
* from this package's own node_modules. The generated Nitro plugin cannot: it is
|
|
6
|
-
* written into the user's `.nuxt/`, so a bare `@fougere/app` would be resolved from
|
|
7
|
-
* the USER's project, where a transitive dependency is not visible under pnpm.
|
|
8
|
-
*
|
|
9
|
-
* So the codegen imports this file by absolute path, and this file — which does sit
|
|
10
|
-
* in `@fougere/nuxt` — does the resolving. One indirection, one reason.
|
|
11
|
-
*/
|
|
1
|
+
/** The boot, re-exported under a path inside this package. */
|
|
12
2
|
export { configureFougere, extendFougere, useFougereApp, type FougereServerConfig } from '@fougere/app';
|
|
13
3
|
//# sourceMappingURL=boot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/utils/boot.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/utils/boot.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The boot, re-exported under a path inside this package.
|
|
3
|
-
*
|
|
4
|
-
* Every runtime file here reaches `@fougere/app` by name, because it is resolved
|
|
5
|
-
* from this package's own node_modules. The generated Nitro plugin cannot: it is
|
|
6
|
-
* written into the user's `.nuxt/`, so a bare `@fougere/app` would be resolved from
|
|
7
|
-
* the USER's project, where a transitive dependency is not visible under pnpm.
|
|
8
|
-
*
|
|
9
|
-
* So the codegen imports this file by absolute path, and this file — which does sit
|
|
10
|
-
* in `@fougere/nuxt` — does the resolving. One indirection, one reason.
|
|
11
|
-
*/
|
|
1
|
+
/** The boot, re-exported under a path inside this package. */
|
|
12
2
|
export { configureFougere, extendFougere, useFougereApp } from '@fougere/app';
|
|
13
3
|
//# sourceMappingURL=boot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../../../../src/runtime/server/utils/boot.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../../../../src/runtime/server/utils/boot.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/utils/invoke.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/utils/invoke.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACpC,KAAK,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5C,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1G,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The server dual of the couple — same designation (class + verb), same return,
|
|
3
|
-
* same errors. `invokeOn` places the call (local façade → direct in-memory
|
|
4
|
-
* execution, a frond in `remotes` → JSON-RPC on the wire); what this file owns is
|
|
5
|
-
* the one host-specific part: finding the current request.
|
|
6
|
-
*
|
|
7
|
-
* In request context the current session rides along (event.context →
|
|
8
|
-
* invocation.state); outside a request, state is empty or explicit.
|
|
9
|
-
*/
|
|
1
|
+
/** The server dual of the couple — same designation (class + verb), same return, same errors. */
|
|
10
2
|
import { useEvent } from 'nitropack/runtime';
|
|
11
3
|
import { invokeOn, useFougereApp } from '@fougere/app';
|
|
12
4
|
export async function invoke(target, opOrInput, input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../../src/runtime/server/utils/invoke.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../../src/runtime/server/utils/invoke.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAA+B,EAC/B,SAA8B,EAC9B,KAAiB;IAEjB,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,OAAO,QAAQ,CAAI,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,IAAI,EAAE,CAA4B,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/nuxt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0-alpha.0",
|
|
4
4
|
"description": "The Nuxt module: Fougere's client primitives and server surface.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@nuxt/kit": "^4.5.1",
|
|
35
35
|
"jiti": "^2.6.1",
|
|
36
|
-
"@fougere/
|
|
37
|
-
"@fougere/
|
|
38
|
-
"@fougere/
|
|
36
|
+
"@fougere/app": "0.7.0-alpha.0",
|
|
37
|
+
"@fougere/core": "0.7.0-alpha.0",
|
|
38
|
+
"@fougere/defaults": "0.7.0-alpha.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@nuxt/schema": "^4.5.1",
|
package/src/module.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fougere/nuxt — Nuxt module: scans fronds, registers the four
|
|
3
|
-
* primitives (useQuery/useCommand, useFormFor, useCurrentUser) and the
|
|
4
|
-
* server surface (call envelope, session, REST bridge, auth).
|
|
5
|
-
*/
|
|
1
|
+
/** @fougere/nuxt — Nuxt module. */
|
|
6
2
|
import {
|
|
7
3
|
defineNuxtModule,
|
|
8
4
|
addServerHandler,
|
|
@@ -29,25 +25,12 @@ import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
|
29
25
|
export interface FougereModuleOptions {
|
|
30
26
|
/** Override fougere.config.ts values from nuxt.config. Optional. */
|
|
31
27
|
db?: FougereConfig['db'];
|
|
32
|
-
/**
|
|
33
|
-
* Where `fronds/` lives, relative to the app's rootDir. Default: the app
|
|
34
|
-
* itself. Set to `../..` for an app under `apps/*` in a workspace whose
|
|
35
|
-
* fronds are shared at the root. Config and `.fougere` stay app-local.
|
|
36
|
-
*/
|
|
28
|
+
/** Where `fronds/` lives, relative to the app's rootDir. */
|
|
37
29
|
root?: string;
|
|
38
30
|
|
|
39
31
|
/**
|
|
40
|
-
* One key per EXTENSION, and the key is the package suffix AND the export name —
|
|
41
|
-
* `
|
|
42
|
-
* keep in step with the packages, the same rule the scan applies to `@fronds/<name>`.
|
|
43
|
-
*
|
|
44
|
-
* An extension is a FUNCTION and this module writes a FILE, so a project cannot pass one
|
|
45
|
-
* here: it names one, and the options travel beside it as data.
|
|
46
|
-
*
|
|
47
|
-
* The keys are declared rather than left open on purpose. An open record would derive
|
|
48
|
-
* everything and accept `callz: {}` in silence — the failure this repo already records
|
|
49
|
-
* for `adapters:`, which "fails OPEN, giving neither completion nor a guard". The price
|
|
50
|
-
* is that a new extension package adds a key here.
|
|
32
|
+
* One key per EXTENSION, and the key is the package suffix AND the export name — `calls` is
|
|
33
|
+
* `import { calls } from '@fougere/calls'`.
|
|
51
34
|
*/
|
|
52
35
|
/** `@fougere/observability` — a span per operation, the four signals, OTLP. */
|
|
53
36
|
observability?: Record<string, unknown> | false;
|
|
@@ -55,13 +38,7 @@ export interface FougereModuleOptions {
|
|
|
55
38
|
calls?: Record<string, unknown> | false;
|
|
56
39
|
}
|
|
57
40
|
|
|
58
|
-
/**
|
|
59
|
-
* The extension keys, in the order they are mounted.
|
|
60
|
-
*
|
|
61
|
-
* A list and not the options object's own keys: the ORDER is ours, not the project's.
|
|
62
|
-
* `observability` installs the middleware that opens the span every log line written
|
|
63
|
-
* inside a call will carry — mounted the other way round, the lines leave uncorrelated.
|
|
64
|
-
*/
|
|
41
|
+
/** The extension keys, in the order they are mounted. */
|
|
65
42
|
const EXTENSION_KEYS = ['observability', 'calls'] as const;
|
|
66
43
|
|
|
67
44
|
/** What the project asked for, in mount order. `false` is how a key is turned off. */
|
|
@@ -290,7 +267,7 @@ const module = defineNuxtModule<FougereModuleOptions>({
|
|
|
290
267
|
// 500 on every call in `nuxt dev`, 200 once the statement is the only source.
|
|
291
268
|
// A codegen inside one repo also had nothing to carry: `fougere sync` writes classes
|
|
292
269
|
// because its source is ANOTHER repo, and here the author can just import.
|
|
293
|
-
const
|
|
270
|
+
const frondsFile = ['fronds.ts', 'fronds.mts', 'fronds.js', 'fronds.mjs']
|
|
294
271
|
.map((f) => resolve(scanRoot, f)).find((f) => existsSync(f));
|
|
295
272
|
|
|
296
273
|
// No statement of its own: the build writes the one the scan implies, so the runtime
|
|
@@ -301,7 +278,7 @@ const module = defineNuxtModule<FougereModuleOptions>({
|
|
|
301
278
|
// do (`Post.js` for `Post.ts`), and Nitro externalizes a `.mjs` it can hand to Node —
|
|
302
279
|
// which then resolves `@fronds/*` against a package that does not exist, since an alias
|
|
303
280
|
// is a bundler's. Measured both ways, in-process: `.mjs` answers 500, `.ts` answers.
|
|
304
|
-
const statedPath =
|
|
281
|
+
const statedPath = frondsFile ?? addTemplate({
|
|
305
282
|
filename: 'fougere-fronds.ts',
|
|
306
283
|
write: true,
|
|
307
284
|
getContents: () => emitStatement(scan),
|
|
@@ -325,13 +302,7 @@ export default module;
|
|
|
325
302
|
// Exported (not just module-internal) so its output is unit-testable without
|
|
326
303
|
// spinning up a whole Nuxt build.
|
|
327
304
|
|
|
328
|
-
/**
|
|
329
|
-
* What of the config a generated plugin can carry: values, never providers.
|
|
330
|
-
*
|
|
331
|
-
* `auth` holds a live object built by `betterAuth(...)`, so it cannot be written into a
|
|
332
|
-
* module — and it needs a database, which a codegen'd host has already resolved its own
|
|
333
|
-
* way. The rest is data and travels.
|
|
334
|
-
*/
|
|
305
|
+
/** What of the config a generated plugin can carry: values, never providers. */
|
|
335
306
|
function carried(config: FougereConfig): Partial<FougereConfig> {
|
|
336
307
|
const { remotes, adapters, sources } = config as FougereConfig & { sources?: unknown };
|
|
337
308
|
return {
|
|
@@ -344,9 +315,6 @@ function carried(config: FougereConfig): Partial<FougereConfig> {
|
|
|
344
315
|
/**
|
|
345
316
|
* The entity names a SYNCED remote brought in — `fougere sync` writes the classes under
|
|
346
317
|
* `.fougere/`, and a consumer designates them exactly as it designates its own.
|
|
347
|
-
*
|
|
348
|
-
* By filename and not by loading them: this runs before the loader is installed, and a
|
|
349
|
-
* class file is named after its class by the same convention the scan reads.
|
|
350
318
|
*/
|
|
351
319
|
async function syncedEntityNames(rootDir: string, conventions: Conventions): Promise<string[]> {
|
|
352
320
|
const remotesPath = resolve(rootDir, '.fougere', 'remotes.json');
|
|
@@ -453,8 +421,10 @@ export function generateBootPlugin(
|
|
|
453
421
|
lines.push(` configureFougere({`);
|
|
454
422
|
if (statedPath) lines.push(` fronds,`);
|
|
455
423
|
lines.push(` config: ${JSON.stringify(carried(config))},`);
|
|
456
|
-
|
|
457
|
-
|
|
424
|
+
// The whole thing, not a hand-picked few of its members: the three this used to name
|
|
425
|
+
// left `transacted` and `close` behind, so a `Together` always compensated and the
|
|
426
|
+
// connection was never released — under Nuxt only, which is where the app really runs.
|
|
427
|
+
lines.push(` storage,`);
|
|
458
428
|
// Two members of the ascent, named — not a claim on everything after the boot. The
|
|
459
429
|
// storage's is core's own declaration (`migrating`), so this codegen states no order and
|
|
460
430
|
// cannot mistype the name it would otherwise be silently adding beside.
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The session: resolved once server-side, hydrated with the page, read
|
|
3
|
-
* here as reactive state. refresh() re-reads it after a client-side
|
|
4
|
-
* auth change (login, logout) — no page reload, no hand-rolled /api/me.
|
|
5
|
-
*
|
|
6
|
-
* `session` is the whole view (extensible context); `user` is its
|
|
7
|
-
* everyday projection.
|
|
8
|
-
*/
|
|
1
|
+
/** The session. */
|
|
9
2
|
import { useState, useRequestFetch } from '#imports';
|
|
10
3
|
import { computed } from 'vue';
|
|
11
4
|
import type { SessionView } from '@fougere/app/client';
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The form contract — state, validation, submission, error mapping.
|
|
3
|
-
* Never a widget: the page owns the rendering, this owns the mechanics.
|
|
4
|
-
*
|
|
5
|
-
* The cycle composes the other primitives: fields from the io axes,
|
|
6
|
-
* local pre-judgment with the same rules the handler enforces (one
|
|
7
|
-
* declaration, both sides), submission through the command (so the
|
|
8
|
-
* entity link revalidates mounted queries), and per-field errors in
|
|
9
|
-
* the same `{ path, message }` shape whoever judged.
|
|
10
|
-
*/
|
|
1
|
+
/** The form contract — state, validation, submission, error mapping. */
|
|
11
2
|
import { reactive, computed } from 'vue';
|
|
12
3
|
import { lowerFirst, validationErrorsOf } from '@fougere/core/contract';
|
|
13
4
|
import { useCommand } from './useFougereData.js';
|
|
@@ -40,8 +31,8 @@ export function useFormFor<T = Record<string, unknown>>(entity: FormEntity, opti
|
|
|
40
31
|
for (const key of Object.keys(errors)) delete errors[key];
|
|
41
32
|
}
|
|
42
33
|
|
|
43
|
-
/** Local pre-
|
|
44
|
-
function
|
|
34
|
+
/** Local pre-verdict — same rules as the handler, saves a lost round-trip. */
|
|
35
|
+
function validator(): boolean {
|
|
45
36
|
clearErrors();
|
|
46
37
|
const result = entity.validate(payloadOf(values));
|
|
47
38
|
if (result.success) return true;
|
|
@@ -49,15 +40,11 @@ export function useFormFor<T = Record<string, unknown>>(entity: FormEntity, opti
|
|
|
49
40
|
return false;
|
|
50
41
|
}
|
|
51
42
|
|
|
52
|
-
/**
|
|
53
|
-
* Judge locally, then send through the command. Returns the created/updated
|
|
54
|
-
* value, or null when a judge (either side) rejected — the errors land per
|
|
55
|
-
* field either way, the form never knows who judged.
|
|
56
|
-
*/
|
|
43
|
+
/** Validate locally, then send through the command. */
|
|
57
44
|
async function submit(): Promise<T | null> {
|
|
58
|
-
if (!
|
|
45
|
+
if (!validator()) return null;
|
|
59
46
|
try {
|
|
60
|
-
return await command.execute({ params: options.params,
|
|
47
|
+
return await command.execute({ params: options.params, input: payloadOf(values) });
|
|
61
48
|
} catch (err) {
|
|
62
49
|
const refusals = validationErrorsOf(err);
|
|
63
50
|
if (refusals) {
|
|
@@ -71,10 +58,8 @@ export function useFormFor<T = Record<string, unknown>>(entity: FormEntity, opti
|
|
|
71
58
|
return {
|
|
72
59
|
fields,
|
|
73
60
|
/**
|
|
74
|
-
* The same fields, keyed by name — a form that lays its inputs out by hand binds
|
|
75
|
-
*
|
|
76
|
-
* its own. Without it, a page retypes `type="email"` next to a card that says
|
|
77
|
-
* `format: 'email'`, and the browser enforces the page rather than the declaration.
|
|
61
|
+
* The same fields, keyed by name — a form that lays its inputs out by hand binds one at a time
|
|
62
|
+
* (`v-bind="fieldsByName.email.attrs"`), and still states no rule of its own.
|
|
78
63
|
*/
|
|
79
64
|
fieldsByName: Object.fromEntries(fields.map((f) => [f.name, f])) as Record<string, FormField>,
|
|
80
65
|
values,
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The couple — useQuery (reads) and useCommand (writes), the two dual gestures of
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* What the gestures ARE lives in `@fougere/app/client`: designation is class +
|
|
6
|
-
* verb, the key derives from designation plus input, and a successful command on
|
|
7
|
-
* an entity revalidates every mounted query on that entity. What lives here is
|
|
8
|
-
* Vue — `useAsyncData` for the read, refs for the pending flags, `onScopeDispose`
|
|
9
|
-
* for unregistration. The React adapter states the same three facts against its
|
|
10
|
-
* own primitives, and neither restates the rules.
|
|
11
|
-
*
|
|
12
|
-
* Both gestures ride the call envelope: the browser POSTs JSON-RPC to
|
|
13
|
-
* /_fougere/call; during SSR Nuxt collapses the same call to an in-process fetch
|
|
14
|
-
* (no network, no port).
|
|
2
|
+
* The couple — useQuery (reads) and useCommand (writes), the two dual gestures of a page talking
|
|
3
|
+
* to a Frond, in Vue.
|
|
15
4
|
*/
|
|
16
5
|
import { useAsyncData, useRequestFetch, refreshNuxtData } from '#imports';
|
|
17
6
|
import { ref, computed, toValue, onScopeDispose, type MaybeRefOrGetter, type Ref } from 'vue';
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session hydration — server half of useCurrentUser. The auth middleware
|
|
3
|
-
* already resolved the user onto event.context; this plugin copies the
|
|
4
|
-
* session view into state so it rides the payload to the client. The
|
|
5
|
-
* page arrives already knowing its user — no round-trip.
|
|
6
|
-
*/
|
|
1
|
+
/** Session hydration — server half of useCurrentUser. */
|
|
7
2
|
import { defineNuxtPlugin, useRequestEvent, useState } from '#imports';
|
|
8
3
|
import { sessionViewOf, type SessionView } from '@fougere/app/client';
|
|
9
4
|
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* REST catch-all — the h3 half of a door whose decisions live in `@fougere/app`.
|
|
3
|
-
*
|
|
4
|
-
* It used to derive its own answers: its own `pluralize`, its own "segment = op or
|
|
5
|
-
* id", and its own method rule — which was no rule at all. A known operation name
|
|
6
|
-
* won whatever the verb, so `GET /api/blog/posts/delete?id=…` reached the mutating
|
|
7
|
-
* method with the session cookie a browser attaches to any navigation, and a
|
|
8
|
-
* body-less `DELETE /api/blog/posts` was read as `create`.
|
|
9
|
-
*
|
|
10
|
-
* `schema-rest` already answers all three in one place, `exposed === false`
|
|
11
|
-
* included — so the fix was not a guard added here, it was the removal of the
|
|
12
|
-
* second answer. `serveRest` is now the third: the same decision serves Next, and
|
|
13
|
-
* neither adapter restates it.
|
|
14
|
-
*
|
|
15
|
-
* What stays here is translation: read the h3 event, write the h3 answer. The state
|
|
16
|
-
* is stamped from `event.context` — what the server resolved, never the wire.
|
|
17
|
-
*/
|
|
1
|
+
/** REST catch-all — the h3 half of a door whose decisions live in `@fougere/app`. */
|
|
18
2
|
import { defineEventHandler, readBody, getQuery, createError, setResponseStatus, setResponseHeaders } from 'h3';
|
|
19
3
|
import { serveRest, useFougereApp } from '@fougere/app';
|
|
20
4
|
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Receiving end for the browser — the h3 half. The decision (which audience, which
|
|
3
|
-
* runner, what a parse failure answers) lives in `@fougere/app`; what stays here is
|
|
4
|
-
* getting a JSON payload out of an h3 event, which is the one thing that genuinely
|
|
5
|
-
* differs between hosts. Next reads `await request.json()` and needs none of this.
|
|
6
|
-
*
|
|
7
|
-
* Trust boundary, unchanged: the browser sits outside the topology, so `state` is
|
|
8
|
-
* stamped from the server-resolved session (event.context), never taken from the wire.
|
|
9
|
-
*/
|
|
1
|
+
/** Receiving end for the browser — the h3 half. */
|
|
10
2
|
import { defineEventHandler } from 'h3';
|
|
11
3
|
import { serveRpc, rpcParseError, useFougereApp } from '@fougere/app';
|
|
12
4
|
import { MAX_BODY_BYTES } from '@fougere/core';
|
|
@@ -63,20 +55,7 @@ async function readWebBody(req: WebReq): Promise<unknown> {
|
|
|
63
55
|
return {};
|
|
64
56
|
}
|
|
65
57
|
|
|
66
|
-
/**
|
|
67
|
-
* Read the JSON-RPC payload from the h3 event, agnostic to h3 version AND trust
|
|
68
|
-
* boundary. We read the event's shape directly instead of calling `readBody`,
|
|
69
|
-
* whose static `from 'h3'` import can bind to a different h3 major than the one
|
|
70
|
-
* that shaped the event (nitro's runtime is v1 here; devtools drag in v2) —
|
|
71
|
-
* `readBody` v2 on a v1 event throws `event.req.text is not a function`.
|
|
72
|
-
*
|
|
73
|
-
* Two shapes occur, both verified:
|
|
74
|
-
* - SSR internal `$fetch`: a synthetic event whose `node.req.body` is already
|
|
75
|
-
* the raw JSON string — the mock stream is not readable, never drain it.
|
|
76
|
-
* - Browser POST: a real IncomingMessage, drained via stream events (`for
|
|
77
|
-
* await` fails: the SSR mock has no async iterator).
|
|
78
|
-
* The `event.req.json()` branch is the future once nitro is fully on h3 v2.
|
|
79
|
-
*/
|
|
58
|
+
/** Read the JSON-RPC payload from the h3 event, agnostic to h3 version AND trust boundary. */
|
|
80
59
|
async function readJsonBody(event: { req?: unknown; node?: { req?: unknown } }): Promise<unknown> {
|
|
81
60
|
const rawNodeReq = event.node?.req;
|
|
82
61
|
const nodeReq = rawNodeReq && typeof rawNodeReq === 'object' ? rawNodeReq as NodeReq : undefined;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The session view over the wire — same resolution the hydration reads,
|
|
3
|
-
*
|
|
4
|
-
* family as /_fougere/call.
|
|
2
|
+
* The session view over the wire — same resolution the hydration reads, for a client refreshing
|
|
3
|
+
* after login/logout.
|
|
5
4
|
*/
|
|
6
5
|
import { defineEventHandler } from 'h3';
|
|
7
6
|
import { sessionViewOf } from '@fougere/app';
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The boot, re-exported under a path inside this package.
|
|
3
|
-
*
|
|
4
|
-
* Every runtime file here reaches `@fougere/app` by name, because it is resolved
|
|
5
|
-
* from this package's own node_modules. The generated Nitro plugin cannot: it is
|
|
6
|
-
* written into the user's `.nuxt/`, so a bare `@fougere/app` would be resolved from
|
|
7
|
-
* the USER's project, where a transitive dependency is not visible under pnpm.
|
|
8
|
-
*
|
|
9
|
-
* So the codegen imports this file by absolute path, and this file — which does sit
|
|
10
|
-
* in `@fougere/nuxt` — does the resolving. One indirection, one reason.
|
|
11
|
-
*/
|
|
1
|
+
/** The boot, re-exported under a path inside this package. */
|
|
12
2
|
export { configureFougere, extendFougere, useFougereApp, type FougereServerConfig } from '@fougere/app';
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The server dual of the couple — same designation (class + verb), same return,
|
|
3
|
-
* same errors. `invokeOn` places the call (local façade → direct in-memory
|
|
4
|
-
* execution, a frond in `remotes` → JSON-RPC on the wire); what this file owns is
|
|
5
|
-
* the one host-specific part: finding the current request.
|
|
6
|
-
*
|
|
7
|
-
* In request context the current session rides along (event.context →
|
|
8
|
-
* invocation.state); outside a request, state is empty or explicit.
|
|
9
|
-
*/
|
|
1
|
+
/** The server dual of the couple — same designation (class + verb), same return, same errors. */
|
|
10
2
|
import { useEvent } from 'nitropack/runtime';
|
|
11
3
|
import { invokeOn, useFougereApp } from '@fougere/app';
|
|
12
4
|
import type { FrondCall, InvocationContext } from '@fougere/core';
|