@rubytech/create-maxy-code 0.1.457 → 0.1.459

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/mcp-lifeline/dist/index.d.ts.map +1 -1
  3. package/payload/platform/lib/mcp-lifeline/dist/index.js +22 -1
  4. package/payload/platform/lib/mcp-lifeline/dist/index.js.map +1 -1
  5. package/payload/platform/lib/mcp-lifeline/src/__tests__/lifeline.test.ts +26 -0
  6. package/payload/platform/lib/mcp-lifeline/src/index.ts +24 -1
  7. package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js +322 -2
  8. package/payload/platform/lib/storage-broker/dist/__tests__/cf-exec.test.js.map +1 -1
  9. package/payload/platform/lib/storage-broker/dist/__tests__/object-limits.test.d.ts +2 -0
  10. package/payload/platform/lib/storage-broker/dist/__tests__/object-limits.test.d.ts.map +1 -0
  11. package/payload/platform/lib/storage-broker/dist/__tests__/object-limits.test.js +59 -0
  12. package/payload/platform/lib/storage-broker/dist/__tests__/object-limits.test.js.map +1 -0
  13. package/payload/platform/lib/storage-broker/dist/cf-exec.d.ts +12 -1
  14. package/payload/platform/lib/storage-broker/dist/cf-exec.d.ts.map +1 -1
  15. package/payload/platform/lib/storage-broker/dist/cf-exec.js +156 -26
  16. package/payload/platform/lib/storage-broker/dist/cf-exec.js.map +1 -1
  17. package/payload/platform/lib/storage-broker/dist/house-credential.d.ts.map +1 -1
  18. package/payload/platform/lib/storage-broker/dist/house-credential.js +8 -2
  19. package/payload/platform/lib/storage-broker/dist/house-credential.js.map +1 -1
  20. package/payload/platform/lib/storage-broker/dist/index.d.ts +1 -0
  21. package/payload/platform/lib/storage-broker/dist/index.d.ts.map +1 -1
  22. package/payload/platform/lib/storage-broker/dist/index.js +1 -0
  23. package/payload/platform/lib/storage-broker/dist/index.js.map +1 -1
  24. package/payload/platform/lib/storage-broker/dist/object-limits.d.ts +53 -0
  25. package/payload/platform/lib/storage-broker/dist/object-limits.d.ts.map +1 -0
  26. package/payload/platform/lib/storage-broker/dist/object-limits.js +72 -0
  27. package/payload/platform/lib/storage-broker/dist/object-limits.js.map +1 -0
  28. package/payload/platform/lib/storage-broker/src/__tests__/cf-exec.test.ts +362 -3
  29. package/payload/platform/lib/storage-broker/src/__tests__/object-limits.test.ts +76 -0
  30. package/payload/platform/lib/storage-broker/src/cf-exec.ts +230 -44
  31. package/payload/platform/lib/storage-broker/src/house-credential.ts +8 -2
  32. package/payload/platform/lib/storage-broker/src/index.ts +1 -0
  33. package/payload/platform/lib/storage-broker/src/object-limits.ts +75 -0
  34. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +5 -5
  35. package/payload/platform/plugins/cloudflare/bin/__tests__/cf-token.test.sh +145 -4
  36. package/payload/platform/plugins/cloudflare/bin/cf-token.sh +61 -3
  37. package/payload/platform/plugins/cloudflare/references/api.md +1 -1
  38. package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
  39. package/payload/platform/plugins/docs/references/outlook-guide.md +4 -4
  40. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +1 -1
  41. package/payload/platform/plugins/outlook/PLUGIN.md +2 -2
  42. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.d.ts +2 -0
  43. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.d.ts.map +1 -0
  44. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js +138 -0
  45. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js.map +1 -0
  46. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.d.ts +2 -0
  47. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.d.ts.map +1 -0
  48. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js +121 -0
  49. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js.map +1 -0
  50. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.d.ts +2 -0
  51. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.d.ts.map +1 -0
  52. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js +102 -0
  53. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js.map +1 -0
  54. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js +16 -3
  55. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js.map +1 -1
  56. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +108 -1
  57. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
  58. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.d.ts +2 -0
  59. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.d.ts.map +1 -0
  60. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js +209 -0
  61. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js.map +1 -0
  62. package/payload/platform/plugins/outlook/mcp/dist/index.js +10 -7
  63. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  64. package/payload/platform/plugins/outlook/mcp/dist/lib/attach.d.ts +37 -0
  65. package/payload/platform/plugins/outlook/mcp/dist/lib/attach.d.ts.map +1 -0
  66. package/payload/platform/plugins/outlook/mcp/dist/lib/attach.js +79 -0
  67. package/payload/platform/plugins/outlook/mcp/dist/lib/attach.js.map +1 -0
  68. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +42 -15
  69. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
  70. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +32 -1
  71. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
  72. package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts +8 -0
  73. package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts.map +1 -1
  74. package/payload/platform/plugins/outlook/mcp/dist/lib/message.js +4 -0
  75. package/payload/platform/plugins/outlook/mcp/dist/lib/message.js.map +1 -1
  76. package/payload/platform/plugins/outlook/mcp/dist/lib/outbound-attachments.d.ts +31 -8
  77. package/payload/platform/plugins/outlook/mcp/dist/lib/outbound-attachments.d.ts.map +1 -1
  78. package/payload/platform/plugins/outlook/mcp/dist/lib/outbound-attachments.js +40 -13
  79. package/payload/platform/plugins/outlook/mcp/dist/lib/outbound-attachments.js.map +1 -1
  80. package/payload/platform/plugins/outlook/mcp/dist/lib/upload-session.d.ts +9 -5
  81. package/payload/platform/plugins/outlook/mcp/dist/lib/upload-session.d.ts.map +1 -1
  82. package/payload/platform/plugins/outlook/mcp/dist/lib/upload-session.js +12 -8
  83. package/payload/platform/plugins/outlook/mcp/dist/lib/upload-session.js.map +1 -1
  84. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -1
  85. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +3 -5
  86. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -1
  87. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.d.ts +36 -4
  88. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.d.ts.map +1 -1
  89. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.js +56 -9
  90. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-edit.js.map +1 -1
  91. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +13 -2
  92. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -1
  93. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +18 -4
  94. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -1
  95. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.d.ts.map +1 -1
  96. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.js +3 -4
  97. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-attachment.js.map +1 -1
  98. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.d.ts.map +1 -1
  99. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js +2 -4
  100. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js.map +1 -1
  101. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts.map +1 -1
  102. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js +3 -20
  103. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js.map +1 -1
  104. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts +27 -3
  105. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts.map +1 -1
  106. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js +53 -8
  107. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js.map +1 -1
  108. package/payload/platform/plugins/outlook/references/graph-surfaces.md +41 -6
  109. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +22 -5
  110. package/payload/platform/plugins/storage-broker/PLUGIN.md +41 -2
  111. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/confine-path.test.d.ts +2 -0
  112. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/confine-path.test.d.ts.map +1 -0
  113. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/confine-path.test.js +85 -0
  114. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/confine-path.test.js.map +1 -0
  115. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/put-source.test.d.ts +2 -0
  116. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/put-source.test.d.ts.map +1 -0
  117. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/put-source.test.js +77 -0
  118. package/payload/platform/plugins/storage-broker/mcp/dist/__tests__/put-source.test.js.map +1 -0
  119. package/payload/platform/plugins/storage-broker/mcp/dist/confine-path.d.ts +12 -0
  120. package/payload/platform/plugins/storage-broker/mcp/dist/confine-path.d.ts.map +1 -0
  121. package/payload/platform/plugins/storage-broker/mcp/dist/confine-path.js +107 -0
  122. package/payload/platform/plugins/storage-broker/mcp/dist/confine-path.js.map +1 -0
  123. package/payload/platform/plugins/storage-broker/mcp/dist/index.js +86 -0
  124. package/payload/platform/plugins/storage-broker/mcp/dist/index.js.map +1 -1
  125. package/payload/platform/plugins/storage-broker/mcp/dist/put-source.d.ts +11 -0
  126. package/payload/platform/plugins/storage-broker/mcp/dist/put-source.d.ts.map +1 -0
  127. package/payload/platform/plugins/storage-broker/mcp/dist/put-source.js +35 -0
  128. package/payload/platform/plugins/storage-broker/mcp/dist/put-source.js.map +1 -0
  129. package/payload/platform/scripts/logs-read-jsonl.test.sh +118 -0
  130. package/payload/platform/scripts/logs-read.sh +63 -9
  131. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  132. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +4 -0
  133. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  134. package/payload/server/{chunk-F4D35LKL.js → chunk-POBXIHOF.js} +34 -0
  135. package/payload/server/{chunk-SDYRKIYY.js → chunk-Q6W4U6HL.js} +153 -27
  136. package/payload/server/maxy-edge.js +1 -1
  137. package/payload/server/server.js +206 -6
  138. package/payload/server/{src-554BYJMN.js → src-3I2RYZFB.js} +9 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.457",
3
+ "version": "0.1.459",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE1C,KAAK,SAAS,GAAG;IAAE,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;CAAE,CAAC;AA4B3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CAoC9E;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,UAAU,GAClB,IAAI,CAEN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE1C,KAAK,SAAS,GAAG;IAAE,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;CAAE,CAAC;AA6C3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CA0C9E;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,UAAU,GAClB,IAAI,CAEN"}
@@ -6,6 +6,20 @@ let callCounter = 0;
6
6
  function nextToken() {
7
7
  return (++callCounter).toString(16).padStart(6, "0");
8
8
  }
9
+ /**
10
+ * True when an MCP handler's return value signals failure via `isError: true`.
11
+ *
12
+ * An MCP handler reports failure two ways: it throws, or it returns a payload
13
+ * with `isError: true`. Only the throw used to count, so a tool that caught an
14
+ * error and returned it — the prevailing pattern — logged `outcome=ok`. An
15
+ * operator grepping the log for failures saw a clean run over a hard error
16
+ * (Task 1688: a Graph 404 logged `outcome=ok`).
17
+ */
18
+ function isErrorPayload(result) {
19
+ return (typeof result === "object" &&
20
+ result !== null &&
21
+ result.isError === true);
22
+ }
9
23
  function censusHandles() {
10
24
  try {
11
25
  const resources = process.getActiveResourcesInfo?.();
@@ -44,12 +58,19 @@ function wrapWithLifeline(name, handler) {
44
58
  const start = process.hrtime.bigint();
45
59
  let outcome = "ok";
46
60
  let thrown;
61
+ // Whether the handler THREW is distinct from whether it FAILED: a returned
62
+ // isError payload is a failure that must still be returned, not re-thrown.
63
+ // The re-throw below keys off this flag, never off `outcome`.
64
+ let didThrow = false;
47
65
  let result;
48
66
  try {
49
67
  result = await handler(...args);
68
+ if (isErrorPayload(result))
69
+ outcome = "error";
50
70
  }
51
71
  catch (err) {
52
72
  outcome = "error";
73
+ didThrow = true;
53
74
  thrown = err;
54
75
  }
55
76
  const ms = Number((process.hrtime.bigint() - start) / BigInt(1_000_000));
@@ -60,7 +81,7 @@ function wrapWithLifeline(name, handler) {
60
81
  catch {
61
82
  // broken pipe on result write — ignore, handler outcome takes priority
62
83
  }
63
- if (outcome === "error")
84
+ if (didThrow)
64
85
  throw thrown;
65
86
  return result;
66
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,32 @@ describe("wrapWithLifeline — outcome=error on throw, error re-thrown", () => {
90
90
  });
91
91
  });
92
92
 
93
+ describe("wrapWithLifeline — outcome=error when the handler RETURNS isError", () => {
94
+ it("writes outcome=error and returns the payload unchanged", async () => {
95
+ const { lines, restore } = captureStderr();
96
+ const payload = { content: [{ type: "text", text: "boom" }], isError: true };
97
+ const wrapped = wrapWithLifeline("my-tool", async () => payload);
98
+ const result = await wrapped({});
99
+ restore();
100
+ // The payload must reach the caller untouched — only the log token changes.
101
+ expect(result).toBe(payload);
102
+ const resLine = lines.find((l) => l.includes("op=result"));
103
+ expect(resLine).toContain("outcome=error");
104
+ });
105
+
106
+ it("still writes outcome=ok when isError is absent or false", async () => {
107
+ const { lines, restore } = captureStderr();
108
+ const wrapped = wrapWithLifeline("my-tool", async () => ({
109
+ content: [{ type: "text", text: "fine" }],
110
+ isError: false,
111
+ }));
112
+ await wrapped({});
113
+ restore();
114
+ const resLine = lines.find((l) => l.includes("op=result"));
115
+ expect(resLine).toContain("outcome=ok");
116
+ });
117
+ });
118
+
93
119
  describe("wrapWithLifeline — ms field", () => {
94
120
  it("op=result contains a non-negative integer ms= field", async () => {
95
121
  const { lines, restore } = captureStderr();
@@ -8,6 +8,23 @@ function nextToken(): string {
8
8
  return (++callCounter).toString(16).padStart(6, "0");
9
9
  }
10
10
 
11
+ /**
12
+ * True when an MCP handler's return value signals failure via `isError: true`.
13
+ *
14
+ * An MCP handler reports failure two ways: it throws, or it returns a payload
15
+ * with `isError: true`. Only the throw used to count, so a tool that caught an
16
+ * error and returned it — the prevailing pattern — logged `outcome=ok`. An
17
+ * operator grepping the log for failures saw a clean run over a hard error
18
+ * (Task 1688: a Graph 404 logged `outcome=ok`).
19
+ */
20
+ function isErrorPayload(result: unknown): boolean {
21
+ return (
22
+ typeof result === "object" &&
23
+ result !== null &&
24
+ (result as { isError?: unknown }).isError === true
25
+ );
26
+ }
27
+
11
28
  function censusHandles(): string {
12
29
  try {
13
30
  const resources = (
@@ -46,11 +63,17 @@ export function wrapWithLifeline(name: string, handler: AnyHandler): AnyHandler
46
63
  const start = process.hrtime.bigint();
47
64
  let outcome: "ok" | "error" = "ok";
48
65
  let thrown: unknown;
66
+ // Whether the handler THREW is distinct from whether it FAILED: a returned
67
+ // isError payload is a failure that must still be returned, not re-thrown.
68
+ // The re-throw below keys off this flag, never off `outcome`.
69
+ let didThrow = false;
49
70
  let result: unknown;
50
71
  try {
51
72
  result = await handler(...args);
73
+ if (isErrorPayload(result)) outcome = "error";
52
74
  } catch (err) {
53
75
  outcome = "error";
76
+ didThrow = true;
54
77
  thrown = err;
55
78
  }
56
79
  const ms = Number((process.hrtime.bigint() - start) / BigInt(1_000_000));
@@ -62,7 +85,7 @@ export function wrapWithLifeline(name: string, handler: AnyHandler): AnyHandler
62
85
  } catch {
63
86
  // broken pipe on result write — ignore, handler outcome takes priority
64
87
  }
65
- if (outcome === "error") throw thrown;
88
+ if (didThrow) throw thrown;
66
89
  return result;
67
90
  };
68
91
  }
@@ -28,10 +28,45 @@ function recordingFetch(response) {
28
28
  const calls = [];
29
29
  const fetchFn = async (url, init) => {
30
30
  calls.push({ url, init });
31
- return { ok: response.ok, status: response.status, text: async () => response.body };
31
+ return {
32
+ ok: response.ok,
33
+ status: response.status,
34
+ text: async () => response.body,
35
+ // Task 1691 — r2ObjectGet reads the raw object body, so the seam carries
36
+ // arrayBuffer alongside text. The fake derives it from the same body.
37
+ arrayBuffer: async () => new TextEncoder().encode(response.body).buffer,
38
+ };
32
39
  };
33
40
  return { fetchFn, calls };
34
41
  }
42
+ // r2List follows the R2 pagination cursor, so its tests need a fetch that
43
+ // returns a different response per call. recordingFetch returns one fixed
44
+ // response for every call and stays as-is for the single-request paths.
45
+ function sequenceFetch(responses) {
46
+ const calls = [];
47
+ const fetchFn = async (url, init) => {
48
+ calls.push({ url, init });
49
+ const r = responses[calls.length - 1];
50
+ if (!r)
51
+ throw new Error(`unexpected fetch call #${calls.length} to ${url}`);
52
+ return {
53
+ ok: r.ok,
54
+ status: r.status,
55
+ text: async () => r.body,
56
+ arrayBuffer: async () => new TextEncoder().encode(r.body).buffer,
57
+ };
58
+ };
59
+ return { fetchFn, calls };
60
+ }
61
+ function bucketPage(names, cursor) {
62
+ return JSON.stringify({
63
+ success: true,
64
+ errors: [],
65
+ messages: [],
66
+ result: { buckets: names.map((name) => ({ name, creation_date: "2026-01-01T00:00:00Z" })) },
67
+ result_info: cursor === undefined ? {} : { cursor, per_page: 20 },
68
+ });
69
+ }
35
70
  (0, node_test_1.default)("d1List parses --json output and injects the house token", async () => {
36
71
  const { run, calls } = recordingRun(JSON.stringify([{ name: "gls-leads", uuid: "u1" }]));
37
72
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
@@ -67,7 +102,9 @@ function recordingFetch(response) {
67
102
  strict_1.default.equal(calls[0].init.method, "POST");
68
103
  strict_1.default.equal(calls[0].init.headers.Authorization, "Bearer cfat_x");
69
104
  strict_1.default.equal(calls[0].init.headers["Content-Type"], "application/json");
70
- strict_1.default.deepEqual(JSON.parse(calls[0].init.body ?? ""), { name: "gls-new" });
105
+ // init.body widened to string | Uint8Array for the object-put path (Task
106
+ // 1691); d1Create still sends a JSON string.
107
+ strict_1.default.deepEqual(JSON.parse(String(calls[0].init.body ?? "")), { name: "gls-new" });
71
108
  });
72
109
  (0, node_test_1.default)("d1Create throws with the API error body on a non-2xx response", async () => {
73
110
  const { fetchFn } = recordingFetch({
@@ -143,11 +180,123 @@ function recordingFetch(response) {
143
180
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
144
181
  await strict_1.default.rejects(() => cf.r2List(), /unexpected/);
145
182
  });
183
+ // `null` is valid JSON, so it survives parseJson and reaches the envelope
184
+ // guard as a null parsed value. It must still surface its body like every other
185
+ // malformed 2xx shape, never a bare TypeError with the body dropped.
186
+ (0, node_test_1.default)("a 2xx body of JSON null throws with the body, not a TypeError", async () => {
187
+ const { fetchFn } = recordingFetch({ ok: true, status: 200, body: "null" });
188
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
189
+ await strict_1.default.rejects(() => cf.r2List(), {
190
+ message: "storage-broker: r2 bucket list API error: null",
191
+ });
192
+ });
146
193
  (0, node_test_1.default)("non-JSON output throws with the raw body", async () => {
147
194
  const { run } = recordingRun("not json");
148
195
  const cf = (0, cf_exec_js_1.makeCfExec)(cred, run);
149
196
  await strict_1.default.rejects(() => cf.d1List(), /not json/);
150
197
  });
198
+ // Task 1665 — the R2 List-Buckets endpoint paginates by cursor. A single
199
+ // unpaginated request silently truncates the bucket set on a large house
200
+ // account, and the audit reads a truncated list as "those buckets are absent",
201
+ // under-reporting strays. per_page is never sent: its default and cap are
202
+ // unconfirmed, and omitting it makes the loop correct without guessing.
203
+ (0, node_test_1.default)("r2List follows the pagination cursor and assembles every page", async () => {
204
+ const { fetchFn, calls } = sequenceFetch([
205
+ { ok: true, status: 200, body: bucketPage(["gls-assets", "gls-docs"], "cur-1") },
206
+ { ok: true, status: 200, body: bucketPage(["acme-assets"]) },
207
+ ]);
208
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
209
+ strict_1.default.deepEqual(await cf.r2List(), [
210
+ { name: "gls-assets" },
211
+ { name: "gls-docs" },
212
+ { name: "acme-assets" },
213
+ ]);
214
+ strict_1.default.equal(calls.length, 2);
215
+ // The first request carries no query string; only follow-ups carry the cursor.
216
+ strict_1.default.equal(calls[0].url, "https://api.cloudflare.com/client/v4/accounts/acc-h/r2/buckets");
217
+ strict_1.default.equal(calls[1].url, "https://api.cloudflare.com/client/v4/accounts/acc-h/r2/buckets?cursor=cur-1");
218
+ strict_1.default.equal(calls[1].init.headers.Authorization, "Bearer cfat_x");
219
+ });
220
+ (0, node_test_1.default)("r2List never sends per_page", async () => {
221
+ const { fetchFn, calls } = sequenceFetch([
222
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "cur-1") },
223
+ { ok: true, status: 200, body: bucketPage(["gls-docs"]) },
224
+ ]);
225
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
226
+ await cf.r2List();
227
+ for (const c of calls)
228
+ strict_1.default.equal(c.url.includes("per_page"), false);
229
+ });
230
+ (0, node_test_1.default)("r2List stops on an empty-string cursor", async () => {
231
+ const { fetchFn, calls } = sequenceFetch([
232
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "") },
233
+ ]);
234
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
235
+ strict_1.default.deepEqual(await cf.r2List(), [{ name: "gls-assets" }]);
236
+ strict_1.default.equal(calls.length, 1);
237
+ });
238
+ (0, node_test_1.default)("r2List percent-encodes the cursor", async () => {
239
+ const { fetchFn, calls } = sequenceFetch([
240
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "a b+c/d=") },
241
+ { ok: true, status: 200, body: bucketPage([]) },
242
+ ]);
243
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
244
+ await cf.r2List();
245
+ strict_1.default.equal(calls[1].url, "https://api.cloudflare.com/client/v4/accounts/acc-h/r2/buckets?cursor=a%20b%2Bc%2Fd%3D");
246
+ });
247
+ (0, node_test_1.default)("r2List stops on a null cursor", async () => {
248
+ const { fetchFn, calls } = sequenceFetch([
249
+ {
250
+ ok: true,
251
+ status: 200,
252
+ body: JSON.stringify({
253
+ success: true,
254
+ errors: [],
255
+ messages: [],
256
+ result: { buckets: [{ name: "gls-assets" }] },
257
+ result_info: { cursor: null },
258
+ }),
259
+ },
260
+ ]);
261
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
262
+ strict_1.default.deepEqual(await cf.r2List(), [{ name: "gls-assets" }]);
263
+ strict_1.default.equal(calls.length, 1);
264
+ });
265
+ (0, node_test_1.default)("r2List throws on a repeated cursor instead of looping forever", async () => {
266
+ const { fetchFn } = sequenceFetch([
267
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "cur-1") },
268
+ { ok: true, status: 200, body: bucketPage(["gls-docs"], "cur-1") },
269
+ ]);
270
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
271
+ await strict_1.default.rejects(() => cf.r2List(), /repeated pagination cursor: cur-1/);
272
+ });
273
+ // A cursor cycle of period >= 2 never repeats the immediately-previous cursor,
274
+ // so it would spin forever — re-appending the same buckets each pass — under a
275
+ // guard that only compares against the last cursor seen.
276
+ (0, node_test_1.default)("r2List throws on a cursor cycle that does not repeat consecutively", async () => {
277
+ const { fetchFn } = sequenceFetch([
278
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "cur-a") },
279
+ { ok: true, status: 200, body: bucketPage(["gls-docs"], "cur-b") },
280
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "cur-a") },
281
+ ]);
282
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
283
+ await strict_1.default.rejects(() => cf.r2List(), /repeated pagination cursor: cur-a/);
284
+ });
285
+ (0, node_test_1.default)("r2List surfaces a mid-loop failure with its body, never a partial list", async () => {
286
+ const { fetchFn } = sequenceFetch([
287
+ { ok: true, status: 200, body: bucketPage(["gls-assets"], "cur-1") },
288
+ {
289
+ ok: false,
290
+ status: 403,
291
+ body: JSON.stringify({
292
+ success: false,
293
+ errors: [{ code: 10000, message: "Authentication error" }],
294
+ }),
295
+ },
296
+ ]);
297
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
298
+ await strict_1.default.rejects(() => cf.r2List(), /403[\s\S]*Authentication error/);
299
+ });
151
300
  // Task 1670 — makeHouseCfExec resolves a scoped storage token from the house
152
301
  // minter via cf-token.sh and uses THAT token (never the minter) for wrangler.
153
302
  (0, node_test_1.default)("makeHouseCfExec runs wrangler with the scoped token, not the minter", async () => {
@@ -169,4 +318,175 @@ function recordingFetch(response) {
169
318
  await cf.d1List();
170
319
  strict_1.default.equal(sawToken, "scoped_tok", "wrangler saw the scoped token, not the minter");
171
320
  });
321
+ // ---------------------------------------------------------------------------
322
+ // Task 1691 — R2 object operations. Same discipline as r2List/d1Create: the
323
+ // Cloudflare API behind an injectable fetch, wrangler never shelled (throwingRun
324
+ // proves it), and every failure keeps its body.
325
+ // ---------------------------------------------------------------------------
326
+ function objectPage(keys, opts = {}) {
327
+ return JSON.stringify({
328
+ success: true,
329
+ errors: [],
330
+ messages: [],
331
+ result: keys.map((key) => ({
332
+ key,
333
+ size: 10,
334
+ etag: "e1",
335
+ last_modified: "2026-01-01T00:00:00Z",
336
+ })),
337
+ result_info: { cursor: opts.cursor ?? "", is_truncated: opts.truncated ?? false },
338
+ });
339
+ }
340
+ (0, node_test_1.default)("r2ObjectList returns a single page and never shells wrangler", async () => {
341
+ const { fetchFn, calls } = recordingFetch({ ok: true, status: 200, body: objectPage(["a.jpg"]) });
342
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
343
+ strict_1.default.deepEqual(await cf.r2ObjectList("acc-a-portal"), [
344
+ { key: "a.jpg", size: 10, etag: "e1", lastModified: "2026-01-01T00:00:00Z" },
345
+ ]);
346
+ strict_1.default.equal(calls.length, 1);
347
+ strict_1.default.equal(calls[0].url, "https://api.cloudflare.com/client/v4/accounts/acc-h/r2/buckets/acc-a-portal/objects");
348
+ strict_1.default.equal(calls[0].init.headers.Authorization, "Bearer cfat_x");
349
+ });
350
+ (0, node_test_1.default)("r2ObjectList never sends per_page", async () => {
351
+ const { fetchFn, calls } = recordingFetch({ ok: true, status: 200, body: objectPage([]) });
352
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
353
+ await cf.r2ObjectList("b");
354
+ strict_1.default.equal(calls[0].url.includes("per_page"), false);
355
+ });
356
+ (0, node_test_1.default)("r2ObjectList passes prefix through, encoded", async () => {
357
+ const { fetchFn, calls } = recordingFetch({ ok: true, status: 200, body: objectPage([]) });
358
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
359
+ await cf.r2ObjectList("b", "person a/");
360
+ strict_1.default.ok(calls[0].url.endsWith("/objects?prefix=person+a%2F"), calls[0].url);
361
+ });
362
+ (0, node_test_1.default)("r2ObjectList follows the cursor to exhaustion", async () => {
363
+ const { fetchFn, calls } = sequenceFetch([
364
+ { ok: true, status: 200, body: objectPage(["a.jpg"], { cursor: "c1", truncated: true }) },
365
+ { ok: true, status: 200, body: objectPage(["b.jpg"]) },
366
+ ]);
367
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
368
+ strict_1.default.deepEqual((await cf.r2ObjectList("b")).map((o) => o.key), ["a.jpg", "b.jpg"]);
369
+ strict_1.default.equal(calls.length, 2);
370
+ strict_1.default.ok(calls[1].url.includes("cursor=c1"));
371
+ });
372
+ // is_truncated is the authoritative continuation signal, not the presence of a
373
+ // cursor: a last page may still carry one.
374
+ (0, node_test_1.default)("r2ObjectList stops when is_truncated is false even if a cursor is present", async () => {
375
+ const { fetchFn, calls } = sequenceFetch([
376
+ { ok: true, status: 200, body: objectPage(["a.jpg"], { cursor: "c1", truncated: false }) },
377
+ ]);
378
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
379
+ await cf.r2ObjectList("b");
380
+ strict_1.default.equal(calls.length, 1);
381
+ });
382
+ // The response shape is doc-confirmed but never measured against a live account.
383
+ // If it is not what we understand, that must be loud: a partial list is exactly
384
+ // the bug this loop exists to prevent.
385
+ (0, node_test_1.default)("r2ObjectList throws when truncated but no cursor is given, never a partial list", async () => {
386
+ const { fetchFn } = recordingFetch({
387
+ ok: true,
388
+ status: 200,
389
+ body: objectPage(["a.jpg"], { truncated: true }),
390
+ });
391
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
392
+ await strict_1.default.rejects(() => cf.r2ObjectList("b"), /truncated but gave no pagination cursor/);
393
+ });
394
+ (0, node_test_1.default)("r2ObjectList throws on a repeated cursor", async () => {
395
+ const { fetchFn } = sequenceFetch([
396
+ { ok: true, status: 200, body: objectPage(["a"], { cursor: "c1", truncated: true }) },
397
+ { ok: true, status: 200, body: objectPage(["b"], { cursor: "c1", truncated: true }) },
398
+ ]);
399
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
400
+ await strict_1.default.rejects(() => cf.r2ObjectList("b"), /repeated pagination cursor/);
401
+ });
402
+ (0, node_test_1.default)("r2ObjectList retains the body on a non-2xx", async () => {
403
+ const { fetchFn } = recordingFetch({ ok: false, status: 403, body: '{"errors":[{"code":10000}]}' });
404
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
405
+ await strict_1.default.rejects(() => cf.r2ObjectList("b"), /10000/);
406
+ });
407
+ (0, node_test_1.default)("r2ObjectGet returns exact bytes and encodes the key segment-wise", async () => {
408
+ // Binary that is not valid UTF-8: proves the body never round-trips through
409
+ // text(), which would corrupt it.
410
+ const bytes = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x00, 0xff]);
411
+ const calls = [];
412
+ const fetchFn = async (url) => {
413
+ calls.push(url);
414
+ return {
415
+ ok: true,
416
+ status: 200,
417
+ text: async () => "unused",
418
+ arrayBuffer: async () => bytes.buffer.slice(0),
419
+ };
420
+ };
421
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
422
+ const got = await cf.r2ObjectGet("b", "person a/photo 1.jpg");
423
+ strict_1.default.deepEqual(Array.from(got), Array.from(bytes));
424
+ // Separators stay separators; spaces are escaped.
425
+ strict_1.default.ok(calls[0].endsWith("/objects/person%20a/photo%201.jpg"), calls[0]);
426
+ });
427
+ (0, node_test_1.default)("r2ObjectGet retains the body on a non-2xx", async () => {
428
+ const { fetchFn } = recordingFetch({ ok: false, status: 404, body: "no such key" });
429
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
430
+ await strict_1.default.rejects(() => cf.r2ObjectGet("b", "k"), /no such key/);
431
+ });
432
+ (0, node_test_1.default)("r2ObjectPut sends the bytes as the request body", async () => {
433
+ const { fetchFn, calls } = recordingFetch({
434
+ ok: true,
435
+ status: 200,
436
+ body: JSON.stringify({ success: true, errors: [], messages: [], result: {} }),
437
+ });
438
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
439
+ const bytes = new Uint8Array([1, 2, 3]);
440
+ await cf.r2ObjectPut("b", "k.bin", bytes);
441
+ strict_1.default.equal(calls[0].init.method, "PUT");
442
+ strict_1.default.deepEqual(calls[0].init.body, bytes);
443
+ strict_1.default.equal(calls[0].init.headers.Authorization, "Bearer cfat_x");
444
+ });
445
+ (0, node_test_1.default)("r2ObjectPut retains the body on a non-success envelope", async () => {
446
+ const { fetchFn } = recordingFetch({
447
+ ok: true,
448
+ status: 200,
449
+ body: '{"success":false,"errors":[{"code":10001}]}',
450
+ });
451
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
452
+ await strict_1.default.rejects(() => cf.r2ObjectPut("b", "k", new Uint8Array([1])), /10001/);
453
+ });
454
+ (0, node_test_1.default)("r2ObjectDelete issues a DELETE", async () => {
455
+ const { fetchFn, calls } = recordingFetch({
456
+ ok: true,
457
+ status: 200,
458
+ body: JSON.stringify({ success: true, errors: [], messages: [], result: {} }),
459
+ });
460
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
461
+ await cf.r2ObjectDelete("b", "k");
462
+ strict_1.default.equal(calls[0].init.method, "DELETE");
463
+ strict_1.default.equal(calls[0].init.headers.Authorization, "Bearer cfat_x");
464
+ });
465
+ (0, node_test_1.default)("r2ObjectDelete retains the body on a non-2xx", async () => {
466
+ const { fetchFn } = recordingFetch({ ok: false, status: 500, body: "boom" });
467
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
468
+ await strict_1.default.rejects(() => cf.r2ObjectDelete("b", "k"), /boom/);
469
+ });
470
+ // Code review — is_truncated is itself an unmeasured fact (no live credential
471
+ // exists to confirm the envelope). Driving the loop solely on it means a
472
+ // response that omits it while still paginating truncates SILENTLY, which is
473
+ // the exact failure this loop exists to prevent, and it would also make
474
+ // r2ObjectList disagree with r2List directly above it, which drives the same
475
+ // envelope on cursor presence alone.
476
+ (0, node_test_1.default)("r2ObjectList follows a cursor when is_truncated is absent, rather than truncating silently", async () => {
477
+ const pageWithoutTruncatedFlag = (keys, cursor) => JSON.stringify({
478
+ success: true,
479
+ errors: [],
480
+ messages: [],
481
+ result: keys.map((key) => ({ key, size: 1, etag: "e", last_modified: "t" })),
482
+ result_info: cursor === null ? {} : { cursor },
483
+ });
484
+ const { fetchFn, calls } = sequenceFetch([
485
+ { ok: true, status: 200, body: pageWithoutTruncatedFlag(["a.jpg"], "c1") },
486
+ { ok: true, status: 200, body: pageWithoutTruncatedFlag(["b.jpg"], null) },
487
+ ]);
488
+ const cf = (0, cf_exec_js_1.makeCfExec)(cred, throwingRun, fetchFn);
489
+ strict_1.default.deepEqual((await cf.r2ObjectList("b")).map((o) => o.key), ["a.jpg", "b.jpg"]);
490
+ strict_1.default.equal(calls.length, 2);
491
+ });
172
492
  //# sourceMappingURL=cf-exec.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAC7B,gEAAwC;AACxC,qCAAgF;AAChF,qCAAiC;AACjC,yCAAiC;AACjC,8CAAsF;AAEtF,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAExD,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAwE,EAAE,CAAC;IACtF,MAAM,GAAG,GAAU,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,yEAAyE;AACzE,MAAM,WAAW,GAAU,KAAK,IAAI,EAAE;IACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,SAAS,cAAc,CAAC,QAAuD;IAC7E,MAAM,KAAK,GAGN,EAAE,CAAC;IACR,MAAM,OAAO,GAAY,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvF,CAAC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,IAAA,mBAAI,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC1D,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC9B,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU;KACxF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;IACnG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;QACxC,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE;SAChF,CAAC;KACH,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,iEAAiE,CAAC,CAAC;IAC9F,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACnE,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACxE,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACjC,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;KACrG,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,gCAAgC,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;IACnG,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACjC,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;IAC3D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,gBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IAC3F,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;QACxC,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE;oBAC7D,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE;iBAC5D;aACF;SACF,CAAC;KACH,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACpF,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,gEAAgE,CAAC,CAAC;IAC7F,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACjC,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;KAC3F,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACjC,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;KACrG,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;IACjG,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACjC,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAA,uBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,8EAA8E;AAC9E,IAAA,mBAAI,EAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;IACrF,MAAM,YAAY,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACnD,IAAA,uBAAa,EAAC,QAAQ,EAAE,iEAAiE,CAAC,CAAC;IAE3F,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,GAAG,GAAU,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAChD,IAAA,wBAAc,EAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAC1C,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,IAAA,4BAAe,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IAClB,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,+CAA+C,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cf-exec.test.js","sourceRoot":"","sources":["../../src/__tests__/cf-exec.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=object-limits.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-limits.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/object-limits.test.ts"],"names":[],"mappings":""}