@thirdweb-dev/service-utils 0.4.38 → 0.4.39

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 (149) hide show
  1. package/dist/cjs/cf-worker/index.js +155 -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 +65 -0
  6. package/dist/cjs/core/api.js.map +1 -0
  7. package/dist/cjs/core/authorize/client.js +115 -0
  8. package/dist/cjs/core/authorize/client.js.map +1 -0
  9. package/dist/cjs/core/authorize/index.js +215 -0
  10. package/dist/cjs/core/authorize/index.js.map +1 -0
  11. package/dist/cjs/core/authorize/service.js +58 -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 +64 -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 +71 -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 +93 -0
  24. package/dist/cjs/core/usage.js.map +1 -0
  25. package/dist/cjs/core/usageLimit/index.js +45 -0
  26. package/dist/cjs/core/usageLimit/index.js.map +1 -0
  27. package/dist/cjs/core/usageLimit/types.js +3 -0
  28. package/dist/cjs/core/usageLimit/types.js.map +1 -0
  29. package/dist/cjs/index.js +10 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/cjs/mocks.js +53 -0
  32. package/dist/cjs/mocks.js.map +1 -0
  33. package/dist/cjs/node/index.js +173 -0
  34. package/dist/cjs/node/index.js.map +1 -0
  35. package/dist/cjs/package.json +1 -0
  36. package/dist/esm/cf-worker/index.js +147 -0
  37. package/dist/esm/cf-worker/index.js.map +1 -0
  38. package/dist/esm/cf-worker/usage.js +54 -0
  39. package/dist/esm/cf-worker/usage.js.map +1 -0
  40. package/dist/esm/core/api.js +60 -0
  41. package/dist/esm/core/api.js.map +1 -0
  42. package/dist/esm/core/authorize/client.js +110 -0
  43. package/dist/esm/core/authorize/client.js.map +1 -0
  44. package/dist/esm/core/authorize/index.js +212 -0
  45. package/dist/esm/core/authorize/index.js.map +1 -0
  46. package/dist/esm/core/authorize/service.js +55 -0
  47. package/dist/esm/core/authorize/service.js.map +1 -0
  48. package/dist/esm/core/authorize/types.js +2 -0
  49. package/dist/esm/core/authorize/types.js.map +1 -0
  50. package/dist/esm/core/rateLimit/index.js +61 -0
  51. package/dist/esm/core/rateLimit/index.js.map +1 -0
  52. package/dist/esm/core/rateLimit/types.js +2 -0
  53. package/dist/esm/core/rateLimit/types.js.map +1 -0
  54. package/dist/esm/core/services.js +67 -0
  55. package/dist/esm/core/services.js.map +1 -0
  56. package/dist/esm/core/types.js +2 -0
  57. package/dist/esm/core/types.js.map +1 -0
  58. package/dist/esm/core/usage.js +90 -0
  59. package/dist/esm/core/usage.js.map +1 -0
  60. package/dist/esm/core/usageLimit/index.js +42 -0
  61. package/dist/esm/core/usageLimit/index.js.map +1 -0
  62. package/dist/esm/core/usageLimit/types.js +2 -0
  63. package/dist/esm/core/usageLimit/types.js.map +1 -0
  64. package/dist/esm/index.js +4 -0
  65. package/dist/esm/index.js.map +1 -0
  66. package/dist/esm/mocks.js +50 -0
  67. package/dist/esm/mocks.js.map +1 -0
  68. package/dist/esm/node/index.js +165 -0
  69. package/dist/esm/node/index.js.map +1 -0
  70. package/dist/esm/package.json +1 -0
  71. package/dist/{declarations/src → types}/cf-worker/index.d.ts +8 -8
  72. package/dist/types/cf-worker/index.d.ts.map +1 -0
  73. package/dist/{declarations/src → types}/cf-worker/usage.d.ts +3 -2
  74. package/dist/types/cf-worker/usage.d.ts.map +1 -0
  75. package/dist/{declarations/src → types}/core/api.d.ts +1 -1
  76. package/dist/types/core/api.d.ts.map +1 -0
  77. package/dist/{declarations/src → types}/core/authorize/client.d.ts +2 -2
  78. package/dist/types/core/authorize/client.d.ts.map +1 -0
  79. package/dist/{declarations/src → types}/core/authorize/index.d.ts +2 -2
  80. package/dist/types/core/authorize/index.d.ts.map +1 -0
  81. package/dist/{declarations/src → types}/core/authorize/service.d.ts +2 -2
  82. package/dist/types/core/authorize/service.d.ts.map +1 -0
  83. package/dist/{declarations/src → types}/core/authorize/types.d.ts +1 -1
  84. package/dist/types/core/authorize/types.d.ts.map +1 -0
  85. package/dist/{declarations/src → types}/core/rateLimit/index.d.ts +3 -3
  86. package/dist/types/core/rateLimit/index.d.ts.map +1 -0
  87. package/dist/types/core/rateLimit/types.d.ts.map +1 -0
  88. package/dist/types/core/services.d.ts.map +1 -0
  89. package/dist/types/core/types.d.ts.map +1 -0
  90. package/dist/{declarations/src → types}/core/usage.d.ts +2 -2
  91. package/dist/types/core/usage.d.ts.map +1 -0
  92. package/dist/types/core/usageLimit/index.d.ts +5 -0
  93. package/dist/types/core/usageLimit/index.d.ts.map +1 -0
  94. package/dist/types/core/usageLimit/types.d.ts.map +1 -0
  95. package/dist/types/index.d.ts +3 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/mocks.d.ts +5 -0
  98. package/dist/types/mocks.d.ts.map +1 -0
  99. package/dist/{declarations/src → types}/node/index.d.ts +8 -8
  100. package/dist/types/node/index.d.ts.map +1 -0
  101. package/package.json +36 -29
  102. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts +0 -2
  103. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.d.ts.map +0 -1
  104. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.dev.js +0 -226
  105. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.js +0 -7
  106. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.prod.js +0 -226
  107. package/cf-worker/dist/thirdweb-dev-service-utils-cf-worker.esm.js +0 -212
  108. package/cf-worker/package.json +0 -4
  109. package/dist/client-8440b8fb.esm.js +0 -195
  110. package/dist/client-84e46164.cjs.prod.js +0 -203
  111. package/dist/client-a5cc5822.cjs.dev.js +0 -203
  112. package/dist/declarations/src/cf-worker/index.d.ts.map +0 -1
  113. package/dist/declarations/src/cf-worker/usage.d.ts.map +0 -1
  114. package/dist/declarations/src/core/api.d.ts.map +0 -1
  115. package/dist/declarations/src/core/authorize/client.d.ts.map +0 -1
  116. package/dist/declarations/src/core/authorize/index.d.ts.map +0 -1
  117. package/dist/declarations/src/core/authorize/service.d.ts.map +0 -1
  118. package/dist/declarations/src/core/authorize/types.d.ts.map +0 -1
  119. package/dist/declarations/src/core/rateLimit/index.d.ts.map +0 -1
  120. package/dist/declarations/src/core/rateLimit/types.d.ts.map +0 -1
  121. package/dist/declarations/src/core/services.d.ts.map +0 -1
  122. package/dist/declarations/src/core/types.d.ts.map +0 -1
  123. package/dist/declarations/src/core/usage.d.ts.map +0 -1
  124. package/dist/declarations/src/core/usageLimit/index.d.ts +0 -5
  125. package/dist/declarations/src/core/usageLimit/index.d.ts.map +0 -1
  126. package/dist/declarations/src/core/usageLimit/types.d.ts.map +0 -1
  127. package/dist/declarations/src/index.d.ts +0 -3
  128. package/dist/declarations/src/index.d.ts.map +0 -1
  129. package/dist/declarations/src/node/index.d.ts.map +0 -1
  130. package/dist/index-23f268d8.cjs.prod.js +0 -540
  131. package/dist/index-5dc16842.esm.js +0 -535
  132. package/dist/index-88f1ffb6.cjs.dev.js +0 -540
  133. package/dist/thirdweb-dev-service-utils.cjs.d.ts +0 -2
  134. package/dist/thirdweb-dev-service-utils.cjs.d.ts.map +0 -1
  135. package/dist/thirdweb-dev-service-utils.cjs.dev.js +0 -14
  136. package/dist/thirdweb-dev-service-utils.cjs.js +0 -7
  137. package/dist/thirdweb-dev-service-utils.cjs.prod.js +0 -14
  138. package/dist/thirdweb-dev-service-utils.esm.js +0 -1
  139. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts +0 -2
  140. package/node/dist/thirdweb-dev-service-utils-node.cjs.d.ts.map +0 -1
  141. package/node/dist/thirdweb-dev-service-utils-node.cjs.dev.js +0 -190
  142. package/node/dist/thirdweb-dev-service-utils-node.cjs.js +0 -7
  143. package/node/dist/thirdweb-dev-service-utils-node.cjs.prod.js +0 -190
  144. package/node/dist/thirdweb-dev-service-utils-node.esm.js +0 -176
  145. package/node/package.json +0 -4
  146. /package/dist/{declarations/src → types}/core/rateLimit/types.d.ts +0 -0
  147. /package/dist/{declarations/src → types}/core/services.d.ts +0 -0
  148. /package/dist/{declarations/src → types}/core/types.d.ts +0 -0
  149. /package/dist/{declarations/src → types}/core/usageLimit/types.d.ts +0 -0
@@ -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,EAGV,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,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;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,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,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"}
@@ -1,4 +1,5 @@
1
- import { type UsageEvent } from "../core/usage";
1
+ import { type UsageEvent } from "../core/usage.js";
2
+ export { type UsageEvent } from "../core/usage.js";
2
3
  /**
3
4
  * Publish usage events. Provide the relevant fields for your application.
4
5
  *
@@ -19,5 +20,5 @@ declare function publishUsageEvents(usageEvents: UsageEvent[], config: {
19
20
  secretAccessKey: string;
20
21
  region?: string;
21
22
  }): Promise<void>;
22
- export { publishUsageEvents, type UsageEvent };
23
+ export { publishUsageEvents };
23
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,OAAO,EAAE,KAAK,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"}
@@ -1,4 +1,4 @@
1
- import type { ServiceName } from "./services";
1
+ import type { ServiceName } from "./services.js";
2
2
  export type UserOpData = {
3
3
  sender: string;
4
4
  targets: string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/core/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ApiKeyMetadata } from "../api";
2
- import type { AuthorizationResult } from "./types";
1
+ import type { ApiKeyMetadata } from "../api.js";
2
+ import type { AuthorizationResult } from "./types.js";
3
3
  export type ClientAuthorizationPayload = {
4
4
  secretKeyHash: string | null;
5
5
  bundleId: string | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,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,UAAU,EAAE,cAAc,GACzB,mBAAmB,CAmFrB;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,5 +1,5 @@
1
- import { type AccountMetadata, type ApiKeyMetadata, type CoreServiceConfig } from "../api";
2
- import type { AuthorizationResult } from "./types";
1
+ import { type AccountMetadata, type ApiKeyMetadata, type CoreServiceConfig } 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;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGvB,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,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,CAmO9B"}
@@ -1,5 +1,5 @@
1
- import type { ApiKeyMetadata, CoreServiceConfig } from "../api";
2
- import type { AuthorizationResult } from "./types";
1
+ import type { ApiKeyMetadata, CoreServiceConfig } from "../api.js";
2
+ import type { AuthorizationResult } from "./types.js";
3
3
  export type ServiceAuthorizationPayload = {
4
4
  targetAddress?: string | string[];
5
5
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,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,4 +1,4 @@
1
- import type { AccountMetadata, ApiKeyMetadata } from "../api";
1
+ import type { AccountMetadata, ApiKeyMetadata } from "../api.js";
2
2
  export type AuthorizationResult = {
3
3
  authorized: true;
4
4
  apiKeyMeta: ApiKeyMetadata | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/authorize/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,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,6 +1,6 @@
1
- import { type CoreServiceConfig } from "../api";
2
- import type { AuthorizationResult } from "../authorize/types";
3
- import type { RateLimitResult } from "./types";
1
+ import { type CoreServiceConfig } from "../api.js";
2
+ import type { AuthorizationResult } from "../authorize/types.js";
3
+ import type { RateLimitResult } from "./types.js";
4
4
  type IRedis = {
5
5
  incr: (key: string) => Promise<number>;
6
6
  expire: (key: string, ttlSeconds: number) => Promise<0 | 1>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/rateLimit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,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,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"}
@@ -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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/core/services.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DtB,CAAC;AAEX,eAAO,MAAM,aAAa,EAErB,CAAC,MAAM,OAAO,mBAAmB,CAAC,EAAE,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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/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"}
@@ -63,9 +63,9 @@ export declare const usageEventSchema: z.ZodObject<{
63
63
  }, "strip", z.ZodTypeAny, {
64
64
  source: "storage" | "rpc" | "bundler" | "relayer" | "embeddedWallets" | "pay" | "ecosystemWallets" | "paymaster" | "connectWallet" | "checkout" | "engine" | "rpcV2";
65
65
  action: string;
66
+ creatorWalletAddress?: string | undefined;
66
67
  errorCode?: string | undefined;
67
68
  clientId?: string | undefined;
68
- creatorWalletAddress?: string | undefined;
69
69
  accountId?: string | undefined;
70
70
  isClientEvent?: boolean | undefined;
71
71
  apiKeyId?: string | undefined;
@@ -121,9 +121,9 @@ export declare const usageEventSchema: z.ZodObject<{
121
121
  }, {
122
122
  source: "storage" | "rpc" | "bundler" | "relayer" | "embeddedWallets" | "pay" | "ecosystemWallets" | "paymaster" | "connectWallet" | "checkout" | "engine" | "rpcV2";
123
123
  action: string;
124
+ creatorWalletAddress?: string | undefined;
124
125
  errorCode?: string | undefined;
125
126
  clientId?: string | undefined;
126
- creatorWalletAddress?: string | undefined;
127
127
  accountId?: string | undefined;
128
128
  isClientEvent?: boolean | undefined;
129
129
  apiKeyId?: string | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/core/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;IAiB3B;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEH,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CoreServiceConfig } from "../api.js";
2
+ import type { AuthorizationResult } from "../authorize/types.js";
3
+ import type { UsageLimitResult } from "./types.js";
4
+ export declare function usageLimit(authzResult: AuthorizationResult, serviceConfig: CoreServiceConfig): Promise<UsageLimitResult>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/usageLimit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAsB,UAAU,CAC9B,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAmD3B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/usageLimit/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"}
@@ -0,0 +1,3 @@
1
+ export * from "./core/services.js";
2
+ export { authorizeBundleId, authorizeDomain, } from "./core/authorize/client.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ApiKeyMetadata, CoreServiceConfig } from "./core/api.js";
2
+ export declare const validApiKeyMeta: ApiKeyMetadata;
3
+ export declare const validServiceConfig: CoreServiceConfig;
4
+ export declare const validBundlerServiceConfig: CoreServiceConfig;
5
+ //# sourceMappingURL=mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvE,eAAO,MAAM,eAAe,EAAE,cAmC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAMhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAKvC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { CoreServiceConfig } from "../core/api";
3
- import type { AuthorizationInput } from "../core/authorize";
4
- import type { AuthorizationResult } from "../core/authorize/types";
5
- import type { CoreAuthInput } from "../core/types";
6
- export * from "../core/usage";
7
- export * from "../core/rateLimit";
8
- export * from "../core/services";
9
- export * from "../core/usageLimit";
2
+ import type { CoreServiceConfig } from "../core/api.js";
3
+ import type { AuthorizationInput } from "../core/authorize/index.js";
4
+ import type { AuthorizationResult } from "../core/authorize/types.js";
5
+ import type { CoreAuthInput } from "../core/types.js";
6
+ export * from "../core/usage.js";
7
+ export * from "../core/rateLimit/index.js";
8
+ export * from "../core/services.js";
9
+ export * from "../core/usageLimit/index.js";
10
10
  type NodeServiceConfig = CoreServiceConfig;
11
11
  export type AuthInput = CoreAuthInput & {
12
12
  req: IncomingMessage;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,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;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,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,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,SAAS,GAAG;IAEb,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,QAwBA"}
package/package.json CHANGED
@@ -1,23 +1,39 @@
1
1
  {
2
2
  "name": "@thirdweb-dev/service-utils",
3
- "version": "0.4.38",
4
- "main": "dist/thirdweb-dev-service-utils.cjs.js",
5
- "module": "dist/thirdweb-dev-service-utils.esm.js",
3
+ "version": "0.4.39",
4
+ "type": "module",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "typings": "dist/types/index.d.ts",
6
9
  "exports": {
7
10
  ".": {
8
- "module": "./dist/thirdweb-dev-service-utils.esm.js",
9
- "default": "./dist/thirdweb-dev-service-utils.cjs.js"
11
+ "types": "./dist/types/index.d.ts",
12
+ "import": "./dist/esm/index.js",
13
+ "default": "./dist/cjs/index.js"
10
14
  },
11
15
  "./node": {
12
- "module": "./node/dist/thirdweb-dev-service-utils-node.esm.js",
13
- "default": "./node/dist/thirdweb-dev-service-utils-node.cjs.js"
16
+ "types": "./dist/types/node/index.d.ts",
17
+ "import": "./dist/esm/node/index.js",
18
+ "default": "./dist/cjs/node/index.js"
14
19
  },
15
20
  "./cf-worker": {
16
- "module": "./cf-worker/dist/thirdweb-dev-service-utils-cf-worker.esm.js",
17
- "default": "./cf-worker/dist/thirdweb-dev-service-utils-cf-worker.cjs.js"
21
+ "types": "./dist/types/cf-worker/index.d.ts",
22
+ "import": "./dist/esm/cf-worker/index.js",
23
+ "default": "./dist/cjs/cf-worker/index.js"
18
24
  },
19
25
  "./package.json": "./package.json"
20
26
  },
27
+ "typesVersions": {
28
+ "*": {
29
+ "node": [
30
+ "./dist/types/node/index.d.ts"
31
+ ],
32
+ "cf-worker": [
33
+ "./dist/types/cf-worker/index.d.ts"
34
+ ]
35
+ }
36
+ },
21
37
  "repository": "https://github.com/thirdweb-dev/js/tree/main/packages/pay",
22
38
  "license": "Apache-2.0",
23
39
  "bugs": {
@@ -25,37 +41,28 @@
25
41
  },
26
42
  "author": "thirdweb eng <eng@thirdweb.com>",
27
43
  "files": [
28
- "dist/",
29
- "node/",
30
- "cf-worker/"
44
+ "dist/"
31
45
  ],
32
- "preconstruct": {
33
- "entrypoints": [
34
- "index.ts",
35
- "cf-worker/index.ts",
36
- "node/index.ts"
37
- ],
38
- "exports": true
39
- },
40
46
  "sideEffects": false,
41
47
  "dependencies": {
42
- "aws4fetch": "1.0.18",
48
+ "aws4fetch": "1.0.20",
43
49
  "zod": "3.23.8"
44
50
  },
45
51
  "devDependencies": {
46
- "@cloudflare/workers-types": "4.20240405.0",
47
- "@preconstruct/cli": "2.7.0",
48
- "@thirdweb-dev/tsconfig": "^0.1.7",
52
+ "@cloudflare/workers-types": "4.20240919.0",
49
53
  "@types/node": "20.14.9",
50
- "typescript": "5.5.4"
54
+ "typescript": "5.6.2",
55
+ "vitest": "2.1.1"
51
56
  },
52
57
  "scripts": {
53
58
  "format": "biome format ./src --write",
54
- "lint": "biome check ./src",
55
- "fix": "biome check ./src --fix",
59
+ "lint": "biome check ./src && tsc --project ./tsconfig.build.json --module esnext --noEmit",
60
+ "fix": "biome check ./src --fix --unsafe",
56
61
  "clean": "rm -rf dist/",
57
- "build": "tsc && preconstruct build",
58
- "push": "yalc push",
62
+ "build": "pnpm clean && pnpm build:types && pnpm build:cjs && pnpm build:esm",
63
+ "build:cjs": "tsc --noCheck --project ./tsconfig.build.json --module commonjs --outDir ./dist/cjs --verbatimModuleSyntax false && printf '{\"type\":\"commonjs\"}' > ./dist/cjs/package.json",
64
+ "build:esm": "tsc --noCheck --project ./tsconfig.build.json --module es2020 --outDir ./dist/esm && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./dist/esm/package.json",
65
+ "build:types": "tsc --project ./tsconfig.build.json --module esnext --declarationDir ./dist/types --emitDeclarationOnly --declaration --declarationMap",
59
66
  "test": "vitest run"
60
67
  }
61
68
  }
@@ -1,2 +0,0 @@
1
- export * from "../../dist/declarations/src/cf-worker/index";
2
- //# sourceMappingURL=thirdweb-dev-service-utils-cf-worker.cjs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"thirdweb-dev-service-utils-cf-worker.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/cf-worker/index.d.ts"],"names":[],"mappings":"AAAA"}
@@ -1,226 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var index = require('../../dist/index-88f1ffb6.cjs.dev.js');
6
- var aws4fetch = require('aws4fetch');
7
- var client = require('../../dist/client-a5cc5822.cjs.dev.js');
8
- require('zod');
9
-
10
- // Initialize a singleton for AWS usage.
11
- let _aws;
12
- function getAws(options) {
13
- if (!_aws) {
14
- _aws = new aws4fetch.AwsClient(options);
15
- }
16
- return _aws;
17
- }
18
-
19
- /**
20
- * Publish usage events. Provide the relevant fields for your application.
21
- *
22
- * Usage in Cloudflare Workers:
23
- * ctx.waitUntil(
24
- * publishUsageEvents(
25
- * [event1, event2],
26
- * { queueUrl, accessKeyId, secretAccessKey },
27
- * )
28
- * )
29
- *
30
- * @param usageEvents
31
- * @param config
32
- */
33
- async function publishUsageEvents(usageEvents, config) {
34
- const {
35
- queueUrl,
36
- accessKeyId,
37
- secretAccessKey,
38
- region = "us-west-2"
39
- } = config;
40
- const entries = usageEvents.map(event => {
41
- // Enforce schema of usage event.
42
- const parsed = index.usageEventSchema.parse(event);
43
- return {
44
- Id: crypto.randomUUID(),
45
- MessageBody: JSON.stringify(parsed)
46
- };
47
- });
48
- const aws = getAws({
49
- accessKeyId,
50
- secretAccessKey,
51
- region
52
- });
53
- await aws.fetch(`https://sqs.${region}.amazonaws.com`, {
54
- headers: {
55
- "X-Amz-Target": "AmazonSQS.SendMessageBatch",
56
- "X-Amz-Date": new Date().toISOString(),
57
- "Content-Type": "application/x-amz-json-1.0"
58
- },
59
- body: JSON.stringify({
60
- QueueUrl: queueUrl,
61
- Entries: entries
62
- })
63
- });
64
- }
65
-
66
- const DEFAULT_CACHE_TTL_SECONDS = 60;
67
- async function authorizeWorker(authInput, serviceConfig) {
68
- let authData;
69
- try {
70
- authData = await extractAuthorizationData(authInput);
71
- } catch (e) {
72
- if (e instanceof Error && e.message === "KEY_CONFLICT") {
73
- return {
74
- authorized: false,
75
- status: 400,
76
- errorMessage: "Please pass either a client id or a secret key.",
77
- errorCode: "KEY_CONFLICT"
78
- };
79
- }
80
- return {
81
- authorized: false,
82
- status: 500,
83
- errorMessage: "Internal Server Error",
84
- errorCode: "INTERNAL_SERVER_ERROR"
85
- };
86
- }
87
- return await index.authorize(authData, serviceConfig, {
88
- get: async clientId => serviceConfig.kvStore.get(clientId),
89
- put: (clientId, apiKeyMeta) => serviceConfig.ctx.waitUntil(serviceConfig.kvStore.put(clientId, JSON.stringify({
90
- updatedAt: Date.now(),
91
- apiKeyMeta
92
- }), {
93
- expirationTtl: serviceConfig.cacheTtlSeconds && serviceConfig.cacheTtlSeconds >= DEFAULT_CACHE_TTL_SECONDS ? serviceConfig.cacheTtlSeconds : DEFAULT_CACHE_TTL_SECONDS
94
- })),
95
- cacheTtlSeconds: serviceConfig.cacheTtlSeconds ?? DEFAULT_CACHE_TTL_SECONDS
96
- });
97
- }
98
- async function extractAuthorizationData(authInput) {
99
- const requestUrl = new URL(authInput.req.url);
100
- const headers = authInput.req.headers;
101
- const secretKey = headers.get("x-secret-key");
102
-
103
- // prefer clientId that is explicitly passed in
104
- let clientId = authInput.clientId ?? null;
105
- if (!clientId) {
106
- // next preference is clientId from header
107
- clientId = headers.get("x-client-id");
108
- }
109
-
110
- // next preference is search param
111
- if (!clientId) {
112
- clientId = requestUrl.searchParams.get("clientId");
113
- }
114
- // bundle id from header is first preference
115
- let bundleId = headers.get("x-bundle-id");
116
-
117
- // next preference is search param
118
- if (!bundleId) {
119
- bundleId = requestUrl.searchParams.get("bundleId");
120
- }
121
- let origin = headers.get("origin");
122
- // if origin header is not available we'll fall back to referrer;
123
- if (!origin) {
124
- origin = headers.get("referer");
125
- }
126
- // if we have an origin at this point, normalize it
127
- if (origin) {
128
- try {
129
- origin = new URL(origin).host;
130
- } catch (e) {
131
- console.warn("failed to parse origin", origin, e);
132
- }
133
- }
134
-
135
- // handle if we a secret key is passed in the headers
136
- let secretKeyHash = null;
137
- if (secretKey) {
138
- // hash the secret key
139
- secretKeyHash = await hashSecretKey(secretKey);
140
- // derive the client id from the secret key hash
141
- const derivedClientId = deriveClientIdFromSecretKeyHash(secretKeyHash);
142
- // if we already have a client id passed in we need to make sure they match
143
- if (clientId && clientId !== derivedClientId) {
144
- throw new Error("KEY_CONFLICT");
145
- }
146
- // otherwise set the client id to the derived client id (client id based off of secret key)
147
- clientId = derivedClientId;
148
- }
149
- let jwt = null;
150
- if (headers.has("authorization")) {
151
- const authHeader = headers.get("authorization");
152
- if (authHeader) {
153
- const [type, token] = authHeader.split(" ");
154
- if (type?.toLowerCase() === "bearer" && !!token) {
155
- jwt = token;
156
- }
157
- }
158
- }
159
- return {
160
- jwt,
161
- hashedJWT: jwt ? await hashSecretKey(jwt) : null,
162
- secretKey,
163
- clientId,
164
- origin,
165
- bundleId,
166
- secretKeyHash,
167
- targetAddress: authInput.targetAddress
168
- };
169
- }
170
- async function hashSecretKey(secretKey) {
171
- return bufferToHex(await crypto.subtle.digest("SHA-256", new TextEncoder().encode(secretKey)));
172
- }
173
- function deriveClientIdFromSecretKeyHash(secretKeyHash) {
174
- return secretKeyHash.slice(0, 32);
175
- }
176
- function bufferToHex(buffer) {
177
- return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, "0")).join("");
178
- }
179
- async function logHttpRequest(_ref) {
180
- let {
181
- clientId,
182
- req,
183
- res,
184
- isAuthed,
185
- statusMessage,
186
- latencyMs
187
- } = _ref;
188
- try {
189
- const authorizationData = await extractAuthorizationData({
190
- req,
191
- clientId
192
- });
193
- const headers = req.headers;
194
- console.log(JSON.stringify({
195
- method: req.method,
196
- pathname: req.url,
197
- hasSecretKey: !!authorizationData.secretKey,
198
- hasClientId: !!authorizationData.clientId,
199
- hasJwt: !!authorizationData.jwt,
200
- clientId: authorizationData.clientId,
201
- isAuthed,
202
- status: res.status,
203
- sdkName: headers.get("x-sdk-name") ?? undefined,
204
- sdkVersion: headers.get("x-sdk-version") ?? undefined,
205
- platform: headers.get("x-sdk-platform") ?? undefined,
206
- os: headers.get("x-sdk-os") ?? undefined,
207
- latencyMs
208
- }));
209
- if (statusMessage) {
210
- console.log(`statusMessage=${statusMessage}`);
211
- }
212
- } catch (err) {}
213
- }
214
-
215
- exports.rateLimit = index.rateLimit;
216
- exports.usageLimit = index.usageLimit;
217
- exports.SERVICES = client.SERVICES;
218
- exports.SERVICE_DEFINITIONS = client.SERVICE_DEFINITIONS;
219
- exports.SERVICE_NAMES = client.SERVICE_NAMES;
220
- exports.getServiceByName = client.getServiceByName;
221
- exports.authorizeWorker = authorizeWorker;
222
- exports.deriveClientIdFromSecretKeyHash = deriveClientIdFromSecretKeyHash;
223
- exports.extractAuthorizationData = extractAuthorizationData;
224
- exports.hashSecretKey = hashSecretKey;
225
- exports.logHttpRequest = logHttpRequest;
226
- exports.publishUsageEvents = publishUsageEvents;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- if (process.env.NODE_ENV === "production") {
4
- module.exports = require("./thirdweb-dev-service-utils-cf-worker.cjs.prod.js");
5
- } else {
6
- module.exports = require("./thirdweb-dev-service-utils-cf-worker.cjs.dev.js");
7
- }