@koda-sl/baker-bridge 0.50.0-dev.3a1b48e85 → 0.50.0-dev.4a71225ab
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/dist/hono/agent-session.d.ts +2 -2
- package/dist/hono/agent-session.d.ts.map +1 -1
- package/dist/hono/agent-session.js +2 -2
- package/dist/hono/agent-session.js.map +1 -1
- package/dist/hono/agent.d.ts +2 -2
- package/dist/hono/agent.d.ts.map +1 -1
- package/dist/hono/agent.js +3 -3
- package/dist/hono/agent.js.map +1 -1
- package/dist/hono/bridge-job.d.ts +3 -3
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +25 -8
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +18 -10
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/convex.d.ts +1 -1
- package/dist/hono/convex.js +2 -2
- package/dist/hono/relay.d.ts +1 -1
- package/dist/hono/relay.js +1 -1
- package/dist/hono/server.js +5 -5
- package/dist/hono/server.js.map +1 -1
- package/dist/hono/tag-input.d.ts +35 -7
- package/dist/hono/tag-input.d.ts.map +1 -1
- package/dist/hono/tag-input.js +78 -43
- package/dist/hono/tag-input.js.map +1 -1
- package/dist/hono/tag-input.test.js +72 -42
- package/dist/hono/tag-input.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,66 +1,96 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import {
|
|
3
|
-
describe("
|
|
4
|
-
it("
|
|
5
|
-
const
|
|
2
|
+
import { normalizeTagInputToolInput, parseTagChangeResolution, sanitizeTagChanges } from "./tag-input.js";
|
|
3
|
+
describe("normalizeTagInputToolInput", () => {
|
|
4
|
+
it("passes a valid changes array through", () => {
|
|
5
|
+
const changes = normalizeTagInputToolInput({
|
|
6
|
+
changes: [{ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "123" } }],
|
|
7
|
+
});
|
|
8
|
+
expect(changes).toHaveLength(1);
|
|
9
|
+
expect(changes[0]).toMatchObject({ mode: "create", tagType: "meta" });
|
|
10
|
+
});
|
|
11
|
+
it("wraps the legacy single-change shape (mode/tagType at top level) instead of hanging the turn", () => {
|
|
12
|
+
const changes = normalizeTagInputToolInput({
|
|
6
13
|
mode: "create",
|
|
7
14
|
tagType: "meta",
|
|
8
|
-
prefilledConfig: { pixelId: "
|
|
15
|
+
prefilledConfig: { pixelId: "555000111" },
|
|
16
|
+
requestedSecretFields: ["accessToken"],
|
|
17
|
+
message: "Adding Meta pixel",
|
|
9
18
|
});
|
|
19
|
+
expect(changes).toHaveLength(1);
|
|
20
|
+
expect(changes[0]).toMatchObject({ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "555000111" } });
|
|
21
|
+
});
|
|
22
|
+
it("drops invalid entries and returns [] for garbage so the caller can deny with a clear error", () => {
|
|
23
|
+
expect(normalizeTagInputToolInput({ changes: [{ mode: "explode", tagType: "meta" }] })).toEqual([]);
|
|
24
|
+
expect(normalizeTagInputToolInput({ changes: "nope" })).toEqual([]);
|
|
25
|
+
expect(normalizeTagInputToolInput({})).toEqual([]);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("sanitizeTagChanges", () => {
|
|
29
|
+
it("moves leaked secret prefill values into requested fields, dropping the value", () => {
|
|
30
|
+
const [sanitized] = sanitizeTagChanges([
|
|
31
|
+
{ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "123", accessToken: "EAAB-leak" } },
|
|
32
|
+
]);
|
|
10
33
|
expect(sanitized.prefilledConfig).toEqual({ pixelId: "123" });
|
|
11
34
|
expect(sanitized.requestedSecretFields).toEqual(["accessToken"]);
|
|
12
35
|
expect(JSON.stringify(sanitized)).not.toContain("EAAB-leak");
|
|
13
36
|
});
|
|
14
37
|
it("keeps non-secret prefill and merges requested fields without duplicates", () => {
|
|
15
|
-
const sanitized =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
38
|
+
const [sanitized] = sanitizeTagChanges([
|
|
39
|
+
{
|
|
40
|
+
mode: "edit",
|
|
41
|
+
tagType: "googleAnalytics",
|
|
42
|
+
ref: "jd7tag",
|
|
43
|
+
prefilledConfig: { measurementId: "G-ABC", apiSecret: "shhh" },
|
|
44
|
+
requestedSecretFields: ["apiSecret"],
|
|
45
|
+
message: "Rotate the secret",
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
23
48
|
expect(sanitized.prefilledConfig).toEqual({ measurementId: "G-ABC" });
|
|
24
49
|
expect(sanitized.requestedSecretFields).toEqual(["apiSecret"]);
|
|
25
50
|
expect(sanitized.message).toBe("Rotate the secret");
|
|
26
51
|
});
|
|
27
|
-
it("
|
|
28
|
-
const sanitized =
|
|
29
|
-
mode: "create",
|
|
30
|
-
tagType: "clarity",
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
expect(
|
|
52
|
+
it("sanitizes every change in a batch independently", () => {
|
|
53
|
+
const sanitized = sanitizeTagChanges([
|
|
54
|
+
{ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "1", accessToken: "leak-1" } },
|
|
55
|
+
{ mode: "delete", tagType: "clarity", ref: "abc123" },
|
|
56
|
+
]);
|
|
57
|
+
expect(sanitized).toHaveLength(2);
|
|
58
|
+
expect(sanitized[0]?.prefilledConfig).toEqual({ pixelId: "1" });
|
|
59
|
+
expect(JSON.stringify(sanitized)).not.toContain("leak-1");
|
|
60
|
+
expect(sanitized[1]).toMatchObject({ mode: "delete", tagType: "clarity", ref: "abc123" });
|
|
34
61
|
});
|
|
35
62
|
it("leaves unknown tag types untouched (backend validates)", () => {
|
|
36
|
-
const sanitized =
|
|
37
|
-
mode: "create",
|
|
38
|
-
|
|
39
|
-
prefilledConfig: { anything: "goes" },
|
|
40
|
-
});
|
|
63
|
+
const [sanitized] = sanitizeTagChanges([
|
|
64
|
+
{ mode: "create", tagType: "not-a-type", prefilledConfig: { anything: "goes" } },
|
|
65
|
+
]);
|
|
41
66
|
expect(sanitized.prefilledConfig).toEqual({ anything: "goes" });
|
|
42
67
|
});
|
|
43
68
|
});
|
|
44
|
-
describe("
|
|
45
|
-
it("accepts a
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
reason: "skipped",
|
|
69
|
+
describe("parseTagChangeResolution", () => {
|
|
70
|
+
it("accepts a per-tab results array", () => {
|
|
71
|
+
const resolution = parseTagChangeResolution({
|
|
72
|
+
results: [
|
|
73
|
+
{
|
|
74
|
+
status: "submitted",
|
|
75
|
+
ref: "tag_temp_x",
|
|
76
|
+
type: "meta",
|
|
77
|
+
identifier: { pixelId: "123" },
|
|
78
|
+
secretFieldsSet: ["accessToken"],
|
|
79
|
+
},
|
|
80
|
+
{ status: "declined", reason: "skipped" },
|
|
81
|
+
],
|
|
58
82
|
});
|
|
83
|
+
expect(resolution?.results).toHaveLength(2);
|
|
84
|
+
expect(resolution?.results[0]).toMatchObject({ status: "submitted", ref: "tag_temp_x" });
|
|
85
|
+
expect(resolution?.results[1]).toEqual({ status: "declined", reason: "skipped" });
|
|
86
|
+
});
|
|
87
|
+
it("accepts an empty results array (all declined / nothing resolved)", () => {
|
|
88
|
+
expect(parseTagChangeResolution({ results: [] })).toEqual({ results: [] });
|
|
59
89
|
});
|
|
60
90
|
it("rejects malformed payloads", () => {
|
|
61
|
-
expect(
|
|
62
|
-
expect(
|
|
63
|
-
expect(
|
|
91
|
+
expect(parseTagChangeResolution({ results: [{ status: "submitted" }] })).toBeNull();
|
|
92
|
+
expect(parseTagChangeResolution({ results: "nope" })).toBeNull();
|
|
93
|
+
expect(parseTagChangeResolution(null)).toBeNull();
|
|
64
94
|
});
|
|
65
95
|
});
|
|
66
96
|
//# sourceMappingURL=tag-input.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koda-sl/baker-bridge",
|
|
3
|
-
"version": "0.50.0-dev.
|
|
3
|
+
"version": "0.50.0-dev.4a71225ab",
|
|
4
4
|
"description": "HTTP server wrapping the Claude Agent SDK. Persists chat events to Convex; the dashboard subscribes via Convex realtime",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|