@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.
Files changed (106) hide show
  1. package/THIRD_PARTY_NOTICES.md +33 -1812
  2. package/artifact-manifest.json +28 -28
  3. package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
  7. package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
  8. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  9. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  10. package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
  11. package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
  12. package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
  13. package/cloudflare-router-ab/build/router/index.js +2 -2
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
  16. package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
  17. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  18. package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
  19. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
  20. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  21. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +3 -0
  22. package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +3 -0
  23. package/dist/esm/cloud-host.js +7 -7
  24. package/dist/esm/core/ThresholdService/kv.js +1 -218
  25. package/dist/esm/hosted-wallet-gateway.js +1 -1
  26. package/dist/esm/index.js +3 -4
  27. package/dist/esm/localHostedWalletGatewayHandler.js +17 -11
  28. package/dist/esm/localIntendedYaoFault.js +34 -3
  29. package/dist/esm/localIntendedYaoRecoveryFault.js +19 -16
  30. package/dist/esm/localIntendedYaoSigningFault.js +31 -16
  31. package/dist/esm/router/auth/routerApiKeyAuth.js +1 -13
  32. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +3 -3
  33. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
  34. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +1 -1
  35. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -1
  36. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -1
  37. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +19 -0
  38. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +5 -5
  39. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +5 -2
  40. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +7 -1
  41. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +29 -4
  42. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +6 -3
  43. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +51 -29
  44. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +23 -7
  45. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +1 -1
  46. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +2 -2
  47. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +3 -3
  48. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +1 -1
  49. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +1 -1
  50. package/dist/esm/router/cloudflare-adaptor.js +2 -3
  51. package/dist/esm/router/cloudflare.js +2470 -2515
  52. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +1 -1
  53. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +39 -32
  54. package/dist/esm/router/framework/registrationSetupDispatch.js +11 -3
  55. package/dist/esm/router/framework/routeResponses.js +1 -5
  56. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +1 -1
  57. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +2 -2
  58. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +51 -24
  59. package/dist/esm/shared-ts/src/utils/validation.js +5 -1
  60. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +2 -98
  61. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +2 -69
  62. package/dist/esm/threshold/session/signingSessionSeal/index.js +3 -4
  63. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  64. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  65. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  66. package/dist/types/wallet-server/src/cloud-host.d.ts +1 -0
  67. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +0 -29
  68. package/dist/types/wallet-server/src/localHostedWalletGatewayHandler.d.ts +1 -1
  69. package/dist/types/wallet-server/src/localIntendedYaoFault.d.ts +13 -3
  70. package/dist/types/wallet-server/src/localIntendedYaoRecoveryFault.d.ts +4 -2
  71. package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +4 -2
  72. package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +0 -8
  73. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +2 -0
  74. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +1 -0
  75. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +2 -0
  76. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +25 -5
  77. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +15 -0
  78. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +1 -3
  79. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +2 -0
  80. package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +0 -2
  81. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +1 -16
  82. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +1 -16
  83. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +5 -6
  84. package/package.json +2 -9
  85. package/src/README.md +5 -3
  86. package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +0 -93
  87. package/dist/esm/router/express-adaptor.js +0 -84
  88. package/dist/esm/router/express.js +0 -26400
  89. package/dist/esm/router/node/nodeHostedWalletGateway.js +0 -64
  90. package/dist/esm/router/node/nodeHostedWalletGatewayCheck.js +0 -163
  91. package/dist/esm/router/node/nodeHostedWalletGatewayMain.js +0 -120
  92. package/dist/esm/router/node/nodeHttp.js +0 -79
  93. package/dist/esm/router/node/nodeSqlite.js +0 -43
  94. package/dist/esm/router/node/signerSqlMigrations.js +0 -48
  95. package/dist/esm/storage/syncSqlite.js +0 -79
  96. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +0 -75
  97. package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +0 -23
  98. package/dist/types/wallet-server/src/router/express-adaptor.d.ts +0 -22
  99. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGateway.d.ts +0 -34
  100. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayCheck.d.ts +0 -21
  101. package/dist/types/wallet-server/src/router/node/nodeHostedWalletGatewayMain.d.ts +0 -2
  102. package/dist/types/wallet-server/src/router/node/nodeHttp.d.ts +0 -13
  103. package/dist/types/wallet-server/src/router/node/nodeSqlite.d.ts +0 -22
  104. package/dist/types/wallet-server/src/router/node/signerSqlMigrations.d.ts +0 -20
  105. package/dist/types/wallet-server/src/storage/syncSqlite.d.ts +0 -28
  106. 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