alchemy 0.69.1 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/bin/alchemy.js +3797 -3857
  2. package/bin/trpc.ts +4 -9
  3. package/lib/alchemy.d.ts +3 -3
  4. package/lib/alchemy.d.ts.map +1 -1
  5. package/lib/alchemy.js +2 -15
  6. package/lib/alchemy.js.map +1 -1
  7. package/lib/apply.js +24 -9
  8. package/lib/apply.js.map +1 -1
  9. package/lib/aws/utils.d.ts +2 -1
  10. package/lib/aws/utils.d.ts.map +1 -1
  11. package/lib/aws/utils.js.map +1 -1
  12. package/lib/clickhouse/api/client.gen.d.ts +13 -0
  13. package/lib/clickhouse/api/client.gen.d.ts.map +1 -0
  14. package/lib/clickhouse/api/client.gen.js +7 -0
  15. package/lib/clickhouse/api/client.gen.js.map +1 -0
  16. package/lib/clickhouse/api/sdk.gen.d.ts +322 -0
  17. package/lib/clickhouse/api/sdk.gen.d.ts.map +1 -0
  18. package/lib/clickhouse/api/sdk.gen.js +683 -0
  19. package/lib/clickhouse/api/sdk.gen.js.map +1 -0
  20. package/lib/clickhouse/api/types.gen.d.ts +5030 -0
  21. package/lib/clickhouse/api/types.gen.d.ts.map +1 -0
  22. package/lib/clickhouse/api/types.gen.js +2 -0
  23. package/lib/clickhouse/api/types.gen.js.map +1 -0
  24. package/lib/clickhouse/api-key.d.ts +29 -0
  25. package/lib/clickhouse/api-key.d.ts.map +1 -0
  26. package/lib/clickhouse/api-key.js +83 -0
  27. package/lib/clickhouse/api-key.js.map +1 -0
  28. package/lib/clickhouse/api.d.ts +36 -0
  29. package/lib/clickhouse/api.d.ts.map +1 -0
  30. package/lib/clickhouse/api.js +48 -0
  31. package/lib/clickhouse/api.js.map +1 -0
  32. package/lib/clickhouse/index.d.ts +4 -0
  33. package/lib/clickhouse/index.d.ts.map +1 -0
  34. package/lib/clickhouse/index.js +4 -0
  35. package/lib/clickhouse/index.js.map +1 -0
  36. package/lib/clickhouse/organization.d.ts +16 -0
  37. package/lib/clickhouse/organization.d.ts.map +1 -0
  38. package/lib/clickhouse/organization.js +21 -0
  39. package/lib/clickhouse/organization.js.map +1 -0
  40. package/lib/clickhouse/service.d.ts +275 -0
  41. package/lib/clickhouse/service.d.ts.map +1 -0
  42. package/lib/clickhouse/service.js +274 -0
  43. package/lib/clickhouse/service.js.map +1 -0
  44. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  45. package/lib/cloudflare/account-api-token.js +1 -1
  46. package/lib/cloudflare/account-api-token.js.map +1 -1
  47. package/lib/cloudflare/bun-spa/bun-spa.d.ts +15 -0
  48. package/lib/cloudflare/bun-spa/bun-spa.d.ts.map +1 -0
  49. package/lib/cloudflare/bun-spa/bun-spa.js +95 -0
  50. package/lib/cloudflare/bun-spa/bun-spa.js.map +1 -0
  51. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  52. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  53. package/lib/cloudflare/container.d.ts +11 -1
  54. package/lib/cloudflare/container.d.ts.map +1 -1
  55. package/lib/cloudflare/container.js.map +1 -1
  56. package/lib/cloudflare/index.d.ts +1 -0
  57. package/lib/cloudflare/index.d.ts.map +1 -1
  58. package/lib/cloudflare/index.js +1 -0
  59. package/lib/cloudflare/index.js.map +1 -1
  60. package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
  61. package/lib/cloudflare/miniflare/build-worker-options.js +3 -3
  62. package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
  63. package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
  64. package/lib/cloudflare/miniflare/miniflare-controller.js +2 -0
  65. package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
  66. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts +1 -1
  67. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
  68. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +36 -49
  69. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  70. package/lib/cloudflare/permission-groups.d.ts +2 -3
  71. package/lib/cloudflare/permission-groups.d.ts.map +1 -1
  72. package/lib/cloudflare/permission-groups.js +10 -15
  73. package/lib/cloudflare/permission-groups.js.map +1 -1
  74. package/lib/cloudflare/redwood/redwood.d.ts +1 -1
  75. package/lib/cloudflare/redwood/redwood.js +1 -1
  76. package/lib/cloudflare/util/filter-env-bindings.d.ts +62 -0
  77. package/lib/cloudflare/util/filter-env-bindings.d.ts.map +1 -0
  78. package/lib/cloudflare/util/filter-env-bindings.js +81 -0
  79. package/lib/cloudflare/util/filter-env-bindings.js.map +1 -0
  80. package/lib/cloudflare/website.d.ts +2 -2
  81. package/lib/cloudflare/website.d.ts.map +1 -1
  82. package/lib/cloudflare/website.js +6 -18
  83. package/lib/cloudflare/website.js.map +1 -1
  84. package/lib/cloudflare/worker-metadata.d.ts +1 -0
  85. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  86. package/lib/cloudflare/worker-metadata.js +1 -0
  87. package/lib/cloudflare/worker-metadata.js.map +1 -1
  88. package/lib/cloudflare/worker.d.ts +11 -1
  89. package/lib/cloudflare/worker.d.ts.map +1 -1
  90. package/lib/cloudflare/worker.js.map +1 -1
  91. package/lib/cloudflare/wrangler.json.d.ts +8 -0
  92. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  93. package/lib/cloudflare/wrangler.json.js +3 -4
  94. package/lib/cloudflare/wrangler.json.js.map +1 -1
  95. package/lib/coinbase/client.d.ts +54 -0
  96. package/lib/coinbase/client.d.ts.map +1 -0
  97. package/lib/coinbase/client.js +89 -0
  98. package/lib/coinbase/client.js.map +1 -0
  99. package/lib/coinbase/evm-account.d.ts +118 -0
  100. package/lib/coinbase/evm-account.d.ts.map +1 -0
  101. package/lib/coinbase/evm-account.js +198 -0
  102. package/lib/coinbase/evm-account.js.map +1 -0
  103. package/lib/coinbase/evm-smart-account.d.ts +122 -0
  104. package/lib/coinbase/evm-smart-account.d.ts.map +1 -0
  105. package/lib/coinbase/evm-smart-account.js +213 -0
  106. package/lib/coinbase/evm-smart-account.js.map +1 -0
  107. package/lib/coinbase/faucet.d.ts +11 -0
  108. package/lib/coinbase/faucet.d.ts.map +1 -0
  109. package/lib/coinbase/faucet.js +146 -0
  110. package/lib/coinbase/faucet.js.map +1 -0
  111. package/lib/coinbase/index.d.ts +4 -0
  112. package/lib/coinbase/index.d.ts.map +1 -0
  113. package/lib/coinbase/index.js +4 -0
  114. package/lib/coinbase/index.js.map +1 -0
  115. package/lib/coinbase/types.d.ts +28 -0
  116. package/lib/coinbase/types.d.ts.map +1 -0
  117. package/lib/coinbase/types.js +4 -0
  118. package/lib/{util/telemetry → coinbase}/types.js.map +1 -1
  119. package/lib/coinbase/utils.d.ts +13 -0
  120. package/lib/coinbase/utils.d.ts.map +1 -0
  121. package/lib/coinbase/utils.js +17 -0
  122. package/lib/coinbase/utils.js.map +1 -0
  123. package/lib/neon/api/types.gen.d.ts +7 -2
  124. package/lib/neon/api/types.gen.d.ts.map +1 -1
  125. package/lib/planetscale/api/types.gen.d.ts +20 -4
  126. package/lib/planetscale/api/types.gen.d.ts.map +1 -1
  127. package/lib/planetscale/api.d.ts.map +1 -1
  128. package/lib/planetscale/api.js +1 -0
  129. package/lib/planetscale/api.js.map +1 -1
  130. package/lib/planetscale/password.d.ts.map +1 -1
  131. package/lib/planetscale/password.js +1 -13
  132. package/lib/planetscale/password.js.map +1 -1
  133. package/lib/resource.d.ts.map +1 -1
  134. package/lib/resource.js +7 -3
  135. package/lib/resource.js.map +1 -1
  136. package/lib/scope.d.ts +4 -9
  137. package/lib/scope.d.ts.map +1 -1
  138. package/lib/scope.js +16 -37
  139. package/lib/scope.js.map +1 -1
  140. package/lib/state/instrumented-state-store.d.ts +1 -3
  141. package/lib/state/instrumented-state-store.d.ts.map +1 -1
  142. package/lib/state/instrumented-state-store.js +19 -21
  143. package/lib/state/instrumented-state-store.js.map +1 -1
  144. package/lib/test/bun.d.ts.map +1 -1
  145. package/lib/test/bun.js +1 -2
  146. package/lib/test/bun.js.map +1 -1
  147. package/lib/test/vitest.d.ts.map +1 -1
  148. package/lib/test/vitest.js +1 -2
  149. package/lib/test/vitest.js.map +1 -1
  150. package/lib/util/diff.d.ts +5 -0
  151. package/lib/util/diff.d.ts.map +1 -0
  152. package/lib/util/diff.js +14 -0
  153. package/lib/util/diff.js.map +1 -0
  154. package/lib/util/telemetry.d.ts +52 -0
  155. package/lib/util/telemetry.d.ts.map +1 -0
  156. package/lib/util/telemetry.js +191 -0
  157. package/lib/util/telemetry.js.map +1 -0
  158. package/package.json +19 -1
  159. package/src/alchemy.ts +5 -20
  160. package/src/apply.ts +29 -12
  161. package/src/aws/utils.ts +2 -1
  162. package/src/clickhouse/api/client.gen.ts +28 -0
  163. package/src/clickhouse/api/sdk.gen.ts +1286 -0
  164. package/src/clickhouse/api/types.gen.ts +5898 -0
  165. package/src/clickhouse/api-key.ts +136 -0
  166. package/src/clickhouse/api.ts +84 -0
  167. package/src/clickhouse/index.ts +3 -0
  168. package/src/clickhouse/organization.ts +31 -0
  169. package/src/clickhouse/service.ts +668 -0
  170. package/src/cloudflare/account-api-token.ts +1 -4
  171. package/src/cloudflare/bun-spa/bun-spa.ts +139 -0
  172. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  173. package/src/cloudflare/container.ts +20 -1
  174. package/src/cloudflare/index.ts +1 -0
  175. package/src/cloudflare/miniflare/build-worker-options.ts +6 -4
  176. package/src/cloudflare/miniflare/miniflare-controller.ts +2 -0
  177. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +41 -58
  178. package/src/cloudflare/permission-groups.ts +21 -49
  179. package/src/cloudflare/redwood/redwood.ts +1 -1
  180. package/src/cloudflare/util/filter-env-bindings.ts +96 -0
  181. package/src/cloudflare/website.ts +11 -24
  182. package/src/cloudflare/worker-metadata.ts +2 -0
  183. package/src/cloudflare/worker.ts +12 -1
  184. package/src/cloudflare/wrangler.json.ts +12 -8
  185. package/src/coinbase/client.ts +146 -0
  186. package/src/coinbase/evm-account.ts +317 -0
  187. package/src/coinbase/evm-smart-account.ts +339 -0
  188. package/src/coinbase/faucet.ts +173 -0
  189. package/src/coinbase/index.ts +3 -0
  190. package/src/coinbase/types.ts +33 -0
  191. package/src/coinbase/utils.ts +19 -0
  192. package/src/neon/api/types.gen.ts +13 -1
  193. package/src/planetscale/api/types.gen.ts +22 -2
  194. package/src/planetscale/api.ts +1 -0
  195. package/src/planetscale/password.ts +1 -14
  196. package/src/resource.ts +11 -4
  197. package/src/scope.ts +22 -45
  198. package/src/state/instrumented-state-store.ts +27 -26
  199. package/src/test/bun.ts +1 -2
  200. package/src/test/vitest.ts +1 -2
  201. package/src/util/diff.ts +14 -0
  202. package/src/util/telemetry.ts +297 -0
  203. package/workers/tunnel-proxy.js +1 -1
  204. package/lib/util/telemetry/client.d.ts +0 -31
  205. package/lib/util/telemetry/client.d.ts.map +0 -1
  206. package/lib/util/telemetry/client.js +0 -121
  207. package/lib/util/telemetry/client.js.map +0 -1
  208. package/lib/util/telemetry/constants.d.ts +0 -5
  209. package/lib/util/telemetry/constants.d.ts.map +0 -1
  210. package/lib/util/telemetry/constants.js +0 -8
  211. package/lib/util/telemetry/constants.js.map +0 -1
  212. package/lib/util/telemetry/context.d.ts +0 -15
  213. package/lib/util/telemetry/context.d.ts.map +0 -1
  214. package/lib/util/telemetry/context.js +0 -128
  215. package/lib/util/telemetry/context.js.map +0 -1
  216. package/lib/util/telemetry/index.d.ts +0 -3
  217. package/lib/util/telemetry/index.d.ts.map +0 -1
  218. package/lib/util/telemetry/index.js +0 -3
  219. package/lib/util/telemetry/index.js.map +0 -1
  220. package/lib/util/telemetry/types.d.ts +0 -68
  221. package/lib/util/telemetry/types.d.ts.map +0 -1
  222. package/lib/util/telemetry/types.js +0 -1
  223. package/src/util/telemetry/client.ts +0 -156
  224. package/src/util/telemetry/constants.ts +0 -13
  225. package/src/util/telemetry/context.ts +0 -154
  226. package/src/util/telemetry/index.ts +0 -2
  227. package/src/util/telemetry/types.ts +0 -105
@@ -1,154 +0,0 @@
1
- import { exec } from "node:child_process";
2
- import { mkdir, readFile, writeFile } from "node:fs/promises";
3
- import os from "node:os";
4
- import { join } from "node:path";
5
- import pkg from "../../../package.json" with { type: "json" };
6
- import type { Phase } from "../../alchemy.ts";
7
- import { CONFIG_DIR } from "./constants.ts";
8
- import type { Telemetry } from "./types.ts";
9
-
10
- async function userId() {
11
- const path = join(CONFIG_DIR, "id");
12
-
13
- try {
14
- return (await readFile(path, "utf-8")).trim();
15
- } catch {}
16
-
17
- try {
18
- await mkdir(CONFIG_DIR, { recursive: true });
19
- } catch {}
20
-
21
- const id = crypto.randomUUID();
22
- try {
23
- await writeFile(path, id);
24
- console.warn(
25
- [
26
- "Attention: To help improve Alchemy, we now collect anonymous usage, performance, and error data.",
27
- "You can opt out by setting the ALCHEMY_TELEMETRY_DISABLED or DO_NOT_TRACK environment variable to a truthy value.",
28
- ].join("\n"),
29
- );
30
- } catch {
31
- return null;
32
- }
33
-
34
- return id;
35
- }
36
-
37
- function projectId() {
38
- return new Promise<string | null>((resolve) => {
39
- exec("git rev-list --max-parents=0 HEAD", (err, stdout) => {
40
- if (err) {
41
- resolve(null);
42
- return;
43
- }
44
- resolve(stdout.trim());
45
- });
46
- });
47
- }
48
-
49
- function system(): Telemetry.Context["system"] {
50
- return {
51
- platform: os.platform(),
52
- osVersion: os.release(),
53
- arch: os.arch(),
54
- cpus: os.cpus().length,
55
- memory: os.totalmem() / 1024 / 1024,
56
- };
57
- }
58
-
59
- declare global {
60
- var Deno:
61
- | {
62
- version: {
63
- deno: string;
64
- };
65
- }
66
- | undefined;
67
- var EdgeRuntime: Record<string, unknown> | undefined;
68
- }
69
-
70
- const RUNTIMES = [
71
- {
72
- name: "bun",
73
- detect: () => !!globalThis.Bun,
74
- version: () => globalThis.Bun?.version,
75
- },
76
- {
77
- name: "deno",
78
- detect: () => !!globalThis.Deno,
79
- version: () => globalThis.Deno?.version?.deno,
80
- },
81
- {
82
- name: "workerd",
83
- detect: () => !!globalThis.EdgeRuntime,
84
- version: () => null,
85
- },
86
- {
87
- name: "node",
88
- detect: () => !!globalThis.process?.versions?.node,
89
- version: () => process.versions.node,
90
- },
91
- ] as const;
92
-
93
- function runtime(): Telemetry.Context["runtime"] {
94
- for (const runtime of RUNTIMES) {
95
- if (runtime.detect()) {
96
- return {
97
- name: runtime.name,
98
- version: runtime.version() ?? null,
99
- };
100
- }
101
- }
102
- return {
103
- name: null,
104
- version: null,
105
- };
106
- }
107
-
108
- const PROVIDERS = [
109
- { env: "GITHUB_ACTIONS", provider: "GitHub Actions", isCI: true },
110
- { env: "GITLAB_CI", provider: "GitLab CI", isCI: true },
111
- { env: "CIRCLECI", provider: "CircleCI", isCI: true },
112
- { env: "JENKINS_URL", provider: "Jenkins", isCI: true },
113
- { env: "TRAVIS", provider: "Travis CI", isCI: true },
114
- { env: "NOW_BUILDER", provider: "Vercel", isCI: true },
115
- { env: "VERCEL", provider: "Vercel", isCI: false },
116
- ];
117
-
118
- function environment(): Telemetry.Context["environment"] {
119
- for (const provider of PROVIDERS) {
120
- if (process.env[provider.env]) {
121
- return {
122
- provider: provider.provider,
123
- isCI: provider.isCI,
124
- };
125
- }
126
- }
127
- return {
128
- provider: null,
129
- isCI: !!process.env.CI,
130
- };
131
- }
132
-
133
- export async function context(input: {
134
- sessionId: string;
135
- phase?: Phase;
136
- }): Promise<Telemetry.Context> {
137
- const env = environment();
138
- const [uid, pid] = await Promise.all([
139
- env.isCI ? null : userId(),
140
- projectId(),
141
- ]);
142
- return {
143
- userId: uid,
144
- projectId: pid,
145
- sessionId: input.sessionId,
146
- system: system(),
147
- runtime: runtime(),
148
- environment: env,
149
- alchemy: {
150
- version: pkg.version,
151
- phase: input.phase,
152
- },
153
- };
154
- }
@@ -1,2 +0,0 @@
1
- export * from "./client.ts";
2
- export * from "./types.ts";
@@ -1,105 +0,0 @@
1
- import type { Phase } from "../../alchemy.ts";
2
-
3
- export namespace Telemetry {
4
- export interface Context {
5
- /** Random UUID generated once per machine and stored in XDG config directory (e.g. `~/Library/Preferences/alchemy` on Mac). Null for CI environments. */
6
- userId: string | null;
7
- /** Root commit hash for the git repository. Anonymous, stable identifier for anyone using git. */
8
- projectId: string | null;
9
- /** UUID generated once per application run. */
10
- sessionId: string;
11
-
12
- system: {
13
- platform: string;
14
- osVersion: string;
15
- arch: string;
16
- cpus: number;
17
- memory: number;
18
- };
19
-
20
- runtime: {
21
- name: string | null;
22
- version: string | null;
23
- };
24
-
25
- environment: {
26
- provider: string | null;
27
- isCI: boolean;
28
- };
29
-
30
- alchemy: {
31
- version: string;
32
- phase?: Phase;
33
- };
34
- }
35
-
36
- export interface BaseEvent {
37
- event: string;
38
- timestamp: number;
39
- }
40
-
41
- export interface SerializedError {
42
- name?: string;
43
- message: string;
44
- stack?: string;
45
- }
46
-
47
- export type ErrorInput = Error | SerializedError;
48
-
49
- export interface AppEvent extends BaseEvent {
50
- event: "app.start" | "app.success" | "app.error";
51
- elapsed?: number;
52
- error?: SerializedError;
53
- }
54
-
55
- export interface ResourceEvent extends BaseEvent {
56
- event:
57
- | "resource.start"
58
- | "resource.success"
59
- | "resource.error"
60
- | "resource.skip"
61
- | "resource.read";
62
- resource: string;
63
- status?:
64
- | "creating"
65
- | "created"
66
- | "updating"
67
- | "updated"
68
- | "deleting"
69
- | "deleted";
70
- elapsed?: number;
71
- error?: SerializedError;
72
- replaced?: boolean;
73
- }
74
-
75
- export interface CliEvent extends BaseEvent {
76
- event: "cli.start" | "cli.success" | "cli.error";
77
- command: string;
78
- }
79
-
80
- export interface StateStoreEvent extends BaseEvent {
81
- event:
82
- | "stateStore.init"
83
- | "stateStore.deinit"
84
- | "stateStore.list"
85
- | "stateStore.count"
86
- | "stateStore.get"
87
- | "stateStore.getBatch"
88
- | "stateStore.all"
89
- | "stateStore.set"
90
- | "stateStore.delete";
91
- stateStoreClass: string;
92
- elapsed?: number;
93
- error?: SerializedError;
94
- }
95
-
96
- export type Event = AppEvent | ResourceEvent | StateStoreEvent | CliEvent;
97
- export type EventInput = (
98
- | Omit<AppEvent, "timestamp" | "error">
99
- | Omit<ResourceEvent, "timestamp" | "error">
100
- | Omit<StateStoreEvent, "timestamp" | "error">
101
- | Omit<CliEvent, "timestamp" | "error">
102
- ) & {
103
- error?: ErrorInput;
104
- };
105
- }