@tai42/api-client 16.0.0 → 16.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/agents-client.d.ts +26 -0
- package/dist/client/agents-client.d.ts.map +1 -0
- package/dist/client/agents-client.js +19 -0
- package/dist/client/agents-client.js.map +1 -0
- package/dist/client/auth-client.d.ts +205 -0
- package/dist/client/auth-client.d.ts.map +1 -0
- package/dist/client/auth-client.js +59 -0
- package/dist/client/auth-client.js.map +1 -0
- package/dist/client/backend-client.d.ts +39 -0
- package/dist/client/backend-client.d.ts.map +1 -0
- package/dist/client/backend-client.js +22 -0
- package/dist/client/backend-client.js.map +1 -0
- package/dist/client/backup-client.d.ts +56 -0
- package/dist/client/backup-client.d.ts.map +1 -0
- package/dist/client/backup-client.js +12 -0
- package/dist/client/backup-client.js.map +1 -0
- package/dist/client/capabilities-client.d.ts +35 -0
- package/dist/client/capabilities-client.d.ts.map +1 -0
- package/dist/client/capabilities-client.js +19 -0
- package/dist/client/capabilities-client.js.map +1 -0
- package/dist/client/channels-client.d.ts +7 -0
- package/dist/client/channels-client.d.ts.map +1 -0
- package/dist/client/channels-client.js +10 -0
- package/dist/client/channels-client.js.map +1 -0
- package/dist/client/config-client.d.ts +59 -0
- package/dist/client/config-client.d.ts.map +1 -0
- package/dist/client/config-client.js +18 -0
- package/dist/client/config-client.js.map +1 -0
- package/dist/client/connectors-client.d.ts +225 -0
- package/dist/client/connectors-client.d.ts.map +1 -0
- package/dist/client/connectors-client.js +31 -0
- package/dist/client/connectors-client.js.map +1 -0
- package/dist/client/conversations-client.d.ts +399 -0
- package/dist/client/conversations-client.d.ts.map +1 -0
- package/dist/client/conversations-client.js +120 -0
- package/dist/client/conversations-client.js.map +1 -0
- package/dist/client/hooks-client.d.ts +113 -0
- package/dist/client/hooks-client.d.ts.map +1 -0
- package/dist/client/hooks-client.js +25 -0
- package/dist/client/hooks-client.js.map +1 -0
- package/dist/{client.d.ts → client/index.d.ts} +2235 -2666
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +79 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/interactions-client.d.ts +52 -0
- package/dist/client/interactions-client.d.ts.map +1 -0
- package/dist/client/interactions-client.js +84 -0
- package/dist/client/interactions-client.js.map +1 -0
- package/dist/client/login-client.d.ts +56 -0
- package/dist/client/login-client.d.ts.map +1 -0
- package/dist/client/login-client.js +103 -0
- package/dist/client/login-client.js.map +1 -0
- package/dist/client/manifest-client.d.ts +354 -0
- package/dist/client/manifest-client.d.ts.map +1 -0
- package/dist/client/manifest-client.js +76 -0
- package/dist/client/manifest-client.js.map +1 -0
- package/dist/client/marketplace-client.d.ts +274 -0
- package/dist/client/marketplace-client.d.ts.map +1 -0
- package/dist/client/marketplace-client.js +46 -0
- package/dist/client/marketplace-client.js.map +1 -0
- package/dist/client/mcp-config-schema-client.d.ts +5 -0
- package/dist/client/mcp-config-schema-client.d.ts.map +1 -0
- package/dist/client/mcp-config-schema-client.js +9 -0
- package/dist/client/mcp-config-schema-client.js.map +1 -0
- package/dist/client/notifications-client.d.ts +27 -0
- package/dist/client/notifications-client.d.ts.map +1 -0
- package/dist/client/notifications-client.js +11 -0
- package/dist/client/notifications-client.js.map +1 -0
- package/dist/client/observability-client.d.ts +103 -0
- package/dist/client/observability-client.d.ts.map +1 -0
- package/dist/client/observability-client.js +43 -0
- package/dist/client/observability-client.js.map +1 -0
- package/dist/client/plugins-client.d.ts +17 -0
- package/dist/client/plugins-client.d.ts.map +1 -0
- package/dist/client/plugins-client.js +9 -0
- package/dist/client/plugins-client.js.map +1 -0
- package/dist/client/policy-client.d.ts +37 -0
- package/dist/client/policy-client.d.ts.map +1 -0
- package/dist/client/policy-client.js +26 -0
- package/dist/client/policy-client.js.map +1 -0
- package/dist/client/presets-client.d.ts +335 -0
- package/dist/client/presets-client.d.ts.map +1 -0
- package/dist/client/presets-client.js +38 -0
- package/dist/client/presets-client.js.map +1 -0
- package/dist/client/profiles-client.d.ts +102 -0
- package/dist/client/profiles-client.d.ts.map +1 -0
- package/dist/client/profiles-client.js +37 -0
- package/dist/client/profiles-client.js.map +1 -0
- package/dist/client/schedules-client.d.ts +28 -0
- package/dist/client/schedules-client.d.ts.map +1 -0
- package/dist/client/schedules-client.js +13 -0
- package/dist/client/schedules-client.js.map +1 -0
- package/dist/client/settings-schema-client.d.ts +23 -0
- package/dist/client/settings-schema-client.d.ts.map +1 -0
- package/dist/client/settings-schema-client.js +9 -0
- package/dist/client/settings-schema-client.js.map +1 -0
- package/dist/client/states-client.d.ts +471 -0
- package/dist/client/states-client.d.ts.map +1 -0
- package/dist/client/states-client.js +144 -0
- package/dist/client/states-client.js.map +1 -0
- package/dist/client/storage-client.d.ts +40 -0
- package/dist/client/storage-client.d.ts.map +1 -0
- package/dist/client/storage-client.js +43 -0
- package/dist/client/storage-client.js.map +1 -0
- package/dist/client/sub-mcp-client.d.ts +17 -0
- package/dist/client/sub-mcp-client.d.ts.map +1 -0
- package/dist/client/sub-mcp-client.js +14 -0
- package/dist/client/sub-mcp-client.js.map +1 -0
- package/dist/client/system-client.d.ts +11 -0
- package/dist/client/system-client.d.ts.map +1 -0
- package/dist/client/system-client.js +13 -0
- package/dist/client/system-client.js.map +1 -0
- package/dist/client/templates-client.d.ts +29 -0
- package/dist/client/templates-client.d.ts.map +1 -0
- package/dist/client/templates-client.js +21 -0
- package/dist/client/templates-client.js.map +1 -0
- package/dist/client/tool-extensions-client.d.ts +54 -0
- package/dist/client/tool-extensions-client.d.ts.map +1 -0
- package/dist/client/tool-extensions-client.js +21 -0
- package/dist/client/tool-extensions-client.js.map +1 -0
- package/dist/client/tool-meta-client.d.ts +69 -0
- package/dist/client/tool-meta-client.d.ts.map +1 -0
- package/dist/client/tool-meta-client.js +38 -0
- package/dist/client/tool-meta-client.js.map +1 -0
- package/dist/client/tools-client.d.ts +83 -0
- package/dist/client/tools-client.d.ts.map +1 -0
- package/dist/client/tools-client.js +38 -0
- package/dist/client/tools-client.js.map +1 -0
- package/dist/client/transport.d.ts +13 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +10 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/trigger-links-client.d.ts +44 -0
- package/dist/client/trigger-links-client.d.ts.map +1 -0
- package/dist/client/trigger-links-client.js +30 -0
- package/dist/client/trigger-links-client.js.map +1 -0
- package/dist/client/web-entry-gate-client.d.ts +34 -0
- package/dist/client/web-entry-gate-client.d.ts.map +1 -0
- package/dist/client/web-entry-gate-client.js +25 -0
- package/dist/client/web-entry-gate-client.js.map +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +33 -17
- package/dist/http.js.map +1 -1
- package/dist/schemas/api-keys.d.ts +34 -0
- package/dist/schemas/api-keys.d.ts.map +1 -0
- package/dist/schemas/api-keys.js +22 -0
- package/dist/schemas/api-keys.js.map +1 -0
- package/dist/schemas/auth-routes.d.ts +78 -0
- package/dist/schemas/auth-routes.d.ts.map +1 -0
- package/dist/schemas/auth-routes.js +42 -0
- package/dist/schemas/auth-routes.js.map +1 -0
- package/dist/schemas/backup.d.ts +78 -0
- package/dist/schemas/backup.d.ts.map +1 -0
- package/dist/schemas/backup.js +33 -0
- package/dist/schemas/backup.js.map +1 -0
- package/dist/schemas/capabilities.d.ts +99 -0
- package/dist/schemas/capabilities.d.ts.map +1 -0
- package/dist/schemas/capabilities.js +74 -0
- package/dist/schemas/capabilities.js.map +1 -0
- package/dist/schemas/channels.d.ts +7 -0
- package/dist/schemas/channels.d.ts.map +1 -0
- package/dist/schemas/channels.js +9 -0
- package/dist/schemas/channels.js.map +1 -0
- package/dist/schemas/config.d.ts +17 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +17 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/connectors.d.ts +383 -0
- package/dist/schemas/connectors.d.ts.map +1 -0
- package/dist/schemas/connectors.js +122 -0
- package/dist/schemas/connectors.js.map +1 -0
- package/dist/schemas/conversations.d.ts +600 -0
- package/dist/schemas/conversations.d.ts.map +1 -0
- package/dist/schemas/conversations.js +208 -0
- package/dist/schemas/conversations.js.map +1 -0
- package/dist/schemas/extensions.d.ts +44 -0
- package/dist/schemas/extensions.d.ts.map +1 -0
- package/dist/schemas/extensions.js +29 -0
- package/dist/schemas/extensions.js.map +1 -0
- package/dist/schemas/fleet.d.ts +271 -0
- package/dist/schemas/fleet.d.ts.map +1 -0
- package/dist/schemas/fleet.js +132 -0
- package/dist/schemas/fleet.js.map +1 -0
- package/dist/schemas/hooks.d.ts +120 -0
- package/dist/schemas/hooks.d.ts.map +1 -0
- package/dist/schemas/hooks.js +44 -0
- package/dist/schemas/hooks.js.map +1 -0
- package/dist/schemas/index.d.ts +38 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +38 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/interactions.d.ts +156 -0
- package/dist/schemas/interactions.d.ts.map +1 -0
- package/dist/schemas/interactions.js +124 -0
- package/dist/schemas/interactions.js.map +1 -0
- package/dist/schemas/login.d.ts +86 -0
- package/dist/schemas/login.d.ts.map +1 -0
- package/dist/schemas/login.js +54 -0
- package/dist/schemas/login.js.map +1 -0
- package/dist/schemas/manifest-mcp.d.ts +125 -0
- package/dist/schemas/manifest-mcp.d.ts.map +1 -0
- package/dist/schemas/manifest-mcp.js +61 -0
- package/dist/schemas/manifest-mcp.js.map +1 -0
- package/dist/schemas/marketplace.d.ts +708 -0
- package/dist/schemas/marketplace.d.ts.map +1 -0
- package/dist/schemas/marketplace.js +387 -0
- package/dist/schemas/marketplace.js.map +1 -0
- package/dist/schemas/notifications.d.ts +61 -0
- package/dist/schemas/notifications.d.ts.map +1 -0
- package/dist/schemas/notifications.js +38 -0
- package/dist/schemas/notifications.js.map +1 -0
- package/dist/schemas/observability.d.ts +114 -0
- package/dist/schemas/observability.d.ts.map +1 -0
- package/dist/schemas/observability.js +74 -0
- package/dist/schemas/observability.js.map +1 -0
- package/dist/schemas/policy.d.ts +58 -0
- package/dist/schemas/policy.d.ts.map +1 -0
- package/dist/schemas/policy.js +32 -0
- package/dist/schemas/policy.js.map +1 -0
- package/dist/schemas/presets.d.ts +258 -0
- package/dist/schemas/presets.d.ts.map +1 -0
- package/dist/schemas/presets.js +95 -0
- package/dist/schemas/presets.js.map +1 -0
- package/dist/schemas/profiles.d.ts +180 -0
- package/dist/schemas/profiles.d.ts.map +1 -0
- package/dist/schemas/profiles.js +100 -0
- package/dist/schemas/profiles.js.map +1 -0
- package/dist/schemas/roles.d.ts +125 -0
- package/dist/schemas/roles.d.ts.map +1 -0
- package/dist/schemas/roles.js +46 -0
- package/dist/schemas/roles.js.map +1 -0
- package/dist/schemas/schedules.d.ts +25 -0
- package/dist/schemas/schedules.d.ts.map +1 -0
- package/dist/schemas/schedules.js +24 -0
- package/dist/schemas/schedules.js.map +1 -0
- package/dist/schemas/served.d.ts +626 -0
- package/dist/schemas/served.d.ts.map +1 -0
- package/dist/schemas/served.js +28 -0
- package/dist/schemas/served.js.map +1 -0
- package/dist/schemas/settings-schema.d.ts +23 -0
- package/dist/schemas/settings-schema.d.ts.map +1 -0
- package/dist/schemas/settings-schema.js +25 -0
- package/dist/schemas/settings-schema.js.map +1 -0
- package/dist/schemas/shared.d.ts +20 -0
- package/dist/schemas/shared.d.ts.map +1 -0
- package/dist/schemas/shared.js +20 -0
- package/dist/schemas/shared.js.map +1 -0
- package/dist/schemas/states.d.ts +499 -0
- package/dist/schemas/states.d.ts.map +1 -0
- package/dist/schemas/states.js +220 -0
- package/dist/schemas/states.js.map +1 -0
- package/dist/schemas/storage.d.ts +37 -0
- package/dist/schemas/storage.d.ts.map +1 -0
- package/dist/schemas/storage.js +24 -0
- package/dist/schemas/storage.js.map +1 -0
- package/dist/schemas/studio-plugins.d.ts +30 -0
- package/dist/schemas/studio-plugins.d.ts.map +1 -0
- package/dist/schemas/studio-plugins.js +20 -0
- package/dist/schemas/studio-plugins.js.map +1 -0
- package/dist/schemas/sub-mcp.d.ts +29 -0
- package/dist/schemas/sub-mcp.d.ts.map +1 -0
- package/dist/schemas/sub-mcp.js +22 -0
- package/dist/schemas/sub-mcp.js.map +1 -0
- package/dist/schemas/system-kinds.d.ts +122 -0
- package/dist/schemas/system-kinds.d.ts.map +1 -0
- package/dist/schemas/system-kinds.js +40 -0
- package/dist/schemas/system-kinds.js.map +1 -0
- package/dist/schemas/templates.d.ts +26 -0
- package/dist/schemas/templates.d.ts.map +1 -0
- package/dist/schemas/templates.js +11 -0
- package/dist/schemas/templates.js.map +1 -0
- package/dist/schemas/tool-meta.d.ts +64 -0
- package/dist/schemas/tool-meta.d.ts.map +1 -0
- package/dist/schemas/tool-meta.js +44 -0
- package/dist/schemas/tool-meta.js.map +1 -0
- package/dist/schemas/tools.d.ts +62 -0
- package/dist/schemas/tools.d.ts.map +1 -0
- package/dist/schemas/tools.js +53 -0
- package/dist/schemas/tools.js.map +1 -0
- package/dist/schemas/trigger-links.d.ts +71 -0
- package/dist/schemas/trigger-links.d.ts.map +1 -0
- package/dist/schemas/trigger-links.js +46 -0
- package/dist/schemas/trigger-links.js.map +1 -0
- package/dist/schemas/web-entry.d.ts +45 -0
- package/dist/schemas/web-entry.d.ts.map +1 -0
- package/dist/schemas/web-entry.js +36 -0
- package/dist/schemas/web-entry.js.map +1 -0
- package/dist/tool-runs.d.ts +4 -4
- package/package.json +1 -1
- package/src/client/agents-client.ts +23 -0
- package/src/client/auth-client.ts +144 -0
- package/src/client/backend-client.ts +25 -0
- package/src/client/backup-client.ts +16 -0
- package/src/client/capabilities-client.ts +22 -0
- package/src/client/channels-client.ts +11 -0
- package/src/client/config-client.ts +21 -0
- package/src/client/connectors-client.ts +52 -0
- package/src/client/conversations-client.ts +240 -0
- package/src/client/hooks-client.ts +44 -0
- package/src/client/index.ts +122 -0
- package/src/client/interactions-client.ts +89 -0
- package/src/client/login-client.ts +109 -0
- package/src/client/manifest-client.ts +118 -0
- package/src/client/marketplace-client.ts +122 -0
- package/src/client/mcp-config-schema-client.ts +11 -0
- package/src/client/notifications-client.ts +13 -0
- package/src/client/observability-client.ts +82 -0
- package/src/client/plugins-client.ts +11 -0
- package/src/client/policy-client.ts +41 -0
- package/src/client/presets-client.ts +124 -0
- package/src/client/profiles-client.ts +51 -0
- package/src/client/schedules-client.ts +22 -0
- package/src/client/settings-schema-client.ts +11 -0
- package/src/client/states-client.ts +292 -0
- package/src/client/storage-client.ts +63 -0
- package/src/client/sub-mcp-client.ts +17 -0
- package/src/client/system-client.ts +16 -0
- package/src/client/templates-client.ts +28 -0
- package/src/client/tool-extensions-client.ts +24 -0
- package/src/client/tool-meta-client.ts +65 -0
- package/src/client/tools-client.ts +66 -0
- package/src/client/transport.ts +18 -0
- package/src/client/trigger-links-client.ts +51 -0
- package/src/client/web-entry-gate-client.ts +45 -0
- package/src/http.ts +48 -24
- package/src/schemas/api-keys.ts +26 -0
- package/src/schemas/auth-routes.ts +48 -0
- package/src/schemas/backup.ts +42 -0
- package/src/schemas/capabilities.ts +87 -0
- package/src/schemas/channels.ts +11 -0
- package/src/schemas/config.ts +17 -0
- package/src/schemas/connectors.ts +138 -0
- package/src/schemas/conversations.ts +256 -0
- package/src/schemas/extensions.ts +34 -0
- package/src/schemas/fleet.ts +153 -0
- package/src/schemas/hooks.ts +56 -0
- package/src/schemas/index.ts +37 -0
- package/src/schemas/interactions.ts +146 -0
- package/src/schemas/login.ts +62 -0
- package/src/schemas/manifest-mcp.ts +69 -0
- package/src/schemas/marketplace.ts +447 -0
- package/src/schemas/notifications.ts +42 -0
- package/src/schemas/observability.ts +86 -0
- package/src/schemas/policy.ts +37 -0
- package/src/schemas/presets.ts +113 -0
- package/src/schemas/profiles.ts +119 -0
- package/src/schemas/roles.ts +57 -0
- package/src/schemas/schedules.ts +27 -0
- package/src/schemas/served.ts +49 -0
- package/src/schemas/settings-schema.ts +31 -0
- package/src/schemas/shared.ts +21 -0
- package/src/schemas/states.ts +272 -0
- package/src/schemas/storage.ts +31 -0
- package/src/schemas/studio-plugins.ts +21 -0
- package/src/schemas/sub-mcp.ts +24 -0
- package/src/schemas/system-kinds.ts +46 -0
- package/src/schemas/templates.ts +11 -0
- package/src/schemas/tool-meta.ts +51 -0
- package/src/schemas/tools.ts +61 -0
- package/src/schemas/trigger-links.ts +54 -0
- package/src/schemas/web-entry.ts +46 -0
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -920
- package/dist/client.js.map +0 -1
- package/dist/schemas.d.ts +0 -5172
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js +0 -2268
- package/dist/schemas.js.map +0 -1
- package/src/client.ts +0 -1771
- package/src/schemas.ts +0 -2760
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Trigger-link mint, listing and revoke sub-client. */
|
|
2
|
+
import * as s from '../schemas';
|
|
3
|
+
import { encodeSegment } from '../http';
|
|
4
|
+
export function triggerLinksClient(t) {
|
|
5
|
+
const { req } = t;
|
|
6
|
+
return {
|
|
7
|
+
// Mint a trigger link for a topic. `ttl_seconds` is sent EXPLICITLY
|
|
8
|
+
// (including `null` for a permanent link) — the server requires the key present
|
|
9
|
+
// and 400s a dropped one; `tool_kwargs` is omitted when undefined. The raw
|
|
10
|
+
// `token` rides the response ONCE (composed into the QR URL client-side).
|
|
11
|
+
createTriggerLink: (body) => req('/api/hooks/trigger-links', s.triggerLinkCreated, {
|
|
12
|
+
method: 'POST',
|
|
13
|
+
body: {
|
|
14
|
+
topic: body.topic,
|
|
15
|
+
name: body.name,
|
|
16
|
+
execution_key: body.execution_key,
|
|
17
|
+
require_api_key: body.require_api_key,
|
|
18
|
+
ttl_seconds: body.ttl_seconds,
|
|
19
|
+
tool_kwargs: body.tool_kwargs,
|
|
20
|
+
},
|
|
21
|
+
}),
|
|
22
|
+
// Every live trigger-link record (hash prefix only — never a raw token).
|
|
23
|
+
listTriggerLinks: (signal) => req('/api/hooks/trigger-links', s.triggerLinkList, { signal }),
|
|
24
|
+
// Revoke a link by name (immediate + durable). 404 when the name is unknown.
|
|
25
|
+
deleteTriggerLink: (name) => req(`/api/hooks/trigger-links/${encodeSegment(name)}`, s.triggerLinkDeleted, {
|
|
26
|
+
method: 'DELETE',
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=trigger-links-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-links-client.js","sourceRoot":"","sources":["../../src/client/trigger-links-client.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoBxC,MAAM,UAAU,kBAAkB,CAAC,CAAY;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,oEAAoE;QACpE,gFAAgF;QAChF,2EAA2E;QAC3E,0EAA0E;QAC1E,iBAAiB,EAAE,CAAC,IAA2B,EAAE,EAAE,CACjD,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,kBAAkB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B;SACF,CAAC;QACJ,yEAAyE;QACzE,gBAAgB,EAAE,CAAC,MAAoB,EAAE,EAAE,CACzC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC;QAChE,6EAA6E;QAC7E,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE,CAClC,GAAG,CAAC,4BAA4B,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,EAAE;YAC3E,MAAM,EAAE,QAAQ;SACjB,CAAC;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Transport } from './transport';
|
|
2
|
+
/**
|
|
3
|
+
* Body for minting a web entry code (POST
|
|
4
|
+
* `/api/channels/web/gates/{identity}/codes`). Both fields are optional-nullable
|
|
5
|
+
* and sent EXPLICITLY: `label` is a human tag (`null` for none); `expires_at` is
|
|
6
|
+
* an ISO-8601 instant the code dies at (`null` for a code that never expires).
|
|
7
|
+
*/
|
|
8
|
+
export interface WebEntryCodeMintBody {
|
|
9
|
+
readonly label: string | null;
|
|
10
|
+
readonly expires_at: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function webEntryGateClient(t: Transport): {
|
|
13
|
+
getWebEntryGate: (identity: string, signal?: AbortSignal) => Promise<{
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
codes: {
|
|
16
|
+
code_id: string;
|
|
17
|
+
label: string | null;
|
|
18
|
+
created_at: string;
|
|
19
|
+
expires_at: string | null;
|
|
20
|
+
}[];
|
|
21
|
+
}>;
|
|
22
|
+
setWebEntryGate: (identity: string, enabled: boolean) => Promise<{
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
}>;
|
|
25
|
+
mintWebEntryCode: (identity: string, body: WebEntryCodeMintBody) => Promise<{
|
|
26
|
+
code: string;
|
|
27
|
+
code_id: string;
|
|
28
|
+
expires_at: string | null;
|
|
29
|
+
}>;
|
|
30
|
+
revokeWebEntryCode: (identity: string, codeId: string) => Promise<{
|
|
31
|
+
status: "revoked";
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=web-entry-gate-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-entry-gate-client.d.ts","sourceRoot":"","sources":["../../src/client/web-entry-gate-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;gCAMf,MAAM,WAAW,WAAW;;;;;;;;;gCAE5B,MAAM,WAAW,OAAO;;;iCAOvB,MAAM,QAAQ,oBAAoB;;;;;mCAMhC,MAAM,UAAU,MAAM;;;EAOxD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Web-channel entry-gate sub-client. */
|
|
2
|
+
import * as s from '../schemas';
|
|
3
|
+
import { encodeSegment } from '../http';
|
|
4
|
+
export function webEntryGateClient(t) {
|
|
5
|
+
const { req } = t;
|
|
6
|
+
return {
|
|
7
|
+
// A web route's entry gate, keyed by its `our_identity`: read the flag + its
|
|
8
|
+
// live codes, flip the flag, mint a code (raw returned ONCE), revoke a code by
|
|
9
|
+
// its hash id. The conversation monitor's first route mutations.
|
|
10
|
+
getWebEntryGate: (identity, signal) => req(`/api/channels/web/gates/${encodeSegment(identity)}`, s.webEntryGate, { signal }),
|
|
11
|
+
setWebEntryGate: (identity, enabled) => req(`/api/channels/web/gates/${encodeSegment(identity)}`, s.webEntryGateState, {
|
|
12
|
+
method: 'PUT',
|
|
13
|
+
body: { enabled },
|
|
14
|
+
}),
|
|
15
|
+
// Mint a code. `label`/`expires_at` are sent EXPLICITLY (including `null`). The
|
|
16
|
+
// raw `code` rides the reply ONCE (composed into the chat URL client-side).
|
|
17
|
+
mintWebEntryCode: (identity, body) => req(`/api/channels/web/gates/${encodeSegment(identity)}/codes`, s.webEntryCodeMinted, {
|
|
18
|
+
method: 'POST',
|
|
19
|
+
body: { label: body.label, expires_at: body.expires_at },
|
|
20
|
+
}),
|
|
21
|
+
// Revoke a code by its hash id (immediate + durable). 404 when the id is unknown.
|
|
22
|
+
revokeWebEntryCode: (identity, codeId) => req(`/api/channels/web/gates/${encodeSegment(identity)}/codes/${encodeSegment(codeId)}`, s.webEntryCodeRevoked, { method: 'DELETE' }),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=web-entry-gate-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-entry-gate-client.js","sourceRoot":"","sources":["../../src/client/web-entry-gate-client.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAcxC,MAAM,UAAU,kBAAkB,CAAC,CAAY;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,6EAA6E;QAC7E,+EAA+E;QAC/E,iEAAiE;QACjE,eAAe,EAAE,CAAC,QAAgB,EAAE,MAAoB,EAAE,EAAE,CAC1D,GAAG,CAAC,2BAA2B,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC;QACvF,eAAe,EAAE,CAAC,QAAgB,EAAE,OAAgB,EAAE,EAAE,CACtD,GAAG,CAAC,2BAA2B,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE;YAC7E,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE,OAAO,EAAE;SAClB,CAAC;QACJ,gFAAgF;QAChF,4EAA4E;QAC5E,gBAAgB,EAAE,CAAC,QAAgB,EAAE,IAA0B,EAAE,EAAE,CACjE,GAAG,CAAC,2BAA2B,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,kBAAkB,EAAE;YACpF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;SACzD,CAAC;QACJ,kFAAkF;QAClF,kBAAkB,EAAE,CAAC,QAAgB,EAAE,MAAc,EAAE,EAAE,CACvD,GAAG,CACD,2BAA2B,aAAa,CAAC,QAAQ,CAAC,UAAU,aAAa,CAAC,MAAM,CAAC,EAAE,EACnF,CAAC,CAAC,mBAAmB,EACrB,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB;KACJ,CAAC;AACJ,CAAC"}
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,oFAAoF;AACpF,MAAM,WAAW,SAAS;IACxB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAGxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAQ5D;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,oFAAoF;AACpF,MAAM,WAAW,SAAS;IACxB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAGxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAQ5D;AAmFD,wBAAsB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAClD,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAoBrB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAMD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAOjG"}
|
package/dist/http.js
CHANGED
|
@@ -59,23 +59,14 @@ function retryAfterSeconds(header) {
|
|
|
59
59
|
const seconds = Number(header.trim());
|
|
60
60
|
return Number.isFinite(seconds) && seconds >= 0 ? seconds : undefined;
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
headers,
|
|
71
|
-
body: options.body === undefined ? undefined : JSON.stringify(options.body),
|
|
72
|
-
signal: options.signal,
|
|
73
|
-
});
|
|
74
|
-
if (response.status === 401)
|
|
75
|
-
throw new ApiUnauthorizedError();
|
|
76
|
-
// `Retry-After` rides on the error so a retrying caller waits the delay the server
|
|
77
|
-
// named (the gated routes' reloading 503 carries one) instead of guessing.
|
|
78
|
-
const retryAfter = retryAfterSeconds(response.headers.get('Retry-After'));
|
|
62
|
+
/**
|
|
63
|
+
* Read the JSON body of a request response, applying the transport's error
|
|
64
|
+
* policy: a non-2xx status throws (a 409 as `ApiConflictError` carrying the
|
|
65
|
+
* parsed body, every other as `ApiError` with the server message/code and the
|
|
66
|
+
* named `Retry-After` delay), and a body that is not JSON throws `ApiSchemaError`
|
|
67
|
+
* on a 2xx or `ApiError` otherwise. Returns the parsed payload only for a 2xx.
|
|
68
|
+
*/
|
|
69
|
+
async function readJsonPayload(response, path, retryAfter) {
|
|
79
70
|
let payload;
|
|
80
71
|
try {
|
|
81
72
|
payload = await response.json();
|
|
@@ -94,6 +85,11 @@ export async function apiRequest(config, path, schema, options = {}) {
|
|
|
94
85
|
throw new ApiConflictError(text, payload);
|
|
95
86
|
throw new ApiError(text, response.status, code, retryAfter, payload);
|
|
96
87
|
}
|
|
88
|
+
return payload;
|
|
89
|
+
}
|
|
90
|
+
/** Unwrap the `{ data }` envelope and validate it against `schema`; a missing
|
|
91
|
+
* envelope or a validation failure throws `ApiSchemaError`. */
|
|
92
|
+
function validateEnvelope(schema, path, payload) {
|
|
97
93
|
if (!isDataEnvelope(payload)) {
|
|
98
94
|
throw new ApiSchemaError(path, 'response was not a { data } envelope');
|
|
99
95
|
}
|
|
@@ -102,6 +98,26 @@ export async function apiRequest(config, path, schema, options = {}) {
|
|
|
102
98
|
throw new ApiSchemaError(path, parsed.error.issues);
|
|
103
99
|
return parsed.data;
|
|
104
100
|
}
|
|
101
|
+
export async function apiRequest(config, path, schema, options = {}) {
|
|
102
|
+
const doFetch = config.fetch ?? globalThis.fetch;
|
|
103
|
+
const token = config.getToken();
|
|
104
|
+
const headers = { ...JSON_HEADERS };
|
|
105
|
+
if (token)
|
|
106
|
+
headers['x-api-key'] = token;
|
|
107
|
+
const response = await doFetch(buildUrl(config.baseUrl ?? '', path, options.query), {
|
|
108
|
+
method: options.method ?? 'GET',
|
|
109
|
+
headers,
|
|
110
|
+
body: options.body === undefined ? undefined : JSON.stringify(options.body),
|
|
111
|
+
signal: options.signal,
|
|
112
|
+
});
|
|
113
|
+
if (response.status === 401)
|
|
114
|
+
throw new ApiUnauthorizedError();
|
|
115
|
+
// `Retry-After` rides on the error so a retrying caller waits the delay the server
|
|
116
|
+
// named (the gated routes' reloading 503 carries one) instead of guessing.
|
|
117
|
+
const retryAfter = retryAfterSeconds(response.headers.get('Retry-After'));
|
|
118
|
+
const payload = await readJsonPayload(response, path, retryAfter);
|
|
119
|
+
return validateEnvelope(schema, path, payload);
|
|
120
|
+
}
|
|
105
121
|
/**
|
|
106
122
|
* Fetch a plain-text endpoint (the skeleton's `/health` → `"OK"`). No `{ data }`
|
|
107
123
|
* envelope, no zod — the body is returned verbatim. Non-2xx still throws loudly.
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAqB5F,MAAM,YAAY,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAW,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,wEAAwE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,KAA+B;IAC3E,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,KAAK;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH;4EAC4E;AAC5E,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAqB5F,MAAM,YAAY,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAW,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,wEAAwE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,KAA+B;IAC3E,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,KAAK;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH;4EAC4E;AAC5E,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,IAAY,EACZ,UAA8B;IAE9B,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAC/E,MAAM,IAAI,QAAQ,CAChB,QAAQ,CAAC,UAAU,IAAI,gBAAgB,EACvC,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,UAAU,CACX,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC;QAClE,oFAAoF;QACpF,6EAA6E;QAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;gEACgE;AAChE,SAAS,gBAAgB,CACvB,MAAS,EACT,IAAY,EACZ,OAAgB;IAEhB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,sCAAsC,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,IAAY,EACZ,MAAS,EACT,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,OAAO,GAA2B,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5D,IAAI,KAAK;QAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QAClF,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3E,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAE9D,mFAAmF;IACnF,2EAA2E;IAC3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAClE,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAiB,EACjB,IAAY,EACZ,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,KAAK;QAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QAClF,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/F,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAiB,EACjB,IAAY,EACZ,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrE,IAAI,KAAK;QAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QAClF,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3E,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChG,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** API-key payload and mint/edit/revoke response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** The per-key payloads (`GET /api/auth/tokens-payload`). The stable per-mint
|
|
4
|
+
* `key_fingerprint` is nested under `policy_data`; the picker reads it there. */
|
|
5
|
+
export declare const tokensPayload: z.ZodArray<z.ZodObject<{
|
|
6
|
+
user_id: z.ZodString;
|
|
7
|
+
description: z.ZodString;
|
|
8
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
9
|
+
policy_data: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
10
|
+
condition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
11
|
+
content: z.ZodOptional<z.ZodString>;
|
|
12
|
+
id: z.ZodOptional<z.ZodString>;
|
|
13
|
+
kwargs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
14
|
+
}, z.core.$strict>>>;
|
|
15
|
+
}, z.core.$strip>>;
|
|
16
|
+
export type TokensPayload = z.infer<typeof tokensPayload>;
|
|
17
|
+
/** Mint reply `{ api_key, key_fingerprint }` narrowed to the raw `sk-…` key,
|
|
18
|
+
* returned once at creation and never again. */
|
|
19
|
+
export declare const createdApiKey: z.ZodPipe<z.ZodObject<{
|
|
20
|
+
api_key: z.ZodString;
|
|
21
|
+
key_fingerprint: z.ZodString;
|
|
22
|
+
}, z.core.$strip>, z.ZodTransform<string, {
|
|
23
|
+
api_key: string;
|
|
24
|
+
key_fingerprint: string;
|
|
25
|
+
}>>;
|
|
26
|
+
export declare const editApiKeyResult: z.ZodObject<{
|
|
27
|
+
user_id: z.ZodString;
|
|
28
|
+
updated: z.ZodBoolean;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const revokeApiKeyResult: z.ZodObject<{
|
|
31
|
+
user_id: z.ZodString;
|
|
32
|
+
revoked: z.ZodBoolean;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
//# sourceMappingURL=api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/schemas/api-keys.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;iFACiF;AACjF,eAAO,MAAM,aAAa;;;;;;;;;;kBASzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;iDACiD;AACjD,eAAO,MAAM,aAAa;;;;;;GAEc,CAAC;AACzC,eAAO,MAAM,gBAAgB;;;iBAA0D,CAAC;AACxF,eAAO,MAAM,kBAAkB;;;iBAA0D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** API-key payload and mint/edit/revoke response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { templatedText } from './served';
|
|
4
|
+
import { jsonValue } from './shared';
|
|
5
|
+
/** The per-key payloads (`GET /api/auth/tokens-payload`). The stable per-mint
|
|
6
|
+
* `key_fingerprint` is nested under `policy_data`; the picker reads it there. */
|
|
7
|
+
export const tokensPayload = z.array(z.object({
|
|
8
|
+
// The value an `execution_key` binding names.
|
|
9
|
+
user_id: z.string().min(1),
|
|
10
|
+
description: z.string(),
|
|
11
|
+
scopes: z.array(z.string()),
|
|
12
|
+
policy_data: jsonValue,
|
|
13
|
+
condition: templatedText.nullable().optional(),
|
|
14
|
+
}));
|
|
15
|
+
/** Mint reply `{ api_key, key_fingerprint }` narrowed to the raw `sk-…` key,
|
|
16
|
+
* returned once at creation and never again. */
|
|
17
|
+
export const createdApiKey = z
|
|
18
|
+
.object({ api_key: z.string(), key_fingerprint: z.string() })
|
|
19
|
+
.transform((minted) => minted.api_key);
|
|
20
|
+
export const editApiKeyResult = z.object({ user_id: z.string(), updated: z.boolean() });
|
|
21
|
+
export const revokeApiKeyResult = z.object({ user_id: z.string(), revoked: z.boolean() });
|
|
22
|
+
//# sourceMappingURL=api-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/schemas/api-keys.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;iFACiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAClC,CAAC,CAAC,MAAM,CAAC;IACP,8CAA8C;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC/C,CAAC,CACH,CAAC;AAGF;iDACiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;KAC5D,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** Route catalog, scope mapping and public-route response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** `{ url: scope_id }` — every URL currently mapped to a scope. */
|
|
4
|
+
export declare const authScopes: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
5
|
+
export declare const addUrlToScopeResult: z.ZodObject<{
|
|
6
|
+
scope_id: z.ZodString;
|
|
7
|
+
url: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const removeUrlFromScopeResult: z.ZodObject<{
|
|
10
|
+
url: z.ZodString;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const removeScopeResult: z.ZodObject<{
|
|
13
|
+
scope_id: z.ZodString;
|
|
14
|
+
deleted_keys: z.ZodNumber;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
/**
|
|
17
|
+
* A route's authorization ACTION class, joined onto the catalog from the route
|
|
18
|
+
* registry. `read`/`write` routes are GRANTABLE — a role's per-tag level opens
|
|
19
|
+
* them; `fenced`/`secret` routes are ADMIN-ONLY and never grantable (no per-tag
|
|
20
|
+
* level reaches them). `null` marks a path the registry carries no metadata for
|
|
21
|
+
* (an unregistered/ungated path — no feature tags, no action).
|
|
22
|
+
*/
|
|
23
|
+
export declare const routeAction: z.ZodEnum<{
|
|
24
|
+
read: "read";
|
|
25
|
+
write: "write";
|
|
26
|
+
secret: "secret";
|
|
27
|
+
fenced: "fenced";
|
|
28
|
+
}>;
|
|
29
|
+
export type RouteAction = z.infer<typeof routeAction>;
|
|
30
|
+
/**
|
|
31
|
+
* One row of the route catalog (`GET /api/auth/routes`) — a plain HTTP route with
|
|
32
|
+
* its current mapping, JOINED with its route-registry metadata. `mapped` is the
|
|
33
|
+
* scope id, the public marker, or `null` when the path is unmapped (the mapper's
|
|
34
|
+
* "unassigned" bucket source). `methods` is the route's method set with `HEAD`
|
|
35
|
+
* removed. `tags` are the route's feature-group labels, `summary` its one-line
|
|
36
|
+
* description, and `action` its authorization class — the join fields the Roles
|
|
37
|
+
* grant editor reads to derive grantable feature groups and mark the admin-only
|
|
38
|
+
* (fenced/secret) routes it must never offer a grant for. An unregistered path
|
|
39
|
+
* carries `tags: []`, `summary: ''`, `action: null`.
|
|
40
|
+
*/
|
|
41
|
+
export declare const authRoute: z.ZodObject<{
|
|
42
|
+
path: z.ZodString;
|
|
43
|
+
methods: z.ZodArray<z.ZodString>;
|
|
44
|
+
mapped: z.ZodNullable<z.ZodString>;
|
|
45
|
+
tags: z.ZodArray<z.ZodString>;
|
|
46
|
+
summary: z.ZodString;
|
|
47
|
+
action: z.ZodNullable<z.ZodEnum<{
|
|
48
|
+
read: "read";
|
|
49
|
+
write: "write";
|
|
50
|
+
secret: "secret";
|
|
51
|
+
fenced: "fenced";
|
|
52
|
+
}>>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type AuthRoute = z.infer<typeof authRoute>;
|
|
55
|
+
export declare const authRoutes: z.ZodArray<z.ZodObject<{
|
|
56
|
+
path: z.ZodString;
|
|
57
|
+
methods: z.ZodArray<z.ZodString>;
|
|
58
|
+
mapped: z.ZodNullable<z.ZodString>;
|
|
59
|
+
tags: z.ZodArray<z.ZodString>;
|
|
60
|
+
summary: z.ZodString;
|
|
61
|
+
action: z.ZodNullable<z.ZodEnum<{
|
|
62
|
+
read: "read";
|
|
63
|
+
write: "write";
|
|
64
|
+
secret: "secret";
|
|
65
|
+
fenced: "fenced";
|
|
66
|
+
}>>;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
/** `GET /api/auth/public-routes` — the sorted urls pinned to the public marker. */
|
|
69
|
+
export declare const publicRoutes: z.ZodArray<z.ZodString>;
|
|
70
|
+
/** `POST /api/auth/public-routes` — the pinned url. */
|
|
71
|
+
export declare const pinPublicResult: z.ZodObject<{
|
|
72
|
+
url: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
/** `DELETE /api/auth/public-routes` — the unpinned url (404 when not pinned). */
|
|
75
|
+
export declare const unpinPublicResult: z.ZodObject<{
|
|
76
|
+
url: z.ZodString;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
//# sourceMappingURL=auth-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/schemas/auth-routes.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mEAAmE;AACnE,eAAO,MAAM,UAAU,uCAAmC,CAAC;AAE3D,eAAO,MAAM,mBAAmB;;;iBAAsD,CAAC;AACvF,eAAO,MAAM,wBAAwB;;iBAAgC,CAAC;AACtE,eAAO,MAAM,iBAAiB;;;iBAA+D,CAAC;AAE9F;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;;;;;EAAgD,CAAC;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;iBAOpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAO,MAAM,UAAU;;;;;;;;;;;;kBAAqB,CAAC;AAC7C,mFAAmF;AACnF,eAAO,MAAM,YAAY,yBAAsB,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,eAAe;;iBAAgC,CAAC;AAC7D,iFAAiF;AACjF,eAAO,MAAM,iBAAiB;;iBAAgC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Route catalog, scope mapping and public-route response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** `{ url: scope_id }` — every URL currently mapped to a scope. */
|
|
4
|
+
export const authScopes = z.record(z.string(), z.string());
|
|
5
|
+
export const addUrlToScopeResult = z.object({ scope_id: z.string(), url: z.string() });
|
|
6
|
+
export const removeUrlFromScopeResult = z.object({ url: z.string() });
|
|
7
|
+
export const removeScopeResult = z.object({ scope_id: z.string(), deleted_keys: z.number() });
|
|
8
|
+
/**
|
|
9
|
+
* A route's authorization ACTION class, joined onto the catalog from the route
|
|
10
|
+
* registry. `read`/`write` routes are GRANTABLE — a role's per-tag level opens
|
|
11
|
+
* them; `fenced`/`secret` routes are ADMIN-ONLY and never grantable (no per-tag
|
|
12
|
+
* level reaches them). `null` marks a path the registry carries no metadata for
|
|
13
|
+
* (an unregistered/ungated path — no feature tags, no action).
|
|
14
|
+
*/
|
|
15
|
+
export const routeAction = z.enum(['read', 'write', 'fenced', 'secret']);
|
|
16
|
+
/**
|
|
17
|
+
* One row of the route catalog (`GET /api/auth/routes`) — a plain HTTP route with
|
|
18
|
+
* its current mapping, JOINED with its route-registry metadata. `mapped` is the
|
|
19
|
+
* scope id, the public marker, or `null` when the path is unmapped (the mapper's
|
|
20
|
+
* "unassigned" bucket source). `methods` is the route's method set with `HEAD`
|
|
21
|
+
* removed. `tags` are the route's feature-group labels, `summary` its one-line
|
|
22
|
+
* description, and `action` its authorization class — the join fields the Roles
|
|
23
|
+
* grant editor reads to derive grantable feature groups and mark the admin-only
|
|
24
|
+
* (fenced/secret) routes it must never offer a grant for. An unregistered path
|
|
25
|
+
* carries `tags: []`, `summary: ''`, `action: null`.
|
|
26
|
+
*/
|
|
27
|
+
export const authRoute = z.object({
|
|
28
|
+
path: z.string(),
|
|
29
|
+
methods: z.array(z.string()),
|
|
30
|
+
mapped: z.string().nullable(),
|
|
31
|
+
tags: z.array(z.string()),
|
|
32
|
+
summary: z.string(),
|
|
33
|
+
action: routeAction.nullable(),
|
|
34
|
+
});
|
|
35
|
+
export const authRoutes = z.array(authRoute);
|
|
36
|
+
/** `GET /api/auth/public-routes` — the sorted urls pinned to the public marker. */
|
|
37
|
+
export const publicRoutes = z.array(z.string());
|
|
38
|
+
/** `POST /api/auth/public-routes` — the pinned url. */
|
|
39
|
+
export const pinPublicResult = z.object({ url: z.string() });
|
|
40
|
+
/** `DELETE /api/auth/public-routes` — the unpinned url (404 when not pinned). */
|
|
41
|
+
export const unpinPublicResult = z.object({ url: z.string() });
|
|
42
|
+
//# sourceMappingURL=auth-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/schemas/auth-routes.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mEAAmE;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGzE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEhD,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7D,iFAAiF;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** Backup section, document and import-report response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const backupSections: z.ZodArray<z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
secret: z.ZodBoolean;
|
|
6
|
+
}, z.core.$strip>>;
|
|
7
|
+
/** The exported backup document — validated when the UI reads a picked file. */
|
|
8
|
+
export declare const backupDocument: z.ZodObject<{
|
|
9
|
+
version: z.ZodLiteral<1>;
|
|
10
|
+
created_at: z.ZodString;
|
|
11
|
+
sections: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
12
|
+
errors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type BackupDocument = z.infer<typeof backupDocument>;
|
|
15
|
+
export declare const backupImportReport: z.ZodObject<{
|
|
16
|
+
ok: z.ZodBoolean;
|
|
17
|
+
sections: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
18
|
+
created: z.ZodNumber;
|
|
19
|
+
updated: z.ZodNumber;
|
|
20
|
+
skipped: z.ZodNumber;
|
|
21
|
+
errors: z.ZodArray<z.ZodString>;
|
|
22
|
+
new_api_keys: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
23
|
+
user_id: z.ZodString;
|
|
24
|
+
description: z.ZodString;
|
|
25
|
+
api_key: z.ZodString;
|
|
26
|
+
}, z.core.$strip>>>;
|
|
27
|
+
fanout: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
28
|
+
mode: z.ZodLiteral<"local-only">;
|
|
29
|
+
note: z.ZodString;
|
|
30
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
31
|
+
op: z.ZodString;
|
|
32
|
+
reachable: z.ZodBoolean;
|
|
33
|
+
local_only: z.ZodBoolean;
|
|
34
|
+
results: z.ZodArray<z.ZodObject<{
|
|
35
|
+
name: z.ZodString;
|
|
36
|
+
outcome: z.ZodEnum<{
|
|
37
|
+
failed: "failed";
|
|
38
|
+
resyncing: "resyncing";
|
|
39
|
+
recycling: "recycling";
|
|
40
|
+
stale: "stale";
|
|
41
|
+
applied: "applied";
|
|
42
|
+
missing: "missing";
|
|
43
|
+
departed: "departed";
|
|
44
|
+
timed_out: "timed_out";
|
|
45
|
+
}>;
|
|
46
|
+
payload: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
47
|
+
error: z.ZodNullable<z.ZodString>;
|
|
48
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
49
|
+
}, z.core.$strip>>;
|
|
50
|
+
error: z.ZodNullable<z.ZodString>;
|
|
51
|
+
mode: z.ZodLiteral<"fleet">;
|
|
52
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
53
|
+
op: z.ZodString;
|
|
54
|
+
reachable: z.ZodBoolean;
|
|
55
|
+
local_only: z.ZodBoolean;
|
|
56
|
+
results: z.ZodArray<z.ZodObject<{
|
|
57
|
+
name: z.ZodString;
|
|
58
|
+
outcome: z.ZodEnum<{
|
|
59
|
+
failed: "failed";
|
|
60
|
+
resyncing: "resyncing";
|
|
61
|
+
recycling: "recycling";
|
|
62
|
+
stale: "stale";
|
|
63
|
+
applied: "applied";
|
|
64
|
+
missing: "missing";
|
|
65
|
+
departed: "departed";
|
|
66
|
+
timed_out: "timed_out";
|
|
67
|
+
}>;
|
|
68
|
+
payload: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
|
|
69
|
+
error: z.ZodNullable<z.ZodString>;
|
|
70
|
+
detail: z.ZodNullable<z.ZodString>;
|
|
71
|
+
}, z.core.$strip>>;
|
|
72
|
+
error: z.ZodNullable<z.ZodString>;
|
|
73
|
+
mode: z.ZodLiteral<"unreachable">;
|
|
74
|
+
}, z.core.$strip>], "mode">>;
|
|
75
|
+
}, z.core.$strip>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
export type BackupImportReport = z.infer<typeof backupImportReport>;
|
|
78
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/schemas/backup.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;kBAA+D,CAAC;AAE3F,gFAAgF;AAChF,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Backup section, document and import-report response schemas. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { fleetReportFanout } from './fleet';
|
|
4
|
+
export const backupSections = z.array(z.object({ name: z.string(), secret: z.boolean() }));
|
|
5
|
+
/** The exported backup document — validated when the UI reads a picked file. */
|
|
6
|
+
export const backupDocument = z.object({
|
|
7
|
+
version: z.literal(1),
|
|
8
|
+
created_at: z.string(),
|
|
9
|
+
sections: z.record(z.string(), z.unknown()),
|
|
10
|
+
errors: z.record(z.string(), z.string()).optional(),
|
|
11
|
+
});
|
|
12
|
+
export const backupImportReport = z.object({
|
|
13
|
+
ok: z.boolean(),
|
|
14
|
+
sections: z.record(z.string(), z.object({
|
|
15
|
+
created: z.number(),
|
|
16
|
+
updated: z.number(),
|
|
17
|
+
skipped: z.number(),
|
|
18
|
+
errors: z.array(z.string()),
|
|
19
|
+
new_api_keys: z
|
|
20
|
+
.array(z.object({
|
|
21
|
+
user_id: z.string(),
|
|
22
|
+
description: z.string(),
|
|
23
|
+
api_key: z.string(),
|
|
24
|
+
}))
|
|
25
|
+
.optional(),
|
|
26
|
+
// The `manifest` and `env` sections apply through the config pipeline, so their
|
|
27
|
+
// report carries the mode-wrapped fleet `fanout` of the restore's reload; other
|
|
28
|
+
// sections omit it. Parsed EXPLICITLY so the shared fleet-report handler can
|
|
29
|
+
// surface a failed restore propagation — otherwise zod would strip it silently.
|
|
30
|
+
fanout: fleetReportFanout.optional(),
|
|
31
|
+
})),
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/schemas/backup.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3F,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAChB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3B,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SACpB,CAAC,CACH;aACA,QAAQ,EAAE;QACb,gFAAgF;QAChF,gFAAgF;QAChF,6EAA6E;QAC7E,gFAAgF;QAChF,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;KACrC,CAAC,CACH;CACF,CAAC,CAAC"}
|