gemi 0.58.0 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/Agent.d.ts +33 -0
- package/dist/ai/Agent.d.ts.map +1 -0
- package/dist/ai/AgentController.d.ts +8 -0
- package/dist/ai/AgentController.d.ts.map +1 -0
- package/dist/ai/useChat.d.ts +12 -0
- package/dist/ai/useChat.d.ts.map +1 -0
- package/dist/app/index.js +1 -1
- package/dist/broadcasting/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-szss069z.js → chunk-06j6rsew.js} +2 -2
- package/dist/{chunk-szss069z.js.map → chunk-06j6rsew.js.map} +1 -1
- package/dist/{chunk-yjzs247s.js → chunk-0fm6jh9b.js} +2 -2
- package/dist/{chunk-yjzs247s.js.map → chunk-0fm6jh9b.js.map} +1 -1
- package/dist/chunk-23h0dmx2.js +5 -0
- package/dist/{chunk-87qab82w.js.map → chunk-23h0dmx2.js.map} +3 -3
- package/dist/{chunk-m3xy5xyf.js → chunk-2cwcfwg3.js} +2 -2
- package/dist/{chunk-m3xy5xyf.js.map → chunk-2cwcfwg3.js.map} +1 -1
- package/dist/{chunk-xzk827r3.js → chunk-2khdxyjb.js} +2 -2
- package/dist/{chunk-xzk827r3.js.map → chunk-2khdxyjb.js.map} +1 -1
- package/dist/{chunk-sy7jbdeb.js → chunk-3296fwss.js} +2 -2
- package/dist/{chunk-sy7jbdeb.js.map → chunk-3296fwss.js.map} +1 -1
- package/dist/{chunk-xdv1b8mr.js → chunk-3gvjn3q4.js} +2 -2
- package/dist/{chunk-xdv1b8mr.js.map → chunk-3gvjn3q4.js.map} +1 -1
- package/dist/{chunk-jhkjz9jr.js → chunk-4dan69s4.js} +2 -2
- package/dist/{chunk-3zxwscmf.js.map → chunk-4dan69s4.js.map} +1 -1
- package/dist/{chunk-hxf1re93.js → chunk-4mcyyh1v.js} +2 -2
- package/dist/{chunk-hxf1re93.js.map → chunk-4mcyyh1v.js.map} +1 -1
- package/dist/{chunk-w62m5f0n.js → chunk-5gdv4n4a.js} +3 -3
- package/dist/{chunk-w62m5f0n.js.map → chunk-5gdv4n4a.js.map} +1 -1
- package/dist/{chunk-j0c6ytkj.js → chunk-8kj3zrm9.js} +3 -3
- package/dist/{chunk-j0c6ytkj.js.map → chunk-8kj3zrm9.js.map} +1 -1
- package/dist/{chunk-0a2xgcj3.js → chunk-98a3k7bp.js} +2 -2
- package/dist/{chunk-0a2xgcj3.js.map → chunk-98a3k7bp.js.map} +1 -1
- package/dist/{chunk-5athahgr.js → chunk-9gsdcjt7.js} +2 -2
- package/dist/{chunk-5athahgr.js.map → chunk-9gsdcjt7.js.map} +1 -1
- package/dist/{chunk-pmhd6zfc.js → chunk-b0t4zp6b.js} +2 -2
- package/dist/{chunk-pmhd6zfc.js.map → chunk-b0t4zp6b.js.map} +1 -1
- package/dist/{chunk-3xadx444.js → chunk-bn1v4sfs.js} +2 -2
- package/dist/{chunk-3xadx444.js.map → chunk-bn1v4sfs.js.map} +1 -1
- package/dist/{chunk-9m2tbf3n.js → chunk-c40n5r4v.js} +2 -2
- package/dist/{chunk-9m2tbf3n.js.map → chunk-c40n5r4v.js.map} +1 -1
- package/dist/{chunk-a2sgjpvq.js → chunk-cejf873g.js} +2 -2
- package/dist/{chunk-a2sgjpvq.js.map → chunk-cejf873g.js.map} +1 -1
- package/dist/{chunk-tss5svjr.js → chunk-cw9y6k15.js} +2 -2
- package/dist/{chunk-tss5svjr.js.map → chunk-cw9y6k15.js.map} +1 -1
- package/dist/{chunk-5n2rvfh3.js → chunk-cyrxdj6a.js} +2 -2
- package/dist/{chunk-5n2rvfh3.js.map → chunk-cyrxdj6a.js.map} +1 -1
- package/dist/chunk-dgasxgsm.js +19 -0
- package/dist/{chunk-hwa5sqw5.js.map → chunk-dgasxgsm.js.map} +6 -6
- package/dist/{chunk-3g5bjvdf.js → chunk-f6dd4gd8.js} +2 -2
- package/dist/{chunk-3g5bjvdf.js.map → chunk-f6dd4gd8.js.map} +1 -1
- package/dist/{chunk-qgxr0g36.js → chunk-fb4cy6sq.js} +2 -2
- package/dist/{chunk-qgxr0g36.js.map → chunk-fb4cy6sq.js.map} +1 -1
- package/dist/{chunk-7ef5n8k2.js → chunk-fbvvqf9b.js} +2 -2
- package/dist/{chunk-7ef5n8k2.js.map → chunk-fbvvqf9b.js.map} +1 -1
- package/dist/{chunk-zbxgbr12.js → chunk-fxy42w6n.js} +2 -2
- package/dist/{chunk-zbxgbr12.js.map → chunk-fxy42w6n.js.map} +1 -1
- package/dist/{chunk-xey9cbap.js → chunk-get4mkx8.js} +2 -2
- package/dist/{chunk-xey9cbap.js.map → chunk-get4mkx8.js.map} +1 -1
- package/dist/chunk-gfma8e03.js +55 -0
- package/dist/chunk-gfma8e03.js.map +11 -0
- package/dist/{chunk-3zxwscmf.js → chunk-gwchvzdp.js} +2 -2
- package/dist/{chunk-jhkjz9jr.js.map → chunk-gwchvzdp.js.map} +1 -1
- package/dist/{chunk-k0fvsyeh.js → chunk-hsfjt13m.js} +1 -1
- package/dist/{chunk-yf7vz71n.js → chunk-hwhw98hc.js} +1 -1
- package/dist/{chunk-fjm4y8bn.js → chunk-hxb1eg2z.js} +2 -2
- package/dist/{chunk-fjm4y8bn.js.map → chunk-hxb1eg2z.js.map} +1 -1
- package/dist/{chunk-7b0x860b.js → chunk-j06g4sqc.js} +2 -2
- package/dist/{chunk-7b0x860b.js.map → chunk-j06g4sqc.js.map} +1 -1
- package/dist/{chunk-dgsgjg53.js → chunk-j23cengk.js} +2 -2
- package/dist/{chunk-dgsgjg53.js.map → chunk-j23cengk.js.map} +1 -1
- package/dist/{chunk-8gew8b9a.js → chunk-n412aa9s.js} +3 -3
- package/dist/{chunk-8gew8b9a.js.map → chunk-n412aa9s.js.map} +1 -1
- package/dist/{chunk-437085pe.js → chunk-p3qd0gqa.js} +2 -2
- package/dist/{chunk-437085pe.js.map → chunk-p3qd0gqa.js.map} +1 -1
- package/dist/{chunk-gw6agevz.js → chunk-pkjq9833.js} +3 -3
- package/dist/{chunk-gw6agevz.js.map → chunk-pkjq9833.js.map} +1 -1
- package/dist/{chunk-7j6wbv12.js → chunk-q0y0j3ne.js} +2 -2
- package/dist/{chunk-7j6wbv12.js.map → chunk-q0y0j3ne.js.map} +1 -1
- package/dist/chunk-q6qghsy7.js +5 -0
- package/dist/{chunk-b35e128b.js.map → chunk-q6qghsy7.js.map} +1 -1
- package/dist/{chunk-wbrj0gya.js → chunk-qva4841r.js} +2 -2
- package/dist/{chunk-wbrj0gya.js.map → chunk-qva4841r.js.map} +1 -1
- package/dist/{chunk-86jebsm4.js → chunk-rkbv3df7.js} +3 -3
- package/dist/{chunk-86jebsm4.js.map → chunk-rkbv3df7.js.map} +1 -1
- package/dist/{chunk-keehyx51.js → chunk-rpjsmr41.js} +2 -2
- package/dist/{chunk-keehyx51.js.map → chunk-rpjsmr41.js.map} +1 -1
- package/dist/{chunk-mwpdp09e.js → chunk-spbgpndn.js} +2 -2
- package/dist/{chunk-mwpdp09e.js.map → chunk-spbgpndn.js.map} +1 -1
- package/dist/{chunk-yy0eb9wn.js → chunk-stq96kya.js} +2 -2
- package/dist/{chunk-yy0eb9wn.js.map → chunk-stq96kya.js.map} +1 -1
- package/dist/{chunk-d125j8t0.js → chunk-tds3xq6b.js} +3 -3
- package/dist/{chunk-d125j8t0.js.map → chunk-tds3xq6b.js.map} +1 -1
- package/dist/{chunk-3337e5g0.js → chunk-tey1xayb.js} +2 -2
- package/dist/{chunk-3337e5g0.js.map → chunk-tey1xayb.js.map} +1 -1
- package/dist/{chunk-3aa287k7.js → chunk-txhcx69q.js} +2 -2
- package/dist/{chunk-3aa287k7.js.map → chunk-txhcx69q.js.map} +1 -1
- package/dist/{chunk-w7rf99w6.js → chunk-vj9538yn.js} +2 -2
- package/dist/{chunk-w7rf99w6.js.map → chunk-vj9538yn.js.map} +1 -1
- package/dist/{chunk-yed5whgs.js → chunk-wcv6qtpq.js} +3 -3
- package/dist/{chunk-yed5whgs.js.map → chunk-wcv6qtpq.js.map} +1 -1
- package/dist/{chunk-vr90r27j.js → chunk-wzvs3sym.js} +2 -2
- package/dist/{chunk-vr90r27j.js.map → chunk-wzvs3sym.js.map} +1 -1
- package/dist/{chunk-cyaz97p5.js → chunk-x6y1z4cq.js} +2 -2
- package/dist/{chunk-cyaz97p5.js.map → chunk-x6y1z4cq.js.map} +1 -1
- package/dist/{chunk-6235kb30.js → chunk-xecj8025.js} +3 -3
- package/dist/{chunk-6235kb30.js.map → chunk-xecj8025.js.map} +1 -1
- package/dist/{chunk-eejmhtnc.js → chunk-y64j80v9.js} +2 -2
- package/dist/{chunk-eejmhtnc.js.map → chunk-y64j80v9.js.map} +1 -1
- package/dist/{chunk-zh2egcyb.js → chunk-ygfwtgvm.js} +2 -2
- package/dist/{chunk-zh2egcyb.js.map → chunk-ygfwtgvm.js.map} +1 -1
- package/dist/{chunk-4yt5x8s2.js → chunk-ys904esh.js} +2 -2
- package/dist/{chunk-4yt5x8s2.js.map → chunk-ys904esh.js.map} +1 -1
- package/dist/{chunk-y6a8r2bn.js → chunk-z1e55w67.js} +3 -3
- package/dist/{chunk-y6a8r2bn.js.map → chunk-z1e55w67.js.map} +1 -1
- package/dist/{chunk-qb5mv6pj.js → chunk-z2tcxwyr.js} +3 -3
- package/dist/{chunk-qb5mv6pj.js.map → chunk-z2tcxwyr.js.map} +1 -1
- package/dist/{chunk-hppagzz4.js → chunk-zhbrkpb3.js} +4 -4
- package/dist/{chunk-hppagzz4.js.map → chunk-zhbrkpb3.js.map} +1 -1
- package/dist/{chunk-grdahng8.js → chunk-zqsfanvk.js} +2 -2
- package/dist/{chunk-grdahng8.js.map → chunk-zqsfanvk.js.map} +1 -1
- package/dist/chunks/{ThemeProvider-li1J_igh.js → ThemeProvider-ByU4BQdL.js} +68 -2
- package/dist/chunks/{ThemeProvider-li1J_igh.js.map → ThemeProvider-ByU4BQdL.js.map} +1 -1
- package/dist/client/ComponentContext.d.ts +46 -0
- package/dist/client/ComponentContext.d.ts.map +1 -1
- package/dist/client/index.js +9 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/init.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/Features.d.ts +67 -1
- package/dist/facades/Features.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +2 -2
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/httpDev.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +3 -3
- package/dist/services/events/Event.d.ts +6 -0
- package/dist/services/events/Event.d.ts.map +1 -1
- package/dist/services/features/FeatureFlagStore.d.ts +56 -0
- package/dist/services/features/FeatureFlagStore.d.ts.map +1 -1
- package/dist/services/features/FeatureManager.d.ts +35 -1
- package/dist/services/features/FeatureManager.d.ts.map +1 -1
- package/dist/services/features/types.d.ts +62 -0
- package/dist/services/features/types.d.ts.map +1 -1
- package/dist/services/index.d.ts +2 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -8
- package/dist/services/index.js.map +3 -3
- package/dist/services/logging/LogManager.d.ts +10 -1
- package/dist/services/logging/LogManager.d.ts.map +1 -1
- package/dist/services/logging/LogServiceProvider.d.ts +10 -0
- package/dist/services/logging/LogServiceProvider.d.ts.map +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/testing/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-87qab82w.js +0 -5
- package/dist/chunk-b35e128b.js +0 -5
- package/dist/chunk-hwa5sqw5.js +0 -19
- package/dist/chunk-mkfpnymy.js +0 -55
- package/dist/chunk-mkfpnymy.js.map +0 -11
- /package/dist/{chunk-k0fvsyeh.js.map → chunk-hsfjt13m.js.map} +0 -0
- /package/dist/{chunk-yf7vz71n.js.map → chunk-hwhw98hc.js.map} +0 -0
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"import { ImageOptimizationDriver } from \"./ImageOptimizationDriver\";\nimport { loadSharp } from \"../../../support/sharp\";\nimport type { ResizeParameters } from \"./types\";\n\nexport class Sharp extends ImageOptimizationDriver {\n async resize(buffer: Buffer, parameters: ResizeParameters) {\n const { height, width, quality, fit } = parameters;\n const sharp = await loadSharp(\"The Sharp image optimization driver\");\n return await sharp(buffer)\n .resize(width > 0 ? width : undefined, height > 0 ? height : undefined, {\n fit,\n })\n .webp({ quality: quality > 0 ? quality : 80, force: true })\n .toBuffer();\n }\n}\n",
|
|
24
24
|
"import type { ImageOptimizationDriver } from \"./drivers/ImageOptimizationDriver\";\nimport { Sharp } from \"./drivers/SharpDriver\";\n\n// Config key: `image`.\nexport interface ImageConfig {\n driver?: ImageOptimizationDriver;\n}\n\nexport function defineImageConfig(config: ImageConfig): ImageConfig {\n return config;\n}\n\nexport function imageConfigDefaults(): Required<ImageConfig> {\n return {\n driver: new Sharp(),\n };\n}\n",
|
|
25
25
|
"import { app } from \"../../foundation/app\";\nimport { ApiRouter, HttpRequest } from \"../../http\";\nimport { imageConfigDefaults, type ImageConfig } from \"./config\";\nimport type { ImageOptimizationDriver } from \"./drivers/ImageOptimizationDriver\";\nimport type { ResizeParameters } from \"./drivers/types\";\n\nexport class ImageOptimizationRouter extends ApiRouter {\n routes = {\n \"/resize\": this.file(async () => {\n const req = new HttpRequest();\n const url = new URL(req.rawRequest.url);\n const rawImageUrl = url.searchParams.get(\"url\");\n const width = Number(url.searchParams.get(\"w\"));\n const height = Number(url.searchParams.get(\"h\"));\n const fit = url.searchParams.get(\"fit\") ?? \"cover\";\n const quality = Number(url.searchParams.get(\"q\"));\n\n if (!rawImageUrl) {\n return new Response(\n JSON.stringify({\n error: \"url query parameter is required\",\n }),\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n status: 404,\n },\n );\n }\n const prefix = rawImageUrl.startsWith(\"http\")\n ? \"\"\n : `http://localhost:${process.env.PORT || 5173}`;\n const fullImageUrl = `${prefix}${rawImageUrl}`;\n const res = await fetch(fullImageUrl);\n if (!res.ok) {\n return new Response(\n JSON.stringify({\n error: \"Image not found\",\n info: fullImageUrl,\n }),\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n status: 404,\n },\n );\n }\n\n const imageBuffer = Buffer.from(await res.arrayBuffer());\n\n const buffer = await app(ImageManager).resize(imageBuffer, {\n height,\n width,\n fit: fit as any,\n quality,\n });\n\n res.headers.delete(\"Content-Type\");\n res.headers.delete(\"Content-Length\");\n const _headers = new Headers(res.headers);\n _headers.set(\"Content-Type\", \"image/webp\");\n _headers.set(\"Content-Length\", `${buffer.byteLength}`);\n return new Response(new Uint8Array(buffer), {\n headers: _headers,\n });\n }),\n };\n}\n\nexport class ImageManager {\n static token = \"image\";\n\n readonly driver: ImageOptimizationDriver;\n\n constructor(config: ImageConfig = {}) {\n this.driver = config.driver ?? imageConfigDefaults().driver;\n }\n\n resize(buffer: Buffer, params: ResizeParameters) {\n return this.driver.resize(buffer, params);\n }\n}\n",
|
|
26
|
-
"import type { FileSink } from \"bun\";\nimport { mkdir, readdir, access } from \"fs/promises\";\n\nasync function exists(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\nimport { RequestContext } from \"../../http/requestContext\";\nimport type { LogConfig } from \"./config\";\nimport type { LogEntry, LogLevel } from \"./types\";\n\nexport class LogManager {\n static token = \"log\";\n\n writer: FileSink;\n isReady: boolean = false;\n\n private
|
|
26
|
+
"import type { FileSink } from \"bun\";\nimport { mkdir, readdir, access } from \"fs/promises\";\n\nasync function exists(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\nimport { RequestContext } from \"../../http/requestContext\";\nimport { projectRoot } from \"../../support/discover\";\nimport type { LogConfig } from \"./config\";\nimport type { LogEntry, LogLevel } from \"./types\";\n\nexport class LogManager {\n static token = \"log\";\n\n writer: FileSink;\n isReady: boolean = false;\n\n private flushTimeout: Timer;\n private fileSize: number = 0;\n private writerSize: number = 0;\n private isCreatingFile: boolean = false;\n private bootPromise: Promise<void> | null = null;\n public currentLogFilePath: string;\n\n /**\n * Computed per read, not once in the constructor: `Server.start` awaits\n * `waitForBoot()` — where `LogServiceProvider.boot()` builds this directory —\n * and only *then* imports the http layer that sets `ROOT_DIR`. A field\n * initializer (or any `process.env.ROOT_DIR` read here) resolves to\n * `undefined/storage/logs` at boot, which is how every `Log.info()` ended up\n * throwing on an undefined writer. `projectRoot()` is the same rule\n * `httpProd` sets `ROOT_DIR` from, a moment later.\n */\n private get logsDirPath(): string {\n return `${projectRoot()}/storage/logs`;\n }\n\n constructor(public config: Required<LogConfig>) {}\n\n /**\n * Idempotent. `LogServiceProvider.boot()` calls this so the storage\n * directory exists before the first request; a lazy first `log()` triggers\n * it too, so the manager still works when it is resolved on its own.\n */\n boot(): Promise<void> {\n if (!this.bootPromise) {\n this.bootPromise = this.createStorage()\n .catch((err) => {\n // A logger that rejects turns every `Log.info()` into the caller's\n // error. Report the storage failure once and carry on without a file\n // sink — `log()` still feeds `onLogCreated`.\n console.error(\"Log storage unavailable, file logging disabled\", err);\n })\n .then(() => {\n this.isReady = true;\n });\n }\n return this.bootPromise;\n }\n\n private async createStorage() {\n const storageDirPath = `${projectRoot()}/storage`;\n if (!(await exists(storageDirPath))) {\n await mkdir(storageDirPath);\n }\n if (!(await exists(this.logsDirPath))) {\n await mkdir(this.logsDirPath);\n }\n await this.newLogFile();\n }\n\n async newLogFile() {\n if (!(await exists(this.logsDirPath))) {\n await mkdir(this.logsDirPath);\n }\n this.isCreatingFile = true;\n if (this.currentLogFilePath) {\n this.writer.flush();\n this.writer.end();\n this.writer = null;\n const file = new File(\n [await Bun.file(this.currentLogFilePath).arrayBuffer()],\n this.currentLogFilePath.split(\"/\").pop(),\n { type: \"text/plain\" },\n );\n this.config.onLogFileClosed(file);\n this.fileSize = 0;\n this.writerSize = 0;\n }\n\n const logFiles = await readdir(this.logsDirPath);\n\n const lastLogFile = logFiles.sort().reverse()[0];\n\n if (lastLogFile) {\n const _file = Bun.file(`${this.logsDirPath}/${lastLogFile}`);\n if (_file.size < this.config.maxFileSize) {\n this.currentLogFilePath = `${this.logsDirPath}/${lastLogFile}`;\n\n this.writer = _file.writer();\n this.writer.write(await _file.text());\n this.writer.write(\"\\n\");\n this.writer.flush();\n this.fileSize = _file.size;\n }\n }\n\n if (!this.writer) {\n const logFileName =\n `${new Date(Date.now()).toISOString()}.log`.replaceAll(\":\", \"-\");\n this.currentLogFilePath = `${this.logsDirPath}/${logFileName}`;\n const file = Bun.file(`${this.logsDirPath}/${logFileName}`);\n this.writer = file.writer();\n this.fileSize = 0;\n this.writerSize = 0;\n }\n this.isCreatingFile = false;\n }\n\n async log(\n level: LogLevel,\n message: string,\n metadata: Record<string, any> = {},\n ) {\n if (!this.isReady) {\n await this.boot();\n }\n\n const reqCtx = RequestContext.getStore();\n let requestMetadata = {};\n if (reqCtx) {\n requestMetadata = {\n url: reqCtx.req.rawRequest.url,\n method: reqCtx.req.rawRequest.method,\n headers: reqCtx.req.rawRequest.headers,\n body: reqCtx.req.rawRequest.body,\n };\n }\n\n const logObject: LogEntry = {\n timestamp: new Date(Date.now()).toISOString(),\n env: process.env.NODE_ENV,\n level,\n message,\n metadata: { ...requestMetadata, ...metadata },\n };\n\n let log = \"\";\n try {\n log = JSON.stringify(logObject);\n } catch (err) {\n console.log(\"Error parsing log object\", err);\n }\n // Broadcast.channel(\"/logs/live\", {}).publish(JSON.stringify(logObject));\n //\n // Contained, because this is an app-supplied hook and every facade method\n // calls `log()` without awaiting it: a hook that throws would otherwise\n // leave a floating `Log.info()` as an unhandled rejection, which is the\n // failure this method exists to not have. A rejected promise from an async\n // hook is the same thing arriving later, so it is caught too — what is not\n // done is *awaiting* it, which would put the app's transport in front of\n // the file write.\n try {\n const handled = this.config.onLogCreated(logObject);\n if (handled instanceof Promise) {\n handled.catch((err) => console.error(\"Error in onLogCreated\", err));\n }\n } catch (err) {\n console.error(\"Error in onLogCreated\", err);\n }\n\n // No writer means `createStorage` failed (or a rotation is mid-flight);\n // either way the entry has already been handed to `onLogCreated`, so drop\n // the file copy rather than throwing at the call site.\n if (!this.writer) {\n return;\n }\n\n this.writerSize += log.length;\n this.fileSize += log.length;\n\n try {\n this.writer.write(log);\n this.writer.write(\"\\n\");\n this.tryFlush();\n } catch (err) {\n console.error(\"Error writing log\", err);\n // Do something\n }\n }\n\n async tryFlush() {\n if (this.fileSize > this.config.maxFileSize) {\n if (!this.isCreatingFile) {\n await this.newLogFile();\n }\n }\n if (this.writerSize > this.config.maxFileSize / 2) {\n await this.writer.flush();\n this.writerSize = 0;\n await this.newLogFile();\n } else {\n clearTimeout(this.flushTimeout);\n this.flushTimeout = setTimeout(async () => {\n await this.writer.flush();\n this.writerSize = 0;\n }, 100);\n }\n }\n}\n",
|
|
27
27
|
"import { ApiRouter } from \"../../http\";\nimport { app } from \"../../foundation/app\";\nimport { LogManager } from \"./LogManager\";\n\nexport class LoggingRouter extends ApiRouter {\n middlewares = [\"cache:private,0\"];\n routes = {\n \"/live\": this.get(async () => {\n const file = Bun.file(app(LogManager).currentLogFilePath);\n return new Response(await file.text(), {\n headers: {\n \"Content-Type\": \"text/plain\",\n },\n });\n }),\n };\n}\n",
|
|
28
28
|
"import { HttpRequest, Middleware } from \"../../http\";\nimport type { MiddlewareConfig } from \"../../http/middleware-config\";\nimport type { RouterMiddleware } from \"../../http/Router\";\nimport { isConstructor } from \"../../internal/isConstructor\";\n\nfunction transformMiddleware(input: (string | Function)[]) {\n const map = new Map();\n for (const middleware of input) {\n if (typeof middleware === \"string\") {\n const [alias, params = \"\"] = middleware.split(\":\");\n if (alias.startsWith(\"-\")) {\n if (map.has(alias.replace(\"-\", \"\"))) {\n map.delete(alias.replace(\"-\", \"\"));\n }\n } else {\n map.set(alias, params.split(\",\").filter(Boolean));\n }\n } else {\n map.set(middleware, []);\n }\n }\n return map;\n}\n\nexport class MiddlewareRegistry {\n static token = \"middleware\";\n\n constructor(public config: Required<MiddlewareConfig>) {}\n\n get aliases() {\n return this.config.aliases;\n }\n\n public runMiddleware(\n middleware: (\n | string\n | RouterMiddleware\n | (new (req: HttpRequest) => Middleware)\n )[],\n ) {\n const req = new HttpRequest();\n return Array.from(transformMiddleware(middleware).entries())\n .map(([key, params]) => {\n if (typeof key === \"string\") {\n const Middleware = this.aliases[key];\n if (Middleware) {\n const middleware = new Middleware(req);\n return () => middleware.run.call(middleware, ...params);\n }\n } else {\n if (isConstructor(key)) {\n const middleware = new key(req);\n return middleware.run.bind(middleware);\n }\n return key;\n }\n })\n .filter(Boolean)\n .reduce(\n (acc: any, middleware: any) => {\n return async () => {\n return {\n ...(await acc()),\n ...(await middleware()),\n };\n };\n },\n () => Promise.resolve({}),\n )();\n }\n}\n",
|
|
29
29
|
"import type { JSX } from \"react\";\nimport type { HttpRequest } from \"../../http/HttpRequest\";\nimport type { ApiRouter } from \"../../http/ApiRouter\";\nimport type { ViewRouter } from \"../../http/ViewRouter\";\nimport type { StreamSummary } from \"./ServerQueryStore\";\n\n// Config key: `route.api`. Derived from `ApiRouterServiceProvider`.\nexport interface ApiRouteConfig {\n // `typeof ApiRouter`, not `new () => ApiRouter`: route flattening identifies\n // nested routers by the static `__brand`, which a bare construct signature\n // does not carry.\n rootRouter: typeof ApiRouter;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n}\n\n// Config key: `route.view`. Derived from `ViewRouterServiceProvider`.\nexport interface ViewRouteConfig {\n root: (props: any) => JSX.Element;\n rootRouter: new () => ViewRouter;\n\n /**\n * Whether a client-side navigation may skip the handlers of the layout\n * segments the client already has mounted, rather than re-running the whole\n * chain for every route below a layout.\n *\n * Set to `false` to run every handler on every navigation. Prefer\n * `alwaysRun()` on the one layout that needs it — this switch is for when an\n * app cannot audit them all at once.\n */\n partialRendering?: boolean;\n\n onRequestStart?: (req: HttpRequest) => void | Promise<void>;\n onRequestEnd?: (req: HttpRequest) => void | Promise<void>;\n onRequestFail?: (req: HttpRequest, error: any) => void | Promise<void>;\n\n /**\n * Fires when the response body actually closes — after the last streamed\n * chunk, not when the handler returns. Under streaming those are very\n * different moments: the handler returns at time-to-shell while queries keep\n * streaming for as long as the slowest one takes, so an APM span ended in the\n * handler under-reports every streamed request. End it here instead;\n * `summary` carries `shellAt`/`settledAt`, whether the stream deadline\n * aborted rendering, and per-query timings. Non-streamed responses (`.json`\n * payloads, `no-stream` routes, bot requests) report `shellAt === settledAt`.\n *\n * Although the body closes long after the handler returned, the dispatcher\n * re-enters the request's scopes around this hook — facades and `req.ctx()`\n * work here exactly as they do in the other lifecycle hooks.\n */\n onStreamComplete?: (\n req: HttpRequest,\n summary: StreamSummary,\n ) => void | Promise<void>;\n}\n\n// Config key: `route`. Covers both route dispatchers.\nexport interface RouteConfig {\n api: ApiRouteConfig;\n view: ViewRouteConfig;\n}\n\nexport function defineRouteConfig(config: RouteConfig): RouteConfig {\n return config;\n}\n\n// `rootRouter` / `root` have no defaults — the app must supply them.\nexport function apiRouteConfigDefaults(): Omit<\n Required<ApiRouteConfig>,\n \"rootRouter\"\n> {\n return {\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n };\n}\n\nexport function viewRouteConfigDefaults(): Omit<\n Required<ViewRouteConfig>,\n \"root\" | \"rootRouter\"\n> {\n return {\n partialRendering: true,\n onRequestStart: () => {},\n onRequestEnd: () => {},\n onRequestFail: () => {},\n onStreamComplete: () => {},\n };\n}\n",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"import { RequestContext, sessionId } from \"../../http/requestContext\";\nimport { isBotUserAgent } from \"../router/streamQueryInjection\";\nimport type { ResolvedFeaturesConfig } from \"./config\";\nimport type { FeatureContext } from \"./types\";\n\nexport interface FeatureSubject {\n user?: Record<string, any> | null;\n attributes?: Record<string, unknown>;\n /** The bucketing subject when there is no user — an org id, a device id. */\n subjectId?: string;\n}\n\n/**\n * Builds the context a feature is evaluated against from the ambient request.\n *\n * Two decisions worth stating:\n *\n * **The user comes from the request store, not `Auth.user()`.** `Auth.user()`\n * throws `AuthenticationError` when nobody is signed in and performs a session\n * lookup to find out. Features have to be evaluable on an anonymous marketing\n * page without either, so this reads `store.user` and accepts `null`. The\n * consequence is worth knowing: on a route with no `auth` middleware, where\n * nothing has resolved a session, `ctx.user` is `null` and a `when` that reads\n * it will not match. The fix an application reaches for is the `auth` middleware\n * it already has.\n *\n * **No request is not an error.** A job, a cron tick or a console command has no\n * store, and `Features.enabled()` there answers with an anonymous context rather\n * than throwing. `Features.for({ user })` is the explicit form when a background\n * task needs to evaluate as somebody.\n */\nexport async function contextFromRequest(\n config: ResolvedFeaturesConfig,\n warn: (message: string) => void = () => {},\n): Promise<FeatureContext> {\n const store = RequestContext.getStore();\n const req = store?.req ?? null;\n\n let path: string | null = null;\n if (req?.rawRequest?.url) {\n try {\n path = new URL(req.rawRequest.url).pathname;\n } catch {\n path = null;\n }\n }\n\n return {\n user: store?.user ?? null,\n attributes: await resolveAttributes(config, warn),\n request: {\n path,\n routePath: req?.routePath ?? null,\n locale: store?.locale ?? null,\n },\n anonymousId: sessionId(),\n isBot: isBotUserAgent(req?.rawRequest?.headers?.get(\"user-agent\") ?? null),\n now: new Date(),\n };\n}\n\n/** The same shape, from an explicit subject rather than the ambient request. */\nexport function contextFromSubject(subject: FeatureSubject): FeatureContext {\n return {\n user: subject.user ?? null,\n attributes: subject.attributes ?? {},\n request: { path: null, routePath: null, locale: null },\n // `subjectId` lands here because it is what `subjectFor` falls back to when\n // there is no user, so passing one buckets on it directly.\n anonymousId: subject.subjectId ?? null,\n // An explicit subject is a deliberate question — \"what would this user\n // see\" — and answering it with the crawler behaviour would make previews\n // and jobs lie about what a real visitor gets.\n isBot: false,\n now: new Date(),\n };\n}\n\nasync function resolveAttributes(\n config: ResolvedFeaturesConfig,\n warn: (message: string) => void,\n): Promise<Record<string, unknown>> {\n if (!config.context) return {};\n\n try {\n const store = RequestContext.getStore();\n return (await config.context(store?.req ?? null)) ?? {};\n } catch (error) {\n // An application's attribute hook throwing must not take the page down —\n // it runs on every request, inside the render path. Degrade to no\n // attributes, which makes a `when` reading them simply not match.\n warn(\n `The \\`context\\` hook in app/config/features.ts threw; evaluating with no attributes. ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n return {};\n }\n}\n",
|
|
45
45
|
"/**\n * Deterministic bucketing for percentage rollouts.\n *\n * ## Why nothing is stored\n *\n * A subject's bucket is a pure function of the feature and the subject, so it is\n * the same on every machine, in every process, on every device that subject logs\n * in from, forever — without a row, a cookie, or a cache holding the assignment.\n * Persisting assignments would be strictly worse: it would be per-browser rather\n * than per-subject, it would need migrating whenever a feature changes, and it\n * would grow with the user count.\n *\n * ## Why SHA-1 and not `Bun.hash`\n *\n * `Bun.hash` is faster and wrong for this. Its output is seeded and is not a\n * documented stable contract across Bun versions, so a runtime upgrade could\n * silently re-bucket every subject in the middle of a rollout — the 10% who had\n * the new checkout become a different 10%, and nobody finds out from a stack\n * trace. SHA-1 is a fixed standard: the same string maps to the same bucket on\n * every machine, every process and every version. This is a correctness\n * requirement, not a security one, so SHA-1's collision weakness is irrelevant\n * here — and `Bun.CryptoHasher(\"sha1\")` is already how `server/generateEtag.ts`\n * hashes.\n *\n * ## What is in the key\n *\n * `salt:subject`, where `salt` defaults to the feature's key.\n *\n * The salt is what decorrelates features from each other. Without it two\n * independent 20% rollouts would select the *same* 20% of subjects, so a user\n * unlucky once would be unlucky in everything and the two populations could\n * never be reasoned about separately.\n */\nconst RESOLUTION = 10_000;\n\n/** The bucket key. Exported so a test can pin exact strings to exact buckets. */\nexport function bucketKey(salt: string, subject: string): string {\n return `${salt}:${subject}`;\n}\n\n/**\n * A stable integer in `[0, RESOLUTION)` — i.e. 0.01% granularity.\n *\n * Takes the first 32 bits of the digest. That is four orders of magnitude more\n * entropy than the 10,000 buckets it is reduced to, so the modulo bias is far\n * below the noise floor of any rollout anyone would configure.\n */\nexport function bucketOf(key: string): number {\n const digest = new Bun.CryptoHasher(\"sha1\").update(key).digest(\"hex\");\n const n = Number.parseInt(digest.slice(0, 8), 16);\n return Math.floor((n / 0x1_00000000) * RESOLUTION);\n}\n\n/**\n * Whether `bucket` falls inside `percent`.\n *\n * `bucket < threshold` rather than a range test, which buys monotonicity for\n * free: a subject inside a 10% rollout is still inside the same feature's 20%\n * rollout. Ramping up therefore only ever *adds* people. The alternative —\n * anything that reshuffles on each change — means a user who saw the feature at\n * 10% can lose it at 20%, which reads as a bug to them and invalidates any\n * measurement taken across the change.\n */\nexport function inRollout(bucket: number, percent: number): boolean {\n if (percent >= 100) return true;\n if (percent <= 0) return false;\n return bucket < Math.round(percent * (RESOLUTION / 100));\n}\n\nexport { RESOLUTION };\n",
|
|
46
46
|
"import { bucketKey, bucketOf, inRollout } from \"./bucket\";\nimport type { Feature } from \"./defineFeature\";\nimport type { FeatureContext, FeatureEvaluation } from \"./types\";\n\nexport interface EvaluateOptions {\n /**\n * Whether the database says this feature is switched on. `undefined` means\n * there is no row, which is the state a freshly deployed feature is in.\n */\n active: boolean | undefined;\n /** The store has never loaded successfully. */\n unavailable?: boolean;\n /**\n * Per-request memo of bucket computations, so a feature read in three\n * components hashes once.\n */\n buckets?: Map<string, number>;\n /** Where a throwing `when` is reported. */\n warn?: (message: string) => void;\n}\n\n/**\n * Resolves one feature against one context. Pure: no I/O, no container, and no\n * clock of its own — `ctx.now` is the clock.\n *\n * ## Order\n *\n * 1. The store never loaded → **off**.\n * 2. No row, or `active === false` → **off**. `when` and `rollout` are not\n * consulted.\n * 3. `when(ctx)` returned a boolean → that.\n * 4. No `rollout` → **on**, crawlers included. There is nothing to sample, so\n * every visit already resolves the same way.\n * 5. A crawler, on a feature that *has* a rollout → **off**.\n * 6. Inside the rollout bucket → on, otherwise off.\n *\n * ## Why an unreachable database means off\n *\n * The store keeps its last good snapshot across a failed refresh, so this only\n * applies to a cold process that has never loaded — a deploy landing while the\n * database is down. Answering \"on\" there would turn features on at the moment\n * the operator has the least ability to turn them off again, which is the wrong\n * direction to fail in. Answering \"off\" degrades to the behaviour of the release\n * before the feature existed.\n *\n * ## Why `active` short-circuits\n *\n * It is the kill switch, and a kill switch that targeting could defeat is not\n * one. Turning a feature off during an incident is a single column an on-call\n * engineer flips, and it has to be true that nothing in application code can\n * override it — including a `when` somebody wrote last month and forgot.\n *\n * ## Why `when` outranks `rollout`\n *\n * A rollout is a statement about strangers; `when` is a statement about someone\n * you can name. Staff overrides and plan-level exclusions have to beat the dice,\n * or they are not overrides. Abstaining — returning nothing — is how a `when`\n * says it has no opinion about this subject and the dice should decide.\n */\nexport function evaluateFeature(\n key: string,\n feature: Feature,\n ctx: FeatureContext,\n options: EvaluateOptions,\n): FeatureEvaluation {\n if (options.unavailable) {\n return { value: false, reason: \"unavailable\" };\n }\n if (options.active !== true) {\n return { value: false, reason: \"inactive\" };\n }\n\n if (feature.when) {\n let decision: boolean | undefined | void;\n try {\n decision = feature.when(ctx);\n } catch (error) {\n // `when: (ctx) => ctx.user.plan === \"pro\"` throws on every anonymous page\n // load, and letting that escape would white-screen the marketing site over\n // a missing `?.`. Off rather than abstain: a targeting function that could\n // not run has not decided anybody is eligible, and falling through to the\n // rollout would ship the feature to a slice of users the author never\n // approved.\n options.warn?.(\n `The \\`when\\` for feature \"${key}\" threw; treating it as off. ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n return { value: false, reason: \"error\" };\n }\n if (typeof decision === \"boolean\") {\n return { value: decision, reason: \"attributed\" };\n }\n }\n\n if (feature.rollout === undefined) {\n return { value: true, reason: \"on\" };\n }\n\n // A crawler has no stable subject to bucket, so it would sample the rollout\n // afresh on every visit and index whichever side it happened to land on.\n // Pinning it to the pre-rollout experience keeps one URL serving one document.\n if (ctx.isBot) {\n return { value: false, reason: \"bot\" };\n }\n\n const bucket = bucketFor(key, feature, ctx, options.buckets);\n return inRollout(bucket, feature.rollout)\n ? { value: true, reason: \"rollout\" }\n : { value: false, reason: \"excluded\" };\n}\n\n/**\n * The subject a rollout buckets on: the signed-in user, else the `session_id`\n * cookie.\n *\n * Preferring the user id is what makes an assignment follow someone across\n * devices, and it is why signing up can move a visitor from one side of a\n * rollout to the other — there is no id that is both stable per person and\n * known before they have an account. The trade is worth it in that direction;\n * the reverse would give every logged-in user a different answer per browser.\n *\n * The empty string is the honest floor. Outside a request — a job, a cron tick —\n * there is no subject at all, and every context then shares one bucket. A random\n * value would be worse, not better: it would give the same subject a different\n * answer on every call, which is the one thing bucketing exists to prevent.\n */\nexport function subjectFor(ctx: FeatureContext): string {\n const userId = ctx.user?.publicId ?? ctx.user?.id;\n if (userId !== undefined && userId !== null) return String(userId);\n return ctx.anonymousId ?? \"\";\n}\n\nfunction bucketFor(\n key: string,\n feature: Feature,\n ctx: FeatureContext,\n memo: Map<string, number> | undefined,\n): number {\n const hashKey = bucketKey(feature.salt ?? key, subjectFor(ctx));\n if (!memo) return bucketOf(hashKey);\n\n const cached = memo.get(hashKey);\n if (cached !== undefined) return cached;\n\n const bucket = bucketOf(hashKey);\n memo.set(hashKey, bucket);\n return bucket;\n}\n",
|
|
47
|
-
"import type { FeatureRegistry } from \"./defineFeature\";\nimport type { FeatureFlagSource } from \"./sources/FeatureFlagSource\";\n\nexport type Warn = (message: string) => void;\n\nexport interface FlagSnapshot {\n /** `key -> active`. A key absent from the map has no row, and is off. */\n active: Map<string, boolean>;\n loadedAt: number;\n /** True only while nothing has *ever* loaded successfully. */\n unavailable: boolean;\n}\n\n/**\n * The process-local cache of on/off switches.\n *\n * gemi has no `Cache` facade, and this does not add one — a general cache\n * abstraction is a much larger design, and coupling features to a hypothetical\n * version of it would block both.\n *\n * Three properties, each load-bearing:\n *\n * **Stale-while-revalidate.** After the first load, `get()` returns an\n * already-resolved snapshot and refreshes in the background. No request ever\n * waits on the database for a feature. This is what makes evaluating every\n * feature on every request affordable, and it is why the manager can be eager.\n *\n * **Single-flight.** A cold start under load must not issue one query per\n * in-flight request, so concurrent refreshes share one promise.\n *\n * **A failed refresh keeps the last good data.** An outage must not read as\n * \"every feature switched itself off\" — that is a config change nobody made,\n * applied to production, at the exact moment something else is already broken.\n */\nexport class FeatureFlagStore {\n private snapshot: FlagSnapshot | null = null;\n private inflight: Promise<FlagSnapshot> | null = null;\n /** Rate-limits the \"could not load\" line to once per TTL window. */\n private lastFailureLoggedAt = 0;\n\n constructor(\n private readonly source: FeatureFlagSource,\n private readonly declared: FeatureRegistry,\n private readonly ttlMs: number,\n private readonly warn: Warn = () => {},\n ) {}\n\n /** Never rejects. Callers always get a snapshot, possibly an empty one. */\n async get(): Promise<FlagSnapshot> {\n const current = this.snapshot;\n\n if (current && Date.now() - current.loadedAt < this.ttlMs) {\n return current;\n }\n if (current) {\n // Stale: hand back what we have and refresh behind the request
|
|
48
|
-
"import { RequestContext } from \"../../http/requestContext\";\nimport type { ResolvedFeaturesConfig } from \"./config\";\nimport { contextFromRequest, contextFromSubject, type FeatureSubject } from \"./context\";\nimport type { Feature, FeatureRegistry } from \"./defineFeature\";\nimport { evaluateFeature } from \"./evaluate\";\nimport { FeatureFlagStore } from \"./FeatureFlagStore\";\nimport type { FeatureContext, FeatureEvaluation } from \"./types\";\n\n/**\n * Evaluation bound to one explicit context — what `Features.for(...)` returns.\n *\n * Exists because a job, a cron tick or an admin preview needs to ask \"what would\n * *this* user see\", and the ambient-request path cannot answer that.\n */\nexport class FeatureScope {\n constructor(\n private readonly manager: FeatureManager,\n private readonly ctx: FeatureContext,\n ) {}\n\n async enabled(key: string): Promise<boolean> {\n return (await this.explain(key)).value;\n }\n\n async explain(key: string): Promise<FeatureEvaluation> {\n return await this.manager.evaluateIn(key, this.ctx, new Map());\n }\n\n async all(): Promise<Record<string, boolean>> {\n return await this.manager.evaluateAllIn(this.ctx, new Map(), {\n clientOnly: false,\n });\n }\n}\n\nexport class FeatureManager {\n static token = \"features\";\n\n readonly store: FeatureFlagStore;\n private readonly declared: FeatureRegistry;\n private warnedAboutSize = false;\n\n constructor(\n readonly config: ResolvedFeaturesConfig,\n private readonly log: (message: string) => void = () => {},\n ) {\n // Silent when nothing is configured. Features are opt-in, so an application\n // that never declared any has not made a mistake — and this runs on every\n // boot, including every `gemi run` and every test that boots a kernel, where\n // a line on stderr about a feature nobody asked for is pure noise.\n this.declared = config.features ?? {};\n this.store = new FeatureFlagStore(\n config.source,\n this.declared,\n Math.max(0, config.ttl) * 1000,\n this.log,\n );\n }\n\n /** The declarations, for a CLI or an admin surface. Server-side only. */\n declarations(): FeatureRegistry {\n return this.declared;\n }\n\n /** Reloads the snapshot in this process now. */\n async refresh(): Promise<void> {\n if (!this.config.enabled) return;\n // Nothing is declared, so no row could resolve to anything. Skipping the\n // query keeps an app that never adopted features from touching the database\n // — and from logging that it has no `FeatureFlag` model, which would be a\n // boot-time complaint about an unused feature.\n if (Object.keys(this.declared).length === 0) return;\n await this.store.refresh();\n }\n\n async enabled(key: string): Promise<boolean> {\n return (await this.explain(key)).value;\n }\n\n /**\n * Value plus why. Server-side only — `reason` says whether the viewer landed\n * in a rollout or was targeted by name, and must never be serialized.\n */\n async explain(key: string): Promise<FeatureEvaluation> {\n const ctx = await this.requestContext();\n return await this.evaluateIn(key, ctx, this.requestBuckets());\n }\n\n /** Every declared feature for the ambient request, as `key -> boolean`. */\n async all(): Promise<Record<string, boolean>> {\n const ctx = await this.requestContext();\n return await this.evaluateAllIn(ctx, this.requestBuckets(), {\n clientOnly: false,\n });\n }\n\n /**\n * What the SSR payload carries: client-visible features only.\n *\n * The single function the dispatcher calls, and the only place the server-only\n * exclusion is applied — so \"what reaches the browser\" has one answer in one\n * place rather than a rule each caller has to remember.\n */\n async forClient(): Promise<Record<string, boolean>> {\n if (!this.config.enabled) return {};\n\n const ctx = await this.requestContext();\n const values = await this.evaluateAllIn(ctx, this.requestBuckets(), {\n clientOnly: true,\n });\n this.warnIfOversized(Object.keys(values).length);\n return values;\n }\n\n /** Evaluation against an explicit subject, for jobs, cron and previews. */\n for(subject: FeatureSubject): FeatureScope {\n return new FeatureScope(this, contextFromSubject(subject));\n }\n\n /**\n * @internal — shared by the ambient path and `FeatureScope`. The single place\n * a feature is evaluated, and therefore the single place the per-request memo\n * is consulted and `onEvaluate` fires.\n *\n * Both of those used to live in `explain()`, one level up, which meant every\n * caller that did not go through it — `forClient()` building the SSR payload,\n * `passesFeatureGates` checking a route — evaluated afresh and notified again.\n * A request that read a feature in a handler and then rendered it emitted two\n * exposures for one viewer, quietly doubling whatever counted them.\n */\n async evaluateIn(\n key: string,\n ctx: FeatureContext,\n buckets: Map<string, number>,\n ): Promise<FeatureEvaluation> {\n const memo = this.memoFor(ctx);\n const cached = memo?.get(key) as FeatureEvaluation | undefined;\n if (cached) return cached;\n\n const feature: Feature | undefined = this.declared[key];\n if (!feature) {\n // Typed callers cannot reach this; an untyped one — a string from a\n // console command, an app whose `gemi.d.ts` did not resolve — can.\n return { value: false, reason: \"undeclared\" };\n }\n\n const { active, unavailable } = await this.switchFor(key);\n const evaluation = evaluateFeature(key, feature, ctx, {\n active,\n unavailable,\n buckets,\n warn: this.log,\n });\n\n memo?.set(key, evaluation);\n this.notify(key, evaluation, ctx);\n return evaluation;\n }\n\n /** @internal */\n async evaluateAllIn(\n ctx: FeatureContext,\n buckets: Map<string, number>,\n options: { clientOnly: boolean },\n ): Promise<Record<string, boolean>> {\n const values: Record<string, boolean> = {};\n\n for (const [key, feature] of Object.entries(this.declared)) {\n if (options.clientOnly && feature.serverOnly) continue;\n values[key] = (await this.evaluateIn(key, ctx, buckets)).value;\n }\n\n return values;\n }\n\n private async switchFor(\n key: string,\n ): Promise<{ active: boolean | undefined; unavailable: boolean }> {\n if (!this.config.enabled) {\n // Not \"unavailable\": the application turned features off deliberately, and\n // the right answer is off everywhere, not an error state.\n return { active: false, unavailable: false };\n }\n\n const snapshot = await this.store.get();\n return {\n active: snapshot.active.get(key),\n unavailable: snapshot.unavailable,\n };\n }\n\n private async requestContext(): Promise<FeatureContext> {\n const store = RequestContext.getStore();\n if (store?.featureContext) return store.featureContext as FeatureContext;\n\n const ctx = await contextFromRequest(this.config, this.log);\n if (store) store.featureContext = ctx;\n return ctx;\n }\n\n /**\n * The request's evaluation memo, or `null` when there is none to use.\n *\n * Gated on the context being the ambient request's *own*, by identity. A\n * `Features.for({ user })` inside a request is asking what somebody else would\n * see, and answering it from — or writing it into — the current viewer's memo\n * would cross the two: an admin previewing a customer would poison every\n * subsequent read on that request with the customer's values.\n */\n private memoFor(ctx: FeatureContext): Map<string, unknown> | null {\n const store = RequestContext.getStore();\n if (!store || store.featureContext !== ctx) return null;\n store.featureEvaluations ??= new Map();\n return store.featureEvaluations;\n }\n\n private requestBuckets(): Map<string, number> {\n const store = RequestContext.getStore();\n if (!store) return new Map();\n store.featureBuckets ??= new Map();\n return store.featureBuckets;\n }\n\n private notify(key: string, evaluation: FeatureEvaluation, ctx: FeatureContext) {\n if (!this.config.onEvaluate) return;\n try {\n this.config.onEvaluate(key, evaluation, ctx);\n } catch (error) {\n // An exposure-logging hook must not break the render it observes.\n this.log(\n `The \\`onEvaluate\\` hook in app/config/features.ts threw for \"${key}\". ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n }\n\n private warnIfOversized(count: number) {\n if (this.warnedAboutSize || count <= this.config.maxClientFlags) return;\n this.warnedAboutSize = true;\n this.log(\n `${count} client-visible features are embedded in every document. Mark the ones only the server reads with \\`serverOnly: true\\` to keep them out of the payload.`,\n );\n }\n}\n",
|
|
47
|
+
"import type { FeatureRegistry } from \"./defineFeature\";\nimport type { FeatureFlagSource } from \"./sources/FeatureFlagSource\";\n\nexport type Warn = (message: string) => void;\n\n/**\n * A reload asked for by `invalidate()` did not happen.\n *\n * Only `invalidate()` raises this. The switches in memory are whatever they were\n * before — quite possibly older than the write the caller just made — so a\n * handler that catches it should say so rather than render the list as fact.\n */\nexport class FeatureReloadError extends Error {\n readonly kind = \"FeatureReloadFailed\";\n\n constructor(readonly cause: unknown) {\n super(\n `Could not reload feature switches after a write, so the cached switches may still predate it: ${\n cause instanceof Error ? cause.message : String(cause)\n }`,\n );\n }\n}\n\nexport interface FlagSnapshot {\n /** `key -> active`. A key absent from the map has no row, and is off. */\n active: Map<string, boolean>;\n loadedAt: number;\n /** True only while nothing has *ever* loaded successfully. */\n unavailable: boolean;\n}\n\n/**\n * The process-local cache of on/off switches.\n *\n * gemi has no `Cache` facade, and this does not add one — a general cache\n * abstraction is a much larger design, and coupling features to a hypothetical\n * version of it would block both.\n *\n * Three properties, each load-bearing:\n *\n * **Stale-while-revalidate.** After the first load, `get()` returns an\n * already-resolved snapshot and refreshes in the background. No request ever\n * waits on the database for a feature. This is what makes evaluating every\n * feature on every request affordable, and it is why the manager can be eager.\n *\n * **Single-flight.** A cold start under load must not issue one query per\n * in-flight request, so concurrent refreshes share one promise.\n *\n * **A failed refresh keeps the last good data.** An outage must not read as\n * \"every feature switched itself off\" — that is a config change nobody made,\n * applied to production, at the exact moment something else is already broken.\n */\nexport class FeatureFlagStore {\n private snapshot: FlagSnapshot | null = null;\n private inflight: Promise<FlagSnapshot> | null = null;\n /** Rate-limits the \"could not load\" line to once per TTL window. */\n private lastFailureLoggedAt = 0;\n /**\n * Counts *successful* loads, so a caller can tell whether the reload it asked\n * for actually happened. Nothing else can: `load()` swallows, and both\n * outcomes hand back a snapshot.\n */\n private generation = 0;\n /** The most recent load failure, for a caller that wants to report it. */\n private lastError: unknown = null;\n /**\n * Do not attempt another background load before this.\n *\n * The backoff after a failure used to be expressed by moving the kept\n * snapshot's `loadedAt` forward, which made a stale snapshot claim to be\n * freshly loaded — so nothing downstream could tell how old the switches\n * actually were, and a failed `invalidate()` silently pinned pre-write data\n * for a further full TTL. The clock and the timestamp are two facts; they are\n * now two fields.\n */\n private retryAfter = 0;\n\n constructor(\n private readonly source: FeatureFlagSource,\n private readonly declared: FeatureRegistry,\n private readonly ttlMs: number,\n private readonly warn: Warn = () => {},\n ) {}\n\n /** Never rejects. Callers always get a snapshot, possibly an empty one. */\n async get(): Promise<FlagSnapshot> {\n const current = this.snapshot;\n\n if (current && Date.now() - current.loadedAt < this.ttlMs) {\n return current;\n }\n if (current) {\n // Stale: hand back what we have and refresh behind the request, unless a\n // recent failure has us backing off — a down database must not be asked\n // again on every read. The `.catch` is required: `load()` already\n // swallows, but an unhandled rejection here would be an unobserved promise\n // on the hot path.\n if (Date.now() >= this.retryAfter) void this.refresh().catch(() => {});\n return current;\n }\n\n return await this.refresh();\n }\n\n /** Forces a reload now, sharing one query across concurrent callers. */\n refresh(): Promise<FlagSnapshot> {\n this.inflight ??= this.load().finally(() => {\n this.inflight = null;\n });\n return this.inflight;\n }\n\n /**\n * Reloads for a caller that has just written to the table and needs to see\n * its own write.\n *\n * Not the same as `refresh()`, and the difference is the whole point.\n * `refresh()` joins whatever load is already in flight — that is what keeps a\n * cold start under load down to one query — but a load already in flight\n * issued its query at some earlier moment, possibly before the write\n * committed. An admin that toggled a row and called `refresh()` could\n * therefore be handed, and return to the browser, a snapshot that predates the\n * toggle: the screen says the switch is still off a moment after flipping it.\n *\n * So this waits for that load to settle and starts a fresh one behind it. Any\n * load created after that point was created after this call, and so queries\n * after the write. The extra query is paid on an operator action, not on the\n * request path.\n *\n * **Throws when the reload failed.** This is the one call in the store that\n * does. Everywhere else a failure means \"keep serving what we have\", which is\n * right for evaluation and wrong here: the caller has already written to the\n * table and is about to show somebody the result, and a swallowed failure\n * would hand them the pre-write switches with nothing to distinguish that from\n * success — worse than never calling this at all.\n */\n async invalidate(): Promise<FlagSnapshot> {\n // `catch` because `load()` never rejects today, but a rejection here would\n // skip the reload entirely and leave the stale snapshot in place — the exact\n // failure this method exists to prevent.\n await this.inflight?.catch(() => {});\n\n // Read *after* the await. The load we just waited out may have succeeded,\n // and that success is not ours — it queried before this call, and possibly\n // before the write.\n const generation = this.generation;\n const snapshot = await this.refresh();\n\n if (this.generation === generation) {\n throw new FeatureReloadError(this.lastError);\n }\n\n return snapshot;\n }\n\n /** What is cached right now, without triggering a load. */\n peek(): FlagSnapshot | null {\n return this.snapshot;\n }\n\n private async load(): Promise<FlagSnapshot> {\n try {\n const rows = await this.source.load();\n this.snapshot = {\n active: this.readSwitches(rows),\n loadedAt: Date.now(),\n unavailable: false,\n };\n this.generation++;\n this.lastError = null;\n this.retryAfter = 0;\n return this.snapshot;\n } catch (error) {\n return this.handleFailure(error);\n }\n }\n\n /**\n * Rows in, `key -> active` out.\n *\n * The row is treated as hostile input — not because anyone expects it to be\n * malformed, but because it is the one part of this system nobody reviews\n * before it reaches production. A bad row is logged and skipped, never thrown:\n * a typo in a column must not take the process down at boot.\n */\n private readSwitches(rows: Record<string, unknown>[]): Map<string, boolean> {\n const active = new Map<string, boolean>();\n\n for (const row of rows ?? []) {\n const key = typeof row?.key === \"string\" ? row.key : null;\n if (!key) {\n this.warn(\"Ignoring a feature row with no `key`.\");\n continue;\n }\n\n if (!(key in this.declared)) {\n // A row for a feature nobody declares is usually one that was removed\n // from the code and left in the table, which is harmless — so this warns\n // rather than throws. It is also the signal that the row is now litter.\n this.warn(\n `Feature row \"${key}\" is not declared in app/features, so it is ignored. Delete the row, or declare the feature.`,\n );\n continue;\n }\n\n active.set(key, row.active === true);\n }\n\n return active;\n }\n\n private handleFailure(error: unknown): FlagSnapshot {\n const message = error instanceof Error ? error.message : String(error);\n const now = Date.now();\n this.lastError = error;\n // Back off for a full TTL rather than retrying a down database on every hit.\n // `loadedAt` is deliberately left alone: these switches are as old as they\n // were a moment ago, and saying otherwise is what let a failed `invalidate()`\n // pass pre-write data off as freshly loaded.\n this.retryAfter = now + this.ttlMs;\n\n if (now - this.lastFailureLoggedAt >= this.ttlMs) {\n this.lastFailureLoggedAt = now;\n this.warn(`Could not load feature switches: ${message}`);\n }\n\n if (this.snapshot) return this.snapshot;\n\n this.snapshot = { active: new Map(), loadedAt: now, unavailable: true };\n return this.snapshot;\n }\n}\n",
|
|
48
|
+
"import { RequestContext } from \"../../http/requestContext\";\nimport type { ResolvedFeaturesConfig } from \"./config\";\nimport { contextFromRequest, contextFromSubject, type FeatureSubject } from \"./context\";\nimport type { Feature, FeatureRegistry } from \"./defineFeature\";\nimport { evaluateFeature } from \"./evaluate\";\nimport { FeatureFlagStore } from \"./FeatureFlagStore\";\nimport type { FeatureContext, FeatureEvaluation, FeatureListing } from \"./types\";\n\n/**\n * Evaluation bound to one explicit context — what `Features.for(...)` returns.\n *\n * Exists because a job, a cron tick or an admin preview needs to ask \"what would\n * *this* user see\", and the ambient-request path cannot answer that.\n */\nexport class FeatureScope {\n constructor(\n private readonly manager: FeatureManager,\n private readonly ctx: FeatureContext,\n ) {}\n\n async enabled(key: string): Promise<boolean> {\n return (await this.explain(key)).value;\n }\n\n async explain(key: string): Promise<FeatureEvaluation> {\n return await this.manager.evaluateIn(key, this.ctx, new Map());\n }\n\n async all(): Promise<Record<string, boolean>> {\n return await this.manager.evaluateAllIn(this.ctx, new Map(), {\n clientOnly: false,\n });\n }\n}\n\nexport class FeatureManager {\n static token = \"features\";\n\n readonly store: FeatureFlagStore;\n private readonly declared: FeatureRegistry;\n private warnedAboutSize = false;\n\n constructor(\n readonly config: ResolvedFeaturesConfig,\n private readonly log: (message: string) => void = () => {},\n ) {\n // Silent when nothing is configured. Features are opt-in, so an application\n // that never declared any has not made a mistake — and this runs on every\n // boot, including every `gemi run` and every test that boots a kernel, where\n // a line on stderr about a feature nobody asked for is pure noise.\n this.declared = config.features ?? {};\n this.store = new FeatureFlagStore(\n config.source,\n this.declared,\n Math.max(0, config.ttl) * 1000,\n this.log,\n );\n }\n\n /** The declarations, for a CLI or an admin surface. Server-side only. */\n declarations(): FeatureRegistry {\n return this.declared;\n }\n\n /**\n * Every declared feature with its switch — what an admin list renders.\n *\n * Server-side only. `rollout` and `targeted` together describe who is in an\n * experiment, which is a fact about the population and not for the browser.\n */\n async list(): Promise<FeatureListing> {\n const { active, unavailable } = await this.switches();\n\n return {\n unavailable,\n features: Object.entries(this.declared).map(([key, feature]) => ({\n key,\n describe: feature.describe,\n rollout: feature.rollout,\n targeted: feature.when !== undefined,\n serverOnly: feature.serverOnly,\n salt: feature.salt,\n active: active.get(key),\n })),\n };\n }\n\n /** Reloads the snapshot in this process now. */\n async refresh(): Promise<void> {\n if (!this.config.enabled) return;\n // Nothing is declared, so no row could resolve to anything. Skipping the\n // query keeps an app that never adopted features from touching the database\n // — and from logging that it has no `FeatureFlag` model, which would be a\n // boot-time complaint about an unused feature.\n if (Object.keys(this.declared).length === 0) return;\n await this.store.refresh();\n }\n\n /**\n * Invalidates this process's cached switches after a write to the table.\n *\n * Process-local, because that is all a single process can honestly promise:\n * every *other* instance is still serving its own snapshot and picks the\n * change up within `ttl`. What this buys is the one window that would\n * otherwise read as a bug — the admin who flips a switch and reloads the page\n * they flipped it on, and is told for the next thirty seconds that nothing\n * happened.\n *\n * Throws `FeatureReloadError` if the reload itself failed, because the\n * alternative is handing back pre-write switches that look like success.\n */\n async invalidate(): Promise<void> {\n try {\n if (this.config.enabled && Object.keys(this.declared).length > 0) {\n await this.store.invalidate();\n }\n } finally {\n // The per-request memo is why this is not simply `refresh()`. A handler\n // that toggles a row and then reads the feature back in the same request\n // would otherwise be answered from the evaluation it memoised before the\n // write.\n //\n // Cleared *after* the reload rather than before. Anything in the same\n // request that evaluates a feature while the reload is in flight — a\n // `Promise.all` in the handler, an SSR render already under way — reads\n // the still-stale snapshot and memoises the pre-write value, and clearing\n // first would leave that entry standing for the rest of the request. In a\n // `finally` because a failed reload leaves the memo just as suspect as a\n // successful one.\n RequestContext.getStore()?.featureEvaluations?.clear();\n }\n }\n\n async enabled(key: string): Promise<boolean> {\n return (await this.explain(key)).value;\n }\n\n /**\n * Value plus why. Server-side only — `reason` says whether the viewer landed\n * in a rollout or was targeted by name, and must never be serialized.\n */\n async explain(key: string): Promise<FeatureEvaluation> {\n const ctx = await this.requestContext();\n return await this.evaluateIn(key, ctx, this.requestBuckets());\n }\n\n /** Every declared feature for the ambient request, as `key -> boolean`. */\n async all(): Promise<Record<string, boolean>> {\n const ctx = await this.requestContext();\n return await this.evaluateAllIn(ctx, this.requestBuckets(), {\n clientOnly: false,\n });\n }\n\n /**\n * What the SSR payload carries: client-visible features only.\n *\n * The single function the dispatcher calls, and the only place the server-only\n * exclusion is applied — so \"what reaches the browser\" has one answer in one\n * place rather than a rule each caller has to remember.\n */\n async forClient(): Promise<Record<string, boolean>> {\n if (!this.config.enabled) return {};\n\n const ctx = await this.requestContext();\n const values = await this.evaluateAllIn(ctx, this.requestBuckets(), {\n clientOnly: true,\n });\n this.warnIfOversized(Object.keys(values).length);\n return values;\n }\n\n /** Evaluation against an explicit subject, for jobs, cron and previews. */\n for(subject: FeatureSubject): FeatureScope {\n return new FeatureScope(this, contextFromSubject(subject));\n }\n\n /**\n * @internal — shared by the ambient path and `FeatureScope`. The single place\n * a feature is evaluated, and therefore the single place the per-request memo\n * is consulted and `onEvaluate` fires.\n *\n * Both of those used to live in `explain()`, one level up, which meant every\n * caller that did not go through it — `forClient()` building the SSR payload,\n * `passesFeatureGates` checking a route — evaluated afresh and notified again.\n * A request that read a feature in a handler and then rendered it emitted two\n * exposures for one viewer, quietly doubling whatever counted them.\n */\n async evaluateIn(\n key: string,\n ctx: FeatureContext,\n buckets: Map<string, number>,\n ): Promise<FeatureEvaluation> {\n const memo = this.memoFor(ctx);\n const cached = memo?.get(key) as FeatureEvaluation | undefined;\n if (cached) return cached;\n\n const feature: Feature | undefined = this.declared[key];\n if (!feature) {\n // Typed callers cannot reach this; an untyped one — a string from a\n // console command, an app whose `gemi.d.ts` did not resolve — can.\n return { value: false, reason: \"undeclared\" };\n }\n\n const { active, unavailable } = await this.switchFor(key);\n const evaluation = evaluateFeature(key, feature, ctx, {\n active,\n unavailable,\n buckets,\n warn: this.log,\n });\n\n memo?.set(key, evaluation);\n this.notify(key, evaluation, ctx);\n return evaluation;\n }\n\n /** @internal */\n async evaluateAllIn(\n ctx: FeatureContext,\n buckets: Map<string, number>,\n options: { clientOnly: boolean },\n ): Promise<Record<string, boolean>> {\n const values: Record<string, boolean> = {};\n\n for (const [key, feature] of Object.entries(this.declared)) {\n if (options.clientOnly && feature.serverOnly) continue;\n values[key] = (await this.evaluateIn(key, ctx, buckets)).value;\n }\n\n return values;\n }\n\n /**\n * The whole switch map in one load, for `list()`.\n *\n * Separate from `switchFor` because listing asks about every key at once — and\n * because it has to carry `unavailable` out with the map rather than fold it\n * into the values. For *evaluation* a store that has never loaded and a table\n * with no rows are the same thing: both mean off, and failing closed is\n * correct. For a *display* they are opposite claims. Collapsing them tells an\n * operator whose database is down that no feature has ever been switched on,\n * about features that are switched on in the table, at the moment they are\n * most likely to act on it and turn on something that already is.\n */\n private async switches(): Promise<{\n active: Map<string, boolean>;\n unavailable: boolean;\n }> {\n // Not `unavailable`: the application turned features off deliberately, and\n // the declarations are still the truth about what exists.\n if (!this.config.enabled) return { active: new Map(), unavailable: false };\n if (Object.keys(this.declared).length === 0) {\n return { active: new Map(), unavailable: false };\n }\n\n const snapshot = await this.store.get();\n return { active: snapshot.active, unavailable: snapshot.unavailable };\n }\n\n private async switchFor(\n key: string,\n ): Promise<{ active: boolean | undefined; unavailable: boolean }> {\n if (!this.config.enabled) {\n // Not \"unavailable\": the application turned features off deliberately, and\n // the right answer is off everywhere, not an error state.\n return { active: false, unavailable: false };\n }\n\n const snapshot = await this.store.get();\n return {\n active: snapshot.active.get(key),\n unavailable: snapshot.unavailable,\n };\n }\n\n private async requestContext(): Promise<FeatureContext> {\n const store = RequestContext.getStore();\n if (store?.featureContext) return store.featureContext as FeatureContext;\n\n const ctx = await contextFromRequest(this.config, this.log);\n if (store) store.featureContext = ctx;\n return ctx;\n }\n\n /**\n * The request's evaluation memo, or `null` when there is none to use.\n *\n * Gated on the context being the ambient request's *own*, by identity. A\n * `Features.for({ user })` inside a request is asking what somebody else would\n * see, and answering it from — or writing it into — the current viewer's memo\n * would cross the two: an admin previewing a customer would poison every\n * subsequent read on that request with the customer's values.\n */\n private memoFor(ctx: FeatureContext): Map<string, unknown> | null {\n const store = RequestContext.getStore();\n if (!store || store.featureContext !== ctx) return null;\n store.featureEvaluations ??= new Map();\n return store.featureEvaluations;\n }\n\n private requestBuckets(): Map<string, number> {\n const store = RequestContext.getStore();\n if (!store) return new Map();\n store.featureBuckets ??= new Map();\n return store.featureBuckets;\n }\n\n private notify(key: string, evaluation: FeatureEvaluation, ctx: FeatureContext) {\n if (!this.config.onEvaluate) return;\n try {\n this.config.onEvaluate(key, evaluation, ctx);\n } catch (error) {\n // An exposure-logging hook must not break the render it observes.\n this.log(\n `The \\`onEvaluate\\` hook in app/config/features.ts threw for \"${key}\". ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n }\n\n private warnIfOversized(count: number) {\n if (this.warnedAboutSize || count <= this.config.maxClientFlags) return;\n this.warnedAboutSize = true;\n this.log(\n `${count} client-visible features are embedded in every document. Mark the ones only the server reads with \\`serverOnly: true\\` to keep them out of the payload.`,\n );\n }\n}\n",
|
|
49
49
|
"/**\n * Dev-mode guard against the silent no-JS blanking threshold (#289, #294).\n *\n * React defers any boundary bigger than `progressiveChunkSize` (~12.8 kB) out\n * of the shell on size alone, so a public page that reads fine without JS\n * today goes blank the day one more section pushes it over the budget — its\n * content is parked in `<div hidden>` segments revealed by `$RC()` scripts,\n * and nothing in typecheck, tests, or CI notices the transition. `\"no-stream\"`\n * fixes it, but only for routes someone already knows are affected.\n *\n * The measurement is nearly free where the bytes already flow: the stream\n * injector is the last thing to see the response body, so an observer hung on\n * its `onChunk` hook holds the document exactly as the visitor received it.\n * After the body closes, the bytes are split into shell-readable text (what a\n * no-JS reader can see) versus deferred text (parked behind reveal scripts),\n * and a route shipping its content deferred while its shell is near-blank gets\n * a console hint — once per route per boot.\n */\n\nexport interface ShellContentMeasurement {\n /** Non-whitespace text chars a no-JS reader can see in the shell. */\n shellChars: number;\n /** Non-whitespace text chars parked in `<div hidden>` reveal segments. */\n deferredChars: number;\n}\n\n/**\n * Their text is code, styling, or metadata — never readable content. React's\n * `<template id=\"B:...\">` fallback markers are empty anyway; skipping the tag\n * also covers hand-written templates.\n */\nconst RAW_TEXT_TAGS = new Set([\"script\", \"style\", \"template\", \"title\"]);\n\n/**\n * `hidden` as a standalone attribute (`<div hidden id=\"S:0\">`, `hidden=\"\"`).\n * Tested against the tag with its quoted attribute values blanked out\n * (`QUOTED_VALUE` below), so the word `hidden` inside a value — a Tailwind\n * list like `class=\"mt-2 hidden md:block\"` or prose like\n * `title=\"show hidden files\"` — never opens a deferred segment.\n */\nconst HIDDEN_ATTR = /\\shidden([\\s=/]|$)/i;\n\n/**\n * Quoted attribute values, to be blanked before the `HIDDEN_ATTR` test. Safe\n * as a regex because React escapes `\"` and `'` inside attribute values, so a\n * quoted span never contains its own delimiter.\n */\nconst QUOTED_VALUE = /\"[^\"]*\"|'[^']*'/g;\n\n/**\n * Splits a streamed HTML document into shell-readable versus deferred text.\n *\n * A scanner, not a parser: it only needs to tell text from markup, skip the\n * tags whose text is never content, and track `<div hidden>` nesting — the\n * container React streams deferred segments in. Attribute text and comments\n * (including React's `<!--$?-->` boundary marks) never count; whitespace\n * never counts.\n */\nexport function measureShellContent(html: string): ShellContentMeasurement {\n let shellChars = 0;\n let deferredChars = 0;\n /** `<div>` nesting depth inside the current hidden segment; 0 = in the shell. */\n let hiddenDepth = 0;\n let i = 0;\n\n while (i < html.length) {\n const lt = html.indexOf(\"<\", i);\n const textEnd = lt === -1 ? html.length : lt;\n if (textEnd > i) {\n const visible = html.slice(i, textEnd).replace(/\\s+/g, \"\").length;\n if (hiddenDepth > 0) {\n deferredChars += visible;\n } else {\n shellChars += visible;\n }\n }\n if (lt === -1) break;\n\n if (html.startsWith(\"<!--\", lt)) {\n const end = html.indexOf(\"-->\", lt + 4);\n i = end === -1 ? html.length : end + 3;\n continue;\n }\n\n const gt = html.indexOf(\">\", lt);\n if (gt === -1) break; // truncated tag — nothing readable follows\n const tag = html.slice(lt + 1, gt);\n i = gt + 1;\n\n const name = /^\\/?([a-zA-Z][a-zA-Z0-9-]*)/.exec(tag)?.[1]?.toLowerCase();\n if (!name) continue;\n const isClosing = tag.startsWith(\"/\");\n\n if (!isClosing && RAW_TEXT_TAGS.has(name) && !tag.endsWith(\"/\")) {\n const close = html.indexOf(`</${name}`, i);\n i = close === -1 ? html.length : close;\n continue;\n }\n\n // Only `div` is tracked because that is the container React streams\n // deferred segments in. A hand-written `<section hidden>` still counts as\n // shell text — a false negative (stays silent), never a false hint.\n if (name !== \"div\") continue;\n if (isClosing) {\n if (hiddenDepth > 0) hiddenDepth -= 1;\n } else if (hiddenDepth > 0) {\n hiddenDepth += 1;\n } else if (HIDDEN_ATTR.test(tag.replace(QUOTED_VALUE, '\"\"'))) {\n hiddenDepth = 1;\n }\n }\n\n return { shellChars, deferredChars };\n}\n\n/** Below this much deferred text the page isn't relying on reveal scripts. */\nexport const DEFERRED_TEXT_FLOOR = 1000;\n\n/**\n * \"Near zero\": under this many readable chars the shell is effectively blank\n * — less than a sentence, no headline worth of content.\n */\nexport const SHELL_TEXT_NEAR_ZERO = 64;\n\nfunction formatChars(chars: number): string {\n return chars >= 1000 ? `${(chars / 1000).toFixed(1)} kB` : `${chars} chars`;\n}\n\n/**\n * The hint for a route whose content streams behind reveal scripts while its\n * shell is near-blank — exactly the transition #289 was discovered through by\n * hand-measuring. Null when the measurement is fine: a shell that carries its\n * own text, or too little deferred text to matter.\n */\nexport function shellContentHint(\n routePath: string,\n measurement: ShellContentMeasurement,\n): string | null {\n if (measurement.deferredChars < DEFERRED_TEXT_FLOOR) return null;\n if (measurement.shellChars >= SHELL_TEXT_NEAR_ZERO) return null;\n return (\n `[gemi] GET ${routePath} streams ${formatChars(measurement.deferredChars)} of its ` +\n `content behind reveal scripts — a no-JS visitor sees ~${measurement.shellChars} chars. ` +\n `If this is a public/content route, add \"no-stream\" to its middleware.`\n );\n}\n\n/**\n * Owns the once-per-route-per-boot dedup (#294's \"logs the hint once\"): a hot\n * route must not spam the dev console, but a route whose measurement is\n * healthy today must stay eligible for the hint the day it crosses the\n * threshold — only an actually-emitted hint marks the route as done.\n *\n * `warn` is injectable for tests; production callers use the default.\n */\nexport function createShellContentReporter(warn: (hint: string) => void = console.warn) {\n /** Routes already hinted this boot. */\n const hintedRoutes = new Set<string>();\n return {\n /**\n * Whether collecting bytes for this route can still lead to a hint —\n * false once the route has been hinted, so the caller can skip the\n * observer entirely.\n */\n shouldObserve(routePath: string): boolean {\n return !hintedRoutes.has(routePath);\n },\n report(routePath: string, measurement: ShellContentMeasurement): void {\n if (hintedRoutes.has(routePath)) return;\n const hint = shellContentHint(routePath, measurement);\n if (!hint) return;\n hintedRoutes.add(routePath);\n warn(hint);\n },\n };\n}\n\nexport type ShellContentReporter = ReturnType<typeof createShellContentReporter>;\n\n/**\n * Accumulates the response body for a post-close measurement. Wire `onChunk`\n * into `StreamLifecycleHooks.onChunk`; call `measure` once the body closed.\n * Decoding is streaming-safe — a multi-byte character split across chunks\n * still decodes as one character.\n */\nexport function createShellContentObserver() {\n const decoder = new TextDecoder();\n let html = \"\";\n return {\n onChunk(chunk: Uint8Array) {\n html += decoder.decode(chunk, { stream: true });\n },\n measure(): ShellContentMeasurement {\n html += decoder.decode();\n return measureShellContent(html);\n },\n };\n}\n",
|
|
50
50
|
"import type { ServerQueryStore } from \"./ServerQueryStore\";\n\n/**\n * How long a navigation payload may keep streaming query results before it\n * closes with whatever has settled. A hung query must not hold the response\n * open — the suspended segment it strands resolves over `/api` instead.\n */\nconst PAYLOAD_STREAM_DEADLINE_MS = 10_000;\n\n/**\n * The streamed `.json` navigation response (#290): NDJSON, one JSON value per\n * line.\n *\n * - **Line 1 — the envelope**: route data, meta, i18n, partial info, and the\n * `prefetchedData` that has already resolved. Written immediately, so the\n * client can commit the navigation at handler speed instead of waiting for\n * `allSettled` — the blocking that made priming a heavy query a tax on\n * every navigation.\n * - **Later lines — query payloads**: `[path, variantKey, data]`, one per\n * query as it settles. The client hydrates each into the cache, which\n * settles any segment suspended on that variant — the same wake path the\n * document stream uses.\n *\n * The envelope is an object and payload lines are arrays, which is how the\n * reader tells them apart. `JSON.stringify` never emits a raw newline, so\n * line framing is unambiguous. Rejected queries stream nothing: the\n * suspended segment's own `/api` fetch surfaces the error into its boundary.\n */\nexport function createRoutePayloadStream(\n envelope: unknown,\n store: ServerQueryStore,\n deadlineMs: number = PAYLOAD_STREAM_DEADLINE_MS,\n /**\n * The body actually closed — every settled query streamed, the deadline\n * fired (`aborted: true`), or the client went away. Fires exactly once;\n * the stream-lifecycle mirror of the document injector's `onClose`.\n */\n onClose?: (info: { aborted: boolean }) => void,\n): ReadableStream<Uint8Array> {\n const encoder = new TextEncoder();\n let closeStream: (aborted: boolean) => void = () => {};\n\n return new ReadableStream<Uint8Array>({\n start(controller) {\n let closed = false;\n const close = (aborted: boolean) => {\n if (closed) return;\n closed = true;\n clearTimeout(deadline);\n try {\n controller.close();\n } catch {}\n onClose?.({ aborted });\n };\n closeStream = close;\n\n controller.enqueue(encoder.encode(`${JSON.stringify(envelope)}\\n`));\n\n // Entries the envelope's snapshot already shipped are skipped by the\n // store itself (same contract the document injector relies on).\n store.onSettle((entry) => {\n if (closed || entry.status !== \"resolved\") return;\n controller.enqueue(\n encoder.encode(\n `${JSON.stringify([entry.path, entry.variantKey, entry.data])}\\n`,\n ),\n );\n });\n\n const deadline = setTimeout(() => close(true), deadlineMs);\n store.allSettled().then(\n () => close(false),\n () => close(false),\n );\n },\n cancel() {\n closeStream(false);\n },\n });\n}\n",
|
|
51
51
|
"import { AuthApiRouter } from \"../../auth/routes\";\nimport { ApiRouter, HttpRequest } from \"../../http\";\nimport { GEMI_REQUEST_BREAKER_ERROR } from \"../../http/Error\";\nimport { I18nRouter } from \"../../i18n/I18nRouter\";\nimport { RequestContext } from \"../../http/requestContext\";\nimport { ImageOptimizationRouter } from \"../image-optimization/ImageManager\";\nimport { LoggingRouter } from \"../logging/LoggingRouter\";\nimport { MiddlewareRegistry } from \"../middleware/MiddlewareRegistry\";\nimport { apiRouteConfigDefaults, type ApiRouteConfig } from \"./config\";\nimport { createFlatApiRoutes, type FlatApiRoutes } from \"./createFlatApiRoutes\";\nimport { ViewRouteDispatcher } from \"./ViewRouteDispatcher\";\nimport { Translator } from \"../../i18n/Translator\";\nimport { app } from \"../../foundation/app\";\n\nclass DebugRouter extends ApiRouter {\n routes = {\n \"/api-routes\": this.get(() => {\n const flatroutes = app(ApiRouteDispatcher).flatRoutes;\n const out = [];\n for (const [path, methods] of Object.entries(flatroutes)) {\n for (const [method, handler] of Object.entries(methods)) {\n const { exec, middleware } = handler;\n out.push({ path, method, middleware });\n }\n }\n return out;\n }),\n \"/view-routes\": this.get(() => {\n const flatroutes = app(ViewRouteDispatcher).flatViewRoutes;\n const out = [];\n for (const [path, { middleware, viewPath }] of Object.entries(flatroutes)) {\n out.push({ path, method: \"GET\", viewPath, middleware });\n }\n return out;\n }),\n };\n}\n\nexport class ApiRouteDispatcher {\n static token = \"router.api\";\n\n flatRoutes: FlatApiRoutes = {};\n\n private readonly onRequestStart: NonNullable<ApiRouteConfig[\"onRequestStart\"]>;\n private readonly onRequestEnd: NonNullable<ApiRouteConfig[\"onRequestEnd\"]>;\n private readonly onRequestFail: NonNullable<ApiRouteConfig[\"onRequestFail\"]>;\n\n constructor(config: ApiRouteConfig) {\n const defaults = apiRouteConfigDefaults();\n\n this.onRequestStart = config.onRequestStart ?? defaults.onRequestStart;\n this.onRequestEnd = config.onRequestEnd ?? defaults.onRequestEnd;\n this.onRequestFail = config.onRequestFail ?? defaults.onRequestFail;\n\n this.flatRoutes = createFlatApiRoutes({\n \"/\": config.rootRouter,\n \"/auth\": AuthApiRouter,\n \"/__gemi__/services/i18n\": I18nRouter,\n \"/__gemi__/services/logs\": LoggingRouter,\n \"/__gemi__/services/image\": ImageOptimizationRouter,\n \"/__gemi__/debug\": DebugRouter,\n });\n }\n\n public getRouteHandlerAndParams(req: Request) {\n const url = new URL(req.url);\n\n const apiPath = url.pathname.replace(\"/api\", \"\");\n\n let params: Record<string, any> = {};\n let path: string;\n for (const [_path] of Object.entries(this.flatRoutes)) {\n try {\n const pattern = new URLPattern({ pathname: _path });\n if (pattern.test({ pathname: apiPath })) {\n path = _path;\n params = pattern.exec({ pathname: apiPath })?.pathname.groups!;\n break;\n }\n } catch (err) {\n console.error(err);\n // Do something\n }\n }\n return { params, path };\n }\n\n async runRouteMiddleware(path: string, httpRequest: HttpRequest) {\n const routeHandler = this.flatRoutes[path];\n const middlewares = routeHandler[httpRequest.rawRequest.method].middleware;\n try {\n await app(MiddlewareRegistry).runMiddleware(middlewares);\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n if (httpRequest.rawRequest.url.includes(\"/api\")) {\n const { status = 400, data, headers } = err.payload.api;\n return new Response(JSON.stringify(data), {\n status,\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n });\n }\n } else {\n this.onRequestFail(httpRequest, err);\n console.error(err);\n throw err;\n }\n }\n }\n\n async getRouteData(path: string): Promise<any> {\n const routeHandler = this.flatRoutes[path];\n\n const ctx = RequestContext.getStore();\n const exec = routeHandler[ctx.req.rawRequest.method].exec ?? (() => Promise.resolve({}));\n\n let data = {};\n try {\n data = await exec();\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n const { status = 400, data, headers } = err.payload.api;\n\n return new Response(JSON.stringify(data), {\n status,\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n });\n }\n this.onRequestFail(ctx.req, err);\n console.error(err);\n throw err;\n }\n\n return data;\n }\n\n /**\n * Copies request-context headers and cookies onto a Response a handler built\n * itself, without disturbing what the handler already set.\n */\n private mergeContextIntoResponse(\n response: Response,\n headers: Headers,\n cookies: Set<string>,\n ) {\n // Built with forEach rather than spread: the browser tsconfig's lib set\n // has DOM but not DOM.Iterable, so `Headers` has no [Symbol.iterator].\n const entries: [string, string][] = [];\n headers?.forEach((value, key) => entries.push([key, value]));\n const setCookies = [\n ...(typeof headers?.getSetCookie === \"function\"\n ? headers.getSetCookie()\n : []),\n ...Array.from(cookies ?? []),\n ];\n\n if (entries.length === 0 && setCookies.length === 0) {\n return response;\n }\n\n const apply = (target: Headers) => {\n for (const [key, value] of entries) {\n if (key.toLowerCase() === \"set-cookie\") {\n continue;\n }\n if (!target.has(key)) {\n target.set(key, value);\n }\n }\n for (const cookie of setCookies) {\n target.append(\"Set-Cookie\", cookie);\n }\n };\n\n try {\n // Mutating in place keeps the original Response object, and with it a\n // sized Blob body — rebuilding turns that into a stream, which costs the\n // Content-Length that Bun only emits for known-length bodies.\n apply(response.headers);\n return response;\n } catch {\n // A Response from fetch() — this.proxy() routes — has immutable headers.\n const merged = new Headers(response.headers);\n apply(merged);\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers: merged,\n });\n }\n }\n\n async handleApiRequest(req: Request) {\n const { params, path } = this.getRouteHandlerAndParams(req);\n\n const routeHandler = this.flatRoutes[path];\n\n if (!routeHandler || !routeHandler[req.method]) {\n return new Response(JSON.stringify({ error: { message: \"Not found\" } }), {\n status: 404,\n });\n }\n\n const httpRequest = new HttpRequest(req, params, \"api\", path);\n if (!req.url.includes(\"/__gemi__\")) {\n this.onRequestStart(httpRequest);\n }\n return await RequestContext.run(httpRequest, async () => {\n const ctx = RequestContext.getStore();\n\n const translator = app(Translator);\n if (translator.isEnabled) {\n const locale = translator.detectLocale(httpRequest);\n ctx.setLocale(locale);\n }\n\n ctx.setRequest(httpRequest);\n const middlewareResponse = await this.runRouteMiddleware(path, httpRequest);\n\n if (middlewareResponse instanceof Response) {\n return middlewareResponse;\n }\n const data = await this.getRouteData(path);\n\n const headers = ctx.headers;\n const cookies = ctx.cookies;\n\n if (data instanceof Response) {\n // A handler owning its own Response — stream, file and proxy routes,\n // and the RequestBreakerError path in getRouteData — still has to carry\n // what the request context accumulated: headers set by middleware via\n // ctx.setHeaders (CORS, Cache-Control) and any Set-Cookie. The\n // response's own headers win; the context only fills gaps.\n const response = this.mergeContextIntoResponse(data, headers, cookies);\n\n if (!req.url.includes(\"/__gemi__\")) {\n // Before destroy(), which empties the store the hook reads from.\n this.onRequestEnd(httpRequest);\n }\n ctx.destroy();\n return response;\n }\n\n headers.set(\"Content-Type\", \"application/json\");\n\n cookies.forEach((cookie) => headers.append(\"Set-Cookie\", cookie.toString()));\n\n if (!req.url.includes(\"/__gemi__\")) {\n this.onRequestEnd(httpRequest);\n }\n\n ctx.destroy();\n\n return new Response(JSON.stringify(data), {\n headers,\n });\n });\n }\n}\n",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"import type { RedisClient, RedisOptions } from \"bun\";\nimport type { RedisConfig } from \"./config\";\n\n/**\n * The constructor `Bun.RedisClient` is, described structurally.\n *\n * Reached through the `Bun` global rather than `import { RedisClient } from\n * \"bun\"`, which is what this module used to do. That was a **value** import of\n * a specifier only the Bun runtime can resolve, and this class is re-exported\n * from `gemi/services` and reached from `gemi/facades` through the `Redis`\n * facade — the two barrels that are also the only door to `CronJob`, `Job`,\n * `DB` and `Lang`. So the specifier landed in the graph of every app and every\n * test that imported either one, and under a browser-targeted runner the whole\n * barrel simply failed to resolve (#396, #403).\n *\n * The global carries no specifier for a bundler or a test runner to resolve, so\n * the cost is paid only by code that actually asks for a client.\n */\ntype RedisClientConstructor = new (\n url?: string,\n options?: RedisOptions,\n) => RedisClient;\n\nexport class RedisManager {\n static token = \"redis\";\n\n private instance: RedisClient | null = null;\n\n constructor(public config: RedisConfig = {}) {}\n\n /**\n * Bun's Redis client. Built on first access and memoized.\n *\n * It connects lazily on the first command, so building it here is safe even\n * when Redis isn't running or configured — nothing connects until something\n * actually issues a command.\n */\n get client(): RedisClient {\n return (this.instance ??= new (redisClientConstructor())(\n this.config.url,\n this.config.options,\n ));\n }\n\n /**\n * `client` was a plain public property before it was a getter, and\n * overwriting a manager's client is how this repo fakes one —\n * `S3Driver.test.ts` does exactly that, and the `S3Driver` half of #403 kept\n * that seam working on purpose. An accessor with no setter would have turned\n * `manager.client = fake` into `TypeError: Attempted to assign to readonly\n * property` instead, which is not a change this was meant to make.\n */\n set client(client: RedisClient) {\n this.instance = client;\n }\n}\n\nfunction redisClientConstructor(): RedisClientConstructor {\n const ctor = (globalThis as any).Bun?.RedisClient as\n | RedisClientConstructor\n | undefined;\n\n if (typeof ctor !== \"function\") {\n throw new Error(\n \"Redis requires Bun's built-in Redis client, which this runtime does not provide. Run the app under Bun, or bind your own client for the 'redis' token.\",\n );\n }\n\n return ctor;\n}\n",
|
|
58
58
|
"import type { RedisClient } from \"bun\";\nimport { RedisManager } from \"../services/redis/RedisManager\";\nimport { Facade } from \"./Facade\";\n\n// Ergonomic access to the app's Redis client. Use `Redis.client` for the full\n// Bun Redis API (hashes, sets, sorted sets, pub/sub, pipelining, ...); the\n// static shortcuts below cover the most common string commands.\nexport class Redis extends Facade {\n static getFacadeAccessor() {\n return RedisManager;\n }\n\n static get client(): RedisClient {\n return this.getFacadeRoot().client;\n }\n\n static get(key: string) {\n return Redis.client.get(key);\n }\n\n static set(key: string, value: string) {\n return Redis.client.set(key, value);\n }\n\n static del(...keys: string[]) {\n return Redis.client.del(...keys);\n }\n\n static exists(key: string) {\n return Redis.client.exists(key);\n }\n\n static incr(key: string) {\n return Redis.client.incr(key);\n }\n\n static expire(key: string, seconds: number) {\n return Redis.client.expire(key, seconds);\n }\n\n static ttl(key: string) {\n return Redis.client.ttl(key);\n }\n}\n",
|
|
59
59
|
"import {\n type ConsumeOptions,\n RateLimiter as RateLimiterManager,\n} from \"../services/rate-limiter/RateLimiter\";\nimport type { RateLimitResult } from \"../services/rate-limiter/types\";\nimport { Facade } from \"./Facade\";\n\n/**\n * The rate limiter, outside of middleware — for the things a route-level limit\n * cannot express: a per-user budget on an expensive job, a cooldown on\n * password-reset emails, a quota on a third-party API you pay for.\n *\n * ```ts\n * const result = await RateLimiter.consume(`reset-password:${email}`, {\n * limit: 3,\n * window: 3600,\n * });\n *\n * if (!result.allowed) {\n * return { error: `Try again in ${Math.ceil(result.retryAfter / 1000)}s` };\n * }\n * ```\n */\nexport class RateLimiter extends Facade {\n static getFacadeAccessor() {\n return RateLimiterManager;\n }\n\n /** Records one hit against `key` and reports whether it fits the budget. */\n static consume(\n key: string,\n options: ConsumeOptions = {},\n ): Promise<RateLimitResult> {\n return this.getFacadeRoot().consume(key, options);\n }\n}\n",
|
|
60
|
-
"import type { FeatureKey } from \"../client/rpc\";\nimport type { FeatureSubject } from \"../services/features/context\";\nimport { FeatureManager, type FeatureScope } from \"../services/features/FeatureManager\";\nimport type { FeatureEvaluation } from \"../services/features/types\";\nimport { Facade } from \"./Facade\";\n\n/**\n * Features on the server.\n *\n * Keys are typed against the application's `app/features` declarations, so a\n * typo is a compile error rather than a feature that is silently always off.\n *\n * ```ts\n * if (await Features.enabled(\"new-checkout\")) { ... }\n *\n * // In a job or cron tick, where there is no request to read a user from:\n * if (await Features.for({ user }).enabled(\"digest-v2\")) { ... }\n * ```\n *\n * ## Everything is async, and there is no sync variant\n *\n * After the boot-time warm-up every call settles in a microtask with no I/O —\n * the snapshot is in memory and refreshes behind the request. The promise is\n * kept anyway because the *first* call in a cold process does hit the database,\n * and because a source that is not the local table will too. A sync variant\n * would have to answer that case with \"off\", which is a feature silently\n * disappearing during exactly the window a deploy is rolling.\n *\n * ## The ambient user\n *\n * Read from the request store, not `Auth.user()` — features must be evaluable on\n * an anonymous page without throwing. On a route with no `auth` middleware,\n * where nothing has resolved a session, a `when` that reads `ctx.user` sees\n * `null`.\n */\nexport class Features extends Facade {\n static getFacadeAccessor() {\n return FeatureManager;\n }\n\n /** Whether the feature is on for this request. */\n static enabled(key: FeatureKey): Promise<boolean> {\n return this.getFacadeRoot().enabled(key as string);\n }\n\n /**\n * Every client-visible feature for this request. This is what the SSR payload\n * carries.\n */\n static all(): Promise<Record<string, boolean>> {\n return this.getFacadeRoot().forClient();\n }\n\n /**\n * Value plus why.\n *\n * **Server-side only.** `reason` distinguishes \"targeted by name\" from \"landed\n * in the rollout\", which is a fact about the viewer — never serialize it into\n * a response.\n */\n static explain(key: FeatureKey): Promise<FeatureEvaluation> {\n return this.getFacadeRoot().explain(key as string);\n }\n\n /** Evaluation against an explicit subject rather than the ambient request. */\n static for(subject: FeatureSubject): FeatureScope {\n return this.getFacadeRoot().for(subject);\n }\n\n /** Reloads this process's snapshot now, rather than waiting for the TTL. */\n static refresh(): Promise<void> {\n return this.getFacadeRoot().refresh();\n }\n}\n",
|
|
60
|
+
"import type { FeatureKey } from \"../client/rpc\";\nimport type { FeatureSubject } from \"../services/features/context\";\nimport { FeatureManager, type FeatureScope } from \"../services/features/FeatureManager\";\nimport type { FeatureEvaluation, FeatureListing } from \"../services/features/types\";\nimport { Facade } from \"./Facade\";\n\n/**\n * Features on the server.\n *\n * Keys are typed against the application's `app/features` declarations, so a\n * typo is a compile error rather than a feature that is silently always off.\n *\n * ```ts\n * if (await Features.enabled(\"new-checkout\")) { ... }\n *\n * // In a job or cron tick, where there is no request to read a user from:\n * if (await Features.for({ user }).enabled(\"digest-v2\")) { ... }\n * ```\n *\n * ## Everything is async, and there is no sync variant\n *\n * After the boot-time warm-up every call settles in a microtask with no I/O —\n * the snapshot is in memory and refreshes behind the request. The promise is\n * kept anyway because the *first* call in a cold process does hit the database,\n * and because a source that is not the local table will too. A sync variant\n * would have to answer that case with \"off\", which is a feature silently\n * disappearing during exactly the window a deploy is rolling.\n *\n * ## The ambient user\n *\n * Read from the request store, not `Auth.user()` — features must be evaluable on\n * an anonymous page without throwing. On a route with no `auth` middleware,\n * where nothing has resolved a session, a `when` that reads `ctx.user` sees\n * `null`.\n */\nexport class Features extends Facade {\n static getFacadeAccessor() {\n return FeatureManager;\n }\n\n /** Whether the feature is on for this request. */\n static enabled(key: FeatureKey): Promise<boolean> {\n return this.getFacadeRoot().enabled(key as string);\n }\n\n /**\n * Every client-visible feature for this request. This is what the SSR payload\n * carries.\n */\n static all(): Promise<Record<string, boolean>> {\n return this.getFacadeRoot().forClient();\n }\n\n /**\n * Value plus why.\n *\n * **Server-side only.** `reason` distinguishes \"targeted by name\" from \"landed\n * in the rollout\", which is a fact about the viewer — never serialize it into\n * a response.\n */\n static explain(key: FeatureKey): Promise<FeatureEvaluation> {\n return this.getFacadeRoot().explain(key as string);\n }\n\n /** Evaluation against an explicit subject rather than the ambient request. */\n static for(subject: FeatureSubject): FeatureScope {\n return this.getFacadeRoot().for(subject);\n }\n\n /**\n * Every feature declared in the code, with its switch — the list an admin\n * screen renders.\n *\n * The declarations are what exists. A feature is here because `app/features`\n * declares it, never because a row was inserted; `active` is `undefined` for a\n * feature that has been deployed but never switched on, which is deliberately\n * distinct from a row that says `false`.\n *\n * Check `unavailable` before rendering `active`. It means no snapshot has ever\n * loaded, so the switches are unknown rather than absent.\n *\n * **Server-side only, and the route must be gated.** The listing includes\n * `serverOnly` features — whose keys are the thing `serverOnly` exists to keep\n * out of the payload — and every descriptor carries `rollout` and `targeted`,\n * which describe who is in an experiment.\n *\n * ```ts\n * // app/http/routes/api.ts\n * \"/admin/features\": this.get([AdminFeatureController, \"index\"]).middleware([\"admin\"]),\n *\n * // app/http/controllers/AdminFeatureController.ts\n * public async index() {\n * return await Features.list();\n * }\n * ```\n */\n static list(): Promise<FeatureListing> {\n return this.getFacadeRoot().list();\n }\n\n /** Reloads this process's snapshot now, rather than waiting for the TTL. */\n static refresh(): Promise<void> {\n return this.getFacadeRoot().refresh();\n }\n\n /**\n * Call this after writing to the `FeatureFlag` table.\n *\n * ```ts\n * public async update(\n * request: HttpRequest<{ active: boolean }, { key: string }>,\n * ) {\n * const input = await request.input();\n *\n * await FeatureFlag.update({\n * where: { key: request.params.key },\n * data: { active: input.get(\"active\") },\n * });\n *\n * await Features.invalidate();\n * return await Features.list();\n * }\n * ```\n *\n * Unlike `refresh()` this never settles on a load that started before it was\n * called, so the `list()` above reflects the write that precedes it. It also\n * clears the request's evaluation memo, so a feature read earlier in the same\n * request is re-evaluated rather than answered from before the write.\n *\n * **Throws `FeatureReloadError` when the reload fails.** The write landed and\n * the cache did not follow, so the switches in memory may still predate it;\n * returning normally would present them as the result of the update. This is\n * the one call in the subsystem that fails loudly — everywhere else an outage\n * means \"keep serving what we have\", which is right for evaluation and wrong\n * for an operator watching their own change.\n *\n * **Process-local.** The other instances are still serving their own\n * snapshots and converge within `ttl` — there is no cross-instance\n * invalidation. What this fixes is the window that reads as a bug: the admin\n * who flips a switch and is told for the next thirty seconds that nothing\n * happened.\n */\n static invalidate(): Promise<void> {\n return this.getFacadeRoot().invalidate();\n }\n}\n",
|
|
61
61
|
"import type { SQL } from \"bun\";\nimport type { DatabaseConnection } from \"../database/Connection\";\nimport { DatabaseManager } from \"../database/DatabaseManager\";\nimport type { Dialect } from \"../database/dialect\";\nimport { app } from \"../foundation/app\";\nimport {\n assertConnectionUsable,\n currentConnectionName,\n currentTransaction,\n runOnConnection,\n withTransaction,\n} from \"../orm/context\";\nimport { dialectFor } from \"../orm/dialect\";\nimport { renderFragment, type SqlFragment } from \"../orm/sql\";\nimport { Facade } from \"./Facade\";\n\n/**\n * The raw-SQL surface, pointed at one connection.\n *\n * `DB` itself is one of these — the one that resolves the **ambient**\n * connection per call — and `DB.connection(name)` returns one bound to a name.\n * Written once rather than twice so the two cannot drift: a fragment run\n * through a named connection has to reach the driver by exactly the path\n * `DB.query` does, or the ambient transaction, the placeholder numbering and\n * the string refusal would each be a thing that works on one of them.\n *\n * Every method resolves the manager, the connection and the dialect **per\n * call** and captures none of them, which is the rule `Model.$exec` follows and\n * what keeps the connection swappable in tests.\n */\nexport class ConnectionQueries {\n /**\n * `undefined` means *whichever connection is ambient*, which is the default\n * one unless an enclosing transaction or `Model.on` named another. That is\n * the mode `DB`'s own statics use, and it is why an unqualified `DB.query`\n * inside `DB.connection(\"analytics\").transaction(...)` joins that transaction\n * instead of being refused by it.\n */\n constructor(private readonly bound?: string) {}\n\n /** The name this handle will use for the call happening now. */\n get name(): string {\n return this.bound ?? currentConnectionName();\n }\n\n /**\n * The Bun `SQL` client. Tagged-template queries go through here.\n *\n * **The pool, not the open transaction.** `DB.sql` has always been Bun's own\n * template and has never joined the ambient transaction — on Postgres it runs\n * on a pooled connection and survives a rollback — and a named handle does\n * not change that, only which pool it is. `query` and `execute` are the ones\n * that join; reach for them when the difference matters.\n *\n * **This getter throws where the methods reject**, and it cannot do\n * otherwise: an accessor has nowhere to put a rejection. So\n * `DB.connection(\"typo\").sql` throws `UnknownConnectionError` synchronously,\n * and reading it while a transaction is open on another connection throws\n * `CrossConnectionTransactionError` the same way. `query`, `execute` and\n * `transaction` are `async` precisely so a `.catch()` cannot miss those.\n */\n get sql(): SQL {\n return this.connection().sql;\n }\n\n /**\n * Which database is in use, inferred from the connection URL. Read this when\n * generating SQL that differs across databases (upserts, `RETURNING`,\n * autoincrement, boolean and timestamp types).\n *\n * Throws rather than rejects, for the reason given on `sql` above.\n */\n get dialect(): Dialect {\n return this.connection().dialect;\n }\n\n // Runs a composed fragment and returns its rows.\n //\n // const where = filters.length ? sql`where ${join(filters, \" and \")}` : empty\n // const rows = await DB.query(sql`select * from \"Product\" ${where}`)\n //\n // Two things it does that `DB.sql` does not, and they are the reason it\n // exists rather than being sugar:\n //\n // - It takes a **fragment**, so a predicate can be built as a value and\n // passed around. See `orm/sql.ts` for why that shape is the one raw SQL\n // actually needs.\n // - It runs on the **ambient transaction** when there is one. A raw statement\n // that quietly escapes `Model.transaction` and commits while its neighbours\n // roll back is worse than no raw statement at all — so this resolves the\n // handle exactly as `Model.$exec` does, through `currentTransaction()`.\n //\n // A plain string is refused. That is deliberate: accepting one would make an\n // interpolated template the path of least resistance, which is the injection\n // this whole mechanism exists to keep closed. `unsafeSql` is the door, and it\n // is named so that using it is a decision.\n //\n // `async` rather than returning the driver's promise directly, so that a\n // rejected fragment — a plain string, a parameter count over the ceiling —\n // *rejects* instead of throwing synchronously. An API that does one sometimes\n // and the other otherwise is a footgun: `DB.query(...).catch(…)` would miss\n // exactly the errors this refuses to run.\n async query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return (await this.run(fragment, \"query\")) as T[];\n }\n\n // The same, for a statement whose answer is *how many rows it touched*.\n //\n // const won = await DB.execute(\n // sql`update \"Reservation\" set status = 'claimed'\n // where id = ${id} and status = 'reserved'`,\n // )\n // if (won === 0) { /* somebody else claimed it first */ }\n //\n // The count is the concurrency primitive there, not a diagnostic: 1 means this\n // caller won the compare-and-swap and 0 means it lost, and an API that\n // discarded it could not express that at all.\n //\n // **Where the number comes from.** Bun puts it on `count`, and leaves\n // `affectedRows` null — measured on both dialects rather than read from a\n // changelog, for `update`, `delete`, `insert`, a statement matching nothing,\n // and one with `returning`.\n //\n // `result.count` on what is otherwise an *array* reads like a bug, so: Bun\n // returns an array with `count`, `command` and `lastInsertRowid` hung off it,\n // on every statement including the ones that return no rows at all. A write\n // without `returning` is therefore a zero-length array whose `count` is the\n // number of rows it touched, and a write *with* one is an array of the rows\n // whose `count` matches their number. `compile/write.ts` records the same measurement\n // from the other side: the *ORM's* counts come from `RETURNING` instead,\n // because there the statement shape is ours to choose and an exact count that\n // depends on nothing undocumented is worth a key column per row. Here the\n // statement is the caller's, so there is nothing to add a `RETURNING` to.\n async execute(fragment: SqlFragment): Promise<number> {\n const result = await this.run(fragment, \"execute\");\n return Number((result as { count?: unknown })?.count ?? 0);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. The callback still receives the raw handle, as\n // it always has.\n //\n // It goes through the ORM's `withTransaction` rather than straight to\n // `sql.begin` so that the two transaction systems are one: a `User.create`\n // inside a `DB.transaction` joins it instead of committing separately on a\n // pooled connection, and a `DB.transaction` nested inside a\n // `Model.transaction` becomes a savepoint instead of throwing (Bun refuses\n // `begin` inside a transaction). Two systems that silently ignored each other\n // would be worse than either alone — a rollback would leave half the work\n // committed.\n //\n // The slow-transaction threshold comes from the same `database` config as it\n // does for the ORM, so a `DB.transaction` holding a connection too long warns\n // exactly as a `Model.transaction` would. Same reason as above: one system.\n //\n // On a named connection the whole callback runs with that connection ambient,\n // so a `User.create` inside `DB.connection(\"analytics\").transaction(...)`\n // joins the transaction rather than opening a second one on the hot path.\n //\n // `async` so that a handle used inside a transaction on another connection\n // *rejects* rather than throwing synchronously — the same reason `query`\n // above is, and the same `.catch()` that would otherwise miss it.\n async transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n const name = this.name;\n const connection = this.connection(name);\n\n return withTransaction(\n connection.sql,\n (tx) => runOnConnection(name, () => fn(tx)),\n {\n slowTransactionThreshold: connection.config.slowTransactionThreshold,\n connection: name,\n },\n );\n }\n\n private run(fragment: SqlFragment, operation: string) {\n const db = this.connection();\n // Per call, never captured: the same rule `Model.$exec` follows, and what\n // keeps the connection swappable in tests.\n const { text, values } = renderFragment(\n fragment,\n dialectFor(db.dialect),\n operation,\n );\n return (this.handle() ?? db.sql).unsafe(text, values);\n }\n\n /**\n * The open transaction, but only when it belongs to this handle's connection.\n *\n * `assertConnectionUsable` has already refused the case where they differ, so\n * reaching this with a mismatch is impossible — except for the unqualified\n * handle, whose name *is* the transaction's. The comparison is kept anyway\n * because it is what makes that reasoning local: nothing here has to know\n * which caller checked what.\n */\n private handle() {\n const tx = currentTransaction();\n if (tx === undefined) return undefined;\n return currentConnectionName() === this.name ? tx : undefined;\n }\n\n private connection(name = this.name): DatabaseConnection {\n assertConnectionUsable(name);\n return app(DatabaseManager).connection(name);\n }\n}\n\n/** The unqualified handle: whichever connection is ambient, per call. */\nconst ambient = new ConnectionQueries();\n\n// Access to the app's database connections. Bun's `SQL` client is a tagged\n// template, so queries read the same here as they do in Bun's own docs:\n//\n// const users = await DB.sql`select * from users where id = ${id}`\n//\n// Values interpolated into the template are bound as parameters, not\n// concatenated into the SQL string — `${id}` is a placeholder, so this is not a\n// SQL injection risk.\n//\n// Every static here works on the **ambient** connection: the default one,\n// unless an enclosing `DB.connection(name).transaction(...)` named another.\n// `DB.connection(name)` is the way to name one explicitly.\nexport class DB extends Facade {\n static getFacadeAccessor() {\n return DatabaseManager;\n }\n\n /**\n * The raw-SQL surface for a named connection.\n *\n * const rows = await DB.connection(\"analytics\").query(sql`…`)\n * await DB.connection(\"analytics\").transaction(async () => { … })\n *\n * The names are the keys of `connections` in `app/config/database.ts`, plus\n * `\"default\"` for the top-level `url`. An unknown one raises\n * `UnknownConnectionError` when the handle is used, listing what is\n * configured — never a silent fall back to the default, which would put the\n * query on precisely the pool the caller was trying to stay off.\n *\n * A transaction cannot span two connections. Using a named handle while a\n * transaction is open on another connection raises\n * `CrossConnectionTransactionError` rather than running the statement outside\n * that transaction, where it would survive the rollback.\n */\n // Built per call rather than memoised by name. A handle is one string and a\n // few methods that resolve everything else per call, so caching it saves an\n // allocation — and a `Map` keyed on the caller's string is a slow leak the\n // moment a name reaches it from a request, since an unknown name is not\n // rejected until the handle is *used*. Nothing is worth keeping here.\n static connection(name: string): ConnectionQueries {\n return new ConnectionQueries(name);\n }\n\n // The Bun `SQL` client. Tagged-template queries go through here.\n static get sql(): SQL {\n return ambient.sql;\n }\n\n // Which database is in use, inferred from the connection URL. Read this when\n // generating SQL that differs across databases (upserts, `RETURNING`,\n // autoincrement, boolean and timestamp types).\n static get dialect(): Dialect {\n return ambient.dialect;\n }\n\n // Runs a composed fragment and returns its rows, on the ambient transaction\n // when there is one. See `ConnectionQueries.query`, which is the whole of it.\n static query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return ambient.query<T>(fragment);\n }\n\n // The same, for a statement whose answer is *how many rows it touched* — the\n // compare-and-swap primitive. See `ConnectionQueries.execute`.\n static execute(fragment: SqlFragment): Promise<number> {\n return ambient.execute(fragment);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. One transaction system with the ORM's, so a\n // `User.create` inside this joins it. See `ConnectionQueries.transaction`.\n static transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n return ambient.transaction(fn);\n }\n\n /** Closes every configured connection, not only the default one. */\n static close(): Promise<void> {\n return this.getFacadeRoot().close();\n }\n}\n"
|
|
62
62
|
],
|
|
63
|
-
"mappings": "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",
|
|
64
|
-
"debugId": "
|
|
63
|
+
"mappings": "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",
|
|
64
|
+
"debugId": "9D65AD60960AC20664756E2164756E21",
|
|
65
65
|
"names": []
|
|
66
66
|
}
|