@pulse-compute/wasm-contracts 0.0.0 → 1.0.0-beta.2
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 +35 -2
- package/package.json +124 -6
- package/src/assets/contracts.js +296 -0
- package/src/config/provider-resolution.js +54 -0
- package/src/config/runtime-provider-kv.js +73 -0
- package/src/config/symbolic-refs.js +192 -0
- package/src/crypto/contracts.js +647 -0
- package/src/definitions/config-schema.js +30 -0
- package/src/definitions/handler-roles.js +66 -0
- package/src/definitions/path-grammar.js +11 -0
- package/src/definitions/router-api.js +149 -0
- package/src/diagnostics/codes.js +42 -0
- package/src/diagnostics/reporter.js +20 -0
- package/src/diagnostics.js +139 -0
- package/src/dispatch-table.js +23 -0
- package/src/entities/catalog.d.ts +7 -0
- package/src/entities/catalog.js +87 -0
- package/src/entities/contracts.d.ts +95 -0
- package/src/entities/contracts.js +122 -0
- package/src/entities/json-rpc.d.ts +27 -0
- package/src/entities/json-rpc.js +69 -0
- package/src/entities/runtime.d.ts +67 -0
- package/src/entities/runtime.js +288 -0
- package/src/events/contracts.js +456 -0
- package/src/execution-plan.js +42 -0
- package/src/grip/contracts.js +106 -0
- package/src/handler/backend-json-request-body.js +58 -0
- package/src/handler/beta-lifecycle-golden.js +97 -0
- package/src/handler/canonical-native-plan.js +143 -0
- package/src/handler/canonical-native-runtime.js +168 -0
- package/src/handler/canonical-runtime.js +13 -0
- package/src/handler/context.js +131 -0
- package/src/handler/ctx-contract.js +71 -0
- package/src/handler/doctor-readiness-aggregator.js +67 -0
- package/src/handler/effects.js +446 -0
- package/src/handler/io-lifecycle.js +134 -0
- package/src/handler/lifecycle-authoring-alignment.js +56 -0
- package/src/handler/lifecycle-readiness-aggregate.js +93 -0
- package/src/handler/reference-node-lifecycle-golden.js +73 -0
- package/src/handler/request-json-body.js +147 -0
- package/src/handler/runtime-api.js +471 -0
- package/src/handler/schema-decode-result.js +135 -0
- package/src/handler/schema-response-codec.js +141 -0
- package/src/handler/surface-contract.js +601 -0
- package/src/handler/types-contract.js +51 -0
- package/src/handler-table.js +28 -0
- package/src/host/backend-capabilities.js +24 -0
- package/src/host/capabilities.js +273 -0
- package/src/host/channel-broadcaster.js +60 -0
- package/src/host/json-body.js +80 -0
- package/src/host/request-result-headers.js +38 -0
- package/src/host/streaming-passthrough.js +90 -0
- package/src/host/wasm-host-abi.js +154 -0
- package/src/index.js +75 -0
- package/src/jwt/contracts.js +427 -0
- package/src/library/api-surface.js +99 -0
- package/src/library/contracts.js +273 -0
- package/src/library/manifest.js +317 -0
- package/src/library/second-package-owned-lowering.js +39 -0
- package/src/library/sidecars.js +147 -0
- package/src/logging.js +89 -0
- package/src/package/package-contract.js +975 -0
- package/src/package/package-contract.schema.json +303 -0
- package/src/package/runtime-pulse-live.js +100 -0
- package/src/path-table.js +12 -0
- package/src/path.js +275 -0
- package/src/project/config-factory.js +48 -0
- package/src/project/config-plan.js +409 -0
- package/src/project/config-runtime.js +46 -0
- package/src/project/javascript-application.js +212 -0
- package/src/project/javascript-core-capabilities.js +44 -0
- package/src/project/native-optimization.js +9 -0
- package/src/project/package-ownership.js +242 -0
- package/src/project/package-product-projection.js +171 -0
- package/src/project/reachable-graph-identity.js +219 -0
- package/src/project/reachable-graph-projections.js +279 -0
- package/src/project/reachable-graph-resolver.js +303 -0
- package/src/project/reachable-graph-v2.js +430 -0
- package/src/project/reachable-graph-v2.schema.json +285 -0
- package/src/project/reachable-graph.js +199 -0
- package/src/project/reachable-graph.schema.json +222 -0
- package/src/project/target-support-evidence.js +559 -0
- package/src/provider/canonical-provider.js +239 -0
- package/src/provider/final-wasm-policy.js +87 -0
- package/src/provider/toolchain.js +771 -0
- package/src/route-plan.js +43 -0
- package/src/s3/contracts.js +12 -0
- package/src/schema-json/compile.js +63 -0
- package/src/schema-json/contracts.js +10 -0
- package/src/schema-json/generic-parser.js +62 -0
- package/src/schema-json/registry.js +359 -0
- package/src/schema-json/semantic-trace.js +241 -0
- package/src/schema-json/v1.js +65 -0
- package/src/schema-json/v2.js +110 -0
- package/src/sha256.js +104 -0
- package/src/spine.js +381 -0
- package/src/stable-id.js +142 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const SCHEMA_RESPONSE_CODEC_PLAN_VERSION = 'pulsewasm.schema-response-codec-plan.v1';
|
|
4
|
+
const SCHEMA_RESPONSE_CODEC_PLAN_PHASE = '41';
|
|
5
|
+
const SCHEMA_RESPONSE_CODEC_PLAN_ARTIFACT = 'schema-response-codec-plan.json';
|
|
6
|
+
const SCHEMA_RESPONSE_CODEC_CONTRACT_ID = 'pulse.schema-response-codec';
|
|
7
|
+
const NODE_SCHEMA_RESPONSE_CODEC_PROOF_VERSION = 'pulsewasm.node-schema-response-codec-proof.v1';
|
|
8
|
+
const NODE_SCHEMA_RESPONSE_CODEC_PROOF_PHASE = '41';
|
|
9
|
+
const NODE_SCHEMA_RESPONSE_CODEC_PROOF_ARTIFACT = 'node-schema-response-codec-proof.json';
|
|
10
|
+
const NODE_SCHEMA_RESPONSE_CODEC_RUNTIME_VERSION = 'pulsewasm.node-schema-response-codec-runtime.v1';
|
|
11
|
+
|
|
12
|
+
const SCHEMA_RESPONSE_CODEC_SCOPE = Object.freeze({
|
|
13
|
+
finalResponseJsonEncode: true,
|
|
14
|
+
originResponseJsonDecode: true,
|
|
15
|
+
requestDecodeRefEncode: true,
|
|
16
|
+
resolvedDecodeRefEncode: true,
|
|
17
|
+
opaqueSchemaRefs: true,
|
|
18
|
+
compiledWasmRuntimeImplemented: true,
|
|
19
|
+
nodeCompiledProofImplemented: true,
|
|
20
|
+
lazyRequestBodyRead: true,
|
|
21
|
+
perRequestDecodeCache: true,
|
|
22
|
+
providerNetworkFetchRequired: false,
|
|
23
|
+
backendJsonRequestBodies: false,
|
|
24
|
+
requestBodyEffects: false,
|
|
25
|
+
automaticSchemaGeneration: false,
|
|
26
|
+
typedSchemaSpecificAccessors: false,
|
|
27
|
+
arbitraryJsObjectInference: false,
|
|
28
|
+
binaryRequestBodyParsing: false,
|
|
29
|
+
streamRequestBodyParsing: false,
|
|
30
|
+
asyncAwait: false,
|
|
31
|
+
promises: false,
|
|
32
|
+
asyncify: false
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const SCHEMA_RESPONSE_CODEC_SURFACE = Object.freeze({
|
|
36
|
+
finalEncode: 'ctx.result.json("Schema", value, options?)',
|
|
37
|
+
originDecode: 'ctx.resolved("name").json("Schema")',
|
|
38
|
+
schemaEncode: 'ctx.schema.encode("Schema", ref) implemented only as backend JSON request body input',
|
|
39
|
+
requestDecodeInput: 'ctx.req.json("Schema") opaque decode result ref',
|
|
40
|
+
resolvedDecodeInput: 'ctx.resolved("name").json("Schema") opaque decode result ref',
|
|
41
|
+
statusOption: 'options.status defaults to 200',
|
|
42
|
+
headersOption: 'options.headers literal object',
|
|
43
|
+
resultKind: 'json-text'
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const SCHEMA_RESPONSE_CODEC_VALUE_KINDS = Object.freeze({
|
|
47
|
+
requestJsonDecodeRef: { status: 'implemented-now', description: 'Encode from a schema-backed ctx.req.json/parse decode ref.' },
|
|
48
|
+
genericJsonDecodeRef: { status: 'implemented-now', description: 'Encode from an explicit generic ctx.req.json() decode ref as JSON text.' },
|
|
49
|
+
resolvedJsonDecodeRef: { status: 'implemented-now', description: 'Encode from a ctx.resolved(...).json("Schema") decode ref.' },
|
|
50
|
+
schemaEncodeCall: { status: 'implemented-for-backend-json-request-bodies', description: 'ctx.schema.encode is recognized for backend JSON request bodies and is not accepted as a final response value.' },
|
|
51
|
+
primitiveLiterals: { status: 'planned-only', description: 'Primitive builder refs/literals are reserved for a later schema builder pass.' },
|
|
52
|
+
arbitraryObjectLiteral: { status: 'reserved-with-diagnostic', description: 'Arbitrary JavaScript object materialization is intentionally not supported.' },
|
|
53
|
+
typedSchemaAccessors: { status: 'reserved-with-diagnostic', description: 'Typed schema-specific accessors/builders are reserved.' }
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const SCHEMA_RESPONSE_CODEC_RESERVED_SURFACE = Object.freeze([
|
|
57
|
+
'automatic schema generation from handler source',
|
|
58
|
+
'arbitrary JavaScript object materialization for ctx.result.json',
|
|
59
|
+
'object literal/spread response encoding',
|
|
60
|
+
'typed schema-specific response builders/accessors',
|
|
61
|
+
'ctx.schema.encode as a final response value',
|
|
62
|
+
'binary response encode/decode',
|
|
63
|
+
'stream response encode/decode',
|
|
64
|
+
'throwing encode/decode failures'
|
|
65
|
+
]);
|
|
66
|
+
|
|
67
|
+
const SCHEMA_RESPONSE_CODEC_DIAGNOSTICS = Object.freeze({
|
|
68
|
+
planMissing: 'PULSEWASM_SCHEMA_RESPONSE_CODEC_PLAN_MISSING',
|
|
69
|
+
noSchemaResponseRoutes: 'PULSEWASM_SCHEMA_RESPONSE_CODEC_NO_ROUTES',
|
|
70
|
+
schemaMissing: 'PULSEWASM_SCHEMA_RESPONSE_CODEC_SCHEMA_MISSING',
|
|
71
|
+
resultJsonSchemaMustBeLiteral: 'PULSEWASM_SCHEMA_RESPONSE_RESULT_JSON_SCHEMA_MUST_BE_LITERAL',
|
|
72
|
+
resultJsonUnsupportedValue: 'PULSEWASM_SCHEMA_RESPONSE_RESULT_JSON_VALUE_UNSUPPORTED',
|
|
73
|
+
resultJsonStatusUnsupported: 'PULSEWASM_SCHEMA_RESPONSE_RESULT_JSON_STATUS_UNSUPPORTED',
|
|
74
|
+
originJsonSchemaMustBeLiteral: 'PULSEWASM_SCHEMA_RESPONSE_ORIGIN_JSON_SCHEMA_MUST_BE_LITERAL',
|
|
75
|
+
schemaEncodeSchemaMustBeLiteral: 'PULSEWASM_SCHEMA_RESPONSE_SCHEMA_ENCODE_SCHEMA_MUST_BE_LITERAL',
|
|
76
|
+
arbitraryObjectReserved: 'PULSEWASM_SCHEMA_RESPONSE_ARBITRARY_OBJECT_RESERVED',
|
|
77
|
+
compiledSmokeFailed: 'PULSEWASM_SCHEMA_RESPONSE_CODEC_COMPILED_SMOKE_FAILED',
|
|
78
|
+
wasmMissing: 'PULSEWASM_SCHEMA_RESPONSE_CODEC_COMPILED_WASM_MISSING'
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
const SCHEMA_RESPONSE_CODEC_POLICY = Object.freeze({
|
|
82
|
+
phase: SCHEMA_RESPONSE_CODEC_PLAN_PHASE,
|
|
83
|
+
sourceOfTruth: 'runtime.payload.json.schemas + request-json-body-plan.json + route-handler-effect-plan.json',
|
|
84
|
+
finalResponseEncode: 'opaque refs only; no arbitrary JS object materialization',
|
|
85
|
+
originResponseDecode: 'inspectable origin JSON decode ref over resolved response jsonText',
|
|
86
|
+
statusDefault: 200,
|
|
87
|
+
routeDemandOnly: true,
|
|
88
|
+
encodeOnlyOnReturn: true,
|
|
89
|
+
implicitGenericParserBundle: false,
|
|
90
|
+
binaryAndStream: 'reserved-with-diagnostic'
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
function defaultSchemaResponseCodecPolicy() {
|
|
94
|
+
return {
|
|
95
|
+
contractId: SCHEMA_RESPONSE_CODEC_CONTRACT_ID,
|
|
96
|
+
artifact: SCHEMA_RESPONSE_CODEC_PLAN_ARTIFACT,
|
|
97
|
+
phase: SCHEMA_RESPONSE_CODEC_PLAN_PHASE,
|
|
98
|
+
scope: { ...SCHEMA_RESPONSE_CODEC_SCOPE },
|
|
99
|
+
surface: JSON.parse(JSON.stringify(SCHEMA_RESPONSE_CODEC_SURFACE)),
|
|
100
|
+
valueKinds: JSON.parse(JSON.stringify(SCHEMA_RESPONSE_CODEC_VALUE_KINDS)),
|
|
101
|
+
reserved: [...SCHEMA_RESPONSE_CODEC_RESERVED_SURFACE],
|
|
102
|
+
policy: { ...SCHEMA_RESPONSE_CODEC_POLICY },
|
|
103
|
+
diagnostics: { ...SCHEMA_RESPONSE_CODEC_DIAGNOSTICS }
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function defaultNodeSchemaResponseCodecProofPolicy() {
|
|
108
|
+
return {
|
|
109
|
+
...defaultSchemaResponseCodecPolicy(),
|
|
110
|
+
provider: 'node',
|
|
111
|
+
proofArtifact: NODE_SCHEMA_RESPONSE_CODEC_PROOF_ARTIFACT,
|
|
112
|
+
proofVersion: NODE_SCHEMA_RESPONSE_CODEC_PROOF_VERSION,
|
|
113
|
+
runtimeVersion: NODE_SCHEMA_RESPONSE_CODEC_RUNTIME_VERSION,
|
|
114
|
+
compiledWasmRuntimeImplemented: true,
|
|
115
|
+
nodeCompiledProofImplemented: true,
|
|
116
|
+
providerNetworkFetchRequired: false,
|
|
117
|
+
userAuthoredAsync: false,
|
|
118
|
+
promises: false,
|
|
119
|
+
asyncAwait: false,
|
|
120
|
+
asyncify: false
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
module.exports = {
|
|
125
|
+
SCHEMA_RESPONSE_CODEC_PLAN_VERSION,
|
|
126
|
+
SCHEMA_RESPONSE_CODEC_PLAN_PHASE,
|
|
127
|
+
SCHEMA_RESPONSE_CODEC_PLAN_ARTIFACT,
|
|
128
|
+
SCHEMA_RESPONSE_CODEC_CONTRACT_ID,
|
|
129
|
+
NODE_SCHEMA_RESPONSE_CODEC_PROOF_VERSION,
|
|
130
|
+
NODE_SCHEMA_RESPONSE_CODEC_PROOF_PHASE,
|
|
131
|
+
NODE_SCHEMA_RESPONSE_CODEC_PROOF_ARTIFACT,
|
|
132
|
+
NODE_SCHEMA_RESPONSE_CODEC_RUNTIME_VERSION,
|
|
133
|
+
SCHEMA_RESPONSE_CODEC_SCOPE,
|
|
134
|
+
SCHEMA_RESPONSE_CODEC_SURFACE,
|
|
135
|
+
SCHEMA_RESPONSE_CODEC_VALUE_KINDS,
|
|
136
|
+
SCHEMA_RESPONSE_CODEC_RESERVED_SURFACE,
|
|
137
|
+
SCHEMA_RESPONSE_CODEC_DIAGNOSTICS,
|
|
138
|
+
SCHEMA_RESPONSE_CODEC_POLICY,
|
|
139
|
+
defaultSchemaResponseCodecPolicy,
|
|
140
|
+
defaultNodeSchemaResponseCodecProofPolicy
|
|
141
|
+
};
|