@arcote.tech/arc-host 0.7.7 → 0.7.9
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/index.js
CHANGED
|
@@ -3951,7 +3951,7 @@ class ContextHandler {
|
|
|
3951
3951
|
console.log(`[ARC:Seed] Seeded ${data.length} row(s) into ${tableName}`);
|
|
3952
3952
|
}
|
|
3953
3953
|
}
|
|
3954
|
-
async executeCommand(commandName, params, rawToken) {
|
|
3954
|
+
async executeCommand(commandName, params, rawToken, options) {
|
|
3955
3955
|
const includePayloads = this.telemetry?.shouldIncludePayloads() ?? false;
|
|
3956
3956
|
const baseAttrs = {
|
|
3957
3957
|
"rpc.system": "arc",
|
|
@@ -3976,6 +3976,9 @@ class ContextHandler {
|
|
|
3976
3976
|
if (!command) {
|
|
3977
3977
|
throw new Error(`Command '${commandName}' not found`);
|
|
3978
3978
|
}
|
|
3979
|
+
if (!options?.internal && command.__isPrivate) {
|
|
3980
|
+
throw new Error(`Command '${commandName}' is private and not callable from a client.`);
|
|
3981
|
+
}
|
|
3979
3982
|
try {
|
|
3980
3983
|
return await command(params);
|
|
3981
3984
|
} catch (error) {
|
|
@@ -4583,7 +4586,7 @@ class CronScheduler {
|
|
|
4583
4586
|
console.log(`[ARC:Cron] ${commandName}: executing for ${instances.length} instance(s)...`);
|
|
4584
4587
|
for (const instance of instances) {
|
|
4585
4588
|
try {
|
|
4586
|
-
await this.contextHandler.executeCommand(commandName, { _id: instance._id }, null);
|
|
4589
|
+
await this.contextHandler.executeCommand(commandName, { _id: instance._id }, null, { internal: true });
|
|
4587
4590
|
} catch (error) {
|
|
4588
4591
|
console.error(`[ARC:Cron] ${commandName} failed for instance ${instance._id}:`, error);
|
|
4589
4592
|
}
|
|
@@ -5271,5 +5274,5 @@ export {
|
|
|
5271
5274
|
ConnectionManager
|
|
5272
5275
|
};
|
|
5273
5276
|
|
|
5274
|
-
//# debugId=
|
|
5277
|
+
//# debugId=D9115398B339A37F64756E2164756E21
|
|
5275
5278
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -80,15 +80,15 @@
|
|
|
80
80
|
"module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n",
|
|
81
81
|
"import type { ArcContextAny, DatabaseAdapter } from \"@arcote.tech/arc\";\nimport type { ArcTelemetry, Span } from \"@arcote.tech/arc-otel\";\nimport type { Server } from \"bun\";\nimport jwt from \"jsonwebtoken\";\nimport { ConnectionManager } from \"./connection-manager\";\nimport { ContextHandler } from \"./context-handler\";\nimport { CronScheduler } from \"./cron-scheduler\";\nimport {\n arcHttpHandlers,\n arcWsHandlers,\n cleanupClientSubs,\n cleanupStreams,\n} from \"./middleware\";\nimport type {\n ArcHttpHandler,\n ArcRequestContext,\n ArcWsContext,\n ArcWsHandler,\n} from \"./middleware/types\";\nimport type { TokenPayload } from \"./types\";\n\ntype WebSocketData = { clientId: string };\n\nexport interface ArcServerConfig {\n context: ArcContextAny;\n dbAdapterFactory: (ctx: any) => Promise<DatabaseAdapter>;\n httpHandlers?: ArcHttpHandler[];\n wsHandlers?: ArcWsHandler[];\n port?: number;\n jwtSecret?: string;\n /** Extra callback when a WS client disconnects (e.g. to clean up platform state) */\n onWsClose?: (clientId: string) => void;\n /** Optional OpenTelemetry instance. When provided, the HTTP fetch handler\n * and WS message dispatch are wrapped in spans, with parent context\n * extracted from `traceparent` (header / message field). All nested\n * handler code automatically attaches to the active span. */\n telemetry?: ArcTelemetry;\n}\n\nexport interface ArcServer {\n server: Server<WebSocketData>;\n contextHandler: ContextHandler;\n connectionManager: ConnectionManager;\n cronScheduler: CronScheduler;\n stop: () => void;\n}\n\n/**\n * Create an Arc server with composable HTTP + WS middleware.\n *\n * By default includes all Arc handlers (command, query, stream, route, eventSync, health,\n * scope:auth, sync-events, request-sync, execute-command, view subscriptions).\n * Platform servers add their own handlers on top.\n */\nexport async function createArcServer(\n config: ArcServerConfig,\n): Promise<ArcServer> {\n const jwtSecret =\n config.jwtSecret ||\n process.env.JWT_SECRET ||\n \"arc-host-secret-change-in-production\";\n const port = config.port || 5005;\n\n // Init context handler — telemetry (if any) flows through so executeCommand\n // emits `command.<name>` spans parented to the active HTTP/WS span.\n // DB adapter wrapping (per-transaction spans) is the caller's\n // responsibility: pass an already-wrapped `dbAdapterFactory` if\n // db spans are wanted. We don't `import()` arc-otel from here because\n // doing so bundles its OTel SDK transitively into arc-host's dist,\n // which then duplicates the @opentelemetry/api singleton when the CLI\n // bundles arc-otel directly — leading to two global tracer providers\n // and silent span loss.\n const dbAdapter = config.dbAdapterFactory(config.context);\n const contextHandler = new ContextHandler(\n config.context,\n dbAdapter,\n config.telemetry,\n );\n await contextHandler.init();\n\n // Start cron scheduler\n const cronScheduler = new CronScheduler(contextHandler);\n cronScheduler.start();\n\n const connectionManager = new ConnectionManager();\n\n function buildCorsHeaders(req?: Request) {\n const origin = req?.headers.get(\"Origin\") || \"*\";\n return {\n \"Access-Control-Allow-Origin\": origin,\n \"Access-Control-Allow-Methods\": \"GET, POST, PUT, DELETE, PATCH, OPTIONS\",\n \"Access-Control-Allow-Headers\":\n \"Content-Type, Authorization, X-Arc-Scope, X-Arc-Tokens\",\n \"Access-Control-Allow-Credentials\": \"true\",\n // Cross-origin isolation — wymagane dla SharedArrayBuffer + OPFS\n // (SQLite WASM persistent storage w przeglądarce).\n \"Cross-Origin-Opener-Policy\": \"same-origin\",\n \"Cross-Origin-Embedder-Policy\": \"require-corp\",\n \"Cross-Origin-Resource-Policy\": \"cross-origin\",\n };\n }\n const corsHeaders = buildCorsHeaders();\n\n function verifyToken(token: string): TokenPayload | null {\n try {\n const decoded = jwt.verify(token, jwtSecret) as any;\n if (decoded.tokenName && !decoded.tokenType) {\n return {\n tokenType: decoded.tokenName,\n params: decoded.params || {},\n iat: decoded.iat,\n exp: decoded.exp,\n };\n }\n return decoded as TokenPayload;\n } catch {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3) return null;\n const payload = JSON.parse(atob(parts[1]));\n return {\n tokenType: payload.tokenName,\n params: payload.params || {},\n iat: payload.iat,\n exp: payload.exp,\n };\n } catch {\n return null;\n }\n }\n }\n\n // Build handler chains — Arc defaults + user-provided extras\n const defaultHttp = arcHttpHandlers(contextHandler, connectionManager);\n const defaultWs = arcWsHandlers();\n\n const httpHandlers = config.httpHandlers\n ? [...defaultHttp, ...config.httpHandlers]\n : defaultHttp;\n\n const wsHandlers = config.wsHandlers\n ? [...defaultWs, ...config.wsHandlers]\n : defaultWs;\n\n const wsCtx: ArcWsContext = {\n contextHandler,\n connectionManager,\n verifyToken,\n };\n\n const server = Bun.serve<WebSocketData>({\n port,\n idleTimeout: 255,\n\n async fetch(req, server) {\n const url = new URL(req.url);\n const corsHeaders = buildCorsHeaders(req);\n\n if (req.method === \"OPTIONS\") {\n return new Response(null, { headers: corsHeaders });\n }\n\n // Inner request body — extracted so we can wrap it in an HTTP span\n // when telemetry is enabled. The wrap MUST set the active context\n // (via runWithExtractedContext + startSpan) so nested handlers'\n // spans attach to this one as parent.\n const handleRequest = async (span: Span | undefined): Promise<Response> => {\n const authHeader = req.headers.get(\"Authorization\");\n let rawToken =\n authHeader?.replace(\"Bearer \", \"\") ||\n url.searchParams.get(\"token\");\n\n if (!rawToken) {\n const cookieHeader = req.headers.get(\"Cookie\");\n if (cookieHeader) {\n const match = cookieHeader.match(/arc_token=([^;]+)/);\n if (match) rawToken = decodeURIComponent(match[1]);\n }\n }\n const tokenPayload = rawToken ? verifyToken(rawToken) : null;\n\n if (\n url.pathname === \"/ws\" &&\n req.headers.get(\"Upgrade\") === \"websocket\"\n ) {\n if (server.upgrade(req, { data: { clientId: \"\" } })) return undefined as unknown as Response;\n return new Response(\"WebSocket upgrade failed\", {\n status: 500,\n headers: corsHeaders,\n });\n }\n\n const reqCtx: ArcRequestContext = { rawToken, tokenPayload, corsHeaders };\n for (const handler of httpHandlers) {\n const response = await handler(req, url, reqCtx);\n if (response) {\n span?.setAttribute(\"http.response.status_code\", response.status);\n return response;\n }\n }\n span?.setAttribute(\"http.response.status_code\", 404);\n return new Response(\"Not Found\", { status: 404, headers: corsHeaders });\n };\n\n const telemetry = config.telemetry;\n if (!telemetry) return handleRequest(undefined);\n\n return telemetry.runWithExtractedContext(req.headers, () =>\n telemetry.startSpan(\n `${req.method} ${url.pathname}`,\n (span) => handleRequest(span),\n {\n kind: 2 /* SpanKind.SERVER */,\n attributes: {\n \"http.request.method\": req.method,\n \"http.route\": url.pathname,\n \"url.scheme\": url.protocol.replace(\":\", \"\"),\n \"url.path\": url.pathname,\n \"server.address\": url.host,\n \"user_agent.original\": req.headers.get(\"user-agent\") ?? undefined,\n },\n },\n ),\n );\n },\n\n websocket: {\n open(ws) {\n connectionManager.addClient(ws as any);\n },\n async message(ws, messageStr) {\n const client = connectionManager.getClientByWs(ws as any);\n if (!client) return;\n\n let message: any;\n try {\n message = JSON.parse(messageStr as string);\n } catch (error) {\n console.error(\"Failed to parse WS message:\", error);\n return;\n }\n\n const dispatch = async (): Promise<void> => {\n try {\n for (const handler of wsHandlers) {\n const handled = await handler(client, message, wsCtx);\n if (handled) break;\n }\n } catch (error) {\n console.error(\"WS handler error:\", error);\n }\n };\n\n const telemetry = config.telemetry;\n if (!telemetry) {\n await dispatch();\n return;\n }\n\n // Parent context can travel inside the message under `traceparent`\n // (and optionally `tracestate`) so distributed traces from the\n // browser propagate over the persistent WS connection.\n const carrier: Record<string, string> = {};\n if (typeof message?.traceparent === \"string\") carrier.traceparent = message.traceparent;\n if (typeof message?.tracestate === \"string\") carrier.tracestate = message.tracestate;\n\n await telemetry.runWithExtractedContext(carrier, () =>\n telemetry.startSpan(\n `ws.${message?.type ?? \"message\"}`,\n () => dispatch(),\n {\n kind: 2 /* SpanKind.SERVER */,\n attributes: {\n \"messaging.system\": \"arc-ws\",\n \"messaging.operation\": \"process\",\n \"messaging.message.type\": message?.type,\n \"arc.ws.client_id\": client.id,\n },\n },\n ),\n );\n },\n close(ws) {\n const client = connectionManager.getClientByWs(ws as any);\n if (client) {\n cleanupClientSubs(client.id);\n config.onWsClose?.(client.id);\n connectionManager.removeClient(client.id);\n }\n },\n },\n });\n\n console.log(`Arc Server running on http://localhost:${port}`);\n\n return {\n server,\n contextHandler,\n connectionManager,\n cronScheduler,\n stop: () => {\n cronScheduler.stop();\n cleanupStreams();\n server.stop();\n },\n };\n}\n",
|
|
82
82
|
"import type { ServerWebSocket } from \"bun\";\nimport type {\n ConnectedClient,\n HostToClientMessage,\n TokenPayload,\n} from \"./types\";\n\n/**\n * Manages WebSocket connections for a host\n */\nexport class ConnectionManager {\n private clients = new Map<string, ConnectedClient>();\n private clientIdCounter = 0;\n\n /**\n * Add a new client connection\n */\n addClient(ws: ServerWebSocket<{ clientId: string }>): ConnectedClient {\n const clientId = `client_${++this.clientIdCounter}_${Date.now()}`;\n\n const client: ConnectedClient = {\n id: clientId,\n scopeTokens: new Map(),\n lastHostEventId: null,\n ws,\n };\n\n this.clients.set(clientId, client);\n\n // Store clientId in WebSocket data for later lookup\n ws.data = { clientId };\n\n return client;\n }\n\n /**\n * Remove a client connection\n */\n removeClient(clientId: string): void {\n this.clients.delete(clientId);\n }\n\n /**\n * Get client by ID\n */\n getClient(clientId: string): ConnectedClient | undefined {\n return this.clients.get(clientId);\n }\n\n /**\n * Get client by WebSocket\n */\n getClientByWs(\n ws: ServerWebSocket<{ clientId: string }>,\n ): ConnectedClient | undefined {\n const clientId = ws.data?.clientId;\n if (!clientId) return undefined;\n return this.clients.get(clientId);\n }\n\n /**\n * Set a scope token for a client\n */\n setScopeToken(\n clientId: string,\n scope: string,\n decoded: TokenPayload,\n raw: string,\n ): void {\n const client = this.clients.get(clientId);\n if (client) {\n client.scopeTokens.set(scope, { decoded, raw });\n }\n }\n\n /**\n * Get a specific scope token for a client\n */\n getScopeToken(\n clientId: string,\n scope: string,\n ): { decoded: TokenPayload; raw: string } | undefined {\n const client = this.clients.get(clientId);\n return client?.scopeTokens.get(scope);\n }\n\n /**\n * Get all scope tokens for a client as an array of TokenPayload\n */\n getAllScopeTokens(clientId: string): TokenPayload[] {\n const client = this.clients.get(clientId);\n if (!client) return [];\n return Array.from(client.scopeTokens.values()).map((v) => v.decoded);\n }\n\n /**\n * Update client's last synced event ID\n */\n updateLastSyncedEventId(clientId: string, hostEventId: string): void {\n const client = this.clients.get(clientId);\n if (client) {\n client.lastHostEventId = hostEventId;\n }\n }\n\n /**\n * Get all connected clients\n */\n getAllClients(): ConnectedClient[] {\n return Array.from(this.clients.values());\n }\n\n /**\n * Send message to a specific client\n */\n sendToClient(clientId: string, message: HostToClientMessage): boolean {\n const client = this.clients.get(clientId);\n if (!client) return false;\n\n try {\n client.ws.send(JSON.stringify(message));\n return true;\n } catch (error) {\n console.error(`Failed to send message to client ${clientId}:`, error);\n return false;\n }\n }\n\n /**\n * Broadcast message to all clients\n */\n broadcast(message: HostToClientMessage, excludeClientId?: string): void {\n for (const client of this.clients.values()) {\n if (client.id === excludeClientId) continue;\n this.sendToClient(client.id, message);\n }\n }\n\n /**\n * Get total number of connected clients\n */\n get clientCount(): number {\n return this.clients.size;\n }\n}\n",
|
|
83
|
-
"import {\n type ArcContextAny,\n type ArcEventAny,\n type DatabaseAdapter,\n LocalEventPublisher,\n MasterDataStorage,\n Model,\n ScopedModel,\n mutationExecutor,\n} from \"@arcote.tech/arc\";\nimport type { ArcTelemetry } from \"@arcote.tech/arc-otel\";\nimport { canTokenEmitEvent, filterEventsForToken } from \"./event-auth\";\nimport type { EventAuthContext, SyncableEvent, TokenPayload } from \"./types\";\n\n/**\n * Handles a single context on the host\n */\nexport class ContextHandler {\n private model: Model<ArcContextAny>;\n private dataStorage: MasterDataStorage;\n private eventPublisher: LocalEventPublisher;\n private eventDefinitions = new Map<string, ArcEventAny>();\n private hostEventIdCounter = 0;\n private initialized = false;\n\n constructor(\n public readonly context: ArcContextAny,\n dbAdapter: Promise<DatabaseAdapter>,\n private readonly telemetry?: ArcTelemetry,\n ) {\n this.dataStorage = new MasterDataStorage(dbAdapter);\n this.eventPublisher = new LocalEventPublisher(this.dataStorage);\n\n this.model = new Model(context, {\n adapters: {\n dataStorage: this.dataStorage,\n eventPublisher: this.eventPublisher,\n },\n environment: \"server\",\n });\n\n // Build event definitions map\n for (const element of context.elements) {\n if (\"tagFields\" in element && \"payload\" in element) {\n this.eventDefinitions.set(element.name, element as ArcEventAny);\n }\n }\n }\n\n /**\n * Initialize the context handler and run seed data if needed.\n */\n async init(): Promise<void> {\n if (this.initialized) return;\n await this.model.init();\n await this.runSeeds();\n this.initialized = true;\n }\n\n /**\n * Run seed data for aggregates that declare seedWith().\n * Seeds only when the table is empty — idempotent on restart.\n */\n private async runSeeds(): Promise<void> {\n for (const element of this.context.elements) {\n if (!(\"getSeeds\" in element)) continue;\n const seedInfo = (element as any).getSeeds();\n if (!seedInfo) continue;\n\n const { data, idFactory } = seedInfo;\n const tableName = element.name;\n const store = this.dataStorage.getStore<any>(tableName);\n\n // Only seed into empty tables\n const existing = await store.find({});\n if (existing.length > 0) continue;\n\n // Insert seed rows — use provided _id or auto-generate\n const changes = data.map((row: any) => ({\n type: \"set\" as const,\n data: {\n ...row,\n _id: row._id ?? idFactory.generate(),\n },\n }));\n await store.applyChanges(changes);\n\n console.log(`[ARC:Seed] Seeded ${data.length} row(s) into ${tableName}`);\n }\n }\n\n /**\n * Execute a command. When `telemetry` is wired, the entire dispatch is\n * traced as `command.<name>` with RPC semantic conventions, parented to\n * whatever context is active (HTTP request span, WS message span, etc.).\n */\n async executeCommand(\n commandName: string,\n params: any,\n rawToken: string | null,\n ): Promise<any> {\n const includePayloads = this.telemetry?.shouldIncludePayloads() ?? false;\n const baseAttrs = {\n \"rpc.system\": \"arc\",\n \"rpc.method\": commandName,\n \"arc.command.name\": commandName,\n \"arc.command.params_size\": params ? JSON.stringify(params).length : 0,\n ...(includePayloads ? { \"arc.command.params\": params } : {}),\n };\n\n const runCommand = async (): Promise<any> => {\n const scoped = new ScopedModel(this.model, \"request\");\n if (rawToken) scoped.setToken(rawToken);\n\n const mutations = mutationExecutor(scoped);\n\n let command: any;\n if (commandName.includes(\".\")) {\n const [elementName, methodName] = commandName.split(\".\");\n const element = (mutations as any)[elementName];\n command = element?.[methodName];\n } else {\n command = (mutations as any)[commandName];\n }\n\n if (!command) {\n throw new Error(`Command '${commandName}' not found`);\n }\n\n try {\n return await command(params);\n } catch (error) {\n console.error(`[ARC] Command '${commandName}' failed:`, error);\n throw error;\n }\n };\n\n if (!this.telemetry) return runCommand();\n const start = Date.now();\n try {\n return await this.telemetry.startSpan(\n `command.${commandName}`,\n runCommand,\n { attributes: baseAttrs },\n );\n } finally {\n this.telemetry.measureSince(\"arc.command.duration_ms\", start, {\n \"arc.command.name\": commandName,\n });\n this.telemetry.incrementCounter(\"arc.commands.total\", 1, {\n \"arc.command.name\": commandName,\n });\n }\n }\n\n /**\n * Persist events from a client and return with host IDs\n */\n async persistEvents(\n events: Array<{\n localId: string;\n type: string;\n payload: any;\n createdAt: string;\n authContext?: EventAuthContext | null;\n }>,\n clientId: string,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n const persistedEvents: SyncableEvent[] = [];\n\n for (const event of events) {\n // Get event definition\n const eventDef = this.eventDefinitions.get(event.type);\n if (!eventDef) {\n console.warn(`Unknown event type: ${event.type}`);\n continue;\n }\n\n // Check if token can emit this event\n if (!canTokenEmitEvent(token, eventDef, event.payload)) {\n console.warn(`Token not authorized to emit event: ${event.type}`);\n continue;\n }\n\n // Generate host ID\n const hostId = `host_${++this.hostEventIdCounter}_${Date.now()}`;\n\n const eventAuthContext = event.authContext ?? null;\n const syncableEvent: SyncableEvent = {\n localId: event.localId,\n hostId,\n type: event.type,\n payload: event.payload,\n createdAt: event.createdAt,\n clientId,\n authContext: eventAuthContext,\n };\n\n // Persist to database via event publisher (carry authContext through)\n await this.eventPublisher.publish({\n id: hostId,\n type: event.type,\n payload: event.payload,\n createdAt: new Date(event.createdAt),\n authContext: eventAuthContext,\n } as any);\n\n persistedEvents.push(syncableEvent);\n }\n\n return persistedEvents;\n }\n\n /**\n * Get events after a specific host ID, filtered by token\n */\n async getEventsSince(\n lastHostEventId: string | null,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n // Query events from database\n const eventsStore = this.dataStorage.getStore<any>(\"events\");\n const allEvents: any[] = await eventsStore.find({});\n\n let filteredEvents: any[];\n if (lastHostEventId) {\n // Extract timestamp from lastHostEventId (format: host_{counter}_{timestamp})\n const parts = lastHostEventId.split(\"_\");\n const lastTimestamp = parts.length >= 3 ? parseInt(parts[2], 10) : 0;\n\n // Filter events with timestamp > lastTimestamp\n filteredEvents = allEvents.filter((e) => {\n if (!e._id.startsWith(\"host_\")) return false;\n const eventParts = e._id.split(\"_\");\n const eventTimestamp =\n eventParts.length >= 3 ? parseInt(eventParts[2], 10) : 0;\n return eventTimestamp > lastTimestamp;\n });\n } else {\n // Return all host events\n filteredEvents = allEvents.filter((e) => e._id.startsWith(\"host_\"));\n }\n\n // Sort by timestamp to ensure correct order\n filteredEvents.sort((a, b) => {\n const aTimestamp = parseInt(a._id.split(\"_\")[2] || \"0\", 10);\n const bTimestamp = parseInt(b._id.split(\"_\")[2] || \"0\", 10);\n return aTimestamp - bTimestamp;\n });\n\n // Convert to SyncableEvent format\n const syncableEvents: SyncableEvent[] = filteredEvents.map((e) => ({\n localId: e._id,\n hostId: e._id,\n type: e.type,\n payload:\n typeof e.payload === \"string\" ? JSON.parse(e.payload) : e.payload,\n createdAt: e.createdAt,\n clientId: \"host\",\n authContext:\n typeof e.authContext === \"string\"\n ? JSON.parse(e.authContext)\n : (e.authContext ?? null),\n }));\n\n // Filter by token authorization\n return filterEventsForToken(token, syncableEvents, this.eventDefinitions);\n }\n\n /**\n * Get the model for advanced operations\n */\n getModel(): Model<ArcContextAny> {\n return this.model;\n }\n\n /**\n * Get data storage for queries\n */\n getDataStorage(): MasterDataStorage {\n return this.dataStorage;\n }\n\n /**\n * Get event definitions map\n */\n getEventDefinitions(): Map<string, ArcEventAny> {\n return this.eventDefinitions;\n }\n\n /**\n * Get event publisher for subscribing to data changes\n */\n getEventPublisher(): LocalEventPublisher {\n return this.eventPublisher;\n }\n}\n",
|
|
83
|
+
"import {\n type ArcContextAny,\n type ArcEventAny,\n type DatabaseAdapter,\n LocalEventPublisher,\n MasterDataStorage,\n Model,\n ScopedModel,\n mutationExecutor,\n} from \"@arcote.tech/arc\";\nimport type { ArcTelemetry } from \"@arcote.tech/arc-otel\";\nimport { canTokenEmitEvent, filterEventsForToken } from \"./event-auth\";\nimport type { EventAuthContext, SyncableEvent, TokenPayload } from \"./types\";\n\n/**\n * Handles a single context on the host\n */\nexport class ContextHandler {\n private model: Model<ArcContextAny>;\n private dataStorage: MasterDataStorage;\n private eventPublisher: LocalEventPublisher;\n private eventDefinitions = new Map<string, ArcEventAny>();\n private hostEventIdCounter = 0;\n private initialized = false;\n\n constructor(\n public readonly context: ArcContextAny,\n dbAdapter: Promise<DatabaseAdapter>,\n private readonly telemetry?: ArcTelemetry,\n ) {\n this.dataStorage = new MasterDataStorage(dbAdapter);\n this.eventPublisher = new LocalEventPublisher(this.dataStorage);\n\n this.model = new Model(context, {\n adapters: {\n dataStorage: this.dataStorage,\n eventPublisher: this.eventPublisher,\n },\n environment: \"server\",\n });\n\n // Build event definitions map\n for (const element of context.elements) {\n if (\"tagFields\" in element && \"payload\" in element) {\n this.eventDefinitions.set(element.name, element as ArcEventAny);\n }\n }\n }\n\n /**\n * Initialize the context handler and run seed data if needed.\n */\n async init(): Promise<void> {\n if (this.initialized) return;\n await this.model.init();\n await this.runSeeds();\n this.initialized = true;\n }\n\n /**\n * Run seed data for aggregates that declare seedWith().\n * Seeds only when the table is empty — idempotent on restart.\n */\n private async runSeeds(): Promise<void> {\n for (const element of this.context.elements) {\n if (!(\"getSeeds\" in element)) continue;\n const seedInfo = (element as any).getSeeds();\n if (!seedInfo) continue;\n\n const { data, idFactory } = seedInfo;\n const tableName = element.name;\n const store = this.dataStorage.getStore<any>(tableName);\n\n // Only seed into empty tables\n const existing = await store.find({});\n if (existing.length > 0) continue;\n\n // Insert seed rows — use provided _id or auto-generate\n const changes = data.map((row: any) => ({\n type: \"set\" as const,\n data: {\n ...row,\n _id: row._id ?? idFactory.generate(),\n },\n }));\n await store.applyChanges(changes);\n\n console.log(`[ARC:Seed] Seeded ${data.length} row(s) into ${tableName}`);\n }\n }\n\n /**\n * Execute a command. When `telemetry` is wired, the entire dispatch is\n * traced as `command.<name>` with RPC semantic conventions, parented to\n * whatever context is active (HTTP request span, WS message span, etc.).\n *\n * Wire dispatchers (HTTP, WS) MUST omit `options.internal` or pass `false`\n * so that private mutateMethod/command is rejected. Internal callers\n * (cron-scheduler, server-side tasks) pass `{ internal: true }` to bypass\n * the wire-only restriction.\n */\n async executeCommand(\n commandName: string,\n params: any,\n rawToken: string | null,\n options?: { internal?: boolean },\n ): Promise<any> {\n const includePayloads = this.telemetry?.shouldIncludePayloads() ?? false;\n const baseAttrs = {\n \"rpc.system\": \"arc\",\n \"rpc.method\": commandName,\n \"arc.command.name\": commandName,\n \"arc.command.params_size\": params ? JSON.stringify(params).length : 0,\n ...(includePayloads ? { \"arc.command.params\": params } : {}),\n };\n\n const runCommand = async (): Promise<any> => {\n const scoped = new ScopedModel(this.model, \"request\");\n if (rawToken) scoped.setToken(rawToken);\n\n const mutations = mutationExecutor(scoped);\n\n let command: any;\n if (commandName.includes(\".\")) {\n const [elementName, methodName] = commandName.split(\".\");\n const element = (mutations as any)[elementName];\n command = element?.[methodName];\n } else {\n command = (mutations as any)[commandName];\n }\n\n if (!command) {\n throw new Error(`Command '${commandName}' not found`);\n }\n\n // Private mutateMethod / command — server-internal only, never callable\n // from a client over the wire. Server-side callers reach the handler\n // directly through `ctx.mutate.*` (bypassing this dispatcher) or pass\n // `{ internal: true }` (e.g. cron-scheduler).\n if (!options?.internal && (command as any).__isPrivate) {\n throw new Error(\n `Command '${commandName}' is private and not callable from a client.`,\n );\n }\n\n try {\n return await command(params);\n } catch (error) {\n console.error(`[ARC] Command '${commandName}' failed:`, error);\n throw error;\n }\n };\n\n if (!this.telemetry) return runCommand();\n const start = Date.now();\n try {\n return await this.telemetry.startSpan(\n `command.${commandName}`,\n runCommand,\n { attributes: baseAttrs },\n );\n } finally {\n this.telemetry.measureSince(\"arc.command.duration_ms\", start, {\n \"arc.command.name\": commandName,\n });\n this.telemetry.incrementCounter(\"arc.commands.total\", 1, {\n \"arc.command.name\": commandName,\n });\n }\n }\n\n /**\n * Persist events from a client and return with host IDs\n */\n async persistEvents(\n events: Array<{\n localId: string;\n type: string;\n payload: any;\n createdAt: string;\n authContext?: EventAuthContext | null;\n }>,\n clientId: string,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n const persistedEvents: SyncableEvent[] = [];\n\n for (const event of events) {\n // Get event definition\n const eventDef = this.eventDefinitions.get(event.type);\n if (!eventDef) {\n console.warn(`Unknown event type: ${event.type}`);\n continue;\n }\n\n // Check if token can emit this event\n if (!canTokenEmitEvent(token, eventDef, event.payload)) {\n console.warn(`Token not authorized to emit event: ${event.type}`);\n continue;\n }\n\n // Generate host ID\n const hostId = `host_${++this.hostEventIdCounter}_${Date.now()}`;\n\n const eventAuthContext = event.authContext ?? null;\n const syncableEvent: SyncableEvent = {\n localId: event.localId,\n hostId,\n type: event.type,\n payload: event.payload,\n createdAt: event.createdAt,\n clientId,\n authContext: eventAuthContext,\n };\n\n // Persist to database via event publisher (carry authContext through)\n await this.eventPublisher.publish({\n id: hostId,\n type: event.type,\n payload: event.payload,\n createdAt: new Date(event.createdAt),\n authContext: eventAuthContext,\n } as any);\n\n persistedEvents.push(syncableEvent);\n }\n\n return persistedEvents;\n }\n\n /**\n * Get events after a specific host ID, filtered by token\n */\n async getEventsSince(\n lastHostEventId: string | null,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n // Query events from database\n const eventsStore = this.dataStorage.getStore<any>(\"events\");\n const allEvents: any[] = await eventsStore.find({});\n\n let filteredEvents: any[];\n if (lastHostEventId) {\n // Extract timestamp from lastHostEventId (format: host_{counter}_{timestamp})\n const parts = lastHostEventId.split(\"_\");\n const lastTimestamp = parts.length >= 3 ? parseInt(parts[2], 10) : 0;\n\n // Filter events with timestamp > lastTimestamp\n filteredEvents = allEvents.filter((e) => {\n if (!e._id.startsWith(\"host_\")) return false;\n const eventParts = e._id.split(\"_\");\n const eventTimestamp =\n eventParts.length >= 3 ? parseInt(eventParts[2], 10) : 0;\n return eventTimestamp > lastTimestamp;\n });\n } else {\n // Return all host events\n filteredEvents = allEvents.filter((e) => e._id.startsWith(\"host_\"));\n }\n\n // Sort by timestamp to ensure correct order\n filteredEvents.sort((a, b) => {\n const aTimestamp = parseInt(a._id.split(\"_\")[2] || \"0\", 10);\n const bTimestamp = parseInt(b._id.split(\"_\")[2] || \"0\", 10);\n return aTimestamp - bTimestamp;\n });\n\n // Convert to SyncableEvent format\n const syncableEvents: SyncableEvent[] = filteredEvents.map((e) => ({\n localId: e._id,\n hostId: e._id,\n type: e.type,\n payload:\n typeof e.payload === \"string\" ? JSON.parse(e.payload) : e.payload,\n createdAt: e.createdAt,\n clientId: \"host\",\n authContext:\n typeof e.authContext === \"string\"\n ? JSON.parse(e.authContext)\n : (e.authContext ?? null),\n }));\n\n // Filter by token authorization\n return filterEventsForToken(token, syncableEvents, this.eventDefinitions);\n }\n\n /**\n * Get the model for advanced operations\n */\n getModel(): Model<ArcContextAny> {\n return this.model;\n }\n\n /**\n * Get data storage for queries\n */\n getDataStorage(): MasterDataStorage {\n return this.dataStorage;\n }\n\n /**\n * Get event definitions map\n */\n getEventDefinitions(): Map<string, ArcEventAny> {\n return this.eventDefinitions;\n }\n\n /**\n * Get event publisher for subscribing to data changes\n */\n getEventPublisher(): LocalEventPublisher {\n return this.eventPublisher;\n }\n}\n",
|
|
84
84
|
"import type { ArcEventAny } from \"@arcote.tech/arc\";\nimport type { SyncableEvent, TokenPayload } from \"./types\";\n\n/**\n * Check if a token can receive an event based on explicit protectBy rules\n *\n * Security model:\n * - Events WITHOUT protections: public, anyone can receive\n * - Events WITH protections: MUST have matching read rule for token\n */\nexport function canTokenReceiveEvent(\n token: TokenPayload | null,\n event: ArcEventAny,\n eventInstance: SyncableEvent,\n): boolean {\n // If event has no protections, it's public - allow everyone\n if (!event.hasProtections) {\n return true;\n }\n\n // Event has protections - require valid token\n if (!token) {\n return false;\n }\n\n // Check event protections for matching read rule\n for (const protection of event.protections) {\n // Check if this protection applies to the token type\n if (protection.token.name !== token.tokenType) {\n continue;\n }\n\n // Get protection rules for this token's params\n const rules = protection.protectionFn(token.params);\n\n // If read is explicitly false, deny access\n if (rules.read === false) {\n continue;\n }\n\n // Check read conditions against event payload\n if (rules.read) {\n const matches = checkConditionsMatch(rules.read, eventInstance.payload);\n if (matches) {\n return true;\n }\n }\n }\n\n // No matching protection rule found - deny access\n return false;\n}\n\n/**\n * Check if a token can emit an event\n */\nexport function canTokenEmitEvent(\n token: TokenPayload | null,\n event: ArcEventAny,\n payload: any,\n): boolean {\n // If no token, only allow unprotected events\n if (!token) {\n return !event.hasProtections;\n }\n\n // If event has no protections, allow all authenticated users\n if (!event.hasProtections) {\n return true;\n }\n\n // Check event protections\n for (const protection of event.protections) {\n // Check if this protection applies to the token type\n if (protection.token.name !== token.tokenType) {\n continue;\n }\n\n // Get protection rules for this token's params\n const rules = protection.protectionFn(token.params);\n\n // Check write rules against payload\n if (rules.write) {\n const matches = checkConditionsMatch(rules.write, payload);\n if (matches) {\n return true;\n }\n }\n }\n\n return false;\n}\n\n/**\n * Check if conditions match against data\n */\nfunction checkConditionsMatch(\n conditions: Record<string, any>,\n data: Record<string, any>,\n): boolean {\n for (const [key, expectedValue] of Object.entries(conditions)) {\n const actualValue = data[key];\n\n if (actualValue !== expectedValue) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Filter events that a single token can receive\n */\nexport function filterEventsForToken(\n token: TokenPayload | null,\n events: SyncableEvent[],\n eventDefinitions: Map<string, ArcEventAny>,\n): SyncableEvent[] {\n return events.filter((eventInstance) => {\n const eventDef = eventDefinitions.get(eventInstance.type);\n if (!eventDef) {\n // Unknown event type, don't send\n return false;\n }\n return canTokenReceiveEvent(token, eventDef, eventInstance);\n });\n}\n\n/**\n * Filter events visible to ANY of the provided tokens.\n * Used for multi-scope clients where an event visible to any scope should be sent.\n */\nexport function filterEventsForTokens(\n tokens: TokenPayload[],\n events: SyncableEvent[],\n eventDefinitions: Map<string, ArcEventAny>,\n): SyncableEvent[] {\n if (tokens.length === 0) {\n // No tokens — only public events\n return filterEventsForToken(null, events, eventDefinitions);\n }\n\n return events.filter((eventInstance) => {\n const eventDef = eventDefinitions.get(eventInstance.type);\n if (!eventDef) return false;\n\n // Event is visible if ANY token can receive it\n return tokens.some((token) =>\n canTokenReceiveEvent(token, eventDef, eventInstance),\n );\n });\n}\n",
|
|
85
85
|
"function h(n,t,e,r,s,i,a,l){return h.fromTZ(h.tp(n,t,e,r,s,i,a),l)}h.fromTZISO=(n,t,e)=>h.fromTZ(k(n,t),e);h.fromTZ=function(n,t){let e=new Date(Date.UTC(n.y,n.m-1,n.d,n.h,n.i,n.s)),r=D(n.tz,e),s=new Date(e.getTime()-r),i=D(n.tz,s);if(i-r===0)return s;{let a=new Date(e.getTime()-i),l=D(n.tz,a);if(l-i===0)return a;if(!t&&l-i>0)return a;if(t)throw new Error(\"Invalid date passed to fromTZ()\");return s}};h.toTZ=function(n,t){let e=n.toLocaleString(\"en-US\",{timeZone:t}).replace(/[\\u202f]/,\" \"),r=new Date(e);return{y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),tz:t}};h.tp=(n,t,e,r,s,i,a)=>({y:n,m:t,d:e,h:r,i:s,s:i,tz:a});function D(n,t=new Date){let e=t.toLocaleString(\"en-US\",{timeZone:n,timeZoneName:\"shortOffset\"}).split(\" \").slice(-1)[0],r=t.toLocaleString(\"en-US\").replace(/[\\u202f]/,\" \");return Date.parse(`${r} GMT`)-Date.parse(`${r} ${e}`)}function k(n,t){let e=new Date(Date.parse(n));if(isNaN(e))throw new Error(\"minitz: Invalid ISO8601 passed to parser.\");let r=n.substring(9);return n.includes(\"Z\")||r.includes(\"-\")||r.includes(\"+\")?h.tp(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),\"Etc/UTC\"):h.tp(e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),t)}h.minitz=h;var b=32,p=31|b,v=[1,2,4,8,16],d=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(t,e){this.pattern=t,this.timezone=e,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern==\"string\"||this.pattern instanceof String))throw new TypeError(\"CronPattern: Pattern has to be of type string.\");this.pattern.indexOf(\"@\")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let t=this.pattern.replace(/\\s+/g,\" \").split(\" \");if(t.length<5||t.length>6)throw new TypeError(\"CronPattern: invalid configuration format ('\"+this.pattern+\"'), exactly five or six space separated parts are required.\");if(t.length===5&&t.unshift(\"0\"),t[3].indexOf(\"L\")>=0&&(t[3]=t[3].replace(\"L\",\"\"),this.lastDayOfMonth=!0),t[3]==\"*\"&&(this.starDOM=!0),t[4].length>=3&&(t[4]=this.replaceAlphaMonths(t[4])),t[5].length>=3&&(t[5]=this.replaceAlphaDays(t[5])),t[5]==\"*\"&&(this.starDOW=!0),this.pattern.indexOf(\"?\")>=0){let e=new f(new Date,this.timezone).getDate(!0);t[0]=t[0].replace(\"?\",e.getSeconds().toString()),t[1]=t[1].replace(\"?\",e.getMinutes().toString()),t[2]=t[2].replace(\"?\",e.getHours().toString()),this.starDOM||(t[3]=t[3].replace(\"?\",e.getDate().toString())),t[4]=t[4].replace(\"?\",(e.getMonth()+1).toString()),this.starDOW||(t[5]=t[5].replace(\"?\",e.getDay().toString()))}this.throwAtIllegalCharacters(t),this.partToArray(\"second\",t[0],0,1),this.partToArray(\"minute\",t[1],0,1),this.partToArray(\"hour\",t[2],0,1),this.partToArray(\"day\",t[3],-1,1),this.partToArray(\"month\",t[4],-1,1),this.partToArray(\"dayOfWeek\",t[5],0,p),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(t,e,r,s){let i=this[t],a=t===\"day\"&&this.lastDayOfMonth;if(e===\"\"&&!a)throw new TypeError(\"CronPattern: configuration entry \"+t+\" (\"+e+\") is empty, check for trailing spaces.\");if(e===\"*\")return i.fill(s);let l=e.split(\",\");if(l.length>1)for(let o=0;o<l.length;o++)this.partToArray(t,l[o],r,s);else e.indexOf(\"-\")!==-1&&e.indexOf(\"/\")!==-1?this.handleRangeWithStepping(e,t,r,s):e.indexOf(\"-\")!==-1?this.handleRange(e,t,r,s):e.indexOf(\"/\")!==-1?this.handleStepping(e,t,r,s):e!==\"\"&&this.handleNumber(e,t,r,s)}throwAtIllegalCharacters(t){for(let e=0;e<t.length;e++)if((e===5?/[^/*0-9,\\-#L]+/:/[^/*0-9,-]+/).test(t[e]))throw new TypeError(\"CronPattern: configuration entry \"+e+\" (\"+t[e]+\") contains illegal characters.\")}handleNumber(t,e,r,s){let i=this.extractNth(t,e),a=parseInt(i[0],10)+r;if(isNaN(a))throw new TypeError(\"CronPattern: \"+e+\" is not a number: '\"+t+\"'\");this.setPart(e,a,i[1]||s)}setPart(t,e,r){if(!Object.prototype.hasOwnProperty.call(this,t))throw new TypeError(\"CronPattern: Invalid part specified: \"+t);if(t===\"dayOfWeek\"){if(e===7&&(e=0),e<0||e>6)throw new RangeError(\"CronPattern: Invalid value for dayOfWeek: \"+e);this.setNthWeekdayOfMonth(e,r);return}if(t===\"second\"||t===\"minute\"){if(e<0||e>=60)throw new RangeError(\"CronPattern: Invalid value for \"+t+\": \"+e)}else if(t===\"hour\"){if(e<0||e>=24)throw new RangeError(\"CronPattern: Invalid value for \"+t+\": \"+e)}else if(t===\"day\"){if(e<0||e>=31)throw new RangeError(\"CronPattern: Invalid value for \"+t+\": \"+e)}else if(t===\"month\"&&(e<0||e>=12))throw new RangeError(\"CronPattern: Invalid value for \"+t+\": \"+e);this[t][e]=r}handleRangeWithStepping(t,e,r,s){let i=this.extractNth(t,e),a=i[0].match(/^(\\d+)-(\\d+)\\/(\\d+)$/);if(a===null)throw new TypeError(\"CronPattern: Syntax error, illegal range with stepping: '\"+t+\"'\");let[,l,o,u]=a,c=parseInt(l,10)+r,w=parseInt(o,10)+r,C=parseInt(u,10);if(isNaN(c))throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\");if(isNaN(w))throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\");if(isNaN(C))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(C===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(C>this[e].length)throw new TypeError(\"CronPattern: Syntax error, steps cannot be greater than maximum value of part (\"+this[e].length+\")\");if(c>w)throw new TypeError(\"CronPattern: From value is larger than to value: '\"+t+\"'\");for(let T=c;T<=w;T+=C)this.setPart(e,T,i[1]||s)}extractNth(t,e){let r=t,s;if(r.includes(\"#\")){if(e!==\"dayOfWeek\")throw new Error(\"CronPattern: nth (#) only allowed in day-of-week field\");s=r.split(\"#\")[1],r=r.split(\"#\")[0]}return[r,s]}handleRange(t,e,r,s){let i=this.extractNth(t,e),a=i[0].split(\"-\");if(a.length!==2)throw new TypeError(\"CronPattern: Syntax error, illegal range: '\"+t+\"'\");let l=parseInt(a[0],10)+r,o=parseInt(a[1],10)+r;if(isNaN(l))throw new TypeError(\"CronPattern: Syntax error, illegal lower range (NaN)\");if(isNaN(o))throw new TypeError(\"CronPattern: Syntax error, illegal upper range (NaN)\");if(l>o)throw new TypeError(\"CronPattern: From value is larger than to value: '\"+t+\"'\");for(let u=l;u<=o;u++)this.setPart(e,u,i[1]||s)}handleStepping(t,e,r,s){let i=this.extractNth(t,e),a=i[0].split(\"/\");if(a.length!==2)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: '\"+t+\"'\");a[0]===\"\"&&(a[0]=\"*\");let l=0;a[0]!==\"*\"&&(l=parseInt(a[0],10)+r);let o=parseInt(a[1],10);if(isNaN(o))throw new TypeError(\"CronPattern: Syntax error, illegal stepping: (NaN)\");if(o===0)throw new TypeError(\"CronPattern: Syntax error, illegal stepping: 0\");if(o>this[e].length)throw new TypeError(\"CronPattern: Syntax error, max steps for part is (\"+this[e].length+\")\");for(let u=l;u<this[e].length;u+=o)this.setPart(e,u,i[1]||s)}replaceAlphaDays(t){return t.replace(/-sun/gi,\"-7\").replace(/sun/gi,\"0\").replace(/mon/gi,\"1\").replace(/tue/gi,\"2\").replace(/wed/gi,\"3\").replace(/thu/gi,\"4\").replace(/fri/gi,\"5\").replace(/sat/gi,\"6\")}replaceAlphaMonths(t){return t.replace(/jan/gi,\"1\").replace(/feb/gi,\"2\").replace(/mar/gi,\"3\").replace(/apr/gi,\"4\").replace(/may/gi,\"5\").replace(/jun/gi,\"6\").replace(/jul/gi,\"7\").replace(/aug/gi,\"8\").replace(/sep/gi,\"9\").replace(/oct/gi,\"10\").replace(/nov/gi,\"11\").replace(/dec/gi,\"12\")}handleNicknames(t){let e=t.trim().toLowerCase();return e===\"@yearly\"||e===\"@annually\"?\"0 0 1 1 *\":e===\"@monthly\"?\"0 0 1 * *\":e===\"@weekly\"?\"0 0 * * 0\":e===\"@daily\"?\"0 0 * * *\":e===\"@hourly\"?\"0 * * * *\":t}setNthWeekdayOfMonth(t,e){if(typeof e!=\"number\"&&e===\"L\")this.dayOfWeek[t]=this.dayOfWeek[t]|b;else if(e===p)this.dayOfWeek[t]=p;else if(e<6&&e>0)this.dayOfWeek[t]=this.dayOfWeek[t]|v[e-1];else throw new TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${e}, Type: ${typeof e}`)}};var O=[31,28,31,30,31,30,31,31,30,31,30,31],m=[[\"month\",\"year\",0],[\"day\",\"month\",-1],[\"hour\",\"day\",0],[\"minute\",\"hour\",0],[\"second\",\"minute\",0]],f=class n{tz;ms;second;minute;hour;day;month;year;constructor(t,e){if(this.tz=e,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw new TypeError(\"CronDate: Invalid date passed to CronDate constructor\");else if(t===void 0)this.fromDate(new Date);else if(t&&typeof t==\"string\")this.fromString(t);else if(t instanceof n)this.fromCronDate(t);else throw new TypeError(\"CronDate: Invalid type (\"+typeof t+\") passed to CronDate constructor\")}isNthWeekdayOfMonth(t,e,r,s){let a=new Date(Date.UTC(t,e,r)).getUTCDay(),l=0;for(let o=1;o<=r;o++)new Date(Date.UTC(t,e,o)).getUTCDay()===a&&l++;if(s&p&&v[l-1]&s)return!0;if(s&b){let o=new Date(Date.UTC(t,e+1,0)).getUTCDate();for(let u=r+1;u<=o;u++)if(new Date(Date.UTC(t,e,u)).getUTCDay()===a)return!1;return!0}return!1}fromDate(t){if(this.tz!==void 0)if(typeof this.tz==\"number\")this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes()+this.tz,this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply();else{let e=h.toTZ(t,this.tz);this.ms=t.getMilliseconds(),this.second=e.s,this.minute=e.i,this.hour=e.h,this.day=e.d,this.month=e.m-1,this.year=e.y}else this.ms=t.getMilliseconds(),this.second=t.getSeconds(),this.minute=t.getMinutes(),this.hour=t.getHours(),this.day=t.getDate(),this.month=t.getMonth(),this.year=t.getFullYear()}fromCronDate(t){this.tz=t.tz,this.year=t.year,this.month=t.month,this.day=t.day,this.hour=t.hour,this.minute=t.minute,this.second=t.second,this.ms=t.ms}apply(){if(this.month>11||this.day>O[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let t=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),!0}else return!1}fromString(t){if(typeof this.tz==\"number\"){let e=h.fromTZISO(t);this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply()}else return this.fromDate(h.fromTZISO(t,this.tz))}findNext(t,e,r,s){let i=this[e],a;r.lastDayOfMonth&&(this.month!==1?a=O[this.month]:a=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let l=!r.starDOW&&e==\"day\"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let o=this[e]+s;o<r[e].length;o++){let u=r[e][o];if(e===\"day\"&&r.lastDayOfMonth&&o-s==a&&(u=1),e===\"day\"&&!r.starDOW){let c=r.dayOfWeek[(l+(o-s-1))%7];if(c&&c&p)c=this.isNthWeekdayOfMonth(this.year,this.month,o-s,c)?1:0;else if(c)throw new Error(`CronDate: Invalid value for dayOfWeek encountered. ${c}`);t.legacyMode&&!r.starDOM?u=u||c:u=u&&c}if(u)return this[e]=o-s,i!==this[e]?2:1}return 3}recurse(t,e,r){let s=this.findNext(e,m[r][0],t,m[r][2]);if(s>1){let i=r+1;for(;i<m.length;)this[m[i][0]]=-m[i][2],i++;if(s===3)return this[m[r][1]]++,this[m[r][0]]=-m[r][2],this.apply(),this.recurse(t,e,0);if(this.apply())return this.recurse(t,e,r-1)}return r+=1,r>=m.length?this:this.year>=3e3?null:this.recurse(t,e,r)}increment(t,e,r){return this.second+=e.interval!==void 0&&e.interval>1&&r?e.interval:1,this.ms=0,this.apply(),this.recurse(t,e,0)}getDate(t){return t||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==\"number\"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):h.fromTZ(h.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function N(n){if(n===void 0&&(n={}),delete n.name,n.legacyMode=n.legacyMode===void 0?!0:n.legacyMode,n.paused=n.paused===void 0?!1:n.paused,n.maxRuns=n.maxRuns===void 0?1/0:n.maxRuns,n.catch=n.catch===void 0?!1:n.catch,n.interval=n.interval===void 0?0:parseInt(n.interval.toString(),10),n.utcOffset=n.utcOffset===void 0?void 0:parseInt(n.utcOffset.toString(),10),n.unref=n.unref===void 0?!1:n.unref,n.startAt&&(n.startAt=new f(n.startAt,n.timezone)),n.stopAt&&(n.stopAt=new f(n.stopAt,n.timezone)),n.interval!==null){if(isNaN(n.interval))throw new Error(\"CronOptions: Supplied value for interval is not a number\");if(n.interval<0)throw new Error(\"CronOptions: Supplied value for interval can not be negative\")}if(n.utcOffset!==void 0){if(isNaN(n.utcOffset))throw new Error(\"CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.\");if(n.utcOffset<-870||n.utcOffset>870)throw new Error(\"CronOptions: utcOffset out of bounds.\");if(n.utcOffset!==void 0&&n.timezone)throw new Error(\"CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.\")}if(n.unref!==!0&&n.unref!==!1)throw new Error(\"CronOptions: Unref should be either true, false or undefined(false).\");return n}function g(n){return Object.prototype.toString.call(n)===\"[object Function]\"||typeof n==\"function\"||n instanceof Function}function S(n){return g(n)}function P(n){typeof Deno<\"u\"&&typeof Deno.unrefTimer<\"u\"?Deno.unrefTimer(n):n&&typeof n.unref<\"u\"&&n.unref()}var _=30*1e3,y=[],R=class{name;options;_states;fn;constructor(t,e,r){let s,i;if(g(e))i=e;else if(typeof e==\"object\")s=e;else if(e!==void 0)throw new Error(\"Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).\");if(g(r))i=r;else if(typeof r==\"object\")s=r;else if(r!==void 0)throw new Error(\"Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).\");if(this.name=s?.name,this.options=N(s),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:s?s.maxRuns:void 0,paused:s?s.paused:!1,pattern:new d(\"* * * * *\")},t&&(t instanceof Date||typeof t==\"string\"&&t.indexOf(\":\")>0)?this._states.once=new f(t,this.options.timezone||this.options.utcOffset):this._states.pattern=new d(t,this.options.timezone),this.name){if(y.find(l=>l.name===this.name))throw new Error(\"Cron: Tried to initialize new named job '\"+this.name+\"', but name already taken.\");y.push(this)}return i!==void 0&&S(i)&&(this.fn=i,this.schedule()),this}nextRun(t){let e=this._next(t);return e?e.getDate(!1):null}nextRuns(t,e){this._states.maxRuns!==void 0&&t>this._states.maxRuns&&(t=this._states.maxRuns);let r=[],s=e||this._states.currentRun||void 0;for(;t--&&(s=this.nextRun(s));)r.push(s);return r}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let t=this.nextRun(this._states.currentRun),e=!this._states.paused,r=this.fn!==void 0,s=!this._states.kill;return e&&r&&s&&t!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(t){let e=this._next(t);return e?t instanceof f||t instanceof Date?e.getTime()-t.getTime():e.getTime()-new f(t).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let t=y.indexOf(this);t>=0&&y.splice(t,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(t){if(t&&this.fn)throw new Error(\"Cron: It is not allowed to schedule two functions using the same Croner instance.\");t&&(this.fn=t);let e=this.msToNext(),r=this.nextRun(this._states.currentRun);return e==null||isNaN(e)||r===null?this:(e>_&&(e=_),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(r),e),this._states.currentTimeout&&this.options.unref&&P(this._states.currentTimeout),this)}async _trigger(t){if(this._states.blocking=!0,this._states.currentRun=new f(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){g(this.options.catch)&&this.options.catch(e,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new f(t,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(t){let e=new Date,r=!this._states.paused&&e.getTime()>=t.getTime(),s=this._states.blocking&&this.options.protect;r&&!s?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):r&&s&&g(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(t){let e=!!(t||this._states.currentRun),r=!1;!t&&this.options.startAt&&this.options.interval&&([t,e]=this._calculatePreviousRun(t,e),r=!t),t=new f(t,this.options.timezone||this.options.utcOffset),this.options.startAt&&t&&t.getTime()<this.options.startAt.getTime()&&(t=this.options.startAt);let s=this._states.once||new f(t,this.options.timezone||this.options.utcOffset);return!r&&s!==this._states.once&&(s=s.increment(this._states.pattern,this.options,e)),this._states.once&&this._states.once.getTime()<=t.getTime()||s===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&s.getTime()>=this.options.stopAt.getTime()?null:s}_calculatePreviousRun(t,e){let r=new f(void 0,this.options.timezone||this.options.utcOffset),s=t;if(this.options.startAt.getTime()<=r.getTime()){s=this.options.startAt;let i=s.getTime()+this.options.interval*1e3;for(;i<=r.getTime();)s=new f(s,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),i=s.getTime()+this.options.interval*1e3;e=!0}return s===null&&(s=void 0),[s,e]}};export{R as Cron,f as CronDate,d as CronPattern,y as scheduledJobs};\n",
|
|
86
|
-
"/**\n * CronScheduler\n *\n * Discovers aggregate cron methods from context elements and schedules them\n * using node-cron. For each cron trigger, queries all instances of the aggregate\n * and executes the command for each instance.\n */\n\nimport type { ArcContextAny, AggregateCronMethodEntry } from \"@arcote.tech/arc\";\nimport { Cron } from \"croner\";\nimport type { ContextHandler } from \"./context-handler\";\n\ninterface CronJob {\n entry: AggregateCronMethodEntry;\n task: Cron;\n}\n\nexport class CronScheduler {\n private jobs: CronJob[] = [];\n private contextHandler: ContextHandler;\n\n constructor(contextHandler: ContextHandler) {\n this.contextHandler = contextHandler;\n }\n\n /**\n * Discover cron methods from all aggregates in the context and start scheduling.\n */\n start(): void {\n const context = this.contextHandler.context;\n const cronEntries = this.discoverCronMethods(context);\n\n if (cronEntries.length === 0) return;\n\n console.log(\n `[ARC:Cron] Discovered ${cronEntries.length} cron method(s):`,\n );\n\n for (const entry of cronEntries) {\n console.log(\n `[ARC:Cron] ${entry.aggregateName}.${entry.methodName} → \"${entry.cronExpression}\"`,\n );\n\n const task = new Cron(entry.cronExpression, async () => {\n await this.executeCronMethod(entry);\n });\n\n this.jobs.push({ entry, task });\n }\n }\n\n /**\n * Stop all cron jobs.\n */\n stop(): void {\n for (const job of this.jobs) {\n job.task.stop();\n }\n this.jobs = [];\n console.log(\"[ARC:Cron] All cron jobs stopped.\");\n }\n\n /**\n * Extract cron method entries from all aggregate context elements.\n */\n private discoverCronMethods(\n context: ArcContextAny,\n ): AggregateCronMethodEntry[] {\n const entries: AggregateCronMethodEntry[] = [];\n\n for (const element of context.elements) {\n const ctor = (element as any).ctor;\n if (ctor?.__aggregateCronMethods) {\n entries.push(...ctor.__aggregateCronMethods);\n }\n }\n\n return entries;\n }\n\n /**\n * Execute a cron method for all instances of the aggregate.\n */\n private async executeCronMethod(\n entry: AggregateCronMethodEntry,\n ): Promise<void> {\n const commandName = `${entry.aggregateName}.${entry.methodName}`;\n\n try {\n // Query all instances of this aggregate\n const dataStorage = this.contextHandler.getDataStorage();\n const store = dataStorage.getStore<any>(entry.aggregateName);\n const instances = await store.find({});\n\n if (instances.length === 0) {\n console.log(\n `[ARC:Cron] ${commandName}: no instances found, skipping.`,\n );\n return;\n }\n\n console.log(\n `[ARC:Cron] ${commandName}: executing for ${instances.length} instance(s)...`,\n );\n\n for (const instance of instances) {\n try {\n await this.contextHandler.executeCommand(\n commandName,\n { _id: instance._id },\n null,\n );\n } catch (error) {\n console.error(\n `[ARC:Cron] ${commandName} failed for instance ${instance._id}:`,\n error,\n );\n }\n }\n } catch (error) {\n console.error(`[ARC:Cron] ${commandName} failed:`, error);\n }\n }\n}\n",
|
|
86
|
+
"/**\n * CronScheduler\n *\n * Discovers aggregate cron methods from context elements and schedules them\n * using node-cron. For each cron trigger, queries all instances of the aggregate\n * and executes the command for each instance.\n */\n\nimport type { ArcContextAny, AggregateCronMethodEntry } from \"@arcote.tech/arc\";\nimport { Cron } from \"croner\";\nimport type { ContextHandler } from \"./context-handler\";\n\ninterface CronJob {\n entry: AggregateCronMethodEntry;\n task: Cron;\n}\n\nexport class CronScheduler {\n private jobs: CronJob[] = [];\n private contextHandler: ContextHandler;\n\n constructor(contextHandler: ContextHandler) {\n this.contextHandler = contextHandler;\n }\n\n /**\n * Discover cron methods from all aggregates in the context and start scheduling.\n */\n start(): void {\n const context = this.contextHandler.context;\n const cronEntries = this.discoverCronMethods(context);\n\n if (cronEntries.length === 0) return;\n\n console.log(\n `[ARC:Cron] Discovered ${cronEntries.length} cron method(s):`,\n );\n\n for (const entry of cronEntries) {\n console.log(\n `[ARC:Cron] ${entry.aggregateName}.${entry.methodName} → \"${entry.cronExpression}\"`,\n );\n\n const task = new Cron(entry.cronExpression, async () => {\n await this.executeCronMethod(entry);\n });\n\n this.jobs.push({ entry, task });\n }\n }\n\n /**\n * Stop all cron jobs.\n */\n stop(): void {\n for (const job of this.jobs) {\n job.task.stop();\n }\n this.jobs = [];\n console.log(\"[ARC:Cron] All cron jobs stopped.\");\n }\n\n /**\n * Extract cron method entries from all aggregate context elements.\n */\n private discoverCronMethods(\n context: ArcContextAny,\n ): AggregateCronMethodEntry[] {\n const entries: AggregateCronMethodEntry[] = [];\n\n for (const element of context.elements) {\n const ctor = (element as any).ctor;\n if (ctor?.__aggregateCronMethods) {\n entries.push(...ctor.__aggregateCronMethods);\n }\n }\n\n return entries;\n }\n\n /**\n * Execute a cron method for all instances of the aggregate.\n */\n private async executeCronMethod(\n entry: AggregateCronMethodEntry,\n ): Promise<void> {\n const commandName = `${entry.aggregateName}.${entry.methodName}`;\n\n try {\n // Query all instances of this aggregate\n const dataStorage = this.contextHandler.getDataStorage();\n const store = dataStorage.getStore<any>(entry.aggregateName);\n const instances = await store.find({});\n\n if (instances.length === 0) {\n console.log(\n `[ARC:Cron] ${commandName}: no instances found, skipping.`,\n );\n return;\n }\n\n console.log(\n `[ARC:Cron] ${commandName}: executing for ${instances.length} instance(s)...`,\n );\n\n for (const instance of instances) {\n try {\n await this.contextHandler.executeCommand(\n commandName,\n { _id: instance._id },\n null,\n { internal: true },\n );\n } catch (error) {\n console.error(\n `[ARC:Cron] ${commandName} failed for instance ${instance._id}:`,\n error,\n );\n }\n }\n } catch (error) {\n console.error(`[ARC:Cron] ${commandName} failed:`, error);\n }\n }\n}\n",
|
|
87
87
|
"import type { ArcRouteAny } from \"@arcote.tech/arc\";\nimport { ScopedModel } from \"@arcote.tech/arc\";\nimport type { ConnectionManager } from \"../connection-manager\";\nimport type { ContextHandler } from \"../context-handler\";\nimport type { ArcHttpHandler, ArcRequestContext } from \"./types\";\n\n// ---------------------------------------------------------------------------\n// Shared\n// ---------------------------------------------------------------------------\n\nasync function parseCommandParams(req: Request): Promise<any> {\n const contentType = req.headers.get(\"Content-Type\") || \"\";\n if (contentType.includes(\"multipart/form-data\")) {\n const formData = await req.formData();\n const params: Record<string, any> = {};\n for (const [key, value] of formData.entries()) {\n if (\n typeof value === \"object\" &&\n value !== null &&\n \"name\" in value &&\n \"size\" in value\n ) {\n params[key] = value;\n } else {\n try {\n params[key] = JSON.parse(value as string);\n } catch {\n params[key] = value;\n }\n }\n }\n return params;\n }\n return await req.json();\n}\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport function healthHandler(cm: ConnectionManager): ArcHttpHandler {\n return (_req, url, ctx) => {\n if (url.pathname !== \"/health\") return null;\n return Response.json(\n { status: \"ok\", clients: cm.clientCount },\n { headers: ctx.corsHeaders },\n );\n };\n}\n\n// ---------------------------------------------------------------------------\n// Command — POST /command/:name\n// ---------------------------------------------------------------------------\n\nexport function commandHandler(ch: ContextHandler): ArcHttpHandler {\n return async (req, url, ctx) => {\n if (!url.pathname.startsWith(\"/command/\") || req.method !== \"POST\")\n return null;\n\n const commandName = url.pathname.split(\"/command/\")[1];\n if (!commandName) {\n return new Response(\"Invalid command path\", {\n status: 400,\n headers: ctx.corsHeaders,\n });\n }\n\n try {\n const params = await parseCommandParams(req);\n const result = await ch.executeCommand(\n commandName,\n params,\n ctx.rawToken,\n );\n return Response.json(result ?? { success: true }, {\n headers: ctx.corsHeaders,\n });\n } catch (error) {\n console.error(`[ARC] Command '${commandName}' error:`, error);\n return Response.json(\n { error: (error as Error).message },\n { status: 500, headers: ctx.corsHeaders },\n );\n }\n };\n}\n\n// ---------------------------------------------------------------------------\n// Query — POST /query/:viewName\n// ---------------------------------------------------------------------------\n\nexport function queryHandler(ch: ContextHandler): ArcHttpHandler {\n return async (req, url, ctx) => {\n if (!url.pathname.startsWith(\"/query/\") || req.method !== \"POST\")\n return null;\n\n const viewName = url.pathname.split(\"/query/\")[1];\n if (!viewName) {\n return new Response(\"Invalid query path\", {\n status: 400,\n headers: ctx.corsHeaders,\n });\n }\n\n try {\n const params = await req.json();\n const viewElement = ch.getModel().context.get(viewName) as any;\n if (!viewElement?.queryContext) {\n return Response.json(\n { error: \"View not found\" },\n { status: 404, headers: ctx.corsHeaders },\n );\n }\n\n const scoped = new ScopedModel(ch.getModel(), \"request\");\n if (ctx.rawToken) scoped.setToken(ctx.rawToken);\n const queryCtx = viewElement.queryContext(scoped.getAdapters());\n const result = await queryCtx.find(params);\n\n return Response.json(result, { headers: ctx.corsHeaders });\n } catch (error) {\n return Response.json(\n { error: (error as Error).message },\n { status: 500, headers: ctx.corsHeaders },\n );\n }\n };\n}\n\n// ---------------------------------------------------------------------------\n// Stream — GET /stream/:viewName (SSE)\n// ---------------------------------------------------------------------------\n\ninterface StreamConnection {\n id: string;\n controller: ReadableStreamDefaultController<Uint8Array>;\n unsubscribe: () => void;\n}\n\nlet streamIdCounter = 0;\nconst streamConnections = new Map<string, StreamConnection>();\n\nexport function streamHandler(ch: ContextHandler): ArcHttpHandler {\n return (_req, url, ctx) => {\n if (!url.pathname.startsWith(\"/stream/\") || _req.method !== \"GET\")\n return null;\n\n const viewName = url.pathname.split(\"/stream/\")[1];\n if (!viewName) {\n return new Response(\"Invalid stream path\", {\n status: 400,\n headers: ctx.corsHeaders,\n });\n }\n\n const findOptions: any = {};\n const whereParam = url.searchParams.get(\"where\");\n if (whereParam) {\n try {\n findOptions.where = JSON.parse(whereParam);\n } catch {\n return new Response(\"Invalid 'where' parameter\", {\n status: 400,\n headers: ctx.corsHeaders,\n });\n }\n }\n const orderByParam = url.searchParams.get(\"orderBy\");\n if (orderByParam) {\n try {\n findOptions.orderBy = JSON.parse(orderByParam);\n } catch {\n return new Response(\"Invalid 'orderBy' parameter\", {\n status: 400,\n headers: ctx.corsHeaders,\n });\n }\n }\n const limitParam = url.searchParams.get(\"limit\");\n if (limitParam) findOptions.limit = parseInt(limitParam, 10);\n\n const streamId = `stream_${++streamIdCounter}_${Date.now()}`;\n const rawToken = ctx.rawToken;\n\n const stream = new ReadableStream<Uint8Array>({\n start(controller) {\n const scoped = new ScopedModel(ch.getModel(), \"stream\");\n if (rawToken) scoped.setToken(rawToken);\n\n const descriptor = { element: viewName, method: \"find\", args: [findOptions] };\n\n const sendData = async () => {\n try {\n const data = await scoped.callQuery(descriptor);\n controller.enqueue(\n new TextEncoder().encode(\n `data: ${JSON.stringify({ type: \"data\", data })}\\n\\n`,\n ),\n );\n } catch {\n unsubscribe();\n }\n };\n\n // Initial data\n sendData();\n\n // Subscribe to changes\n const unsubscribe = ch\n .getEventPublisher()\n .subscribe(\"*\", () => sendData());\n\n streamConnections.set(streamId, { id: streamId, controller, unsubscribe });\n controller.enqueue(\n new TextEncoder().encode(\n `data: ${JSON.stringify({ type: \"connected\", streamId })}\\n\\n`,\n ),\n );\n },\n cancel() {\n const conn = streamConnections.get(streamId);\n if (conn) {\n conn.unsubscribe();\n streamConnections.delete(streamId);\n }\n },\n });\n\n return new Response(stream, {\n headers: {\n ...ctx.corsHeaders,\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n },\n });\n };\n}\n\n// ---------------------------------------------------------------------------\n// Event Sync — POST /sync/events\n// ---------------------------------------------------------------------------\n\nexport function eventSyncHandler(ch: ContextHandler): ArcHttpHandler {\n return async (req, url, ctx) => {\n if (url.pathname !== \"/sync/events\" || req.method !== \"POST\") return null;\n\n try {\n const body = await req.json();\n const events = body.events || [];\n const persisted = await ch.persistEvents(\n events.map((e: any) => ({\n localId: e.localId,\n type: e.type,\n payload: e.payload,\n createdAt: e.createdAt,\n })),\n \"http-sync\",\n ctx.tokenPayload,\n );\n return Response.json(\n { success: true, syncedIds: persisted.map((e) => e.localId) },\n { headers: ctx.corsHeaders },\n );\n } catch (error) {\n return Response.json(\n { success: false, error: (error as Error).message },\n { status: 500, headers: ctx.corsHeaders },\n );\n }\n };\n}\n\n// ---------------------------------------------------------------------------\n// Route — /route/*\n// ---------------------------------------------------------------------------\n\nexport function routeHandler(ch: ContextHandler): ArcHttpHandler {\n return async (req, url, ctx) => {\n if (!url.pathname.startsWith(\"/route/\")) return null;\n\n const method = req.method as \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\";\n const context = ch.getModel().context;\n let matchedRoute: ArcRouteAny | null = null;\n let routeParams: Record<string, string> = {};\n\n for (const element of context.elements) {\n if (element && typeof (element as any).matchesPath === \"function\") {\n const route = element as ArcRouteAny;\n const match = route.matchesPath(url.pathname);\n if (match.matches) {\n matchedRoute = route;\n routeParams = match.params;\n break;\n }\n }\n }\n\n if (!matchedRoute) {\n return Response.json(\n { error: \"Route not found\" },\n { status: 404, headers: ctx.corsHeaders },\n );\n }\n\n const handler = matchedRoute.getHandler(method);\n if (!handler) {\n return Response.json(\n { error: `Method ${method} not allowed` },\n { status: 405, headers: ctx.corsHeaders },\n );\n }\n\n // Protection checks\n if (!matchedRoute.isPublic && matchedRoute.hasProtections) {\n if (!ctx.tokenPayload) {\n return Response.json(\n { error: \"Unauthorized\" },\n { status: 401, headers: ctx.corsHeaders },\n );\n }\n let isAuthorized = false;\n for (const protection of matchedRoute.protections) {\n if (protection.token.name === ctx.tokenPayload.tokenType) {\n const mockTokenInstance = {\n params: ctx.tokenPayload.params,\n getTokenDefinition: () => protection.token,\n };\n const allowed = await protection.check(mockTokenInstance as any);\n if (allowed) {\n isAuthorized = true;\n break;\n }\n }\n }\n if (!isAuthorized) {\n return Response.json(\n { error: \"Forbidden\" },\n { status: 403, headers: ctx.corsHeaders },\n );\n }\n } else if (!matchedRoute.isPublic && !matchedRoute.hasProtections) {\n if (!ctx.tokenPayload) {\n return Response.json(\n { error: \"Unauthorized\" },\n { status: 401, headers: ctx.corsHeaders },\n );\n }\n }\n\n // Build route context with scoped auth\n const scoped = new ScopedModel(ch.getModel(), \"request\");\n if (ctx.rawToken) scoped.setToken(ctx.rawToken);\n\n const authParams = ctx.tokenPayload\n ? {\n params: ctx.tokenPayload.params,\n tokenName: ctx.tokenPayload.tokenType,\n }\n : undefined;\n\n const routeContext = matchedRoute.buildContext(\n scoped.getAdapters(),\n authParams,\n );\n\n try {\n const response = await handler(routeContext, req, routeParams, url);\n const newHeaders = new Headers(response.headers);\n for (const [key, value] of Object.entries(ctx.corsHeaders))\n newHeaders.set(key, value);\n const body =\n response.status >= 300 && response.status < 400\n ? null\n : response.body;\n return new Response(body, {\n status: response.status,\n statusText: response.statusText,\n headers: newHeaders,\n });\n } catch (error) {\n return Response.json(\n { error: (error as Error).message },\n { status: 500, headers: ctx.corsHeaders },\n );\n }\n };\n}\n\n// ---------------------------------------------------------------------------\n// Convenience: all Arc HTTP handlers\n// ---------------------------------------------------------------------------\n\nexport function arcHttpHandlers(\n ch: ContextHandler,\n cm: ConnectionManager,\n): ArcHttpHandler[] {\n return [\n healthHandler(cm),\n commandHandler(ch),\n queryHandler(ch),\n streamHandler(ch),\n eventSyncHandler(ch),\n routeHandler(ch),\n ];\n}\n\n/**\n * Cleanup all active SSE stream connections.\n */\nexport function cleanupStreams(): void {\n for (const conn of streamConnections.values()) conn.unsubscribe();\n streamConnections.clear();\n}\n",
|
|
88
88
|
"import { ScopedModel } from \"@arcote.tech/arc\";\nimport { filterEventsForTokens } from \"../event-auth\";\nimport type { ConnectedClient } from \"../types\";\nimport type { ArcWsContext, ArcWsHandler } from \"./types\";\n\n// ---------------------------------------------------------------------------\n// View subscription tracking (per client)\n// ---------------------------------------------------------------------------\n\nconst clientViewSubs = new Map<string, Map<string, () => void>>();\n\nexport function cleanupClientSubs(clientId: string): void {\n const subs = clientViewSubs.get(clientId);\n if (subs) {\n for (const unsub of subs.values()) unsub();\n clientViewSubs.delete(clientId);\n }\n}\n\n// ---------------------------------------------------------------------------\n// scope:auth\n// ---------------------------------------------------------------------------\n\nexport function scopeAuthHandler(): ArcWsHandler {\n return async (client, message, ctx) => {\n if (message.type !== \"scope:auth\") return false;\n const decoded = ctx.verifyToken(message.token);\n if (decoded) {\n ctx.connectionManager.setScopeToken(\n client.id,\n message.scope,\n decoded,\n message.token,\n );\n }\n return true;\n };\n}\n\n// ---------------------------------------------------------------------------\n// sync-events — persist + broadcast\n// ---------------------------------------------------------------------------\n\nexport function syncEventsHandler(): ArcWsHandler {\n return async (client, message, ctx) => {\n if (message.type !== \"sync-events\") return false;\n\n const allTokens = ctx.connectionManager.getAllScopeTokens(client.id);\n const token = allTokens.length > 0 ? allTokens[0] : null;\n\n const persisted = await ctx.contextHandler.persistEvents(\n message.events,\n client.id,\n token,\n );\n if (persisted.length === 0) return true;\n\n // Broadcast to other authorized clients\n for (const c of ctx.connectionManager.getAllClients()) {\n if (c.id === client.id) continue;\n const clientTokens = ctx.connectionManager.getAllScopeTokens(c.id);\n const authorized = filterEventsForTokens(\n clientTokens,\n persisted,\n ctx.contextHandler.getEventDefinitions(),\n );\n if (authorized.length > 0) {\n ctx.connectionManager.sendToClient(c.id, {\n type: \"events\",\n events: authorized,\n });\n }\n }\n\n const last = persisted[persisted.length - 1];\n ctx.connectionManager.updateLastSyncedEventId(client.id, last.hostId);\n ctx.connectionManager.sendToClient(client.id, {\n type: \"sync-complete\",\n lastHostEventId: last.hostId,\n });\n return true;\n };\n}\n\n// ---------------------------------------------------------------------------\n// request-sync — initial sync or catch-up\n// ---------------------------------------------------------------------------\n\nexport function requestSyncHandler(): ArcWsHandler {\n return async (client, message, ctx) => {\n if (message.type !== \"request-sync\") return false;\n\n const allTokens = ctx.connectionManager.getAllScopeTokens(client.id);\n const token = allTokens.length > 0 ? allTokens[0] : null;\n const events = await ctx.contextHandler.getEventsSince(\n message.lastHostEventId,\n token,\n );\n\n ctx.connectionManager.sendToClient(client.id, {\n type: \"events\",\n events,\n });\n\n if (events.length > 0) {\n const last = events[events.length - 1];\n ctx.connectionManager.updateLastSyncedEventId(client.id, last.hostId);\n ctx.connectionManager.sendToClient(client.id, {\n type: \"sync-complete\",\n lastHostEventId: last.hostId,\n });\n } else {\n ctx.connectionManager.sendToClient(client.id, {\n type: \"sync-complete\",\n lastHostEventId: message.lastHostEventId || \"\",\n });\n }\n return true;\n };\n}\n\n// ---------------------------------------------------------------------------\n// execute-command\n// ---------------------------------------------------------------------------\n\nexport function executeCommandHandler(): ArcWsHandler {\n return async (client, message, ctx) => {\n if (message.type !== \"execute-command\") return false;\n\n let rawToken: string | null = null;\n if (client.scopeTokens.size > 0) {\n rawToken = client.scopeTokens.values().next().value!.raw;\n }\n\n try {\n const result = await ctx.contextHandler.executeCommand(\n message.commandName,\n message.params,\n rawToken,\n );\n ctx.connectionManager.sendToClient(client.id, {\n type: \"command-result\",\n requestId: message.requestId,\n result,\n });\n } catch (error) {\n ctx.connectionManager.sendToClient(client.id, {\n type: \"command-result\",\n requestId: message.requestId,\n error: (error as Error).message,\n });\n }\n return true;\n };\n}\n\n// ---------------------------------------------------------------------------\n// subscribe-view / unsubscribe-view — with scope-aware token selection\n// ---------------------------------------------------------------------------\n\nexport function querySubscriptionHandler(): ArcWsHandler {\n return async (client, message, ctx) => {\n if (message.type === \"subscribe-query\") {\n const { subscriptionId, descriptor, scope } = message;\n\n // Pick the token matching the requested scope\n const scopeToken = scope ? client.scopeTokens.get(scope) : null;\n let rawToken = scopeToken?.raw ?? null;\n\n // Fallback to first available token if no scope specified\n if (!rawToken && client.scopeTokens.size > 0) {\n rawToken = client.scopeTokens.values().next().value!.raw;\n }\n\n // Per-request scoped model with the right token\n const scoped = new ScopedModel(ctx.contextHandler.getModel(), scope ?? \"default\");\n if (rawToken) scoped.setToken(rawToken);\n\n // Cache last result to avoid re-sending unchanged data\n let lastResultJson = \"\";\n\n const sendData = async () => {\n try {\n const data = await scoped.callQuery(descriptor);\n const json = JSON.stringify(data ?? null);\n if (json === lastResultJson) return; // No change — skip\n lastResultJson = json;\n ctx.connectionManager.sendToClient(client.id, {\n type: \"query-data\",\n subscriptionId,\n data: data ?? null,\n } as any);\n } catch (err) {\n console.error(`[Arc] Query subscription error:`, err);\n }\n };\n\n // Initial data\n sendData();\n\n // Subscribe to SPECIFIC event types this element handles (namespaced keys)\n const element = ctx.contextHandler.getModel().context.get(descriptor.element);\n const handlers = (element as any)?.getHandlers?.();\n const eventTypes: string[] = handlers ? Object.keys(handlers) : [];\n\n let debounceTimer: ReturnType<typeof setTimeout> | undefined;\n const debouncedSend = () => {\n if (debounceTimer) clearTimeout(debounceTimer);\n debounceTimer = setTimeout(() => sendData(), 50);\n };\n\n const unsubscribes: (() => void)[] = [];\n if (eventTypes.length > 0) {\n for (const eventType of eventTypes) {\n unsubscribes.push(\n ctx.contextHandler.getEventPublisher().subscribe(eventType, debouncedSend),\n );\n }\n } else {\n // Fallback to wildcard if no event types declared\n unsubscribes.push(\n ctx.contextHandler.getEventPublisher().subscribe(\"*\", debouncedSend),\n );\n }\n\n const cleanup = () => {\n if (debounceTimer) clearTimeout(debounceTimer);\n for (const unsub of unsubscribes) unsub();\n };\n\n // Track for cleanup on disconnect\n if (!clientViewSubs.has(client.id)) {\n clientViewSubs.set(client.id, new Map());\n }\n clientViewSubs.get(client.id)!.set(subscriptionId, cleanup);\n return true;\n }\n\n if (message.type === \"unsubscribe-query\") {\n const subs = clientViewSubs.get(client.id);\n if (subs) {\n const unsub = subs.get(message.subscriptionId);\n if (unsub) {\n unsub();\n subs.delete(message.subscriptionId);\n }\n }\n return true;\n }\n\n return false;\n };\n}\n\n// ---------------------------------------------------------------------------\n// Convenience: all Arc WS handlers\n// ---------------------------------------------------------------------------\n\nexport function arcWsHandlers(): ArcWsHandler[] {\n return [\n scopeAuthHandler(),\n syncEventsHandler(),\n requestSyncHandler(),\n executeCommandHandler(),\n querySubscriptionHandler(),\n ];\n}\n",
|
|
89
89
|
"// Re-export everything from src\nexport * from \"./src\";\n\n// Helper function to start host\nimport type { ArcContextAny, DBAdapterFactory } from \"@arcote.tech/arc\";\nimport { createArcServer } from \"./src/create-server\";\n\n/**\n * Start a host server for a context\n */\nexport function hostLiveModel<C extends ArcContextAny>(\n context: C,\n dbAdapterFactory: DBAdapterFactory,\n) {\n return createArcServer({\n context,\n dbAdapterFactory,\n });\n}\n"
|
|
90
90
|
],
|
|
91
|
-
"mappings": "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",
|
|
92
|
-
"debugId": "
|
|
91
|
+
"mappings": "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",
|
|
92
|
+
"debugId": "D9115398B339A37F64756E2164756E21",
|
|
93
93
|
"names": []
|
|
94
94
|
}
|
|
@@ -27,8 +27,15 @@ export declare class ContextHandler {
|
|
|
27
27
|
* Execute a command. When `telemetry` is wired, the entire dispatch is
|
|
28
28
|
* traced as `command.<name>` with RPC semantic conventions, parented to
|
|
29
29
|
* whatever context is active (HTTP request span, WS message span, etc.).
|
|
30
|
+
*
|
|
31
|
+
* Wire dispatchers (HTTP, WS) MUST omit `options.internal` or pass `false`
|
|
32
|
+
* so that private mutateMethod/command is rejected. Internal callers
|
|
33
|
+
* (cron-scheduler, server-side tasks) pass `{ internal: true }` to bypass
|
|
34
|
+
* the wire-only restriction.
|
|
30
35
|
*/
|
|
31
|
-
executeCommand(commandName: string, params: any, rawToken: string | null
|
|
36
|
+
executeCommand(commandName: string, params: any, rawToken: string | null, options?: {
|
|
37
|
+
internal?: boolean;
|
|
38
|
+
}): Promise<any>;
|
|
32
39
|
/**
|
|
33
40
|
* Persist events from a client and return with host IDs
|
|
34
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-handler.d.ts","sourceRoot":"","sources":["../../src/context-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EAGN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7E;;GAEG;AACH,qBAAa,cAAc;aASP,OAAO,EAAE,aAAa;IAEtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAV7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAS;gBAGV,OAAO,EAAE,aAAa,EACtC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,EAClB,SAAS,CAAC,EAAE,YAAY,YAAA;IAqB3C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B;;;OAGG;YACW,QAAQ;IA4BtB
|
|
1
|
+
{"version":3,"file":"context-handler.d.ts","sourceRoot":"","sources":["../../src/context-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,EAGN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7E;;GAEG;AACH,qBAAa,cAAc;aASP,OAAO,EAAE,aAAa;IAEtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAV7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAS;gBAGV,OAAO,EAAE,aAAa,EACtC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,EAClB,SAAS,CAAC,EAAE,YAAY,YAAA;IAqB3C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B;;;OAGG;YACW,QAAQ;IA4BtB;;;;;;;;;OASG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,GAAG,CAAC;IAiEf;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,GAAG,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;KACvC,CAAC,EACF,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,GAAG,IAAI,GACzB,OAAO,CAAC,aAAa,EAAE,CAAC;IA8C3B;;OAEG;IACG,cAAc,CAClB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,KAAK,EAAE,YAAY,GAAG,IAAI,GACzB,OAAO,CAAC,aAAa,EAAE,CAAC;IAkD3B;;OAEG;IACH,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC;IAIhC;;OAEG;IACH,cAAc,IAAI,iBAAiB;IAInC;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI/C;;OAEG;IACH,iBAAiB,IAAI,mBAAmB;CAGzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-scheduler.d.ts","sourceRoot":"","sources":["../../src/cron-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAuBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;YACW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"cron-scheduler.d.ts","sourceRoot":"","sources":["../../src/cron-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAuBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;YACW,iBAAiB;CAyChC"}
|
package/package.json
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.7.
|
|
7
|
+
"version": "0.7.9",
|
|
8
8
|
"private": false,
|
|
9
9
|
"author": "Przemysław Krasiński [arcote.tech]",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@arcote.tech/arc-adapter-db-sqlite": "^0.7.
|
|
11
|
+
"@arcote.tech/arc-adapter-db-sqlite": "^0.7.9",
|
|
12
12
|
"croner": "^9.0.0",
|
|
13
13
|
"jsonwebtoken": "^9.0.2"
|
|
14
14
|
},
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"@types/bun": "^1.2.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@arcote.tech/arc": "^0.7.
|
|
28
|
-
"@arcote.tech/arc-otel": "^0.7.
|
|
27
|
+
"@arcote.tech/arc": "^0.7.9",
|
|
28
|
+
"@arcote.tech/arc-otel": "^0.7.9"
|
|
29
29
|
},
|
|
30
30
|
"peerDependenciesMeta": {
|
|
31
31
|
"@arcote.tech/arc-otel": {
|
package/src/context-handler.ts
CHANGED
|
@@ -93,11 +93,17 @@ export class ContextHandler {
|
|
|
93
93
|
* Execute a command. When `telemetry` is wired, the entire dispatch is
|
|
94
94
|
* traced as `command.<name>` with RPC semantic conventions, parented to
|
|
95
95
|
* whatever context is active (HTTP request span, WS message span, etc.).
|
|
96
|
+
*
|
|
97
|
+
* Wire dispatchers (HTTP, WS) MUST omit `options.internal` or pass `false`
|
|
98
|
+
* so that private mutateMethod/command is rejected. Internal callers
|
|
99
|
+
* (cron-scheduler, server-side tasks) pass `{ internal: true }` to bypass
|
|
100
|
+
* the wire-only restriction.
|
|
96
101
|
*/
|
|
97
102
|
async executeCommand(
|
|
98
103
|
commandName: string,
|
|
99
104
|
params: any,
|
|
100
105
|
rawToken: string | null,
|
|
106
|
+
options?: { internal?: boolean },
|
|
101
107
|
): Promise<any> {
|
|
102
108
|
const includePayloads = this.telemetry?.shouldIncludePayloads() ?? false;
|
|
103
109
|
const baseAttrs = {
|
|
@@ -127,6 +133,16 @@ export class ContextHandler {
|
|
|
127
133
|
throw new Error(`Command '${commandName}' not found`);
|
|
128
134
|
}
|
|
129
135
|
|
|
136
|
+
// Private mutateMethod / command — server-internal only, never callable
|
|
137
|
+
// from a client over the wire. Server-side callers reach the handler
|
|
138
|
+
// directly through `ctx.mutate.*` (bypassing this dispatcher) or pass
|
|
139
|
+
// `{ internal: true }` (e.g. cron-scheduler).
|
|
140
|
+
if (!options?.internal && (command as any).__isPrivate) {
|
|
141
|
+
throw new Error(
|
|
142
|
+
`Command '${commandName}' is private and not callable from a client.`,
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
130
146
|
try {
|
|
131
147
|
return await command(params);
|
|
132
148
|
} catch (error) {
|