@nifrajs/cli 2.0.0 → 2.2.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/check.d.ts +4 -1
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +71 -0
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +165 -23
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +5 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +66 -6
- package/dist/doctor.js.map +1 -1
- package/dist/load.d.ts +11 -0
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +30 -0
- package/dist/load.js.map +1 -1
- package/dist/mcp-docs-tools.d.ts.map +1 -1
- package/dist/mcp-docs-tools.js +7 -3
- package/dist/mcp-docs-tools.js.map +1 -1
- package/dist/mcp-http.js +1 -1
- package/dist/mcp-render.js +9 -1
- package/dist/mcp-render.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +44 -2
- package/dist/mcp.js.map +1 -1
- package/dist/pipeline-guard.d.ts +83 -0
- package/dist/pipeline-guard.d.ts.map +1 -0
- package/dist/pipeline-guard.js +136 -0
- package/dist/pipeline-guard.js.map +1 -0
- package/dist/types-search.d.ts +1 -1
- package/dist/types-search.d.ts.map +1 -1
- package/dist/types-search.js +47 -2
- package/dist/types-search.js.map +1 -1
- package/docs/examples.json +6 -0
- package/docs/llms-full.txt +169 -35
- package/docs/types.json +1618 -45
- package/package.json +9 -9
- package/src/check.ts +91 -0
- package/src/cli.ts +173 -24
- package/src/doctor.ts +71 -6
- package/src/load.ts +44 -0
- package/src/mcp-docs-tools.ts +13 -3
- package/src/mcp-http.ts +1 -1
- package/src/mcp-render.ts +9 -1
- package/src/mcp.ts +45 -2
- package/src/pipeline-guard.ts +186 -0
- package/src/types-search.ts +50 -1
package/docs/llms-full.txt
CHANGED
|
@@ -780,15 +780,15 @@ cache. Pass the same `draftSecret` to `createWebApp` and
|
|
|
780
780
|
|
|
781
781
|
```ts
|
|
782
782
|
// doc-check: skip — fragment spanning three files: your `app`, `env`, `redirect`, and route `slug`.
|
|
783
|
-
// 1.
|
|
784
|
-
|
|
783
|
+
// 1. Mount the preview entry point your CMS links to. It checks the token in CONSTANT TIME,
|
|
784
|
+
// sets the signed HttpOnly cookie, and refuses an off-site ?to= (an open redirect otherwise).
|
|
785
|
+
import { previewEndpoint, disableDraft } from "@nifrajs/web"
|
|
785
786
|
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
await enableDraft(c, env.DRAFT_SECRET) // signed, HttpOnly cookie
|
|
789
|
-
return redirect(String(c.query.to ?? "/"))
|
|
790
|
-
})
|
|
787
|
+
const preview = previewEndpoint({ secret: env.PREVIEW_TOKEN, draftSecret: env.DRAFT_SECRET })
|
|
788
|
+
app.get("/api/preview", (c) => preview(c.req)) // ?token=…&to=/posts/hello
|
|
791
789
|
app.get("/api/preview/exit", (c) => (disableDraft(c), redirect("/")))
|
|
790
|
+
// Gating it yourself instead? Use enableDraft(c, env.DRAFT_SECRET) AFTER your own check — and
|
|
791
|
+
// compare the token in constant time, since === leaks it one character at a time.
|
|
792
792
|
|
|
793
793
|
// 2. Loaders branch on ctx.draft to load unpublished content.
|
|
794
794
|
export async function loader({ api, draft }: LoaderArgs<typeof app>) {
|
|
@@ -1731,12 +1731,23 @@ treated as a substitute for static provenance.
|
|
|
1731
1731
|
|
|
1732
1732
|
```ts
|
|
1733
1733
|
// doc-check: skip — combines route and assurance-config excerpts.
|
|
1734
|
-
// route: exact effect declaration +
|
|
1735
|
-
import {
|
|
1734
|
+
// route: exact effect declaration + correlated execution at the owned adapter seam
|
|
1735
|
+
import { executeCapability } from "@nifrajs/core/capabilities"
|
|
1736
|
+
|
|
1737
|
+
app.aroundCapability(async (effect, next) => {
|
|
1738
|
+
// Ask an entitlement service or short-lived approval gate using token-only metadata.
|
|
1739
|
+
// effect.signal aborts on request cancellation or the interceptor timeout.
|
|
1740
|
+
if (!policyAllows(effect.capability, effect.target)) return // deny fail-closed
|
|
1741
|
+
await next()
|
|
1742
|
+
}, { timeoutMs: 5_000 })
|
|
1736
1743
|
|
|
1737
1744
|
app.post("/orders", { capabilities: ["db.write"] }, async (c) => {
|
|
1738
|
-
|
|
1739
|
-
|
|
1745
|
+
return executeCapability(
|
|
1746
|
+
c,
|
|
1747
|
+
"db.write",
|
|
1748
|
+
{ target: "repo:orders" },
|
|
1749
|
+
({ signal }) => orders.write(c.body, { signal }),
|
|
1750
|
+
)
|
|
1740
1751
|
})
|
|
1741
1752
|
|
|
1742
1753
|
// in nifra.assurance.ts, alongside policy:
|
|
@@ -1766,6 +1777,51 @@ Domain writes on `GET`/`HEAD` are hard violations. Each write definition may
|
|
|
1766
1777
|
require request idempotency or durable command/provider-key evidence. The lockfile contains only
|
|
1767
1778
|
method, path, and capability tokens—no payloads or tenant data—and CI never rewrites it.
|
|
1768
1779
|
|
|
1780
|
+
### Durable approval, compensation, and reconciliation
|
|
1781
|
+
|
|
1782
|
+
The durable execution subpath turns the capability boundary into a crash-visible workflow.
|
|
1783
|
+
Approval resumes are HMAC-signed, expire, bind to the tenant, principal, capability, target, and
|
|
1784
|
+
digest, and are consumed atomically once. The effect journal marks execution before the provider
|
|
1785
|
+
call, so a crash after an external commit remains `ambiguous` for reconciliation instead
|
|
1786
|
+
of being retried blindly. Typed sagas persist compensation arguments separately from the sealed
|
|
1787
|
+
token-only ledger and compensate committed steps in reverse order with retry/backoff state.
|
|
1788
|
+
|
|
1789
|
+
```ts
|
|
1790
|
+
// doc-check: skip — durable store implementations are deployment-specific.
|
|
1791
|
+
import {
|
|
1792
|
+
createApprovalCoordinator,
|
|
1793
|
+
createDurableEffectJournal,
|
|
1794
|
+
createSagaEngine,
|
|
1795
|
+
} from "@nifrajs/core/durable-execution"
|
|
1796
|
+
import { effectTracing } from "@nifrajs/otel/effects"
|
|
1797
|
+
|
|
1798
|
+
const effects = effectTracing({ exporter })
|
|
1799
|
+
app.use(effects)
|
|
1800
|
+
|
|
1801
|
+
const approval = createApprovalCoordinator({
|
|
1802
|
+
store: durableApprovalStore, // must declare durability: "durable"
|
|
1803
|
+
secret: approvalHmacKey, // 32+ random bytes, stored separately
|
|
1804
|
+
})
|
|
1805
|
+
const journal = createDurableEffectJournal({ store: durableEffectStore })
|
|
1806
|
+
|
|
1807
|
+
await executeCapability(c, "payments.charge", {
|
|
1808
|
+
target: "provider:stripe",
|
|
1809
|
+
digest,
|
|
1810
|
+
journal,
|
|
1811
|
+
approval: {
|
|
1812
|
+
gate: approval,
|
|
1813
|
+
tenantId: c.principal.tenantId,
|
|
1814
|
+
principalId: c.principal.userId,
|
|
1815
|
+
resumeToken,
|
|
1816
|
+
},
|
|
1817
|
+
}, ({ effectId, signal }) => payments.charge(input, { idempotencyKey: effectId, signal }))
|
|
1818
|
+
|
|
1819
|
+
const sagas = createSagaEngine({
|
|
1820
|
+
store: durableSagaStore,
|
|
1821
|
+
observer: effects.observer,
|
|
1822
|
+
})
|
|
1823
|
+
```
|
|
1824
|
+
|
|
1769
1825
|
### Already built in
|
|
1770
1826
|
|
|
1771
1827
|
These add to Nifra's standing defaults: strict-by-default schema validation (unknown fields
|
|
@@ -2761,11 +2817,13 @@ the command printed by the build.
|
|
|
2761
2817
|
|
|
2762
2818
|
## Nifra — Dev & HMR
|
|
2763
2819
|
|
|
2764
|
-
> Use `nifra dev` for a Vite-backed state-preserving HMR loop, or `@nifrajs/web/dev` for a Bun-native
|
|
2820
|
+
> Use `nifra dev` for a Vite-backed state-preserving HMR loop, or `@nifrajs/web/dev` for a Bun-native HMR loop with no Vite dependency. Production builds use Bun.
|
|
2765
2821
|
|
|
2766
|
-
Nifra gives you two local development loops
|
|
2767
|
-
|
|
2768
|
-
|
|
2822
|
+
Nifra gives you two local development loops, and the rule between them is that one
|
|
2823
|
+
toolchain owns a whole phase. **Both** give you React Fast Refresh with state
|
|
2824
|
+
preserved. Use `nifra dev` (Vite) for the plugin ecosystem, or
|
|
2825
|
+
`nifra dev --bun` for one bundler across dev and prod with no Vite dependency.
|
|
2826
|
+
Both serve your real SSR app locally, and neither mixes the two bundlers in one process.
|
|
2769
2827
|
|
|
2770
2828
|
### Two loops, same app
|
|
2771
2829
|
|
|
@@ -2776,9 +2834,9 @@ use when
|
|
|
2776
2834
|
|
|
2777
2835
|
`@nifrajs/web/dev`
|
|
2778
2836
|
|
|
2779
|
-
|
|
2837
|
+
Bun HMR + Fast Refresh (native)
|
|
2780
2838
|
none (Bun only)
|
|
2781
|
-
|
|
2839
|
+
one bundler dev+prod; no Vite dep (no CSS Modules)
|
|
2782
2840
|
|
|
2783
2841
|
`@nifrajs/web/vite`
|
|
2784
2842
|
|
|
@@ -2826,50 +2884,44 @@ can edit routes, components, loaders, actions, and styles in one local loop.
|
|
|
2826
2884
|
|
|
2827
2885
|
### Framework coverage
|
|
2828
2886
|
|
|
2829
|
-
All five adapters have a dev setup. Pass the framework's official Vite plugin
|
|
2830
|
-
|
|
2887
|
+
All five adapters have a dev setup. Pass the framework's official Vite plugin and you are
|
|
2888
|
+
done: under `nifra dev` the Vite pipeline compiles both halves, so the same plugin
|
|
2889
|
+
that transforms your components for the browser also transforms them for SSR. No separate
|
|
2890
|
+
server-side compiler plugin to preload, and no way for the two halves to disagree about a
|
|
2891
|
+
specifier.
|
|
2831
2892
|
|
|
2832
2893
|
framework
|
|
2833
|
-
|
|
2834
|
-
SSR compile
|
|
2894
|
+
Vite plugin (client + SSR)
|
|
2835
2895
|
local state on edit
|
|
2836
2896
|
|
|
2837
2897
|
React
|
|
2838
2898
|
|
|
2839
2899
|
`@vitejs/plugin-react`
|
|
2840
2900
|
|
|
2841
|
-
Bun-native
|
|
2842
2901
|
preserved (Fast Refresh)
|
|
2843
2902
|
|
|
2844
2903
|
Preact
|
|
2845
2904
|
|
|
2846
2905
|
`@preact/preset-vite`
|
|
2847
2906
|
|
|
2848
|
-
Bun-native
|
|
2849
2907
|
preserved (prefresh)
|
|
2850
2908
|
|
|
2851
2909
|
Vue
|
|
2852
2910
|
|
|
2853
2911
|
`@vitejs/plugin-vue`
|
|
2854
2912
|
|
|
2855
|
-
`vueBunPlugin` preload
|
|
2856
|
-
|
|
2857
2913
|
preserved (rerender)
|
|
2858
2914
|
|
|
2859
2915
|
Solid
|
|
2860
2916
|
|
|
2861
2917
|
`vite-plugin-solid` (`{ ssr: true }`)
|
|
2862
2918
|
|
|
2863
|
-
`solidBunPlugin` preload
|
|
2864
|
-
|
|
2865
2919
|
resets (solid-refresh)
|
|
2866
2920
|
|
|
2867
2921
|
Svelte
|
|
2868
2922
|
|
|
2869
2923
|
`@sveltejs/vite-plugin-svelte`
|
|
2870
2924
|
|
|
2871
|
-
`svelteBunPlugin` preload
|
|
2872
|
-
|
|
2873
2925
|
resets (svelte HMR)
|
|
2874
2926
|
|
|
2875
2927
|
For **React, Preact, and Vue**, an edit hot-swaps with component state preserved.
|
|
@@ -2912,17 +2964,72 @@ instead.
|
|
|
2912
2964
|
|
|
2913
2965
|
### The zero-dep alternative
|
|
2914
2966
|
|
|
2915
|
-
`@nifrajs/web/dev` is
|
|
2916
|
-
|
|
2967
|
+
`nifra dev --bun` (library: `@nifrajs/web/dev`) is self-contained —
|
|
2968
|
+
no Vite anywhere. `Bun.serve`'s native HMR bundles and hot-reloads the client while
|
|
2969
|
+
Bun's runtime resolves SSR, and it applies **React Fast Refresh natively**: editing
|
|
2970
|
+
a component-only module swaps its markup with `useState` state intact, no reload. The
|
|
2971
|
+
boundary rule is the same as Vite's (see below). The real prize is that dev and production use
|
|
2972
|
+
the _same bundler_, so the dev/prod seam disappears.
|
|
2973
|
+
|
|
2974
|
+
One gap: **CSS Modules**. Bun's dev-server bundler has no
|
|
2975
|
+
`*.module.css` transform (its production `Bun.build` does), so the CLI
|
|
2976
|
+
refuses `--bun` for a CSS-Modules app rather than serving a broken client. Plain CSS
|
|
2977
|
+
and Tailwind work normally.
|
|
2917
2978
|
|
|
2918
2979
|
```ts
|
|
2919
2980
|
// doc-check: skip — fragment: routesDir/outDir/clientModule/createApp are your app's dev config.
|
|
2920
|
-
// dev.ts — Bun-native
|
|
2981
|
+
// dev.ts — Bun-native HMR, no Vite in the process
|
|
2921
2982
|
import { createDevServer } from "@nifrajs/web/dev"
|
|
2922
|
-
//
|
|
2983
|
+
// Bun.serve bundles + hot-reloads the client; Bun's runtime resolves SSR. An edit reloads the
|
|
2984
|
+
// changed module graph — with React Fast Refresh (state preserved) applied natively by Bun, no plugin.
|
|
2985
|
+
// CSS + the entry URL come from Bun. Plain CSS/Tailwind work; *.module.css does not (Bun's dev bundler).
|
|
2923
2986
|
const server = await createDevServer({ routesDir, outDir, clientModule, createApp })
|
|
2924
2987
|
```
|
|
2925
2988
|
|
|
2989
|
+
### Production is Bun — with a Vite escape hatch
|
|
2990
|
+
|
|
2991
|
+
Production builds default to **Bun** (`buildClient` /
|
|
2992
|
+
`nifra build`): faster, Bun-native, and the profile Nifra is tuned for. If an app
|
|
2993
|
+
genuinely needs a **Vite-only transform** with no Bun equivalent, you can run a
|
|
2994
|
+
Vite/Rollup production client build instead — but it must carry the same client-leak guards the
|
|
2995
|
+
Bun build enforces, or a second pipeline becomes a way for server-only code to reach the
|
|
2996
|
+
browser unnoticed. Add `viteLeakGuard()`: it runs the _same_ detection and
|
|
2997
|
+
emits the _same_ error as the Bun build (one implementation, adapted to Rollup's graph),
|
|
2998
|
+
so `node:` builtins and `server-only` modules fail the build either way.
|
|
2999
|
+
|
|
3000
|
+
```ts
|
|
3001
|
+
// vite.config.ts — a Vite/Rollup PRODUCTION client build (the escape hatch, not the default).
|
|
3002
|
+
// Only reach for this when an app needs a Vite-only transform with no Bun equivalent; nifra's default
|
|
3003
|
+
// production bundler stays Bun (buildClient), which is faster and Bun-native.
|
|
3004
|
+
import { viteLeakGuard } from "@nifrajs/web/plugins/vite-leak-guard"
|
|
3005
|
+
|
|
3006
|
+
export default {
|
|
3007
|
+
build: {
|
|
3008
|
+
// The SAME two client-leak guards nifra's Bun build runs — server-only code or a node: builtin
|
|
3009
|
+
// reaching the browser fails the build, with the identical error message. A second production
|
|
3010
|
+
// pipeline must not ship without them.
|
|
3011
|
+
rollupOptions: { plugins: [viteLeakGuard()] },
|
|
3012
|
+
},
|
|
3013
|
+
}
|
|
3014
|
+
```
|
|
3015
|
+
|
|
3016
|
+
For the full deploy, `nifra build --vite --target <t>` builds
|
|
3017
|
+
_both_ halves — client and SSR worker — with Vite and assembles the identical per-target
|
|
3018
|
+
deploy dir the Bun build produces (same `_worker.js` / `server.js`, same
|
|
3019
|
+
`_routes.json`, same prerender + size report). Only the bundler differs: both go
|
|
3020
|
+
through one orchestrator, so the deploy shape can't drift between pipelines. The leak guards run
|
|
3021
|
+
automatically.
|
|
3022
|
+
|
|
3023
|
+
You usually don't need the flag. `nifra build` picks the bundler from your config:
|
|
3024
|
+
Bun by default, but Vite when your _only_ transforms are `vitePlugins`, and it
|
|
3025
|
+
prints the reason. That case is the one where the phase defaults would otherwise bite — dev runs
|
|
3026
|
+
Vite, so your plugins run; the Bun build reads `clientPlugins`/
|
|
3027
|
+
`serverPlugins` and never `vitePlugins`, so it would drop them and still
|
|
3028
|
+
succeed. An app declaring both slots has supplied the Bun equivalent on purpose, so it keeps the
|
|
3029
|
+
faster Bun default. `--vite` and `--bun` force the choice; `--bun`
|
|
3030
|
+
is refused for a `vitePlugins`-only app rather than silently building without your
|
|
3031
|
+
transforms.
|
|
3032
|
+
|
|
2926
3033
|
### Styling (CSS)
|
|
2927
3034
|
|
|
2928
3035
|
Import a stylesheet anywhere — `import "./app.css"` in a route, layout, or component.
|
|
@@ -5754,6 +5861,33 @@ import { defineAssurancePolicy } from "@nifrajs/core/assurance"
|
|
|
5754
5861
|
IP-restriction, and security-header modules publish reflection-safe enforcement evidence.
|
|
5755
5862
|
An ordered `AssurancePolicy` classifies every route and fails closed on missing or forbidden
|
|
5756
5863
|
evidence without adding work to the request path.
|
|
5864
|
+
- **Owned effect execution.** `executeCapability()` correlates intent and terminal evidence with an
|
|
5865
|
+
opaque `effectId`, records outcomes automatically, and forwards request cancellation. Add
|
|
5866
|
+
order-scoped `aroundCapability()` policies for async approval/admission; they receive token-only
|
|
5867
|
+
metadata, have bounded timeouts, and must call `next()` exactly once before the effect can run.
|
|
5868
|
+
- **Durable workflows (opt in).** `@nifrajs/core/durable-execution` provides tenant/principal-bound,
|
|
5869
|
+
signed single-use approval resumes; a durable effect journal + reconciliation scanner; and a typed
|
|
5870
|
+
saga state machine with reverse compensation, retry/backoff, and ambiguous-crash detection. Production
|
|
5871
|
+
constructors reject stores that do not declare `durability: "durable"`. Operational scans use bounded
|
|
5872
|
+
cursor pages through `reconcileEffectsPage()` / `reconcileSagasPage()`. Provider-confirmed manual
|
|
5873
|
+
review uses effect-ID-bound `resolveAmbiguity()`, followed by `resume()` or `compensate()`.
|
|
5874
|
+
- **Production durable adapters.** `@nifrajs/core/durable-adapters` supplies
|
|
5875
|
+
`PostgresDurableExecutionAdapter`, `SQLiteDurableExecutionAdapter`, and
|
|
5876
|
+
`DurableObjectExecutionAdapter`. Each exposes compatible `effects`, `approvals`, `sagas`, and
|
|
5877
|
+
`leases` stores. Run `runDurableExecutionAdapterConformance()` against the deployment backend.
|
|
5878
|
+
- **Bounded reconciliation workers.** `@nifrajs/core/reconciliation-worker` runs effect or saga
|
|
5879
|
+
scans under an atomic lease with durable cursor checkpoints, a finite page budget, bounded handler
|
|
5880
|
+
concurrency, filters, cancellation, and token-only metrics. A worker invocation always terminates.
|
|
5881
|
+
- **Rich wire values (opt in).** `@nifrajs/core/wire` round-trips dates, bigints, maps, sets, binary,
|
|
5882
|
+
shared references, and cycles through JSON transports. Decoding validates every reachable shape,
|
|
5883
|
+
preserves owned `__proto__` keys without prototype mutation, and enforces configurable node, depth,
|
|
5884
|
+
collection-entry, and decoded-byte limits.
|
|
5885
|
+
- **Versioned transport codecs (opt in).** Add `.use(transportCodecs(registry))` from
|
|
5886
|
+
`@nifrajs/core/transport-plugin` and configure the typed
|
|
5887
|
+
client's `transport` option with the same registry. `@nifrajs/core/transport-codec` negotiates
|
|
5888
|
+
bounded HTTP representations and supplies the same frame/loader adapters for WebSockets and
|
|
5889
|
+
deferred data. Import `richWireCodec()` from `@nifrajs/core/transport-codec-rich`; the separate
|
|
5890
|
+
subpath keeps rich-wire code out of plain JSON bundles.
|
|
5757
5891
|
|
|
5758
5892
|
```ts
|
|
5759
5893
|
import { defineAssurancePolicy, evaluateRouteAssurance, NIFRA_ASSURANCE } from "@nifrajs/core/assurance"
|
|
@@ -7375,7 +7509,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
|
|
|
7375
7509
|
|
|
7376
7510
|
## @nifrajs/otel
|
|
7377
7511
|
|
|
7378
|
-
`ActiveObservation`, `AttributeValue`, `causalitySpanLink`, `combineObservationAdapters`, `consoleSpanExporter`, `createObservationLifecycle`, `EndObservation`, `formatTraceparent`, `generateSpanId`, `generateTraceId`, `NifraSpan`, `ObservationAdapter`, `ObservationClock`, `ObservationContext`, `ObservationLifecycle`, `ObservationLifecycleOptions`, `ObservationLink`, `ObservationParent`, `otlpExporter`, `OtlpExporter`, `OtlpExporterOptions`, `ParsedTraceparent`, `parseTraceparent`, `SpanStatus`, `StartObservation`, `TraceContext`, `traceHeaders`, `tracing`, `TracingOptions`
|
|
7512
|
+
`ActiveObservation`, `AttributeValue`, `causalitySpanLink`, `combineObservationAdapters`, `consoleSpanExporter`, `createObservationLifecycle`, `effectTracing`, `EffectTracingOptions`, `EffectTracingPlugin`, `EndObservation`, `formatTraceparent`, `generateSpanId`, `generateTraceId`, `NifraSpan`, `ObservationAdapter`, `ObservationClock`, `ObservationContext`, `ObservationLifecycle`, `ObservationLifecycleOptions`, `ObservationLink`, `ObservationParent`, `otlpExporter`, `OtlpExporter`, `OtlpExporterOptions`, `ParsedTraceparent`, `parseTraceparent`, `SpanStatus`, `StartObservation`, `TraceContext`, `traceHeaders`, `tracing`, `TracingOptions`
|
|
7379
7513
|
|
|
7380
7514
|
## @nifrajs/prompt
|
|
7381
7515
|
|
|
@@ -7403,7 +7537,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
|
|
|
7403
7537
|
|
|
7404
7538
|
## @nifrajs/web
|
|
7405
7539
|
|
|
7406
|
-
`Action`, `ACTION_GLOBAL`, `apiKey`, `assertRenderAdapterConformance`, `BrowserNavigate`, `buildManifest`, `CachedResponse`, `CacheStore`, `canonical`, `clientEntry`, `ClientRouter`, `ClientRouterOptions`, `createClientRouter`, `createMatcher`, `createMutation`, `createQueryClient`, `createWebApp`, `CreateWebAppOptions`, `DATA_GLOBAL`, `DATA_HEADER`, `DEFAULT_DEV_PORT`, `defer`, `Deferred`, `DehydratedState`, `disableDraft`, `DRAFT_COOKIE`, `DraftCookieControls`, `enableDraft`, `EnableDraftOptions`, `enumerateStaticRoutes`, `Fetcher`, `FetcherState`, `FetchRouteData`, `filePathToPattern`, `filePathToPatterns`, `FontDisplay`, `fontFace`, `FontFace`, `fontPreload`, `FontPreloadInput`, `FontSource`, `generateClientEntry`, `GenerateClientEntryOptions`, `generateServerManifest`, `GenerateServerManifestOptions`, `getBrowserNavigate`, `GetStaticPaths`, `hashQueryKey`, `InfiniteData`, `InfiniteQueryHandle`, `InfiniteQueryOptions`, `isDraftEnabled`, `ISR_REVALIDATE_HEADER`, `ISR_STATUS_HEADER`, `ISRApp`, `ISROptions`, `ISRPlatform`, `jsonLd`, `KVCacheStore`, `KVCacheStoreOptions`, `KVNamespaceLike`, `LayoutEntry`, `LinkDescriptor`, `Loader`, `LoaderContext`, `manifest`, `Manifest`, `MemoryCacheStore`, `MemoryCacheStoreOptions`, `mergeHeads`, `meta`, `Meta`, `MetaArgs`, `MetaInput`, `MountRouterOptions`, `MutationCallbacks`, `MutationHandle`, `MutationState`, `MutationStatus`, `NavigateOptions`, `openGraph`, `OpenGraphInput`, `PRE_HYDRATION_GUARD`, `QueryClient`, `QueryClientOptions`, `QueryHandle`, `QueryOptions`, `QueryState`, `QueryStatus`, `redirect`, `REDIRECT_HEADER`, `RedirectOptions`, `RenderAdapter`, `RenderAdapterConformanceError`, `RenderAdapterConformanceFixture`, `RenderedPage`, `renderPage`, `RenderPageOptions`, `renderPageResult`, `RenderProps`, `resolveMeta`, `revalidate`, `REVALIDATE_HEADER`, `revalidateEndpoint`, `RevalidateEndpointOptions`, `RevalidateResult`, `ROUTE_GLOBAL`, `RouteEntry`, `RouteMatch`, `RouteModule`, `RoutePattern`, `RouterState`, `routeStyles`, `ScriptDescriptor`, `serializeData`, `ServerOnly`, `setBrowserNavigate`, `StaticPath`, `StaticPaths`, `StaticRoutes`, `styles`, `Submission`, `SubmitOptions`, `withISR`
|
|
7540
|
+
`Action`, `ACTION_GLOBAL`, `apiKey`, `assertRenderAdapterConformance`, `BrowserNavigate`, `buildManifest`, `CachedResponse`, `CacheStore`, `canonical`, `clientEntry`, `ClientRouter`, `ClientRouterOptions`, `createClientRouter`, `createMatcher`, `createMutation`, `createQueryClient`, `createWebApp`, `CreateWebAppOptions`, `DATA_GLOBAL`, `DATA_HEADER`, `DEFAULT_DEV_PORT`, `defer`, `Deferred`, `DehydratedState`, `disableDraft`, `DRAFT_COOKIE`, `DraftCookieControls`, `enableDraft`, `EnableDraftOptions`, `enumerateStaticRoutes`, `Fetcher`, `FetcherState`, `FetchRouteData`, `filePathToPattern`, `filePathToPatterns`, `FontDisplay`, `fontFace`, `FontFace`, `fontPreload`, `FontPreloadInput`, `FontSource`, `gate`, `generateClientEntry`, `GenerateClientEntryOptions`, `generateServerManifest`, `GenerateServerManifestOptions`, `getBrowserNavigate`, `GetStaticPaths`, `gone`, `hashQueryKey`, `InfiniteData`, `InfiniteQueryHandle`, `InfiniteQueryOptions`, `isDraftEnabled`, `ISR_REVALIDATE_HEADER`, `ISR_STATUS_HEADER`, `ISRApp`, `ISROptions`, `ISRPlatform`, `jsonLd`, `KVCacheStore`, `KVCacheStoreOptions`, `KVNamespaceLike`, `LAYOUT_DATA_GLOBAL`, `LayoutEntry`, `LinkDescriptor`, `Loader`, `LoaderContext`, `manifest`, `Manifest`, `MemoryCacheStore`, `MemoryCacheStoreOptions`, `mergeHeads`, `meta`, `Meta`, `MetaArgs`, `MetaInput`, `MountRouterOptions`, `MutationCallbacks`, `MutationHandle`, `MutationState`, `MutationStatus`, `NAV_FROM_HEADER`, `NavigateOptions`, `notFound`, `openGraph`, `OpenGraphInput`, `PRE_HYDRATION_GUARD`, `previewEndpoint`, `PreviewEndpointOptions`, `PublicDirCache`, `QueryClient`, `QueryClientOptions`, `QueryHandle`, `QueryOptions`, `QueryState`, `QueryStatus`, `redirect`, `REDIRECT_HEADER`, `RedirectOptions`, `RenderAdapter`, `RenderAdapterConformanceError`, `RenderAdapterConformanceFixture`, `RenderedPage`, `renderPage`, `RenderPageOptions`, `renderPageResult`, `RenderProps`, `resolveMeta`, `resolvePublicPath`, `RETAIN_HEADER`, `revalidate`, `REVALIDATE_HEADER`, `revalidateEndpoint`, `RevalidateEndpointOptions`, `RevalidateResult`, `ROUTE_GLOBAL`, `RouteEntry`, `RouteMatch`, `RouteModule`, `RoutePattern`, `RouterState`, `routeStyles`, `ScriptDescriptor`, `serializeData`, `servePublicDir`, `ServePublicDirOptions`, `ServerOnly`, `setBrowserNavigate`, `StaticPath`, `StaticPaths`, `StaticRoutes`, `STATUS_HEADER`, `statusPage`, `StatusPageOptions`, `styles`, `Submission`, `SubmitOptions`, `withISR`
|
|
7407
7541
|
|
|
7408
7542
|
## @nifrajs/web-preact
|
|
7409
7543
|
|