alchemy 0.69.1 → 0.70.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 (238) hide show
  1. package/bin/alchemy.js +3883 -3906
  2. package/bin/alchemy.ts +2 -0
  3. package/bin/commands/telemetry.ts +33 -0
  4. package/bin/services/execute-alchemy.ts +7 -0
  5. package/bin/trpc.ts +4 -9
  6. package/lib/alchemy.d.ts +7 -3
  7. package/lib/alchemy.d.ts.map +1 -1
  8. package/lib/alchemy.js +3 -15
  9. package/lib/alchemy.js.map +1 -1
  10. package/lib/apply.js +24 -9
  11. package/lib/apply.js.map +1 -1
  12. package/lib/aws/utils.d.ts +2 -1
  13. package/lib/aws/utils.d.ts.map +1 -1
  14. package/lib/aws/utils.js.map +1 -1
  15. package/lib/clickhouse/api/client.gen.d.ts +13 -0
  16. package/lib/clickhouse/api/client.gen.d.ts.map +1 -0
  17. package/lib/clickhouse/api/client.gen.js +7 -0
  18. package/lib/clickhouse/api/client.gen.js.map +1 -0
  19. package/lib/clickhouse/api/sdk.gen.d.ts +322 -0
  20. package/lib/clickhouse/api/sdk.gen.d.ts.map +1 -0
  21. package/lib/clickhouse/api/sdk.gen.js +683 -0
  22. package/lib/clickhouse/api/sdk.gen.js.map +1 -0
  23. package/lib/clickhouse/api/types.gen.d.ts +5030 -0
  24. package/lib/clickhouse/api/types.gen.d.ts.map +1 -0
  25. package/lib/clickhouse/api/types.gen.js +2 -0
  26. package/lib/clickhouse/api/types.gen.js.map +1 -0
  27. package/lib/clickhouse/api-key.d.ts +29 -0
  28. package/lib/clickhouse/api-key.d.ts.map +1 -0
  29. package/lib/clickhouse/api-key.js +83 -0
  30. package/lib/clickhouse/api-key.js.map +1 -0
  31. package/lib/clickhouse/api.d.ts +36 -0
  32. package/lib/clickhouse/api.d.ts.map +1 -0
  33. package/lib/clickhouse/api.js +48 -0
  34. package/lib/clickhouse/api.js.map +1 -0
  35. package/lib/clickhouse/index.d.ts +4 -0
  36. package/lib/clickhouse/index.d.ts.map +1 -0
  37. package/lib/clickhouse/index.js +4 -0
  38. package/lib/clickhouse/index.js.map +1 -0
  39. package/lib/clickhouse/organization.d.ts +16 -0
  40. package/lib/clickhouse/organization.d.ts.map +1 -0
  41. package/lib/clickhouse/organization.js +21 -0
  42. package/lib/clickhouse/organization.js.map +1 -0
  43. package/lib/clickhouse/service.d.ts +275 -0
  44. package/lib/clickhouse/service.d.ts.map +1 -0
  45. package/lib/clickhouse/service.js +274 -0
  46. package/lib/clickhouse/service.js.map +1 -0
  47. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  48. package/lib/cloudflare/account-api-token.js +1 -1
  49. package/lib/cloudflare/account-api-token.js.map +1 -1
  50. package/lib/cloudflare/api.d.ts.map +1 -1
  51. package/lib/cloudflare/api.js +2 -0
  52. package/lib/cloudflare/api.js.map +1 -1
  53. package/lib/cloudflare/bun-spa/bun-spa.d.ts +13 -0
  54. package/lib/cloudflare/bun-spa/bun-spa.d.ts.map +1 -0
  55. package/lib/cloudflare/bun-spa/bun-spa.js +95 -0
  56. package/lib/cloudflare/bun-spa/bun-spa.js.map +1 -0
  57. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  58. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  59. package/lib/cloudflare/container.d.ts +11 -1
  60. package/lib/cloudflare/container.d.ts.map +1 -1
  61. package/lib/cloudflare/container.js.map +1 -1
  62. package/lib/cloudflare/index.d.ts +1 -0
  63. package/lib/cloudflare/index.d.ts.map +1 -1
  64. package/lib/cloudflare/index.js +1 -0
  65. package/lib/cloudflare/index.js.map +1 -1
  66. package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
  67. package/lib/cloudflare/miniflare/build-worker-options.js +33 -6
  68. package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
  69. package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
  70. package/lib/cloudflare/miniflare/miniflare-controller.js +2 -0
  71. package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
  72. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts +1 -1
  73. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
  74. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +36 -49
  75. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  76. package/lib/cloudflare/permission-groups.d.ts +2 -3
  77. package/lib/cloudflare/permission-groups.d.ts.map +1 -1
  78. package/lib/cloudflare/permission-groups.js +10 -15
  79. package/lib/cloudflare/permission-groups.js.map +1 -1
  80. package/lib/cloudflare/redwood/redwood.d.ts +1 -1
  81. package/lib/cloudflare/redwood/redwood.js +1 -1
  82. package/lib/cloudflare/util/filter-env-bindings.d.ts +62 -0
  83. package/lib/cloudflare/util/filter-env-bindings.d.ts.map +1 -0
  84. package/lib/cloudflare/util/filter-env-bindings.js +81 -0
  85. package/lib/cloudflare/util/filter-env-bindings.js.map +1 -0
  86. package/lib/cloudflare/website.d.ts +2 -2
  87. package/lib/cloudflare/website.d.ts.map +1 -1
  88. package/lib/cloudflare/website.js +6 -18
  89. package/lib/cloudflare/website.js.map +1 -1
  90. package/lib/cloudflare/worker-metadata.d.ts +1 -0
  91. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  92. package/lib/cloudflare/worker-metadata.js +1 -0
  93. package/lib/cloudflare/worker-metadata.js.map +1 -1
  94. package/lib/cloudflare/worker.d.ts +11 -1
  95. package/lib/cloudflare/worker.d.ts.map +1 -1
  96. package/lib/cloudflare/worker.js.map +1 -1
  97. package/lib/cloudflare/wrangler.json.d.ts +8 -0
  98. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  99. package/lib/cloudflare/wrangler.json.js +3 -4
  100. package/lib/cloudflare/wrangler.json.js.map +1 -1
  101. package/lib/coinbase/client.d.ts +54 -0
  102. package/lib/coinbase/client.d.ts.map +1 -0
  103. package/lib/coinbase/client.js +89 -0
  104. package/lib/coinbase/client.js.map +1 -0
  105. package/lib/coinbase/evm-account.d.ts +118 -0
  106. package/lib/coinbase/evm-account.d.ts.map +1 -0
  107. package/lib/coinbase/evm-account.js +198 -0
  108. package/lib/coinbase/evm-account.js.map +1 -0
  109. package/lib/coinbase/evm-smart-account.d.ts +122 -0
  110. package/lib/coinbase/evm-smart-account.d.ts.map +1 -0
  111. package/lib/coinbase/evm-smart-account.js +213 -0
  112. package/lib/coinbase/evm-smart-account.js.map +1 -0
  113. package/lib/coinbase/faucet.d.ts +11 -0
  114. package/lib/coinbase/faucet.d.ts.map +1 -0
  115. package/lib/coinbase/faucet.js +146 -0
  116. package/lib/coinbase/faucet.js.map +1 -0
  117. package/lib/coinbase/index.d.ts +4 -0
  118. package/lib/coinbase/index.d.ts.map +1 -0
  119. package/lib/coinbase/index.js +4 -0
  120. package/lib/coinbase/index.js.map +1 -0
  121. package/lib/coinbase/types.d.ts +28 -0
  122. package/lib/coinbase/types.d.ts.map +1 -0
  123. package/lib/coinbase/types.js +4 -0
  124. package/lib/{util/telemetry → coinbase}/types.js.map +1 -1
  125. package/lib/coinbase/utils.d.ts +13 -0
  126. package/lib/coinbase/utils.d.ts.map +1 -0
  127. package/lib/coinbase/utils.js +17 -0
  128. package/lib/coinbase/utils.js.map +1 -0
  129. package/lib/neon/api/types.gen.d.ts +7 -2
  130. package/lib/neon/api/types.gen.d.ts.map +1 -1
  131. package/lib/planetscale/api/types.gen.d.ts +20 -4
  132. package/lib/planetscale/api/types.gen.d.ts.map +1 -1
  133. package/lib/planetscale/api.d.ts.map +1 -1
  134. package/lib/planetscale/api.js +1 -0
  135. package/lib/planetscale/api.js.map +1 -1
  136. package/lib/planetscale/password.d.ts.map +1 -1
  137. package/lib/planetscale/password.js +1 -13
  138. package/lib/planetscale/password.js.map +1 -1
  139. package/lib/resource.d.ts.map +1 -1
  140. package/lib/resource.js +7 -3
  141. package/lib/resource.js.map +1 -1
  142. package/lib/scope.d.ts +9 -9
  143. package/lib/scope.d.ts.map +1 -1
  144. package/lib/scope.js +18 -37
  145. package/lib/scope.js.map +1 -1
  146. package/lib/state/instrumented-state-store.d.ts +1 -3
  147. package/lib/state/instrumented-state-store.d.ts.map +1 -1
  148. package/lib/state/instrumented-state-store.js +19 -21
  149. package/lib/state/instrumented-state-store.js.map +1 -1
  150. package/lib/test/bun.d.ts.map +1 -1
  151. package/lib/test/bun.js +1 -2
  152. package/lib/test/bun.js.map +1 -1
  153. package/lib/test/vitest.d.ts.map +1 -1
  154. package/lib/test/vitest.js +1 -2
  155. package/lib/test/vitest.js.map +1 -1
  156. package/lib/util/diff.d.ts +5 -0
  157. package/lib/util/diff.d.ts.map +1 -0
  158. package/lib/util/diff.js +14 -0
  159. package/lib/util/diff.js.map +1 -0
  160. package/lib/util/idempotent-spawn.js +1 -1
  161. package/lib/util/idempotent-spawn.js.map +1 -1
  162. package/lib/util/telemetry.d.ts +53 -0
  163. package/lib/util/telemetry.d.ts.map +1 -0
  164. package/lib/util/telemetry.js +215 -0
  165. package/lib/util/telemetry.js.map +1 -0
  166. package/package.json +19 -1
  167. package/src/alchemy.ts +10 -20
  168. package/src/apply.ts +29 -12
  169. package/src/aws/utils.ts +2 -1
  170. package/src/clickhouse/api/client.gen.ts +28 -0
  171. package/src/clickhouse/api/sdk.gen.ts +1286 -0
  172. package/src/clickhouse/api/types.gen.ts +5898 -0
  173. package/src/clickhouse/api-key.ts +136 -0
  174. package/src/clickhouse/api.ts +84 -0
  175. package/src/clickhouse/index.ts +3 -0
  176. package/src/clickhouse/organization.ts +31 -0
  177. package/src/clickhouse/service.ts +668 -0
  178. package/src/cloudflare/account-api-token.ts +1 -4
  179. package/src/cloudflare/api.ts +2 -0
  180. package/src/cloudflare/bun-spa/bun-spa.ts +136 -0
  181. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  182. package/src/cloudflare/container.ts +20 -1
  183. package/src/cloudflare/index.ts +1 -0
  184. package/src/cloudflare/miniflare/build-worker-options.ts +38 -8
  185. package/src/cloudflare/miniflare/miniflare-controller.ts +2 -0
  186. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +41 -58
  187. package/src/cloudflare/permission-groups.ts +21 -49
  188. package/src/cloudflare/redwood/redwood.ts +1 -1
  189. package/src/cloudflare/util/filter-env-bindings.ts +96 -0
  190. package/src/cloudflare/website.ts +11 -24
  191. package/src/cloudflare/worker-metadata.ts +2 -0
  192. package/src/cloudflare/worker.ts +12 -1
  193. package/src/cloudflare/wrangler.json.ts +12 -8
  194. package/src/coinbase/client.ts +146 -0
  195. package/src/coinbase/evm-account.ts +317 -0
  196. package/src/coinbase/evm-smart-account.ts +339 -0
  197. package/src/coinbase/faucet.ts +173 -0
  198. package/src/coinbase/index.ts +3 -0
  199. package/src/coinbase/types.ts +33 -0
  200. package/src/coinbase/utils.ts +19 -0
  201. package/src/neon/api/types.gen.ts +13 -1
  202. package/src/planetscale/api/types.gen.ts +22 -2
  203. package/src/planetscale/api.ts +1 -0
  204. package/src/planetscale/password.ts +1 -14
  205. package/src/resource.ts +11 -4
  206. package/src/scope.ts +29 -45
  207. package/src/state/instrumented-state-store.ts +27 -26
  208. package/src/test/bun.ts +1 -2
  209. package/src/test/vitest.ts +1 -2
  210. package/src/util/diff.ts +14 -0
  211. package/src/util/idempotent-spawn.ts +1 -1
  212. package/src/util/telemetry.ts +328 -0
  213. package/templates/tanstack-start/package.json +2 -2
  214. package/workers/tunnel-proxy.js +1 -1
  215. package/lib/util/telemetry/client.d.ts +0 -31
  216. package/lib/util/telemetry/client.d.ts.map +0 -1
  217. package/lib/util/telemetry/client.js +0 -121
  218. package/lib/util/telemetry/client.js.map +0 -1
  219. package/lib/util/telemetry/constants.d.ts +0 -5
  220. package/lib/util/telemetry/constants.d.ts.map +0 -1
  221. package/lib/util/telemetry/constants.js +0 -8
  222. package/lib/util/telemetry/constants.js.map +0 -1
  223. package/lib/util/telemetry/context.d.ts +0 -15
  224. package/lib/util/telemetry/context.d.ts.map +0 -1
  225. package/lib/util/telemetry/context.js +0 -128
  226. package/lib/util/telemetry/context.js.map +0 -1
  227. package/lib/util/telemetry/index.d.ts +0 -3
  228. package/lib/util/telemetry/index.d.ts.map +0 -1
  229. package/lib/util/telemetry/index.js +0 -3
  230. package/lib/util/telemetry/index.js.map +0 -1
  231. package/lib/util/telemetry/types.d.ts +0 -68
  232. package/lib/util/telemetry/types.d.ts.map +0 -1
  233. package/lib/util/telemetry/types.js +0 -1
  234. package/src/util/telemetry/client.ts +0 -156
  235. package/src/util/telemetry/constants.ts +0 -13
  236. package/src/util/telemetry/context.ts +0 -154
  237. package/src/util/telemetry/index.ts +0 -2
  238. package/src/util/telemetry/types.ts +0 -105
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns an array of keys in `b` that are different from `a`.
3
+ */
4
+ export declare const diff: <T>(a: T, b: NoInfer<T>) => (keyof T)[];
5
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/util/diff.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,gBAQ1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { isDeepStrictEqual } from "node:util";
2
+ /**
3
+ * Returns an array of keys in `b` that are different from `a`.
4
+ */
5
+ export const diff = (a, b) => {
6
+ const keys = [];
7
+ for (const key in a) {
8
+ if (!isDeepStrictEqual(a[key], b[key])) {
9
+ keys.push(key);
10
+ }
11
+ }
12
+ return keys;
13
+ };
14
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/util/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,CAAI,EAAE,CAAa,EAAE,EAAE;IAC7C,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -66,7 +66,7 @@ export async function idempotentSpawn({ cmd, cwd, env, stateFile = "state.json",
66
66
  const child = spawn(cmd, {
67
67
  shell: true,
68
68
  cwd,
69
- stdio: ["ignore", out.fd, out.fd], // stdout/stderr -> files (OS-level)
69
+ stdio: ["inherit", out.fd, out.fd], // stdout/stderr -> files (OS-level)
70
70
  env,
71
71
  detached: false,
72
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"idempotent-spawn.js","sourceRoot":"","sources":["../../src/util/idempotent-spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idempotent-spawn.js","sourceRoot":"","sources":["../../src/util/idempotent-spawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { Phase } from "../alchemy.ts";
2
+ export declare const TELEMETRY_DISABLED: boolean;
3
+ export declare const TELEMETRY_API_URL: string;
4
+ export declare const SUPPRESS_TELEMETRY_ERRORS: boolean;
5
+ export declare const getGlobalTelemetryDisabled: () => Promise<boolean>;
6
+ export declare function setGlobalTelemetryDisabled(): Promise<void>;
7
+ export declare function setGlobalTelemetryEnabled(): Promise<void>;
8
+ export declare const collectData: () => Promise<GenericTelemetryData>;
9
+ export type GenericTelemetryData = {
10
+ userId: string;
11
+ sessionId: string;
12
+ platform: string;
13
+ osVersion: string;
14
+ arch: string;
15
+ cpus: number;
16
+ memory: number;
17
+ rootCommitHash: string;
18
+ gitOriginUrl: string;
19
+ gitBranchHash: string;
20
+ runtime: string;
21
+ runtimeVersion: string;
22
+ ciProvider: string;
23
+ isCI: boolean;
24
+ alchemyVersion: string;
25
+ };
26
+ export type ErrorData = {
27
+ errorTag: string;
28
+ errorMessage: string;
29
+ errorStack: string;
30
+ };
31
+ export type CliTelemetryData = {
32
+ command: string;
33
+ event: "cli.start" | "cli.success" | "cli.error";
34
+ };
35
+ export type ResourceTelemetryData = {
36
+ phase: Phase;
37
+ event: "resource.start" | "resource.success" | "resource.error" | "resource.skip" | "resource.read";
38
+ resource: string;
39
+ status: "creating" | "created" | "updating" | "updated" | "deleting" | "deleted" | "unknown";
40
+ duration: number;
41
+ replaced: boolean;
42
+ };
43
+ export type StateStoreTelemetryData = {
44
+ event: "statestore.init" | "statestore.deinit" | "statestore.list" | "statestore.count" | "statestore.get" | "statestore.getBatch" | "statestore.all" | "statestore.set" | "statestore.delete";
45
+ stateStore: string;
46
+ duration: number;
47
+ };
48
+ export type AlchemyTelemetryData = {
49
+ event: "alchemy.start" | "alchemy.success" | "alchemy.error";
50
+ duration: number;
51
+ };
52
+ export declare function createAndSendEvent(data: CliTelemetryData | ResourceTelemetryData | StateStoreTelemetryData | AlchemyTelemetryData, error?: Error): Promise<void>;
53
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/util/telemetry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAa3C,eAAO,MAAM,kBAAkB,SACyC,CAAC;AAEzE,eAAO,MAAM,iBAAiB,QAC4C,CAAC;AAC3E,eAAO,MAAM,yBAAyB,SACW,CAAC;AAElD,eAAO,MAAM,0BAA0B,wBAMrC,CAAC;AAEH,wBAAsB,0BAA0B,kBAG/C;AAED,wBAAsB,yBAAyB,kBAE9C;AAkHD,eAAO,MAAM,WAAW,qCAiCtB,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EACD,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EACF,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EACD,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAUF,wBAAsB,kBAAkB,CACtC,IAAI,EACA,gBAAgB,GAChB,qBAAqB,GACrB,uBAAuB,GACvB,oBAAoB,EACxB,KAAK,CAAC,EAAE,KAAK,iBA0Bd"}
@@ -0,0 +1,215 @@
1
+ import envPaths from "env-paths";
2
+ import { exec } from "node:child_process";
3
+ import fs from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "pathe";
6
+ import pkg from "../../package.json" with { type: "json" };
7
+ import { Scope } from "../scope.js";
8
+ import { logger } from "./logger.js";
9
+ import { memoize } from "./memoize.js";
10
+ const ALCHEMY_DIR = path.join(os.homedir(), ".alchemy");
11
+ const ID_PATH = path.join(ALCHEMY_DIR, "id");
12
+ const ID_PATH_LEGACY = path.join(envPaths("alchemy", { suffix: "" }).config, "id");
13
+ const DISABLED_PATH = path.join(ALCHEMY_DIR, "telemetry-disabled");
14
+ export const TELEMETRY_DISABLED = !!process.env.ALCHEMY_TELEMETRY_DISABLED || !!process.env.DO_NOT_TRACK;
15
+ export const TELEMETRY_API_URL = process.env.ALCHEMY_TELEMETRY_API_URL ?? "https://telemetry.alchemy.run";
16
+ export const SUPPRESS_TELEMETRY_ERRORS = !!process.env.ALCHEMY_TELEMETRY_SUPPRESS_ERRORS;
17
+ export const getGlobalTelemetryDisabled = memoize(async () => {
18
+ const disabled = await fs
19
+ .readFile(DISABLED_PATH, "utf-8")
20
+ .then((data) => data.trim() === "true")
21
+ .catch(() => false);
22
+ return disabled;
23
+ });
24
+ export async function setGlobalTelemetryDisabled() {
25
+ await fs.mkdir(ALCHEMY_DIR, { recursive: true });
26
+ await fs.writeFile(DISABLED_PATH, "true");
27
+ }
28
+ export async function setGlobalTelemetryEnabled() {
29
+ await fs.rm(DISABLED_PATH, { force: true });
30
+ }
31
+ async function getOrCreateUserId() {
32
+ async function readUserId(path) {
33
+ try {
34
+ return (await fs.readFile(path, "utf-8")).trim();
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ const id = await readUserId(ID_PATH);
41
+ if (id) {
42
+ return id;
43
+ }
44
+ const legacyId = await readUserId(ID_PATH_LEGACY);
45
+ try {
46
+ const id = legacyId ?? crypto.randomUUID();
47
+ await fs.mkdir(ALCHEMY_DIR, { recursive: true });
48
+ await fs.writeFile(ID_PATH, id);
49
+ if (!legacyId) {
50
+ console.warn([
51
+ "Attention: To help improve Alchemy, we collect anonymous usage, performance, and error data.",
52
+ "You can opt out by setting the ALCHEMY_TELEMETRY_DISABLED or DO_NOT_TRACK environment variable to a truthy value.",
53
+ ].join("\n"));
54
+ }
55
+ return id;
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ async function getRootCommitHash() {
62
+ return new Promise((resolve) => {
63
+ const command = process.platform === "win32"
64
+ ? `git rev-list --max-parents=0 HEAD | ForEach-Object { if (-not (git cat-file -p $_ | Select-String "^parent ")) { $_ } }`
65
+ : `git rev-list --max-parents=0 HEAD | xargs -r -I{} sh -c 'git cat-file -p {} | grep -q "^parent " || echo {}'`;
66
+ exec(command, (err, stdout) => {
67
+ if (err) {
68
+ resolve(null);
69
+ return;
70
+ }
71
+ resolve(stdout.trim());
72
+ });
73
+ });
74
+ }
75
+ async function getGitOriginUrlHash() {
76
+ return new Promise((resolve) => {
77
+ exec("git config --get remote.origin.url", (err, stdout) => {
78
+ if (err) {
79
+ resolve(null);
80
+ return;
81
+ }
82
+ resolve(hashString(stdout.trim()));
83
+ });
84
+ });
85
+ }
86
+ async function getBranchName() {
87
+ return new Promise((resolve) => {
88
+ exec("git rev-parse --abbrev-ref HEAD", (err, stdout) => {
89
+ if (err) {
90
+ resolve(null);
91
+ return;
92
+ }
93
+ resolve(stdout.trim());
94
+ });
95
+ });
96
+ }
97
+ function getRuntime() {
98
+ if (globalThis.Bun)
99
+ return { name: "bun", version: Bun.version };
100
+ // @ts-expect-error
101
+ if (globalThis.Deno)
102
+ // @ts-expect-error
103
+ return { name: "deno", version: Deno.version?.deno ?? null };
104
+ // @ts-expect-error
105
+ if (globalThis.EdgeRuntime)
106
+ return { name: "workerd", version: null };
107
+ if (globalThis.process?.versions?.node)
108
+ return { name: "node", version: process.versions.node };
109
+ return { name: null, version: null };
110
+ }
111
+ const PROVIDERS = [
112
+ { env: "GITHUB_ACTIONS", provider: "GitHub Actions", isCI: true },
113
+ { env: "GITLAB_CI", provider: "GitLab CI", isCI: true },
114
+ { env: "CIRCLECI", provider: "CircleCI", isCI: true },
115
+ { env: "JENKINS_URL", provider: "Jenkins", isCI: true },
116
+ { env: "TRAVIS", provider: "Travis CI", isCI: true },
117
+ { env: "NOW_BUILDER", provider: "Vercel", isCI: true },
118
+ { env: "VERCEL", provider: "Vercel", isCI: false },
119
+ ];
120
+ function getEnvironment() {
121
+ for (const provider of PROVIDERS) {
122
+ if (process.env[provider.env]) {
123
+ return {
124
+ provider: provider.provider,
125
+ isCI: provider.isCI,
126
+ };
127
+ }
128
+ }
129
+ return {
130
+ provider: null,
131
+ isCI: !!process.env.CI,
132
+ };
133
+ }
134
+ export const collectData = memoize(async () => {
135
+ const [userId, rootCommitHash, gitOriginUrlHash, branchHash, runtime, environment,] = await Promise.all([
136
+ getOrCreateUserId(),
137
+ getRootCommitHash(),
138
+ getGitOriginUrlHash(),
139
+ getBranchName().then(hashString),
140
+ getRuntime(),
141
+ getEnvironment(),
142
+ ]);
143
+ return {
144
+ userId: userId ?? "",
145
+ sessionId: crypto.randomUUID(),
146
+ platform: os.platform(),
147
+ osVersion: os.release(),
148
+ arch: os.arch(),
149
+ cpus: os.cpus().length,
150
+ memory: Math.round(os.totalmem() / 1024 / 1024),
151
+ rootCommitHash: rootCommitHash ?? "",
152
+ gitOriginUrl: gitOriginUrlHash ?? "",
153
+ gitBranchHash: branchHash ?? "",
154
+ runtime: runtime.name ?? "",
155
+ runtimeVersion: runtime.version ?? "",
156
+ ciProvider: environment.provider ?? "",
157
+ isCI: environment.isCI,
158
+ alchemyVersion: pkg.version,
159
+ };
160
+ });
161
+ async function isTelemetryDisabled() {
162
+ return (Scope.getScope()?.noTrack ||
163
+ TELEMETRY_DISABLED ||
164
+ (await getGlobalTelemetryDisabled()));
165
+ }
166
+ export async function createAndSendEvent(data, error) {
167
+ if (await isTelemetryDisabled()) {
168
+ return;
169
+ }
170
+ try {
171
+ const eventData = {
172
+ ...data,
173
+ ...("duration" in data
174
+ ? { duration: Math.round(data.duration * 1000) }
175
+ : {}),
176
+ ...(await collectData()),
177
+ ...serializeError(error),
178
+ };
179
+ await fetch(TELEMETRY_API_URL, {
180
+ method: "POST",
181
+ headers: {
182
+ "Content-Type": "application/json",
183
+ },
184
+ body: JSON.stringify(eventData),
185
+ });
186
+ }
187
+ catch (error) {
188
+ if (!SUPPRESS_TELEMETRY_ERRORS) {
189
+ logger.warn("Failed to send telemetry event:", error);
190
+ }
191
+ }
192
+ }
193
+ async function hashString(input) {
194
+ if (input == null) {
195
+ return null;
196
+ }
197
+ const data = new TextEncoder().encode(input);
198
+ const hashBuffer = await crypto.subtle.digest("SHA-256", data);
199
+ return Array.from(new Uint8Array(hashBuffer), (byte) => byte.toString(16).padStart(2, "0")).join("");
200
+ }
201
+ function serializeError(error) {
202
+ if (error instanceof Error) {
203
+ return {
204
+ errorTag: error.name ?? "",
205
+ errorMessage: error.message?.replaceAll(os.homedir(), "~") ?? "", // redact home directory
206
+ errorStack: error.stack?.replaceAll(os.homedir(), "~") ?? "",
207
+ };
208
+ }
209
+ return {
210
+ errorTag: "",
211
+ errorMessage: "",
212
+ errorStack: "",
213
+ };
214
+ }
215
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/util/telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.69.1",
3
+ "version": "0.70.1",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -40,6 +40,14 @@
40
40
  "bun": "./src/llms.ts",
41
41
  "import": "./lib/llms.js"
42
42
  },
43
+ "./coinbase": {
44
+ "bun": "./src/coinbase/index.ts",
45
+ "import": "./lib/coinbase/index.js"
46
+ },
47
+ "./coinbase/faucet": {
48
+ "bun": "./src/coinbase/faucet.ts",
49
+ "import": "./lib/coinbase/faucet.js"
50
+ },
43
51
  "./aws": {
44
52
  "bun": "./src/aws/index.ts",
45
53
  "import": "./lib/aws/index.js"
@@ -52,6 +60,10 @@
52
60
  "bun": "./src/aws/oidc/index.ts",
53
61
  "import": "./lib/aws/oidc/index.js"
54
62
  },
63
+ "./clickhouse": {
64
+ "bun": "./src/clickhouse/index.ts",
65
+ "import": "./lib/clickhouse/index.js"
66
+ },
55
67
  "./cloudflare": {
56
68
  "bun": "./src/cloudflare/index.ts",
57
69
  "import": "./lib/cloudflare/index.js"
@@ -150,6 +162,7 @@
150
162
  "@cloudflare/unenv-preset": "^2.6.3",
151
163
  "@iarna/toml": "^2.2.5",
152
164
  "@smithy/node-config-provider": "^4.0.0",
165
+ "@smithy/types": "^4.6.0",
153
166
  "aws4fetch": "^1.0.20",
154
167
  "env-paths": "^3.0.0",
155
168
  "esbuild": "^0.25.1",
@@ -175,6 +188,7 @@
175
188
  "peerDependencies": {
176
189
  "@astrojs/cloudflare": "^12.6.4",
177
190
  "@aws-sdk/client-dynamodb": "^3.0.0",
191
+ "@coinbase/cdp-sdk": "^0.10.0",
178
192
  "@aws-sdk/client-iam": "^3.0.0",
179
193
  "@aws-sdk/client-lambda": "^3.0.0",
180
194
  "@aws-sdk/client-s3": "^3.0.0",
@@ -196,6 +210,9 @@
196
210
  "@astrojs/cloudflare": {
197
211
  "optional": true
198
212
  },
213
+ "@coinbase/cdp-sdk": {
214
+ "optional": true
215
+ },
199
216
  "@aws-sdk/client-dynamodb": {
200
217
  "optional": true
201
218
  },
@@ -264,6 +281,7 @@
264
281
  "@cloudflare/puppeteer": "^1.0.2",
265
282
  "@cloudflare/vite-plugin": "^1.11.6",
266
283
  "@cloudflare/workers-types": "^4.20250805.0",
284
+ "@coinbase/cdp-sdk": "^1.38.2",
267
285
  "@libsql/client": "^0.15.12",
268
286
  "@octokit/rest": "^21.1.1",
269
287
  "@sentry/cloudflare": "^9.43.0",
package/src/alchemy.ts CHANGED
@@ -17,7 +17,6 @@ import { secret } from "./secret.ts";
17
17
  import type { StateStoreType } from "./state.ts";
18
18
  import type { LoggerApi } from "./util/cli.ts";
19
19
  import { ALCHEMY_ROOT } from "./util/root-dir.ts";
20
- import { TelemetryClient } from "./util/telemetry/client.ts";
21
20
 
22
21
  /**
23
22
  * Type alias for semantic highlighting of `alchemy` as a type keyword
@@ -138,6 +137,7 @@ async function _alchemy(
138
137
  password: process.env.ALCHEMY_PASSWORD,
139
138
  adopt: cliArgs.includes("--adopt"),
140
139
  rootDir: path.resolve(parseOption("--root-dir", ALCHEMY_ROOT)),
140
+ profile: parseOption("--profile"),
141
141
  } satisfies Partial<AlchemyOptions>;
142
142
  const mergedOptions = {
143
143
  ...cliOptions,
@@ -162,20 +162,13 @@ If this is a mistake, you can disable this check by setting the ALCHEMY_CI_STATE
162
162
  }
163
163
 
164
164
  const phase = mergedOptions?.phase ?? "up";
165
- const telemetryClient =
166
- mergedOptions?.parent?.telemetryClient ??
167
- TelemetryClient.create({
168
- phase,
169
- enabled: mergedOptions?.telemetry ?? true,
170
- quiet: mergedOptions?.quiet ?? false,
171
- });
172
165
  const root = new Scope({
173
166
  ...mergedOptions,
174
167
  parent: undefined,
175
168
  scopeName: appName,
176
169
  phase,
177
170
  password: mergedOptions?.password ?? process.env.ALCHEMY_PASSWORD,
178
- telemetryClient,
171
+ noTrack: mergedOptions?.noTrack ?? false,
179
172
  isSelected: app === undefined ? undefined : app === appName,
180
173
  });
181
174
  onExit((code) => {
@@ -280,12 +273,12 @@ export interface AlchemyOptions {
280
273
  */
281
274
  password?: string;
282
275
  /**
283
- * Whether to send anonymous telemetry data to the Alchemy team.
276
+ * Whether to stop sending anonymous telemetry data to the Alchemy team.
284
277
  * You can also opt out by setting the `DO_NOT_TRACK` or `ALCHEMY_TELEMETRY_DISABLED` environment variables to a truthy value.
285
278
  *
286
- * @default true
279
+ * @default false
287
280
  */
288
- telemetry?: boolean;
281
+ noTrack?: boolean;
289
282
  /**
290
283
  * A custom logger instance to use for this scope.
291
284
  * If not provided, the default fallback logger will be used.
@@ -303,6 +296,10 @@ export interface AlchemyOptions {
303
296
  * @default process.cwd()
304
297
  */
305
298
  rootDir?: string;
299
+ /**
300
+ * The Alchemy profile to use for authoriziing requests.
301
+ */
302
+ profile?: string;
306
303
  /**
307
304
  * Whether this is the application that was selected with `--app`
308
305
  *
@@ -353,18 +350,11 @@ async function run<T>(
353
350
  RunOptions,
354
351
  (this: Scope, scope: Scope) => Promise<T>,
355
352
  ]);
356
- const telemetryClient =
357
- options?.parent?.telemetryClient ??
358
- TelemetryClient.create({
359
- phase: options?.phase ?? "up",
360
- enabled: options?.telemetry ?? true,
361
- quiet: options?.quiet ?? false,
362
- });
363
353
  const _scope = new Scope({
364
354
  ...options,
365
355
  parent: options?.parent,
366
356
  scopeName: id,
367
- telemetryClient,
357
+ noTrack: options?.noTrack ?? false,
368
358
  });
369
359
  let noop = options?.noop ?? false;
370
360
  try {
package/src/apply.ts CHANGED
@@ -19,7 +19,7 @@ import { serialize } from "./serde.ts";
19
19
  import type { State } from "./state.ts";
20
20
  import { formatFQN } from "./util/cli.ts";
21
21
  import { logger } from "./util/logger.ts";
22
- import type { Telemetry } from "./util/telemetry/index.ts";
22
+ import { createAndSendEvent } from "./util/telemetry.ts";
23
23
 
24
24
  export interface ApplyOptions {
25
25
  quiet?: boolean;
@@ -83,9 +83,13 @@ async function _apply<Out extends ResourceAttributes>(
83
83
  // we are running in a monorepo and are not the selected app, so we need to wait for the process to be consistent
84
84
  state = await waitForConsistentState();
85
85
  }
86
- scope.telemetryClient.record({
86
+ createAndSendEvent({
87
87
  event: "resource.read",
88
+ phase: scope.phase,
89
+ duration: performance.now() - start,
90
+ status: state.status,
88
91
  resource: resource[ResourceKind],
92
+ replaced: false,
89
93
  });
90
94
  return state.output as Awaited<Out> & Resource;
91
95
 
@@ -179,10 +183,13 @@ async function _apply<Out extends ResourceAttributes>(
179
183
  status: "success",
180
184
  });
181
185
  }
182
- scope.telemetryClient.record({
186
+ createAndSendEvent({
183
187
  event: "resource.skip",
184
188
  resource: resource[ResourceKind],
185
189
  status: state.status,
190
+ phase: scope.phase,
191
+ duration: performance.now() - start,
192
+ replaced: false,
186
193
  });
187
194
  return state.output as Awaited<Out> & Resource;
188
195
  }
@@ -202,10 +209,13 @@ async function _apply<Out extends ResourceAttributes>(
202
209
  });
203
210
  }
204
211
 
205
- scope.telemetryClient.record({
212
+ createAndSendEvent({
206
213
  event: "resource.start",
207
214
  resource: resource[ResourceKind],
208
215
  status: state.status,
216
+ phase: scope.phase,
217
+ duration: performance.now() - start,
218
+ replaced: false,
209
219
  });
210
220
 
211
221
  await scope.state.set(resource[ResourceID], state);
@@ -326,11 +336,12 @@ async function _apply<Out extends ResourceAttributes>(
326
336
  }
327
337
 
328
338
  const status = phase === "create" ? "created" : "updated";
329
- scope.telemetryClient.record({
339
+ createAndSendEvent({
330
340
  event: "resource.success",
331
341
  resource: resource[ResourceKind],
332
342
  status,
333
- elapsed: performance.now() - start,
343
+ phase: scope.phase,
344
+ duration: performance.now() - start,
334
345
  replaced: isReplaced,
335
346
  });
336
347
 
@@ -347,12 +358,18 @@ async function _apply<Out extends ResourceAttributes>(
347
358
  });
348
359
  return output as Awaited<Out> & Resource;
349
360
  } catch (error) {
350
- scope.telemetryClient.record({
351
- event: "resource.error",
352
- resource: resource[ResourceKind],
353
- error: error as Telemetry.ErrorInput,
354
- elapsed: performance.now() - start,
355
- });
361
+ let errorToSend = error instanceof Error ? error : new Error(String(error));
362
+ createAndSendEvent(
363
+ {
364
+ event: "resource.error",
365
+ resource: resource[ResourceKind],
366
+ duration: performance.now() - start,
367
+ phase: scope.phase,
368
+ status: "unknown",
369
+ replaced: false,
370
+ },
371
+ errorToSend,
372
+ );
356
373
  scope.fail();
357
374
  throw error;
358
375
  }
package/src/aws/utils.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { fromNodeProviderChain } from "@aws-sdk/credential-providers";
2
2
  import { loadConfig } from "@smithy/node-config-provider";
3
+ import type { Provider } from "@smithy/types";
3
4
  import { AwsClient } from "aws4fetch";
4
5
  import { flattenParams } from "../util/params.ts";
5
6
 
6
7
  /**
7
8
  * Get AWS region from configuration
8
9
  */
9
- export const getRegion = loadConfig({
10
+ export const getRegion: Provider<string> = loadConfig({
10
11
  environmentVariableSelector: (env: any) =>
11
12
  env.AWS_REGION || env.AWS_DEFAULT_REGION,
12
13
  configFileSelector: (profile: any) => profile.region,