@fougere/app 0.12.4-alpha.0 → 0.12.5-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/auth.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type App, type AuthRuntime } from '@fougere/core';
2
2
  export declare function authOf(app: App): AuthRuntime | undefined;
3
- /** Get the auth runtime resolved at boot. Throws if no `auth` was declared in fougere.config.ts. */
3
+ /** Get the auth runtime resolved at boot. Throws when no process-local frond brought one. */
4
4
  export declare function useFougereAuth(): Promise<AuthRuntime>;
5
5
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,GAAG,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,GAAG,SAAS,CAExD;AAED,oGAAoG;AACpG,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAK3D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,GAAG,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,GAAG,SAAS,CAExD;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAK3D"}
package/dist/auth.js CHANGED
@@ -3,11 +3,11 @@ import { useFougereApp } from './boot.js';
3
3
  export function authOf(app) {
4
4
  return app.container.has(AUTH) ? app.container.resolve(AUTH) : undefined;
5
5
  }
6
- /** Get the auth runtime resolved at boot. Throws if no `auth` was declared in fougere.config.ts. */
6
+ /** Get the auth runtime resolved at boot. Throws when no process-local frond brought one. */
7
7
  export async function useFougereAuth() {
8
8
  const auth = authOf(await useFougereApp());
9
9
  if (!auth)
10
- throw new Error('Auth not configured — declare `auth: betterAuth({ … })` in fougere.config.ts.');
10
+ throw new Error("Auth not configured — declare `fronds: { '@fougere/auth-better': { … } }` in fougere.config.ts.");
11
11
  return auth;
12
12
  }
13
13
  //# sourceMappingURL=auth.js.map
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA8B,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,MAAM,CAAC,GAAQ;IAC7B,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAc,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAE5G,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA8B,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,MAAM,CAAC,GAAQ;IAC7B,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAc,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;IAE9H,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAW,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIlE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;CAC9C;AASD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,QAG3D;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,QAGjE;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,CAM5C;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAYpE"}
1
+ {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAW,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIlE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;CAC9C;AASD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,QAG3D;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,QAGjE;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,CAM5C;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAYpE"}
package/dist/boot.js CHANGED
@@ -1,4 +1,6 @@
1
1
  /** Fougere server bootstrap — single entry point for an app's lifecycle, whatever hosts it. */
2
+ import { resolve, sep } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
2
4
  import { applyConfig, createApp, identityFromEnv, Logger } from '@fougere/core';
3
5
  import { scanProject, frondAliases } from '@fougere/compiler';
4
6
  import { resolveConventions } from '@fougere/core';
@@ -63,7 +65,8 @@ async function boot() {
63
65
  const installLoader = (alias) => {
64
66
  if (!reads)
65
67
  return;
66
- const jiti = createJiti(import.meta.url, { interopDefault: true, ...(alias ? { alias } : {}) });
68
+ // From the project: a module key is resolved against whoever made the loader.
69
+ const jiti = createJiti(pathToFileURL(resolve(process.cwd()) + sep).href, { interopDefault: true, ...(alias ? { alias } : {}) });
67
70
  setModuleLoader((filePath) => jiti.import(filePath));
68
71
  };
69
72
  installLoader();
@@ -139,7 +142,7 @@ async function boot() {
139
142
  /** Who inherits code from whom — the tree, whole, so a refusal can name where an entry sits. */
140
143
  under: fileConfig.fronds,
141
144
  remoteTransport,
142
- extensions: [...stated.extensions, ...(_config.extensions ?? []), fileConfig.auth],
145
+ extensions: [...stated.extensions, ...(_config.extensions ?? [])],
143
146
  // Opened before the container, so released after it. Never wired here until now:
144
147
  // this host boots the storage and no host closed one, which is what made a reload
145
148
  // leak the pool of every app it discarded.
@@ -147,7 +150,7 @@ async function boot() {
147
150
  });
148
151
  log.info(`ascent: ${app.extensions().join(' → ') || 'nothing declared'}`);
149
152
  const ms = (performance.now() - bootStart).toFixed(0);
150
- log.info(`ready in ${ms}ms — ${app.fronds.length} frond(s)${fileConfig.auth ? ' + auth' : ''}`);
153
+ log.info(`ready in ${ms}ms — ${app.fronds.length} frond(s)`);
151
154
  return app;
152
155
  }
153
156
  //# sourceMappingURL=boot.js.map
package/dist/boot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAQA,mGAAmG;AACnG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAejF"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAQA,mGAAmG;AACnG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBjF"}
package/dist/state.js CHANGED
@@ -11,8 +11,10 @@ export async function stateFor(headers) {
11
11
  return {};
12
12
  try {
13
13
  const result = await auth.api.getSession({ headers });
14
- if (result?.session && result?.user)
15
- return { user: result.user, session: result.session };
14
+ if (result?.session && result?.user) {
15
+ const { token: _token, ...session } = result.session;
16
+ return { user: result.user, session };
17
+ }
16
18
  }
17
19
  catch {
18
20
  // An unreachable or misconfigured provider leaves the caller anonymous rather
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMnC,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAgB;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAA6B,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;QAC9E,wEAAwE;IAC1E,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMnC,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAgB;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAA6B,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACpC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;YAErD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;QAC9E,wEAAwE;IAC1E,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/app",
3
- "version": "0.12.4-alpha.0",
3
+ "version": "0.12.5-alpha.0",
4
4
  "description": "The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.",
5
5
  "keywords": [
6
6
  "fougere",
@@ -42,25 +42,25 @@
42
42
  ],
43
43
  "dependencies": {
44
44
  "jiti": "^2.6.1",
45
- "@fougere/core": "0.12.4-alpha.0",
46
- "@fougere/defaults": "0.12.4-alpha.0",
47
- "@fougere/schema": "0.12.4-alpha.0",
48
- "@fougere/adapter-memory": "0.12.4-alpha.0",
49
- "@fougere/http": "0.12.4-alpha.0",
50
- "@fougere/compiler": "0.12.4-alpha.0",
51
- "@fougere/transport-http": "0.12.4-alpha.0",
52
- "@fougere/adapter-rest": "0.12.4-alpha.0",
53
- "@fougere/container": "0.12.4-alpha.0"
45
+ "@fougere/core": "0.12.5-alpha.0",
46
+ "@fougere/defaults": "0.12.5-alpha.0",
47
+ "@fougere/schema": "0.12.5-alpha.0",
48
+ "@fougere/adapter-rest": "0.12.5-alpha.0",
49
+ "@fougere/container": "0.12.5-alpha.0",
50
+ "@fougere/http": "0.12.5-alpha.0",
51
+ "@fougere/adapter-memory": "0.12.5-alpha.0",
52
+ "@fougere/compiler": "0.12.5-alpha.0",
53
+ "@fougere/transport-http": "0.12.5-alpha.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "vitest": "^4.1.0",
57
- "@fougere/adapter-graphql": "0.12.4-alpha.0"
57
+ "@fougere/adapter-graphql": "0.12.5-alpha.0"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public"
61
61
  },
62
62
  "peerDependencies": {
63
- "@fougere/adapter-graphql": "^0.12.4-alpha.0"
63
+ "@fougere/adapter-graphql": "^0.12.5-alpha.0"
64
64
  },
65
65
  "peerDependenciesMeta": {
66
66
  "@fougere/adapter-graphql": {
package/src/auth.ts CHANGED
@@ -5,10 +5,10 @@ export function authOf(app: App): AuthRuntime | undefined {
5
5
  return app.container.has(AUTH) ? app.container.resolve<AuthRuntime>(AUTH) : undefined;
6
6
  }
7
7
 
8
- /** Get the auth runtime resolved at boot. Throws if no `auth` was declared in fougere.config.ts. */
8
+ /** Get the auth runtime resolved at boot. Throws when no process-local frond brought one. */
9
9
  export async function useFougereAuth(): Promise<AuthRuntime> {
10
10
  const auth = authOf(await useFougereApp());
11
- if (!auth) throw new Error('Auth not configured — declare `auth: betterAuth({ … })` in fougere.config.ts.');
11
+ if (!auth) throw new Error("Auth not configured — declare `fronds: { '@fougere/auth-better': { … } }` in fougere.config.ts.");
12
12
 
13
13
  return auth;
14
14
  }
package/src/boot.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  /** Fougere server bootstrap — single entry point for an app's lifecycle, whatever hosts it. */
2
+ import { resolve, sep } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
2
4
  import { applyConfig, createApp, identityFromEnv, Logger } from '@fougere/core';
3
5
  import { scanProject, frondAliases } from '@fougere/compiler';
4
6
  import { resolveConventions } from '@fougere/core';
@@ -100,7 +102,8 @@ async function boot(): Promise<App> {
100
102
  const reads = (_config.scan === undefined && _config.fronds === undefined) || _config.config === undefined;
101
103
  const installLoader = (alias?: Record<string, string>): void => {
102
104
  if (!reads) return;
103
- const jiti = createJiti(import.meta.url, { interopDefault: true, ...(alias ? { alias } : {}) });
105
+ // From the project: a module key is resolved against whoever made the loader.
106
+ const jiti = createJiti(pathToFileURL(resolve(process.cwd()) + sep).href, { interopDefault: true, ...(alias ? { alias } : {}) });
104
107
  setModuleLoader((filePath) => jiti.import(filePath) as Promise<Record<string, unknown>>);
105
108
  };
106
109
  installLoader();
@@ -180,7 +183,7 @@ async function boot(): Promise<App> {
180
183
  /** Who inherits code from whom — the tree, whole, so a refusal can name where an entry sits. */
181
184
  under: fileConfig.fronds,
182
185
  remoteTransport,
183
- extensions: [...stated.extensions, ...(_config.extensions ?? []), fileConfig.auth],
186
+ extensions: [...stated.extensions, ...(_config.extensions ?? [])],
184
187
  // Opened before the container, so released after it. Never wired here until now:
185
188
  // this host boots the storage and no host closed one, which is what made a reload
186
189
  // leak the pool of every app it discarded.
@@ -190,7 +193,7 @@ async function boot(): Promise<App> {
190
193
  log.info(`ascent: ${app.extensions().join(' → ') || 'nothing declared'}`);
191
194
 
192
195
  const ms = (performance.now() - bootStart).toFixed(0);
193
- log.info(`ready in ${ms}ms — ${app.fronds.length} frond(s)${fileConfig.auth ? ' + auth' : ''}`);
196
+ log.info(`ready in ${ms}ms — ${app.fronds.length} frond(s)`);
194
197
 
195
198
  return app;
196
199
  }
package/src/state.ts CHANGED
@@ -3,7 +3,7 @@ import { useFougereApp } from './boot.js';
3
3
  import { authOf } from './auth.js';
4
4
 
5
5
  type SessionApi = {
6
- getSession: (opts: { headers: Headers }) => Promise<{ session: { userId: string }; user: Record<string, unknown> } | null>;
6
+ getSession: (opts: { headers: Headers }) => Promise<{ session: { userId: string; token?: string }; user: Record<string, unknown> } | null>;
7
7
  };
8
8
 
9
9
  /** The request state for these headers. Empty when no auth is declared, or nobody is signed in. */
@@ -15,7 +15,11 @@ export async function stateFor(headers: Headers): Promise<Record<string, unknown
15
15
 
16
16
  try {
17
17
  const result = await (auth.api as unknown as SessionApi).getSession({ headers });
18
- if (result?.session && result?.user) return { user: result.user, session: result.session };
18
+ if (result?.session && result?.user) {
19
+ const { token: _token, ...session } = result.session;
20
+
21
+ return { user: result.user, session };
22
+ }
19
23
  } catch {
20
24
  // An unreachable or misconfigured provider leaves the caller anonymous rather
21
25
  // than failing the request — the same choice the Nuxt middleware makes.