alchemy 0.30.0 → 0.30.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.
- package/lib/cloudflare/bindings.d.ts +24 -4
- package/lib/cloudflare/bindings.d.ts.map +1 -1
- package/lib/cloudflare/bindings.js.map +1 -1
- package/lib/cloudflare/bound.d.ts +3 -2
- package/lib/cloudflare/bound.d.ts.map +1 -1
- package/lib/cloudflare/index.d.ts +1 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/queue.d.ts +24 -0
- package/lib/cloudflare/queue.d.ts.map +1 -1
- package/lib/cloudflare/queue.js +24 -0
- package/lib/cloudflare/queue.js.map +1 -1
- package/lib/cloudflare/secret-key.d.ts +120 -0
- package/lib/cloudflare/secret-key.d.ts.map +1 -0
- package/lib/cloudflare/secret-key.js +92 -0
- package/lib/cloudflare/secret-key.js.map +1 -0
- package/lib/cloudflare/secret.d.ts +9 -5
- package/lib/cloudflare/secret.d.ts.map +1 -1
- package/lib/cloudflare/secret.js +13 -5
- package/lib/cloudflare/secret.js.map +1 -1
- package/lib/cloudflare/secrets-store.d.ts +3 -0
- package/lib/cloudflare/secrets-store.d.ts.map +1 -1
- package/lib/cloudflare/secrets-store.js +3 -3
- package/lib/cloudflare/secrets-store.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +11 -0
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +30 -2
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.js +3 -0
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/secret.d.ts +5 -5
- package/lib/secret.d.ts.map +1 -1
- package/lib/secret.js.map +1 -1
- package/lib/serde.d.ts +5 -1
- package/lib/serde.d.ts.map +1 -1
- package/lib/serde.js +9 -2
- package/lib/serde.js.map +1 -1
- package/package.json +1 -1
- package/src/cloudflare/bindings.ts +34 -2
- package/src/cloudflare/bound.ts +36 -33
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/queue.ts +24 -0
- package/src/cloudflare/secret-key.ts +143 -0
- package/src/cloudflare/secret.ts +55 -41
- package/src/cloudflare/secrets-store.ts +4 -5
- package/src/cloudflare/worker-metadata.ts +10 -0
- package/src/cloudflare/worker.ts +30 -2
- package/src/cloudflare/wrangler.json.ts +2 -0
- package/src/secret.ts +7 -7
- package/src/serde.ts +40 -20
package/src/serde.ts
CHANGED
|
@@ -31,33 +31,39 @@ export type Serialized<T> = T extends
|
|
|
31
31
|
? {
|
|
32
32
|
"@schema": string;
|
|
33
33
|
}
|
|
34
|
-
: T extends Secret
|
|
34
|
+
: T extends Secret<string>
|
|
35
35
|
? {
|
|
36
36
|
"@secret": string;
|
|
37
37
|
}
|
|
38
|
-
: T extends
|
|
38
|
+
: T extends Secret<any>
|
|
39
39
|
? {
|
|
40
|
-
"@
|
|
40
|
+
"@secret": {
|
|
41
|
+
object: string;
|
|
42
|
+
};
|
|
41
43
|
}
|
|
42
|
-
: T extends
|
|
44
|
+
: T extends Date
|
|
43
45
|
? {
|
|
44
|
-
"@
|
|
46
|
+
"@date": string;
|
|
45
47
|
}
|
|
46
|
-
: T extends
|
|
48
|
+
: T extends Symbol
|
|
47
49
|
? {
|
|
48
|
-
"@
|
|
50
|
+
"@symbol": string;
|
|
49
51
|
}
|
|
50
|
-
: T extends
|
|
51
|
-
?
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
: T extends Scope
|
|
53
|
+
? {
|
|
54
|
+
"@scope": null;
|
|
55
|
+
}
|
|
56
|
+
: T extends Function
|
|
57
|
+
? undefined
|
|
58
|
+
: T extends Array<infer U>
|
|
59
|
+
? Array<Serialized<U>>
|
|
60
|
+
: T extends object
|
|
61
|
+
? {
|
|
62
|
+
[K in keyof T as K extends symbol
|
|
63
|
+
? string
|
|
64
|
+
: K]: Serialized<T[K]>;
|
|
65
|
+
}
|
|
66
|
+
: T;
|
|
61
67
|
|
|
62
68
|
export type SerializedScope = {
|
|
63
69
|
[fqn: ResourceFQN]: Serialized<Resource>;
|
|
@@ -121,7 +127,14 @@ export async function serialize(
|
|
|
121
127
|
return {
|
|
122
128
|
"@secret":
|
|
123
129
|
options?.encrypt !== false
|
|
124
|
-
?
|
|
130
|
+
? typeof value.unencrypted === "string"
|
|
131
|
+
? await encrypt(value.unencrypted, scope.password)
|
|
132
|
+
: {
|
|
133
|
+
data: await encrypt(
|
|
134
|
+
JSON.stringify(value.unencrypted),
|
|
135
|
+
scope.password,
|
|
136
|
+
),
|
|
137
|
+
}
|
|
125
138
|
: value.unencrypted,
|
|
126
139
|
};
|
|
127
140
|
} else if (isType(value)) {
|
|
@@ -203,13 +216,20 @@ export async function deserialize(
|
|
|
203
216
|
);
|
|
204
217
|
}
|
|
205
218
|
if (value && typeof value === "object") {
|
|
206
|
-
if (
|
|
219
|
+
if (value["@secret"]) {
|
|
207
220
|
if (!scope.password) {
|
|
208
221
|
throw new Error(
|
|
209
222
|
"Cannot deserialize secret without password, did you forget to set password when initializing your alchemy app?\n" +
|
|
210
223
|
"See: https://alchemy.run/docs/concepts/secret.html#encryption-password",
|
|
211
224
|
);
|
|
212
225
|
}
|
|
226
|
+
if (typeof value["@secret"] === "object") {
|
|
227
|
+
return new Secret(
|
|
228
|
+
JSON.parse(
|
|
229
|
+
await decryptWithKey(value["@secret"].data, scope.password),
|
|
230
|
+
),
|
|
231
|
+
);
|
|
232
|
+
}
|
|
213
233
|
return new Secret(await decryptWithKey(value["@secret"], scope.password));
|
|
214
234
|
} else if ("@schema" in value) {
|
|
215
235
|
return value["@schema"];
|