alchemy 0.44.3 → 0.45.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.
- package/bin/alchemy.mjs +0 -13
- package/bin/commands/create.ts +1 -10
- package/bin/services/vibe-rules.ts +0 -14
- package/lib/alchemy.d.ts +3 -3
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +5 -2
- package/lib/alchemy.js.map +1 -1
- package/lib/build-date.d.ts +1 -1
- package/lib/build-date.js +1 -1
- package/lib/cloudflare/auth.js +1 -1
- package/lib/cloudflare/auth.js.map +1 -1
- package/lib/cloudflare/bundle/esbuild.d.ts +16 -0
- package/lib/cloudflare/bundle/esbuild.d.ts.map +1 -0
- package/lib/cloudflare/bundle/esbuild.js +159 -0
- package/lib/cloudflare/bundle/esbuild.js.map +1 -0
- package/lib/cloudflare/bundle/fs.d.ts +18 -0
- package/lib/cloudflare/bundle/fs.d.ts.map +1 -0
- package/lib/cloudflare/bundle/fs.js +75 -0
- package/lib/cloudflare/bundle/fs.js.map +1 -0
- package/lib/cloudflare/bundle/index.d.ts +3 -0
- package/lib/cloudflare/bundle/index.d.ts.map +1 -0
- package/lib/cloudflare/bundle/index.js +2 -0
- package/lib/cloudflare/bundle/index.js.map +1 -0
- package/lib/cloudflare/bundle/inline.d.ts +12 -0
- package/lib/cloudflare/bundle/inline.d.ts.map +1 -0
- package/lib/cloudflare/bundle/inline.js +32 -0
- package/lib/cloudflare/bundle/inline.js.map +1 -0
- package/lib/cloudflare/bundle/normalize.d.ts +21 -0
- package/lib/cloudflare/bundle/normalize.d.ts.map +1 -0
- package/lib/cloudflare/bundle/normalize.js +49 -0
- package/lib/cloudflare/bundle/normalize.js.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-import-warning-plugin.d.ts → plugin-compat-warning.d.ts} +2 -2
- package/lib/cloudflare/bundle/plugin-compat-warning.d.ts.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-import-warning-plugin.js → plugin-compat-warning.js} +3 -4
- package/lib/cloudflare/bundle/plugin-compat-warning.js.map +1 -0
- package/lib/cloudflare/bundle/plugin-hot-reload.d.ts +8 -0
- package/lib/cloudflare/bundle/plugin-hot-reload.d.ts.map +1 -0
- package/lib/cloudflare/bundle/plugin-hot-reload.js +19 -0
- package/lib/cloudflare/bundle/plugin-hot-reload.js.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-compat.d.ts → plugin-hybrid-node-compat.d.ts} +2 -2
- package/lib/cloudflare/bundle/plugin-hybrid-node-compat.d.ts.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-compat.js → plugin-hybrid-node-compat.js} +10 -10
- package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js.map +1 -0
- package/lib/cloudflare/bundle/plugin-wasm.d.ts +3 -0
- package/lib/cloudflare/bundle/plugin-wasm.d.ts.map +1 -0
- package/lib/cloudflare/bundle/plugin-wasm.js +55 -0
- package/lib/cloudflare/bundle/plugin-wasm.js.map +1 -0
- package/lib/cloudflare/bundle/shared.d.ts +30 -0
- package/lib/cloudflare/bundle/shared.d.ts.map +1 -0
- package/lib/cloudflare/bundle/shared.js +34 -0
- package/lib/cloudflare/bundle/shared.js.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-compat-mode.d.ts → validate-node-compat.d.ts} +8 -4
- package/lib/cloudflare/bundle/validate-node-compat.d.ts.map +1 -0
- package/lib/cloudflare/bundle/{nodejs-compat-mode.js → validate-node-compat.js} +27 -7
- package/lib/cloudflare/bundle/validate-node-compat.js.map +1 -0
- package/lib/cloudflare/container.d.ts +231 -0
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +7 -0
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/d1-migrations.d.ts +1 -0
- package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
- package/lib/cloudflare/d1-migrations.js +18 -6
- package/lib/cloudflare/d1-migrations.js.map +1 -1
- package/lib/cloudflare/d1-state-store.d.ts +10 -0
- package/lib/cloudflare/d1-state-store.d.ts.map +1 -0
- package/lib/cloudflare/d1-state-store.js +70 -0
- package/lib/cloudflare/d1-state-store.js.map +1 -0
- package/lib/cloudflare/do-state-store/internal.js +1 -1
- package/lib/cloudflare/do-state-store/internal.js.map +1 -1
- package/lib/cloudflare/do-state-store/store.js +1 -1
- package/lib/cloudflare/do-state-store/store.js.map +1 -1
- package/lib/cloudflare/index.d.ts +3 -2
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +3 -2
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/local-dev-cloudflare-shim.d.ts.map +1 -0
- package/lib/cloudflare/{bundle/local-dev-cloudflare-shim.js → local-dev-cloudflare-shim.js} +1 -1
- package/lib/cloudflare/local-dev-cloudflare-shim.js.map +1 -0
- package/lib/cloudflare/miniflare/http-server.d.ts.map +1 -0
- package/lib/cloudflare/miniflare/http-server.js.map +1 -0
- package/lib/cloudflare/{worker → miniflare}/miniflare-worker-options.d.ts +4 -3
- package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts.map +1 -0
- package/lib/cloudflare/{worker → miniflare}/miniflare-worker-options.js +6 -3
- package/lib/cloudflare/miniflare/miniflare-worker-options.js.map +1 -0
- package/lib/cloudflare/miniflare/miniflare.d.ts.map +1 -0
- package/lib/cloudflare/{worker → miniflare}/miniflare.js +1 -1
- package/lib/cloudflare/miniflare/miniflare.js.map +1 -0
- package/lib/cloudflare/miniflare/mixed-mode.d.ts.map +1 -0
- package/lib/cloudflare/{worker → miniflare}/mixed-mode.js +1 -2
- package/lib/cloudflare/miniflare/mixed-mode.js.map +1 -0
- package/lib/cloudflare/user.js +1 -1
- package/lib/cloudflare/user.js.map +1 -1
- package/lib/cloudflare/worker/shared.d.ts +4 -0
- package/lib/cloudflare/worker/shared.d.ts.map +1 -0
- package/lib/cloudflare/worker/{get-worker-template.js → shared.js} +10 -1
- package/lib/cloudflare/worker/shared.js.map +1 -0
- package/lib/cloudflare/worker/tail.d.ts +18 -0
- package/lib/cloudflare/worker/tail.d.ts.map +1 -0
- package/lib/cloudflare/worker/tail.js +140 -0
- package/lib/cloudflare/worker/tail.js.map +1 -0
- package/lib/cloudflare/worker-metadata.d.ts +6 -2
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +7 -23
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker-stub.d.ts.map +1 -1
- package/lib/cloudflare/worker-stub.js +8 -4
- package/lib/cloudflare/worker-stub.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.d.ts +31 -0
- package/lib/cloudflare/worker-subdomain.d.ts.map +1 -0
- package/lib/cloudflare/worker-subdomain.js +55 -0
- package/lib/cloudflare/worker-subdomain.js.map +1 -0
- package/lib/cloudflare/worker.d.ts +30 -28
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +641 -554
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/fs/file-system-state-store.js +1 -1
- package/lib/fs/file-system-state-store.js.map +1 -1
- package/lib/scope.d.ts +2 -2
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +23 -8
- package/lib/scope.js.map +1 -1
- package/lib/serde.d.ts +1 -1
- package/lib/serde.d.ts.map +1 -1
- package/lib/serde.js +4 -4
- package/lib/serde.js.map +1 -1
- package/lib/sqlite/base-sqlite-state-store.d.ts +31 -0
- package/lib/sqlite/base-sqlite-state-store.d.ts.map +1 -0
- package/lib/sqlite/base-sqlite-state-store.js +124 -0
- package/lib/sqlite/base-sqlite-state-store.js.map +1 -0
- package/lib/sqlite/index.d.ts +2 -0
- package/lib/sqlite/index.d.ts.map +1 -0
- package/lib/sqlite/index.js +2 -0
- package/lib/sqlite/index.js.map +1 -0
- package/lib/sqlite/schema.d.ts +198 -0
- package/lib/sqlite/schema.d.ts.map +1 -0
- package/lib/sqlite/schema.js +23 -0
- package/lib/sqlite/schema.js.map +1 -0
- package/lib/sqlite/sqlite-state-store.d.ts +60 -0
- package/lib/sqlite/sqlite-state-store.d.ts.map +1 -0
- package/lib/sqlite/sqlite-state-store.js +83 -0
- package/lib/sqlite/sqlite-state-store.js.map +1 -0
- package/lib/test/bun.d.ts.map +1 -1
- package/lib/test/bun.js +0 -6
- package/lib/test/bun.js.map +1 -1
- package/lib/test/vitest.d.ts.map +1 -1
- package/lib/test/vitest.js +19 -5
- package/lib/test/vitest.js.map +1 -1
- package/lib/util/memoize.d.ts +1 -1
- package/lib/util/memoize.d.ts.map +1 -1
- package/lib/util/memoize.js +11 -1
- package/lib/util/memoize.js.map +1 -1
- package/package.json +12 -3
- package/src/alchemy.ts +8 -6
- package/src/build-date.ts +1 -1
- package/src/cloudflare/auth.ts +1 -1
- package/src/cloudflare/bundle/esbuild.ts +194 -0
- package/src/cloudflare/bundle/fs.ts +98 -0
- package/src/cloudflare/bundle/index.ts +6 -0
- package/src/cloudflare/bundle/inline.ts +42 -0
- package/src/cloudflare/bundle/normalize.ts +76 -0
- package/src/cloudflare/bundle/{nodejs-import-warning-plugin.ts → plugin-compat-warning.ts} +4 -3
- package/src/cloudflare/bundle/plugin-hot-reload.ts +27 -0
- package/src/cloudflare/bundle/{nodejs-compat.ts → plugin-hybrid-node-compat.ts} +10 -10
- package/src/cloudflare/bundle/plugin-wasm.ts +62 -0
- package/src/cloudflare/bundle/shared.ts +73 -0
- package/src/cloudflare/bundle/{nodejs-compat-mode.ts → validate-node-compat.ts} +41 -16
- package/src/cloudflare/container.ts +296 -0
- package/src/cloudflare/d1-migrations.ts +29 -16
- package/src/cloudflare/d1-state-store.ts +105 -0
- package/src/cloudflare/do-state-store/internal.ts +1 -1
- package/src/cloudflare/do-state-store/store.ts +1 -1
- package/src/cloudflare/index.ts +3 -2
- package/src/cloudflare/{bundle/local-dev-cloudflare-shim.ts → local-dev-cloudflare-shim.ts} +1 -1
- package/src/cloudflare/{worker → miniflare}/miniflare-worker-options.ts +14 -6
- package/src/cloudflare/{worker → miniflare}/miniflare.ts +1 -1
- package/src/cloudflare/{worker → miniflare}/mixed-mode.ts +1 -2
- package/src/cloudflare/user.ts +1 -1
- package/src/cloudflare/worker/{subdomain.ts → shared.ts} +14 -0
- package/src/cloudflare/worker/tail.ts +287 -0
- package/src/cloudflare/worker-metadata.ts +18 -26
- package/src/cloudflare/worker-stub.ts +9 -4
- package/src/cloudflare/worker-subdomain.ts +123 -0
- package/src/cloudflare/worker.ts +863 -734
- package/src/fs/file-system-state-store.ts +1 -1
- package/src/scope.ts +30 -11
- package/src/serde.ts +4 -4
- package/src/sqlite/base-sqlite-state-store.ts +199 -0
- package/src/sqlite/index.ts +1 -0
- package/src/sqlite/schema.ts +37 -0
- package/src/sqlite/sqlite-state-store.ts +174 -0
- package/src/test/bun.ts +0 -8
- package/src/test/vitest.ts +19 -8
- package/src/util/memoize.ts +13 -1
- package/templates/astro/types/env.d.ts +1 -1
- package/templates/nuxt/types/env.d.ts +1 -1
- package/templates/react-router/types/env.d.ts +1 -1
- package/templates/rwsdk/types/env.d.ts +1 -1
- package/templates/sveltekit/types/env.d.ts +1 -1
- package/templates/tanstack-start/types/env.d.ts +1 -1
- package/templates/typescript/types/env.d.ts +1 -1
- package/templates/vite/types/env.d.ts +1 -1
- package/lib/cloudflare/bundle/alias-plugin.d.ts +0 -6
- package/lib/cloudflare/bundle/alias-plugin.d.ts.map +0 -1
- package/lib/cloudflare/bundle/alias-plugin.js +0 -36
- package/lib/cloudflare/bundle/alias-plugin.js.map +0 -1
- package/lib/cloudflare/bundle/build-failures.d.ts +0 -12
- package/lib/cloudflare/bundle/build-failures.d.ts.map +0 -1
- package/lib/cloudflare/bundle/build-failures.js +0 -45
- package/lib/cloudflare/bundle/build-failures.js.map +0 -1
- package/lib/cloudflare/bundle/bundle-worker-dev.d.ts +0 -26
- package/lib/cloudflare/bundle/bundle-worker-dev.d.ts.map +0 -1
- package/lib/cloudflare/bundle/bundle-worker-dev.js +0 -88
- package/lib/cloudflare/bundle/bundle-worker-dev.js.map +0 -1
- package/lib/cloudflare/bundle/bundle-worker.d.ts +0 -13
- package/lib/cloudflare/bundle/bundle-worker.d.ts.map +0 -1
- package/lib/cloudflare/bundle/bundle-worker.js +0 -98
- package/lib/cloudflare/bundle/bundle-worker.js.map +0 -1
- package/lib/cloudflare/bundle/external.d.ts +0 -4
- package/lib/cloudflare/bundle/external.d.ts.map +0 -1
- package/lib/cloudflare/bundle/external.js +0 -40
- package/lib/cloudflare/bundle/external.js.map +0 -1
- package/lib/cloudflare/bundle/local-dev-cloudflare-shim.d.ts.map +0 -1
- package/lib/cloudflare/bundle/local-dev-cloudflare-shim.js.map +0 -1
- package/lib/cloudflare/bundle/nodejs-compat-mode.d.ts.map +0 -1
- package/lib/cloudflare/bundle/nodejs-compat-mode.js.map +0 -1
- package/lib/cloudflare/bundle/nodejs-compat.d.ts.map +0 -1
- package/lib/cloudflare/bundle/nodejs-compat.js.map +0 -1
- package/lib/cloudflare/bundle/nodejs-import-warning-plugin.d.ts.map +0 -1
- package/lib/cloudflare/bundle/nodejs-import-warning-plugin.js.map +0 -1
- package/lib/cloudflare/bundle/wasm-plugin.d.ts +0 -3
- package/lib/cloudflare/bundle/wasm-plugin.d.ts.map +0 -1
- package/lib/cloudflare/bundle/wasm-plugin.js +0 -53
- package/lib/cloudflare/bundle/wasm-plugin.js.map +0 -1
- package/lib/cloudflare/worker/get-worker-template.d.ts +0 -2
- package/lib/cloudflare/worker/get-worker-template.d.ts.map +0 -1
- package/lib/cloudflare/worker/get-worker-template.js.map +0 -1
- package/lib/cloudflare/worker/http-server.d.ts.map +0 -1
- package/lib/cloudflare/worker/http-server.js.map +0 -1
- package/lib/cloudflare/worker/miniflare-worker-options.d.ts.map +0 -1
- package/lib/cloudflare/worker/miniflare-worker-options.js.map +0 -1
- package/lib/cloudflare/worker/miniflare.d.ts.map +0 -1
- package/lib/cloudflare/worker/miniflare.js.map +0 -1
- package/lib/cloudflare/worker/mixed-mode.d.ts.map +0 -1
- package/lib/cloudflare/worker/mixed-mode.js.map +0 -1
- package/lib/cloudflare/worker/subdomain.d.ts +0 -3
- package/lib/cloudflare/worker/subdomain.d.ts.map +0 -1
- package/lib/cloudflare/worker/subdomain.js +0 -10
- package/lib/cloudflare/worker/subdomain.js.map +0 -1
- package/src/cloudflare/bundle/alias-plugin.ts +0 -48
- package/src/cloudflare/bundle/build-failures.ts +0 -55
- package/src/cloudflare/bundle/bundle-worker-dev.ts +0 -129
- package/src/cloudflare/bundle/bundle-worker.ts +0 -150
- package/src/cloudflare/bundle/external.ts +0 -41
- package/src/cloudflare/bundle/wasm-plugin.ts +0 -57
- package/src/cloudflare/worker/get-worker-template.ts +0 -14
- /package/lib/cloudflare/{bundle/local-dev-cloudflare-shim.d.ts → local-dev-cloudflare-shim.d.ts} +0 -0
- /package/lib/cloudflare/{worker → miniflare}/http-server.d.ts +0 -0
- /package/lib/cloudflare/{worker → miniflare}/http-server.js +0 -0
- /package/lib/cloudflare/{worker → miniflare}/miniflare.d.ts +0 -0
- /package/lib/cloudflare/{worker → miniflare}/mixed-mode.d.ts +0 -0
- /package/src/cloudflare/{worker → miniflare}/http-server.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { Resource as AlchemyResource, ResourceProps } from "../resource.ts";
|
|
2
|
+
export declare const resources: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
3
|
+
name: "resources";
|
|
4
|
+
schema: undefined;
|
|
5
|
+
columns: {
|
|
6
|
+
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
7
|
+
name: "id";
|
|
8
|
+
tableName: "resources";
|
|
9
|
+
dataType: "string";
|
|
10
|
+
columnType: "SQLiteText";
|
|
11
|
+
data: string;
|
|
12
|
+
driverParam: string;
|
|
13
|
+
notNull: true;
|
|
14
|
+
hasDefault: false;
|
|
15
|
+
isPrimaryKey: false;
|
|
16
|
+
isAutoincrement: false;
|
|
17
|
+
hasRuntimeDefault: false;
|
|
18
|
+
enumValues: [string, ...string[]];
|
|
19
|
+
baseColumn: never;
|
|
20
|
+
identity: undefined;
|
|
21
|
+
generated: undefined;
|
|
22
|
+
}, {}, {
|
|
23
|
+
length: number | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
scope: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
26
|
+
name: "scope";
|
|
27
|
+
tableName: "resources";
|
|
28
|
+
dataType: "json";
|
|
29
|
+
columnType: "SQLiteTextJson";
|
|
30
|
+
data: string[];
|
|
31
|
+
driverParam: string;
|
|
32
|
+
notNull: true;
|
|
33
|
+
hasDefault: false;
|
|
34
|
+
isPrimaryKey: false;
|
|
35
|
+
isAutoincrement: false;
|
|
36
|
+
hasRuntimeDefault: false;
|
|
37
|
+
enumValues: undefined;
|
|
38
|
+
baseColumn: never;
|
|
39
|
+
identity: undefined;
|
|
40
|
+
generated: undefined;
|
|
41
|
+
}, {}, {
|
|
42
|
+
$type: string[];
|
|
43
|
+
}>;
|
|
44
|
+
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
45
|
+
name: "status";
|
|
46
|
+
tableName: "resources";
|
|
47
|
+
dataType: "string";
|
|
48
|
+
columnType: "SQLiteText";
|
|
49
|
+
data: "creating" | "created" | "updating" | "updated" | "deleting" | "deleted";
|
|
50
|
+
driverParam: string;
|
|
51
|
+
notNull: true;
|
|
52
|
+
hasDefault: false;
|
|
53
|
+
isPrimaryKey: false;
|
|
54
|
+
isAutoincrement: false;
|
|
55
|
+
hasRuntimeDefault: false;
|
|
56
|
+
enumValues: ["creating", "created", "updating", "updated", "deleting", "deleted"];
|
|
57
|
+
baseColumn: never;
|
|
58
|
+
identity: undefined;
|
|
59
|
+
generated: undefined;
|
|
60
|
+
}, {}, {
|
|
61
|
+
length: number | undefined;
|
|
62
|
+
}>;
|
|
63
|
+
kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
64
|
+
name: "kind";
|
|
65
|
+
tableName: "resources";
|
|
66
|
+
dataType: "string";
|
|
67
|
+
columnType: "SQLiteText";
|
|
68
|
+
data: string;
|
|
69
|
+
driverParam: string;
|
|
70
|
+
notNull: true;
|
|
71
|
+
hasDefault: false;
|
|
72
|
+
isPrimaryKey: false;
|
|
73
|
+
isAutoincrement: false;
|
|
74
|
+
hasRuntimeDefault: false;
|
|
75
|
+
enumValues: [string, ...string[]];
|
|
76
|
+
baseColumn: never;
|
|
77
|
+
identity: undefined;
|
|
78
|
+
generated: undefined;
|
|
79
|
+
}, {}, {
|
|
80
|
+
length: number | undefined;
|
|
81
|
+
}>;
|
|
82
|
+
fqn: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
83
|
+
name: "fqn";
|
|
84
|
+
tableName: "resources";
|
|
85
|
+
dataType: "string";
|
|
86
|
+
columnType: "SQLiteText";
|
|
87
|
+
data: string;
|
|
88
|
+
driverParam: string;
|
|
89
|
+
notNull: true;
|
|
90
|
+
hasDefault: false;
|
|
91
|
+
isPrimaryKey: false;
|
|
92
|
+
isAutoincrement: false;
|
|
93
|
+
hasRuntimeDefault: false;
|
|
94
|
+
enumValues: [string, ...string[]];
|
|
95
|
+
baseColumn: never;
|
|
96
|
+
identity: undefined;
|
|
97
|
+
generated: undefined;
|
|
98
|
+
}, {}, {
|
|
99
|
+
length: number | undefined;
|
|
100
|
+
}>;
|
|
101
|
+
seq: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
102
|
+
name: "seq";
|
|
103
|
+
tableName: "resources";
|
|
104
|
+
dataType: "number";
|
|
105
|
+
columnType: "SQLiteInteger";
|
|
106
|
+
data: number;
|
|
107
|
+
driverParam: number;
|
|
108
|
+
notNull: true;
|
|
109
|
+
hasDefault: false;
|
|
110
|
+
isPrimaryKey: false;
|
|
111
|
+
isAutoincrement: false;
|
|
112
|
+
hasRuntimeDefault: false;
|
|
113
|
+
enumValues: undefined;
|
|
114
|
+
baseColumn: never;
|
|
115
|
+
identity: undefined;
|
|
116
|
+
generated: undefined;
|
|
117
|
+
}, {}, {}>;
|
|
118
|
+
data: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
119
|
+
name: "data";
|
|
120
|
+
tableName: "resources";
|
|
121
|
+
dataType: "json";
|
|
122
|
+
columnType: "SQLiteTextJson";
|
|
123
|
+
data: Record<string, any>;
|
|
124
|
+
driverParam: string;
|
|
125
|
+
notNull: true;
|
|
126
|
+
hasDefault: false;
|
|
127
|
+
isPrimaryKey: false;
|
|
128
|
+
isAutoincrement: false;
|
|
129
|
+
hasRuntimeDefault: false;
|
|
130
|
+
enumValues: undefined;
|
|
131
|
+
baseColumn: never;
|
|
132
|
+
identity: undefined;
|
|
133
|
+
generated: undefined;
|
|
134
|
+
}, {}, {
|
|
135
|
+
$type: Record<string, any>;
|
|
136
|
+
}>;
|
|
137
|
+
props: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
138
|
+
name: "props";
|
|
139
|
+
tableName: "resources";
|
|
140
|
+
dataType: "json";
|
|
141
|
+
columnType: "SQLiteTextJson";
|
|
142
|
+
data: ResourceProps;
|
|
143
|
+
driverParam: string;
|
|
144
|
+
notNull: false;
|
|
145
|
+
hasDefault: false;
|
|
146
|
+
isPrimaryKey: false;
|
|
147
|
+
isAutoincrement: false;
|
|
148
|
+
hasRuntimeDefault: false;
|
|
149
|
+
enumValues: undefined;
|
|
150
|
+
baseColumn: never;
|
|
151
|
+
identity: undefined;
|
|
152
|
+
generated: undefined;
|
|
153
|
+
}, {}, {
|
|
154
|
+
$type: ResourceProps;
|
|
155
|
+
}>;
|
|
156
|
+
oldProps: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
157
|
+
name: "oldProps";
|
|
158
|
+
tableName: "resources";
|
|
159
|
+
dataType: "json";
|
|
160
|
+
columnType: "SQLiteTextJson";
|
|
161
|
+
data: ResourceProps;
|
|
162
|
+
driverParam: string;
|
|
163
|
+
notNull: false;
|
|
164
|
+
hasDefault: false;
|
|
165
|
+
isPrimaryKey: false;
|
|
166
|
+
isAutoincrement: false;
|
|
167
|
+
hasRuntimeDefault: false;
|
|
168
|
+
enumValues: undefined;
|
|
169
|
+
baseColumn: never;
|
|
170
|
+
identity: undefined;
|
|
171
|
+
generated: undefined;
|
|
172
|
+
}, {}, {
|
|
173
|
+
$type: ResourceProps;
|
|
174
|
+
}>;
|
|
175
|
+
output: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
176
|
+
name: "output";
|
|
177
|
+
tableName: "resources";
|
|
178
|
+
dataType: "json";
|
|
179
|
+
columnType: "SQLiteTextJson";
|
|
180
|
+
data: AlchemyResource<string>;
|
|
181
|
+
driverParam: string;
|
|
182
|
+
notNull: true;
|
|
183
|
+
hasDefault: false;
|
|
184
|
+
isPrimaryKey: false;
|
|
185
|
+
isAutoincrement: false;
|
|
186
|
+
hasRuntimeDefault: false;
|
|
187
|
+
enumValues: undefined;
|
|
188
|
+
baseColumn: never;
|
|
189
|
+
identity: undefined;
|
|
190
|
+
generated: undefined;
|
|
191
|
+
}, {}, {
|
|
192
|
+
$type: AlchemyResource<string>;
|
|
193
|
+
}>;
|
|
194
|
+
};
|
|
195
|
+
dialect: "sqlite";
|
|
196
|
+
}>;
|
|
197
|
+
export type Resource = typeof resources.$inferSelect;
|
|
198
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/sqlite/schema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,QAAQ,IAAI,eAAe,EAC3B,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBrB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { integer, primaryKey, sqliteTable, text, } from "drizzle-orm/sqlite-core";
|
|
2
|
+
export const resources = sqliteTable("resources", {
|
|
3
|
+
id: text("id").notNull(),
|
|
4
|
+
scope: text("scope", { mode: "json" }).$type().notNull(),
|
|
5
|
+
status: text("status", {
|
|
6
|
+
enum: [
|
|
7
|
+
"creating",
|
|
8
|
+
"created",
|
|
9
|
+
"updating",
|
|
10
|
+
"updated",
|
|
11
|
+
"deleting",
|
|
12
|
+
"deleted",
|
|
13
|
+
],
|
|
14
|
+
}).notNull(),
|
|
15
|
+
kind: text("kind").notNull(),
|
|
16
|
+
fqn: text("fqn").notNull(),
|
|
17
|
+
seq: integer("seq").notNull(),
|
|
18
|
+
data: text("data", { mode: "json" }).notNull().$type(),
|
|
19
|
+
props: text("props", { mode: "json" }).$type(),
|
|
20
|
+
oldProps: text("oldProps", { mode: "json" }).$type(),
|
|
21
|
+
output: text("output", { mode: "json" }).notNull().$type(),
|
|
22
|
+
}, (t) => [primaryKey({ columns: [t.scope, t.id] })]);
|
|
23
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/sqlite/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,UAAU,EACV,WAAW,EACX,IAAI,GACL,MAAM,yBAAyB,CAAC;AAMjC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAClC,WAAW,EACX;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,EAAE;IAClE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,IAAI,EAAE;YACJ,UAAU;YACV,SAAS;YACT,UAAU;YACV,SAAS;YACT,UAAU;YACV,SAAS;SACV;KACF,CAAC,CAAC,OAAO,EAAE;IACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC1B,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAuB;IAC3E,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAiB;IAC7D,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAiB;IACnE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAmB;CAC5E,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAClD,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Config as LibSQLConfig } from "@libsql/client";
|
|
2
|
+
import type { Scope } from "../scope.ts";
|
|
3
|
+
import { BaseSQLiteStateStore } from "./base-sqlite-state-store.ts";
|
|
4
|
+
interface BunSQLiteStateStoreOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Use `bun:sqlite` to connect to the SQLite database.
|
|
7
|
+
* Requires Bun.
|
|
8
|
+
*/
|
|
9
|
+
engine: "bun";
|
|
10
|
+
/**
|
|
11
|
+
* The filename to use for the SQLite database.
|
|
12
|
+
* @default process.env.ALCHEMY_STATE_FILE if set, otherwise ".alchemy/state.sqlite"
|
|
13
|
+
*/
|
|
14
|
+
filename?: string;
|
|
15
|
+
readonly?: boolean;
|
|
16
|
+
create?: boolean;
|
|
17
|
+
readwrite?: boolean;
|
|
18
|
+
safeIntegers?: boolean;
|
|
19
|
+
strict?: boolean;
|
|
20
|
+
}
|
|
21
|
+
interface LibSQLStateStoreOptions extends Omit<LibSQLConfig, "url"> {
|
|
22
|
+
/**
|
|
23
|
+
* Use the `@libsql/client` library to connect to the SQLite database.
|
|
24
|
+
* Supported on Node.js and Bun.
|
|
25
|
+
*/
|
|
26
|
+
engine: "libsql";
|
|
27
|
+
/**
|
|
28
|
+
* The filename to use for the SQLite database.
|
|
29
|
+
* @default process.env.ALCHEMY_STATE_FILE if set, otherwise ".alchemy/state.sqlite"
|
|
30
|
+
* @note If the `url` option is specified, this option is ignored.
|
|
31
|
+
*/
|
|
32
|
+
filename?: string;
|
|
33
|
+
/**
|
|
34
|
+
* The database URL. Overrides the `filename` option.
|
|
35
|
+
*
|
|
36
|
+
* The client supports `libsql:`, `http:`/`https:`, `ws:`/`wss:` and `file:` URL. For more infomation,
|
|
37
|
+
* please refer to the project README:
|
|
38
|
+
*
|
|
39
|
+
* https://github.com/libsql/libsql-client-ts#supported-urls
|
|
40
|
+
*/
|
|
41
|
+
url?: string;
|
|
42
|
+
}
|
|
43
|
+
interface AutoSQLiteStateStoreOptions {
|
|
44
|
+
/**
|
|
45
|
+
* Automatically choose the best SQLite engine based on your environment.
|
|
46
|
+
* @default "auto" - Uses `bun:sqlite` if available, otherwise uses `@libsql/client`.
|
|
47
|
+
*/
|
|
48
|
+
engine?: "auto";
|
|
49
|
+
/**
|
|
50
|
+
* The filename to use for the SQLite database.
|
|
51
|
+
* @default ".alchemy/state.sqlite"
|
|
52
|
+
*/
|
|
53
|
+
filename?: string;
|
|
54
|
+
}
|
|
55
|
+
type SQLiteStateStoreOptions = BunSQLiteStateStoreOptions | LibSQLStateStoreOptions | AutoSQLiteStateStoreOptions;
|
|
56
|
+
export declare class SQLiteStateStore extends BaseSQLiteStateStore {
|
|
57
|
+
constructor(scope: Scope, options?: SQLiteStateStoreOptions);
|
|
58
|
+
}
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=sqlite-state-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-state-store.d.ts","sourceRoot":"","sources":["../../src/sqlite/sqlite-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,oBAAoB,EAErB,MAAM,8BAA8B,CAAC;AAGtC,UAAU,0BAA0B;IAClC;;;OAGG;IACH,MAAM,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,uBAAwB,SAAQ,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IACjE;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,2BAA2B;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,uBAAuB,GACxB,0BAA0B,GAC1B,uBAAuB,GACvB,2BAA2B,CAAC;AAEhC,qBAAa,gBAAiB,SAAQ,oBAAoB;gBAC5C,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,uBAAuB;CAK5D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { memoize } from "../util/memoize.js";
|
|
4
|
+
import { BaseSQLiteStateStore, resolveMigrationsPath, } from "./base-sqlite-state-store.js";
|
|
5
|
+
import * as schema from "./schema.js";
|
|
6
|
+
export class SQLiteStateStore extends BaseSQLiteStateStore {
|
|
7
|
+
constructor(scope, options) {
|
|
8
|
+
super(scope, {
|
|
9
|
+
create: async () => createDatabase(options),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const createDatabase = memoize(async (options) => {
|
|
14
|
+
switch (options?.engine) {
|
|
15
|
+
case "bun":
|
|
16
|
+
return await createBunSQLiteDatabase(options);
|
|
17
|
+
case "libsql":
|
|
18
|
+
return await createLibSQLDatabase(options);
|
|
19
|
+
default: {
|
|
20
|
+
return await createDefaultDatabase(options?.filename);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
async function createDefaultDatabase(filename) {
|
|
25
|
+
if ("Bun" in globalThis) {
|
|
26
|
+
return createBunSQLiteDatabase({ engine: "bun", filename });
|
|
27
|
+
}
|
|
28
|
+
return createLibSQLDatabase({ engine: "libsql", filename });
|
|
29
|
+
}
|
|
30
|
+
async function createBunSQLiteDatabase(options) {
|
|
31
|
+
if (!("Bun" in globalThis)) {
|
|
32
|
+
throw new Error("[SQLiteStateStore] The `engine: 'bun'` option is only available in Bun. Please use `engine: 'libsql'` instead.");
|
|
33
|
+
}
|
|
34
|
+
const filename = options?.filename ??
|
|
35
|
+
process.env.ALCHEMY_STATE_FILE ??
|
|
36
|
+
".alchemy/state.sqlite";
|
|
37
|
+
ensureDirectory(filename);
|
|
38
|
+
const { Database } = await import("bun:sqlite");
|
|
39
|
+
const { drizzle } = await import("drizzle-orm/bun-sqlite").catch(() => {
|
|
40
|
+
throw new Error("[SQLiteStateStore] Missing `drizzle-orm` peer dependency. Please `bun install drizzle-orm`.");
|
|
41
|
+
});
|
|
42
|
+
const { migrate } = await import("drizzle-orm/bun-sqlite/migrator");
|
|
43
|
+
// Bun's constructor throws if we pass in an empty object or if extraneous
|
|
44
|
+
// options are passed in, so here's some ugly destructuring!
|
|
45
|
+
const { engine: _engine, filename: _filename, ...rest } = options ?? {};
|
|
46
|
+
const bunOptions = Object.keys(rest).length > 0 ? rest : undefined;
|
|
47
|
+
const client = new Database(filename, bunOptions);
|
|
48
|
+
client.exec("PRAGMA journal_mode = WAL;");
|
|
49
|
+
const db = drizzle(client, {
|
|
50
|
+
schema,
|
|
51
|
+
});
|
|
52
|
+
migrate(db, { migrationsFolder: resolveMigrationsPath() });
|
|
53
|
+
return db;
|
|
54
|
+
}
|
|
55
|
+
async function createLibSQLDatabase(options) {
|
|
56
|
+
const url = options?.url ??
|
|
57
|
+
`file:${options?.filename ?? process.env.ALCHEMY_STATE_FILE ?? ".alchemy/state.sqlite"}`;
|
|
58
|
+
const filename = url.startsWith("file:") ? url.slice(5) : undefined;
|
|
59
|
+
if (filename) {
|
|
60
|
+
ensureDirectory(filename);
|
|
61
|
+
}
|
|
62
|
+
const { createClient } = await import("@libsql/client").catch(() => {
|
|
63
|
+
throw new Error("[SQLiteStateStore] Missing `@libsql/client` peer dependency. Please `npm install @libsql/client`.");
|
|
64
|
+
});
|
|
65
|
+
const { drizzle } = await import("drizzle-orm/libsql").catch(() => {
|
|
66
|
+
throw new Error("[SQLiteStateStore] Missing `drizzle-orm` peer dependency. Please `npm install drizzle-orm`.");
|
|
67
|
+
});
|
|
68
|
+
const { migrate } = await import("drizzle-orm/libsql/migrator");
|
|
69
|
+
const client = createClient({ url, ...options });
|
|
70
|
+
await client.execute("PRAGMA journal_mode = WAL;");
|
|
71
|
+
const db = drizzle(client, {
|
|
72
|
+
schema,
|
|
73
|
+
});
|
|
74
|
+
await migrate(db, { migrationsFolder: resolveMigrationsPath() });
|
|
75
|
+
return db;
|
|
76
|
+
}
|
|
77
|
+
const ensureDirectory = (filename) => {
|
|
78
|
+
const dir = path.dirname(filename);
|
|
79
|
+
if (!fs.existsSync(dir)) {
|
|
80
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=sqlite-state-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-state-store.js","sourceRoot":"","sources":["../../src/sqlite/sqlite-state-store.ts"],"names":[],"mappings":"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"}
|
package/lib/test/bun.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/test/bun.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/test/bun.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,OAAO;QACf,IAAI,EAAE,OAAO,IAAI,CAAC;KACnB;CACF;AAOD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,KAAK,IAAI,GAAG;IACV;;;;;OAKG;IACH,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3E;;;;;;OAMG;IACH,CACE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAClC,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAAC;IAER;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjC,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAErD,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CA+EzE"}
|
package/lib/test/bun.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { afterAll, beforeAll, it } from "bun:test";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { alchemy } from "../alchemy.js";
|
|
5
|
-
import { DOStateStore } from "../cloudflare/index.js";
|
|
6
5
|
import { Scope } from "../scope.js";
|
|
7
6
|
import { NoopTelemetryClient } from "../util/telemetry/index.js";
|
|
8
7
|
/**
|
|
@@ -38,11 +37,6 @@ export function test(meta, defaultOptions) {
|
|
|
38
37
|
defaultOptions = defaultOptions ?? {
|
|
39
38
|
quiet: true,
|
|
40
39
|
};
|
|
41
|
-
if (defaultOptions.stateStore === undefined &&
|
|
42
|
-
// process.env.CI &&
|
|
43
|
-
process.env.ALCHEMY_STATE_STORE === "cloudflare") {
|
|
44
|
-
defaultOptions.stateStore = (scope) => new DOStateStore(scope);
|
|
45
|
-
}
|
|
46
40
|
// Add skipIf functionality
|
|
47
41
|
test.skipIf = it.skipIf.bind(it);
|
|
48
42
|
// Create local test scope based on filename
|
package/lib/test/bun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/test/bun.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/test/bun.ts"],"names":[],"mappings":"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"}
|
package/lib/test/vitest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,OAAO;QACf,IAAI,EAAE,OAAO,IAAI,CAAC;KACnB;CACF;AAOD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,KAAK,IAAI,GAAG;IACV;;;;;OAKG;IACH,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3E;;;;;;OAMG;IACH,CACE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAClC,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAAC;IAER;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjC,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAErD,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAClB,IAAI,EAAE,UAAU,EAChB,cAAc,GAAE,WAEf,GACA,IAAI,CAsGN"}
|
package/lib/test/vitest.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { afterAll, beforeAll, it } from "vitest";
|
|
3
3
|
import { alchemy } from "../alchemy.js";
|
|
4
|
-
import {
|
|
4
|
+
import { D1StateStore } from "../cloudflare/d1-state-store.js";
|
|
5
|
+
import { DOStateStore } from "../cloudflare/do-state-store/index.js";
|
|
6
|
+
import { FileSystemStateStore } from "../fs/file-system-state-store.js";
|
|
5
7
|
import { Scope } from "../scope.js";
|
|
8
|
+
import { SQLiteStateStore } from "../sqlite/sqlite-state-store.js";
|
|
6
9
|
import { NoopTelemetryClient } from "../util/telemetry/client.js";
|
|
7
10
|
/**
|
|
8
11
|
* Add test functionality to alchemy instance
|
|
@@ -39,10 +42,21 @@ export function test(meta, defaultOptions = {
|
|
|
39
42
|
if (!("quiet" in defaultOptions)) {
|
|
40
43
|
defaultOptions.quiet = true;
|
|
41
44
|
}
|
|
42
|
-
|
|
43
|
-
process.env.ALCHEMY_STATE_STORE
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
defaultOptions.stateStore ??= (scope) => {
|
|
46
|
+
const storeType = process.env.ALCHEMY_STATE_STORE;
|
|
47
|
+
switch (storeType) {
|
|
48
|
+
case "dofs":
|
|
49
|
+
return new DOStateStore(scope);
|
|
50
|
+
case "fs":
|
|
51
|
+
return new FileSystemStateStore(scope);
|
|
52
|
+
case "d1":
|
|
53
|
+
return new D1StateStore(scope);
|
|
54
|
+
default:
|
|
55
|
+
return new SQLiteStateStore(scope, {
|
|
56
|
+
filename: `.alchemy/${path.relative(process.cwd(), meta.filename)}.sqlite`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
46
60
|
test.skipIf = (condition) => {
|
|
47
61
|
if (condition) {
|
|
48
62
|
return (..._args) => { };
|
package/lib/test/vitest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"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"}
|
package/lib/util/memoize.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
type AsyncReturnType<T> = T extends (...args: any[]) => Promise<infer R> ? R : T;
|
|
2
|
-
export declare function memoize<F extends (...args: any[]) => Promise<any>>(fn: F, keyFn
|
|
2
|
+
export declare function memoize<F extends (...args: any[]) => Promise<any>>(fn: F, keyFn?: (...args: Parameters<F>) => string): (...args: Parameters<F>) => Promise<AsyncReturnType<F>>;
|
|
3
3
|
export {};
|
|
4
4
|
//# sourceMappingURL=memoize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/util/memoize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/util/memoize.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GACpE,CAAC,GACD,CAAC,CAAC;AAEN,wBAAgB,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAChE,EAAE,EAAE,CAAC,EACL,KAAK,GAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAqB,IAG1C,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAanE"}
|
package/lib/util/memoize.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export function memoize(fn, keyFn = defaultKeyFn) {
|
|
2
3
|
const cache = new Map();
|
|
3
4
|
return async (...args) => {
|
|
4
5
|
const key = keyFn(...args);
|
|
@@ -14,4 +15,13 @@ export function memoize(fn, keyFn) {
|
|
|
14
15
|
return await promise;
|
|
15
16
|
};
|
|
16
17
|
}
|
|
18
|
+
const defaultKeyFn = (...args) => {
|
|
19
|
+
const hash = createHash("sha256");
|
|
20
|
+
args.forEach((arg) => {
|
|
21
|
+
if (arg) {
|
|
22
|
+
hash.update(JSON.stringify(arg));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return hash.digest("hex");
|
|
26
|
+
};
|
|
17
27
|
//# sourceMappingURL=memoize.js.map
|
package/lib/util/memoize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/util/memoize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/util/memoize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,MAAM,UAAU,OAAO,CACrB,EAAK,EACL,QAA4C,YAAY;IAExD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC7D,OAAO,KAAK,EAAE,GAAG,IAAmB,EAA+B,EAAE;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxB,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alchemy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "./lib/index.js",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"build:cli:default": "./scripts/bundle-cli.sh",
|
|
16
16
|
"build:workers": "bun ./scripts/build-workers.ts",
|
|
17
17
|
"build": "rm -rf ./*.tsbuildinfo && rm -rf ./lib && tsc -b && bun run build:cli && bun run build:workers",
|
|
18
|
+
"db:generate": "drizzle-kit generate",
|
|
18
19
|
"docs:gen": "rm -rf ./docs && typedoc",
|
|
19
20
|
"postbuild": "cpx 'src/**/*/types.d.ts' lib && cpx 'src/**/*.txt' lib",
|
|
20
21
|
"publish:npm": "cp ../README.md . && bun run build && bun run build:cli && npm publish && rm README.md"
|
|
@@ -112,6 +113,10 @@
|
|
|
112
113
|
"bun": "./src/web/shadcn.ts",
|
|
113
114
|
"import": "./lib/web/shadcn.js"
|
|
114
115
|
},
|
|
116
|
+
"./sqlite": {
|
|
117
|
+
"bun": "./src/sqlite/index.ts",
|
|
118
|
+
"import": "./lib/sqlite/index.js"
|
|
119
|
+
},
|
|
115
120
|
"./web/astro": {
|
|
116
121
|
"bun": "./src/web/astro.ts",
|
|
117
122
|
"import": "./lib/web/astro.js"
|
|
@@ -144,8 +149,10 @@
|
|
|
144
149
|
"jszip": "^3.0.0",
|
|
145
150
|
"kleur": "^4.1.5",
|
|
146
151
|
"libsodium-wrappers": "^0.7.15",
|
|
152
|
+
"pathe": "^2.0.3",
|
|
147
153
|
"turndown": "^7.0.0",
|
|
148
154
|
"unenv": "2.0.0-rc.15",
|
|
155
|
+
"ws": "^8.18.3",
|
|
149
156
|
"yaml": "^2.0.0"
|
|
150
157
|
},
|
|
151
158
|
"peerDependencies": {
|
|
@@ -161,10 +168,12 @@
|
|
|
161
168
|
"@aws-sdk/client-sqs": "^3.0.0",
|
|
162
169
|
"@aws-sdk/client-ssm": "^3.0.0",
|
|
163
170
|
"@aws-sdk/client-sts": "^3.0.0",
|
|
171
|
+
"@libsql/client": "^0.15.9",
|
|
164
172
|
"@octokit/rest": "^21.1.1",
|
|
165
173
|
"ai": "^4.0.0",
|
|
166
174
|
"arktype": "^2.0.0",
|
|
167
175
|
"cloudflare": "^4.0.0",
|
|
176
|
+
"drizzle-orm": "^0.44.2",
|
|
168
177
|
"hono": "^4.0.0",
|
|
169
178
|
"prettier": "^3.0.0",
|
|
170
179
|
"stripe": "^17.0.0",
|
|
@@ -176,7 +185,6 @@
|
|
|
176
185
|
"@asteasolutions/zod-to-openapi": "^7.3.0",
|
|
177
186
|
"@aws-sdk/client-resource-groups-tagging-api": "^3.830.0",
|
|
178
187
|
"@aws-sdk/client-s3": "3.726.1",
|
|
179
|
-
"@biomejs/biome": "^1.9.4",
|
|
180
188
|
"@clack/prompts": "^0.11.0",
|
|
181
189
|
"@cloudflare/containers": "^0.0.13",
|
|
182
190
|
"@cloudflare/puppeteer": "^1.0.2",
|
|
@@ -189,14 +197,15 @@
|
|
|
189
197
|
"@types/libsodium-wrappers": "^0.7.14",
|
|
190
198
|
"@types/node": "latest",
|
|
191
199
|
"@types/turndown": "^5.0.5",
|
|
200
|
+
"@types/ws": "^8.18.1",
|
|
192
201
|
"ai": "^4.1.16",
|
|
193
|
-
"alchemy": "^0.37.1",
|
|
194
202
|
"arktype": "^2.1.16",
|
|
195
203
|
"braintrust": "^0.0.201",
|
|
196
204
|
"change-case": "^5.4.4",
|
|
197
205
|
"cloudflare": "^4.2.0",
|
|
198
206
|
"cpx": "^1.5.0",
|
|
199
207
|
"dofs": "^0.1.0",
|
|
208
|
+
"drizzle-kit": "^0.31.4",
|
|
200
209
|
"execa": "^9.6.0",
|
|
201
210
|
"fs-extra": "^11.3.0",
|
|
202
211
|
"globby": "^14.1.0",
|