@nifrajs/cli 2.3.0 → 2.4.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.map +1 -1
- package/dist/check.js +4 -1
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -4
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +4 -0
- package/dist/doctor.js.map +1 -1
- package/dist/learn.d.ts +32 -0
- package/dist/learn.d.ts.map +1 -0
- package/dist/learn.js +127 -0
- package/dist/learn.js.map +1 -0
- package/dist/mcp-app-tool.d.ts +14 -0
- package/dist/mcp-app-tool.d.ts.map +1 -0
- package/dist/mcp-app-tool.js +80 -0
- package/dist/mcp-app-tool.js.map +1 -0
- package/dist/mcp-docs-tools.d.ts +1 -1
- package/dist/mcp-docs-tools.d.ts.map +1 -1
- package/dist/mcp-docs-tools.js +17 -1
- package/dist/mcp-docs-tools.js.map +1 -1
- package/dist/mcp-http.d.ts +10 -6
- package/dist/mcp-http.d.ts.map +1 -1
- package/dist/mcp-http.js +26 -12
- package/dist/mcp-http.js.map +1 -1
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +188 -0
- package/dist/mcp.js.map +1 -1
- package/dist/upgrade.d.ts +13 -2
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +105 -7
- package/dist/upgrade.js.map +1 -1
- package/docs/llms-full.txt +75 -1
- package/docs/types.json +162 -11
- package/package.json +9 -9
- package/src/check.ts +5 -1
- package/src/cli.ts +21 -4
- package/src/doctor.ts +8 -0
- package/src/learn.ts +152 -0
- package/src/mcp-app-tool.ts +86 -0
- package/src/mcp-docs-tools.ts +18 -1
- package/src/mcp-http.ts +27 -14
- package/src/mcp.ts +237 -0
- package/src/upgrade.ts +125 -7
package/dist/upgrade.js
CHANGED
|
@@ -28,7 +28,7 @@ const DEP_FIELDS = [
|
|
|
28
28
|
];
|
|
29
29
|
// Only a bare semver spec is rewritten. Anything else - workspace:*, link:/file:, npm: aliases, git
|
|
30
30
|
// urls, "*", "latest", or a multi-part range - is intentionally left untouched (skipped, not guessed).
|
|
31
|
-
const SEMVER_SPEC = /^([\^~]|>=|<=|>|<|=)?\s*(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
31
|
+
const SEMVER_SPEC = /^([\^~]|>=|<=|>|<|=)?\s*(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
32
32
|
/**
|
|
33
33
|
* Rewrite a dependency version spec to `toVersion`, preserving the range operator (`^`, `~`, …).
|
|
34
34
|
* Returns null when the spec is not a plain semver spec (→ skip it) or already equals the target.
|
|
@@ -41,22 +41,81 @@ export function rewriteVersionSpec(spec, toVersion) {
|
|
|
41
41
|
const next = `${operator}${toVersion}`;
|
|
42
42
|
return next === spec ? null : next;
|
|
43
43
|
}
|
|
44
|
+
/** Numeric core (major, minor, patch) of a semver spec, ignoring the range operator + prerelease/build. */
|
|
45
|
+
export function specVersionTuple(spec) {
|
|
46
|
+
const match = SEMVER_SPEC.exec(spec.trim());
|
|
47
|
+
if (!match)
|
|
48
|
+
return null;
|
|
49
|
+
return [Number(match[2]), Number(match[3]), Number(match[4])];
|
|
50
|
+
}
|
|
51
|
+
function parseSpecVersion(spec) {
|
|
52
|
+
const match = SEMVER_SPEC.exec(spec.trim());
|
|
53
|
+
if (!match)
|
|
54
|
+
return null;
|
|
55
|
+
const prerelease = (match[5] ?? "").split(".");
|
|
56
|
+
return {
|
|
57
|
+
core: [Number(match[2]), Number(match[3]), Number(match[4])],
|
|
58
|
+
prerelease: match[5] === undefined
|
|
59
|
+
? []
|
|
60
|
+
: prerelease.map((part) => (/^\d+$/.test(part) ? Number(part) : part)),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Compare two semver cores: <0 when a<b, 0 equal, >0 when a>b. */
|
|
64
|
+
export function compareSemverCore(a, b) {
|
|
65
|
+
return a[0] - b[0] || a[1] - b[1] || a[2] - b[2];
|
|
66
|
+
}
|
|
67
|
+
/** Compare full semver precedence, including prereleases (`2.3.0-beta` < `2.3.0`). */
|
|
68
|
+
export function compareSemverSpec(a, b) {
|
|
69
|
+
const left = parseSpecVersion(a);
|
|
70
|
+
const right = parseSpecVersion(b);
|
|
71
|
+
if (left === null || right === null)
|
|
72
|
+
return 0;
|
|
73
|
+
const core = compareSemverCore(left.core, right.core);
|
|
74
|
+
if (core !== 0)
|
|
75
|
+
return core;
|
|
76
|
+
if (left.prerelease.length === 0 || right.prerelease.length === 0) {
|
|
77
|
+
return left.prerelease.length === right.prerelease.length
|
|
78
|
+
? 0
|
|
79
|
+
: left.prerelease.length === 0
|
|
80
|
+
? 1
|
|
81
|
+
: -1;
|
|
82
|
+
}
|
|
83
|
+
const length = Math.max(left.prerelease.length, right.prerelease.length);
|
|
84
|
+
for (let i = 0; i < length; i++) {
|
|
85
|
+
const x = left.prerelease[i];
|
|
86
|
+
const y = right.prerelease[i];
|
|
87
|
+
if (x === undefined || y === undefined)
|
|
88
|
+
return x === undefined ? -1 : 1;
|
|
89
|
+
if (typeof x === "number" && typeof y === "number") {
|
|
90
|
+
if (x !== y)
|
|
91
|
+
return x - y;
|
|
92
|
+
}
|
|
93
|
+
else if (typeof x === "number")
|
|
94
|
+
return -1;
|
|
95
|
+
else if (typeof y === "number")
|
|
96
|
+
return 1;
|
|
97
|
+
else if (x !== y)
|
|
98
|
+
return x < y ? -1 : 1;
|
|
99
|
+
}
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
44
102
|
const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
45
103
|
/**
|
|
46
104
|
* Apply pin rules to one package.json's TEXT (format-preserving - targeted string replaces, never a
|
|
47
105
|
* JSON re-serialize that would reorder keys or drop comments-as-formatting). Returns the new text and
|
|
48
106
|
* the changes made.
|
|
49
107
|
*/
|
|
50
|
-
export function pinSweepText(text, rules) {
|
|
108
|
+
export function pinSweepText(text, rules, allowDowngrade = false) {
|
|
51
109
|
let parsed;
|
|
52
110
|
try {
|
|
53
111
|
parsed = JSON.parse(text);
|
|
54
112
|
}
|
|
55
113
|
catch {
|
|
56
|
-
return { text, changes: [] };
|
|
114
|
+
return { text, changes: [], downgrades: [] };
|
|
57
115
|
}
|
|
58
116
|
let out = text;
|
|
59
117
|
const changes = [];
|
|
118
|
+
const downgrades = [];
|
|
60
119
|
for (const field of DEP_FIELDS) {
|
|
61
120
|
const deps = parsed[field];
|
|
62
121
|
if (typeof deps !== "object" || deps === null)
|
|
@@ -70,6 +129,17 @@ export function pinSweepText(text, rules) {
|
|
|
70
129
|
const next = rewriteVersionSpec(rawSpec, rule.to);
|
|
71
130
|
if (next === null)
|
|
72
131
|
continue;
|
|
132
|
+
// Refuse a rollback: `upgrade <version>` pins an exact target, so an OLD target on a newer install
|
|
133
|
+
// walks dependencies backward (e.g. ^2.3.0 → ^2.0.0) and can break a shared-package peer range.
|
|
134
|
+
const current = specVersionTuple(rawSpec);
|
|
135
|
+
const target = specVersionTuple(rule.to);
|
|
136
|
+
if (!allowDowngrade &&
|
|
137
|
+
current !== null &&
|
|
138
|
+
target !== null &&
|
|
139
|
+
compareSemverSpec(rawSpec, rule.to) > 0) {
|
|
140
|
+
downgrades.push({ field, name, from: rawSpec, to: next });
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
73
143
|
// Replace exactly `"name"<ws>:<ws>"spec"`, preserving the surrounding whitespace.
|
|
74
144
|
const pattern = new RegExp(`("${escapeRegExp(name)}"\\s*:\\s*")${escapeRegExp(rawSpec)}(")`);
|
|
75
145
|
const replaced = out.replace(pattern, `$1${next}$2`);
|
|
@@ -79,7 +149,7 @@ export function pinSweepText(text, rules) {
|
|
|
79
149
|
}
|
|
80
150
|
}
|
|
81
151
|
}
|
|
82
|
-
return { text: out, changes };
|
|
152
|
+
return { text: out, changes, downgrades };
|
|
83
153
|
}
|
|
84
154
|
function dependencyObjectRange(text, field) {
|
|
85
155
|
const match = new RegExp(`"${field}"\\s*:\\s*\\{`).exec(text);
|
|
@@ -221,10 +291,11 @@ function scan(cwd, pattern) {
|
|
|
221
291
|
return out.sort(); // deterministic order
|
|
222
292
|
}
|
|
223
293
|
/** Compute the plan (and, when `write`, apply it) for a target recipe against `cwd`. */
|
|
224
|
-
export function computeUpgrade(cwd, recipe, write) {
|
|
294
|
+
export function computeUpgrade(cwd, recipe, write, allowDowngrade = false) {
|
|
225
295
|
const pins = [];
|
|
226
296
|
const dependencyMoves = [];
|
|
227
297
|
const importMoves = [];
|
|
298
|
+
const downgrades = [];
|
|
228
299
|
if ((recipe.dependencyMoves?.length ?? 0) > 0 || recipe.pins.length > 0) {
|
|
229
300
|
for (const rel of scan(cwd, "**/package.json")) {
|
|
230
301
|
const abs = join(cwd, rel);
|
|
@@ -232,9 +303,11 @@ export function computeUpgrade(cwd, recipe, write) {
|
|
|
232
303
|
const moved = moveDependenciesText(original, recipe.dependencyMoves ?? []);
|
|
233
304
|
for (const change of moved.changes)
|
|
234
305
|
dependencyMoves.push({ file: rel, ...change });
|
|
235
|
-
const pinned = pinSweepText(moved.text, recipe.pins);
|
|
306
|
+
const pinned = pinSweepText(moved.text, recipe.pins, allowDowngrade);
|
|
236
307
|
for (const change of pinned.changes)
|
|
237
308
|
pins.push({ file: rel, ...change });
|
|
309
|
+
for (const d of pinned.downgrades)
|
|
310
|
+
downgrades.push({ file: rel, ...d });
|
|
238
311
|
if (write && pinned.text !== original)
|
|
239
312
|
writeFileSync(abs, pinned.text);
|
|
240
313
|
}
|
|
@@ -257,6 +330,7 @@ export function computeUpgrade(cwd, recipe, write) {
|
|
|
257
330
|
pins,
|
|
258
331
|
dependencyMoves,
|
|
259
332
|
importMoves,
|
|
333
|
+
downgrades,
|
|
260
334
|
notes: recipe.notes ?? [],
|
|
261
335
|
};
|
|
262
336
|
}
|
|
@@ -300,6 +374,18 @@ function renderPlan(plan, write) {
|
|
|
300
374
|
lines.push("\nRe-run with --write to apply, then nifra check verifies.");
|
|
301
375
|
return lines.join("\n").trimEnd();
|
|
302
376
|
}
|
|
377
|
+
/** Explain a refused rollback: which pins would roll back, why it's blocked, and the escape hatch. */
|
|
378
|
+
function renderDowngradeRefusal(version, downgrades) {
|
|
379
|
+
return [
|
|
380
|
+
`nifra upgrade → ${version}: refusing to DOWNGRADE ${downgrades.length} pin(s) below what's installed.`,
|
|
381
|
+
"",
|
|
382
|
+
...downgrades.map((d) => ` ${d.file} ${d.name}: ${d.from} → ${d.to} (would roll back)`),
|
|
383
|
+
"",
|
|
384
|
+
"`nifra upgrade <version>` sets each pin to exactly <version>; an older target on a newer install",
|
|
385
|
+
"rolls dependencies backward and can violate a shared-package peer range. Target a version >= the",
|
|
386
|
+
"installed one, or pass --allow-downgrade if the rollback is intended.",
|
|
387
|
+
].join("\n");
|
|
388
|
+
}
|
|
303
389
|
/** CLI entry. Returns false (→ non-zero exit) on an unknown version, no project, or a failed verify. */
|
|
304
390
|
export async function runUpgrade(cwd, options) {
|
|
305
391
|
if (options.list) {
|
|
@@ -329,7 +415,19 @@ export async function runUpgrade(cwd, options) {
|
|
|
329
415
|
return false;
|
|
330
416
|
}
|
|
331
417
|
const write = options.write === true;
|
|
332
|
-
const
|
|
418
|
+
const allowDowngrade = options.allowDowngrade === true;
|
|
419
|
+
// Fail-closed on rollback: a dry pass writes nothing, so we can refuse before any package.json is touched.
|
|
420
|
+
const preview = computeUpgrade(cwd, recipe, false, allowDowngrade);
|
|
421
|
+
if (preview.downgrades.length > 0) {
|
|
422
|
+
if (options.json) {
|
|
423
|
+
console.log(JSON.stringify({ ...preview, write: false, refused: "downgrade" }, null, 2));
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
console.error(renderDowngradeRefusal(recipe.version, preview.downgrades));
|
|
427
|
+
}
|
|
428
|
+
return false;
|
|
429
|
+
}
|
|
430
|
+
const plan = write ? computeUpgrade(cwd, recipe, true, allowDowngrade) : preview;
|
|
333
431
|
if (options.json) {
|
|
334
432
|
console.log(JSON.stringify({ ...plan, write }, null, 2));
|
|
335
433
|
}
|
package/dist/upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../src/upgrade.ts"],"names":[],"mappings":"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"}
|
package/docs/llms-full.txt
CHANGED
|
@@ -7484,6 +7484,16 @@ The mock server matches reflected routes and synthesizes values from supported J
|
|
|
7484
7484
|
Unsupported or unsatisfiable schemas fail explicitly instead of returning known-invalid data. Use a
|
|
7485
7485
|
fixed seed when responses must be replayable across local development and CI.
|
|
7486
7486
|
|
|
7487
|
+
Routes whose response validator exposes no JSON Schema (zod, valibot, arktype) mock as `{}` by default.
|
|
7488
|
+
Pass `reflectJsonSchema` to derive a schema from such a validator so those routes mock real data; for zod,
|
|
7489
|
+
use the bridge shipped as `@nifrajs/testing/zod`:
|
|
7490
|
+
|
|
7491
|
+
```ts
|
|
7492
|
+
import { zodJsonSchema } from "@nifrajs/testing/zod"
|
|
7493
|
+
|
|
7494
|
+
const mock = createMockServer(app, { reflectJsonSchema: zodJsonSchema })
|
|
7495
|
+
```
|
|
7496
|
+
|
|
7487
7497
|
## For AI agents
|
|
7488
7498
|
|
|
7489
7499
|
Start with [`LLM.md`](./LLM.md) - this package's contract card (the exports you call + its footguns),
|
|
@@ -7941,6 +7951,32 @@ const report = await assertAdversarialContract(app, {
|
|
|
7941
7951
|
request for each declared response schema, so use an isolated test app/database-never point the
|
|
7942
7952
|
laboratory at production.
|
|
7943
7953
|
|
|
7954
|
+
### Opaque validators (zod / valibot / arktype)
|
|
7955
|
+
|
|
7956
|
+
A `t` schema exposes JSON Schema, so witnesses and constraint-driven mutations are synthesized
|
|
7957
|
+
automatically. A Standard Schema validator that carries no JSON Schema (zod, valibot, arktype) validates
|
|
7958
|
+
requests fine, but the laboratory can't inspect it - those routes report `NO_WITNESS` and get only
|
|
7959
|
+
type-confusion mutations. Pass `reflectJsonSchema` to convert such a validator; for zod, use the shipped
|
|
7960
|
+
bridge:
|
|
7961
|
+
|
|
7962
|
+
```ts
|
|
7963
|
+
import { zodJsonSchema } from "@nifrajs/testing/zod"
|
|
7964
|
+
|
|
7965
|
+
await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
|
|
7966
|
+
```
|
|
7967
|
+
|
|
7968
|
+
This turns on witness synthesis and constraint-driven mutations (min/max, length, pattern, enum, format)
|
|
7969
|
+
for zod routes. `createMockServer` from `@nifrajs/mock` accepts the same hook. `zod` is an optional peer -
|
|
7970
|
+
only projects that import `@nifrajs/testing/zod` need it installed.
|
|
7971
|
+
|
|
7972
|
+
### Response conformance needs a declared contract
|
|
7973
|
+
|
|
7974
|
+
Response conformance only runs for routes that declare a `response` schema. A response type inferred from a
|
|
7975
|
+
handler's return is a client-side contract the laboratory cannot see, so an app that declares none checks
|
|
7976
|
+
zero response targets even with `validateResponses` on - the report surfaces this in `advisories`. Declare
|
|
7977
|
+
`response:` on the routes you want verified. (Runtime response validation in the server itself is a
|
|
7978
|
+
separate opt-in, installed by the `responseContract()` plugin.)
|
|
7979
|
+
|
|
7944
7980
|
`nifra levels` L4 uses this same deep engine through the explicitly configured isolated executor;
|
|
7945
7981
|
the older core invariant runner remains only as a compatibility export.
|
|
7946
7982
|
|
|
@@ -8048,6 +8084,40 @@ one cheap read instead of the whole corpus. For the wider framework: the repo's
|
|
|
8048
8084
|
[`llms-full.txt`](../../llms-full.txt) is the full machine-readable corpus. Run `nifra check` as the
|
|
8049
8085
|
done-gate, or `nifra mcp` to give the agent live project tools.
|
|
8050
8086
|
|
|
8087
|
+
## @nifrajs/ts-plugin
|
|
8088
|
+
|
|
8089
|
+
A TypeScript language-service plugin for [nifra](https://github.com/nifrajs/nifra). It adds go-to-definition on route-path string literals: put your cursor on `"/orders"` in `navigate({ to: "/orders" })`, `<Link to="/orders">`, or `href="/orders"`, and jump straight to the `routes/` file that serves it.
|
|
8090
|
+
|
|
8091
|
+
The routing rules are nifra's own - it discovers routes with `@nifrajs/web` and matches them with `@nifrajs/core`'s pattern matcher - so a path resolves to exactly the file it would serve at runtime, dynamic segments included (`/users/42` → `routes/users/[id].tsx`).
|
|
8092
|
+
|
|
8093
|
+
## Install
|
|
8094
|
+
|
|
8095
|
+
```sh
|
|
8096
|
+
npm install -D @nifrajs/ts-plugin
|
|
8097
|
+
```
|
|
8098
|
+
|
|
8099
|
+
## Enable
|
|
8100
|
+
|
|
8101
|
+
Add it to your `tsconfig.json`:
|
|
8102
|
+
|
|
8103
|
+
```json
|
|
8104
|
+
{
|
|
8105
|
+
"compilerOptions": {
|
|
8106
|
+
"plugins": [{ "name": "@nifrajs/ts-plugin" }]
|
|
8107
|
+
}
|
|
8108
|
+
}
|
|
8109
|
+
```
|
|
8110
|
+
|
|
8111
|
+
In VS Code, run "TypeScript: Select TypeScript Version" from the Command Palette and choose "Use Workspace Version" so the editor loads the plugin from your project.
|
|
8112
|
+
|
|
8113
|
+
## For agents
|
|
8114
|
+
|
|
8115
|
+
Start with [`LLM.md`](./LLM.md) - this package's contract card (the exports it ships and how it wires in). [`llms-full.txt`](../../llms-full.txt) is the full machine-readable corpus for the whole framework.
|
|
8116
|
+
|
|
8117
|
+
## License
|
|
8118
|
+
|
|
8119
|
+
MIT
|
|
8120
|
+
|
|
8051
8121
|
## @nifrajs/uploads
|
|
8052
8122
|
|
|
8053
8123
|
File-upload hardening for nifra - magic-byte MIME detection, size + type validation, short-TTL signed download URLs, and EXIF/metadata stripping. Dependency-free, edge-safe.
|
|
@@ -8410,7 +8480,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
|
|
|
8410
8480
|
|
|
8411
8481
|
## @nifrajs/devtools
|
|
8412
8482
|
|
|
8413
|
-
`devtools`, `DevToolsClientOptions`, `devtoolsClientScript`, `DevToolsEvent`, `DevToolsOptions`
|
|
8483
|
+
`devtools`, `DevToolsClientOptions`, `devtoolsClientScript`, `DevToolsEvent`, `DevToolsOptions`, `DevToolsQuery`, `filterDevToolsEvents`
|
|
8414
8484
|
|
|
8415
8485
|
## @nifrajs/env
|
|
8416
8486
|
|
|
@@ -8480,6 +8550,10 @@ done-gate, or `nifra mcp` to give the agent live project tools.
|
|
|
8480
8550
|
|
|
8481
8551
|
`AdapterCertificationError`, `AdapterCertificationProfile`, `AdapterCertificationReport`, `AdversarialContractError`, `AdversarialContractOptions`, `AdversarialContractReport`, `AdversarialContractResult`, `AppLike`, `assertAdapterCertification`, `assertAdversarialContract`, `assertIncidentReplays`, `cacheStoreCertificationProfile`, `CapturedRequest`, `CapturedRequestInput`, `captureIncident`, `CaptureIncidentOptions`, `CertifiableCacheEntry`, `CertifiableCacheStore`, `CertifiableDomainEvent`, `CertifiableEventDeliveryAdapter`, `CertifiableEventRecord`, `CertifiableJobStore`, `CertifiableRuntimeAdapter`, `CertifiableRuntimeServer`, `CertifiableStorageAdapter`, `CertificationCapabilityEvidence`, `CertificationCheck`, `CertificationCheckEvidence`, `certifyAdapter`, `ContractCaseContext`, `ContractCaseKind`, `ContractCoverageGap`, `ContractCoverageGapCode`, `ContractReplay`, `ContractRuntime`, `ContractTarget`, `ContractTestApp`, `ContractWitness`, `cookieJar`, `CookieJar`, `createFailureLab`, `defineCertificationProfile`, `eventDeliveryCertificationProfile`, `FailureDirective`, `FailureEvidence`, `FailureInjectedError`, `FailureKind`, `FailureLab`, `FailureLabOptions`, `FailureReplay`, `FailureScenario`, `FailureScenarioReport`, `generateRegressionTest`, `GenerateRegressionTestOptions`, `IncidentCapsule`, `IncidentReplayError`, `IncidentReplayResult`, `jobStoreCertificationProfile`, `redactForEmission`, `replayIncident`, `ReplayIncidentOptions`, `runAdversarialContract`, `runFailureScenario`, `runtimeAdapterCertificationProfile`, `shapeOf`, `storageAdapterCertificationProfile`, `testSession`, `TestSession`, `TestSessionOptions`, `verifyAdapterCertification`
|
|
8482
8552
|
|
|
8553
|
+
## @nifrajs/ts-plugin
|
|
8554
|
+
|
|
8555
|
+
`findRoutePathLiteral`, `findRoutesDir`
|
|
8556
|
+
|
|
8483
8557
|
## @nifrajs/uploads
|
|
8484
8558
|
|
|
8485
8559
|
`detectFileType`, `FileType`, `ImageReencoder`, `signDownloadUrl`, `SignDownloadUrlOptions`, `stripImageMetadata`, `StripImageMetadataOptions`, `UploadResult`, `validateUpload`, `ValidateUploadOptions`, `verifyDownloadUrl`
|