@seams/wallet-server 0.10.2 → 0.12.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/THIRD_PARTY_NOTICES.md +33 -1812
- package/artifact-manifest.json +28 -28
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +3 -0
- package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +3 -0
- package/dist/esm/cloud-host.js +7 -7
- package/dist/esm/core/ThresholdService/kv.js +1 -218
- package/dist/esm/hosted-wallet-gateway.js +1 -1
- package/dist/esm/index.js +3 -4
- package/dist/esm/localHostedWalletGatewayHandler.js +17 -11
- package/dist/esm/localIntendedYaoFault.js +34 -3
- package/dist/esm/localIntendedYaoRecoveryFault.js +19 -16
- package/dist/esm/localIntendedYaoSigningFault.js +31 -16
- package/dist/esm/router/auth/routerApiKeyAuth.js +1 -13
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +3 -3
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +19 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +5 -5
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +5 -2
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +7 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +29 -4
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +6 -3
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +51 -29
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +23 -7
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +1 -1
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +2 -2
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +3 -3
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +1 -1
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +1 -1
- package/dist/esm/router/cloudflare-adaptor.js +2 -3
- package/dist/esm/router/cloudflare.js +2470 -2515
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +1 -1
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +39 -32
- package/dist/esm/router/framework/registrationSetupDispatch.js +11 -3
- package/dist/esm/router/framework/routeResponses.js +1 -5
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +1 -1
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +2 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +51 -24
- package/dist/esm/shared-ts/src/utils/validation.js +5 -1
- package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +2 -98
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +2 -69
- package/dist/esm/threshold/session/signingSessionSeal/index.js +3 -4
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +1 -0
- package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -29
- package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +1 -1
- package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +13 -3
- package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +4 -2
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +4 -2
- package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +0 -8
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +25 -5
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +1 -3
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -0
- package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +0 -2
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +1 -16
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +1 -16
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +5 -6
- package/package.json +2 -9
- package/src/README.md +5 -3
- package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +0 -93
- package/dist/esm/router/express-adaptor.js +0 -84
- package/dist/esm/router/express.js +0 -26400
- package/dist/esm/router/node/nodeHostedWalletGateway.js +0 -64
- package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +0 -163
- package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +0 -120
- package/dist/esm/router/node/nodeHttp.js +0 -79
- package/dist/esm/router/node/nodeSqlite.js +0 -43
- package/dist/esm/router/node/signerSqlMigrations.js +0 -48
- package/dist/esm/storage/syncSqlite.js +0 -79
- package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +0 -75
- package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +0 -23
- package/dist/types/wallet-server/src/router/express-adaptor.d.ts +0 -22
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +0 -34
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +0 -21
- package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +0 -2
- package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +0 -13
- package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +0 -22
- package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +0 -20
- package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +0 -28
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/express.d.ts +0 -12
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { coerceRouterLogger } from "../../framework/logger.js";
|
|
2
|
-
import { json, withCors } from "../../framework/http.js";
|
|
3
|
-
import { handleThresholdEcdsa } from "../../transport/fetch/routes/thresholdEcdsa.js";
|
|
4
|
-
import { handleThresholdEd25519 } from "../../transport/fetch/routes/thresholdEd25519.js";
|
|
5
|
-
import { validateRouterApiRorOptions } from "../../framework/ror/provider.js";
|
|
6
|
-
import "../../framework/routerApi.js";
|
|
7
|
-
//#region src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.ts
|
|
8
|
-
function notFound() {
|
|
9
|
-
return new Response("Not Found", { status: 404 });
|
|
10
|
-
}
|
|
11
|
-
function selfHostedHealthResponse(ctx) {
|
|
12
|
-
if (ctx.method !== "GET") return null;
|
|
13
|
-
if (ctx.pathname !== "/healthz" && ctx.pathname !== "/readyz") return null;
|
|
14
|
-
if (ctx.pathname === "/healthz" && !ctx.opts.healthz) return null;
|
|
15
|
-
if (ctx.pathname === "/readyz" && !ctx.opts.readyz) return null;
|
|
16
|
-
return json({
|
|
17
|
-
ok: true,
|
|
18
|
-
selfHosted: true,
|
|
19
|
-
threshold: { configured: Boolean(ctx.opts.routerAbNormalSigningRouterProxy) }
|
|
20
|
-
}, { status: 200 });
|
|
21
|
-
}
|
|
22
|
-
function createSelfHostedContext(input) {
|
|
23
|
-
const url = new URL(input.request.url);
|
|
24
|
-
return {
|
|
25
|
-
request: input.request,
|
|
26
|
-
url,
|
|
27
|
-
pathname: url.pathname,
|
|
28
|
-
method: input.request.method.toUpperCase(),
|
|
29
|
-
runtime: input.cfCtx ? {
|
|
30
|
-
kind: "background",
|
|
31
|
-
waitUntil: (promise) => input.cfCtx?.waitUntil(promise)
|
|
32
|
-
} : { kind: "inline" },
|
|
33
|
-
service: input.service,
|
|
34
|
-
opts: input.opts,
|
|
35
|
-
logger: input.logger,
|
|
36
|
-
routeDefinitions: []
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function createSelfHostedCloudflareSigningRouter(service, opts = {}) {
|
|
40
|
-
const sessionCookieName = String(opts.sessionCookieName || "").trim() || "seams-jwt";
|
|
41
|
-
const effectiveOpts = {
|
|
42
|
-
...opts,
|
|
43
|
-
sessionCookieName
|
|
44
|
-
};
|
|
45
|
-
if (effectiveOpts.ror) validateRouterApiRorOptions(effectiveOpts.ror);
|
|
46
|
-
const logger = coerceRouterLogger(effectiveOpts.logger);
|
|
47
|
-
const handler = async (request, _env, cfCtx) => {
|
|
48
|
-
if (request.method.toUpperCase() === "OPTIONS") {
|
|
49
|
-
const res = new Response(null, { status: 204 });
|
|
50
|
-
withCors(res.headers, effectiveOpts, request);
|
|
51
|
-
return res;
|
|
52
|
-
}
|
|
53
|
-
const ctx = createSelfHostedContext({
|
|
54
|
-
request,
|
|
55
|
-
cfCtx,
|
|
56
|
-
service,
|
|
57
|
-
opts: effectiveOpts,
|
|
58
|
-
logger
|
|
59
|
-
});
|
|
60
|
-
try {
|
|
61
|
-
const response = selfHostedHealthResponse(ctx) || await handleThresholdEd25519(ctx) || await handleThresholdEcdsa(ctx) || notFound();
|
|
62
|
-
withCors(response.headers, effectiveOpts, request);
|
|
63
|
-
return response;
|
|
64
|
-
} catch (error) {
|
|
65
|
-
const res = json({
|
|
66
|
-
code: "internal",
|
|
67
|
-
message: error instanceof Error ? error.message : String(error)
|
|
68
|
-
}, { status: 500 });
|
|
69
|
-
withCors(res.headers, effectiveOpts, request);
|
|
70
|
-
return res;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
return handler;
|
|
74
|
-
}
|
|
75
|
-
function createSelfHostedCloudflareSigningWorker(input) {
|
|
76
|
-
return { async fetch(request, env, ctx) {
|
|
77
|
-
const service = await input.createAuthService({
|
|
78
|
-
request,
|
|
79
|
-
env,
|
|
80
|
-
ctx
|
|
81
|
-
});
|
|
82
|
-
return createSelfHostedCloudflareSigningRouter(service, typeof input.routerOptions === "function" ? await input.routerOptions({
|
|
83
|
-
request,
|
|
84
|
-
env,
|
|
85
|
-
ctx,
|
|
86
|
-
service
|
|
87
|
-
}) : input.routerOptions || {})(request, env, ctx);
|
|
88
|
-
} };
|
|
89
|
-
}
|
|
90
|
-
//#endregion
|
|
91
|
-
export { createSelfHostedCloudflareSigningRouter, createSelfHostedCloudflareSigningWorker };
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=createSelfHostedCloudflareSigningWorker.js.map
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ROUTER_AB_PUBLIC_KEYSET_PATH, ROUTER_AB_PUBLIC_KEYSET_VERSION_V2, ROUTER_AB_PUBLIC_KEYSET_WELL_KNOWN_PATH, parseRouterAbPublicKeysetV2 } from "../shared-ts/src/utils/routerAbPublicKeyset.js";
|
|
2
|
-
import { defineRoute } from "./framework/routeDefinitions.js";
|
|
3
|
-
import { InMemoryRouterAbNormalSigningAdmissionStore, createInMemoryRouterAbNormalSigningAdmissionAdapter, createInMemoryRouterAbNormalSigningAdmissionStore, createRouterAbNormalSigningAdmissionAdapter } from "./domains/signingOperations/routerAbNormalSigningAdmissionCore.js";
|
|
4
|
-
import { createRouterApiModule } from "./framework/modules.js";
|
|
5
|
-
import { attachRouterApiRouteSurface, getRouterApiRouteSurface } from "./framework/routerApiRouteSurface.js";
|
|
6
|
-
import { createFetchRouter } from "./transport/fetch/createFetchRouter.js";
|
|
7
|
-
import { createRouterAbEd25519YaoProductRegistrationCompositionFromPortsV1, createRouterAbEd25519YaoProductRegistrationRuntimeV1, createRouterAbEd25519YaoProductRegistrationStateV1 } from "./domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js";
|
|
8
|
-
import { RouterAbEd25519YaoHttpRegistrationBackend, createRouterAbEd25519YaoHttpRegistrationBackendFromEnv } from "./domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js";
|
|
9
|
-
import { createInMemoryRouterApiRuntimeSnapshotConsumer, validateRuntimeSnapshotExpectation } from "./framework/runtimeSnapshotConsumer.js";
|
|
10
|
-
import express from "express";
|
|
11
|
-
//#region src/router/express-adaptor.ts
|
|
12
|
-
function appendExpressRequestHeaders(headers, req) {
|
|
13
|
-
for (const [name, value] of Object.entries(req.headers)) {
|
|
14
|
-
if (Array.isArray(value)) {
|
|
15
|
-
for (const item of value) headers.append(name, item);
|
|
16
|
-
continue;
|
|
17
|
-
}
|
|
18
|
-
if (typeof value === "string") headers.set(name, value);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function resolveExpressRequestUrl(req) {
|
|
22
|
-
const host = req.get("host") || "localhost";
|
|
23
|
-
return `${req.protocol || "http"}://${host}${req.originalUrl || req.url}`;
|
|
24
|
-
}
|
|
25
|
-
function encodeExpressRequestBody(req) {
|
|
26
|
-
const method = req.method.toUpperCase();
|
|
27
|
-
if (method === "GET" || method === "HEAD") return void 0;
|
|
28
|
-
if (req.body === void 0 || req.body === null) return void 0;
|
|
29
|
-
if (typeof req.body === "string" || req.body instanceof Uint8Array) return req.body;
|
|
30
|
-
return JSON.stringify(req.body);
|
|
31
|
-
}
|
|
32
|
-
function buildFetchRequestFromExpress(req) {
|
|
33
|
-
const headers = new Headers();
|
|
34
|
-
appendExpressRequestHeaders(headers, req);
|
|
35
|
-
const body = encodeExpressRequestBody(req);
|
|
36
|
-
if (body && !headers.has("content-type")) headers.set("content-type", "application/json; charset=utf-8");
|
|
37
|
-
return new Request(resolveExpressRequestUrl(req), {
|
|
38
|
-
method: req.method,
|
|
39
|
-
headers,
|
|
40
|
-
body
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
async function isFetchRouterNotFound(response) {
|
|
44
|
-
if (response.status !== 404) return false;
|
|
45
|
-
return await response.clone().text() === "Not Found";
|
|
46
|
-
}
|
|
47
|
-
async function sendFetchResponseToExpress(fetchResponse, res) {
|
|
48
|
-
fetchResponse.headers.forEach((value, name) => {
|
|
49
|
-
res.setHeader(name, value);
|
|
50
|
-
});
|
|
51
|
-
res.status(fetchResponse.status);
|
|
52
|
-
const body = Buffer.from(await fetchResponse.arrayBuffer());
|
|
53
|
-
if (body.length === 0) {
|
|
54
|
-
res.end();
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
res.send(body);
|
|
58
|
-
}
|
|
59
|
-
function createFetchBackedExpressMiddleware(fetchHandler) {
|
|
60
|
-
return async function fetchBackedExpressMiddleware(req, res, next) {
|
|
61
|
-
try {
|
|
62
|
-
const fetchResponse = await fetchHandler(buildFetchRequestFromExpress(req));
|
|
63
|
-
if (await isFetchRouterNotFound(fetchResponse)) {
|
|
64
|
-
next();
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
await sendFetchResponseToExpress(fetchResponse, res);
|
|
68
|
-
} catch (error) {
|
|
69
|
-
next(error);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
function createRouterApiRouter(service, opts = {}) {
|
|
74
|
-
const fetchHandler = createFetchRouter(service, opts, { kind: "inline" });
|
|
75
|
-
const router = express.Router();
|
|
76
|
-
router.use(createFetchBackedExpressMiddleware(fetchHandler));
|
|
77
|
-
const surface = getRouterApiRouteSurface(fetchHandler);
|
|
78
|
-
if (!surface) return router;
|
|
79
|
-
return attachRouterApiRouteSurface(router, surface);
|
|
80
|
-
}
|
|
81
|
-
//#endregion
|
|
82
|
-
export { InMemoryRouterAbNormalSigningAdmissionStore, ROUTER_AB_PUBLIC_KEYSET_PATH, ROUTER_AB_PUBLIC_KEYSET_VERSION_V2, ROUTER_AB_PUBLIC_KEYSET_WELL_KNOWN_PATH, RouterAbEd25519YaoHttpRegistrationBackend, createInMemoryRouterAbNormalSigningAdmissionAdapter, createInMemoryRouterAbNormalSigningAdmissionStore, createInMemoryRouterApiRuntimeSnapshotConsumer, createRouterAbEd25519YaoHttpRegistrationBackendFromEnv, createRouterAbEd25519YaoProductRegistrationCompositionFromPortsV1, createRouterAbEd25519YaoProductRegistrationRuntimeV1, createRouterAbEd25519YaoProductRegistrationStateV1, createRouterAbNormalSigningAdmissionAdapter, createRouterApiModule, createRouterApiRouter, defineRoute, parseRouterAbPublicKeysetV2, validateRuntimeSnapshotExpectation };
|
|
83
|
-
|
|
84
|
-
//# sourceMappingURL=express-adaptor.js.map
|