@thirdweb-dev/service-utils 0.5.0-nightly-6cf298a29-20240308012322 → 0.5.1

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 (142) hide show
  1. package/dist/cjs/cf-worker/index.js +152 -0
  2. package/dist/cjs/cf-worker/index.js.map +1 -0
  3. package/dist/cjs/cf-worker/usage.js +55 -0
  4. package/dist/cjs/cf-worker/usage.js.map +1 -0
  5. package/dist/cjs/core/api.js +42 -0
  6. package/dist/cjs/core/api.js.map +1 -0
  7. package/dist/cjs/core/authorize/client.js +104 -0
  8. package/dist/cjs/core/authorize/client.js.map +1 -0
  9. package/dist/cjs/core/authorize/index.js +110 -0
  10. package/dist/cjs/core/authorize/index.js.map +1 -0
  11. package/dist/cjs/core/authorize/service.js +60 -0
  12. package/dist/cjs/core/authorize/service.js.map +1 -0
  13. package/dist/cjs/core/authorize/types.js +3 -0
  14. package/dist/cjs/core/authorize/types.js.map +1 -0
  15. package/dist/cjs/core/rateLimit/index.js +60 -0
  16. package/dist/cjs/core/rateLimit/index.js.map +1 -0
  17. package/dist/cjs/core/rateLimit/types.js +3 -0
  18. package/dist/cjs/core/rateLimit/types.js.map +1 -0
  19. package/dist/cjs/core/services.js +85 -0
  20. package/dist/cjs/core/services.js.map +1 -0
  21. package/dist/cjs/core/types.js +3 -0
  22. package/dist/cjs/core/types.js.map +1 -0
  23. package/dist/cjs/core/usage.js +85 -0
  24. package/dist/cjs/core/usage.js.map +1 -0
  25. package/dist/cjs/index.js +13 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/mocks.js +61 -0
  28. package/dist/cjs/mocks.js.map +1 -0
  29. package/dist/cjs/node/index.js +156 -0
  30. package/dist/cjs/node/index.js.map +1 -0
  31. package/dist/cjs/package.json +1 -0
  32. package/dist/esm/cf-worker/index.js +145 -0
  33. package/dist/esm/cf-worker/index.js.map +1 -0
  34. package/dist/esm/cf-worker/usage.js +53 -0
  35. package/dist/esm/cf-worker/usage.js.map +1 -0
  36. package/dist/esm/core/api.js +38 -0
  37. package/dist/esm/core/api.js.map +1 -0
  38. package/dist/esm/core/authorize/client.js +99 -0
  39. package/dist/esm/core/authorize/client.js.map +1 -0
  40. package/dist/esm/core/authorize/index.js +107 -0
  41. package/dist/esm/core/authorize/index.js.map +1 -0
  42. package/dist/esm/core/authorize/service.js +57 -0
  43. package/dist/esm/core/authorize/service.js.map +1 -0
  44. package/dist/esm/core/authorize/types.js +2 -0
  45. package/dist/esm/core/authorize/types.js.map +1 -0
  46. package/dist/esm/core/rateLimit/index.js +57 -0
  47. package/dist/esm/core/rateLimit/index.js.map +1 -0
  48. package/dist/esm/core/rateLimit/types.js +2 -0
  49. package/dist/esm/core/rateLimit/types.js.map +1 -0
  50. package/dist/esm/core/services.js +81 -0
  51. package/dist/esm/core/services.js.map +1 -0
  52. package/dist/esm/core/types.js +2 -0
  53. package/dist/esm/core/types.js.map +1 -0
  54. package/dist/esm/core/usage.js +82 -0
  55. package/dist/esm/core/usage.js.map +1 -0
  56. package/dist/esm/index.js +5 -0
  57. package/dist/esm/index.js.map +1 -0
  58. package/dist/esm/mocks.js +58 -0
  59. package/dist/esm/mocks.js.map +1 -0
  60. package/dist/esm/node/index.js +149 -0
  61. package/dist/esm/node/index.js.map +1 -0
  62. package/dist/esm/package.json +1 -0
  63. package/dist/{declarations/src → types}/cf-worker/index.d.ts +8 -10
  64. package/dist/types/cf-worker/index.d.ts.map +1 -0
  65. package/dist/types/cf-worker/usage.d.ts +24 -0
  66. package/dist/types/cf-worker/usage.d.ts.map +1 -0
  67. package/dist/types/core/api.d.ts +121 -0
  68. package/dist/types/core/api.d.ts.map +1 -0
  69. package/dist/types/core/authorize/client.d.ts +17 -0
  70. package/dist/types/core/authorize/client.d.ts.map +1 -0
  71. package/dist/{declarations/src → types}/core/authorize/index.d.ts +6 -5
  72. package/dist/types/core/authorize/index.d.ts.map +1 -0
  73. package/dist/types/core/authorize/service.d.ts +4 -0
  74. package/dist/types/core/authorize/service.d.ts.map +1 -0
  75. package/dist/types/core/authorize/types.d.ts +10 -0
  76. package/dist/types/core/authorize/types.d.ts.map +1 -0
  77. package/dist/{declarations/src → types}/core/rateLimit/index.d.ts +4 -4
  78. package/dist/types/core/rateLimit/index.d.ts.map +1 -0
  79. package/dist/types/core/rateLimit/types.d.ts.map +1 -0
  80. package/dist/{declarations/src → types}/core/services.d.ts +55 -23
  81. package/dist/types/core/services.d.ts.map +1 -0
  82. package/dist/types/core/types.d.ts.map +1 -0
  83. package/dist/{declarations/src/cf-worker → types/core}/usage.d.ts +84 -30
  84. package/dist/types/core/usage.d.ts.map +1 -0
  85. package/dist/types/index.d.ts +5 -0
  86. package/dist/types/index.d.ts.map +1 -0
  87. package/dist/types/mocks.d.ts +7 -0
  88. package/dist/types/mocks.d.ts.map +1 -0
  89. package/dist/types/node/index.d.ts +23 -0
  90. package/dist/types/node/index.d.ts.map +1 -0
  91. package/package.json +42 -45
  92. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts +0 -2
  93. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts.map +0 -1
  94. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.dev.js +0 -272
  95. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.js +0 -7
  96. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.prod.js +0 -272
  97. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.esm.js +0 -258
  98. package/cf-worker/package.json +0 -4
  99. package/dist/declarations/src/cf-worker/index.d.ts.map +0 -1
  100. package/dist/declarations/src/cf-worker/usage.d.ts.map +0 -1
  101. package/dist/declarations/src/core/api.d.ts +0 -84
  102. package/dist/declarations/src/core/api.d.ts.map +0 -1
  103. package/dist/declarations/src/core/authorize/client.d.ts +0 -9
  104. package/dist/declarations/src/core/authorize/client.d.ts.map +0 -1
  105. package/dist/declarations/src/core/authorize/index.d.ts.map +0 -1
  106. package/dist/declarations/src/core/authorize/service.d.ts +0 -7
  107. package/dist/declarations/src/core/authorize/service.d.ts.map +0 -1
  108. package/dist/declarations/src/core/authorize/types.d.ts +0 -12
  109. package/dist/declarations/src/core/authorize/types.d.ts.map +0 -1
  110. package/dist/declarations/src/core/rateLimit/index.d.ts.map +0 -1
  111. package/dist/declarations/src/core/rateLimit/types.d.ts.map +0 -1
  112. package/dist/declarations/src/core/services.d.ts.map +0 -1
  113. package/dist/declarations/src/core/types.d.ts.map +0 -1
  114. package/dist/declarations/src/core/usageLimit/index.d.ts +0 -5
  115. package/dist/declarations/src/core/usageLimit/index.d.ts.map +0 -1
  116. package/dist/declarations/src/core/usageLimit/types.d.ts +0 -9
  117. package/dist/declarations/src/core/usageLimit/types.d.ts.map +0 -1
  118. package/dist/declarations/src/index.d.ts +0 -2
  119. package/dist/declarations/src/index.d.ts.map +0 -1
  120. package/dist/declarations/src/node/index.d.ts +0 -43
  121. package/dist/declarations/src/node/index.d.ts.map +0 -1
  122. package/dist/index-3b9a0743.esm.js +0 -572
  123. package/dist/index-62b88cac.cjs.dev.js +0 -576
  124. package/dist/index-aa324361.cjs.prod.js +0 -576
  125. package/dist/services-2aecbda8.esm.js +0 -65
  126. package/dist/services-508322f3.cjs.dev.js +0 -70
  127. package/dist/services-5c4d6977.cjs.prod.js +0 -70
  128. package/dist/thirdweb-dev-service-utils.cjs.d.ts +0 -2
  129. package/dist/thirdweb-dev-service-utils.cjs.d.ts.map +0 -1
  130. package/dist/thirdweb-dev-service-utils.cjs.dev.js +0 -12
  131. package/dist/thirdweb-dev-service-utils.cjs.js +0 -7
  132. package/dist/thirdweb-dev-service-utils.cjs.prod.js +0 -12
  133. package/dist/thirdweb-dev-service-utils.esm.js +0 -1
  134. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts +0 -2
  135. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts.map +0 -1
  136. package/node/dist/thirdweb-dev-service-utils-node.cjs.dev.js +0 -193
  137. package/node/dist/thirdweb-dev-service-utils-node.cjs.js +0 -7
  138. package/node/dist/thirdweb-dev-service-utils-node.cjs.prod.js +0 -193
  139. package/node/dist/thirdweb-dev-service-utils-node.esm.js +0 -180
  140. package/node/package.json +0 -4
  141. /package/dist/{declarations/src → types}/core/rateLimit/types.d.ts +0 -0
  142. /package/dist/{declarations/src → types}/core/types.d.ts +0 -0
@@ -0,0 +1,58 @@
1
+ export const validProjectResponse = {
2
+ id: "1",
3
+ publishableKey: "your-api-key",
4
+ walletAddresses: ["creator-address"],
5
+ domains: ["example.com", "*.example.com"],
6
+ bundleIds: [],
7
+ services: [
8
+ {
9
+ name: "storage",
10
+ actions: ["read", "write"],
11
+ },
12
+ {
13
+ name: "rpc",
14
+ actions: [],
15
+ },
16
+ {
17
+ name: "bundler",
18
+ actions: [],
19
+ allowedChainIds: [1, 2, 3],
20
+ },
21
+ ],
22
+ teamId: "1",
23
+ createdAt: new Date("2024-06-01"),
24
+ updatedAt: new Date("2024-06-01"),
25
+ name: "test-project",
26
+ slug: "test-project",
27
+ image: "https://example.com/image.png",
28
+ };
29
+ export const validTeamResponse = {
30
+ id: "1",
31
+ name: "test-team",
32
+ slug: "test-team",
33
+ image: "https://example.com/image.png",
34
+ createdAt: new Date("2024-06-01"),
35
+ updatedAt: new Date("2024-06-01"),
36
+ billingPlan: "free",
37
+ billingEmail: "test@example.com",
38
+ billingStatus: "noPayment",
39
+ growthTrialEligible: false,
40
+ enabledScopes: ["storage", "rpc", "bundler"],
41
+ };
42
+ export const validTeamAndProjectResponse = {
43
+ team: validTeamResponse,
44
+ project: validProjectResponse,
45
+ authMethod: "publishableKey",
46
+ };
47
+ export const validServiceConfig = {
48
+ apiUrl: "https://api.example.com",
49
+ serviceScope: "storage",
50
+ serviceApiKey: "service-api-key",
51
+ serviceAction: "read",
52
+ };
53
+ export const validBundlerServiceConfig = {
54
+ apiUrl: "https://api.example.com",
55
+ serviceScope: "bundler",
56
+ serviceApiKey: "service-api-key",
57
+ };
58
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,EAAE,EAAE,GAAG;IACP,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IACzC,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B;QACD;YACE,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE;SACZ;QACD;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;KACF;IACD,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,+BAA+B;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,+BAA+B;IACtC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACjC,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,kBAAkB;IAChC,aAAa,EAAE,WAAW;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,oBAAoB;IAC7B,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;CACjC,CAAC"}
@@ -0,0 +1,149 @@
1
+ import { createHash } from "node:crypto";
2
+ import { authorize } from "../core/authorize/index.js";
3
+ export * from "../core/usage.js";
4
+ export * from "../core/rateLimit/index.js";
5
+ export * from "../core/services.js";
6
+ export async function authorizeNode(authInput, serviceConfig, cacheOptions) {
7
+ let authData;
8
+ try {
9
+ authData = extractAuthorizationData(authInput);
10
+ }
11
+ catch (e) {
12
+ if (e instanceof Error && e.message === "KEY_CONFLICT") {
13
+ return {
14
+ authorized: false,
15
+ status: 400,
16
+ errorMessage: "Please pass either a client id or a secret key.",
17
+ errorCode: "KEY_CONFLICT",
18
+ };
19
+ }
20
+ return {
21
+ authorized: false,
22
+ status: 500,
23
+ errorMessage: "Internal Server Error",
24
+ errorCode: "INTERNAL_SERVER_ERROR",
25
+ };
26
+ }
27
+ return await authorize(authData, serviceConfig, cacheOptions);
28
+ }
29
+ function isNodeHeaders(headers) {
30
+ return typeof headers === "object" && !("get" in headers);
31
+ }
32
+ function getHeader(headers, headerName) {
33
+ return isNodeHeaders(headers)
34
+ ? Array.isArray(headers[headerName])
35
+ ? (headers[headerName]?.[0] ?? null)
36
+ : (headers[headerName] ?? null)
37
+ : (headers.get(headerName) ?? null);
38
+ }
39
+ export function extractAuthorizationData(authInput) {
40
+ let requestUrl;
41
+ try {
42
+ requestUrl = new URL(authInput.req.url || "", `http://${getHeader(authInput.req.headers, "host")}`);
43
+ }
44
+ catch (error) {
45
+ console.log("** Node URL Error **", error);
46
+ throw error;
47
+ }
48
+ const headers = authInput.req.headers;
49
+ const secretKey = getHeader(headers, "x-secret-key");
50
+ // prefer clientId that is explicitly passed in
51
+ let clientId = authInput.clientId ?? null;
52
+ if (!clientId) {
53
+ // next preference is clientId from header
54
+ clientId = getHeader(headers, "x-client-id");
55
+ }
56
+ // next preference is search param
57
+ if (!clientId) {
58
+ clientId = requestUrl.searchParams.get("clientId");
59
+ }
60
+ // bundle id from header is first preference
61
+ let bundleId = getHeader(headers, "x-bundle-id");
62
+ // next preference is search param
63
+ if (!bundleId) {
64
+ bundleId = requestUrl.searchParams.get("bundleId");
65
+ }
66
+ let ecosystemId = getHeader(headers, "x-ecosystem-id");
67
+ if (!ecosystemId) {
68
+ ecosystemId = requestUrl.searchParams.get("ecosystemId");
69
+ }
70
+ let ecosystemPartnerId = getHeader(headers, "x-ecosystem-partner-id");
71
+ if (!ecosystemPartnerId) {
72
+ ecosystemPartnerId = requestUrl.searchParams.get("ecosystemPartnerId");
73
+ }
74
+ let origin = getHeader(headers, "origin");
75
+ // if origin header is not available we'll fall back to referrer;
76
+ if (!origin) {
77
+ origin = getHeader(headers, "referer");
78
+ }
79
+ // if we have an origin at this point, normalize it
80
+ if (origin) {
81
+ try {
82
+ origin = new URL(origin).host;
83
+ }
84
+ catch (e) {
85
+ console.warn("failed to parse origin", origin, e);
86
+ }
87
+ }
88
+ // handle if we a secret key is passed in the headers
89
+ let secretKeyHash = null;
90
+ if (secretKey) {
91
+ // hash the secret key
92
+ secretKeyHash = hashSecretKey(secretKey);
93
+ }
94
+ let jwt = null;
95
+ let useWalletAuth = null;
96
+ // check for authorization header on the request
97
+ const authorizationHeader = getHeader(headers, "authorization");
98
+ if (authorizationHeader) {
99
+ const [type, token] = authorizationHeader.split(" ");
100
+ if (type?.toLowerCase() === "bearer" && !!token) {
101
+ jwt = token;
102
+ const walletAuthHeader = getHeader(headers, "x-authorize-wallet");
103
+ // IK a stringified boolean is not ideal, but it's required to pass it in the headers.
104
+ if (walletAuthHeader?.toLowerCase() === "true") {
105
+ useWalletAuth = walletAuthHeader;
106
+ }
107
+ }
108
+ }
109
+ return {
110
+ jwt,
111
+ hashedJWT: jwt ? hashSecretKey(jwt) : null,
112
+ secretKeyHash,
113
+ secretKey,
114
+ clientId,
115
+ ecosystemId,
116
+ ecosystemPartnerId,
117
+ origin,
118
+ bundleId,
119
+ targetAddress: authInput.targetAddress,
120
+ useWalletAuth,
121
+ };
122
+ }
123
+ export function hashSecretKey(secretKey) {
124
+ return createHash("sha256").update(secretKey).digest("hex");
125
+ }
126
+ export function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }) {
127
+ try {
128
+ const authorizationData = extractAuthorizationData({ req, clientId });
129
+ const headers = req.headers;
130
+ console.log(JSON.stringify({
131
+ method: req.method,
132
+ pathname: req.url,
133
+ hasSecretKey: !!authorizationData.secretKey,
134
+ hasClientId: !!authorizationData.clientId,
135
+ hasJwt: !!authorizationData.jwt,
136
+ clientId: authorizationData.clientId,
137
+ isAuthed,
138
+ status: res.statusCode,
139
+ statusMessage,
140
+ sdkName: getHeader(headers, "x-sdk-name"),
141
+ sdkVersion: getHeader(headers, "x-sdk-version"),
142
+ platform: getHeader(headers, "x-sdk-platform"),
143
+ os: getHeader(headers, "x-sdk-os"),
144
+ latencyMs,
145
+ }));
146
+ }
147
+ catch { }
148
+ }
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"type": "module","sideEffects":false}
@@ -1,13 +1,12 @@
1
1
  import type { ExecutionContext, KVNamespace, Response } from "@cloudflare/workers-types";
2
- import type { CoreServiceConfig } from "../core/api";
3
2
  import type { Request } from "@cloudflare/workers-types";
4
- import type { AuthorizationInput } from "../core/authorize";
5
- import type { AuthorizationResult } from "../core/authorize/types";
6
- import type { CoreAuthInput } from "../core/types";
7
- export * from "./usage";
8
- export * from "../core/services";
9
- export * from "../core/rateLimit";
10
- export * from "../core/usageLimit";
3
+ import type { CoreServiceConfig } from "../core/api.js";
4
+ import type { AuthorizationInput } from "../core/authorize/index.js";
5
+ import type { AuthorizationResult } from "../core/authorize/types.js";
6
+ import type { CoreAuthInput } from "../core/types.js";
7
+ export * from "./usage.js";
8
+ export * from "../core/services.js";
9
+ export * from "../core/rateLimit/index.js";
11
10
  export type WorkerServiceConfig = CoreServiceConfig & {
12
11
  kvStore: KVNamespace;
13
12
  ctx: ExecutionContext;
@@ -19,8 +18,7 @@ type AuthInput = CoreAuthInput & {
19
18
  export declare function authorizeWorker(authInput: AuthInput, serviceConfig: WorkerServiceConfig): Promise<AuthorizationResult>;
20
19
  export declare function extractAuthorizationData(authInput: AuthInput): Promise<AuthorizationInput>;
21
20
  export declare function hashSecretKey(secretKey: string): Promise<string>;
22
- export declare function deriveClientIdFromSecretKeyHash(secretKeyHash: string): string;
23
- export declare function logHttpRequest({ source, clientId, req, res, isAuthed, statusMessage, latencyMs, }: AuthInput & {
21
+ export declare function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }: AuthInput & {
24
22
  source: string;
25
23
  res: Response;
26
24
  isAuthed?: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,gBAAgB,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,KAAK,SAAS,GAAG,aAAa,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA+E7B;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAQD,wBAAsB,cAAc,CAAC,EACnC,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,iBA0BA"}
@@ -0,0 +1,24 @@
1
+ import { type UsageEvent } from "../core/usage.js";
2
+ export type { UsageEvent } from "../core/usage.js";
3
+ /**
4
+ * Publish usage events. Provide the relevant fields for your application.
5
+ *
6
+ * Usage in Cloudflare Workers:
7
+ * ctx.waitUntil(
8
+ * publishUsageEvents(
9
+ * [event1, event2],
10
+ * { queueUrl, accessKeyId, secretAccessKey },
11
+ * )
12
+ * )
13
+ *
14
+ * @param usageEvents
15
+ * @param config
16
+ */
17
+ declare function publishUsageEvents(usageEvents: UsageEvent[], config: {
18
+ queueUrl: string;
19
+ accessKeyId: string;
20
+ secretAccessKey: string;
21
+ region?: string;
22
+ }): Promise<void>;
23
+ export { publishUsageEvents };
24
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/cf-worker/usage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWnD;;;;;;;;;;;;;GAaG;AACH,iBAAe,kBAAkB,CAC/B,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,121 @@
1
+ import type { AuthorizationInput } from "./authorize/index.js";
2
+ import type { ServiceName } from "./services.js";
3
+ export type UserOpData = {
4
+ sender: string;
5
+ targets: string[];
6
+ gasLimit: string;
7
+ gasPrice: string;
8
+ };
9
+ export type PolicyResult = {
10
+ policyId: string | null;
11
+ isAllowed: boolean;
12
+ reason: string;
13
+ };
14
+ export type CoreServiceConfig = {
15
+ apiUrl: string;
16
+ serviceScope: ServiceName | null;
17
+ serviceApiKey: string;
18
+ serviceAction?: string;
19
+ useWalletAuth?: boolean;
20
+ };
21
+ export type TeamAndProjectResponse = {
22
+ authMethod: "secretKey" | "publishableKey" | "jwt" | "teamId";
23
+ team: TeamResponse;
24
+ project?: ProjectResponse | null;
25
+ };
26
+ export type ApiResponse = {
27
+ data: TeamAndProjectResponse | null;
28
+ error: {
29
+ code: string;
30
+ statusCode: number;
31
+ message: string;
32
+ };
33
+ };
34
+ export type TeamResponse = {
35
+ id: string;
36
+ name: string;
37
+ slug: string;
38
+ image: string | null;
39
+ billingPlan: "free" | "starter" | "growth" | "pro";
40
+ createdAt: Date;
41
+ updatedAt: Date | null;
42
+ billingEmail: string | null;
43
+ billingStatus: "noPayment" | "validPayment" | "invalidPayment" | null;
44
+ growthTrialEligible: boolean | null;
45
+ enabledScopes: ServiceName[];
46
+ };
47
+ export type ProjectResponse = {
48
+ id: string;
49
+ teamId: string;
50
+ createdAt: Date;
51
+ updatedAt: Date | null;
52
+ publishableKey: string;
53
+ name: string;
54
+ slug: string;
55
+ image: string | null;
56
+ domains: string[];
57
+ bundleIds: string[];
58
+ services: ({
59
+ name: "pay";
60
+ actions: never[];
61
+ payoutAddress: string | null;
62
+ } | {
63
+ name: "storage";
64
+ actions: ("read" | "write")[];
65
+ } | {
66
+ name: "rpc";
67
+ actions: never[];
68
+ } | {
69
+ name: "insight";
70
+ actions: never[];
71
+ } | {
72
+ name: "nebula";
73
+ actions: never[];
74
+ } | {
75
+ name: "bundler";
76
+ actions: never[];
77
+ allowedChainIds?: number[] | null;
78
+ allowedContractAddresses?: string[] | null;
79
+ allowedWallets?: string[] | null;
80
+ blockedWallets?: string[] | null;
81
+ bypassWallets?: string[] | null;
82
+ limits?: {
83
+ global?: {
84
+ maxSpend: string;
85
+ maxSpendUnit: "usd" | "native";
86
+ } | null;
87
+ } | null;
88
+ serverVerifier?: {
89
+ url: string;
90
+ headers?: {
91
+ key: string;
92
+ value: string;
93
+ }[];
94
+ } | null;
95
+ } | {
96
+ name: "embeddedWallets";
97
+ actions: never[];
98
+ redirectUrls?: string[] | null;
99
+ applicationName?: string | null;
100
+ applicationImageUrl?: string | null;
101
+ recoveryShareManagement?: string | null;
102
+ customAuthentication?: CustomAuthenticationServiceSchema | null;
103
+ customAuthEndpoint?: CustomAuthEndpointServiceSchema | null;
104
+ })[];
105
+ walletAddresses: string[];
106
+ };
107
+ type CustomAuthenticationServiceSchema = {
108
+ jwksUri: string;
109
+ aud: string;
110
+ };
111
+ type CustomAuthEndpointServiceSchema = {
112
+ authEndpoint: string;
113
+ customHeaders: {
114
+ key: string;
115
+ value: string;
116
+ }[];
117
+ };
118
+ export declare function fetchTeamAndProject(authData: AuthorizationInput, config: CoreServiceConfig): Promise<ApiResponse>;
119
+ export declare function updateRateLimitedAt(projectId: string, config: CoreServiceConfig): Promise<void>;
120
+ export {};
121
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/core/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { TeamAndProjectResponse } from "../api.js";
2
+ import type { AuthorizationResult } from "./types.js";
3
+ export type ClientAuthorizationPayload = {
4
+ secretKeyHash: string | null;
5
+ bundleId: string | null;
6
+ origin: string | null;
7
+ };
8
+ export declare function authorizeClient(authOptions: ClientAuthorizationPayload, teamAndProjectResponse: TeamAndProjectResponse): AuthorizationResult;
9
+ export declare function authorizeDomain({ domains, origin, }: {
10
+ domains: string[];
11
+ origin: string;
12
+ }): boolean;
13
+ export declare function authorizeBundleId({ bundleIds, bundleId, }: {
14
+ bundleIds: string[];
15
+ bundleId: string;
16
+ }): boolean;
17
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,0BAA0B,EACvC,sBAAsB,EAAE,sBAAsB,GAC7C,mBAAmB,CAuErB;AAGD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,GACP,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAgCjD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,QAAQ,GACT,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CASrD"}
@@ -1,8 +1,10 @@
1
- import { AccountMetadata, ApiKeyMetadata, CoreServiceConfig } from "../api";
2
- import { AuthorizationResult } from "./types";
1
+ import { type CoreServiceConfig, type TeamAndProjectResponse } from "../api.js";
2
+ import type { AuthorizationResult } from "./types.js";
3
3
  export type AuthorizationInput = {
4
4
  secretKey: string | null;
5
5
  clientId: string | null;
6
+ ecosystemId: string | null;
7
+ ecosystemPartnerId: string | null;
6
8
  origin: string | null;
7
9
  bundleId: string | null;
8
10
  secretKeyHash: string | null;
@@ -11,11 +13,10 @@ export type AuthorizationInput = {
11
13
  targetAddress?: string | string[];
12
14
  useWalletAuth?: string | null;
13
15
  };
14
- type CacheOptions = {
16
+ export type CacheOptions = {
15
17
  get: (clientId: string) => Promise<string | null>;
16
- put: (clientId: string, data: ApiKeyMetadata | AccountMetadata) => Promise<void> | void;
18
+ put: (clientId: string, data: TeamAndProjectResponse) => Promise<void> | void;
17
19
  cacheTtlSeconds: number;
18
20
  };
19
21
  export declare function authorize(authData: AuthorizationInput, serviceConfig: CoreServiceConfig, cacheOptions?: CacheOptions): Promise<AuthorizationResult>;
20
- export {};
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE5B,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAElC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AASF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA+G9B"}
@@ -0,0 +1,4 @@
1
+ import type { CoreServiceConfig, TeamAndProjectResponse } from "../api.js";
2
+ import type { AuthorizationResult } from "./types.js";
3
+ export declare function authorizeService(teamAndProjectResponse: TeamAndProjectResponse, serviceConfig: CoreServiceConfig): AuthorizationResult;
4
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,gBAAgB,CAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,iBAAiB,GAC/B,mBAAmB,CAiErB"}
@@ -0,0 +1,10 @@
1
+ import type { TeamAndProjectResponse } from "../api.js";
2
+ export type AuthorizationResult = ({
3
+ authorized: true;
4
+ } & TeamAndProjectResponse) | {
5
+ authorized: false;
6
+ status: number;
7
+ errorMessage: string;
8
+ errorCode: string;
9
+ };
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAC3B,CAAC;IACC,UAAU,EAAE,IAAI,CAAC;CAClB,GAAG,sBAAsB,CAAC,GAC3B;IACE,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1,12 +1,12 @@
1
- import { CoreServiceConfig } from "../api";
2
- import { AuthorizationResult } from "../authorize/types";
3
- import { RateLimitResult } from "./types";
1
+ import { type CoreServiceConfig, type ProjectResponse } from "../api.js";
2
+ import type { RateLimitResult } from "./types.js";
4
3
  type IRedis = {
5
4
  incr: (key: string) => Promise<number>;
6
5
  expire: (key: string, ttlSeconds: number) => Promise<0 | 1>;
7
6
  };
8
7
  export declare function rateLimit(args: {
9
- authzResult: AuthorizationResult;
8
+ project?: ProjectResponse;
9
+ limitPerSecond: number;
10
10
  serviceConfig: CoreServiceConfig;
11
11
  redis: IRedis;
12
12
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/rateLimit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsE3B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/rateLimit/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB;IACE,WAAW,EAAE,KAAK,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}