@pymthouse/builder-sdk 0.3.1 → 0.4.1-rc.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.
Files changed (103) hide show
  1. package/README.md +54 -28
  2. package/dist/{client-BHfjDvIe.d.ts → client-CauCfGa7.d.ts} +1 -1
  3. package/dist/{client-CvhJEhjV.d.cts → client-D1Xz-xlx.d.cts} +1 -1
  4. package/dist/config.cjs +0 -21
  5. package/dist/config.cjs.map +1 -1
  6. package/dist/config.d.cts +1 -5
  7. package/dist/config.d.ts +1 -5
  8. package/dist/config.js +1 -20
  9. package/dist/config.js.map +1 -1
  10. package/dist/device-initiate.cjs.map +1 -1
  11. package/dist/device-initiate.js.map +1 -1
  12. package/dist/device.cjs.map +1 -1
  13. package/dist/device.d.cts +1 -1
  14. package/dist/device.d.ts +1 -1
  15. package/dist/device.js.map +1 -1
  16. package/dist/env.cjs +13 -4
  17. package/dist/env.cjs.map +1 -1
  18. package/dist/env.d.cts +2 -2
  19. package/dist/env.d.ts +2 -2
  20. package/dist/env.js +13 -4
  21. package/dist/env.js.map +1 -1
  22. package/dist/index-B0ryx942.d.cts +66 -0
  23. package/dist/index-CvV5syf_.d.ts +66 -0
  24. package/dist/index.cjs +13 -4
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +29 -5
  27. package/dist/index.d.ts +29 -5
  28. package/dist/index.js +13 -4
  29. package/dist/index.js.map +1 -1
  30. package/dist/{ingest-DoKJTWU9.d.ts → proxy-JrT6raU_.d.cts} +5 -42
  31. package/dist/{ingest-B3Yi8Tb1.d.cts → proxy-U32DFNuj.d.ts} +5 -42
  32. package/dist/signer/server.cjs +799 -895
  33. package/dist/signer/server.cjs.map +1 -1
  34. package/dist/signer/server.d.cts +11 -15
  35. package/dist/signer/server.d.ts +11 -15
  36. package/dist/signer/server.js +799 -893
  37. package/dist/signer/server.js.map +1 -1
  38. package/dist/signer/webhook/adapters/api-key.cjs +82 -0
  39. package/dist/signer/webhook/adapters/api-key.cjs.map +1 -0
  40. package/dist/signer/webhook/adapters/api-key.d.cts +18 -0
  41. package/dist/signer/webhook/adapters/api-key.d.ts +18 -0
  42. package/dist/signer/webhook/adapters/api-key.js +80 -0
  43. package/dist/signer/webhook/adapters/api-key.js.map +1 -0
  44. package/dist/signer/webhook/adapters/composite.cjs +60 -0
  45. package/dist/signer/webhook/adapters/composite.cjs.map +1 -0
  46. package/dist/signer/webhook/adapters/composite.d.cts +5 -0
  47. package/dist/signer/webhook/adapters/composite.d.ts +5 -0
  48. package/dist/signer/webhook/adapters/composite.js +58 -0
  49. package/dist/signer/webhook/adapters/composite.js.map +1 -0
  50. package/dist/signer/webhook/adapters/oauth1.cjs +18 -0
  51. package/dist/signer/webhook/adapters/oauth1.cjs.map +1 -0
  52. package/dist/signer/webhook/adapters/oauth1.d.cts +19 -0
  53. package/dist/signer/webhook/adapters/oauth1.d.ts +19 -0
  54. package/dist/signer/webhook/adapters/oauth1.js +16 -0
  55. package/dist/signer/webhook/adapters/oauth1.js.map +1 -0
  56. package/dist/signer/webhook/adapters/oidc.cjs +533 -0
  57. package/dist/signer/webhook/adapters/oidc.cjs.map +1 -0
  58. package/dist/signer/webhook/adapters/oidc.d.cts +4 -0
  59. package/dist/signer/webhook/adapters/oidc.d.ts +4 -0
  60. package/dist/signer/webhook/adapters/oidc.js +526 -0
  61. package/dist/signer/webhook/adapters/oidc.js.map +1 -0
  62. package/dist/signer/webhook/adapters/trusted-headers.cjs +110 -0
  63. package/dist/signer/webhook/adapters/trusted-headers.cjs.map +1 -0
  64. package/dist/signer/webhook/adapters/trusted-headers.d.cts +18 -0
  65. package/dist/signer/webhook/adapters/trusted-headers.d.ts +18 -0
  66. package/dist/signer/webhook/adapters/trusted-headers.js +106 -0
  67. package/dist/signer/webhook/adapters/trusted-headers.js.map +1 -0
  68. package/dist/signer/webhook.cjs +759 -0
  69. package/dist/signer/webhook.cjs.map +1 -0
  70. package/dist/signer/webhook.d.cts +26 -0
  71. package/dist/signer/webhook.d.ts +26 -0
  72. package/dist/signer/webhook.js +732 -0
  73. package/dist/signer/webhook.js.map +1 -0
  74. package/dist/tokens.d.cts +1 -1
  75. package/dist/tokens.d.ts +1 -1
  76. package/dist/{types-_R1AwEZp.d.cts → types-BORaHW_x.d.cts} +5 -5
  77. package/dist/{types-_R1AwEZp.d.ts → types-BORaHW_x.d.ts} +5 -5
  78. package/dist/verifier-B-WFDMz6.d.cts +48 -0
  79. package/dist/verifier-B-WFDMz6.d.ts +48 -0
  80. package/dist/verify.cjs.map +1 -1
  81. package/dist/verify.d.cts +1 -1
  82. package/dist/verify.d.ts +1 -1
  83. package/dist/verify.js.map +1 -1
  84. package/package.json +30 -30
  85. package/dist/gateway/client/index.cjs +0 -492
  86. package/dist/gateway/client/index.cjs.map +0 -1
  87. package/dist/gateway/client/index.d.cts +0 -63
  88. package/dist/gateway/client/index.d.ts +0 -63
  89. package/dist/gateway/client/index.js +0 -489
  90. package/dist/gateway/client/index.js.map +0 -1
  91. package/dist/gateway/index.cjs +0 -16
  92. package/dist/gateway/index.cjs.map +0 -1
  93. package/dist/gateway/index.d.cts +0 -52
  94. package/dist/gateway/index.d.ts +0 -52
  95. package/dist/gateway/index.js +0 -10
  96. package/dist/gateway/index.js.map +0 -1
  97. package/dist/gateway/server/index.cjs +0 -1248
  98. package/dist/gateway/server/index.cjs.map +0 -1
  99. package/dist/gateway/server/index.d.cts +0 -31
  100. package/dist/gateway/server/index.d.ts +0 -31
  101. package/dist/gateway/server/index.js +0 -1233
  102. package/dist/gateway/server/index.js.map +0 -1
  103. package/gateway/proto/lp_rpc.proto +0 -542
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ // src/errors.ts
4
+ var PmtHouseError = class extends Error {
5
+ status;
6
+ code;
7
+ details;
8
+ constructor(message, {
9
+ status = 500,
10
+ code = "pymthouse_error",
11
+ details
12
+ } = {}) {
13
+ super(message);
14
+ this.name = "PmtHouseError";
15
+ this.status = status;
16
+ this.code = code;
17
+ this.details = details;
18
+ }
19
+ };
20
+
21
+ // src/signer/webhook/bearer.ts
22
+ var BEARER_PREFIX = "Bearer ";
23
+ function optionalBearerToken(authorization) {
24
+ const trimmed = authorization.trim();
25
+ if (!trimmed.startsWith(BEARER_PREFIX)) {
26
+ return null;
27
+ }
28
+ const token = trimmed.slice(BEARER_PREFIX.length).trim();
29
+ return token || null;
30
+ }
31
+ function bearerTokenFromAuthorization(authorization) {
32
+ const token = optionalBearerToken(authorization);
33
+ if (token) {
34
+ return token;
35
+ }
36
+ if (!authorization.trim()) {
37
+ throw new Error("missing authorization");
38
+ }
39
+ throw new Error("authorization must be Bearer token");
40
+ }
41
+
42
+ // src/signer/webhook/adapters/api-key/verifier.ts
43
+ function createApiKeyEndUserVerifier(config) {
44
+ const prefix = config.apiKeyPrefix ?? "sk_";
45
+ const defaultClientId = config.defaultClientId ?? "daydream-scope";
46
+ const defaultUsageSubjectType = config.defaultUsageSubjectType ?? "clerk_user_id";
47
+ const ttl = config.expiryTtlSeconds ?? 60;
48
+ return {
49
+ kind: "custom",
50
+ verify: async ({ authorization }) => {
51
+ const token = bearerTokenFromAuthorization(authorization);
52
+ if (prefix && !token.startsWith(prefix)) {
53
+ throw new PmtHouseError("invalid api key", {
54
+ status: 401,
55
+ code: "invalid_api_key"
56
+ });
57
+ }
58
+ const resolved = await config.resolveApiKey(token);
59
+ if (!resolved?.userId) {
60
+ throw new PmtHouseError("invalid api key", {
61
+ status: 401,
62
+ code: "invalid_api_key"
63
+ });
64
+ }
65
+ const identity = {
66
+ issuer: config.issuer,
67
+ client_id: resolved.clientId ?? defaultClientId,
68
+ usage_subject: resolved.userId,
69
+ usage_subject_type: resolved.usageSubjectType ?? defaultUsageSubjectType
70
+ };
71
+ return {
72
+ identity,
73
+ expiry: Math.trunc(Date.now() / 1e3) + ttl,
74
+ raw: resolved
75
+ };
76
+ }
77
+ };
78
+ }
79
+
80
+ exports.createApiKeyEndUserVerifier = createApiKeyEndUserVerifier;
81
+ //# sourceMappingURL=api-key.cjs.map
82
+ //# sourceMappingURL=api-key.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/errors.ts","../../../../src/signer/webhook/bearer.ts","../../../../src/signer/webhook/adapters/api-key/verifier.ts"],"names":[],"mappings":"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","file":"api-key.cjs","sourcesContent":["export class PmtHouseError extends Error {\n readonly status: number;\n readonly code: string;\n readonly details?: unknown;\n\n constructor(\n message: string,\n {\n status = 500,\n code = \"pymthouse_error\",\n details,\n }: {\n status?: number;\n code?: string;\n details?: unknown;\n } = {},\n ) {\n super(message);\n this.name = \"PmtHouseError\";\n this.status = status;\n this.code = code;\n this.details = details;\n }\n}\n\nexport function toPmtHouseError(\n error: unknown,\n fallbackMessage: string,\n): PmtHouseError {\n if (error instanceof PmtHouseError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new PmtHouseError(error.message || fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n }\n\n return new PmtHouseError(fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n}\n","const BEARER_PREFIX = \"Bearer \";\n\n/** Returns the token after `Bearer `, or null when the header is missing or not Bearer. */\nexport function optionalBearerToken(authorization: string): string | null {\n const trimmed = authorization.trim();\n if (!trimmed.startsWith(BEARER_PREFIX)) {\n return null;\n }\n const token = trimmed.slice(BEARER_PREFIX.length).trim();\n return token || null;\n}\n\nexport function bearerTokenFromAuthorization(authorization: string): string {\n const token = optionalBearerToken(authorization);\n if (token) {\n return token;\n }\n if (!authorization.trim()) {\n throw new Error(\"missing authorization\");\n }\n throw new Error(\"authorization must be Bearer token\");\n}\n","import { PmtHouseError } from \"../../../../errors.js\";\nimport { bearerTokenFromAuthorization } from \"../../bearer.js\";\nimport type { UsageIdentity } from \"../../types.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport type ApiKeyResolveResult = {\n userId: string;\n clientId?: string;\n usageSubjectType?: string;\n};\n\nexport type ApiKeyEndUserVerifierConfig = {\n issuer: string;\n resolveApiKey: (apiKey: string) => Promise<ApiKeyResolveResult | null>;\n expiryTtlSeconds?: number;\n apiKeyPrefix?: string;\n defaultClientId?: string;\n defaultUsageSubjectType?: string;\n};\n\nexport function createApiKeyEndUserVerifier(\n config: ApiKeyEndUserVerifierConfig,\n): EndUserAuthVerifier {\n const prefix = config.apiKeyPrefix ?? \"sk_\";\n const defaultClientId = config.defaultClientId ?? \"daydream-scope\";\n const defaultUsageSubjectType =\n config.defaultUsageSubjectType ?? \"clerk_user_id\";\n const ttl = config.expiryTtlSeconds ?? 60;\n\n return {\n kind: \"custom\",\n verify: async ({ authorization }) => {\n const token = bearerTokenFromAuthorization(authorization);\n if (prefix && !token.startsWith(prefix)) {\n throw new PmtHouseError(\"invalid api key\", {\n status: 401,\n code: \"invalid_api_key\",\n });\n }\n\n const resolved = await config.resolveApiKey(token);\n if (!resolved?.userId) {\n throw new PmtHouseError(\"invalid api key\", {\n status: 401,\n code: \"invalid_api_key\",\n });\n }\n\n const identity: UsageIdentity = {\n issuer: config.issuer,\n client_id: resolved.clientId ?? defaultClientId,\n usage_subject: resolved.userId,\n usage_subject_type:\n resolved.usageSubjectType ?? defaultUsageSubjectType,\n };\n\n return {\n identity,\n expiry: Math.trunc(Date.now() / 1000) + ttl,\n raw: resolved,\n };\n },\n };\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.cjs';
2
+
3
+ type ApiKeyResolveResult = {
4
+ userId: string;
5
+ clientId?: string;
6
+ usageSubjectType?: string;
7
+ };
8
+ type ApiKeyEndUserVerifierConfig = {
9
+ issuer: string;
10
+ resolveApiKey: (apiKey: string) => Promise<ApiKeyResolveResult | null>;
11
+ expiryTtlSeconds?: number;
12
+ apiKeyPrefix?: string;
13
+ defaultClientId?: string;
14
+ defaultUsageSubjectType?: string;
15
+ };
16
+ declare function createApiKeyEndUserVerifier(config: ApiKeyEndUserVerifierConfig): EndUserAuthVerifier;
17
+
18
+ export { type ApiKeyEndUserVerifierConfig, type ApiKeyResolveResult, createApiKeyEndUserVerifier };
@@ -0,0 +1,18 @@
1
+ import { E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.js';
2
+
3
+ type ApiKeyResolveResult = {
4
+ userId: string;
5
+ clientId?: string;
6
+ usageSubjectType?: string;
7
+ };
8
+ type ApiKeyEndUserVerifierConfig = {
9
+ issuer: string;
10
+ resolveApiKey: (apiKey: string) => Promise<ApiKeyResolveResult | null>;
11
+ expiryTtlSeconds?: number;
12
+ apiKeyPrefix?: string;
13
+ defaultClientId?: string;
14
+ defaultUsageSubjectType?: string;
15
+ };
16
+ declare function createApiKeyEndUserVerifier(config: ApiKeyEndUserVerifierConfig): EndUserAuthVerifier;
17
+
18
+ export { type ApiKeyEndUserVerifierConfig, type ApiKeyResolveResult, createApiKeyEndUserVerifier };
@@ -0,0 +1,80 @@
1
+ // src/errors.ts
2
+ var PmtHouseError = class extends Error {
3
+ status;
4
+ code;
5
+ details;
6
+ constructor(message, {
7
+ status = 500,
8
+ code = "pymthouse_error",
9
+ details
10
+ } = {}) {
11
+ super(message);
12
+ this.name = "PmtHouseError";
13
+ this.status = status;
14
+ this.code = code;
15
+ this.details = details;
16
+ }
17
+ };
18
+
19
+ // src/signer/webhook/bearer.ts
20
+ var BEARER_PREFIX = "Bearer ";
21
+ function optionalBearerToken(authorization) {
22
+ const trimmed = authorization.trim();
23
+ if (!trimmed.startsWith(BEARER_PREFIX)) {
24
+ return null;
25
+ }
26
+ const token = trimmed.slice(BEARER_PREFIX.length).trim();
27
+ return token || null;
28
+ }
29
+ function bearerTokenFromAuthorization(authorization) {
30
+ const token = optionalBearerToken(authorization);
31
+ if (token) {
32
+ return token;
33
+ }
34
+ if (!authorization.trim()) {
35
+ throw new Error("missing authorization");
36
+ }
37
+ throw new Error("authorization must be Bearer token");
38
+ }
39
+
40
+ // src/signer/webhook/adapters/api-key/verifier.ts
41
+ function createApiKeyEndUserVerifier(config) {
42
+ const prefix = config.apiKeyPrefix ?? "sk_";
43
+ const defaultClientId = config.defaultClientId ?? "daydream-scope";
44
+ const defaultUsageSubjectType = config.defaultUsageSubjectType ?? "clerk_user_id";
45
+ const ttl = config.expiryTtlSeconds ?? 60;
46
+ return {
47
+ kind: "custom",
48
+ verify: async ({ authorization }) => {
49
+ const token = bearerTokenFromAuthorization(authorization);
50
+ if (prefix && !token.startsWith(prefix)) {
51
+ throw new PmtHouseError("invalid api key", {
52
+ status: 401,
53
+ code: "invalid_api_key"
54
+ });
55
+ }
56
+ const resolved = await config.resolveApiKey(token);
57
+ if (!resolved?.userId) {
58
+ throw new PmtHouseError("invalid api key", {
59
+ status: 401,
60
+ code: "invalid_api_key"
61
+ });
62
+ }
63
+ const identity = {
64
+ issuer: config.issuer,
65
+ client_id: resolved.clientId ?? defaultClientId,
66
+ usage_subject: resolved.userId,
67
+ usage_subject_type: resolved.usageSubjectType ?? defaultUsageSubjectType
68
+ };
69
+ return {
70
+ identity,
71
+ expiry: Math.trunc(Date.now() / 1e3) + ttl,
72
+ raw: resolved
73
+ };
74
+ }
75
+ };
76
+ }
77
+
78
+ export { createApiKeyEndUserVerifier };
79
+ //# sourceMappingURL=api-key.js.map
80
+ //# sourceMappingURL=api-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/errors.ts","../../../../src/signer/webhook/bearer.ts","../../../../src/signer/webhook/adapters/api-key/verifier.ts"],"names":[],"mappings":"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","file":"api-key.js","sourcesContent":["export class PmtHouseError extends Error {\n readonly status: number;\n readonly code: string;\n readonly details?: unknown;\n\n constructor(\n message: string,\n {\n status = 500,\n code = \"pymthouse_error\",\n details,\n }: {\n status?: number;\n code?: string;\n details?: unknown;\n } = {},\n ) {\n super(message);\n this.name = \"PmtHouseError\";\n this.status = status;\n this.code = code;\n this.details = details;\n }\n}\n\nexport function toPmtHouseError(\n error: unknown,\n fallbackMessage: string,\n): PmtHouseError {\n if (error instanceof PmtHouseError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new PmtHouseError(error.message || fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n }\n\n return new PmtHouseError(fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n}\n","const BEARER_PREFIX = \"Bearer \";\n\n/** Returns the token after `Bearer `, or null when the header is missing or not Bearer. */\nexport function optionalBearerToken(authorization: string): string | null {\n const trimmed = authorization.trim();\n if (!trimmed.startsWith(BEARER_PREFIX)) {\n return null;\n }\n const token = trimmed.slice(BEARER_PREFIX.length).trim();\n return token || null;\n}\n\nexport function bearerTokenFromAuthorization(authorization: string): string {\n const token = optionalBearerToken(authorization);\n if (token) {\n return token;\n }\n if (!authorization.trim()) {\n throw new Error(\"missing authorization\");\n }\n throw new Error(\"authorization must be Bearer token\");\n}\n","import { PmtHouseError } from \"../../../../errors.js\";\nimport { bearerTokenFromAuthorization } from \"../../bearer.js\";\nimport type { UsageIdentity } from \"../../types.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport type ApiKeyResolveResult = {\n userId: string;\n clientId?: string;\n usageSubjectType?: string;\n};\n\nexport type ApiKeyEndUserVerifierConfig = {\n issuer: string;\n resolveApiKey: (apiKey: string) => Promise<ApiKeyResolveResult | null>;\n expiryTtlSeconds?: number;\n apiKeyPrefix?: string;\n defaultClientId?: string;\n defaultUsageSubjectType?: string;\n};\n\nexport function createApiKeyEndUserVerifier(\n config: ApiKeyEndUserVerifierConfig,\n): EndUserAuthVerifier {\n const prefix = config.apiKeyPrefix ?? \"sk_\";\n const defaultClientId = config.defaultClientId ?? \"daydream-scope\";\n const defaultUsageSubjectType =\n config.defaultUsageSubjectType ?? \"clerk_user_id\";\n const ttl = config.expiryTtlSeconds ?? 60;\n\n return {\n kind: \"custom\",\n verify: async ({ authorization }) => {\n const token = bearerTokenFromAuthorization(authorization);\n if (prefix && !token.startsWith(prefix)) {\n throw new PmtHouseError(\"invalid api key\", {\n status: 401,\n code: \"invalid_api_key\",\n });\n }\n\n const resolved = await config.resolveApiKey(token);\n if (!resolved?.userId) {\n throw new PmtHouseError(\"invalid api key\", {\n status: 401,\n code: \"invalid_api_key\",\n });\n }\n\n const identity: UsageIdentity = {\n issuer: config.issuer,\n client_id: resolved.clientId ?? defaultClientId,\n usage_subject: resolved.userId,\n usage_subject_type:\n resolved.usageSubjectType ?? defaultUsageSubjectType,\n };\n\n return {\n identity,\n expiry: Math.trunc(Date.now() / 1000) + ttl,\n raw: resolved,\n };\n },\n };\n}\n"]}
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ // src/errors.ts
4
+ var PmtHouseError = class extends Error {
5
+ status;
6
+ code;
7
+ details;
8
+ constructor(message, {
9
+ status = 500,
10
+ code = "pymthouse_error",
11
+ details
12
+ } = {}) {
13
+ super(message);
14
+ this.name = "PmtHouseError";
15
+ this.status = status;
16
+ this.code = code;
17
+ this.details = details;
18
+ }
19
+ };
20
+
21
+ // src/signer/webhook/adapters/composite/verifier.ts
22
+ function createFirstMatchEndUserVerifier(verifiers) {
23
+ if (verifiers.length === 0) {
24
+ throw new PmtHouseError("at least one verifier is required", {
25
+ status: 500,
26
+ code: "invalid_verifier_config"
27
+ });
28
+ }
29
+ return {
30
+ kind: "custom",
31
+ verify: async (context) => {
32
+ let lastError;
33
+ for (const verifier of verifiers) {
34
+ try {
35
+ return await verifier.verify(context);
36
+ } catch (err) {
37
+ lastError = err;
38
+ }
39
+ }
40
+ if (lastError instanceof PmtHouseError) {
41
+ throw lastError;
42
+ }
43
+ if (lastError instanceof Error) {
44
+ throw new PmtHouseError(lastError.message, {
45
+ status: 401,
46
+ code: "invalid_credentials"
47
+ });
48
+ }
49
+ throw new PmtHouseError("invalid credentials", {
50
+ status: 401,
51
+ code: "invalid_credentials"
52
+ });
53
+ },
54
+ adminRoutes: verifiers.flatMap((verifier) => verifier.adminRoutes ?? [])
55
+ };
56
+ }
57
+
58
+ exports.createFirstMatchEndUserVerifier = createFirstMatchEndUserVerifier;
59
+ //# sourceMappingURL=composite.cjs.map
60
+ //# sourceMappingURL=composite.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/errors.ts","../../../../src/signer/webhook/adapters/composite/verifier.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAA,GAAN,cAA4B,KAAA,CAAM;AAAA,EAC9B,MAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EAET,YACE,OAAA,EACA;AAAA,IACE,MAAA,GAAS,GAAA;AAAA,IACT,IAAA,GAAO,iBAAA;AAAA,IACP;AAAA,GACF,GAII,EAAC,EACL;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACF,CAAA;;;ACpBO,SAAS,gCACd,SAAA,EACqB;AACrB,EAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,cAAc,mCAAA,EAAqC;AAAA,MAC3D,MAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,MAAA,EAAQ,OAAO,OAAA,KAAY;AACzB,MAAA,IAAI,SAAA;AACJ,MAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,QAAA,IAAI;AACF,UAAA,OAAO,MAAM,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AAAA,QACtC,SAAS,GAAA,EAAK;AACZ,UAAA,SAAA,GAAY,GAAA;AAAA,QACd;AAAA,MACF;AAEA,MAAA,IAAI,qBAAqB,aAAA,EAAe;AACtC,QAAA,MAAM,SAAA;AAAA,MACR;AACA,MAAA,IAAI,qBAAqB,KAAA,EAAO;AAC9B,QAAA,MAAM,IAAI,aAAA,CAAc,SAAA,CAAU,OAAA,EAAS;AAAA,UACzC,MAAA,EAAQ,GAAA;AAAA,UACR,IAAA,EAAM;AAAA,SACP,CAAA;AAAA,MACH;AACA,MAAA,MAAM,IAAI,cAAc,qBAAA,EAAuB;AAAA,QAC7C,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA,IACA,WAAA,EAAa,UAAU,OAAA,CAAQ,CAAC,aAAa,QAAA,CAAS,WAAA,IAAe,EAAE;AAAA,GACzE;AACF","file":"composite.cjs","sourcesContent":["export class PmtHouseError extends Error {\n readonly status: number;\n readonly code: string;\n readonly details?: unknown;\n\n constructor(\n message: string,\n {\n status = 500,\n code = \"pymthouse_error\",\n details,\n }: {\n status?: number;\n code?: string;\n details?: unknown;\n } = {},\n ) {\n super(message);\n this.name = \"PmtHouseError\";\n this.status = status;\n this.code = code;\n this.details = details;\n }\n}\n\nexport function toPmtHouseError(\n error: unknown,\n fallbackMessage: string,\n): PmtHouseError {\n if (error instanceof PmtHouseError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new PmtHouseError(error.message || fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n }\n\n return new PmtHouseError(fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n}\n","import { PmtHouseError } from \"../../../../errors.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport function createFirstMatchEndUserVerifier(\n verifiers: EndUserAuthVerifier[],\n): EndUserAuthVerifier {\n if (verifiers.length === 0) {\n throw new PmtHouseError(\"at least one verifier is required\", {\n status: 500,\n code: \"invalid_verifier_config\",\n });\n }\n\n return {\n kind: \"custom\",\n verify: async (context) => {\n let lastError: unknown;\n for (const verifier of verifiers) {\n try {\n return await verifier.verify(context);\n } catch (err) {\n lastError = err;\n }\n }\n\n if (lastError instanceof PmtHouseError) {\n throw lastError;\n }\n if (lastError instanceof Error) {\n throw new PmtHouseError(lastError.message, {\n status: 401,\n code: \"invalid_credentials\",\n });\n }\n throw new PmtHouseError(\"invalid credentials\", {\n status: 401,\n code: \"invalid_credentials\",\n });\n },\n adminRoutes: verifiers.flatMap((verifier) => verifier.adminRoutes ?? []),\n };\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.cjs';
2
+
3
+ declare function createFirstMatchEndUserVerifier(verifiers: EndUserAuthVerifier[]): EndUserAuthVerifier;
4
+
5
+ export { createFirstMatchEndUserVerifier };
@@ -0,0 +1,5 @@
1
+ import { E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.js';
2
+
3
+ declare function createFirstMatchEndUserVerifier(verifiers: EndUserAuthVerifier[]): EndUserAuthVerifier;
4
+
5
+ export { createFirstMatchEndUserVerifier };
@@ -0,0 +1,58 @@
1
+ // src/errors.ts
2
+ var PmtHouseError = class extends Error {
3
+ status;
4
+ code;
5
+ details;
6
+ constructor(message, {
7
+ status = 500,
8
+ code = "pymthouse_error",
9
+ details
10
+ } = {}) {
11
+ super(message);
12
+ this.name = "PmtHouseError";
13
+ this.status = status;
14
+ this.code = code;
15
+ this.details = details;
16
+ }
17
+ };
18
+
19
+ // src/signer/webhook/adapters/composite/verifier.ts
20
+ function createFirstMatchEndUserVerifier(verifiers) {
21
+ if (verifiers.length === 0) {
22
+ throw new PmtHouseError("at least one verifier is required", {
23
+ status: 500,
24
+ code: "invalid_verifier_config"
25
+ });
26
+ }
27
+ return {
28
+ kind: "custom",
29
+ verify: async (context) => {
30
+ let lastError;
31
+ for (const verifier of verifiers) {
32
+ try {
33
+ return await verifier.verify(context);
34
+ } catch (err) {
35
+ lastError = err;
36
+ }
37
+ }
38
+ if (lastError instanceof PmtHouseError) {
39
+ throw lastError;
40
+ }
41
+ if (lastError instanceof Error) {
42
+ throw new PmtHouseError(lastError.message, {
43
+ status: 401,
44
+ code: "invalid_credentials"
45
+ });
46
+ }
47
+ throw new PmtHouseError("invalid credentials", {
48
+ status: 401,
49
+ code: "invalid_credentials"
50
+ });
51
+ },
52
+ adminRoutes: verifiers.flatMap((verifier) => verifier.adminRoutes ?? [])
53
+ };
54
+ }
55
+
56
+ export { createFirstMatchEndUserVerifier };
57
+ //# sourceMappingURL=composite.js.map
58
+ //# sourceMappingURL=composite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/errors.ts","../../../../src/signer/webhook/adapters/composite/verifier.ts"],"names":[],"mappings":";AAAO,IAAM,aAAA,GAAN,cAA4B,KAAA,CAAM;AAAA,EAC9B,MAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EAET,YACE,OAAA,EACA;AAAA,IACE,MAAA,GAAS,GAAA;AAAA,IACT,IAAA,GAAO,iBAAA;AAAA,IACP;AAAA,GACF,GAII,EAAC,EACL;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACF,CAAA;;;ACpBO,SAAS,gCACd,SAAA,EACqB;AACrB,EAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,cAAc,mCAAA,EAAqC;AAAA,MAC3D,MAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,MAAA,EAAQ,OAAO,OAAA,KAAY;AACzB,MAAA,IAAI,SAAA;AACJ,MAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,QAAA,IAAI;AACF,UAAA,OAAO,MAAM,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AAAA,QACtC,SAAS,GAAA,EAAK;AACZ,UAAA,SAAA,GAAY,GAAA;AAAA,QACd;AAAA,MACF;AAEA,MAAA,IAAI,qBAAqB,aAAA,EAAe;AACtC,QAAA,MAAM,SAAA;AAAA,MACR;AACA,MAAA,IAAI,qBAAqB,KAAA,EAAO;AAC9B,QAAA,MAAM,IAAI,aAAA,CAAc,SAAA,CAAU,OAAA,EAAS;AAAA,UACzC,MAAA,EAAQ,GAAA;AAAA,UACR,IAAA,EAAM;AAAA,SACP,CAAA;AAAA,MACH;AACA,MAAA,MAAM,IAAI,cAAc,qBAAA,EAAuB;AAAA,QAC7C,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA,IACA,WAAA,EAAa,UAAU,OAAA,CAAQ,CAAC,aAAa,QAAA,CAAS,WAAA,IAAe,EAAE;AAAA,GACzE;AACF","file":"composite.js","sourcesContent":["export class PmtHouseError extends Error {\n readonly status: number;\n readonly code: string;\n readonly details?: unknown;\n\n constructor(\n message: string,\n {\n status = 500,\n code = \"pymthouse_error\",\n details,\n }: {\n status?: number;\n code?: string;\n details?: unknown;\n } = {},\n ) {\n super(message);\n this.name = \"PmtHouseError\";\n this.status = status;\n this.code = code;\n this.details = details;\n }\n}\n\nexport function toPmtHouseError(\n error: unknown,\n fallbackMessage: string,\n): PmtHouseError {\n if (error instanceof PmtHouseError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new PmtHouseError(error.message || fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n }\n\n return new PmtHouseError(fallbackMessage, {\n code: \"unexpected_error\",\n status: 500,\n });\n}\n","import { PmtHouseError } from \"../../../../errors.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport function createFirstMatchEndUserVerifier(\n verifiers: EndUserAuthVerifier[],\n): EndUserAuthVerifier {\n if (verifiers.length === 0) {\n throw new PmtHouseError(\"at least one verifier is required\", {\n status: 500,\n code: \"invalid_verifier_config\",\n });\n }\n\n return {\n kind: \"custom\",\n verify: async (context) => {\n let lastError: unknown;\n for (const verifier of verifiers) {\n try {\n return await verifier.verify(context);\n } catch (err) {\n lastError = err;\n }\n }\n\n if (lastError instanceof PmtHouseError) {\n throw lastError;\n }\n if (lastError instanceof Error) {\n throw new PmtHouseError(lastError.message, {\n status: 401,\n code: \"invalid_credentials\",\n });\n }\n throw new PmtHouseError(\"invalid credentials\", {\n status: 401,\n code: \"invalid_credentials\",\n });\n },\n adminRoutes: verifiers.flatMap((verifier) => verifier.adminRoutes ?? []),\n };\n}\n"]}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ // src/signer/webhook/adapters/oauth1/verifier.ts
4
+ function createOAuth1EndUserVerifier(config) {
5
+ return {
6
+ kind: "oauth1",
7
+ verify: async () => {
8
+ if (!config.consumerKey.trim() || !config.consumerSecret.trim()) {
9
+ throw new Error("OAuth 1.0 consumer credentials are required");
10
+ }
11
+ throw new Error("OAuth 1.0 webhook verification is not implemented yet");
12
+ }
13
+ };
14
+ }
15
+
16
+ exports.createOAuth1EndUserVerifier = createOAuth1EndUserVerifier;
17
+ //# sourceMappingURL=oauth1.cjs.map
18
+ //# sourceMappingURL=oauth1.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/signer/webhook/adapters/oauth1/verifier.ts"],"names":[],"mappings":";;;AAkBO,SAAS,4BACd,MAAA,EACqB;AACrB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,QAAQ,YAAY;AAClB,MAAA,IAAI,CAAC,OAAO,WAAA,CAAY,IAAA,MAAU,CAAC,MAAA,CAAO,cAAA,CAAe,IAAA,EAAK,EAAG;AAC/D,QAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,MAC/D;AACA,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAAA,GACF;AACF","file":"oauth1.cjs","sourcesContent":["import type { UsageIdentity } from \"../../types.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport type OAuth1EndUserAuthConfig = {\n consumerKey: string;\n consumerSecret: string;\n /** Resolve oauth_token → UsageIdentity (platform-owned store). */\n resolveIdentity: (oauthToken: string) => Promise<UsageIdentity>;\n tokenSecretLookup?: (oauthToken: string) => Promise<string | undefined>;\n};\n\n/**\n * OAuth 1.0a end-user auth verifier (stub).\n *\n * A full implementation will parse `Authorization: OAuth …` from\n * `context.authorization`, validate the signature using `context.payload.headers`\n * and the request URL, then call `resolveIdentity`.\n */\nexport function createOAuth1EndUserVerifier(\n config: OAuth1EndUserAuthConfig,\n): EndUserAuthVerifier {\n return {\n kind: \"oauth1\",\n verify: async () => {\n if (!config.consumerKey.trim() || !config.consumerSecret.trim()) {\n throw new Error(\"OAuth 1.0 consumer credentials are required\");\n }\n throw new Error(\"OAuth 1.0 webhook verification is not implemented yet\");\n },\n };\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { U as UsageIdentity, E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.cjs';
2
+
3
+ type OAuth1EndUserAuthConfig = {
4
+ consumerKey: string;
5
+ consumerSecret: string;
6
+ /** Resolve oauth_token → UsageIdentity (platform-owned store). */
7
+ resolveIdentity: (oauthToken: string) => Promise<UsageIdentity>;
8
+ tokenSecretLookup?: (oauthToken: string) => Promise<string | undefined>;
9
+ };
10
+ /**
11
+ * OAuth 1.0a end-user auth verifier (stub).
12
+ *
13
+ * A full implementation will parse `Authorization: OAuth …` from
14
+ * `context.authorization`, validate the signature using `context.payload.headers`
15
+ * and the request URL, then call `resolveIdentity`.
16
+ */
17
+ declare function createOAuth1EndUserVerifier(config: OAuth1EndUserAuthConfig): EndUserAuthVerifier;
18
+
19
+ export { type OAuth1EndUserAuthConfig, createOAuth1EndUserVerifier };
@@ -0,0 +1,19 @@
1
+ import { U as UsageIdentity, E as EndUserAuthVerifier } from '../../../verifier-B-WFDMz6.js';
2
+
3
+ type OAuth1EndUserAuthConfig = {
4
+ consumerKey: string;
5
+ consumerSecret: string;
6
+ /** Resolve oauth_token → UsageIdentity (platform-owned store). */
7
+ resolveIdentity: (oauthToken: string) => Promise<UsageIdentity>;
8
+ tokenSecretLookup?: (oauthToken: string) => Promise<string | undefined>;
9
+ };
10
+ /**
11
+ * OAuth 1.0a end-user auth verifier (stub).
12
+ *
13
+ * A full implementation will parse `Authorization: OAuth …` from
14
+ * `context.authorization`, validate the signature using `context.payload.headers`
15
+ * and the request URL, then call `resolveIdentity`.
16
+ */
17
+ declare function createOAuth1EndUserVerifier(config: OAuth1EndUserAuthConfig): EndUserAuthVerifier;
18
+
19
+ export { type OAuth1EndUserAuthConfig, createOAuth1EndUserVerifier };
@@ -0,0 +1,16 @@
1
+ // src/signer/webhook/adapters/oauth1/verifier.ts
2
+ function createOAuth1EndUserVerifier(config) {
3
+ return {
4
+ kind: "oauth1",
5
+ verify: async () => {
6
+ if (!config.consumerKey.trim() || !config.consumerSecret.trim()) {
7
+ throw new Error("OAuth 1.0 consumer credentials are required");
8
+ }
9
+ throw new Error("OAuth 1.0 webhook verification is not implemented yet");
10
+ }
11
+ };
12
+ }
13
+
14
+ export { createOAuth1EndUserVerifier };
15
+ //# sourceMappingURL=oauth1.js.map
16
+ //# sourceMappingURL=oauth1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/signer/webhook/adapters/oauth1/verifier.ts"],"names":[],"mappings":";AAkBO,SAAS,4BACd,MAAA,EACqB;AACrB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,QAAQ,YAAY;AAClB,MAAA,IAAI,CAAC,OAAO,WAAA,CAAY,IAAA,MAAU,CAAC,MAAA,CAAO,cAAA,CAAe,IAAA,EAAK,EAAG;AAC/D,QAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,MAC/D;AACA,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAAA,GACF;AACF","file":"oauth1.js","sourcesContent":["import type { UsageIdentity } from \"../../types.js\";\nimport type { EndUserAuthVerifier } from \"../../verifier.js\";\n\nexport type OAuth1EndUserAuthConfig = {\n consumerKey: string;\n consumerSecret: string;\n /** Resolve oauth_token → UsageIdentity (platform-owned store). */\n resolveIdentity: (oauthToken: string) => Promise<UsageIdentity>;\n tokenSecretLookup?: (oauthToken: string) => Promise<string | undefined>;\n};\n\n/**\n * OAuth 1.0a end-user auth verifier (stub).\n *\n * A full implementation will parse `Authorization: OAuth …` from\n * `context.authorization`, validate the signature using `context.payload.headers`\n * and the request URL, then call `resolveIdentity`.\n */\nexport function createOAuth1EndUserVerifier(\n config: OAuth1EndUserAuthConfig,\n): EndUserAuthVerifier {\n return {\n kind: \"oauth1\",\n verify: async () => {\n if (!config.consumerKey.trim() || !config.consumerSecret.trim()) {\n throw new Error(\"OAuth 1.0 consumer credentials are required\");\n }\n throw new Error(\"OAuth 1.0 webhook verification is not implemented yet\");\n },\n };\n}\n"]}