@thirdweb-dev/service-utils 0.5.0-nightly-6cf298a29-20240308012322 → 0.5.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 (141) hide show
  1. package/dist/cjs/cf-worker/index.js +164 -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 +98 -0
  8. package/dist/cjs/core/authorize/client.js.map +1 -0
  9. package/dist/cjs/core/authorize/index.js +109 -0
  10. package/dist/cjs/core/authorize/index.js.map +1 -0
  11. package/dist/cjs/core/authorize/service.js +50 -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 +60 -0
  28. package/dist/cjs/mocks.js.map +1 -0
  29. package/dist/cjs/node/index.js +182 -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 +156 -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 +93 -0
  39. package/dist/esm/core/authorize/client.js.map +1 -0
  40. package/dist/esm/core/authorize/index.js +106 -0
  41. package/dist/esm/core/authorize/index.js.map +1 -0
  42. package/dist/esm/core/authorize/service.js +47 -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 +57 -0
  59. package/dist/esm/mocks.js.map +1 -0
  60. package/dist/esm/node/index.js +174 -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 -9
  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/{declarations/src → types}/node/index.d.ts +10 -12
  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.map +0 -1
  121. package/dist/index-3b9a0743.esm.js +0 -572
  122. package/dist/index-62b88cac.cjs.dev.js +0 -576
  123. package/dist/index-aa324361.cjs.prod.js +0 -576
  124. package/dist/services-2aecbda8.esm.js +0 -65
  125. package/dist/services-508322f3.cjs.dev.js +0 -70
  126. package/dist/services-5c4d6977.cjs.prod.js +0 -70
  127. package/dist/thirdweb-dev-service-utils.cjs.d.ts +0 -2
  128. package/dist/thirdweb-dev-service-utils.cjs.d.ts.map +0 -1
  129. package/dist/thirdweb-dev-service-utils.cjs.dev.js +0 -12
  130. package/dist/thirdweb-dev-service-utils.cjs.js +0 -7
  131. package/dist/thirdweb-dev-service-utils.cjs.prod.js +0 -12
  132. package/dist/thirdweb-dev-service-utils.esm.js +0 -1
  133. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts +0 -2
  134. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts.map +0 -1
  135. package/node/dist/thirdweb-dev-service-utils-node.cjs.dev.js +0 -193
  136. package/node/dist/thirdweb-dev-service-utils-node.cjs.js +0 -7
  137. package/node/dist/thirdweb-dev-service-utils-node.cjs.prod.js +0 -193
  138. package/node/dist/thirdweb-dev-service-utils-node.esm.js +0 -180
  139. package/node/package.json +0 -4
  140. /package/dist/{declarations/src → types}/core/rateLimit/types.d.ts +0 -0
  141. /package/dist/{declarations/src → types}/core/types.d.ts +0 -0
@@ -1,258 +0,0 @@
1
- import { a as authorize } from '../../dist/index-3b9a0743.esm.js';
2
- export { r as rateLimit, u as usageLimit } from '../../dist/index-3b9a0743.esm.js';
3
- import { AwsClient } from 'aws4fetch';
4
- import { z } from 'zod';
5
- export { b as SERVICES, S as SERVICE_DEFINITIONS, a as SERVICE_NAMES, g as getServiceByName } from '../../dist/services-2aecbda8.esm.js';
6
-
7
- // Initialize a singleton for aws usage.
8
- let _aws;
9
- function getAws(options) {
10
- if (!_aws) {
11
- _aws = new AwsClient(options);
12
- }
13
- return _aws;
14
- }
15
-
16
- /**
17
- * Types
18
- */
19
- const usageEventSchema = z.object({
20
- source: z.enum(["embeddedWallets", "rpc", "storage", "bundler", "paymaster", "relayer", "connectWallet", "checkout", "engine"]),
21
- action: z.string(),
22
- /**
23
- * The following fields are optional.
24
- */
25
-
26
- accountId: z.string().optional(),
27
- isClientEvent: z.boolean().optional(),
28
- apiKeyId: z.string().optional(),
29
- creatorWalletAddress: z.string().optional(),
30
- clientId: z.string().optional(),
31
- walletAddress: z.string().optional(),
32
- walletType: z.string().optional(),
33
- chainId: z.number().int().positive().optional(),
34
- provider: z.string().optional(),
35
- mimeType: z.string().optional(),
36
- fileSize: z.number().int().nonnegative().optional(),
37
- fileCid: z.string().optional(),
38
- evmMethod: z.string().optional(),
39
- userOpHash: z.string().optional(),
40
- gasLimit: z.number().nonnegative().optional(),
41
- gasPricePerUnit: z.string().optional(),
42
- transactionFeeUsd: z.number().optional(),
43
- transactionHash: z.string().optional(),
44
- sdkName: z.string().optional(),
45
- sdkVersion: z.string().optional(),
46
- sdkPlatform: z.string().optional(),
47
- productName: z.string().optional(),
48
- transactionValue: z.string().optional(),
49
- pathname: z.string().optional(),
50
- contractAddress: z.string().optional(),
51
- errorCode: z.string().optional(),
52
- httpStatusCode: z.number().int().nonnegative().optional(),
53
- functionName: z.string().optional(),
54
- extension: z.string().optional(),
55
- retryCount: z.number().int().nonnegative().optional(),
56
- policyId: z.string().optional(),
57
- msSinceQueue: z.number().nonnegative().optional(),
58
- msSinceSend: z.number().nonnegative().optional(),
59
- msTotalDuration: z.number().nonnegative().optional()
60
- });
61
- /**
62
- * Publish usage events. Provide the relevant fields for your application.
63
- *
64
- * Usage in Cloudflare Workers:
65
- * ctx.waitUntil(
66
- * publishUsageEvents(
67
- * [event1, event2],
68
- * { queueUrl, accessKeyId, secretAccessKey },
69
- * )
70
- * )
71
- *
72
- * @param usageEvents
73
- * @param config
74
- */
75
- async function publishUsageEvents(usageEvents, config) {
76
- const {
77
- queueUrl,
78
- accessKeyId,
79
- secretAccessKey,
80
- region = "us-west-2"
81
- } = config;
82
- const entries = usageEvents.map(event => {
83
- // Enforce schema of usage event.
84
- const parsed = usageEventSchema.parse(event);
85
- return {
86
- Id: crypto.randomUUID(),
87
- MessageBody: JSON.stringify(parsed)
88
- };
89
- });
90
- const aws = getAws({
91
- accessKeyId,
92
- secretAccessKey,
93
- region
94
- });
95
- await aws.fetch(`https://sqs.${region}.amazonaws.com`, {
96
- headers: {
97
- "X-Amz-Target": "AmazonSQS.SendMessageBatch",
98
- "X-Amz-Date": new Date().toISOString(),
99
- "Content-Type": "application/x-amz-json-1.0"
100
- },
101
- body: JSON.stringify({
102
- QueueUrl: queueUrl,
103
- Entries: entries
104
- })
105
- });
106
- }
107
-
108
- const DEFAULT_CACHE_TTL_SECONDS = 60;
109
- async function authorizeWorker(authInput, serviceConfig) {
110
- let authData;
111
- try {
112
- authData = await extractAuthorizationData(authInput);
113
- } catch (e) {
114
- if (e instanceof Error && e.message === "KEY_CONFLICT") {
115
- return {
116
- authorized: false,
117
- status: 400,
118
- errorMessage: "Please pass either a client id or a secret key.",
119
- errorCode: "KEY_CONFLICT"
120
- };
121
- }
122
- return {
123
- authorized: false,
124
- status: 500,
125
- errorMessage: "Internal Server Error",
126
- errorCode: "INTERNAL_SERVER_ERROR"
127
- };
128
- }
129
- return await authorize(authData, serviceConfig, {
130
- get: async clientId => serviceConfig.kvStore.get(clientId),
131
- put: (clientId, apiKeyMeta) => serviceConfig.ctx.waitUntil(serviceConfig.kvStore.put(clientId, JSON.stringify({
132
- updatedAt: Date.now(),
133
- apiKeyMeta
134
- }), {
135
- expirationTtl: serviceConfig.cacheTtlSeconds && serviceConfig.cacheTtlSeconds >= DEFAULT_CACHE_TTL_SECONDS ? serviceConfig.cacheTtlSeconds : DEFAULT_CACHE_TTL_SECONDS
136
- })),
137
- cacheTtlSeconds: serviceConfig.cacheTtlSeconds ?? DEFAULT_CACHE_TTL_SECONDS
138
- });
139
- }
140
- async function extractAuthorizationData(authInput) {
141
- const requestUrl = new URL(authInput.req.url);
142
- const headers = authInput.req.headers;
143
- const secretKey = headers.get("x-secret-key");
144
-
145
- // prefer clientId that is explicitly passed in
146
- let clientId = authInput.clientId ?? null;
147
- if (!clientId) {
148
- // next preference is clientId from header
149
- clientId = headers.get("x-client-id");
150
- }
151
-
152
- // next preference is search param
153
- if (!clientId) {
154
- clientId = requestUrl.searchParams.get("clientId");
155
- }
156
- // bundle id from header is first preference
157
- let bundleId = headers.get("x-bundle-id");
158
-
159
- // next preference is search param
160
- if (!bundleId) {
161
- bundleId = requestUrl.searchParams.get("bundleId");
162
- }
163
- let origin = headers.get("origin");
164
- // if origin header is not available we'll fall back to referrer;
165
- if (!origin) {
166
- origin = headers.get("referer");
167
- }
168
- // if we have an origin at this point, normalize it
169
- if (origin) {
170
- try {
171
- origin = new URL(origin).host;
172
- } catch (e) {
173
- console.warn("failed to parse origin", origin, e);
174
- }
175
- }
176
-
177
- // handle if we a secret key is passed in the headers
178
- let secretKeyHash = null;
179
- if (secretKey) {
180
- // hash the secret key
181
- secretKeyHash = await hashSecretKey(secretKey);
182
- // derive the client id from the secret key hash
183
- const derivedClientId = deriveClientIdFromSecretKeyHash(secretKeyHash);
184
- // if we already have a client id passed in we need to make sure they match
185
- if (clientId && clientId !== derivedClientId) {
186
- throw new Error("KEY_CONFLICT");
187
- }
188
- // otherwise set the client id to the derived client id (client id based off of secret key)
189
- clientId = derivedClientId;
190
- }
191
- let jwt = null;
192
- if (headers.has("authorization")) {
193
- const authHeader = headers.get("authorization");
194
- if (authHeader) {
195
- const [type, token] = authHeader.split(" ");
196
- if (type.toLowerCase() === "bearer" && !!token) {
197
- jwt = token;
198
- }
199
- }
200
- }
201
- return {
202
- jwt,
203
- hashedJWT: jwt ? await hashSecretKey(jwt) : null,
204
- secretKey,
205
- clientId,
206
- origin,
207
- bundleId,
208
- secretKeyHash,
209
- targetAddress: authInput.targetAddress
210
- };
211
- }
212
- async function hashSecretKey(secretKey) {
213
- return bufferToHex(await crypto.subtle.digest("SHA-256", new TextEncoder().encode(secretKey)));
214
- }
215
- function deriveClientIdFromSecretKeyHash(secretKeyHash) {
216
- return secretKeyHash.slice(0, 32);
217
- }
218
- function bufferToHex(buffer) {
219
- return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, "0")).join("");
220
- }
221
- async function logHttpRequest(_ref) {
222
- let {
223
- source,
224
- clientId,
225
- req,
226
- res,
227
- isAuthed,
228
- statusMessage,
229
- latencyMs
230
- } = _ref;
231
- try {
232
- const authorizationData = await extractAuthorizationData({
233
- req,
234
- clientId
235
- });
236
- const headers = req.headers;
237
- console.log(JSON.stringify({
238
- source,
239
- pathname: req.url,
240
- hasSecretKey: !!authorizationData.secretKey,
241
- hasClientId: !!authorizationData.clientId,
242
- hasJwt: !!authorizationData.jwt,
243
- clientId: authorizationData.clientId,
244
- isAuthed: !!isAuthed ?? null,
245
- status: res.status,
246
- sdkName: headers.get("x-sdk-name") ?? "unknown",
247
- sdkVersion: headers.get("x-sdk-version") ?? "unknown",
248
- platform: headers.get("x-sdk-platform") ?? "unknown",
249
- os: headers.get("x-sdk-os") ?? "unknown",
250
- latencyMs: latencyMs ?? null
251
- }));
252
- console.log(`statusMessage=${statusMessage ?? res.statusText}`);
253
- } catch (err) {
254
- console.error("Failed to log HTTP request:", err);
255
- }
256
- }
257
-
258
- export { authorizeWorker, deriveClientIdFromSecretKeyHash, extractAuthorizationData, hashSecretKey, logHttpRequest, publishUsageEvents };
@@ -1,4 +0,0 @@
1
- {
2
- "main": "dist/thirdweb-dev-service-utils-cf-worker.cjs.js",
3
- "module": "dist/thirdweb-dev-service-utils-cf-worker.esm.js"
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/cf-worker","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,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,CA2E7B;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE;AAQD,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IACb,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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"../../../../src/cf-worker","sources":["usage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;GAEG;AACH,QAAA,MAAM,gBAAgB;;;IAcpB;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCH,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,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"}
@@ -1,84 +0,0 @@
1
- import type { ServiceName } from "./services";
2
- export type UserOpData = {
3
- sender: string;
4
- targets: string[];
5
- gasLimit: string;
6
- gasPrice: string;
7
- };
8
- export type PolicyResult = {
9
- policyId: string | null;
10
- isAllowed: boolean;
11
- reason: string;
12
- };
13
- export type CoreServiceConfig = {
14
- enforceAuth?: boolean;
15
- apiUrl: string;
16
- serviceScope: ServiceName;
17
- serviceApiKey: string;
18
- serviceAction?: string;
19
- useWalletAuth?: boolean;
20
- checkPolicy?: boolean;
21
- policyMetadata?: {
22
- chainId: number;
23
- userOp: UserOpData;
24
- };
25
- };
26
- type Usage = {
27
- storage?: {
28
- sumFileSizeBytes: number;
29
- };
30
- embeddedWallets?: {
31
- countWalletAddresses: number;
32
- };
33
- };
34
- export type ApiKeyMetadata = {
35
- id: string;
36
- key: string;
37
- accountId: string;
38
- accountStatus: "noCustomer" | "noPayment" | "validPayment" | "invalidPayment";
39
- accountPlan: "free" | "growth" | "pro" | "enterprise";
40
- creatorWalletAddress: string;
41
- secretHash: string;
42
- walletAddresses: string[];
43
- domains: string[];
44
- bundleIds: string[];
45
- redirectUrls: string[];
46
- services: {
47
- name: string;
48
- targetAddresses: string[];
49
- actions: string[];
50
- }[];
51
- usage?: Usage;
52
- limits: Partial<Record<ServiceName, number>>;
53
- rateLimits: Partial<Record<ServiceName, number>>;
54
- policyResult?: PolicyResult;
55
- };
56
- export type AccountMetadata = {
57
- id: string;
58
- name: string;
59
- creatorWalletAddress: string;
60
- usage?: Usage;
61
- limits: Partial<Record<ServiceName, number>>;
62
- rateLimits: Partial<Record<ServiceName, number>>;
63
- };
64
- export type ApiResponse = {
65
- data: ApiKeyMetadata | null;
66
- error: {
67
- code: string;
68
- statusCode: number;
69
- message: string;
70
- };
71
- };
72
- export type ApiAccountResponse = {
73
- data: AccountMetadata | null;
74
- error: {
75
- code: string;
76
- statusCode: number;
77
- message: string;
78
- };
79
- };
80
- export declare function fetchKeyMetadataFromApi(clientId: string, config: CoreServiceConfig): Promise<ApiResponse>;
81
- export declare function fetchAccountFromApi(jwt: string, config: CoreServiceConfig, useWalletAuth: boolean): Promise<ApiAccountResponse>;
82
- export declare function updateRateLimitedAt(apiKeyId: string, config: CoreServiceConfig): Promise<void>;
83
- export {};
84
- //# sourceMappingURL=api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"../../../../src/core","sources":["api.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { ApiKeyMetadata } from "../api";
2
- import type { AuthorizationResult } from "./types";
3
- export type ClientAuthorizationPayload = {
4
- secretKeyHash: string | null;
5
- bundleId: string | null;
6
- origin: string | null;
7
- };
8
- export declare function authorizeClient(authOptions: ClientAuthorizationPayload, apiKeyMeta: ApiKeyMetadata): AuthorizationResult;
9
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,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,UAAU,EAAE,cAAc,GACzB,mBAAmB,CA2GrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EAGlB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,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,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CACH,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GAAG,eAAe,KACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAgBF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAsN9B"}
@@ -1,7 +0,0 @@
1
- import { ApiKeyMetadata, CoreServiceConfig } from "../api";
2
- import { AuthorizationResult } from "./types";
3
- export type ServiceAuthorizationPayload = {
4
- targetAddress?: string | string[];
5
- };
6
- export declare function authorizeService(apiKeyMetadata: ApiKeyMetadata, serviceConfig: CoreServiceConfig, authorizationPayload?: ServiceAuthorizationPayload): AuthorizationResult;
7
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,2BAA2B,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAC;AAEhF,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,iBAAiB,EAChC,oBAAoB,CAAC,EAAE,2BAA2B,GACjD,mBAAmB,CAgErB"}
@@ -1,12 +0,0 @@
1
- import { AccountMetadata, ApiKeyMetadata } from "../api";
2
- export type AuthorizationResult = {
3
- authorized: true;
4
- apiKeyMeta: ApiKeyMetadata | null;
5
- accountMeta: AccountMetadata | null;
6
- } | {
7
- authorized: false;
8
- status: number;
9
- errorMessage: string;
10
- errorCode: string;
11
- };
12
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAC3B;IACE,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACrC,GACD;IACE,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/core/rateLimit","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK1C,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,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsE3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"../../../../../src/core/rateLimit","sources":["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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"../../../../src/core","sources":["services.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DtB,CAAC;AAEX,eAAO,MAAM,aAAa,wFAEe,CAAC;AAE1C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAqC,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,OAAO,GACjB,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"../../../../src/core","sources":["types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { CoreServiceConfig } from "../api";
2
- import { AuthorizationResult } from "../authorize/types";
3
- import { UsageLimitResult } from "./types";
4
- export declare function usageLimit(authzResult: AuthorizationResult, serviceConfig: CoreServiceConfig): Promise<UsageLimitResult>;
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/core/usageLimit","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAsB,UAAU,CAC9B,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAmD3B"}
@@ -1,9 +0,0 @@
1
- export type UsageLimitResult = {
2
- usageLimited: false;
3
- } | {
4
- usageLimited: true;
5
- status: number;
6
- errorMessage: string;
7
- errorCode: string;
8
- };
9
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"../../../../../src/core/usageLimit","sources":["types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB;IACE,YAAY,EAAE,KAAK,CAAC;CACrB,GACD;IACE,YAAY,EAAE,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./core/services";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/node","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAaD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,kBAAkB,CA2FpB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,UAE9C;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QA4BA"}