@farthershore/backend 0.11.0 → 0.13.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/README.md +66 -1
- package/dist/index.js +831 -23
- package/dist/testing/index.js +2716 -0
- package/dist/types/core/permissions.d.ts +37 -19
- package/dist/types/core/runtime.d.ts +36 -0
- package/dist/types/core/verifyRequest.d.ts +6 -5
- package/dist/types/index.d.ts +1 -1
- package/dist/types/response-metering.d.ts +45 -0
- package/dist/types/testing/devGateway.d.ts +36 -0
- package/dist/types/testing/devRuntime.d.ts +68 -0
- package/dist/types/testing/index.d.ts +8 -0
- package/dist/types/testing/keysFile.d.ts +30 -0
- package/dist/types/testing/personas.d.ts +104 -0
- package/dist/types/testing/prodGuard.d.ts +12 -0
- package/dist/types/testing/signers.d.ts +89 -0
- package/dist/types/testing/traceSink.d.ts +67 -0
- package/dist/types/testing/usageSink.d.ts +31 -0
- package/package.json +8 -4
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RuntimeMeteringEvent } from "../runtime-types.js";
|
|
2
|
+
/** One recorded usage observation. `source` distinguishes the two channels. */
|
|
3
|
+
export type DevUsageEvent = {
|
|
4
|
+
source: "response";
|
|
5
|
+
/** rawDimsUnits from the signed response-metering payload. */
|
|
6
|
+
meters: Record<string, number>;
|
|
7
|
+
/** The full response-metering payload (method/path/rawDimsUnits/…). */
|
|
8
|
+
payload: Record<string, unknown>;
|
|
9
|
+
/** The gateway request id this usage was reported against, when known. */
|
|
10
|
+
requestId?: string;
|
|
11
|
+
at: number;
|
|
12
|
+
} | {
|
|
13
|
+
source: "meter";
|
|
14
|
+
/** `{ [meter]: qty }` for a single background metering event. */
|
|
15
|
+
meters: Record<string, number>;
|
|
16
|
+
event: RuntimeMeteringEvent;
|
|
17
|
+
requestId?: string;
|
|
18
|
+
at: number;
|
|
19
|
+
};
|
|
20
|
+
/** In-memory, assertable sink for all dev usage. */
|
|
21
|
+
export declare class DevUsageSink {
|
|
22
|
+
readonly events: DevUsageEvent[];
|
|
23
|
+
/** Record a signed response-metering payload (withUsage / computeMeteringHeaders). */
|
|
24
|
+
recordResponse(payload: Record<string, unknown>, requestId?: string): void;
|
|
25
|
+
/** Record a background `fs.meter()` event captured by the dev gateway. */
|
|
26
|
+
recordMeterEvent(event: RuntimeMeteringEvent): void;
|
|
27
|
+
/** Total quantity per meter key across every recorded event. */
|
|
28
|
+
byMeter(): Record<string, number>;
|
|
29
|
+
/** Clear all recorded usage. */
|
|
30
|
+
reset(): void;
|
|
31
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farthershore/backend",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Farther Shore backend SDK for builder upstreams: signed response usage, fail-closed gateway request verification, health, and lifecycle from FS_RUNTIME_TOKEN",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
"./runtime": {
|
|
23
23
|
"types": "./dist/types/generated/runtime-contract.d.ts",
|
|
24
24
|
"import": "./dist/generated/runtime-contract.js"
|
|
25
|
+
},
|
|
26
|
+
"./testing": {
|
|
27
|
+
"types": "./dist/types/testing/index.d.ts",
|
|
28
|
+
"import": "./dist/testing/index.js"
|
|
25
29
|
}
|
|
26
30
|
},
|
|
27
31
|
"files": [
|
|
@@ -33,9 +37,9 @@
|
|
|
33
37
|
},
|
|
34
38
|
"optionalDependencies": {
|
|
35
39
|
"@farthershore/cloudflared-linux-x64": "0.0.0",
|
|
40
|
+
"@farthershore/cloudflared-darwin-arm64": "0.0.0",
|
|
36
41
|
"@farthershore/cloudflared-linux-arm64": "0.0.0",
|
|
37
|
-
"@farthershore/cloudflared-darwin-x64": "0.0.0"
|
|
38
|
-
"@farthershore/cloudflared-darwin-arm64": "0.0.0"
|
|
42
|
+
"@farthershore/cloudflared-darwin-x64": "0.0.0"
|
|
39
43
|
},
|
|
40
44
|
"peerDependencies": {
|
|
41
45
|
"express": "^4.0.0 || ^5.0.0"
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
"typescript": "^6.0.2",
|
|
54
58
|
"typescript-eslint": "^8.59.0",
|
|
55
59
|
"vitest": "^4.1.6",
|
|
56
|
-
"@farthershore/contracts": "0.
|
|
60
|
+
"@farthershore/contracts": "0.62.0"
|
|
57
61
|
},
|
|
58
62
|
"engines": {
|
|
59
63
|
"node": ">=22"
|