alchemy 0.15.11 → 0.15.13

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.
@@ -2,10 +2,11 @@ import type { Context } from "../context.js";
2
2
  import { Resource } from "../resource.js";
3
3
  import type { Secret } from "../secret.js";
4
4
  import { type CloudflareApiOptions } from "./api.js";
5
+ import { type PermissionGroupName } from "./permission-groups.js";
5
6
  /**
6
7
  * Permission group for a token policy
7
8
  */
8
- export interface TokenPolicyPermissionGroup {
9
+ export type TokenPolicyPermissionGroup = {
9
10
  /**
10
11
  * ID of the permission group
11
12
  */
@@ -14,7 +15,7 @@ export interface TokenPolicyPermissionGroup {
14
15
  * Optional metadata for the permission group
15
16
  */
16
17
  meta?: Record<string, any>;
17
- }
18
+ };
18
19
  /**
19
20
  * Policy that defines what the token can access
20
21
  */
@@ -26,12 +27,18 @@ export interface TokenPolicy {
26
27
  /**
27
28
  * Permission groups to include in the policy
28
29
  */
29
- permissionGroups: TokenPolicyPermissionGroup[];
30
+ permissionGroups: (PermissionGroupName | TokenPolicyPermissionGroup)[];
30
31
  /**
31
32
  * Resources the policy applies to
32
33
  */
33
- resources: Record<string, string>;
34
+ resources: {
35
+ [key in TokenPolicyResourceKey]?: string;
36
+ };
34
37
  }
38
+ /**
39
+ * @see https://developers.cloudflare.com/fundamentals/api/reference/permissions/
40
+ */
41
+ type TokenPolicyResourceKey = `com.cloudflare.api.account` | `com.cloudflare.api.account.${string}` | `com.cloudflare.api.account.zone.${string}` | `com.cloudflare.api.user.${string}`;
35
42
  /**
36
43
  * Condition for token usage (e.g., IP restrictions)
37
44
  */
@@ -78,13 +85,17 @@ export interface AccountApiTokenProps extends CloudflareApiOptions {
78
85
  /**
79
86
  * Output returned after Account API Token creation/update
80
87
  */
81
- export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">, AccountApiTokenProps {
88
+ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken"> {
82
89
  /**
83
90
  * The ID of the token
84
91
  *
85
92
  * Equiv. to ACCESS_KEY_ID
86
93
  */
87
94
  id: string;
95
+ /**
96
+ * Name of the token
97
+ */
98
+ name: string;
88
99
  /**
89
100
  * Status of the token
90
101
  */
@@ -101,7 +112,7 @@ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">
101
112
  *
102
113
  * An alias of {@link id}
103
114
  */
104
- accessKeyId: string;
115
+ accessKeyId: Secret;
105
116
  /**
106
117
  * Secret access key for the token
107
118
  *
@@ -109,7 +120,7 @@ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">
109
120
  *
110
121
  * @see https://developers.cloudflare.com/r2/api/tokens/#get-s3-api-credentials-from-an-api-token
111
122
  */
112
- secretAccessKey: string;
123
+ secretAccessKey: Secret;
113
124
  }
114
125
  /**
115
126
  * Creates a Cloudflare Account API Token with specified permissions.
@@ -121,21 +132,13 @@ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">
121
132
  * @see https://developers.cloudflare.com/api/resources/accounts/subresources/tokens/methods/create/
122
133
  *
123
134
  * @example
124
- * // First, fetch all permission groups
125
- * const permissions = await PermissionGroups("cloudflare-permissions", {
126
- * accountId: cfAccountId,
127
- * });
128
- *
129
135
  * // Create a token with read-only permissions for specific zones
130
136
  * const readOnlyToken = await AccountApiToken("readonly-token", {
131
137
  * name: "Readonly Zone Token",
132
138
  * policies: [
133
139
  * {
134
140
  * effect: "allow",
135
- * permissionGroups: [
136
- * { id: permissions["Zone Read"].id },
137
- * { id: permissions["Analytics Read"].id }
138
- * ],
141
+ * permissionGroups: ["Zone Read", "Analytics Read"],
139
142
  * resources: {
140
143
  * "com.cloudflare.api.account.zone.22b1de5f1c0e4b3ea97bb1e963b06a43": "*",
141
144
  * "com.cloudflare.api.account.zone.eb78d65290b24279ba6f44721b3ea3c4": "*"
@@ -152,9 +155,7 @@ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">
152
155
  * policies: [
153
156
  * {
154
157
  * effect: "allow",
155
- * permissionGroups: [
156
- * { id: permissions["Worker Routes Edit"].id }
157
- * ],
158
+ * permissionGroups: ["Worker Routes Edit"],
158
159
  * resources: {
159
160
  * "com.cloudflare.api.account.worker.route.*": "*"
160
161
  * }
@@ -169,6 +170,22 @@ export interface AccountApiToken extends Resource<"cloudflare::AccountApiToken">
169
170
  * }
170
171
  * }
171
172
  * });
173
+ *
174
+ * @example
175
+ * // Create a token with bucket access permissions
176
+ * const storageToken = await AccountApiToken("account-access-token", {
177
+ * name: "alchemy-account-access-token",
178
+ * policies: [
179
+ * {
180
+ * effect: "allow",
181
+ * permissionGroups: ["Workers R2 Storage Write"],
182
+ * resources: {
183
+ * "com.cloudflare.api.account": "*",
184
+ * },
185
+ * },
186
+ * ],
187
+ * });
172
188
  */
173
189
  export declare const AccountApiToken: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<AccountApiToken>, id: string, props: AccountApiTokenProps) => Promise<AccountApiToken>);
190
+ export {};
174
191
  //# sourceMappingURL=account-api-token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-api-token.d.ts","sourceRoot":"","sources":["../../src/cloudflare/account-api-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,oBAAoB,EAAuB,MAAM,UAAU,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAE/C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAEd;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AA4BD;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,QAAQ,CAAC,6BAA6B,CAAC,EAC7C,oBAAoB;IACtB;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,eAAe,yFAGlB,OAAO,CAAC,eAAe,CAAC,MAC1B,MAAM,SACH,oBAAoB,KAC1B,OAAO,CAAC,eAAe,CAAC,CA8I5B,CAAC"}
1
+ {"version":3,"file":"account-api-token.d.ts","sourceRoot":"","sources":["../../src/cloudflare/account-api-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,CAAC,mBAAmB,GAAG,0BAA0B,CAAC,EAAE,CAAC;IAEvE;;OAEG;IACH,SAAS,EAAE;SACR,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,MAAM;KACzC,CAAC;CACH;AAED;;GAEG;AACH,KAAK,sBAAsB,GACvB,4BAA4B,GAC5B,8BAA8B,MAAM,EAAE,GAEtC,mCAAmC,MAAM,EAAE,GAE3C,2BAA2B,MAAM,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAEd;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AA4BD;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,QAAQ,CAAC,6BAA6B,CAAC;IAC/C;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,eAAe,yFAGlB,OAAO,CAAC,eAAe,CAAC,MAC1B,MAAM,SACH,oBAAoB,KAC1B,OAAO,CAAC,eAAe,CAAC,CAwJ5B,CAAC"}
@@ -2,6 +2,7 @@ import { alchemy } from "../alchemy.js";
2
2
  import { Resource } from "../resource.js";
3
3
  import { sha256 } from "../util/sha256.js";
4
4
  import { createCloudflareApi } from "./api.js";
5
+ import { PermissionGroups, } from "./permission-groups.js";
5
6
  /**
6
7
  * Creates a Cloudflare Account API Token with specified permissions.
7
8
  *
@@ -12,21 +13,13 @@ import { createCloudflareApi } from "./api.js";
12
13
  * @see https://developers.cloudflare.com/api/resources/accounts/subresources/tokens/methods/create/
13
14
  *
14
15
  * @example
15
- * // First, fetch all permission groups
16
- * const permissions = await PermissionGroups("cloudflare-permissions", {
17
- * accountId: cfAccountId,
18
- * });
19
- *
20
16
  * // Create a token with read-only permissions for specific zones
21
17
  * const readOnlyToken = await AccountApiToken("readonly-token", {
22
18
  * name: "Readonly Zone Token",
23
19
  * policies: [
24
20
  * {
25
21
  * effect: "allow",
26
- * permissionGroups: [
27
- * { id: permissions["Zone Read"].id },
28
- * { id: permissions["Analytics Read"].id }
29
- * ],
22
+ * permissionGroups: ["Zone Read", "Analytics Read"],
30
23
  * resources: {
31
24
  * "com.cloudflare.api.account.zone.22b1de5f1c0e4b3ea97bb1e963b06a43": "*",
32
25
  * "com.cloudflare.api.account.zone.eb78d65290b24279ba6f44721b3ea3c4": "*"
@@ -43,9 +36,7 @@ import { createCloudflareApi } from "./api.js";
43
36
  * policies: [
44
37
  * {
45
38
  * effect: "allow",
46
- * permissionGroups: [
47
- * { id: permissions["Worker Routes Edit"].id }
48
- * ],
39
+ * permissionGroups: ["Worker Routes Edit"],
49
40
  * resources: {
50
41
  * "com.cloudflare.api.account.worker.route.*": "*"
51
42
  * }
@@ -60,6 +51,21 @@ import { createCloudflareApi } from "./api.js";
60
51
  * }
61
52
  * }
62
53
  * });
54
+ *
55
+ * @example
56
+ * // Create a token with bucket access permissions
57
+ * const storageToken = await AccountApiToken("account-access-token", {
58
+ * name: "alchemy-account-access-token",
59
+ * policies: [
60
+ * {
61
+ * effect: "allow",
62
+ * permissionGroups: ["Workers R2 Storage Write"],
63
+ * resources: {
64
+ * "com.cloudflare.api.account": "*",
65
+ * },
66
+ * },
67
+ * ],
68
+ * });
63
69
  */
64
70
  export const AccountApiToken = Resource("cloudflare::AccountApiToken", async function (id, props) {
65
71
  // Create Cloudflare API client with automatic account discovery
@@ -83,16 +89,26 @@ export const AccountApiToken = Resource("cloudflare::AccountApiToken", async fun
83
89
  // Return destroyed state
84
90
  return this.destroy();
85
91
  }
92
+ const permissionGroups = await PermissionGroups("cloudflare-permission-groups", props);
86
93
  // Transform our properties to API format
87
94
  const apiPayload = {
88
95
  name: props.name,
89
96
  policies: props.policies.map((policy) => ({
90
97
  effect: policy.effect,
91
- permission_groups: policy.permissionGroups.map((pg) => ({
92
- id: pg.id,
93
- meta: pg.meta || {},
98
+ permission_groups: policy.permissionGroups.map((pg) => typeof pg === "string"
99
+ ? {
100
+ id: permissionGroups[pg].id,
101
+ }
102
+ : {
103
+ id: pg.id,
104
+ meta: pg.meta || {},
105
+ }),
106
+ resources: Object.fromEntries(Object.entries(policy.resources).map(([key, value]) => {
107
+ if (key === "com.cloudflare.api.account") {
108
+ return [`com.cloudflare.api.account.${api.accountId}`, value];
109
+ }
110
+ return [key, value];
94
111
  })),
95
- resources: policy.resources,
96
112
  })),
97
113
  // Format dates for Cloudflare API (removing milliseconds)
98
114
  ...(props.expiresOn
@@ -153,14 +169,6 @@ export const AccountApiToken = Resource("cloudflare::AccountApiToken", async fun
153
169
  id: tokenData.id,
154
170
  name: tokenData.name,
155
171
  status: tokenData.status,
156
- policies: tokenData.policies.map((policy) => ({
157
- effect: policy.effect,
158
- permissionGroups: policy.permission_groups.map((pg) => ({
159
- id: pg.id,
160
- meta: pg.meta,
161
- })),
162
- resources: policy.resources,
163
- })),
164
172
  ...(tokenData.expires_on ? { expiresOn: tokenData.expires_on } : {}),
165
173
  ...(tokenData.not_before ? { notBefore: tokenData.not_before } : {}),
166
174
  ...(tokenData.condition
@@ -176,8 +184,8 @@ export const AccountApiToken = Resource("cloudflare::AccountApiToken", async fun
176
184
  }
177
185
  : {}),
178
186
  value: tokenValue,
179
- accessKeyId: tokenData.id,
180
- secretAccessKey: sha256(tokenValue.unencrypted),
187
+ accessKeyId: alchemy.secret(tokenData.id),
188
+ secretAccessKey: alchemy.secret(sha256(tokenValue.unencrypted)),
181
189
  });
182
190
  });
183
191
  //# sourceMappingURL=account-api-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-api-token.js","sourceRoot":"","sources":["../../src/cloudflare/account-api-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-api-token.js","sourceRoot":"","sources":["../../src/cloudflare/account-api-token.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export interface PermissionGroup {
18
18
  */
19
19
  scopes: string[];
20
20
  }
21
+ export type PermissionGroupName = R2PermissionGroups;
22
+ export type R2PermissionGroups = "Workers R2 Storage Write" | "Workers R2 Storage Read" | "Workers R2 Storage Bucket Item Write" | "Workers R2 Storage Bucket Item Read";
21
23
  /**
22
24
  * All Cloudflare permission groups mapped by name to ID
23
25
  *
@@ -1 +1 @@
1
- {"version":3,"file":"permission-groups.d.ts","sourceRoot":"","sources":["../../src/cloudflare/permission-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAYD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,8BAA8B,CAAC,GAAG;IACxE;;;OAGG;IACH,0BAA0B,EAAE,eAAe,CAAC;IAE5C;;;OAGG;IACH,yBAAyB,EAAE,eAAe,CAAC;IAE3C;;OAEG;IACH,sCAAsC,EAAE,eAAe,CAAC;IAExD;;OAEG;IACH,qCAAqC,EAAE,eAAe,CAAC;IAEvD;;OAEG;IACH,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB,yFAGnB,OAAO,CAAC,gBAAgB,CAAC,MAC3B,MAAM,YACD,oBAAoB,KAC5B,OAAO,CAAC,gBAAgB,CAAC,CAkC7B,CAAC"}
1
+ {"version":3,"file":"permission-groups.d.ts","sourceRoot":"","sources":["../../src/cloudflare/permission-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAYD,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAC1B,0BAA0B,GAC1B,yBAAyB,GACzB,sCAAsC,GACtC,qCAAqC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,8BAA8B,CAAC,GAAG;IACxE;;;OAGG;IACH,0BAA0B,EAAE,eAAe,CAAC;IAE5C;;;OAGG;IACH,yBAAyB,EAAE,eAAe,CAAC;IAE3C;;OAEG;IACH,sCAAsC,EAAE,eAAe,CAAC;IAExD;;OAEG;IACH,qCAAqC,EAAE,eAAe,CAAC;IAEvD;;OAEG;IACH,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB,yFAGnB,OAAO,CAAC,gBAAgB,CAAC,MAC3B,MAAM,YACD,oBAAoB,KAC5B,OAAO,CAAC,gBAAgB,CAAC,CAkC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"permission-groups.js","sourceRoot":"","sources":["../../src/cloudflare/permission-groups.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AAkE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CACtC,8BAA8B,EAC9B,KAAK,WAEH,EAAU,EACV,UAAgC,EAAE;IAElC,8CAA8C;IAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,wBAAwB;IACxB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,aAAa,GAAG,CAAC,SAAS,2BAA2B,CACtD,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,UAAU,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;IAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CACT,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAC5B,CACtB,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"permission-groups.js","sourceRoot":"","sources":["../../src/cloudflare/permission-groups.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AA0E1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CACtC,8BAA8B,EAC9B,KAAK,WAEH,EAAU,EACV,UAAgC,EAAE;IAElC,8CAA8C;IAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,wBAAwB;IACxB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,aAAa,GAAG,CAAC,SAAS,2BAA2B,CACtD,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,UAAU,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;IAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CACT,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAC5B,CACtB,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { Secret } from "../secret.js";
2
+ /**
3
+ * Options for Upstash API requests
4
+ */
5
+ export interface UpstashApiOptions {
6
+ /**
7
+ * API key to use (overrides environment variable)
8
+ */
9
+ apiKey?: Secret;
10
+ /**
11
+ * Email to use (overrides environment variable)
12
+ */
13
+ email?: string;
14
+ }
15
+ /**
16
+ * Minimal API client using raw fetch
17
+ */
18
+ export declare class UpstashApi {
19
+ /** Base URL for API */
20
+ readonly baseUrl: string;
21
+ /** API key */
22
+ readonly apiKey: string;
23
+ /** Email */
24
+ readonly email: string;
25
+ /**
26
+ * Create a new API client
27
+ *
28
+ * @param options API options
29
+ */
30
+ constructor(options?: UpstashApiOptions);
31
+ /**
32
+ * Make a request to the API
33
+ *
34
+ * @param path API path (without base URL)
35
+ * @param init Fetch init options
36
+ * @returns Raw Response object from fetch
37
+ */
38
+ fetch(path: string, init?: RequestInit): Promise<Response>;
39
+ /**
40
+ * Helper for GET requests
41
+ */
42
+ get(path: string, init?: RequestInit): Promise<Response>;
43
+ /**
44
+ * Helper for POST requests
45
+ */
46
+ post(path: string, body: any, init?: RequestInit): Promise<Response>;
47
+ /**
48
+ * Helper for DELETE requests
49
+ */
50
+ delete(path: string, init?: RequestInit): Promise<Response>;
51
+ }
52
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/upstash/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY;IACZ,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;gBACS,OAAO,GAAE,iBAAsB;IAe3C;;;;;;OAMG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmBpE;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIlE;;OAEG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC;IAQpB;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGtE"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Minimal API client using raw fetch
3
+ */
4
+ export class UpstashApi {
5
+ /** Base URL for API */
6
+ baseUrl;
7
+ /** API key */
8
+ apiKey;
9
+ /** Email */
10
+ email;
11
+ /**
12
+ * Create a new API client
13
+ *
14
+ * @param options API options
15
+ */
16
+ constructor(options = {}) {
17
+ this.baseUrl = "https://api.upstash.com/v2";
18
+ this.apiKey =
19
+ options.apiKey?.unencrypted ?? process.env.UPSTASH_API_KEY ?? "";
20
+ this.email = options.email ?? process.env.UPSTASH_EMAIL ?? "";
21
+ if (!this.apiKey) {
22
+ throw new Error("UPSTASH_API_KEY environment variable is required");
23
+ }
24
+ if (!this.email) {
25
+ throw new Error("UPSTASH_EMAIL environment variable is required");
26
+ }
27
+ }
28
+ /**
29
+ * Make a request to the API
30
+ *
31
+ * @param path API path (without base URL)
32
+ * @param init Fetch init options
33
+ * @returns Raw Response object from fetch
34
+ */
35
+ async fetch(path, init = {}) {
36
+ const headers = {
37
+ "Content-Type": "application/json",
38
+ Authorization: `Basic ${btoa(`${this.email}:${this.apiKey}`)}`,
39
+ };
40
+ if (init.headers) {
41
+ const initHeaders = init.headers;
42
+ Object.keys(initHeaders).forEach((key) => {
43
+ headers[key] = initHeaders[key];
44
+ });
45
+ }
46
+ return fetch(`${this.baseUrl}${path}`, {
47
+ ...init,
48
+ headers,
49
+ });
50
+ }
51
+ /**
52
+ * Helper for GET requests
53
+ */
54
+ async get(path, init = {}) {
55
+ return this.fetch(path, { ...init, method: "GET" });
56
+ }
57
+ /**
58
+ * Helper for POST requests
59
+ */
60
+ async post(path, body, init = {}) {
61
+ return this.fetch(path, {
62
+ ...init,
63
+ method: "POST",
64
+ body: JSON.stringify(body),
65
+ });
66
+ }
67
+ /**
68
+ * Helper for DELETE requests
69
+ */
70
+ async delete(path, init = {}) {
71
+ return this.fetch(path, { ...init, method: "DELETE" });
72
+ }
73
+ }
74
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/upstash/api.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB,uBAAuB;IACd,OAAO,CAAS;IAEzB,cAAc;IACL,MAAM,CAAS;IAExB,YAAY;IACH,KAAK,CAAS;IAEvB;;;;OAIG;IACH,YAAY,UAA6B,EAAE;QACzC,IAAI,CAAC,OAAO,GAAG,4BAA4B,CAAC;QAC5C,IAAI,CAAC,MAAM;YACT,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC9C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;SAC/D,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAiC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YACrC,GAAG,IAAI;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAAS,EACT,OAAoB,EAAE;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,IAAI;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Custom error class for Upstash API errors
3
+ */
4
+ export declare class UpstashError extends Error {
5
+ /**
6
+ * HTTP status code
7
+ */
8
+ statusCode: number;
9
+ /**
10
+ * Original response object
11
+ */
12
+ response: Response;
13
+ /**
14
+ * Create a new Upstash error
15
+ *
16
+ * @param message Error message
17
+ * @param statusCode HTTP status code
18
+ * @param response Original response object
19
+ */
20
+ constructor(message: string, statusCode: number, response: Response);
21
+ }
22
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/upstash/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;OAMG;gBACS,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAMpE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Custom error class for Upstash API errors
3
+ */
4
+ export class UpstashError extends Error {
5
+ /**
6
+ * HTTP status code
7
+ */
8
+ statusCode;
9
+ /**
10
+ * Original response object
11
+ */
12
+ response;
13
+ /**
14
+ * Create a new Upstash error
15
+ *
16
+ * @param message Error message
17
+ * @param statusCode HTTP status code
18
+ * @param response Original response object
19
+ */
20
+ constructor(message, statusCode, response) {
21
+ super(message);
22
+ this.name = "UpstashError";
23
+ this.statusCode = statusCode;
24
+ this.response = response;
25
+ }
26
+ }
27
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/upstash/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC;;OAEG;IACH,UAAU,CAAS;IAEnB;;OAEG;IACH,QAAQ,CAAW;IAEnB;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,UAAkB,EAAE,QAAkB;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from "./api.js";
2
+ export * from "./error.js";
3
+ export * from "./redis.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upstash/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./api.js";
2
+ export * from "./error.js";
3
+ export * from "./redis.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/upstash/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}