gemi 0.94.0 → 0.96.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/FallbackProvider.d.ts +154 -0
- package/dist/ai/FallbackProvider.d.ts.map +1 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +12 -12
- package/dist/ai/index.js.map +4 -3
- package/dist/app/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-p3mdtnvv.js → chunk-1pbwrzwp.js} +2 -2
- package/dist/{chunk-j2nx0dtq.js.map → chunk-1pbwrzwp.js.map} +1 -1
- package/dist/{chunk-qqev9e50.js → chunk-1vs4xhcg.js} +2 -2
- package/dist/{chunk-qqev9e50.js.map → chunk-1vs4xhcg.js.map} +1 -1
- package/dist/{chunk-7dnb21s9.js → chunk-2tm56xq1.js} +2 -2
- package/dist/{chunk-7dnb21s9.js.map → chunk-2tm56xq1.js.map} +1 -1
- package/dist/{chunk-j9x86xsc.js → chunk-3tn480wt.js} +2 -2
- package/dist/{chunk-j9x86xsc.js.map → chunk-3tn480wt.js.map} +1 -1
- package/dist/{chunk-7hfv5n00.js → chunk-48dek9s7.js} +3 -3
- package/dist/{chunk-7hfv5n00.js.map → chunk-48dek9s7.js.map} +1 -1
- package/dist/{chunk-b8m6zs7e.js → chunk-4qjy1bts.js} +2 -2
- package/dist/{chunk-b8m6zs7e.js.map → chunk-4qjy1bts.js.map} +1 -1
- package/dist/{chunk-7s5nh5mx.js → chunk-4rns9cnb.js} +2 -2
- package/dist/{chunk-7s5nh5mx.js.map → chunk-4rns9cnb.js.map} +1 -1
- package/dist/{chunk-1hnpr3xt.js → chunk-5wgx5n2q.js} +2 -2
- package/dist/{chunk-1hnpr3xt.js.map → chunk-5wgx5n2q.js.map} +1 -1
- package/dist/{chunk-xtqxy492.js → chunk-6397mbr2.js} +3 -3
- package/dist/{chunk-xtqxy492.js.map → chunk-6397mbr2.js.map} +1 -1
- package/dist/{chunk-tcefqn3d.js → chunk-63cp4s8g.js} +2 -2
- package/dist/{chunk-tcefqn3d.js.map → chunk-63cp4s8g.js.map} +1 -1
- package/dist/{chunk-56gce2z7.js → chunk-64j3yef2.js} +2 -2
- package/dist/{chunk-56gce2z7.js.map → chunk-64j3yef2.js.map} +1 -1
- package/dist/{chunk-j2nx0dtq.js → chunk-68zf43ah.js} +2 -2
- package/dist/{chunk-p3mdtnvv.js.map → chunk-68zf43ah.js.map} +1 -1
- package/dist/{chunk-7ktsceyz.js → chunk-69yw2pb1.js} +2 -2
- package/dist/{chunk-7ktsceyz.js.map → chunk-69yw2pb1.js.map} +1 -1
- package/dist/{chunk-x24davqq.js → chunk-6abjjfjr.js} +2 -2
- package/dist/{chunk-x24davqq.js.map → chunk-6abjjfjr.js.map} +1 -1
- package/dist/{chunk-z9ydpvc8.js → chunk-77kw61f4.js} +2 -2
- package/dist/{chunk-z9ydpvc8.js.map → chunk-77kw61f4.js.map} +1 -1
- package/dist/{chunk-h24rv10h.js → chunk-7fn3wwyq.js} +2 -2
- package/dist/{chunk-h24rv10h.js.map → chunk-7fn3wwyq.js.map} +1 -1
- package/dist/{chunk-r7qzdmew.js → chunk-7keqx61j.js} +2 -2
- package/dist/{chunk-r7qzdmew.js.map → chunk-7keqx61j.js.map} +1 -1
- package/dist/{chunk-jrp35qrk.js → chunk-80t4tfke.js} +1 -1
- package/dist/{chunk-323715e8.js → chunk-8ma08vxq.js} +2 -2
- package/dist/{chunk-323715e8.js.map → chunk-8ma08vxq.js.map} +1 -1
- package/dist/{chunk-nqabsqty.js → chunk-99wzvsz5.js} +4 -4
- package/dist/{chunk-nqabsqty.js.map → chunk-99wzvsz5.js.map} +1 -1
- package/dist/{chunk-2jse74pn.js → chunk-a9nxjfdy.js} +2 -2
- package/dist/{chunk-2jse74pn.js.map → chunk-a9nxjfdy.js.map} +1 -1
- package/dist/{chunk-2yyr5tdc.js → chunk-aa13sgs2.js} +1 -1
- package/dist/{chunk-jxhznqhe.js → chunk-bf1q3m7a.js} +2 -2
- package/dist/{chunk-jxhznqhe.js.map → chunk-bf1q3m7a.js.map} +1 -1
- package/dist/{chunk-3fjkbcra.js → chunk-bvsevtpp.js} +1 -1
- package/dist/{chunk-sh6pjjgc.js → chunk-c0k26g4n.js} +2 -2
- package/dist/{chunk-sh6pjjgc.js.map → chunk-c0k26g4n.js.map} +1 -1
- package/dist/{chunk-ssqxzcad.js → chunk-c9vga0sk.js} +3 -3
- package/dist/{chunk-ssqxzcad.js.map → chunk-c9vga0sk.js.map} +1 -1
- package/dist/{chunk-w98tp5fa.js → chunk-cp8gxeqs.js} +2 -2
- package/dist/{chunk-w98tp5fa.js.map → chunk-cp8gxeqs.js.map} +1 -1
- package/dist/{chunk-5en4ydde.js → chunk-dn2mw39y.js} +2 -2
- package/dist/{chunk-5en4ydde.js.map → chunk-dn2mw39y.js.map} +1 -1
- package/dist/{chunk-qxda7pzm.js → chunk-f6s7ddjz.js} +2 -2
- package/dist/{chunk-qxda7pzm.js.map → chunk-f6s7ddjz.js.map} +1 -1
- package/dist/chunk-f9t39vwk.js +5 -0
- package/dist/chunk-f9t39vwk.js.map +10 -0
- package/dist/{chunk-fq03tz45.js → chunk-gykbgtvg.js} +2 -2
- package/dist/{chunk-fq03tz45.js.map → chunk-gykbgtvg.js.map} +1 -1
- package/dist/{chunk-mym0zxxp.js → chunk-h15bd9vn.js} +2 -2
- package/dist/{chunk-mym0zxxp.js.map → chunk-h15bd9vn.js.map} +1 -1
- package/dist/{chunk-38k1kjyb.js → chunk-hsec03gh.js} +2 -2
- package/dist/{chunk-38k1kjyb.js.map → chunk-hsec03gh.js.map} +1 -1
- package/dist/{chunk-2shkf2gs.js → chunk-jhaeemjf.js} +2 -2
- package/dist/{chunk-2shkf2gs.js.map → chunk-jhaeemjf.js.map} +1 -1
- package/dist/{chunk-bk4f99s4.js → chunk-jv38q9n7.js} +2 -2
- package/dist/{chunk-bk4f99s4.js.map → chunk-jv38q9n7.js.map} +1 -1
- package/dist/{chunk-bk8wjf00.js → chunk-kcp39g56.js} +2 -2
- package/dist/{chunk-bk8wjf00.js.map → chunk-kcp39g56.js.map} +1 -1
- package/dist/{chunk-qj5ts9d5.js → chunk-msg6re1f.js} +2 -2
- package/dist/{chunk-qj5ts9d5.js.map → chunk-msg6re1f.js.map} +1 -1
- package/dist/{chunk-kzh8bkg5.js → chunk-n63xjrck.js} +2 -2
- package/dist/{chunk-kzh8bkg5.js.map → chunk-n63xjrck.js.map} +1 -1
- package/dist/{chunk-9g5cpkkk.js → chunk-nffk2cj3.js} +2 -2
- package/dist/{chunk-9g5cpkkk.js.map → chunk-nffk2cj3.js.map} +1 -1
- package/dist/{chunk-z16nyxb8.js → chunk-np5b3cd7.js} +2 -2
- package/dist/{chunk-z16nyxb8.js.map → chunk-np5b3cd7.js.map} +1 -1
- package/dist/{chunk-twhf7w1x.js → chunk-pjg7gqnh.js} +1 -1
- package/dist/{chunk-f6veb369.js → chunk-prg5k57m.js} +2 -2
- package/dist/{chunk-f6veb369.js.map → chunk-prg5k57m.js.map} +1 -1
- package/dist/chunk-qttatc7h.js +5 -0
- package/dist/chunk-qttatc7h.js.map +12 -0
- package/dist/chunk-rc4z7ykq.js +17 -0
- package/dist/{chunk-ykbehyp9.js.map → chunk-rc4z7ykq.js.map} +4 -4
- package/dist/{chunk-5px4rkzf.js → chunk-shb51m4y.js} +2 -2
- package/dist/{chunk-5px4rkzf.js.map → chunk-shb51m4y.js.map} +1 -1
- package/dist/{chunk-8g99gnsd.js → chunk-snz7nze3.js} +2 -2
- package/dist/{chunk-8g99gnsd.js.map → chunk-snz7nze3.js.map} +1 -1
- package/dist/{chunk-qpek76vn.js → chunk-tymhsmgq.js} +3 -3
- package/dist/{chunk-qpek76vn.js.map → chunk-tymhsmgq.js.map} +1 -1
- package/dist/{chunk-f6e2t4vb.js → chunk-xf9axxzx.js} +3 -3
- package/dist/{chunk-f6e2t4vb.js.map → chunk-xf9axxzx.js.map} +1 -1
- package/dist/{chunk-et6thczw.js → chunk-xmjhensy.js} +2 -2
- package/dist/{chunk-et6thczw.js.map → chunk-xmjhensy.js.map} +1 -1
- package/dist/{chunk-37jb6q13.js → chunk-xp6nr441.js} +2 -2
- package/dist/{chunk-37jb6q13.js.map → chunk-xp6nr441.js.map} +1 -1
- package/dist/{chunk-bedkys40.js → chunk-y4fp0eg9.js} +2 -2
- package/dist/{chunk-bedkys40.js.map → chunk-y4fp0eg9.js.map} +1 -1
- package/dist/chunk-yhkffean.js +5 -0
- package/dist/{chunk-dhe96f7z.js.map → chunk-yhkffean.js.map} +1 -1
- package/dist/{chunk-qz2p0hv5.js → chunk-yk2mtcwv.js} +2 -2
- package/dist/{chunk-qz2p0hv5.js.map → chunk-yk2mtcwv.js.map} +1 -1
- package/dist/{chunk-zyw42zny.js → chunk-z8jf7jwg.js} +2 -2
- package/dist/{chunk-zyw42zny.js.map → chunk-z8jf7jwg.js.map} +1 -1
- package/dist/chunks/{ThemeProvider-z_MW40tl.js → ThemeProvider-Cqfwr6dk.js} +2 -2
- package/dist/chunks/ThemeProvider-Cqfwr6dk.js.map +1 -0
- package/dist/chunks/useParams-BN3XXfmG.js.map +1 -1
- package/dist/client/I18nContext.d.ts.map +1 -1
- package/dist/client/RouteStateContext.d.ts +3 -0
- package/dist/client/RouteStateContext.d.ts.map +1 -1
- package/dist/client/ServerDataProvider.d.ts +2 -0
- package/dist/client/ServerDataProvider.d.ts.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +118 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/useDictionary.d.ts +5 -0
- package/dist/client/useDictionary.d.ts.map +1 -1
- package/dist/client/useFormatter.d.ts +24 -0
- package/dist/client/useFormatter.d.ts.map +1 -0
- package/dist/client/useRouteData.d.ts +2 -0
- package/dist/client/useRouteData.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 +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/Lang.d.ts +19 -0
- package/dist/facades/Lang.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/i18n/Translator.d.ts +17 -0
- package/dist/i18n/Translator.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +15 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +1 -1
- package/dist/i18n/formatter.d.ts +52 -0
- package/dist/i18n/formatter.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.d.ts.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/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/testing/Page.d.ts +2 -0
- package/dist/testing/Page.d.ts.map +1 -1
- package/dist/testing/index.js +10 -4
- package/dist/testing/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/gemi-react-best-practices/SKILL.md +1 -0
- package/skills/gemi-react-best-practices/rules/i18n-format-with-use-formatter.md +41 -0
- package/dist/chunk-dhe96f7z.js +0 -5
- package/dist/chunk-m3z60v9d.js +0 -5
- package/dist/chunk-m3z60v9d.js.map +0 -11
- package/dist/chunk-safv6h9x.js +0 -5
- package/dist/chunk-safv6h9x.js.map +0 -10
- package/dist/chunk-ykbehyp9.js +0 -17
- package/dist/chunks/ThemeProvider-z_MW40tl.js.map +0 -1
- /package/dist/{chunk-jrp35qrk.js.map → chunk-80t4tfke.js.map} +0 -0
- /package/dist/{chunk-2yyr5tdc.js.map → chunk-aa13sgs2.js.map} +0 -0
- /package/dist/{chunk-3fjkbcra.js.map → chunk-bvsevtpp.js.map} +0 -0
- /package/dist/{chunk-twhf7w1x.js.map → chunk-pjg7gqnh.js.map} +0 -0
|
@@ -68,6 +68,6 @@
|
|
|
68
68
|
"import {\n FeatureFlagSource,\n type FeatureWriteMeta,\n type FeatureWriteResult,\n} from \"./FeatureFlagSource\";\n\n/**\n * Switches from a plain object instead of a database.\n *\n * This is how a test turns a feature on:\n *\n * ```ts\n * defineFeaturesConfig({\n * source: new StaticFeatureFlagSource({ \"new-checkout\": true }),\n * })\n * ```\n *\n * Deliberately **not** a stub that returns canned answers: these rows go through\n * the same store and the same evaluator the database source feeds. A test that\n * pins `\"new-checkout\": true` therefore still exercises the feature's own `when`\n * and `rollout`, which is the part worth testing — pinning the final answer\n * would assert about a code path production never runs.\n *\n * Writable, in memory, so `Features.set()` works against it in a test exactly\n * as it does against the table — including the actor, which it always records.\n * The object passed in is copied, never mutated.\n */\nexport class StaticFeatureFlagSource extends FeatureFlagSource {\n private readonly rows = new Map<string, Record<string, unknown>>();\n\n constructor(active: Record<string, boolean> = {}) {\n super();\n for (const [key, value] of Object.entries(active)) {\n this.rows.set(key, { key, active: value });\n }\n }\n\n async load(): Promise<Record<string, unknown>[]> {\n return [...this.rows.values()].map((row) => ({ ...row }));\n }\n\n async write(key: string, active: boolean, meta: FeatureWriteMeta): Promise<FeatureWriteResult> {\n this.rows.set(key, { key, active, updatedBy: meta.actor, updatedAt: new Date() });\n return { actorRecorded: true };\n }\n}\n"
|
|
69
69
|
],
|
|
70
70
|
"mappings": "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",
|
|
71
|
-
"debugId": "
|
|
71
|
+
"debugId": "9312DE1A08D3DA4664756E2164756E21",
|
|
72
72
|
"names": []
|
|
73
73
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{_b as E,bc as T}from"../../chunk-
|
|
2
|
+
import{_b as E,bc as T}from"../../chunk-z8jf7jwg.js";import"../../chunk-br9p390p.js";import"../../chunk-n4807648.js";import"../../chunk-ghz3e8b7.js";import"../../chunk-3fr22rtg.js";import"../../chunk-48dek9s7.js";import"../../chunk-f6s7ddjz.js";import{Og as I,Pg as J,Sg as O}from"../../chunk-xmjhensy.js";import{Wg as N}from"../../chunk-n63xjrck.js";import"../../chunk-68zf43ah.js";import L from"path";class F extends Error{name="QueueWorkerRefused"}class H{kernel;stopping;keepAlive;settings;constructor(y,z={}){this.kernel=y;this.settings={...J(),...z}}async start(){if(await this.kernel.waitForBoot(),this.stopping)return;let y=this.kernel.app;if(!y.bound(E))throw new F("[gemi] `gemi queue:work` has no queue to claim from: this application does not register QueueServiceProvider.");let z=y.make(E);if(!z.durable)throw new F('[gemi] `gemi queue:work` refuses to start: the queue uses the memory driver, which keeps each job in the process that dispatched it, so a worker never sees one. Set `driver: "database"` (or another driver every process can reach) in app/config/queue.ts, or run jobs in the server and drop the worker.');z.start(),this.keepAlive=setInterval(()=>{},1073741824),console.log(`[gemi] Queue worker started: claiming up to ${z.config.concurrency} job(s) at a time.`)}stop(y={}){return this.stopping??=this.drain({...this.settings,...y}),this.stopping}async drain(y){I();let z=this.kernel.app,A=z.resolved(E)?z.make(E):void 0;if(A)console.log(`[gemi] Shutting down: waiting for ${A.running} running job(s) (up to ${y.timeoutMs/1000}s).`),await A.drain(y.timeoutMs);let B=await this.kernel.shutdown({timeoutMs:y.providerTimeoutMs});clearInterval(this.keepAlive);let C=(A?.running??0)===0&&B.failed.length===0&&B.timedOut.length===0;return console.log(`[gemi] Shutdown ${C?"complete":"finished with errors"}.`),C?0:1}}async function U(){let y=N();process.env.ROOT_DIR=y,process.env.APP_DIR=L.join(y,"app"),T();let z=L.join(y,"app/kernel/Kernel.ts"),{default:A}=await import(z);if(typeof A!=="function")return console.error(`[gemi] ${z} has no default export to boot the worker from.`),1;let B=new A;B.boot();let C=new H(B);O(()=>C.stop());try{await C.start()}catch(G){if(!(G instanceof F))throw G;return console.error(G.message),1}return}U().then((y)=>{if(y!==void 0)process.exit(y)},(y)=>{console.error("[gemi] The queue worker failed to start:",y),process.exit(1)});
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=87EEBBD04D974A4264756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import type { Application, ShutdownReport } from \"../../foundation/Application\";\nimport { markShuttingDown, shutdownSettings, type ShutdownSettings } from \"../../server/shutdown\";\nimport { QueueManager } from \"./QueueManager\";\n\n/** The part of a `Kernel` a worker drives. */\nexport type WorkerKernel = {\n readonly app: Application;\n waitForBoot(): Promise<void>;\n shutdown(options?: { timeoutMs?: number }): Promise<ShutdownReport>;\n};\n\n/**\n * A worker that was told to start in an application it cannot claim for. The\n * message is written for the operator reading the deploy's logs.\n */\nexport class QueueWorkerRefused extends Error {\n name = \"QueueWorkerRefused\";\n}\n\n/**\n * The process `gemi queue:work` runs: the application booted as a server boots\n * it, claiming from the queue, and no `Bun.serve`. It exists so job capacity\n * can be scaled apart from request traffic, which needs a driver both kinds of\n * process can reach; see `start` for why the memory driver is refused.\n *\n * The caller marks the process as a worker (`markQueueWorker`) before the\n * kernel registers, so every claim rule that asks `claimsInThisProcess` sees a\n * process that claims, whatever `GEMI_QUEUE_CLAIM` says.\n */\nexport class QueueWorker {\n private stopping: Promise<number> | undefined;\n private keepAlive: ReturnType<typeof setInterval> | undefined;\n private readonly settings: ShutdownSettings;\n\n /**\n * `settings` default to the `GEMI_SHUTDOWN_*` variables, read here rather\n * than at the signal so a bad value is warned about while the deploy is\n * being watched, as `Server.start` does.\n */\n constructor(\n private readonly kernel: WorkerKernel,\n settings: Partial<ShutdownSettings> = {},\n ) {\n this.settings = { ...shutdownSettings(), ...settings };\n }\n\n /**\n * Boots the application and starts claiming. Rejects with\n * `QueueWorkerRefused` when the application has no queue, or its queue uses\n * the memory driver.\n *\n * Refused rather than warned about, because a memory worker can never do\n * anything: its jobs live in a `Map` in the process that dispatched them,\n * so a worker's is always empty. Left running, it looks like a healthy\n * deploy — a process up, no errors — that runs nothing, and scaling it out\n * adds no capacity. An exit the platform reports as a crash loop is a form\n * of the mistake someone will see.\n */\n async start(): Promise<void> {\n await this.kernel.waitForBoot();\n // A signal during the boot has already drained and cleared the handle\n // below. Going on would start the loop again and arm a handle nothing\n // clears, holding open a worker that has finished shutting down.\n if (this.stopping) return;\n\n const application = this.kernel.app;\n // `bound`, not `make` in a try: an application built without the queue\n // provider is a configuration to name, not an unbound-token stack trace.\n if (!application.bound(QueueManager)) {\n throw new QueueWorkerRefused(\n \"[gemi] `gemi queue:work` has no queue to claim from: this application \" +\n \"does not register QueueServiceProvider.\",\n );\n }\n const queue = application.make(QueueManager);\n if (!queue.durable) {\n throw new QueueWorkerRefused(\n \"[gemi] `gemi queue:work` refuses to start: the queue uses the memory \" +\n \"driver, which keeps each job in the process that dispatched it, so \" +\n 'a worker never sees one. Set `driver: \"database\"` (or another driver ' +\n \"every process can reach) in app/config/queue.ts, or run jobs in the \" +\n \"server and drop the worker.\",\n );\n }\n\n // Idempotent: a production boot with a durable driver has already started\n // it (`startClaimingIfServing`). Development has not, and a worker claims\n // in either.\n queue.start();\n // The queue's poll timer is unref'd, so that a script's queue does not\n // hold it open; here the queue is the process, and without a handle of its\n // own an idle worker would exit 0 as soon as it booted.\n this.keepAlive = setInterval(() => {}, 1 << 30);\n console.log(\n `[gemi] Queue worker started: claiming up to ${queue.config.concurrency} job(s) at a time.`,\n );\n }\n\n /**\n * Stops claiming, waits for the running jobs, runs every provider's\n * `shutdown()`, and resolves with the exit code: 0 when no job was left\n * running and every provider finished in time, 1 otherwise. Idempotent.\n *\n * `gemi start`'s drain, with the jobs where the requests were:\n * `isShuttingDown()` turns true, which stops a durable queue claiming;\n * running jobs get `timeoutMs` (`GEMI_SHUTDOWN_TIMEOUT`), which a server\n * spends on requests; then `Application.shutdown` gets `providerTimeoutMs`,\n * and in it the queue provider waits for whatever is still running and\n * names it. The two budgets add up as they do for a server, so a worker\n * fits the same grace period. `delayMs` is not waited: it is for a load\n * balancer, and nothing routes to a worker.\n */\n stop(settings: Partial<ShutdownSettings> = {}): Promise<number> {\n this.stopping ??= this.drain({ ...this.settings, ...settings });\n return this.stopping;\n }\n\n private async drain(settings: ShutdownSettings): Promise<number> {\n markShuttingDown();\n const application = this.kernel.app;\n // Resolving the manager now would build a driver only to stop it, which\n // is what a signal during the boot, before the provider resolved it, finds.\n const queue = application.resolved(QueueManager) ? application.make(QueueManager) : undefined;\n if (queue) {\n console.log(\n `[gemi] Shutting down: waiting for ${queue.running} running job(s) ` +\n `(up to ${settings.timeoutMs / 1000}s).`,\n );\n await queue.drain(settings.timeoutMs);\n }\n\n const report = await this.kernel.shutdown({ timeoutMs: settings.providerTimeoutMs });\n clearInterval(this.keepAlive);\n const clean =\n (queue?.running ?? 0) === 0 && report.failed.length === 0 && report.timedOut.length === 0;\n console.log(`[gemi] Shutdown ${clean ? \"complete\" : \"finished with errors\"}.`);\n return clean ? 0 : 1;\n }\n}\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": ";iZAYA,kBCGO,IAAM,QAA2B,GAAM,DAC5C,GAAO,kBACT,DAYO,IAAM,CAAY,CAWJ,OAVX,SACA,UACS,SAOjB,WAAW,CACQ,EACjB,EAAsC,CAAC,EACvC,CAFiB,cAGjB,KAAK,SAAW,IAAK,EAAiB,KAAM,CAAS,OAejD,MAAK,EAAkB,CAK3B,GAJA,MAAM,KAAK,OAAO,YAAY,EAI1B,KAAK,SAAU,OAEnB,IAAM,EAAc,KAAK,OAAO,IAGhC,GAAI,CAAC,EAAY,MAAM,CAAY,EACjC,MAAM,IAAI,EACR,+GAEF,EAEF,IAAM,EAAQ,EAAY,KAAK,CAAY,EAC3C,GAAI,CAAC,EAAM,QACT,MAAM,IAAI,EACR,8SAKF,EAMF,EAAM,MAAM,EAIZ,KAAK,UAAY,YAAY,IAAM,GAAI,UAAO,EAC9C,QAAQ,IACN,+CAA+C,EAAM,OAAO,+BAC9D,EAiBF,IAAI,CAAC,EAAsC,CAAC,EAAoB,CAE9D,OADA,KAAK,WAAa,KAAK,MAAM,IAAK,KAAK,YAAa,CAAS,CAAC,EACvD,KAAK,cAGA,MAAK,CAAC,EAA6C,CAC/D,EAAiB,EACjB,IAAM,EAAc,KAAK,OAAO,IAG1B,EAAQ,EAAY,SAAS,CAAY,EAAI,EAAY,KAAK,CAAY,EAAI,OACpF,GAAI,EACF,QAAQ,IACN,qCAAqC,EAAM,iCAC/B,EAAS,UAAY,SACnC,EACA,MAAM,EAAM,MAAM,EAAS,SAAS,EAGtC,IAAM,EAAS,MAAM,KAAK,OAAO,SAAS,CAAE,UAAW,EAAS,iBAAkB,CAAC,EACnF,cAAc,KAAK,SAAS,EAC5B,IAAM,GACH,GAAO,SAAW,KAAO,GAAK,EAAO,OAAO,SAAW,GAAK,EAAO,SAAS,SAAW,EAE1F,OADA,QAAQ,IAAI,mBAAmB,EAAQ,WAAa,yBAAyB,EACtE,EAAQ,EAAI,EAEvB,CDvHA,eAAe,CAAI,EAAgC,CACjD,IAAM,EAAU,EAAY,EAI5B,QAAQ,IAAI,SAAW,EACvB,QAAQ,IAAI,QAAU,EAAK,KAAK,EAAS,KAAK,EAE9C,EAAgB,EAEhB,IAAM,EAAa,EAAK,KAAK,EAAS,sBAAsB,GACpD,QAAS,GAAY,MAAa,UAG1C,GAAI,OAAO,IAAW,WAEpB,OADA,QAAQ,MAAM,UAAU,kDAA2D,EAC5E,EAET,IAAM,EAAS,IAAI,EACnB,EAAO,KAAK,EAEZ,IAAM,EAAS,IAAI,EAAY,CAAM,EAKrC,EAAuB,IAAM,EAAO,KAAK,CAAC,EAE1C,GAAI,CACF,MAAM,EAAO,MAAM,EACnB,MAAO,EAAO,CACd,GAAI,EAAE,aAAiB,GAAqB,MAAM,EAElD,OADA,QAAQ,MAAM,EAAM,OAAO,EACpB,EAGT,OAGF,EAAK,EAAE,KACL,CAAC,IAAS,CACR,GAAI,IAAS,OAAW,QAAQ,KAAK,CAAI,GAE3C,CAAC,IAAU,CACT,QAAQ,MAAM,2CAA4C,CAAK,EAC/D,QAAQ,KAAK,CAAC,EAElB",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "87EEBBD04D974A4264756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewRouteDispatcher.d.ts","sourceRoot":"","sources":["../../../services/router/ViewRouteDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAmC,MAAM,2BAA2B,CAAC;AAEjG,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+HxD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,QAY9D;AAaD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAM1D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAM7D;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,KAAK,SAAiB;IAE7B,cAAc,EAAE,cAAc,CAAM;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAC7C,0FAA0F;IAC1F,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IACnD,aAAa,EAAE,aAAa,CAAM;IAClC,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,IAAI,EAAE,GAAG,CAAQ;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY,CAGhB;IAEJ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;IAEF,8CAA8C;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;gBAEvB,MAAM,EAAE,eAAe;IA2BnC;;;;;;OAMG;YACW,kBAAkB;IAQ1B,YAAY,CAAC,GAAG,EAAE,WAAW;IAUnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAatB,0BAA0B;IAC1B,OAAO,CAAC,kBAAkB;YA0CZ,MAAM;IAiad,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,gCArU7C;QACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,aAAa,EAAE,GAAG,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC;;;;;;;;;;;WAWG;QACH,WAAW,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QACpD;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;
|
|
1
|
+
{"version":3,"file":"ViewRouteDispatcher.d.ts","sourceRoot":"","sources":["../../../services/router/ViewRouteDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAmC,MAAM,2BAA2B,CAAC;AAEjG,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+HxD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,QAY9D;AAaD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAM1D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAM7D;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,KAAK,SAAiB;IAE7B,cAAc,EAAE,cAAc,CAAM;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAC7C,0FAA0F;IAC1F,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IACnD,aAAa,EAAE,aAAa,CAAM;IAClC,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,IAAI,EAAE,GAAG,CAAQ;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY,CAGhB;IAEJ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;IAEF,8CAA8C;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;gBAEvB,MAAM,EAAE,eAAe;IA2BnC;;;;;;OAMG;YACW,kBAAkB;IAQ1B,YAAY,CAAC,GAAG,EAAE,WAAW;IAUnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAatB,0BAA0B;IAC1B,OAAO,CAAC,kBAAkB;YA0CZ,MAAM;IAiad,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,gCArU7C;QACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,aAAa,EAAE,GAAG,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC;;;;;;;;;;;WAWG;QACH,WAAW,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QACpD;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CA6yBJ"}
|
package/dist/support/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{fc as Y}from"../chunk-7kedxtbp.js";import{vg as M}from"../chunk-3fr22rtg.js";import{
|
|
2
|
+
import{fc as Y}from"../chunk-7kedxtbp.js";import{vg as M}from"../chunk-3fr22rtg.js";import{Ig as P,Kg as R}from"../chunk-48dek9s7.js";import"../chunk-f6s7ddjz.js";import{Tg as Q,Ug as U,Vg as V,Wg as W}from"../chunk-n63xjrck.js";import"../chunk-68zf43ah.js";class S{static token;async boot(){}static inject(){if(!this.token)throw Error(`Service [${this.name}] does not declare a \`static token\`, so the container has no key to resolve it by.`);try{return R(this)}catch(x){throw Error(`Could not inject [${this.name}]. Services are constructed when the kernel boots, so `+"inject() only works from code that runs after that \u2014 a constructor default or a method "+`body, never module top level. Check that [${this.name}] is listed in \`services\` on your Kernel.`,{cause:x})}}static with(x){let f=new this;for(let[C,g]of Object.entries(x))if(g!==void 0)f[C]=g;return f}}import{readdir as z}from"fs/promises";import{join as B,parse as j}from"path";var H=[".ts",".tsx",".js",".mjs",".jsx"];function J(x={}){let f={};for(let[C,g]of Object.entries(x))f[C]=q(g);return new P(f)}async function L(x,f=new P){let C=[];try{C=await z(x)}catch(D){return f}let g=C.filter((D)=>{let{ext:v,name:F}=j(D);return H.includes(v)&&!F.startsWith(".")}).sort();for(let D of g){let{name:v}=j(D),F=await import(B(x,D));f.set(v,q(F))}return f}function q(x){if(x&&typeof x==="object"&&"default"in x)return x.default;return x}export{M as withDefaults,Q as sourceFiles,W as projectRoot,L as loadConfigFrom,V as discoverClasses,J as createConfigRepository,Y as ServiceProvider,S as Service,P as Repository,U as DiscoveryError};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=58E713F3E54FE51864756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import { readdir } from \"node:fs/promises\";\nimport { join, parse } from \"node:path\";\n\nimport { Repository } from \"./Repository\";\n\nconst CONFIG_EXTENSIONS = [\".ts\", \".tsx\", \".js\", \".mjs\", \".jsx\"];\n\n// Builds a Repository from an already-imported map of config modules. The map\n// key becomes the top-level config key, so `{ mail: mailModule }` is readable\n// as `config.get(\"mail.driver\")`. Each entry may be either the module namespace\n// (its `default` export is unwrapped) or the config object itself.\nexport function createConfigRepository(\n modules: Record<string, any> = {},\n): Repository {\n const items: Record<string, any> = {};\n\n for (const [key, mod] of Object.entries(modules)) {\n items[key] = unwrap(mod);\n }\n\n return new Repository(items);\n}\n\n// Reads every config module in an app's `app/config` directory into a\n// Repository. The file's basename is the top-level key: `app/config/mail.ts`\n// populates `mail.*`. A missing directory yields an empty Repository so apps\n// that declare no config still boot.\nexport async function loadConfigFrom(\n directory: string,\n repository = new Repository(),\n): Promise<Repository> {\n let entries: string[] = [];\n\n try {\n entries = await readdir(directory);\n } catch (err) {\n return repository;\n }\n\n const files = entries\n .filter((entry) => {\n const { ext, name } = parse(entry);\n return CONFIG_EXTENSIONS.includes(ext) && !name.startsWith(\".\");\n })\n .sort();\n\n for (const file of files) {\n const { name } = parse(file);\n const mod = await import(join(directory, file));\n repository.set(name, unwrap(mod));\n }\n\n return repository;\n}\n\nfunction unwrap(mod: any) {\n if (mod && typeof mod === \"object\" && \"default\" in mod) {\n return mod.default;\n }\n return mod;\n}\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": ";2RAgCO,CAAe,JAAQ,EAOrB,OAMD,AAAI,EAAkB,QAmBrB,OAAS,EAKX,CACH,GAAI,CAAC,KAAK,MACR,MAAU,MACR,YAAY,KAAK,0FACnB,EAGF,GAAI,CACF,OAAO,EAAI,IAAuB,EAClC,MAAO,EAAO,CACd,MAAU,MACR,qBAAqB,KAAK,6DACxB,+FACA,6CAA6C,KAAK,kDAEpD,CAAE,OAAM,CACV,SAoBG,KAAuB,CAAoB,EAA0B,CAC1E,IAAM,EAAW,IAAI,KACrB,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAS,EACjD,GAAI,IAAU,OAAW,EAAS,GAAO,EAE3C,OAAO,EAEX,CChHA,kBAAS,oBACT,eAAS,WAAM,aAIf,IAAM,EAAoB,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAM,EAMxD,SAAS,CAAsB,CACpC,EAA+B,CAAC,EACpB,CACZ,IAAM,EAA6B,CAAC,EAEpC,QAAY,EAAK,KAAQ,OAAO,QAAQ,CAAO,EAC7C,EAAM,GAAO,EAAO,CAAG,EAGzB,OAAO,IAAI,EAAW,CAAK,EAO7B,eAAsB,CAAc,CAClC,EACA,EAAa,IAAI,EACI,CACrB,IAAI,EAAoB,CAAC,EAEzB,GAAI,CACF,EAAU,MAAM,EAAQ,CAAS,EACjC,MAAO,EAAK,CACZ,OAAO,EAGT,IAAM,EAAQ,EACX,OAAO,CAAC,IAAU,CACjB,IAAQ,MAAK,QAAS,EAAM,CAAK,EACjC,OAAO,EAAkB,SAAS,CAAG,GAAK,CAAC,EAAK,WAAW,GAAG,EAC/D,EACA,KAAK,EAER,QAAW,KAAQ,EAAO,CACxB,IAAQ,QAAS,EAAM,CAAI,EACrB,EAAM,MAAa,SAAK,EAAW,CAAI,GAC7C,EAAW,IAAI,EAAM,EAAO,CAAG,CAAC,EAGlC,OAAO,EAGT,SAAS,CAAM,CAAC,EAAU,CACxB,GAAI,GAAO,OAAO,IAAQ,UAAY,YAAa,EACjD,OAAO,EAAI,QAEb,OAAO",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "58E713F3E54FE51864756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/testing/Page.d.ts
CHANGED
|
@@ -42,6 +42,8 @@ export interface PageProps {
|
|
|
42
42
|
*/
|
|
43
43
|
defaultLocale?: string;
|
|
44
44
|
supportedLocales?: string[];
|
|
45
|
+
/** The zone `useFormatter` formats dates in. Defaults to `UTC`, like an app with no `translation.timeZone`. */
|
|
46
|
+
timeZone?: string;
|
|
45
47
|
/**
|
|
46
48
|
* Dictionaries the components under test translate against — the app's own,
|
|
47
49
|
* or literals of the same shape.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../testing/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAYvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,kEAAkE;IAClE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,iDAAiD;IACjD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC;IACT;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACjE;AA6ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../testing/Page.tsx"],"names":[],"mappings":"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"}
|
package/dist/testing/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as QueryManagerProvider, D as I18nProvider, F as createMemoryHistory, I as toVariantKey, J as Subject, L as applyParams, N as ProgressManager, O as ServerDataContext, P as Action, i as RouteTransitionProvider, o as ClientRouterContext, r as m, t as ThemeProvider, z as QueryManagerContext } from "../chunks/ThemeProvider-
|
|
1
|
+
import { B as QueryManagerProvider, D as I18nProvider, F as createMemoryHistory, I as toVariantKey, J as Subject, L as applyParams, N as ProgressManager, O as ServerDataContext, P as Action, i as RouteTransitionProvider, o as ClientRouterContext, r as m, t as ThemeProvider, z as QueryManagerContext } from "../chunks/ThemeProvider-Cqfwr6dk.js";
|
|
2
2
|
import { r as RouteStateProvider } from "../chunks/useParams-BN3XXfmG.js";
|
|
3
3
|
import { Suspense, useContext, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -130,7 +130,7 @@ function toClientDictionary(dictionaries, locales, locale, translations) {
|
|
|
130
130
|
* `Query.prefetch` does, framework warning included.
|
|
131
131
|
*/
|
|
132
132
|
var Page = (props) => {
|
|
133
|
-
const { children, pathname: routePath = "/", params = {}, searchParams, hash = "", locale = "en-US", defaultLocale = locale, dictionaries = [], translations = {}, queryData = {}, queryConfig, user = null, breadcrumbs = [], domain = null, features = {}, theme, fallback = null, errorFallback, onNavigate } = props;
|
|
133
|
+
const { children, pathname: routePath = "/", params = {}, searchParams, hash = "", locale = "en-US", defaultLocale = locale, timeZone = "UTC", dictionaries = [], translations = {}, queryData = {}, queryConfig, user = null, breadcrumbs = [], domain = null, features = {}, theme, fallback = null, errorFallback, onNavigate } = props;
|
|
134
134
|
const supportedLocales = useMemo(() => Array.from(/* @__PURE__ */ new Set([
|
|
135
135
|
...props.supportedLocales ?? [],
|
|
136
136
|
defaultLocale,
|
|
@@ -197,7 +197,9 @@ var Page = (props) => {
|
|
|
197
197
|
i18n: {
|
|
198
198
|
currentLocale: locale,
|
|
199
199
|
dictionary,
|
|
200
|
-
supportedLocales
|
|
200
|
+
supportedLocales,
|
|
201
|
+
defaultLocale,
|
|
202
|
+
timeZone
|
|
201
203
|
},
|
|
202
204
|
prefetchedData,
|
|
203
205
|
breadcrumbs: breadcrumbsRecord,
|
|
@@ -213,6 +215,8 @@ var Page = (props) => {
|
|
|
213
215
|
locale,
|
|
214
216
|
dictionary,
|
|
215
217
|
supportedLocales,
|
|
218
|
+
defaultLocale,
|
|
219
|
+
timeZone,
|
|
216
220
|
prefetchedData,
|
|
217
221
|
breadcrumbsRecord,
|
|
218
222
|
features
|
|
@@ -246,7 +250,8 @@ var Page = (props) => {
|
|
|
246
250
|
dictionary,
|
|
247
251
|
currentLocale: locale,
|
|
248
252
|
supportedLocales,
|
|
249
|
-
defaultLocale
|
|
253
|
+
defaultLocale,
|
|
254
|
+
timeZone
|
|
250
255
|
},
|
|
251
256
|
componentTree: [],
|
|
252
257
|
auth: { user },
|
|
@@ -268,6 +273,7 @@ var Page = (props) => {
|
|
|
268
273
|
locale,
|
|
269
274
|
supportedLocales,
|
|
270
275
|
defaultLocale,
|
|
276
|
+
timeZone,
|
|
271
277
|
user,
|
|
272
278
|
features
|
|
273
279
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../testing/Page.tsx"],"sourcesContent":["import {\n Suspense,\n useContext,\n useMemo,\n useRef,\n useState,\n type ComponentType,\n type PropsWithChildren,\n type ReactNode,\n} from \"react\";\nimport { ErrorBoundary, type FallbackProps } from \"react-error-boundary\";\nimport { Action, createMemoryHistory } from \"history\";\n\nimport type { User } from \"../auth/types\";\nimport { ClientRouterContext } from \"../client/ClientRouterContext\";\nimport { I18nProvider } from \"../client/I18nContext\";\nimport { ProgressManager } from \"../client/ProgressManager\";\nimport {\n QueryManagerContext,\n QueryManagerProvider,\n type QueryConfig,\n} from \"../client/QueryManagerContext\";\nimport {\n RouteStateProvider,\n type PageData,\n type RouteState,\n} from \"../client/RouteStateContext\";\nimport { RouteTransitionProvider } from \"../client/RouteTransitionProvider\";\nimport {\n ServerDataContext,\n type ServerDataContextValue,\n} from \"../client/ServerDataProvider\";\nimport { ThemeProvider } from \"../client/ThemeProvider\";\nimport type { ClientFeatureKey } from \"../client/rpc\";\nimport type { Breadcrumb } from \"../client/useBreadcrumbs\";\nimport { applyParams } from \"../utils/applyParams\";\nimport { Subject } from \"../utils/Subject\";\nimport { toVariantKey } from \"../utils/variantKey\";\n\n/**\n * A dictionary as `Dictionary.create` produces it: a name and a\n * `{ key: { locale: string } }` map.\n *\n * Typed structurally rather than as `Dictionary<T>` for two reasons. It keeps\n * `gemi/testing` from importing `gemi/i18n` — a server entry, which reaches the\n * `Lang` facade and through it the container. And it means an object literal of\n * the same shape is accepted, so a test never *has* to import the app's\n * dictionaries at all.\n *\n * Only `name` and `dictionary` are read — both plain data. `Dictionary`'s\n * server-only methods (`render`, `reference`, which throw once `window` is\n * defined) are never called from here.\n */\nexport interface PageDictionary {\n name: string;\n dictionary: Record<string, Record<string, string>>;\n}\n\nexport interface PageProps {\n /**\n * The URL the view is mounted at. A template (`/app/:orgId/chat`) is resolved\n * against `params`, so the same string can be pasted from the router.\n */\n pathname?: string;\n /** Route params, as the router would have parsed them out of `pathname`. */\n params?: Record<string, string>;\n /** `\"?tab=recent\"`, `\"tab=recent\"`, or `{ tab: \"recent\" }`. */\n searchParams?: string | Record<string, string | number | boolean>;\n hash?: string;\n /** The locale `useTranslator` and `useLocale` report. */\n locale?: string;\n /**\n * The app's default locale. Links and `useNavigate` omit the locale segment\n * for it, so leaving this equal to `locale` (the default) keeps hrefs\n * unprefixed — set it to seed a page being viewed in a non-default locale.\n */\n defaultLocale?: string;\n supportedLocales?: string[];\n /**\n * Dictionaries the components under test translate against — the app's own,\n * or literals of the same shape.\n *\n * Note what importing the app's costs: `app/i18n/index.ts` imports\n * `gemi/i18n`, a server entry, so the test file pulls the container and\n * `node:async_hooks` into its module graph. Nothing there runs (and nothing\n * here calls it), so it is fine under any runner that has Node builtins —\n * vitest, `bun test` — and not under one that renders in a real browser. Use\n * `translations` there, which is the shape the client actually receives.\n */\n dictionaries?: PageDictionary[];\n /**\n * Translations for the current locale, already resolved: dictionary name →\n * key → string. This is the shape the server serializes onto the page, so it\n * is what the client reads at runtime — and it imports nothing.\n *\n * ```tsx\n * <Page translations={{ Chat: { greeting: \"Hello {{name}}\" } }}>\n * ```\n *\n * Merged over `dictionaries`, so the two compose: seed from the app's real\n * dictionary and override the one key a test is about.\n */\n translations?: Record<string, Record<string, string>>;\n /**\n * Data `useQuery` finds already cached, keyed by API path — the path passed\n * to `useQuery`, without the `/api` prefix the client adds when it fetches.\n * A key may carry a query string (`\"/lists?page=2\"`) to seed one search\n * variant.\n *\n * The cache is keyed by the *resolved* path, so a key's `:params` are\n * resolved against the page's `params` — and a key naming one the page does\n * not carry is an error, naming the key. That case is common enough to be\n * worth the loud failure: a query often takes its params from the call site\n * rather than the route (`useQuery(\"/orgs/:orgId/lists\", { params: { orgId } })`\n * with `orgId` in component state), and the right seed for it is the resolved\n * path, `\"/orgs/abc/lists\"`.\n *\n * Seeded at mount only: a component that mutates or refetches its data owns\n * the cache from then on.\n */\n queryData?: Record<string, unknown>;\n /** App-wide `useQuery` defaults, as `createRoot` threads them. */\n queryConfig?: QueryConfig;\n /**\n * What `useUser()` reports. Defaults to `null` — an anonymous visitor — and\n * either way the hook resolves from here without issuing a request.\n */\n user?: Partial<User> | null;\n /** What `useBreadcrumbs()` returns, in order. */\n breadcrumbs?: Breadcrumb[];\n /**\n * The `route.domains` group the page is served under, as `useDomain()`\n * reports it. Left out, `useDomain()` reads empty — the shape an app without\n * `route.domains` sees — and `useDomain().url()` throws, exactly as it does\n * there.\n *\n * `root` and `origin` default off the host, so the common case is one field:\n * `domain={{ host: \"acme.example.com\", params: { tenant: \"acme\" } }}`.\n */\n domain?: {\n host: string;\n group?: string;\n params?: Record<string, string>;\n custom?: boolean;\n root?: string;\n origin?: string;\n } | null;\n /**\n * What `useFeature()` reports, keyed by feature key. Anything left out reads\n * as off, exactly as an undeclared key does in a real request.\n *\n * A test seeds the *outcome*, not the declaration: `app/features` owns the\n * targeting and the rollout, and re-deriving those here would mean building a\n * request context — a user, a `session_id`, a bot verdict — to assert a\n * branch that only cares which way the feature came out. Cover the targeting\n * where it lives, with a server test.\n */\n features?: Partial<Record<ClientFeatureKey, boolean>>;\n /**\n * The theme `useTheme()` starts on. The app reads a visitor's stored choice\n * out of `localStorage`; a test has no session to have made one in, so this\n * seeds it without writing to storage. `setTheme` works from either.\n */\n theme?: \"light\" | \"dark\" | \"system\";\n /**\n * Fallback for the `Suspense` boundary wrapped around the children — the\n * stand-in for the view's own `Loading` export, which the real router\n * supplies. Defaults to `null`.\n */\n fallback?: ReactNode;\n /**\n * Renders in place of the children when one throws, mirroring a view's\n * `Error` export. Without it a thrown render (an errored suspense query,\n * say) propagates out of `render()` and fails the test, which is usually\n * what you want.\n */\n errorFallback?: ComponentType<FallbackProps>;\n /**\n * Called when something navigates — a `Link` click, `useNavigate().push`.\n * The navigation is reported, not performed: `<Page>` renders one route and\n * does not re-resolve the tree, so `useLocation()` keeps reporting the\n * pathname it was given.\n */\n onNavigate?: (href: string, action: \"push\" | \"replace\") => void;\n}\n\n/** `\"?a=b\"` (or `\"\"`) from any of the shapes `searchParams` accepts. */\nfunction toSearchString(search: PageProps[\"searchParams\"]): string {\n if (!search) return \"\";\n const query =\n typeof search === \"string\"\n ? search.replace(/^\\?/, \"\")\n : new URLSearchParams(\n Object.entries(search).map(([key, value]) => [key, String(value)]),\n ).toString();\n return query ? `?${query}` : \"\";\n}\n\n/**\n * The `:params` a seed key needs supplied. Wildcards (`:rest*`) are excluded —\n * `applyParams` drops those when missing, which is a resolution rather than a\n * failure.\n *\n * Optional params (`:id?`) cannot reach here at all: a key is split at its\n * first `?` to separate the search string, so `\"/lists/:folderId?\"` arrives as\n * the path `/lists/:folderId`. Seed the resolved path for those.\n */\nfunction requiredParamsOf(path: string): string[] {\n return Array.from(path.matchAll(/:([^/]+)/g), ([, name]) => name).filter(\n (name) => !name.endsWith(\"*\"),\n );\n}\n\n/**\n * Fails a `queryData` key whose `:params` the page does not carry, saying so\n * in terms of the key.\n *\n * Without this the two documented runners disagree, and neither is legible.\n * `applyParams` throws `Missing parameter: orgId` under `import.meta.env.DEV`\n * (vitest) — a router-utility stack trace out of `<Page>`'s render, before\n * anything mounts, naming nothing that appears in the test. Under `bun test`\n * that flag is falsy, so it logs and seeds the literal `/orgs/undefined/lists`\n * instead: the seed misses, the query goes to the network, and the assertion\n * runs against a loading state.\n *\n * The case is common because a query's params often come from the call site\n * rather than the route — `useQuery(\"/orgs/:orgId/lists\", { params: { orgId } })`\n * with `orgId` in component state. The cache is keyed by the *resolved* path,\n * so the way out is to seed that path directly.\n */\nfunction resolveSeedPath(\n key: string,\n rawPath: string,\n params: Record<string, string>,\n): string {\n const missing = requiredParamsOf(rawPath).filter(\n (name) => params[name] === undefined,\n );\n if (missing.length > 0) {\n throw new Error(\n `[gemi] <Page> cannot resolve the queryData key \"${key}\": no value for ` +\n `${missing.map((name) => `:${name}`).join(\", \")}. The query cache is ` +\n `keyed by the resolved path, so either add ${missing\n .map((name) => `\\`${name}\\``)\n .join(\", \")} to the page's \\`params\\`, or seed the resolved path ` +\n `(e.g. \"${applyParams(\n rawPath,\n Object.fromEntries(missing.map((name) => [name, \"123\"])),\n )}\") — which is what a query taking its params from component state ` +\n `reads under.`,\n );\n }\n return applyParams(rawPath, params);\n}\n\n/**\n * `queryData` in the shape the query cache seeds from: `{ [path]: { [variant]:\n * data } }`, the same payload `Query.prefetch` puts on a server-rendered page.\n */\nfunction toPrefetchedData(\n queryData: Record<string, unknown>,\n params: Record<string, string>,\n warned: Set<string>,\n) {\n const prefetchedData: Record<string, Record<string, unknown>> = {};\n for (const [key, data] of Object.entries(queryData)) {\n const [rawPath, rawSearch = \"\"] = key.split(\"?\");\n // Once per key per page, not once per render: this runs again on every\n // re-render, and a duplicated warning reads as a second mistake.\n if (rawPath.startsWith(\"/api/\") && !warned.has(key)) {\n warned.add(key);\n console.warn(\n `[gemi] queryData key \"${key}\" starts with /api. useQuery is keyed by ` +\n `the path you pass it — the /api prefix is added when it fetches — ` +\n `so this entry seeds a path no query reads.`,\n );\n }\n const path = resolveSeedPath(key, rawPath, params);\n prefetchedData[path] = {\n ...prefetchedData[path],\n [toVariantKey(rawSearch)]: data,\n };\n }\n return prefetchedData;\n}\n\n/**\n * `{ [locale]: { [dictionary]: { [key]: string } } }` — the payload\n * `Translator` serializes onto the page, which is the only form the client\n * ever sees. `dictionaries` are transposed into it (they are keyed the other\n * way round, by key then locale); `translations` is already in it and lands\n * under `locale`, last, so it wins.\n */\nfunction toClientDictionary(\n dictionaries: PageDictionary[],\n locales: string[],\n locale: string,\n translations: Record<string, Record<string, string>>,\n): Record<string, Record<string, Record<string, string>>> {\n const clientDictionary: Record<\n string,\n Record<string, Record<string, string>>\n > = {};\n for (const supported of locales) {\n clientDictionary[supported] ??= {};\n }\n for (const { name, dictionary } of dictionaries) {\n for (const [key, byLocale] of Object.entries(dictionary ?? {})) {\n for (const [dictLocale, translation] of Object.entries(byLocale ?? {})) {\n clientDictionary[dictLocale] ??= {};\n clientDictionary[dictLocale][name] ??= {};\n clientDictionary[dictLocale][name][key] = translation;\n }\n }\n }\n for (const [name, keys] of Object.entries(translations)) {\n clientDictionary[locale] ??= {};\n clientDictionary[locale][name] = {\n ...clientDictionary[locale][name],\n ...keys,\n };\n }\n return clientDictionary;\n}\n\n/**\n * Mounts a component with the inputs a view normally arrives with — route\n * params, the current locale and its dictionaries, prefetched query data, the\n * signed-in user — so a unit test can assert what it renders rather than only\n * its empty state.\n *\n * ```tsx\n * import { render, screen } from \"@testing-library/react\";\n * import { Page } from \"gemi/testing\";\n *\n * render(\n * <Page\n * pathname=\"/app/:orgId/chat\"\n * params={{ orgId: \"abc\" }}\n * queryData={{ \"/organizations/:orgId/messages\": [{ id: 1, body: \"hi\" }] }}\n * dictionaries={[ChatDictionary]}\n * >\n * <OrgChat />\n * </Page>,\n * );\n *\n * expect(screen.getByText(\"hi\")).toBeDefined();\n * ```\n *\n * It is a plain component, so it composes with any renderer — Testing\n * Library's `render`, `react-test-renderer`, or `renderToString`.\n *\n * Two things it does not do.\n *\n * It does not route: there is no view tree and no route manifest behind it, so\n * a navigation is reported through `onNavigate` rather than resolved. To\n * assert the page *after* one, render a second `<Page>`.\n *\n * And under `renderToString` it renders the server's own no-data branch for an\n * *unseeded* query rather than suspending — deliberately, because suspending\n * there is the streaming server's job: `createRoot` threads the request's\n * `ServerQueryStore` through `ServerQueryContext`, and that store is what runs\n * the route handler. A harness has no request and no handler to run, so there\n * is nothing to suspend on. Seeded queries render their data on the server\n * exactly as they do in the browser; unseeded ones behave as a route with no\n * `Query.prefetch` does, framework warning included.\n */\nexport const Page = (props: PropsWithChildren<PageProps>) => {\n const {\n children,\n pathname: routePath = \"/\",\n params = {},\n searchParams,\n hash = \"\",\n locale = \"en-US\",\n defaultLocale = locale,\n dictionaries = [],\n translations = {},\n queryData = {},\n queryConfig,\n user = null,\n breadcrumbs = [],\n domain = null,\n features = {},\n theme,\n fallback = null,\n errorFallback,\n onNavigate,\n } = props;\n\n // The caller's list, in the caller's order — a language switcher maps over\n // it, so hoisting the page's own locale to the front would reorder the\n // rendered options. The defaults are appended, only to guarantee presence.\n const supportedLocales = useMemo(\n () =>\n Array.from(\n new Set([...(props.supportedLocales ?? []), defaultLocale, locale]),\n ),\n [props.supportedLocales, defaultLocale, locale],\n );\n const pathname = applyParams(routePath, params) || \"/\";\n // `root` defaults to the host minus its first label, so a tenant subdomain\n // needs only its host; `origin` to https on that host. Either can be given\n // outright when the test is about the other.\n const domainValue = useMemo(() => {\n if (!domain) {\n return null;\n }\n const labels = domain.host.split(\".\");\n return {\n host: domain.host,\n group: domain.group ?? \"\",\n params: domain.params ?? {},\n custom: domain.custom ?? false,\n root:\n domain.root ?? (labels.length > 2 ? labels.slice(1).join(\".\") : domain.host),\n origin: domain.origin ?? `https://${domain.host}`,\n };\n }, [domain]);\n const search = toSearchString(searchParams);\n // The URL's locale segment, which the default locale does not get.\n const urlLocaleSegment = locale === defaultLocale ? null : locale;\n\n const dictionary = useMemo(\n () =>\n toClientDictionary(dictionaries, supportedLocales, locale, translations),\n [dictionaries, supportedLocales, locale, translations],\n );\n\n // Keys that have already drawn a warning, so a re-render does not repeat it.\n const warnedRef = useRef<Set<string>>(new Set());\n const prefetchedData = useMemo(() => {\n const seeded = toPrefetchedData(queryData, params, warnedRef.current);\n // `useUser` reads `/auth/me` like any other query. Seeding it — with `null`\n // for the anonymous default — is what keeps a component test off the\n // network for a hook nothing in the test asked for.\n seeded[\"/auth/me\"] ??= { \"\": user ?? null };\n return seeded;\n }, [queryData, params, user]);\n\n // Keyed by `${view}:${pathname}` in the router's cache; the view names are\n // ours to choose here, and only their order reaches `useBreadcrumbs`.\n const { breadcrumbViews, breadcrumbsCache, breadcrumbsRecord } =\n useMemo(() => {\n const views = breadcrumbs.map((_, index) => `breadcrumb-${index}`);\n const cache = new Map<string, Breadcrumb>(\n breadcrumbs.map((breadcrumb, index) => [\n `${views[index]}:${pathname}`,\n breadcrumb,\n ]),\n );\n return {\n breadcrumbViews: views,\n breadcrumbsCache: cache,\n breadcrumbsRecord: Object.fromEntries(cache),\n };\n }, [breadcrumbs, pathname]);\n\n const [isNavigatingSubject] = useState(() => new Subject<boolean>(false));\n const [progressManager] = useState(\n () => new ProgressManager(isNavigatingSubject),\n );\n const [history] = useState(() =>\n createMemoryHistory({ initialEntries: [`${pathname}${search}${hash}`] }),\n );\n\n const routeState: RouteState & PageData = useMemo(\n () => ({\n views: [],\n params,\n search,\n state: {},\n pathname,\n hash,\n action: null,\n routePath,\n locale: urlLocaleSegment,\n data: {},\n i18n: { currentLocale: locale, dictionary, supportedLocales },\n prefetchedData,\n breadcrumbs: breadcrumbsRecord,\n features: features as Record<string, boolean>,\n appId: \"test\",\n }),\n [\n params,\n search,\n pathname,\n hash,\n routePath,\n urlLocaleSegment,\n locale,\n dictionary,\n supportedLocales,\n prefetchedData,\n breadcrumbsRecord,\n features,\n ],\n );\n\n const [routerSubject] = useState(() => new Subject<RouteState>(routeState));\n\n const onNavigateRef = useRef(onNavigate);\n onNavigateRef.current = onNavigate;\n // Subscribed during render, not in an effect, because React flushes child\n // effects before parent ones — and mount-time navigation is a real pattern:\n // `<Redirect>` pushes from its own mount effect, as does any auth guard. A\n // listener registered in `<Page>`'s effect is not there yet when those fire,\n // so `onNavigate` would silently miss exactly the redirects a test most\n // wants to assert. Ref-guarded, so React's double-invoke registers one.\n //\n // Nothing unsubscribes: this history is created per `<Page>` and reachable\n // from nowhere else, so it is collected with the page it belongs to.\n const listeningRef = useRef(false);\n if (!listeningRef.current) {\n listeningRef.current = true;\n history.listen(({ location, action }) => {\n const href = `${location.pathname}${location.search}${location.hash}`;\n onNavigateRef.current?.(\n href,\n action === Action.Replace ? \"replace\" : \"push\",\n );\n });\n }\n\n const serverData: ServerDataContextValue = useMemo(\n () => ({\n routeManifest: {},\n pageData: {},\n breadcrumbs: breadcrumbsRecord,\n prefetchedData,\n router: {\n pathname,\n params,\n currentPath: routePath,\n is404: false,\n searchParams: search,\n urlLocaleSegment,\n domain: domainValue,\n },\n i18n: {\n dictionary,\n currentLocale: locale,\n supportedLocales,\n defaultLocale,\n },\n componentTree: [],\n auth: { user: user as User },\n features: features as Record<string, boolean>,\n __csrf: \"test-csrf-token\",\n cssManifest: {},\n modulePreloadManifest: {},\n meta: {},\n appId: \"test\",\n }),\n [\n breadcrumbsRecord,\n prefetchedData,\n pathname,\n params,\n routePath,\n search,\n urlLocaleSegment,\n dictionary,\n locale,\n supportedLocales,\n defaultLocale,\n user,\n features,\n ],\n );\n\n // Everything the router hooks read, inert: nothing here fetches, preloads or\n // resolves a route, but every hook finds the shape it expects rather than an\n // empty context to crash on.\n const [viewEntriesSubject] = useState(() => new Subject<string[]>([]));\n const routerContext = useMemo(\n () => ({\n viewEntriesSubject,\n history,\n updatePageData: () => {},\n getPageData: () => ({}),\n getScrollPosition: () => 0,\n getViewPathsFromPathname: () => breadcrumbViews,\n getRoutePathnameFromHref: (href: string) => href,\n isNavigatingSubject,\n setNavigationAbortController: () => {},\n progressManager,\n fetchRouteCSS: async () => {},\n preloadRouteModules: () => {},\n prefetchRoute: async () => {},\n takePrefetched: () => null,\n clearPrefetchCache: () => {},\n breadcrumbsCache,\n routerSubject,\n urlLocaleSegment,\n }),\n [\n viewEntriesSubject,\n history,\n breadcrumbViews,\n isNavigatingSubject,\n progressManager,\n breadcrumbsCache,\n routerSubject,\n urlLocaleSegment,\n ],\n );\n\n return (\n <ThemeProvider theme={theme}>\n <ServerDataContext.Provider value={serverData}>\n <I18nProvider>\n <QueryManagerProvider queryConfig={queryConfig}>\n <ClientRouterContext.Provider value={routerContext}>\n <RouteTransitionProvider\n isPending={false}\n isFetching={false}\n transitionPath={[\"\", pathname]}\n >\n <RouteStateProvider state={routeState}>\n <Boundary\n errorFallback={errorFallback}\n fallback={fallback}\n resetKey={pathname}\n >\n {children}\n </Boundary>\n </RouteStateProvider>\n </RouteTransitionProvider>\n </ClientRouterContext.Provider>\n </QueryManagerProvider>\n </I18nProvider>\n </ServerDataContext.Provider>\n </ThemeProvider>\n );\n};\n\n/**\n * The `Suspense` boundary every view renders inside, and — when the test\n * supplies a fallback for it — the error boundary too.\n *\n * `onReset={clearErrors}` is the part that has to be here rather than inline\n * above: it needs `QueryManagerContext`, and it is what makes a view's real\n * `Error` export testable. A fallback whose \"Try again\" calls\n * `resetErrorBoundary()` re-renders the child, and `useQuery` reads the\n * failure still stored on the `QueryResource` and throws it straight back —\n * so without this the fallback never goes away and the retry path that works\n * in the app cannot be exercised. `ClientRouter`'s own boundary wires exactly\n * this pair.\n */\nconst Boundary = (\n props: PropsWithChildren<{\n errorFallback?: ComponentType<FallbackProps>;\n fallback: ReactNode;\n resetKey: string;\n }>,\n) => {\n const { errorFallback: ErrorFallback, fallback, resetKey, children } = props;\n const { clearErrors } = useContext(QueryManagerContext);\n const content = <Suspense fallback={fallback}>{children}</Suspense>;\n\n if (!ErrorFallback) {\n return content;\n }\n\n return (\n <ErrorBoundary\n FallbackComponent={ErrorFallback}\n resetKeys={[resetKey]}\n onReset={clearErrors}\n >\n {content}\n </ErrorBoundary>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../testing/Page.tsx"],"sourcesContent":["import {\n Suspense,\n useContext,\n useMemo,\n useRef,\n useState,\n type ComponentType,\n type PropsWithChildren,\n type ReactNode,\n} from \"react\";\nimport { ErrorBoundary, type FallbackProps } from \"react-error-boundary\";\nimport { Action, createMemoryHistory } from \"history\";\n\nimport type { User } from \"../auth/types\";\nimport { ClientRouterContext } from \"../client/ClientRouterContext\";\nimport { I18nProvider } from \"../client/I18nContext\";\nimport { ProgressManager } from \"../client/ProgressManager\";\nimport {\n QueryManagerContext,\n QueryManagerProvider,\n type QueryConfig,\n} from \"../client/QueryManagerContext\";\nimport {\n RouteStateProvider,\n type PageData,\n type RouteState,\n} from \"../client/RouteStateContext\";\nimport { RouteTransitionProvider } from \"../client/RouteTransitionProvider\";\nimport {\n ServerDataContext,\n type ServerDataContextValue,\n} from \"../client/ServerDataProvider\";\nimport { ThemeProvider } from \"../client/ThemeProvider\";\nimport type { ClientFeatureKey } from \"../client/rpc\";\nimport type { Breadcrumb } from \"../client/useBreadcrumbs\";\nimport { applyParams } from \"../utils/applyParams\";\nimport { Subject } from \"../utils/Subject\";\nimport { toVariantKey } from \"../utils/variantKey\";\n\n/**\n * A dictionary as `Dictionary.create` produces it: a name and a\n * `{ key: { locale: string } }` map.\n *\n * Typed structurally rather than as `Dictionary<T>` for two reasons. It keeps\n * `gemi/testing` from importing `gemi/i18n` — a server entry, which reaches the\n * `Lang` facade and through it the container. And it means an object literal of\n * the same shape is accepted, so a test never *has* to import the app's\n * dictionaries at all.\n *\n * Only `name` and `dictionary` are read — both plain data. `Dictionary`'s\n * server-only methods (`render`, `reference`, which throw once `window` is\n * defined) are never called from here.\n */\nexport interface PageDictionary {\n name: string;\n dictionary: Record<string, Record<string, string>>;\n}\n\nexport interface PageProps {\n /**\n * The URL the view is mounted at. A template (`/app/:orgId/chat`) is resolved\n * against `params`, so the same string can be pasted from the router.\n */\n pathname?: string;\n /** Route params, as the router would have parsed them out of `pathname`. */\n params?: Record<string, string>;\n /** `\"?tab=recent\"`, `\"tab=recent\"`, or `{ tab: \"recent\" }`. */\n searchParams?: string | Record<string, string | number | boolean>;\n hash?: string;\n /** The locale `useTranslator` and `useLocale` report. */\n locale?: string;\n /**\n * The app's default locale. Links and `useNavigate` omit the locale segment\n * for it, so leaving this equal to `locale` (the default) keeps hrefs\n * unprefixed — set it to seed a page being viewed in a non-default locale.\n */\n defaultLocale?: string;\n supportedLocales?: string[];\n /** The zone `useFormatter` formats dates in. Defaults to `UTC`, like an app with no `translation.timeZone`. */\n timeZone?: string;\n /**\n * Dictionaries the components under test translate against — the app's own,\n * or literals of the same shape.\n *\n * Note what importing the app's costs: `app/i18n/index.ts` imports\n * `gemi/i18n`, a server entry, so the test file pulls the container and\n * `node:async_hooks` into its module graph. Nothing there runs (and nothing\n * here calls it), so it is fine under any runner that has Node builtins —\n * vitest, `bun test` — and not under one that renders in a real browser. Use\n * `translations` there, which is the shape the client actually receives.\n */\n dictionaries?: PageDictionary[];\n /**\n * Translations for the current locale, already resolved: dictionary name →\n * key → string. This is the shape the server serializes onto the page, so it\n * is what the client reads at runtime — and it imports nothing.\n *\n * ```tsx\n * <Page translations={{ Chat: { greeting: \"Hello {{name}}\" } }}>\n * ```\n *\n * Merged over `dictionaries`, so the two compose: seed from the app's real\n * dictionary and override the one key a test is about.\n */\n translations?: Record<string, Record<string, string>>;\n /**\n * Data `useQuery` finds already cached, keyed by API path — the path passed\n * to `useQuery`, without the `/api` prefix the client adds when it fetches.\n * A key may carry a query string (`\"/lists?page=2\"`) to seed one search\n * variant.\n *\n * The cache is keyed by the *resolved* path, so a key's `:params` are\n * resolved against the page's `params` — and a key naming one the page does\n * not carry is an error, naming the key. That case is common enough to be\n * worth the loud failure: a query often takes its params from the call site\n * rather than the route (`useQuery(\"/orgs/:orgId/lists\", { params: { orgId } })`\n * with `orgId` in component state), and the right seed for it is the resolved\n * path, `\"/orgs/abc/lists\"`.\n *\n * Seeded at mount only: a component that mutates or refetches its data owns\n * the cache from then on.\n */\n queryData?: Record<string, unknown>;\n /** App-wide `useQuery` defaults, as `createRoot` threads them. */\n queryConfig?: QueryConfig;\n /**\n * What `useUser()` reports. Defaults to `null` — an anonymous visitor — and\n * either way the hook resolves from here without issuing a request.\n */\n user?: Partial<User> | null;\n /** What `useBreadcrumbs()` returns, in order. */\n breadcrumbs?: Breadcrumb[];\n /**\n * The `route.domains` group the page is served under, as `useDomain()`\n * reports it. Left out, `useDomain()` reads empty — the shape an app without\n * `route.domains` sees — and `useDomain().url()` throws, exactly as it does\n * there.\n *\n * `root` and `origin` default off the host, so the common case is one field:\n * `domain={{ host: \"acme.example.com\", params: { tenant: \"acme\" } }}`.\n */\n domain?: {\n host: string;\n group?: string;\n params?: Record<string, string>;\n custom?: boolean;\n root?: string;\n origin?: string;\n } | null;\n /**\n * What `useFeature()` reports, keyed by feature key. Anything left out reads\n * as off, exactly as an undeclared key does in a real request.\n *\n * A test seeds the *outcome*, not the declaration: `app/features` owns the\n * targeting and the rollout, and re-deriving those here would mean building a\n * request context — a user, a `session_id`, a bot verdict — to assert a\n * branch that only cares which way the feature came out. Cover the targeting\n * where it lives, with a server test.\n */\n features?: Partial<Record<ClientFeatureKey, boolean>>;\n /**\n * The theme `useTheme()` starts on. The app reads a visitor's stored choice\n * out of `localStorage`; a test has no session to have made one in, so this\n * seeds it without writing to storage. `setTheme` works from either.\n */\n theme?: \"light\" | \"dark\" | \"system\";\n /**\n * Fallback for the `Suspense` boundary wrapped around the children — the\n * stand-in for the view's own `Loading` export, which the real router\n * supplies. Defaults to `null`.\n */\n fallback?: ReactNode;\n /**\n * Renders in place of the children when one throws, mirroring a view's\n * `Error` export. Without it a thrown render (an errored suspense query,\n * say) propagates out of `render()` and fails the test, which is usually\n * what you want.\n */\n errorFallback?: ComponentType<FallbackProps>;\n /**\n * Called when something navigates — a `Link` click, `useNavigate().push`.\n * The navigation is reported, not performed: `<Page>` renders one route and\n * does not re-resolve the tree, so `useLocation()` keeps reporting the\n * pathname it was given.\n */\n onNavigate?: (href: string, action: \"push\" | \"replace\") => void;\n}\n\n/** `\"?a=b\"` (or `\"\"`) from any of the shapes `searchParams` accepts. */\nfunction toSearchString(search: PageProps[\"searchParams\"]): string {\n if (!search) return \"\";\n const query =\n typeof search === \"string\"\n ? search.replace(/^\\?/, \"\")\n : new URLSearchParams(\n Object.entries(search).map(([key, value]) => [key, String(value)]),\n ).toString();\n return query ? `?${query}` : \"\";\n}\n\n/**\n * The `:params` a seed key needs supplied. Wildcards (`:rest*`) are excluded —\n * `applyParams` drops those when missing, which is a resolution rather than a\n * failure.\n *\n * Optional params (`:id?`) cannot reach here at all: a key is split at its\n * first `?` to separate the search string, so `\"/lists/:folderId?\"` arrives as\n * the path `/lists/:folderId`. Seed the resolved path for those.\n */\nfunction requiredParamsOf(path: string): string[] {\n return Array.from(path.matchAll(/:([^/]+)/g), ([, name]) => name).filter(\n (name) => !name.endsWith(\"*\"),\n );\n}\n\n/**\n * Fails a `queryData` key whose `:params` the page does not carry, saying so\n * in terms of the key.\n *\n * Without this the two documented runners disagree, and neither is legible.\n * `applyParams` throws `Missing parameter: orgId` under `import.meta.env.DEV`\n * (vitest) — a router-utility stack trace out of `<Page>`'s render, before\n * anything mounts, naming nothing that appears in the test. Under `bun test`\n * that flag is falsy, so it logs and seeds the literal `/orgs/undefined/lists`\n * instead: the seed misses, the query goes to the network, and the assertion\n * runs against a loading state.\n *\n * The case is common because a query's params often come from the call site\n * rather than the route — `useQuery(\"/orgs/:orgId/lists\", { params: { orgId } })`\n * with `orgId` in component state. The cache is keyed by the *resolved* path,\n * so the way out is to seed that path directly.\n */\nfunction resolveSeedPath(\n key: string,\n rawPath: string,\n params: Record<string, string>,\n): string {\n const missing = requiredParamsOf(rawPath).filter(\n (name) => params[name] === undefined,\n );\n if (missing.length > 0) {\n throw new Error(\n `[gemi] <Page> cannot resolve the queryData key \"${key}\": no value for ` +\n `${missing.map((name) => `:${name}`).join(\", \")}. The query cache is ` +\n `keyed by the resolved path, so either add ${missing\n .map((name) => `\\`${name}\\``)\n .join(\", \")} to the page's \\`params\\`, or seed the resolved path ` +\n `(e.g. \"${applyParams(\n rawPath,\n Object.fromEntries(missing.map((name) => [name, \"123\"])),\n )}\") — which is what a query taking its params from component state ` +\n `reads under.`,\n );\n }\n return applyParams(rawPath, params);\n}\n\n/**\n * `queryData` in the shape the query cache seeds from: `{ [path]: { [variant]:\n * data } }`, the same payload `Query.prefetch` puts on a server-rendered page.\n */\nfunction toPrefetchedData(\n queryData: Record<string, unknown>,\n params: Record<string, string>,\n warned: Set<string>,\n) {\n const prefetchedData: Record<string, Record<string, unknown>> = {};\n for (const [key, data] of Object.entries(queryData)) {\n const [rawPath, rawSearch = \"\"] = key.split(\"?\");\n // Once per key per page, not once per render: this runs again on every\n // re-render, and a duplicated warning reads as a second mistake.\n if (rawPath.startsWith(\"/api/\") && !warned.has(key)) {\n warned.add(key);\n console.warn(\n `[gemi] queryData key \"${key}\" starts with /api. useQuery is keyed by ` +\n `the path you pass it — the /api prefix is added when it fetches — ` +\n `so this entry seeds a path no query reads.`,\n );\n }\n const path = resolveSeedPath(key, rawPath, params);\n prefetchedData[path] = {\n ...prefetchedData[path],\n [toVariantKey(rawSearch)]: data,\n };\n }\n return prefetchedData;\n}\n\n/**\n * `{ [locale]: { [dictionary]: { [key]: string } } }` — the payload\n * `Translator` serializes onto the page, which is the only form the client\n * ever sees. `dictionaries` are transposed into it (they are keyed the other\n * way round, by key then locale); `translations` is already in it and lands\n * under `locale`, last, so it wins.\n */\nfunction toClientDictionary(\n dictionaries: PageDictionary[],\n locales: string[],\n locale: string,\n translations: Record<string, Record<string, string>>,\n): Record<string, Record<string, Record<string, string>>> {\n const clientDictionary: Record<\n string,\n Record<string, Record<string, string>>\n > = {};\n for (const supported of locales) {\n clientDictionary[supported] ??= {};\n }\n for (const { name, dictionary } of dictionaries) {\n for (const [key, byLocale] of Object.entries(dictionary ?? {})) {\n for (const [dictLocale, translation] of Object.entries(byLocale ?? {})) {\n clientDictionary[dictLocale] ??= {};\n clientDictionary[dictLocale][name] ??= {};\n clientDictionary[dictLocale][name][key] = translation;\n }\n }\n }\n for (const [name, keys] of Object.entries(translations)) {\n clientDictionary[locale] ??= {};\n clientDictionary[locale][name] = {\n ...clientDictionary[locale][name],\n ...keys,\n };\n }\n return clientDictionary;\n}\n\n/**\n * Mounts a component with the inputs a view normally arrives with — route\n * params, the current locale and its dictionaries, prefetched query data, the\n * signed-in user — so a unit test can assert what it renders rather than only\n * its empty state.\n *\n * ```tsx\n * import { render, screen } from \"@testing-library/react\";\n * import { Page } from \"gemi/testing\";\n *\n * render(\n * <Page\n * pathname=\"/app/:orgId/chat\"\n * params={{ orgId: \"abc\" }}\n * queryData={{ \"/organizations/:orgId/messages\": [{ id: 1, body: \"hi\" }] }}\n * dictionaries={[ChatDictionary]}\n * >\n * <OrgChat />\n * </Page>,\n * );\n *\n * expect(screen.getByText(\"hi\")).toBeDefined();\n * ```\n *\n * It is a plain component, so it composes with any renderer — Testing\n * Library's `render`, `react-test-renderer`, or `renderToString`.\n *\n * Two things it does not do.\n *\n * It does not route: there is no view tree and no route manifest behind it, so\n * a navigation is reported through `onNavigate` rather than resolved. To\n * assert the page *after* one, render a second `<Page>`.\n *\n * And under `renderToString` it renders the server's own no-data branch for an\n * *unseeded* query rather than suspending — deliberately, because suspending\n * there is the streaming server's job: `createRoot` threads the request's\n * `ServerQueryStore` through `ServerQueryContext`, and that store is what runs\n * the route handler. A harness has no request and no handler to run, so there\n * is nothing to suspend on. Seeded queries render their data on the server\n * exactly as they do in the browser; unseeded ones behave as a route with no\n * `Query.prefetch` does, framework warning included.\n */\nexport const Page = (props: PropsWithChildren<PageProps>) => {\n const {\n children,\n pathname: routePath = \"/\",\n params = {},\n searchParams,\n hash = \"\",\n locale = \"en-US\",\n defaultLocale = locale,\n timeZone = \"UTC\",\n dictionaries = [],\n translations = {},\n queryData = {},\n queryConfig,\n user = null,\n breadcrumbs = [],\n domain = null,\n features = {},\n theme,\n fallback = null,\n errorFallback,\n onNavigate,\n } = props;\n\n // The caller's list, in the caller's order — a language switcher maps over\n // it, so hoisting the page's own locale to the front would reorder the\n // rendered options. The defaults are appended, only to guarantee presence.\n const supportedLocales = useMemo(\n () =>\n Array.from(\n new Set([...(props.supportedLocales ?? []), defaultLocale, locale]),\n ),\n [props.supportedLocales, defaultLocale, locale],\n );\n const pathname = applyParams(routePath, params) || \"/\";\n // `root` defaults to the host minus its first label, so a tenant subdomain\n // needs only its host; `origin` to https on that host. Either can be given\n // outright when the test is about the other.\n const domainValue = useMemo(() => {\n if (!domain) {\n return null;\n }\n const labels = domain.host.split(\".\");\n return {\n host: domain.host,\n group: domain.group ?? \"\",\n params: domain.params ?? {},\n custom: domain.custom ?? false,\n root:\n domain.root ?? (labels.length > 2 ? labels.slice(1).join(\".\") : domain.host),\n origin: domain.origin ?? `https://${domain.host}`,\n };\n }, [domain]);\n const search = toSearchString(searchParams);\n // The URL's locale segment, which the default locale does not get.\n const urlLocaleSegment = locale === defaultLocale ? null : locale;\n\n const dictionary = useMemo(\n () =>\n toClientDictionary(dictionaries, supportedLocales, locale, translations),\n [dictionaries, supportedLocales, locale, translations],\n );\n\n // Keys that have already drawn a warning, so a re-render does not repeat it.\n const warnedRef = useRef<Set<string>>(new Set());\n const prefetchedData = useMemo(() => {\n const seeded = toPrefetchedData(queryData, params, warnedRef.current);\n // `useUser` reads `/auth/me` like any other query. Seeding it — with `null`\n // for the anonymous default — is what keeps a component test off the\n // network for a hook nothing in the test asked for.\n seeded[\"/auth/me\"] ??= { \"\": user ?? null };\n return seeded;\n }, [queryData, params, user]);\n\n // Keyed by `${view}:${pathname}` in the router's cache; the view names are\n // ours to choose here, and only their order reaches `useBreadcrumbs`.\n const { breadcrumbViews, breadcrumbsCache, breadcrumbsRecord } =\n useMemo(() => {\n const views = breadcrumbs.map((_, index) => `breadcrumb-${index}`);\n const cache = new Map<string, Breadcrumb>(\n breadcrumbs.map((breadcrumb, index) => [\n `${views[index]}:${pathname}`,\n breadcrumb,\n ]),\n );\n return {\n breadcrumbViews: views,\n breadcrumbsCache: cache,\n breadcrumbsRecord: Object.fromEntries(cache),\n };\n }, [breadcrumbs, pathname]);\n\n const [isNavigatingSubject] = useState(() => new Subject<boolean>(false));\n const [progressManager] = useState(\n () => new ProgressManager(isNavigatingSubject),\n );\n const [history] = useState(() =>\n createMemoryHistory({ initialEntries: [`${pathname}${search}${hash}`] }),\n );\n\n const routeState: RouteState & PageData = useMemo(\n () => ({\n views: [],\n params,\n search,\n state: {},\n pathname,\n hash,\n action: null,\n routePath,\n locale: urlLocaleSegment,\n data: {},\n i18n: {\n currentLocale: locale,\n dictionary,\n supportedLocales,\n defaultLocale,\n timeZone,\n },\n prefetchedData,\n breadcrumbs: breadcrumbsRecord,\n features: features as Record<string, boolean>,\n appId: \"test\",\n }),\n [\n params,\n search,\n pathname,\n hash,\n routePath,\n urlLocaleSegment,\n locale,\n dictionary,\n supportedLocales,\n defaultLocale,\n timeZone,\n prefetchedData,\n breadcrumbsRecord,\n features,\n ],\n );\n\n const [routerSubject] = useState(() => new Subject<RouteState>(routeState));\n\n const onNavigateRef = useRef(onNavigate);\n onNavigateRef.current = onNavigate;\n // Subscribed during render, not in an effect, because React flushes child\n // effects before parent ones — and mount-time navigation is a real pattern:\n // `<Redirect>` pushes from its own mount effect, as does any auth guard. A\n // listener registered in `<Page>`'s effect is not there yet when those fire,\n // so `onNavigate` would silently miss exactly the redirects a test most\n // wants to assert. Ref-guarded, so React's double-invoke registers one.\n //\n // Nothing unsubscribes: this history is created per `<Page>` and reachable\n // from nowhere else, so it is collected with the page it belongs to.\n const listeningRef = useRef(false);\n if (!listeningRef.current) {\n listeningRef.current = true;\n history.listen(({ location, action }) => {\n const href = `${location.pathname}${location.search}${location.hash}`;\n onNavigateRef.current?.(\n href,\n action === Action.Replace ? \"replace\" : \"push\",\n );\n });\n }\n\n const serverData: ServerDataContextValue = useMemo(\n () => ({\n routeManifest: {},\n pageData: {},\n breadcrumbs: breadcrumbsRecord,\n prefetchedData,\n router: {\n pathname,\n params,\n currentPath: routePath,\n is404: false,\n searchParams: search,\n urlLocaleSegment,\n domain: domainValue,\n },\n i18n: {\n dictionary,\n currentLocale: locale,\n supportedLocales,\n defaultLocale,\n timeZone,\n },\n componentTree: [],\n auth: { user: user as User },\n features: features as Record<string, boolean>,\n __csrf: \"test-csrf-token\",\n cssManifest: {},\n modulePreloadManifest: {},\n meta: {},\n appId: \"test\",\n }),\n [\n breadcrumbsRecord,\n prefetchedData,\n pathname,\n params,\n routePath,\n search,\n urlLocaleSegment,\n dictionary,\n locale,\n supportedLocales,\n defaultLocale,\n timeZone,\n user,\n features,\n ],\n );\n\n // Everything the router hooks read, inert: nothing here fetches, preloads or\n // resolves a route, but every hook finds the shape it expects rather than an\n // empty context to crash on.\n const [viewEntriesSubject] = useState(() => new Subject<string[]>([]));\n const routerContext = useMemo(\n () => ({\n viewEntriesSubject,\n history,\n updatePageData: () => {},\n getPageData: () => ({}),\n getScrollPosition: () => 0,\n getViewPathsFromPathname: () => breadcrumbViews,\n getRoutePathnameFromHref: (href: string) => href,\n isNavigatingSubject,\n setNavigationAbortController: () => {},\n progressManager,\n fetchRouteCSS: async () => {},\n preloadRouteModules: () => {},\n prefetchRoute: async () => {},\n takePrefetched: () => null,\n clearPrefetchCache: () => {},\n breadcrumbsCache,\n routerSubject,\n urlLocaleSegment,\n }),\n [\n viewEntriesSubject,\n history,\n breadcrumbViews,\n isNavigatingSubject,\n progressManager,\n breadcrumbsCache,\n routerSubject,\n urlLocaleSegment,\n ],\n );\n\n return (\n <ThemeProvider theme={theme}>\n <ServerDataContext.Provider value={serverData}>\n <I18nProvider>\n <QueryManagerProvider queryConfig={queryConfig}>\n <ClientRouterContext.Provider value={routerContext}>\n <RouteTransitionProvider\n isPending={false}\n isFetching={false}\n transitionPath={[\"\", pathname]}\n >\n <RouteStateProvider state={routeState}>\n <Boundary\n errorFallback={errorFallback}\n fallback={fallback}\n resetKey={pathname}\n >\n {children}\n </Boundary>\n </RouteStateProvider>\n </RouteTransitionProvider>\n </ClientRouterContext.Provider>\n </QueryManagerProvider>\n </I18nProvider>\n </ServerDataContext.Provider>\n </ThemeProvider>\n );\n};\n\n/**\n * The `Suspense` boundary every view renders inside, and — when the test\n * supplies a fallback for it — the error boundary too.\n *\n * `onReset={clearErrors}` is the part that has to be here rather than inline\n * above: it needs `QueryManagerContext`, and it is what makes a view's real\n * `Error` export testable. A fallback whose \"Try again\" calls\n * `resetErrorBoundary()` re-renders the child, and `useQuery` reads the\n * failure still stored on the `QueryResource` and throws it straight back —\n * so without this the fallback never goes away and the retry path that works\n * in the app cannot be exercised. `ClientRouter`'s own boundary wires exactly\n * this pair.\n */\nconst Boundary = (\n props: PropsWithChildren<{\n errorFallback?: ComponentType<FallbackProps>;\n fallback: ReactNode;\n resetKey: string;\n }>,\n) => {\n const { errorFallback: ErrorFallback, fallback, resetKey, children } = props;\n const { clearErrors } = useContext(QueryManagerContext);\n const content = <Suspense fallback={fallback}>{children}</Suspense>;\n\n if (!ErrorFallback) {\n return content;\n }\n\n return (\n <ErrorBoundary\n FallbackComponent={ErrorFallback}\n resetKeys={[resetKey]}\n onReset={clearErrors}\n >\n {content}\n </ErrorBoundary>\n );\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -191,6 +191,7 @@ carried for free.
|
|
|
191
191
|
### 9. Internationalization (MEDIUM)
|
|
192
192
|
|
|
193
193
|
- `i18n-define-dictionary-inline` - The `defineDictionary` literal must be inline — a helper fails the BUILD
|
|
194
|
+
- `i18n-format-with-use-formatter` - Format dates and numbers with `useFormatter`, never `toLocale*String()`
|
|
194
195
|
|
|
195
196
|
### 10. Testing (MEDIUM)
|
|
196
197
|
|