@forge-cms/runtime 0.2.0 → 0.3.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-handlers.d.ts +43 -0
- package/dist/auth-handlers.d.ts.map +1 -0
- package/dist/auth-handlers.js +138 -0
- package/dist/auth-handlers.js.map +1 -0
- package/dist/csrf.d.ts +7 -0
- package/dist/csrf.d.ts.map +1 -0
- package/dist/csrf.js +46 -0
- package/dist/csrf.js.map +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -1
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +19 -3
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ApiContext } from '@forge-cms/api';
|
|
2
|
+
import type { AuthFailureReason } from '@forge-cms/auth';
|
|
3
|
+
import type { AnyForgeCmsRuntime } from './runtime.js';
|
|
4
|
+
/**
|
|
5
|
+
* Reason → HTTP response. Never leaks adapter/DB internals — see spec 053's error-mapping table.
|
|
6
|
+
* Exported so a host route calling `auth.login`/`auth.createUser`/`auth.signup` directly (rather than
|
|
7
|
+
* through `handleLogin`/`handleSignup`) maps the same `AuthActionResult` failure reasons the same way,
|
|
8
|
+
* instead of re-implementing (and risking drifting from) this switch.
|
|
9
|
+
*/
|
|
10
|
+
export declare function authFailureResponse(reason: AuthFailureReason): Response;
|
|
11
|
+
export interface AuthHandlerOptions<TEnv = unknown> {
|
|
12
|
+
runtime: AnyForgeCmsRuntime<TEnv>;
|
|
13
|
+
/** Omit the cookie's `Secure` attribute — only for local `http://` development. Defaults to `true`. */
|
|
14
|
+
cookie?: {
|
|
15
|
+
secure?: boolean;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface SignupHandlerOptions<TEnv = unknown> extends AuthHandlerOptions<TEnv> {
|
|
19
|
+
/** Public signup is opt-in — no implicit default-on. */
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `POST` `{ email, password }` → `{ data: { user, token } }` (unchanged shape — Bearer-compatible)
|
|
24
|
+
* plus a `Set-Cookie` that starts a browser session. `404` if the configured `AuthAdapter` doesn't
|
|
25
|
+
* implement `login`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function handleLogin<TEnv = unknown>(context: ApiContext<TEnv>, options: AuthHandlerOptions<TEnv>): Promise<Response>;
|
|
28
|
+
/**
|
|
29
|
+
* `POST` `{ email, password, name? }` → `{ data: { user, token } }` + `Set-Cookie`. Any other body
|
|
30
|
+
* field (e.g. a `role`) is never read — role escalation through this endpoint is structurally
|
|
31
|
+
* impossible, not merely hidden. `404` when `options.enabled` is `false` or the adapter doesn't
|
|
32
|
+
* implement `signup`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function handleSignup<TEnv = unknown>(context: ApiContext<TEnv>, options: SignupHandlerOptions<TEnv>): Promise<Response>;
|
|
35
|
+
/**
|
|
36
|
+
* Clears the session cookie. Idempotent (`204` whether or not a session existed) and CSRF-checked
|
|
37
|
+
* (a cross-site page can't force-clear a victim's session either). Does not — and cannot — revoke a
|
|
38
|
+
* Bearer token held elsewhere; tokens are stateless. See spec 053's Non-goals.
|
|
39
|
+
*/
|
|
40
|
+
export declare function handleLogout<TEnv = unknown>(context: ApiContext<TEnv>, options: AuthHandlerOptions<TEnv>): Promise<Response>;
|
|
41
|
+
/** `GET` → `{ data: user }` from the session (cookie or Bearer), or `401`. */
|
|
42
|
+
export declare function handleMe<TEnv = unknown>(context: ApiContext<TEnv>, options: AuthHandlerOptions<TEnv>): Promise<Response>;
|
|
43
|
+
//# sourceMappingURL=auth-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-handlers.d.ts","sourceRoot":"","sources":["../src/auth-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAwBvD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,QAAQ,CAWvE;AAUD,MAAM,WAAW,kBAAkB,CAAC,IAAI,GAAG,OAAO;IAChD,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,uGAAuG;IACvG,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACpF,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAG,OAAO,EAC9C,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EACzB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,QAAQ,CAAC,CA0BnB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,GAAG,OAAO,EAC/C,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EACzB,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAClC,OAAO,CAAC,QAAQ,CAAC,CAmCnB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,GAAG,OAAO,EAC/C,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EACzB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,QAAQ,CAAC,CAanB;AAED,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,IAAI,GAAG,OAAO,EAC3C,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EACzB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAChC,OAAO,CAAC,QAAQ,CAAC,CAUnB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { getLogger } from '@forge-cms/core';
|
|
2
|
+
import { ForgeAuthError, buildLogoutCookie, buildSessionCookie } from '@forge-cms/auth';
|
|
3
|
+
import { assertCsrfSafe } from './csrf.js';
|
|
4
|
+
import { InvalidInputError, isForgeError, toApiErrorBody } from './errors.js';
|
|
5
|
+
function jsonResponse(data, status = 200) {
|
|
6
|
+
return new Response(JSON.stringify(data), {
|
|
7
|
+
status,
|
|
8
|
+
headers: { 'content-type': 'application/json' }
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function errorResponse(code, message, status) {
|
|
12
|
+
return jsonResponse({ error: { code, message } }, status);
|
|
13
|
+
}
|
|
14
|
+
function toErrorResponse(err) {
|
|
15
|
+
if (isForgeError(err)) {
|
|
16
|
+
const body = toApiErrorBody(err);
|
|
17
|
+
return jsonResponse(body, err.status);
|
|
18
|
+
}
|
|
19
|
+
getLogger().error('Unexpected error in auth handler', err);
|
|
20
|
+
return errorResponse('INTERNAL_ERROR', 'An unexpected error occurred', 500);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reason → HTTP response. Never leaks adapter/DB internals — see spec 053's error-mapping table.
|
|
24
|
+
* Exported so a host route calling `auth.login`/`auth.createUser`/`auth.signup` directly (rather than
|
|
25
|
+
* through `handleLogin`/`handleSignup`) maps the same `AuthActionResult` failure reasons the same way,
|
|
26
|
+
* instead of re-implementing (and risking drifting from) this switch.
|
|
27
|
+
*/
|
|
28
|
+
export function authFailureResponse(reason) {
|
|
29
|
+
switch (reason) {
|
|
30
|
+
case 'invalid-credentials':
|
|
31
|
+
return errorResponse('UNAUTHORIZED', 'Invalid email or password', 401);
|
|
32
|
+
case 'invalid-email':
|
|
33
|
+
return errorResponse('INVALID_INPUT', 'Invalid email address', 400);
|
|
34
|
+
case 'weak-password':
|
|
35
|
+
return errorResponse('INVALID_INPUT', 'Password does not meet requirements', 400);
|
|
36
|
+
case 'email-in-use':
|
|
37
|
+
return errorResponse('UNIQUE_CONSTRAINT', 'Email is already in use', 409);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function readJsonBody(request) {
|
|
41
|
+
try {
|
|
42
|
+
return (await request.json());
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
throw new InvalidInputError('Invalid JSON body');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* `POST` `{ email, password }` → `{ data: { user, token } }` (unchanged shape — Bearer-compatible)
|
|
50
|
+
* plus a `Set-Cookie` that starts a browser session. `404` if the configured `AuthAdapter` doesn't
|
|
51
|
+
* implement `login`.
|
|
52
|
+
*/
|
|
53
|
+
export async function handleLogin(context, options) {
|
|
54
|
+
const auth = options.runtime.adapters.auth;
|
|
55
|
+
if (!auth.login) {
|
|
56
|
+
return errorResponse('NOT_FOUND', 'Login is not supported by the configured auth adapter', 404);
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
const body = await readJsonBody(context.request);
|
|
60
|
+
const email = typeof body['email'] === 'string' ? body['email'] : undefined;
|
|
61
|
+
const password = typeof body['password'] === 'string' ? body['password'] : undefined;
|
|
62
|
+
if (!email || !password) {
|
|
63
|
+
return errorResponse('INVALID_INPUT', 'Missing email or password', 400);
|
|
64
|
+
}
|
|
65
|
+
const result = await auth.login(email, password);
|
|
66
|
+
if (!result.ok)
|
|
67
|
+
return authFailureResponse(result.reason);
|
|
68
|
+
const response = jsonResponse({ data: { user: result.user, token: result.token } });
|
|
69
|
+
response.headers.append('set-cookie', buildSessionCookie(result.token, { secure: options.cookie?.secure ?? true }));
|
|
70
|
+
return response;
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return toErrorResponse(err);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* `POST` `{ email, password, name? }` → `{ data: { user, token } }` + `Set-Cookie`. Any other body
|
|
78
|
+
* field (e.g. a `role`) is never read — role escalation through this endpoint is structurally
|
|
79
|
+
* impossible, not merely hidden. `404` when `options.enabled` is `false` or the adapter doesn't
|
|
80
|
+
* implement `signup`.
|
|
81
|
+
*/
|
|
82
|
+
export async function handleSignup(context, options) {
|
|
83
|
+
if (!options.enabled) {
|
|
84
|
+
return errorResponse('NOT_FOUND', 'Signup is disabled', 404);
|
|
85
|
+
}
|
|
86
|
+
const auth = options.runtime.adapters.auth;
|
|
87
|
+
if (!auth.signup) {
|
|
88
|
+
return errorResponse('NOT_FOUND', 'Signup is not supported by the configured auth adapter', 404);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const body = await readJsonBody(context.request);
|
|
92
|
+
const email = typeof body['email'] === 'string' ? body['email'] : undefined;
|
|
93
|
+
const password = typeof body['password'] === 'string' ? body['password'] : undefined;
|
|
94
|
+
const name = typeof body['name'] === 'string' ? body['name'] : undefined;
|
|
95
|
+
if (!email || !password) {
|
|
96
|
+
return errorResponse('INVALID_INPUT', 'Missing email or password', 400);
|
|
97
|
+
}
|
|
98
|
+
const result = await auth.signup({ email, password, ...(name !== undefined && { name }) });
|
|
99
|
+
if (!result.ok)
|
|
100
|
+
return authFailureResponse(result.reason);
|
|
101
|
+
const response = jsonResponse({ data: { user: result.user, token: result.token } }, 201);
|
|
102
|
+
response.headers.append('set-cookie', buildSessionCookie(result.token, { secure: options.cookie?.secure ?? true }));
|
|
103
|
+
return response;
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
return toErrorResponse(err);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Clears the session cookie. Idempotent (`204` whether or not a session existed) and CSRF-checked
|
|
111
|
+
* (a cross-site page can't force-clear a victim's session either). Does not — and cannot — revoke a
|
|
112
|
+
* Bearer token held elsewhere; tokens are stateless. See spec 053's Non-goals.
|
|
113
|
+
*/
|
|
114
|
+
export async function handleLogout(context, options) {
|
|
115
|
+
try {
|
|
116
|
+
assertCsrfSafe(context.request);
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
return toErrorResponse(err);
|
|
120
|
+
}
|
|
121
|
+
const response = new Response(null, { status: 204 });
|
|
122
|
+
response.headers.append('set-cookie', buildLogoutCookie({ secure: options.cookie?.secure ?? true }));
|
|
123
|
+
return response;
|
|
124
|
+
}
|
|
125
|
+
/** `GET` → `{ data: user }` from the session (cookie or Bearer), or `401`. */
|
|
126
|
+
export async function handleMe(context, options) {
|
|
127
|
+
try {
|
|
128
|
+
const user = await options.runtime.adapters.auth.requireAuth(context.request);
|
|
129
|
+
return jsonResponse({ data: user });
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
if (err instanceof ForgeAuthError) {
|
|
133
|
+
return errorResponse('UNAUTHORIZED', 'Unauthorized', 401);
|
|
134
|
+
}
|
|
135
|
+
return toErrorResponse(err);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=auth-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-handlers.js","sourceRoot":"","sources":["../src/auth-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/csrf.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rejects a cross-site mutating request that would otherwise ride on the ambient session cookie.
|
|
3
|
+
* A no-op for `GET`/`HEAD`/etc., and for any request authenticated via `Authorization: Bearer`
|
|
4
|
+
* (machine/API-key clients, and today's Bearer/`localStorage` browser client, are unaffected).
|
|
5
|
+
*/
|
|
6
|
+
export declare function assertCsrfSafe(request: Request): void;
|
|
7
|
+
//# sourceMappingURL=csrf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIrD"}
|
package/dist/csrf.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { SESSION_COOKIE_NAME, extractBearerToken } from '@forge-cms/auth';
|
|
2
|
+
import { CsrfError } from './errors.js';
|
|
3
|
+
const MUTATING_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
|
|
4
|
+
/**
|
|
5
|
+
* A request carries the ambient Forge session cookie as its only credential — no well-formed
|
|
6
|
+
* `Authorization: Bearer` — and is therefore the shape a cross-site page could forge (a browser
|
|
7
|
+
* attaches cookies to a cross-origin request automatically; it cannot attach a custom header without
|
|
8
|
+
* CORS explicitly allowing it). Tests for a *valid* Bearer credential specifically (via the same
|
|
9
|
+
* `extractBearerToken` `extractToken` itself uses), not mere presence of an `Authorization` header —
|
|
10
|
+
* otherwise a malformed header (e.g. `Authorization: Basic ...`) would make this function think no
|
|
11
|
+
* cookie is in play while `extractToken` falls through to the cookie anyway, letting exactly the
|
|
12
|
+
* request this check exists to catch skip it.
|
|
13
|
+
*/
|
|
14
|
+
function usesCookieCredential(request) {
|
|
15
|
+
if (extractBearerToken(request) !== null)
|
|
16
|
+
return false;
|
|
17
|
+
const cookie = request.headers.get('cookie');
|
|
18
|
+
if (!cookie)
|
|
19
|
+
return false;
|
|
20
|
+
return cookie.split(';').some((part) => part.trim().startsWith(`${SESSION_COOKIE_NAME}=`));
|
|
21
|
+
}
|
|
22
|
+
function isSameOrigin(request) {
|
|
23
|
+
const source = request.headers.get('origin') ?? request.headers.get('referer');
|
|
24
|
+
if (!source)
|
|
25
|
+
return false;
|
|
26
|
+
try {
|
|
27
|
+
return new URL(source).origin === new URL(request.url).origin;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Rejects a cross-site mutating request that would otherwise ride on the ambient session cookie.
|
|
35
|
+
* A no-op for `GET`/`HEAD`/etc., and for any request authenticated via `Authorization: Bearer`
|
|
36
|
+
* (machine/API-key clients, and today's Bearer/`localStorage` browser client, are unaffected).
|
|
37
|
+
*/
|
|
38
|
+
export function assertCsrfSafe(request) {
|
|
39
|
+
if (!MUTATING_METHODS.has(request.method))
|
|
40
|
+
return;
|
|
41
|
+
if (!usesCookieCredential(request))
|
|
42
|
+
return;
|
|
43
|
+
if (!isSameOrigin(request))
|
|
44
|
+
throw new CsrfError();
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=csrf.js.map
|
package/dist/csrf.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.js","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAErE;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO;IAClD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO;IAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,SAAS,EAAE,CAAC;AACpD,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -27,6 +27,15 @@ export declare class UnauthorizedError extends ForgeError {
|
|
|
27
27
|
export declare class AccessDeniedError extends ForgeError {
|
|
28
28
|
constructor(message?: string);
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* A mutating request authenticated only by the ambient Forge session cookie (no `Authorization`
|
|
32
|
+
* header) whose `Origin`/`Referer` doesn't match the request's own host — see `csrf.ts`'s
|
|
33
|
+
* `assertCsrfSafe`. A request authenticated via `Authorization: Bearer` is never subject to this
|
|
34
|
+
* check, so no machine/API-key client is affected.
|
|
35
|
+
*/
|
|
36
|
+
export declare class CsrfError extends ForgeError {
|
|
37
|
+
constructor(message?: string);
|
|
38
|
+
}
|
|
30
39
|
/**
|
|
31
40
|
* A `create`/`update` would violate a unique index — whether field-level `unique: true` or a
|
|
32
41
|
* collection-level compound `indexes` entry. Every `DatabaseAdapter` (InMemory, libSQL, D1) surfaces
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;CAMlE;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;gBAExB,OAAO,EAAE,eAAe,EAAE;CAIvC;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAiB;CAGrC;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAc;CAGlC;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEd,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAWjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE5D;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,CAyBjE"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;CAMlE;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;gBAExB,OAAO,EAAE,eAAe,EAAE;CAIvC;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAiB;CAGrC;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAc;CAGlC;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,UAAU;gBAC3B,OAAO,SAAgC;CAGpD;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEd,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAWjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAE5D;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,CAyBjE"}
|
package/dist/errors.js
CHANGED
|
@@ -45,6 +45,17 @@ export class AccessDeniedError extends ForgeError {
|
|
|
45
45
|
super(message, 403, 'FORBIDDEN');
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* A mutating request authenticated only by the ambient Forge session cookie (no `Authorization`
|
|
50
|
+
* header) whose `Origin`/`Referer` doesn't match the request's own host — see `csrf.ts`'s
|
|
51
|
+
* `assertCsrfSafe`. A request authenticated via `Authorization: Bearer` is never subject to this
|
|
52
|
+
* check, so no machine/API-key client is affected.
|
|
53
|
+
*/
|
|
54
|
+
export class CsrfError extends ForgeError {
|
|
55
|
+
constructor(message = 'Cross-site request rejected') {
|
|
56
|
+
super(message, 403, 'FORBIDDEN');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
48
59
|
/**
|
|
49
60
|
* A `create`/`update` would violate a unique index — whether field-level `unique: true` or a
|
|
50
61
|
* collection-level compound `indexes` entry. Every `DatabaseAdapter` (InMemory, libSQL, D1) surfaces
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,cAAc,CAAC;AAIxE,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers.js
CHANGED
|
@@ -2,6 +2,7 @@ import { getLogger } from '@forge-cms/core';
|
|
|
2
2
|
import { ForgeAuthError, hasAnyRole } from '@forge-cms/auth';
|
|
3
3
|
import * as operations from './operations.js';
|
|
4
4
|
import { AccessDeniedError, InvalidInputError, InvalidQueryError, isForgeError, toApiErrorBody } from './errors.js';
|
|
5
|
+
import { assertCsrfSafe } from './csrf.js';
|
|
5
6
|
const WHERE_OPERATORS = new Set([
|
|
6
7
|
'eq',
|
|
7
8
|
'ne',
|
|
@@ -265,6 +266,13 @@ async function resolveRequest(context, options, operation, needsId) {
|
|
|
265
266
|
const routeRoles = collection.access?.[operation] === undefined ? allowedRoles : undefined;
|
|
266
267
|
const mustAuth = requireAuthFlag === true || routeRoles !== undefined;
|
|
267
268
|
try {
|
|
269
|
+
// Applies to every mutating request reaching this collection, whether or not it ends up
|
|
270
|
+
// authenticated — a collection with its own function-based `access` (e.g.
|
|
271
|
+
// `defineUsersCollection()`) takes the `resolveOptionalUser` branch below, which must be
|
|
272
|
+
// CSRF-checked exactly like the `authorize()` branch: the ambient session cookie is just as
|
|
273
|
+
// forgeable there. A no-op for anonymous requests (no session cookie) and for `Authorization:
|
|
274
|
+
// Bearer` clients — see `csrf.ts`.
|
|
275
|
+
assertCsrfSafe(context.request);
|
|
268
276
|
let user = null;
|
|
269
277
|
if (mustAuth) {
|
|
270
278
|
const result = await authorize(context, runtime, routeRoles);
|
|
@@ -278,9 +286,9 @@ async function resolveRequest(context, options, operation, needsId) {
|
|
|
278
286
|
return { collection, collectionSlug, user };
|
|
279
287
|
}
|
|
280
288
|
catch (err) {
|
|
281
|
-
// `authorize`/`resolveOptionalUser` only throw an unexpected (non-auth-rejection)
|
|
282
|
-
// this function is called before any handler's own try/catch, so it must convert
|
|
283
|
-
// rather than let it escape as an unhandled rejection.
|
|
289
|
+
// `assertCsrfSafe`/`authorize`/`resolveOptionalUser` only throw an unexpected (non-auth-rejection)
|
|
290
|
+
// error here — this function is called before any handler's own try/catch, so it must convert
|
|
291
|
+
// that itself rather than let it escape as an unhandled rejection.
|
|
284
292
|
return toErrorResponse(err, null);
|
|
285
293
|
}
|
|
286
294
|
}
|
|
@@ -492,6 +500,8 @@ async function resolveGlobalRequest(context, options, operation) {
|
|
|
492
500
|
const routeRoles = global.access?.[operation] === undefined ? allowedRoles : undefined;
|
|
493
501
|
const mustAuth = requireAuthFlag === true || routeRoles !== undefined;
|
|
494
502
|
try {
|
|
503
|
+
// See the matching comment in `resolveRequest` — must run regardless of `mustAuth`.
|
|
504
|
+
assertCsrfSafe(context.request);
|
|
495
505
|
let user = null;
|
|
496
506
|
if (mustAuth) {
|
|
497
507
|
const result = await authorize(context, runtime, routeRoles);
|
|
@@ -627,6 +637,12 @@ export async function handlePreview(context, options) {
|
|
|
627
637
|
if (!collection) {
|
|
628
638
|
return errorResponse('NOT_FOUND', `Collection '${collectionSlug}' not found`, 404);
|
|
629
639
|
}
|
|
640
|
+
try {
|
|
641
|
+
assertCsrfSafe(context.request);
|
|
642
|
+
}
|
|
643
|
+
catch (err) {
|
|
644
|
+
return toErrorResponse(err, null);
|
|
645
|
+
}
|
|
630
646
|
let user = null;
|
|
631
647
|
try {
|
|
632
648
|
user = await options.runtime.adapters.auth.requireAuth(context.request);
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,13 +3,15 @@ export type { OperationContext } from './context.js';
|
|
|
3
3
|
export { ForgeCmsRuntime } from './runtime.js';
|
|
4
4
|
export { handleList, handleRead, handleCreate, handleUpdate, handleDelete, handleGlobalRead, handleGlobalUpdate, handleListVersions, handleGetVersion, handleRestoreVersion, handlePreview, type HandlerOptions, type PreviewOptions, DEFAULT_LIMIT, MAX_LIMIT } from './handlers.js';
|
|
5
5
|
export { handleFile, type FileHandlerOptions } from './files.js';
|
|
6
|
+
export { handleLogin, handleSignup, handleLogout, handleMe, authFailureResponse, type AuthHandlerOptions, type SignupHandlerOptions } from './auth-handlers.js';
|
|
7
|
+
export { assertCsrfSafe } from './csrf.js';
|
|
6
8
|
export { applyFieldDefaults, applyAutoSlugs } from './defaults.js';
|
|
7
9
|
export { find, findByID, findOne, count, create, update, deleteDocument, type PaginatedDocs, type BaseOperationArgs, type FindArgs, type FindByIDArgs, type FindOneArgs, type CountArgs, type CreateArgs, type UpdateArgs, type DeleteArgs } from './operations.js';
|
|
8
10
|
export { getGlobal, updateGlobal, type GlobalBaseArgs, type GetGlobalArgs, type UpdateGlobalArgs } from './globals.js';
|
|
9
11
|
export { listVersions, getVersion, restoreVersion, createVersion, versionsEnabled, autosaveEnabled, type ListVersionsArgs, type GetVersionArgs, type RestoreVersionArgs, type CreateVersionArgs } from './versions.js';
|
|
10
12
|
export { resolveLocale, getLocalizedValue, setLocalizedValue, isLocalizedCollection, isLocalizedField, extractLocaleFromRequest, resolveLocalizedDocument, storeLocalizedDocument } from './localization.js';
|
|
11
13
|
export { findRelationFields, findReferencingDocuments, checkDeleteRestrictions, handleCascadeDelete, handleSetNullOnDelete, findOrphanedDocuments } from './relation-integrity.js';
|
|
12
|
-
export { ForgeError, NotFoundError, InvalidInputError, InvalidQueryError, UnknownFieldError, ValidationFailedError, UnauthorizedError, AccessDeniedError, UniqueConstraintError, isForgeError, toApiErrorBody, type ForgeErrorCode, type ForgeApiErrorBody } from './errors.js';
|
|
14
|
+
export { ForgeError, NotFoundError, InvalidInputError, InvalidQueryError, UnknownFieldError, ValidationFailedError, UnauthorizedError, AccessDeniedError, CsrfError, UniqueConstraintError, isForgeError, toApiErrorBody, type ForgeErrorCode, type ForgeApiErrorBody } from './errors.js';
|
|
13
15
|
export { populateRecord, populateRecords } from './populate.js';
|
|
14
16
|
export { describeCollection, describeCollections, describeFields, describeGlobal, describeGlobals, type CollectionDescription, type GlobalDescription, type FieldDescription, type BlockDescription } from './describe.js';
|
|
15
17
|
export { resolveAccess, resolveFieldAccess, mergeWhere, documentMatches, type AccessDecision } from './access.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,9 @@ export { ForgeCmsRuntime } from './runtime.js';
|
|
|
2
2
|
export { handleList, handleRead, handleCreate, handleUpdate, handleDelete, handleGlobalRead, handleGlobalUpdate, handleListVersions, handleGetVersion, handleRestoreVersion, handlePreview, DEFAULT_LIMIT, MAX_LIMIT } from './handlers.js';
|
|
3
3
|
// Serving stored files (spec 040)
|
|
4
4
|
export { handleFile } from './files.js';
|
|
5
|
+
// Browser auth foundation: login/signup/logout/me handlers + CSRF (spec 053)
|
|
6
|
+
export { handleLogin, handleSignup, handleLogout, handleMe, authFailureResponse } from './auth-handlers.js';
|
|
7
|
+
export { assertCsrfSafe } from './csrf.js';
|
|
5
8
|
// Field defaults and auto-slugs (spec 040)
|
|
6
9
|
export { applyFieldDefaults, applyAutoSlugs } from './defaults.js';
|
|
7
10
|
// Local API (spec 019) — the transport-free way to run CMS operations from server code.
|
|
@@ -14,7 +17,7 @@ export { listVersions, getVersion, restoreVersion, createVersion, versionsEnable
|
|
|
14
17
|
export { resolveLocale, getLocalizedValue, setLocalizedValue, isLocalizedCollection, isLocalizedField, extractLocaleFromRequest, resolveLocalizedDocument, storeLocalizedDocument } from './localization.js';
|
|
15
18
|
// Relation integrity — cascade, restrict, set-null on delete.
|
|
16
19
|
export { findRelationFields, findReferencingDocuments, checkDeleteRestrictions, handleCascadeDelete, handleSetNullOnDelete, findOrphanedDocuments } from './relation-integrity.js';
|
|
17
|
-
export { ForgeError, NotFoundError, InvalidInputError, InvalidQueryError, UnknownFieldError, ValidationFailedError, UnauthorizedError, AccessDeniedError, UniqueConstraintError, isForgeError, toApiErrorBody } from './errors.js';
|
|
20
|
+
export { ForgeError, NotFoundError, InvalidInputError, InvalidQueryError, UnknownFieldError, ValidationFailedError, UnauthorizedError, AccessDeniedError, CsrfError, UniqueConstraintError, isForgeError, toApiErrorBody } from './errors.js';
|
|
18
21
|
export { populateRecord, populateRecords } from './populate.js';
|
|
19
22
|
// Schema metadata for clients (the admin UI builds its form from this).
|
|
20
23
|
export { describeCollection, describeCollections, describeFields, describeGlobal, describeGlobals } from './describe.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAGb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAEjE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EAUf,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,8CAA8C;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EAGb,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAEjE,6EAA6E;AAC7E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,wFAAwF;AACxF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EAUf,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,OAAO,EACL,SAAS,EACT,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,8CAA8C;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAKhB,MAAM,eAAe,CAAC;AAEvB,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge-cms/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Runtime orchestrator for ForgeCMS — binds schema, adapters, and handlers.",
|
|
5
5
|
"author": "ForgeCMS contributors",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@forge-cms/api": "0.
|
|
39
|
-
"@forge-cms/auth": "0.
|
|
40
|
-
"@forge-cms/core": "0.
|
|
41
|
-
"@forge-cms/
|
|
42
|
-
"@forge-cms/
|
|
38
|
+
"@forge-cms/api": "0.3.0",
|
|
39
|
+
"@forge-cms/auth": "0.3.0",
|
|
40
|
+
"@forge-cms/core": "0.3.0",
|
|
41
|
+
"@forge-cms/storage": "0.3.0",
|
|
42
|
+
"@forge-cms/db": "0.3.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "5.9.2",
|