create-nifra 4.0.0 → 5.0.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/agent-files.d.ts +4 -4
- package/dist/agent-files.d.ts.map +1 -1
- package/dist/agent-files.js +18 -7
- package/dist/agent-files.js.map +1 -1
- package/dist/auth.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +1 -1
- package/dist/scaffold/frameworks.d.ts +1 -1
- package/dist/scaffold/frameworks.js +1 -1
- package/dist/scaffold/route-types.d.ts.map +1 -1
- package/dist/scaffold/route-types.js +5 -4
- package/dist/scaffold/route-types.js.map +1 -1
- package/dist/scaffold/site-files.d.ts.map +1 -1
- package/dist/scaffold/site-files.js +2 -0
- package/dist/scaffold/site-files.js.map +1 -1
- package/dist/scaffold/targets.d.ts.map +1 -1
- package/dist/scaffold/targets.js +15 -5
- package/dist/scaffold/targets.js.map +1 -1
- package/package.json +1 -1
- package/src/agent-files.ts +23 -11
- package/template/package.json +5 -5
- package/template-batteries/package.json +8 -8
- package/template-isr/package.json +8 -8
- package/template-isr/routes/index.backend.ts +1 -1
- package/template-isr/tsconfig.json +1 -0
- package/template-isr/wrangler.toml +4 -4
- package/template-site/README.md +2 -1
- package/template-site/routes/_404.tsx +9 -14
- package/template-site/routes/index.backend.ts +3 -2
- package/template-site-preact/README.md +2 -1
- package/template-site-preact/routes/_404.tsx +9 -14
- package/template-site-solid/README.md +2 -1
- package/template-site-solid/routes/_404.tsx +9 -14
- package/template-site-svelte/README.md +2 -1
- package/template-site-svelte/routes/_404.svelte +5 -12
- package/template-site-vue/README.md +2 -1
- package/template-site-vue/routes/_404.vue +5 -12
package/dist/agent-files.d.ts
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* .github/copilot-instructions.md - GitHub Copilot: points at AGENTS.md
|
|
10
10
|
* .mcp.json, .cursor/mcp.json - the nifra MCP server, registered for Claude Code and Cursor
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* `create-nifra` (scaffold time) and `@nifrajs/cli`'s `nifra init-agents` (retrofit an existing app) each
|
|
13
|
+
* ship this file byte-identical - `packages/cli/test/init-agents.test.ts` holds the two copies equal - so
|
|
14
|
+
* the generated files can never drift apart and neither package needs the other at runtime. It stays
|
|
15
|
+
* dependency-free (pure string + object generation) on purpose: `create-nifra` ships with no runtime deps.
|
|
16
16
|
*
|
|
17
17
|
* Why `bunx @nifrajs/cli mcp` (not `bunx nifra mcp`): the `nifra` binary is provided by the
|
|
18
18
|
* `@nifrajs/cli` package, and the bare npm package literally named `nifra` (this monorepo's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-files.d.ts","sourceRoot":"","sources":["../src/agent-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;kFACkF;AAClF,eAAO,MAAM,kBAAkB,EAAG,MAAe,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-files.d.ts","sourceRoot":"","sources":["../src/agent-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;kFACkF;AAClF,eAAO,MAAM,kBAAkB,EAAG,MAAe,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,eAAe,EAAE,MAAqB,CAAA;AAenD,eAAO,MAAM,eAAe,4CAAsD,CAAA;AAElF,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAED,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;CAC/D;AAED,2FAA2F;AAC3F,eAAO,MAAM,UAAU,EAAE,SAIxB,CAAA;AAED;qFACqF;AACrF,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAKD,yEAAyE;AACzE,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,gGAAgG;AAChG,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAczC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA+B/C;AAED,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD;4GAC4G;AAC5G,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;sGACsG;AACtG,eAAO,MAAM,aAAa,cAAc,CAAA;AACxC,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AACtD,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,gBAAgB,4BAA4B,CAAA;AACzD,eAAO,MAAM,yBAAyB,oCAAoC,CAAA;AAC1E,eAAO,MAAM,cAAc,cAAc,CAAA;AAEzC,wFAAwF;AACxF,eAAO,MAAM,cAAc,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAA;CAAE,EAM5F,CAAA"}
|
package/dist/agent-files.js
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* .github/copilot-instructions.md - GitHub Copilot: points at AGENTS.md
|
|
10
10
|
* .mcp.json, .cursor/mcp.json - the nifra MCP server, registered for Claude Code and Cursor
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* `create-nifra` (scaffold time) and `@nifrajs/cli`'s `nifra init-agents` (retrofit an existing app) each
|
|
13
|
+
* ship this file byte-identical - `packages/cli/test/init-agents.test.ts` holds the two copies equal - so
|
|
14
|
+
* the generated files can never drift apart and neither package needs the other at runtime. It stays
|
|
15
|
+
* dependency-free (pure string + object generation) on purpose: `create-nifra` ships with no runtime deps.
|
|
16
16
|
*
|
|
17
17
|
* Why `bunx @nifrajs/cli mcp` (not `bunx nifra mcp`): the `nifra` binary is provided by the
|
|
18
18
|
* `@nifrajs/cli` package, and the bare npm package literally named `nifra` (this monorepo's
|
|
@@ -46,7 +46,16 @@ export const MCP_SERVER_COMMAND = "bunx";
|
|
|
46
46
|
* at its scaffold-time version until `nifra init-agents --sync-mcp` re-pins it to the nifra the project
|
|
47
47
|
* installs - an acceptable, deterministic trade.
|
|
48
48
|
*/
|
|
49
|
-
export const MCP_CLI_VERSION =
|
|
49
|
+
export const MCP_CLI_VERSION = ownVersion();
|
|
50
|
+
function ownVersion() {
|
|
51
|
+
const manifest = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
|
|
52
|
+
if (typeof manifest === "object" &&
|
|
53
|
+
manifest !== null &&
|
|
54
|
+
"version" in manifest &&
|
|
55
|
+
typeof manifest.version === "string")
|
|
56
|
+
return manifest.version;
|
|
57
|
+
throw new Error("[nifra] agent-files: this package's package.json has no version");
|
|
58
|
+
}
|
|
50
59
|
export const MCP_SERVER_ARGS = [`@nifrajs/cli@${MCP_CLI_VERSION}`, "mcp"];
|
|
51
60
|
/** The one canonical MCP config object both registries serialize - the anti-drift seam. */
|
|
52
61
|
export const MCP_CONFIG = {
|
|
@@ -125,8 +134,10 @@ A file outside those folders joins a side with a \`.frontend.ts\`, \`.backend.ts
|
|
|
125
134
|
(and \`actionOutput\`). Only what the schema declares reaches the browser, and a loader without one
|
|
126
135
|
is refused.
|
|
127
136
|
- **Type a route with its generated \`./+types/<name>\`**: \`import type { Route } from "./+types/[slug]"\`
|
|
128
|
-
gives \`Route.
|
|
129
|
-
|
|
137
|
+
gives \`Route.Loader\` and \`Route.Action\` in the backend half (\`export const loader: Route.Loader =
|
|
138
|
+
async ({ api, params }) => ...\` checks what it returns against \`loaderOutput\`) and
|
|
139
|
+
\`Route.ComponentProps\` in the page. \`nifra dev\`, \`nifra build\`, \`nifra check\` and
|
|
140
|
+
\`nifra types\` write them.
|
|
130
141
|
- **Secrets stay in \`backend/\`.** A value only the server may see is read there (\`process.env\`), never
|
|
131
142
|
in a frontend file; a build that finds what looks like a credential in browser output fails.`;
|
|
132
143
|
}
|
package/dist/agent-files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-files.js","sourceRoot":"","sources":["../src/agent-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;kFACkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAe,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"agent-files.js","sourceRoot":"","sources":["../src/agent-files.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.js
CHANGED
|
@@ -34,7 +34,7 @@ export const AUTH_PRESETS = {
|
|
|
34
34
|
label: "better-auth",
|
|
35
35
|
note: "email/password + sessions, mounted at /api/auth/* - add OAuth providers in backend/auth.ts.",
|
|
36
36
|
// @nifrajs/better-auth mounts it; better-auth is the implementation (peer-installed alongside).
|
|
37
|
-
deps: { "@nifrajs/better-auth": "^
|
|
37
|
+
deps: { "@nifrajs/better-auth": "^5.0.0", "better-auth": "^1.2.0" },
|
|
38
38
|
},
|
|
39
39
|
};
|
|
40
40
|
/** The better-auth `database` adapter expression + its import line, for the scaffolded DB's ORM. */
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAoBA,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,WAAW,CAAA;AAClB,OAAO,EAA0B,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -43,7 +43,7 @@ function targetSteps(target, docker) {
|
|
|
43
43
|
"bun run build",
|
|
44
44
|
...(spec.deploy !== undefined
|
|
45
45
|
? [`bun run deploy # ${spec.deploy}`]
|
|
46
|
-
: [
|
|
46
|
+
: ["bun run start # run the build locally, one process"]),
|
|
47
47
|
];
|
|
48
48
|
}
|
|
49
49
|
// Self-hosted servers (bun/node) have no canonical push-to-deploy - CI builds + uploads the artifact and
|
|
@@ -360,6 +360,16 @@ export async function scaffold(opts) {
|
|
|
360
360
|
...(opts.link !== undefined ? { link: opts.link } : {}),
|
|
361
361
|
};
|
|
362
362
|
}
|
|
363
|
+
/** The first migration, in the scripts each ORM's preset writes: only Drizzle has a generate step,
|
|
364
|
+
* Prisma's migrate creates and applies in one, and Kysely migrations are written by hand. */
|
|
365
|
+
const MIGRATION_STEPS = {
|
|
366
|
+
drizzle: [
|
|
367
|
+
"bun run db:generate # SQL from backend/db/schema.ts",
|
|
368
|
+
"bun run db:migrate # apply it",
|
|
369
|
+
],
|
|
370
|
+
prisma: ["bun run db:migrate # create + apply a migration from prisma/schema.prisma"],
|
|
371
|
+
kysely: ["bun run db:migrate # apply backend/db/migrations"],
|
|
372
|
+
};
|
|
363
373
|
/** Parse `[dir] [--template|-t <t>] [--framework|-f <fw>] [--target <t>] [--docker] [--ci|-c github]
|
|
364
374
|
* [--db <preset>] [--auth <preset>] [--force] [--link <path>]`.
|
|
365
375
|
* `--framework`/`--target`/`--docker`/`--ci` all default the template to `site`. Throws on the retired
|
|
@@ -472,7 +482,7 @@ export async function run(argv) {
|
|
|
472
482
|
if (result.auth !== undefined) {
|
|
473
483
|
steps.push("bunx @better-auth/cli@latest generate --config backend/auth.ts # the auth tables");
|
|
474
484
|
}
|
|
475
|
-
steps.push(
|
|
485
|
+
steps.push(...MIGRATION_STEPS[DB_PRESETS[result.db].orm]);
|
|
476
486
|
}
|
|
477
487
|
// Tag the chosen framework + deploy target + db + auth, e.g. "(Vue, Drizzle + libSQL, better-auth)".
|
|
478
488
|
const tags = [
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export interface FrameworkSpec {
|
|
|
37
37
|
* ships templates installing the PREVIOUS release. `scaffold-composition.test.ts` now fails when this
|
|
38
38
|
* drifts from what core is publishing, so the footgun is a red test rather than a silent regression.
|
|
39
39
|
*/
|
|
40
|
-
export declare const NIFRA_DEP_RANGE = "^
|
|
40
|
+
export declare const NIFRA_DEP_RANGE = "^5.0.0";
|
|
41
41
|
/**
|
|
42
42
|
* React is first because it is the default (`--framework` omitted scaffolds it), and because the
|
|
43
43
|
* other four are most easily read as deltas from it.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* ships templates installing the PREVIOUS release. `scaffold-composition.test.ts` now fails when this
|
|
16
16
|
* drifts from what core is publishing, so the footgun is a red test rather than a silent regression.
|
|
17
17
|
*/
|
|
18
|
-
export const NIFRA_DEP_RANGE = "^
|
|
18
|
+
export const NIFRA_DEP_RANGE = "^5.0.0";
|
|
19
19
|
/**
|
|
20
20
|
* React is first because it is the default (`--framework` omitted scaffolds it), and because the
|
|
21
21
|
* other four are most easily read as deltas from it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-types.d.ts","sourceRoot":"","sources":["../../src/scaffold/route-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"route-types.d.ts","sourceRoot":"","sources":["../../src/scaffold/route-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6EH,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBxE"}
|
|
@@ -17,10 +17,11 @@ function routeModule(name, extension, kind, hasBackend) {
|
|
|
17
17
|
const lines = [
|
|
18
18
|
header(`routes/${name}.${extension}`),
|
|
19
19
|
'/// <reference path="../../register.d.ts" />',
|
|
20
|
-
'import type { OutputOf, RouteLoaderArgs, SearchSchemaOf } from "@nifrajs/client"',
|
|
20
|
+
'import type { OutputOf, RouteActionReturn, RouteLoaderArgs, RouteLoaderReturn, SearchSchemaOf } from "@nifrajs/client"',
|
|
21
21
|
];
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
lines.push(kind === "page"
|
|
23
|
+
? 'import type { MetaArgs as WebMetaArgs, RenderProps } from "@nifrajs/web"'
|
|
24
|
+
: 'import type { MetaArgs as WebMetaArgs } from "@nifrajs/web"');
|
|
24
25
|
lines.push("");
|
|
25
26
|
if (hasBackend)
|
|
26
27
|
lines.push(`type Backend = typeof import("../../../../routes/${name}.backend")`);
|
|
@@ -29,7 +30,7 @@ function routeModule(name, extension, kind, hasBackend) {
|
|
|
29
30
|
if (hasBackend || script)
|
|
30
31
|
lines.push("");
|
|
31
32
|
const output = (schema) => hasBackend ? `OutputOf<Backend, "${schema}">` : "null";
|
|
32
|
-
lines.push("export namespace Route {", " /** The URL params this route's path carries. */", " export type Params = Record<string, never>", " /** What the loader sends to the browser: the output type of `loaderOutput`. */", ` export type LoaderData = ${output("loaderOutput")}`, " /** What the action sends back: the output type of `actionOutput`. */", ` export type ActionData = ${output("actionOutput")}`, " /** The context the backend half's loader receives. */", ` export type LoaderArgs = RouteLoaderArgs<Params${script ? ", SearchSchemaOf<Frontend>" : ""}>`, " /** The context the backend half's action receives. */", " export type ActionArgs = LoaderArgs");
|
|
33
|
+
lines.push("export namespace Route {", " /** The URL params this route's path carries. */", " export type Params = Record<string, never>", " /** What the loader sends to the browser: the output type of `loaderOutput`. */", ` export type LoaderData = ${output("loaderOutput")}`, " /** What the action sends back: the output type of `actionOutput`. */", ` export type ActionData = ${output("actionOutput")}`, " /** The context the backend half's loader receives. */", ` export type LoaderArgs = RouteLoaderArgs<Params${script ? ", SearchSchemaOf<Frontend>" : ""}>`, " /** The context the backend half's action receives. */", " export type ActionArgs = LoaderArgs", " /** The backend half's loader. Annotate it, `export const loader: Route.Loader = ...`, and what it returns is checked against `loaderOutput`. */", ` export type Loader = (args: LoaderArgs) => RouteLoaderReturn<${hasBackend ? "Backend" : "null"}>`, " /** The backend half's action. Annotate it, `export const action: Route.Action = ...`, and what it returns is checked against `actionOutput`. */", ` export type Action = (args: ActionArgs) => RouteActionReturn<${hasBackend ? "Backend" : "null"}>`, " /** What this module's `meta` function receives: its own loader data as `data`. */", " export type MetaArgs = WebMetaArgs<LoaderData>");
|
|
33
34
|
if (kind === "page") {
|
|
34
35
|
lines.push(" /** The page component's props. */", ' export type ComponentProps = Omit<RenderProps, "data" | "actionData" | "params"> & {', " readonly data: LoaderData", " readonly actionData?: ActionData", " readonly params: Params", " }");
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-types.js","sourceRoot":"","sources":["../../src/scaffold/route-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qEAAqE;AACrE,MAAM,cAAc,GAAG;IACrB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IACvB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;IAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;CACf,CAAA;AAEV,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CACvC,8BAA8B,KAAK,6CAA6C,CAAA;AAElF,SAAS,WAAW,CAClB,IAAY,EACZ,SAAiB,EACjB,IAAuB,EACvB,UAAmB;IAEnB,mGAAmG;IACnG,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK,CAAA;IAClC,MAAM,KAAK,GAAG;QACZ,MAAM,CAAC,UAAU,IAAI,IAAI,SAAS,EAAE,CAAC;QACrC,8CAA8C;QAC9C,
|
|
1
|
+
{"version":3,"file":"route-types.js","sourceRoot":"","sources":["../../src/scaffold/route-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-files.d.ts","sourceRoot":"","sources":["../../src/scaffold/site-files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,cAAc,CAAA;AAKvE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAQtE;AAKD,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA+BpF;AAKD,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"site-files.d.ts","sourceRoot":"","sources":["../../src/scaffold/site-files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,cAAc,CAAA;AAKvE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAQtE;AAKD,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA+BpF;AAKD,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAwB/D"}
|
|
@@ -70,6 +70,8 @@ export function renderTsconfig(framework) {
|
|
|
70
70
|
skipLibCheck: true,
|
|
71
71
|
noEmit: true,
|
|
72
72
|
verbatimModuleSyntax: true,
|
|
73
|
+
// The `--db` modules import their siblings as `./schema.ts`, the way Bun runs them.
|
|
74
|
+
allowImportingTsExtensions: true,
|
|
73
75
|
types: ["bun", ...(ts.types ?? [])],
|
|
74
76
|
// Merges the generated `.nifra/types` tree in, so a route imports its types as `./+types/<name>`.
|
|
75
77
|
rootDirs: [".", "./.nifra/types"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-files.js","sourceRoot":"","sources":["../../src/scaffold/site-files.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"site-files.js","sourceRoot":"","sources":["../../src/scaffold/site-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/scaffold/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,0DAA2D,CAAA;AACtF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/scaffold/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,0DAA2D,CAAA;AACtF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAOD,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAsB9D,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,GACd,MAAM,GAAG,SAAS,CAKpB;AAQD,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAyB/D;AAED,eAAO,MAAM,YAAY,gFAQxB,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,SAAS,QAOjB,CAAA;AAEL,8EAA8E;AAC9E,eAAO,MAAM,aAAa,yjBASzB,CAAA;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,GACd,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUrB"}
|
package/dist/scaffold/targets.js
CHANGED
|
@@ -5,12 +5,21 @@
|
|
|
5
5
|
* `nifra target <t>` switches it later.
|
|
6
6
|
*/
|
|
7
7
|
export const DEPLOY_TARGETS = ["bun", "node", "deno", "cloudflare", "vercel"];
|
|
8
|
+
// The build is a production bundle, so the starter's in-memory rate-limit store refuses to boot unless
|
|
9
|
+
// this is set. A local run is one process, the single instance that store is correct for; a deploy sets
|
|
10
|
+
// it only for one instance and uses a shared store otherwise.
|
|
11
|
+
const ONE_PROCESS = "NIFRA_ALLOW_MEMORY_RATE_LIMIT=true";
|
|
8
12
|
export const TARGETS = {
|
|
9
|
-
bun: { label: "Bun", start:
|
|
10
|
-
node: {
|
|
13
|
+
bun: { label: "Bun", start: `${ONE_PROCESS} bun dist/server.js`, docker: true },
|
|
14
|
+
node: {
|
|
15
|
+
label: "Node",
|
|
16
|
+
start: `${ONE_PROCESS} node dist/server.js`,
|
|
17
|
+
runtime: ["node"],
|
|
18
|
+
docker: true,
|
|
19
|
+
},
|
|
11
20
|
deno: {
|
|
12
21
|
label: "Deno Deploy",
|
|
13
|
-
start:
|
|
22
|
+
start: `${ONE_PROCESS} deno run --allow-net --allow-read --allow-env dist/server.js`,
|
|
14
23
|
deploy: "deployctl deploy --prod --entrypoint=dist/server.js",
|
|
15
24
|
docker: false,
|
|
16
25
|
},
|
|
@@ -41,7 +50,7 @@ export function deployName(name) {
|
|
|
41
50
|
export function deployScript(target, name, docker) {
|
|
42
51
|
const image = deployName(name);
|
|
43
52
|
return docker
|
|
44
|
-
? `docker build -t ${image} . && docker run -p 3000:3000 ${image}`
|
|
53
|
+
? `docker build -t ${image} . && docker run -e ${ONE_PROCESS} -p 3000:3000 ${image}`
|
|
45
54
|
: TARGETS[target].deploy;
|
|
46
55
|
}
|
|
47
56
|
/** The image a Docker scaffold runs the built server in. */
|
|
@@ -55,7 +64,8 @@ export function renderDockerfile(target) {
|
|
|
55
64
|
return `# Build with Bun (nifra's build toolchain), then run the self-contained bundle - the final image
|
|
56
65
|
# carries no build tools or node_modules.
|
|
57
66
|
# docker build -t my-nifra-app .
|
|
58
|
-
# docker run -p 3000:3000 my-nifra-app
|
|
67
|
+
# docker run -e ${ONE_PROCESS} -p 3000:3000 my-nifra-app
|
|
68
|
+
# That variable lets the in-memory rate limit run in one container; give more replicas a shared store.
|
|
59
69
|
FROM oven/bun:1 AS build
|
|
60
70
|
WORKDIR /app
|
|
61
71
|
# Copy manifests first so the install layer caches across source-only changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/scaffold/targets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAA;AAetF,MAAM,CAAC,MAAM,OAAO,GAA+C;IACjE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/scaffold/targets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/agent-files.ts
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* .github/copilot-instructions.md - GitHub Copilot: points at AGENTS.md
|
|
10
10
|
* .mcp.json, .cursor/mcp.json - the nifra MCP server, registered for Claude Code and Cursor
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* `create-nifra` (scaffold time) and `@nifrajs/cli`'s `nifra init-agents` (retrofit an existing app) each
|
|
13
|
+
* ship this file byte-identical - `packages/cli/test/init-agents.test.ts` holds the two copies equal - so
|
|
14
|
+
* the generated files can never drift apart and neither package needs the other at runtime. It stays
|
|
15
|
+
* dependency-free (pure string + object generation) on purpose: `create-nifra` ships with no runtime deps.
|
|
16
16
|
*
|
|
17
17
|
* Why `bunx @nifrajs/cli mcp` (not `bunx nifra mcp`): the `nifra` binary is provided by the
|
|
18
18
|
* `@nifrajs/cli` package, and the bare npm package literally named `nifra` (this monorepo's
|
|
@@ -49,11 +49,21 @@ export const MCP_SERVER_COMMAND = "bunx" as const
|
|
|
49
49
|
* at its scaffold-time version until `nifra init-agents --sync-mcp` re-pins it to the nifra the project
|
|
50
50
|
* installs - an acceptable, deterministic trade.
|
|
51
51
|
*/
|
|
52
|
-
export const MCP_CLI_VERSION: string = (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
)
|
|
52
|
+
export const MCP_CLI_VERSION: string = ownVersion()
|
|
53
|
+
|
|
54
|
+
function ownVersion(): string {
|
|
55
|
+
const manifest: unknown = JSON.parse(
|
|
56
|
+
readFileSync(new URL("../package.json", import.meta.url), "utf8"),
|
|
57
|
+
)
|
|
58
|
+
if (
|
|
59
|
+
typeof manifest === "object" &&
|
|
60
|
+
manifest !== null &&
|
|
61
|
+
"version" in manifest &&
|
|
62
|
+
typeof manifest.version === "string"
|
|
63
|
+
)
|
|
64
|
+
return manifest.version
|
|
65
|
+
throw new Error("[nifra] agent-files: this package's package.json has no version")
|
|
66
|
+
}
|
|
57
67
|
export const MCP_SERVER_ARGS = [`@nifrajs/cli@${MCP_CLI_VERSION}`, "mcp"] as const
|
|
58
68
|
|
|
59
69
|
/** The server entry registered under the `nifra` key in both Claude Code's and Cursor's MCP config. */
|
|
@@ -153,8 +163,10 @@ A file outside those folders joins a side with a \`.frontend.ts\`, \`.backend.ts
|
|
|
153
163
|
(and \`actionOutput\`). Only what the schema declares reaches the browser, and a loader without one
|
|
154
164
|
is refused.
|
|
155
165
|
- **Type a route with its generated \`./+types/<name>\`**: \`import type { Route } from "./+types/[slug]"\`
|
|
156
|
-
gives \`Route.
|
|
157
|
-
|
|
166
|
+
gives \`Route.Loader\` and \`Route.Action\` in the backend half (\`export const loader: Route.Loader =
|
|
167
|
+
async ({ api, params }) => ...\` checks what it returns against \`loaderOutput\`) and
|
|
168
|
+
\`Route.ComponentProps\` in the page. \`nifra dev\`, \`nifra build\`, \`nifra check\` and
|
|
169
|
+
\`nifra types\` write them.
|
|
158
170
|
- **Secrets stay in \`backend/\`.** A value only the server may see is read there (\`process.env\`), never
|
|
159
171
|
in a frontend file; a build that finds what looks like a credential in browser output fails.`
|
|
160
172
|
}
|
package/template/package.json
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"typecheck": "tsc --noEmit"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@nifrajs/client": "^
|
|
15
|
-
"@nifrajs/core": "^
|
|
16
|
-
"@nifrajs/middleware": "^
|
|
17
|
-
"@nifrajs/schema": "^
|
|
14
|
+
"@nifrajs/client": "^5.0.0",
|
|
15
|
+
"@nifrajs/core": "^5.0.0",
|
|
16
|
+
"@nifrajs/middleware": "^5.0.0",
|
|
17
|
+
"@nifrajs/schema": "^5.0.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@nifrajs/cli": "^
|
|
20
|
+
"@nifrajs/cli": "^5.0.0",
|
|
21
21
|
"@types/bun": "latest",
|
|
22
22
|
"typescript": "^6.0.3"
|
|
23
23
|
}
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"typecheck": "tsc --noEmit"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@nifrajs/cache": "^
|
|
15
|
-
"@nifrajs/client": "^
|
|
16
|
-
"@nifrajs/core": "^
|
|
17
|
-
"@nifrajs/jobs": "^
|
|
18
|
-
"@nifrajs/middleware": "^
|
|
19
|
-
"@nifrajs/schema": "^
|
|
20
|
-
"@nifrajs/storage": "^
|
|
14
|
+
"@nifrajs/cache": "^5.0.0",
|
|
15
|
+
"@nifrajs/client": "^5.0.0",
|
|
16
|
+
"@nifrajs/core": "^5.0.0",
|
|
17
|
+
"@nifrajs/jobs": "^5.0.0",
|
|
18
|
+
"@nifrajs/middleware": "^5.0.0",
|
|
19
|
+
"@nifrajs/schema": "^5.0.0",
|
|
20
|
+
"@nifrajs/storage": "^5.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@nifrajs/cli": "^
|
|
23
|
+
"@nifrajs/cli": "^5.0.0",
|
|
24
24
|
"@types/bun": "latest",
|
|
25
25
|
"typescript": "^6.0.3"
|
|
26
26
|
}
|
|
@@ -5,22 +5,22 @@
|
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "bun run build.ts",
|
|
8
|
-
"dev": "bunx wrangler dev --var NIFRA_ALLOW_MEMORY_RATE_LIMIT:true",
|
|
8
|
+
"dev": "bunx wrangler dev --var NIFRA_ALLOW_MEMORY_RATE_LIMIT:true --var REVALIDATE_SECRET:dev-secret",
|
|
9
9
|
"dev:bun": "bun run backend/dev-server.ts",
|
|
10
10
|
"check": "nifra check && nifra assure"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@nifrajs/client": "^
|
|
14
|
-
"@nifrajs/core": "^
|
|
15
|
-
"@nifrajs/middleware": "^
|
|
16
|
-
"@nifrajs/schema": "^
|
|
17
|
-
"@nifrajs/web": "^
|
|
18
|
-
"@nifrajs/web-react": "^
|
|
13
|
+
"@nifrajs/client": "^5.0.0",
|
|
14
|
+
"@nifrajs/core": "^5.0.0",
|
|
15
|
+
"@nifrajs/middleware": "^5.0.0",
|
|
16
|
+
"@nifrajs/schema": "^5.0.0",
|
|
17
|
+
"@nifrajs/web": "^5.0.0",
|
|
18
|
+
"@nifrajs/web-react": "^5.0.0",
|
|
19
19
|
"react": "^19.0.0",
|
|
20
20
|
"react-dom": "^19.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@nifrajs/cli": "^
|
|
23
|
+
"@nifrajs/cli": "^5.0.0",
|
|
24
24
|
"@types/bun": "^1.4.2",
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
@@ -8,7 +8,7 @@ export const revalidate = 10
|
|
|
8
8
|
|
|
9
9
|
export const loaderOutput = t.object({ renders: t.number(), revalidate: t.number() })
|
|
10
10
|
|
|
11
|
-
export async
|
|
11
|
+
export const loader: Route.Loader = async ({ api }) => {
|
|
12
12
|
const res = await api.page.get()
|
|
13
13
|
return { renders: res.ok ? res.data.renders : 0, revalidate }
|
|
14
14
|
}
|
|
@@ -19,7 +19,7 @@ assets = { directory = "./public" }
|
|
|
19
19
|
binding = "ISR_CACHE"
|
|
20
20
|
id = "REPLACE_WITH_YOUR_KV_NAMESPACE_ID"
|
|
21
21
|
|
|
22
|
-
# On-demand revalidation secret.
|
|
23
|
-
#
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
# On-demand revalidation secret. Never a [vars] entry: `wrangler deploy` would ship it as plain text
|
|
23
|
+
# and it would collide with a secret of the same name. Set it with
|
|
24
|
+
# `bunx wrangler secret put REVALIDATE_SECRET`; until then the deployed Worker answers 404 on
|
|
25
|
+
# /__nifra/revalidate. `bun run dev` passes a local value with --var.
|
package/template-site/README.md
CHANGED
|
@@ -11,7 +11,8 @@ bun run dev # nifra dev → true-HMR dev server (Bun + nifra SSR) at http
|
|
|
11
11
|
|
|
12
12
|
The backend starter includes response security headers, explicit-origin CORS, a 30-second request
|
|
13
13
|
deadline, bounded concurrency, and a development rate limit. Its in-memory rate-limit store refuses
|
|
14
|
-
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true
|
|
14
|
+
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true`, which `bun run start` sets for its one local
|
|
15
|
+
process. Set it on a deploy only for a single instance; use a shared store for multi-instance deploys.
|
|
15
16
|
For cookie sessions, add signed CSRF middleware and require both runtime authentication and CSRF
|
|
16
17
|
evidence in `nifra.assurance.ts`.
|
|
17
18
|
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import Layout from "./_layout"
|
|
2
|
-
|
|
3
1
|
export const meta = { title: "Not found" }
|
|
4
2
|
|
|
5
|
-
// nifra's catch-all renders _404 without the layout chain, so it wraps itself in the root Layout.
|
|
6
3
|
export default function NotFound() {
|
|
7
4
|
return (
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</section>
|
|
18
|
-
</Layout>
|
|
5
|
+
<section className="hero">
|
|
6
|
+
<h1>
|
|
7
|
+
<span className="grad">404</span>
|
|
8
|
+
</h1>
|
|
9
|
+
<p>That page doesn't exist.</p>
|
|
10
|
+
<a className="btn" href="/">
|
|
11
|
+
← Back home
|
|
12
|
+
</a>
|
|
13
|
+
</section>
|
|
19
14
|
)
|
|
20
15
|
}
|
|
@@ -5,14 +5,15 @@ export const loaderOutput = t.object({ count: t.number() })
|
|
|
5
5
|
|
|
6
6
|
// Loader runs on the server (in-process during SSR). The action handles the form POST; after a
|
|
7
7
|
// client submit the loader revalidates with no full reload (progressive enhancement).
|
|
8
|
-
|
|
8
|
+
// Route.Loader and Route.Action check what each returns against its output schema.
|
|
9
|
+
export const loader: Route.Loader = async ({ api }) => {
|
|
9
10
|
const res = await api.count.get()
|
|
10
11
|
return { count: res.ok ? res.data.count : 0 }
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export const actionOutput = t.object({ ok: t.boolean() })
|
|
14
15
|
|
|
15
|
-
export async
|
|
16
|
+
export const action: Route.Action = async ({ api }) => {
|
|
16
17
|
await api.count.post()
|
|
17
18
|
return { ok: true }
|
|
18
19
|
}
|
|
@@ -11,7 +11,8 @@ bun run dev # nifra dev → true-HMR dev server (Bun + nifra SSR) at http
|
|
|
11
11
|
|
|
12
12
|
The backend starter includes response security headers, explicit-origin CORS, a 30-second request
|
|
13
13
|
deadline, bounded concurrency, and a development rate limit. Its in-memory rate-limit store refuses
|
|
14
|
-
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true
|
|
14
|
+
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true`, which `bun run start` sets for its one local
|
|
15
|
+
process. Set it on a deploy only for a single instance; use a shared store for multi-instance deploys.
|
|
15
16
|
For cookie sessions, add signed CSRF middleware and require both runtime authentication and CSRF
|
|
16
17
|
evidence in `nifra.assurance.ts`.
|
|
17
18
|
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import Layout from "./_layout"
|
|
2
|
-
|
|
3
1
|
export const meta = { title: "Not found" }
|
|
4
2
|
|
|
5
|
-
// nifra's catch-all renders _404 without the layout chain, so it wraps itself in the root Layout.
|
|
6
3
|
export default function NotFound() {
|
|
7
4
|
return (
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</section>
|
|
18
|
-
</Layout>
|
|
5
|
+
<section className="hero">
|
|
6
|
+
<h1>
|
|
7
|
+
<span className="grad">404</span>
|
|
8
|
+
</h1>
|
|
9
|
+
<p>That page doesn't exist.</p>
|
|
10
|
+
<a className="btn" href="/">
|
|
11
|
+
← Back home
|
|
12
|
+
</a>
|
|
13
|
+
</section>
|
|
19
14
|
)
|
|
20
15
|
}
|
|
@@ -11,7 +11,8 @@ bun run dev # nifra dev → true-HMR dev server (Bun + nifra SSR) at http
|
|
|
11
11
|
|
|
12
12
|
The backend starter includes response security headers, explicit-origin CORS, a 30-second request
|
|
13
13
|
deadline, bounded concurrency, and a development rate limit. Its in-memory rate-limit store refuses
|
|
14
|
-
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true
|
|
14
|
+
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true`, which `bun run start` sets for its one local
|
|
15
|
+
process. Set it on a deploy only for a single instance; use a shared store for multi-instance deploys.
|
|
15
16
|
For cookie sessions, add signed CSRF middleware and require both runtime authentication and CSRF
|
|
16
17
|
evidence in `nifra.assurance.ts`.
|
|
17
18
|
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import Layout from "./_layout"
|
|
2
|
-
|
|
3
1
|
export const meta = { title: "Not found" }
|
|
4
2
|
|
|
5
|
-
// nifra's catch-all renders _404 without the layout chain, so it wraps itself in the root Layout.
|
|
6
3
|
export default function NotFound() {
|
|
7
4
|
return (
|
|
8
|
-
<
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</section>
|
|
18
|
-
</Layout>
|
|
5
|
+
<section class="hero">
|
|
6
|
+
<h1>
|
|
7
|
+
<span class="grad">404</span>
|
|
8
|
+
</h1>
|
|
9
|
+
<p>That page doesn't exist.</p>
|
|
10
|
+
<a class="btn" href="/">
|
|
11
|
+
← Back home
|
|
12
|
+
</a>
|
|
13
|
+
</section>
|
|
19
14
|
)
|
|
20
15
|
}
|
|
@@ -11,7 +11,8 @@ bun run dev # nifra dev → true-HMR dev server (Bun + nifra SSR) at http
|
|
|
11
11
|
|
|
12
12
|
The backend starter includes response security headers, explicit-origin CORS, a 30-second request
|
|
13
13
|
deadline, bounded concurrency, and a development rate limit. Its in-memory rate-limit store refuses
|
|
14
|
-
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true
|
|
14
|
+
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true`, which `bun run start` sets for its one local
|
|
15
|
+
process. Set it on a deploy only for a single instance; use a shared store for multi-instance deploys.
|
|
15
16
|
For cookie sessions, add signed CSRF middleware and require both runtime authentication and CSRF
|
|
16
17
|
evidence in `nifra.assurance.ts`.
|
|
17
18
|
|
|
@@ -2,15 +2,8 @@
|
|
|
2
2
|
export const meta = { title: "Not found" }
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
</
|
|
9
|
-
|
|
10
|
-
<Layout>
|
|
11
|
-
<section class="hero">
|
|
12
|
-
<h1><span class="grad">404</span></h1>
|
|
13
|
-
<p>That page doesn't exist.</p>
|
|
14
|
-
<a class="btn" href="/">← Back home</a>
|
|
15
|
-
</section>
|
|
16
|
-
</Layout>
|
|
5
|
+
<section class="hero">
|
|
6
|
+
<h1><span class="grad">404</span></h1>
|
|
7
|
+
<p>That page doesn't exist.</p>
|
|
8
|
+
<a class="btn" href="/">← Back home</a>
|
|
9
|
+
</section>
|
|
@@ -11,7 +11,8 @@ bun run dev # nifra dev → true-HMR dev server (Bun + nifra SSR) at http
|
|
|
11
11
|
|
|
12
12
|
The backend starter includes response security headers, explicit-origin CORS, a 30-second request
|
|
13
13
|
deadline, bounded concurrency, and a development rate limit. Its in-memory rate-limit store refuses
|
|
14
|
-
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true
|
|
14
|
+
production unless `NIFRA_ALLOW_MEMORY_RATE_LIMIT=true`, which `bun run start` sets for its one local
|
|
15
|
+
process. Set it on a deploy only for a single instance; use a shared store for multi-instance deploys.
|
|
15
16
|
For cookie sessions, add signed CSRF middleware and require both runtime authentication and CSRF
|
|
16
17
|
evidence in `nifra.assurance.ts`.
|
|
17
18
|
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
<!-- nifra's catch-all renders _404 WITHOUT the layout chain, so it wraps itself in the root Layout. -->
|
|
2
1
|
<script lang="ts">
|
|
3
2
|
export const meta = { title: "Not found" }
|
|
4
3
|
</script>
|
|
5
4
|
|
|
6
|
-
<script setup lang="ts">
|
|
7
|
-
import Layout from "./_layout.vue"
|
|
8
|
-
</script>
|
|
9
|
-
|
|
10
5
|
<template>
|
|
11
|
-
<
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
</section>
|
|
17
|
-
</Layout>
|
|
6
|
+
<section class="hero">
|
|
7
|
+
<h1><span class="grad">404</span></h1>
|
|
8
|
+
<p>That page doesn't exist.</p>
|
|
9
|
+
<a class="btn" href="/">← Back home</a>
|
|
10
|
+
</section>
|
|
18
11
|
</template>
|