@rubytech/create-maxy-code 0.1.457 → 0.1.458
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/package.json +1 -1
- package/payload/platform/lib/mcp-lifeline/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/mcp-lifeline/dist/index.js +22 -1
- package/payload/platform/lib/mcp-lifeline/dist/index.js.map +1 -1
- package/payload/platform/lib/mcp-lifeline/src/__tests__/lifeline.test.ts +26 -0
- package/payload/platform/lib/mcp-lifeline/src/index.ts +24 -1
- package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js +135 -0
- package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js.map +1 -1
- package/payload/platform/lib/storage-broker/dist/cf-exec.d.ts.map +1 -1
- package/payload/platform/lib/storage-broker/dist/cf-exec.js +61 -28
- package/payload/platform/lib/storage-broker/dist/cf-exec.js.map +1 -1
- package/payload/platform/lib/storage-broker/dist/house-credential.d.ts.map +1 -1
- package/payload/platform/lib/storage-broker/dist/house-credential.js +6 -2
- package/payload/platform/lib/storage-broker/dist/house-credential.js.map +1 -1
- package/payload/platform/lib/storage-broker/src/__tests__/cf-exec.test.ts +153 -0
- package/payload/platform/lib/storage-broker/src/cf-exec.ts +85 -41
- package/payload/platform/lib/storage-broker/src/house-credential.ts +6 -2
- package/payload/platform/plugins/cloudflare/bin/__tests__/cf-token.test.sh +145 -4
- package/payload/platform/plugins/cloudflare/bin/cf-token.sh +60 -3
- package/payload/platform/plugins/cloudflare/references/api.md +1 -1
- package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js +16 -3
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +108 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +42 -15
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +32 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +3 -5
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.d.ts +7 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.js +17 -3
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +6 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +6 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.js +3 -4
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js +2 -4
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js.map +1 -1
- package/payload/platform/plugins/outlook/references/graph-surfaces.md +14 -2
- package/payload/platform/plugins/storage-broker/PLUGIN.md +1 -1
- package/payload/server/{chunk-SDYRKIYY.js → chunk-64FGYKNZ.js} +51 -29
- package/payload/server/server.js +2 -2
- package/payload/server/{src-554BYJMN.js → src-S7C4P6TT.js} +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-attachment.js","sourceRoot":"","sources":["../../src/tools/mail-attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAyCpC,MAAM,UAAU,cAAc,CAAC,SAA6B;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,iCAAiC;YACpC,OAAO,MAAM,CAAC;QAChB,KAAK,iCAAiC;YACpC,OAAO,MAAM,CAAC;QAChB,KAAK,sCAAsC;YACzC,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAyB,EACzB,IAA2B;IAE3B,0EAA0E;IAC1E,wEAAwE;IACxE,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,IAAI,IAAwB,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,GAAG,CAAC;QACF,MAAM,SAAS,GAAG,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QACnF,MAAM,IAAI,GAAG,MAAM,SAAS,CAC1B,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAChF,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAA4D,CAAC;QACtF,CAAC,EACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"mail-attachment.js","sourceRoot":"","sources":["../../src/tools/mail-attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-fetch-body.d.ts","sourceRoot":"","sources":["../../src/tools/mail-fetch-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAyBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"mail-fetch-body.d.ts","sourceRoot":"","sources":["../../src/tools/mail-fetch-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAyBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CAmC1B"}
|
|
@@ -12,10 +12,8 @@ function addrs(list) {
|
|
|
12
12
|
* body is returned as-is (empty), and the logged `bytes` surfaces a shortfall.
|
|
13
13
|
*/
|
|
14
14
|
export async function runMailFetchBody(config, args) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
.select(SELECT)
|
|
18
|
-
.get()), { tool: "mail-fetch-body" });
|
|
15
|
+
const path = `/me/messages/${encodeURIComponent(args.messageId)}`;
|
|
16
|
+
const msg = await callGraph(config, async (client) => (await client.api(path).select(SELECT).get()), { tool: "mail-fetch-body", target: path });
|
|
19
17
|
const rawType = (msg.body?.contentType ?? "text").toLowerCase();
|
|
20
18
|
const contentType = rawType === "html" ? "html" : "text";
|
|
21
19
|
const raw = msg.body?.content ?? "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-fetch-body.js","sourceRoot":"","sources":["../../src/tools/mail-fetch-body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAgCpC,MAAM,MAAM,GACV,sGAAsG,CAAC;AAEzG,SAAS,KAAK,CAAC,IAAgC;IAC7C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,IAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"mail-fetch-body.js","sourceRoot":"","sources":["../../src/tools/mail-fetch-body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAgCpC,MAAM,MAAM,GACV,sGAAsG,CAAC;AAEzG,SAAS,KAAK,CAAC,IAAgC;IAC7C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,IAA2B;IAE3B,MAAM,IAAI,GAAG,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAe,EAC7E,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,CAC1C,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,WAAW,GAAoB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAE5D,GAAG,CAAC;QACF,KAAK,EAAE,iBAAiB;QACxB,EAAE,EAAE,YAAY;QAChB,OAAO,EAAE,MAAM,CAAC,SAAS;QACzB,EAAE,EAAE,IAAI,CAAC,SAAS;QAClB,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,IAAI,IAAI;QAC7C,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3B,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;QAC1C,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;QAC3B,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,KAAK;QAC3C,WAAW;QACX,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Microsoft Graph endpoints used by each tool, with the response shape and the fields selected.
|
|
4
4
|
|
|
5
|
+
## Item id contract
|
|
6
|
+
|
|
7
|
+
Outlook item ids are **not** stable by default. Graph rotates an item's id when the item is moved or re-saved — including by the operator's own mail client, which no code here controls. A rotated id returns `404 ErrorItemNotFound`, so a handle stored moments earlier can stop resolving with nothing wrong on our side. This is exactly how a live draft appeared to "vanish" from an operator's Drafts folder: our `PATCH` returned `200`, the client rotated the id, and the next call by that id 404'd.
|
|
8
|
+
|
|
9
|
+
The plugin therefore opts into **immutable ids**, sending `Prefer: IdType="ImmutableId"` on every request. It is set once, in `createGraphClient` — the single factory behind every Graph call — so every tool inherits it.
|
|
10
|
+
|
|
11
|
+
**This is plugin-wide by necessity, not preference.** The immutable and default namespaces carry *different values for the same item*, so an id produced by a request that omitted the header cannot address that item on a request that sent it. Never add or remove the header per tool or per call. Two `fetch()` calls sit outside the factory and are correctly unaffected: `account-register`'s `/me` lookup (a directory id, not an Outlook item id) and the attachment upload-session `PUT` (a pre-authenticated URL, not a Graph resource path).
|
|
12
|
+
|
|
13
|
+
A per-request `.header()` (`outlook-mail-search`'s `ConsistencyLevel`) merges with the central header rather than displacing it — asserted in `graph-client.test.ts`, because a silent drop there would leave search alone emitting regular ids. A per-request header of the *same name* is a different matter: `Prefer` is also how Graph carries `outlook.timezone` and `odata.maxpagesize`, and setting it per-call would replace the id opt-in for that call. `Prefer` is comma-separated — append to `IMMUTABLE_ID_PREFER`, never set `Prefer` alone.
|
|
14
|
+
|
|
15
|
+
**Across a plugin restart**, ids and opaque cursors (`nextCursor`) an agent is still holding were minted in the other namespace and will not resolve. This self-heals on the next list or create and affects one conversation; nothing persists a Graph id today.
|
|
16
|
+
|
|
5
17
|
## outlook-mail-list
|
|
6
18
|
|
|
7
19
|
**Endpoint (Inbox):** `GET /me/mailFolders/Inbox/messages?$top={N}&$orderby=receivedDateTime DESC&$select=id,subject,from,receivedDateTime,bodyPreview,isRead,hasAttachments`
|
|
@@ -122,7 +134,7 @@ Recoverable — moves to Deleted Items, never hard-deletes or expunges. An id al
|
|
|
122
134
|
|
|
123
135
|
**Endpoint:** `PATCH /me/messages/{draftId}` (`ResponseType.RAW`; success asserted on HTTP 200) with only the supplied fields (`subject`, `body` → `{ contentType, content }`, `toRecipients`, `ccRecipients`, `bccRecipients`). Graph drafts are mutable, so no delete-and-reappend. At least one field is required; a PATCH on a sent (non-draft) message returns a Graph error surfaced unchanged.
|
|
124
136
|
|
|
125
|
-
**Returned shape:** `{ draftId: string; updated: true }
|
|
137
|
+
**Returned shape:** `{ draftId: string; updated: true }` — `draftId` is the id Graph reported for the updated draft, which is authoritative over the id passed in. The tool refuses rather than report `updated: true` for an id it has not read back.
|
|
126
138
|
|
|
127
139
|
## outlook-mail-send
|
|
128
140
|
|
|
@@ -150,7 +162,7 @@ Recoverable — moves to Deleted Items, never hard-deletes or expunges. An id al
|
|
|
150
162
|
|
|
151
163
|
**Request body:** the `message` object above (no `saveToSentItems` wrapper).
|
|
152
164
|
|
|
153
|
-
**Success:** HTTP `201 Created` with the created message JSON; `id` is the
|
|
165
|
+
**Success:** HTTP `201 Created` with the created message JSON; `id` is the handle passed to `outlook-draft-send`. It is durable only because the plugin opts into immutable ids — see [Item id contract](#item-id-contract).
|
|
154
166
|
|
|
155
167
|
## outlook-draft-send
|
|
156
168
|
|
|
@@ -35,7 +35,7 @@ mcp-manifest: auto
|
|
|
35
35
|
|
|
36
36
|
# storage-broker
|
|
37
37
|
|
|
38
|
-
The isolation boundary for per-account Cloudflare D1 and R2 on a multi-tenant install. A sub-account agent
|
|
38
|
+
The isolation boundary for per-account Cloudflare D1 and R2 on a multi-tenant install. A sub-account agent is issued no Cloudflare credential: its `cloudflare.env` carries no account-wide token, and `cf-token.sh` refuses to mint one for a non-house caller. The broker is therefore the only *sanctioned* route to D1 and R2, and it denies cross-account access before calling Cloudflare. It is not an OS-enforced boundary: all accounts share one unix user, so an agent holding `Bash` can read the house credential and reach `wrangler` outside the broker. Closing that requires OS user separation, tracked separately. Every D1 and R2 operation goes through these tools, which forward the caller's account as the platform-stamped `x-maxy-caller-account` header (never a tool argument) to the house-level broker service. The service holds the sole account-wide credential in `config/cloudflare-house.env`, resolves each resource's recorded owner, and denies any cross-account access before it ever calls Cloudflare.
|
|
39
39
|
|
|
40
40
|
## Tools
|
|
41
41
|
|
|
@@ -138,6 +138,19 @@ function parseJson(raw, context) {
|
|
|
138
138
|
throw new Error(`storage-broker: ${context} returned non-JSON output: ${raw}`);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
+
async function cfApiJson(fetchFn, url, init, context) {
|
|
142
|
+
const res = await fetchFn(url, init);
|
|
143
|
+
const body = await res.text();
|
|
144
|
+
if (!res.ok) {
|
|
145
|
+
throw new Error(`storage-broker: ${context} failed: ${res.status}
|
|
146
|
+
${body}`);
|
|
147
|
+
}
|
|
148
|
+
const parsed = parseJson(body, context);
|
|
149
|
+
if (parsed?.success !== true) {
|
|
150
|
+
throw new Error(`storage-broker: ${context} API error: ${body}`);
|
|
151
|
+
}
|
|
152
|
+
return { parsed, body };
|
|
153
|
+
}
|
|
141
154
|
function makeCfExec(cred, run = defaultRun2, fetchFn = defaultFetch) {
|
|
142
155
|
const env = {
|
|
143
156
|
...process.env,
|
|
@@ -151,24 +164,24 @@ function makeCfExec(cred, run = defaultRun2, fetchFn = defaultFetch) {
|
|
|
151
164
|
},
|
|
152
165
|
async d1Create(name) {
|
|
153
166
|
const url = `https://api.cloudflare.com/client/v4/accounts/${cred.accountId}/d1/database`;
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
167
|
+
const { parsed, body } = await cfApiJson(
|
|
168
|
+
fetchFn,
|
|
169
|
+
url,
|
|
170
|
+
{
|
|
171
|
+
method: "POST",
|
|
172
|
+
headers: {
|
|
173
|
+
Authorization: `Bearer ${cred.apiToken}`,
|
|
174
|
+
"Content-Type": "application/json"
|
|
175
|
+
},
|
|
176
|
+
body: JSON.stringify({ name })
|
|
159
177
|
},
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
if (
|
|
164
|
-
throw new Error(`storage-broker: d1 create failed: ${res.status}
|
|
165
|
-
${body}`);
|
|
166
|
-
}
|
|
167
|
-
const parsed = parseJson(body, "d1 create");
|
|
168
|
-
if (parsed.success !== true || typeof parsed.result?.uuid !== "string") {
|
|
178
|
+
"d1 create"
|
|
179
|
+
);
|
|
180
|
+
const uuid = parsed.result?.uuid;
|
|
181
|
+
if (typeof uuid !== "string") {
|
|
169
182
|
throw new Error(`storage-broker: d1 create API error: ${body}`);
|
|
170
183
|
}
|
|
171
|
-
return { uuid
|
|
184
|
+
return { uuid };
|
|
172
185
|
},
|
|
173
186
|
async d1Query(name, sql) {
|
|
174
187
|
const { stdout } = await run(
|
|
@@ -179,21 +192,30 @@ ${body}`);
|
|
|
179
192
|
return parseJson(stdout, "d1 execute");
|
|
180
193
|
},
|
|
181
194
|
async r2List() {
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
+
const base = `https://api.cloudflare.com/client/v4/accounts/${cred.accountId}/r2/buckets`;
|
|
196
|
+
const buckets = [];
|
|
197
|
+
const seen = /* @__PURE__ */ new Set();
|
|
198
|
+
let cursor;
|
|
199
|
+
for (; ; ) {
|
|
200
|
+
const url = cursor === void 0 ? base : `${base}?cursor=${encodeURIComponent(cursor)}`;
|
|
201
|
+
const { parsed } = await cfApiJson(
|
|
202
|
+
fetchFn,
|
|
203
|
+
url,
|
|
204
|
+
{ method: "GET", headers: { Authorization: `Bearer ${cred.apiToken}` } },
|
|
205
|
+
"r2 bucket list"
|
|
206
|
+
);
|
|
207
|
+
const page = parsed;
|
|
208
|
+
for (const b of page.result?.buckets ?? []) buckets.push({ name: b.name });
|
|
209
|
+
const next = page.result_info?.cursor;
|
|
210
|
+
if (!next) return buckets;
|
|
211
|
+
if (seen.has(next)) {
|
|
212
|
+
throw new Error(
|
|
213
|
+
`storage-broker: r2 bucket list returned a repeated pagination cursor: ${next}`
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
seen.add(next);
|
|
217
|
+
cursor = next;
|
|
195
218
|
}
|
|
196
|
-
return (parsed.result?.buckets ?? []).map((b) => ({ name: b.name }));
|
|
197
219
|
},
|
|
198
220
|
async r2Create(name) {
|
|
199
221
|
await run("npx", ["wrangler", "r2", "bucket", "create", name], env);
|
package/payload/server/server.js
CHANGED
|
@@ -117,7 +117,7 @@ import {
|
|
|
117
117
|
makeHouseCfExec,
|
|
118
118
|
registerResource,
|
|
119
119
|
resolveOwner
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-64FGYKNZ.js";
|
|
121
121
|
import {
|
|
122
122
|
__commonJS,
|
|
123
123
|
__toESM
|
|
@@ -8776,7 +8776,7 @@ app3.post("/r2/create", async (c) => {
|
|
|
8776
8776
|
});
|
|
8777
8777
|
var storage_broker_default = app3;
|
|
8778
8778
|
async function runStorageAudit(root) {
|
|
8779
|
-
const { reconcileStorage } = await import("./src-
|
|
8779
|
+
const { reconcileStorage } = await import("./src-S7C4P6TT.js");
|
|
8780
8780
|
const session = getSession();
|
|
8781
8781
|
try {
|
|
8782
8782
|
const cf = await makeHouseCfExec(root);
|