@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,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICES = exports.SERVICE_NAMES = exports.SERVICE_DEFINITIONS = void 0;
4
+ exports.getServiceByName = getServiceByName;
5
+ exports.SERVICE_DEFINITIONS = {
6
+ storage: {
7
+ name: "storage",
8
+ title: "Storage",
9
+ description: "IPFS Upload and Download",
10
+ actions: [
11
+ {
12
+ name: "read",
13
+ title: "Download",
14
+ description: "Download a file from Storage",
15
+ },
16
+ {
17
+ name: "write",
18
+ title: "Upload",
19
+ description: "Upload a file to Storage",
20
+ },
21
+ ],
22
+ },
23
+ rpc: {
24
+ name: "rpc",
25
+ title: "RPC",
26
+ description: "Accelerated RPC Edge",
27
+ // all actions allowed
28
+ actions: [],
29
+ },
30
+ bundler: {
31
+ name: "bundler",
32
+ title: "Account Abstraction",
33
+ description: "Bundler & Paymaster services",
34
+ // all actions allowed
35
+ actions: [],
36
+ },
37
+ relayer: {
38
+ name: "relayer",
39
+ title: "Gasless Relayer",
40
+ description: "Enable gasless transactions",
41
+ // all actions allowed
42
+ actions: [],
43
+ },
44
+ embeddedWallets: {
45
+ name: "embeddedWallets",
46
+ title: "In-App Wallets",
47
+ description: "E-mail and social login wallets for easy web3 onboarding",
48
+ // all actions allowed
49
+ actions: [],
50
+ },
51
+ pay: {
52
+ name: "pay",
53
+ title: "Pay",
54
+ description: "Pay for a blockchain transaction with any currency",
55
+ // all actions allowed
56
+ actions: [],
57
+ },
58
+ chainsaw: {
59
+ name: "chainsaw",
60
+ title: "Chainsaw",
61
+ description: "Indexed data for any EVM chain",
62
+ // all actions allowed
63
+ actions: [],
64
+ },
65
+ insight: {
66
+ name: "insight",
67
+ title: "Insight",
68
+ description: "Insight services",
69
+ // all actions allowed
70
+ actions: [],
71
+ },
72
+ nebula: {
73
+ name: "nebula",
74
+ title: "Nebula",
75
+ description: "Advanced blockchain reasoning and execution capabilities with AI",
76
+ // all actions allowed
77
+ actions: [],
78
+ },
79
+ };
80
+ exports.SERVICE_NAMES = Object.keys(exports.SERVICE_DEFINITIONS);
81
+ exports.SERVICES = Object.values(exports.SERVICE_DEFINITIONS);
82
+ function getServiceByName(name) {
83
+ return exports.SERVICE_DEFINITIONS[name];
84
+ }
85
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/core/services.ts"],"names":[],"mappings":";;;AA8FA,4CAEC;AAhGY,QAAA,mBAAmB,GAAG;IACjC,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,8BAA8B;aAC5C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,0BAA0B;aACxC;SACF;KACF;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,sBAAsB;QACnC,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,8BAA8B;QAC3C,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,6BAA6B;QAC1C,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,0DAA0D;QACvE,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,oDAAoD;QACjE,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,gCAAgC;QAC7C,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,kBAAkB;QAC/B,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,kEAAkE;QACpE,sBAAsB;QACtB,OAAO,EAAE,EAAE;KACZ;CACO,CAAC;AAEE,QAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CACtC,2BAAmB,CACoB,CAAC;AAE7B,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC;AAa3D,SAAgB,gBAAgB,CAAC,IAAiB;IAChD,OAAO,2BAAmB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usageEventSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.usageEventSchema = zod_1.z.object({
6
+ source: zod_1.z.string(),
7
+ action: zod_1.z.string(),
8
+ /**
9
+ * The following fields are optional.
10
+ */
11
+ accountId: zod_1.z.string().optional(),
12
+ isClientEvent: zod_1.z.boolean().optional(),
13
+ apiKeyId: zod_1.z.string().optional(),
14
+ creatorWalletAddress: zod_1.z.string().optional(),
15
+ clientId: zod_1.z.string().optional(),
16
+ walletAddress: zod_1.z.string().optional(),
17
+ walletType: zod_1.z.string().optional(),
18
+ chainId: zod_1.z.number().int().positive().optional(),
19
+ provider: zod_1.z.string().optional(),
20
+ mimeType: zod_1.z.string().optional(),
21
+ fileSize: zod_1.z.number().int().nonnegative().optional(),
22
+ fileCid: zod_1.z.string().optional(),
23
+ evmMethod: zod_1.z.string().optional(),
24
+ userOpHash: zod_1.z.string().optional(),
25
+ gasLimit: zod_1.z.number().nonnegative().optional(),
26
+ gasPricePerUnit: zod_1.z.string().optional(),
27
+ transactionFeeUsd: zod_1.z.number().optional(),
28
+ transactionHash: zod_1.z.string().optional(),
29
+ sdkName: zod_1.z.string().optional(),
30
+ sdkVersion: zod_1.z.string().optional(),
31
+ sdkPlatform: zod_1.z.string().optional(),
32
+ sdkOS: zod_1.z.string().optional(),
33
+ productName: zod_1.z.string().optional(),
34
+ transactionValue: zod_1.z.string().optional(),
35
+ pathname: zod_1.z.string().optional(),
36
+ contractAddress: zod_1.z.string().optional(),
37
+ errorCode: zod_1.z.string().optional(),
38
+ httpStatusCode: zod_1.z.number().int().nonnegative().optional(),
39
+ functionName: zod_1.z.string().optional(),
40
+ extension: zod_1.z.string().optional(),
41
+ retryCount: zod_1.z.number().int().nonnegative().optional(),
42
+ policyId: zod_1.z.string().optional(),
43
+ msSinceQueue: zod_1.z.number().nonnegative().optional(),
44
+ msSinceSend: zod_1.z.number().nonnegative().optional(),
45
+ msTotalDuration: zod_1.z.number().nonnegative().optional(),
46
+ swapId: zod_1.z.string().optional(),
47
+ tokenAddress: zod_1.z.string().optional(),
48
+ amountWei: zod_1.z.string().optional(),
49
+ amountUSDCents: zod_1.z.number().nonnegative().optional(),
50
+ httpMethod: zod_1.z
51
+ .enum([
52
+ "GET",
53
+ "POST",
54
+ "PUT",
55
+ "DELETE",
56
+ "PATCH",
57
+ "HEAD",
58
+ "CONNECT",
59
+ "OPTIONS",
60
+ "TRACE",
61
+ ])
62
+ .optional(),
63
+ // Used to identify the ecosystem that the an ecosystem wallet belongs too
64
+ ecosystemId: zod_1.z.string().optional(),
65
+ ecosystemPartnerId: zod_1.z.string().optional(),
66
+ authenticationMethod: zod_1.z.string().optional(),
67
+ chainName: zod_1.z.string().optional(),
68
+ tokenSymbol: zod_1.z.string().optional(),
69
+ dstChainId: zod_1.z.number().optional(),
70
+ dstTokenAddress: zod_1.z.string().optional(),
71
+ dstChainName: zod_1.z.string().optional(),
72
+ dstTokenSymbol: zod_1.z.string().optional(),
73
+ msLatency: zod_1.z.number().optional(),
74
+ toAmountUSDCents: zod_1.z.number().optional(),
75
+ secondaryProvider: zod_1.z.string().optional(),
76
+ onRampId: zod_1.z.string().optional(),
77
+ evmRequestParams: zod_1.z.string().optional(),
78
+ providerIp: zod_1.z.string().optional(),
79
+ promptTokens: zod_1.z.number().int().nonnegative().optional(),
80
+ completionTokens: zod_1.z.number().int().nonnegative().optional(),
81
+ modelName: zod_1.z.string().optional(),
82
+ sessionId: zod_1.z.string().optional(),
83
+ requestId: zod_1.z.string().optional(),
84
+ });
85
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/core/usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizeDomain = exports.authorizeBundleId = exports.updateRateLimitedAt = exports.fetchTeamAndProject = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Exports the public service definitions.
6
+ tslib_1.__exportStar(require("./core/services.js"), exports);
7
+ var api_js_1 = require("./core/api.js");
8
+ Object.defineProperty(exports, "fetchTeamAndProject", { enumerable: true, get: function () { return api_js_1.fetchTeamAndProject; } });
9
+ Object.defineProperty(exports, "updateRateLimitedAt", { enumerable: true, get: function () { return api_js_1.updateRateLimitedAt; } });
10
+ var client_js_1 = require("./core/authorize/client.js");
11
+ Object.defineProperty(exports, "authorizeBundleId", { enumerable: true, get: function () { return client_js_1.authorizeBundleId; } });
12
+ Object.defineProperty(exports, "authorizeDomain", { enumerable: true, get: function () { return client_js_1.authorizeDomain; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,0CAA0C;AAC1C,6DAAmC;AAWnC,wCAAyE;AAAhE,6GAAA,mBAAmB,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAEjD,wDAGoC;AAFlC,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validBundlerServiceConfig = exports.validServiceConfig = exports.validTeamAndProjectResponse = exports.validTeamResponse = exports.validProjectResponse = void 0;
4
+ exports.validProjectResponse = {
5
+ id: "1",
6
+ publishableKey: "your-api-key",
7
+ walletAddresses: ["creator-address"],
8
+ domains: ["example.com", "*.example.com"],
9
+ bundleIds: [],
10
+ services: [
11
+ {
12
+ name: "storage",
13
+ actions: ["read", "write"],
14
+ },
15
+ {
16
+ name: "rpc",
17
+ actions: [],
18
+ },
19
+ {
20
+ name: "bundler",
21
+ actions: [],
22
+ allowedChainIds: [1, 2, 3],
23
+ },
24
+ ],
25
+ teamId: "1",
26
+ createdAt: new Date("2024-06-01"),
27
+ updatedAt: new Date("2024-06-01"),
28
+ name: "test-project",
29
+ slug: "test-project",
30
+ image: "https://example.com/image.png",
31
+ };
32
+ exports.validTeamResponse = {
33
+ id: "1",
34
+ name: "test-team",
35
+ slug: "test-team",
36
+ image: "https://example.com/image.png",
37
+ createdAt: new Date("2024-06-01"),
38
+ updatedAt: new Date("2024-06-01"),
39
+ billingPlan: "free",
40
+ billingEmail: "test@example.com",
41
+ billingStatus: "noPayment",
42
+ growthTrialEligible: false,
43
+ enabledScopes: ["storage", "rpc", "bundler"],
44
+ };
45
+ exports.validTeamAndProjectResponse = {
46
+ team: exports.validTeamResponse,
47
+ project: exports.validProjectResponse,
48
+ authMethod: "publishableKey",
49
+ };
50
+ exports.validServiceConfig = {
51
+ apiUrl: "https://api.example.com",
52
+ serviceScope: "storage",
53
+ serviceApiKey: "service-api-key",
54
+ serviceAction: "read",
55
+ };
56
+ exports.validBundlerServiceConfig = {
57
+ apiUrl: "https://api.example.com",
58
+ serviceScope: "bundler",
59
+ serviceApiKey: "service-api-key",
60
+ };
61
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":";;;AAOa,QAAA,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;AAEW,QAAA,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;AAEW,QAAA,2BAA2B,GAA2B;IACjE,IAAI,EAAE,yBAAiB;IACvB,OAAO,EAAE,4BAAoB;IAC7B,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACnD,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,MAAM;CACtB,CAAC;AAEW,QAAA,yBAAyB,GAAsB;IAC1D,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,iBAAiB;CACjC,CAAC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizeNode = authorizeNode;
4
+ exports.extractAuthorizationData = extractAuthorizationData;
5
+ exports.hashSecretKey = hashSecretKey;
6
+ exports.logHttpRequest = logHttpRequest;
7
+ const tslib_1 = require("tslib");
8
+ const node_crypto_1 = require("node:crypto");
9
+ const index_js_1 = require("../core/authorize/index.js");
10
+ tslib_1.__exportStar(require("../core/usage.js"), exports);
11
+ tslib_1.__exportStar(require("../core/rateLimit/index.js"), exports);
12
+ tslib_1.__exportStar(require("../core/services.js"), exports);
13
+ async function authorizeNode(authInput, serviceConfig, cacheOptions) {
14
+ let authData;
15
+ try {
16
+ authData = extractAuthorizationData(authInput);
17
+ }
18
+ catch (e) {
19
+ if (e instanceof Error && e.message === "KEY_CONFLICT") {
20
+ return {
21
+ authorized: false,
22
+ status: 400,
23
+ errorMessage: "Please pass either a client id or a secret key.",
24
+ errorCode: "KEY_CONFLICT",
25
+ };
26
+ }
27
+ return {
28
+ authorized: false,
29
+ status: 500,
30
+ errorMessage: "Internal Server Error",
31
+ errorCode: "INTERNAL_SERVER_ERROR",
32
+ };
33
+ }
34
+ return await (0, index_js_1.authorize)(authData, serviceConfig, cacheOptions);
35
+ }
36
+ function isNodeHeaders(headers) {
37
+ return typeof headers === "object" && !("get" in headers);
38
+ }
39
+ function getHeader(headers, headerName) {
40
+ return isNodeHeaders(headers)
41
+ ? Array.isArray(headers[headerName])
42
+ ? (headers[headerName]?.[0] ?? null)
43
+ : (headers[headerName] ?? null)
44
+ : (headers.get(headerName) ?? null);
45
+ }
46
+ function extractAuthorizationData(authInput) {
47
+ let requestUrl;
48
+ try {
49
+ requestUrl = new URL(authInput.req.url || "", `http://${getHeader(authInput.req.headers, "host")}`);
50
+ }
51
+ catch (error) {
52
+ console.log("** Node URL Error **", error);
53
+ throw error;
54
+ }
55
+ const headers = authInput.req.headers;
56
+ const secretKey = getHeader(headers, "x-secret-key");
57
+ // prefer clientId that is explicitly passed in
58
+ let clientId = authInput.clientId ?? null;
59
+ if (!clientId) {
60
+ // next preference is clientId from header
61
+ clientId = getHeader(headers, "x-client-id");
62
+ }
63
+ // next preference is search param
64
+ if (!clientId) {
65
+ clientId = requestUrl.searchParams.get("clientId");
66
+ }
67
+ // bundle id from header is first preference
68
+ let bundleId = getHeader(headers, "x-bundle-id");
69
+ // next preference is search param
70
+ if (!bundleId) {
71
+ bundleId = requestUrl.searchParams.get("bundleId");
72
+ }
73
+ let ecosystemId = getHeader(headers, "x-ecosystem-id");
74
+ if (!ecosystemId) {
75
+ ecosystemId = requestUrl.searchParams.get("ecosystemId");
76
+ }
77
+ let ecosystemPartnerId = getHeader(headers, "x-ecosystem-partner-id");
78
+ if (!ecosystemPartnerId) {
79
+ ecosystemPartnerId = requestUrl.searchParams.get("ecosystemPartnerId");
80
+ }
81
+ let origin = getHeader(headers, "origin");
82
+ // if origin header is not available we'll fall back to referrer;
83
+ if (!origin) {
84
+ origin = getHeader(headers, "referer");
85
+ }
86
+ // if we have an origin at this point, normalize it
87
+ if (origin) {
88
+ try {
89
+ origin = new URL(origin).host;
90
+ }
91
+ catch (e) {
92
+ console.warn("failed to parse origin", origin, e);
93
+ }
94
+ }
95
+ // handle if we a secret key is passed in the headers
96
+ let secretKeyHash = null;
97
+ if (secretKey) {
98
+ // hash the secret key
99
+ secretKeyHash = hashSecretKey(secretKey);
100
+ }
101
+ let jwt = null;
102
+ let useWalletAuth = null;
103
+ // check for authorization header on the request
104
+ const authorizationHeader = getHeader(headers, "authorization");
105
+ if (authorizationHeader) {
106
+ const [type, token] = authorizationHeader.split(" ");
107
+ if (type?.toLowerCase() === "bearer" && !!token) {
108
+ jwt = token;
109
+ const walletAuthHeader = getHeader(headers, "x-authorize-wallet");
110
+ // IK a stringified boolean is not ideal, but it's required to pass it in the headers.
111
+ if (walletAuthHeader?.toLowerCase() === "true") {
112
+ useWalletAuth = walletAuthHeader;
113
+ }
114
+ }
115
+ }
116
+ return {
117
+ jwt,
118
+ hashedJWT: jwt ? hashSecretKey(jwt) : null,
119
+ secretKeyHash,
120
+ secretKey,
121
+ clientId,
122
+ ecosystemId,
123
+ ecosystemPartnerId,
124
+ origin,
125
+ bundleId,
126
+ targetAddress: authInput.targetAddress,
127
+ useWalletAuth,
128
+ };
129
+ }
130
+ function hashSecretKey(secretKey) {
131
+ return (0, node_crypto_1.createHash)("sha256").update(secretKey).digest("hex");
132
+ }
133
+ function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }) {
134
+ try {
135
+ const authorizationData = extractAuthorizationData({ req, clientId });
136
+ const headers = req.headers;
137
+ console.log(JSON.stringify({
138
+ method: req.method,
139
+ pathname: req.url,
140
+ hasSecretKey: !!authorizationData.secretKey,
141
+ hasClientId: !!authorizationData.clientId,
142
+ hasJwt: !!authorizationData.jwt,
143
+ clientId: authorizationData.clientId,
144
+ isAuthed,
145
+ status: res.statusCode,
146
+ statusMessage,
147
+ sdkName: getHeader(headers, "x-sdk-name"),
148
+ sdkVersion: getHeader(headers, "x-sdk-version"),
149
+ platform: getHeader(headers, "x-sdk-platform"),
150
+ os: getHeader(headers, "x-sdk-os"),
151
+ latencyMs,
152
+ }));
153
+ }
154
+ catch { }
155
+ }
156
+ //# 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":"commonjs"}
@@ -0,0 +1,145 @@
1
+ import { authorize } from "../core/authorize/index.js";
2
+ export * from "./usage.js";
3
+ export * from "../core/services.js";
4
+ export * from "../core/rateLimit/index.js";
5
+ const DEFAULT_CACHE_TTL_SECONDS = 60;
6
+ export async function authorizeWorker(authInput, serviceConfig) {
7
+ let authData;
8
+ try {
9
+ authData = await 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, {
28
+ get: async (clientId) => serviceConfig.kvStore.get(clientId),
29
+ put: (clientId, data) => serviceConfig.ctx.waitUntil(serviceConfig.kvStore.put(clientId, JSON.stringify({
30
+ updatedAt: Date.now(),
31
+ data,
32
+ }), {
33
+ expirationTtl: serviceConfig.cacheTtlSeconds &&
34
+ serviceConfig.cacheTtlSeconds >= DEFAULT_CACHE_TTL_SECONDS
35
+ ? serviceConfig.cacheTtlSeconds
36
+ : DEFAULT_CACHE_TTL_SECONDS,
37
+ })),
38
+ cacheTtlSeconds: serviceConfig.cacheTtlSeconds ?? DEFAULT_CACHE_TTL_SECONDS,
39
+ });
40
+ }
41
+ export async function extractAuthorizationData(authInput) {
42
+ const requestUrl = new URL(authInput.req.url);
43
+ const headers = authInput.req.headers;
44
+ const secretKey = headers.get("x-secret-key");
45
+ // prefer clientId that is explicitly passed in
46
+ let clientId = authInput.clientId ?? null;
47
+ if (!clientId) {
48
+ // next preference is clientId from header
49
+ clientId = headers.get("x-client-id");
50
+ }
51
+ // next preference is search param
52
+ if (!clientId) {
53
+ clientId = requestUrl.searchParams.get("clientId");
54
+ }
55
+ // bundle id from header is first preference
56
+ let bundleId = headers.get("x-bundle-id");
57
+ // next preference is search param
58
+ if (!bundleId) {
59
+ bundleId = requestUrl.searchParams.get("bundleId");
60
+ }
61
+ let ecosystemId = headers.get("x-ecosystem-id");
62
+ if (!ecosystemId) {
63
+ ecosystemId = requestUrl.searchParams.get("ecosystemId");
64
+ }
65
+ let ecosystemPartnerId = headers.get("x-ecosystem-partner-id");
66
+ if (!ecosystemPartnerId) {
67
+ ecosystemPartnerId = requestUrl.searchParams.get("ecosystemPartnerId");
68
+ }
69
+ let origin = headers.get("origin");
70
+ // if origin header is not available we'll fall back to referrer;
71
+ if (!origin) {
72
+ origin = headers.get("referer");
73
+ }
74
+ // if we have an origin at this point, normalize it
75
+ if (origin) {
76
+ try {
77
+ origin = new URL(origin).host;
78
+ }
79
+ catch (e) {
80
+ console.warn("failed to parse origin", origin, e);
81
+ }
82
+ }
83
+ // handle if we a secret key is passed in the headers
84
+ let secretKeyHash = null;
85
+ if (secretKey) {
86
+ // hash the secret key
87
+ secretKeyHash = await hashSecretKey(secretKey);
88
+ }
89
+ let jwt = null;
90
+ if (headers.has("authorization")) {
91
+ const authHeader = headers.get("authorization");
92
+ if (authHeader) {
93
+ const [type, token] = authHeader.split(" ");
94
+ if (type?.toLowerCase() === "bearer" && !!token) {
95
+ jwt = token;
96
+ }
97
+ }
98
+ }
99
+ return {
100
+ jwt,
101
+ hashedJWT: jwt ? await hashSecretKey(jwt) : null,
102
+ secretKey,
103
+ clientId,
104
+ ecosystemId,
105
+ ecosystemPartnerId,
106
+ origin,
107
+ bundleId,
108
+ secretKeyHash,
109
+ targetAddress: authInput.targetAddress,
110
+ };
111
+ }
112
+ export async function hashSecretKey(secretKey) {
113
+ return bufferToHex(await crypto.subtle.digest("SHA-256", new TextEncoder().encode(secretKey)));
114
+ }
115
+ function bufferToHex(buffer) {
116
+ return [...new Uint8Array(buffer)]
117
+ .map((x) => x.toString(16).padStart(2, "0"))
118
+ .join("");
119
+ }
120
+ export async function logHttpRequest({ clientId, req, res, isAuthed, statusMessage, latencyMs, }) {
121
+ try {
122
+ const authorizationData = await extractAuthorizationData({ req, clientId });
123
+ const headers = req.headers;
124
+ console.log(JSON.stringify({
125
+ method: req.method,
126
+ pathname: req.url,
127
+ hasSecretKey: !!authorizationData.secretKey,
128
+ hasClientId: !!authorizationData.clientId,
129
+ hasJwt: !!authorizationData.jwt,
130
+ clientId: authorizationData.clientId,
131
+ isAuthed,
132
+ status: res.status,
133
+ sdkName: headers.get("x-sdk-name") ?? undefined,
134
+ sdkVersion: headers.get("x-sdk-version") ?? undefined,
135
+ platform: headers.get("x-sdk-platform") ?? undefined,
136
+ os: headers.get("x-sdk-os") ?? undefined,
137
+ latencyMs,
138
+ }));
139
+ if (statusMessage) {
140
+ console.log(`statusMessage=${statusMessage}`);
141
+ }
142
+ }
143
+ catch { }
144
+ }
145
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cf-worker/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { AwsClient } from "aws4fetch";
2
+ import { usageEventSchema } from "../core/usage.js";
3
+ // Initialize a singleton for AWS usage.
4
+ let _aws;
5
+ function getAws(options) {
6
+ if (!_aws) {
7
+ _aws = new AwsClient(options);
8
+ }
9
+ return _aws;
10
+ }
11
+ /**
12
+ * Publish usage events. Provide the relevant fields for your application.
13
+ *
14
+ * Usage in Cloudflare Workers:
15
+ * ctx.waitUntil(
16
+ * publishUsageEvents(
17
+ * [event1, event2],
18
+ * { queueUrl, accessKeyId, secretAccessKey },
19
+ * )
20
+ * )
21
+ *
22
+ * @param usageEvents
23
+ * @param config
24
+ */
25
+ async function publishUsageEvents(usageEvents, config) {
26
+ const { queueUrl, accessKeyId, secretAccessKey, region = "us-west-2", } = config;
27
+ const entries = usageEvents.map((event) => {
28
+ // Enforce schema of usage event.
29
+ const parsed = usageEventSchema.parse(event);
30
+ return {
31
+ Id: crypto.randomUUID(),
32
+ MessageBody: JSON.stringify(parsed),
33
+ };
34
+ });
35
+ const aws = getAws({
36
+ accessKeyId,
37
+ secretAccessKey,
38
+ region,
39
+ });
40
+ await aws.fetch(`https://sqs.${region}.amazonaws.com`, {
41
+ headers: {
42
+ "X-Amz-Target": "AmazonSQS.SendMessageBatch",
43
+ "X-Amz-Date": new Date().toISOString(),
44
+ "Content-Type": "application/x-amz-json-1.0",
45
+ },
46
+ body: JSON.stringify({
47
+ QueueUrl: queueUrl,
48
+ Entries: entries,
49
+ }),
50
+ });
51
+ }
52
+ export { publishUsageEvents };
53
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/cf-worker/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAmB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGrE,wCAAwC;AACxC,IAAI,IAA2B,CAAC;AAChC,SAAS,MAAM,CAAC,OAAmD;IACjE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,kBAAkB,CAC/B,WAAyB,EACzB,MAKC;IAED,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAM,GAAG,WAAW,GACrB,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,iCAAiC;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC;QACjB,WAAW;QACX,eAAe;QACf,MAAM;KACP,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,gBAAgB,EAAE;QACrD,OAAO,EAAE;YACP,cAAc,EAAE,4BAA4B;YAC5C,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,cAAc,EAAE,4BAA4B;SAC7C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}