@rudderhq/shared 0.4.4 → 0.4.5
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/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/types/agent-integration.d.ts +9 -0
- package/dist/types/agent-integration.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/validators/agent-integration.d.ts +86 -0
- package/dist/validators/agent-integration.d.ts.map +1 -1
- package/dist/validators/agent-integration.js +11 -0
- package/dist/validators/agent-integration.js.map +1 -1
- package/dist/validators/agent.d.ts +7 -7
- package/dist/validators/chat.d.ts +2 -2
- package/dist/validators/index.d.ts +1 -1
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +1 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/organization-portability.d.ts +6 -6
- package/dist/validators/project.d.ts +4 -4
- package/dist/website-icons.d.ts +9 -0
- package/dist/website-icons.d.ts.map +1 -0
- package/dist/website-icons.js +67 -0
- package/dist/website-icons.js.map +1 -0
- package/dist/website-icons.test.d.ts +2 -0
- package/dist/website-icons.test.d.ts.map +1 -0
- package/dist/website-icons.test.js +56 -0
- package/dist/website-icons.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"website-icons.js","sourceRoot":"","sources":["../src/website-icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"website-icons.test.d.ts","sourceRoot":"","sources":["../src/website-icons.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { KNOWN_WEBSITE_ICONS, resolveKnownWebsiteIcon } from "./website-icons.js";
|
|
3
|
+
describe("resolveKnownWebsiteIcon", () => {
|
|
4
|
+
function expectImageSignature(icon, bytes) {
|
|
5
|
+
if (icon.iconDataUrl.startsWith("data:image/png;base64,")) {
|
|
6
|
+
expect(bytes.subarray(0, 8), `${icon.siteName} icon should be a PNG`).toEqual(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]));
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (icon.iconDataUrl.startsWith("data:image/x-icon;base64,")) {
|
|
10
|
+
expect(bytes.subarray(0, 4), `${icon.siteName} icon should be an ICO`).toEqual(Buffer.from([0x00, 0x00, 0x01, 0x00]));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (icon.iconDataUrl.startsWith("data:image/svg+xml;base64,")) {
|
|
14
|
+
expect(bytes.subarray(0, 128).toString("utf8"), `${icon.siteName} icon should be an SVG`).toContain("<svg");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`${icon.siteName} has an unsupported icon MIME type`);
|
|
18
|
+
}
|
|
19
|
+
it("resolves known public sites used in rendered link icons", () => {
|
|
20
|
+
expect(resolveKnownWebsiteIcon("https://x.com/user/status/1")?.siteName).toBe("X");
|
|
21
|
+
expect(resolveKnownWebsiteIcon("https://www.linkedin.com/pulse/post")?.siteName).toBe("LinkedIn");
|
|
22
|
+
expect(resolveKnownWebsiteIcon("https://platform.openai.com/docs")?.siteName).toBe("OpenAI");
|
|
23
|
+
expect(resolveKnownWebsiteIcon("https://chatgpt.com/c/example")?.siteName).toBe("ChatGPT");
|
|
24
|
+
expect(resolveKnownWebsiteIcon("https://claude.ai/chat/example")?.siteName).toBe("Claude");
|
|
25
|
+
expect(resolveKnownWebsiteIcon("https://www.figma.com/design/file")?.siteName).toBe("Figma");
|
|
26
|
+
expect(resolveKnownWebsiteIcon("https://docs.feishu.cn/docx/example")?.siteName).toBe("Feishu");
|
|
27
|
+
expect(resolveKnownWebsiteIcon("https://rudderhq.dev/docs")?.siteName).toBe("Rudder");
|
|
28
|
+
expect(resolveKnownWebsiteIcon("https://app.rudder.zeeland.studio/issues/RUD-1")?.siteName).toBe("Rudder");
|
|
29
|
+
});
|
|
30
|
+
it("does not treat unrelated provider subdomains as known site icons", () => {
|
|
31
|
+
expect(resolveKnownWebsiteIcon("https://developers.google.com/engineering-practices/code-review")).toBeNull();
|
|
32
|
+
});
|
|
33
|
+
it("uses real embedded image assets instead of generated letter placeholders", () => {
|
|
34
|
+
for (const icon of KNOWN_WEBSITE_ICONS) {
|
|
35
|
+
expect(icon.iconDataUrl).toMatch(/^data:image\/(?:x-icon|png|svg\+xml);base64,/u);
|
|
36
|
+
expect(icon.iconDataUrl).not.toMatch(/^data:image\/svg\+xml,/u);
|
|
37
|
+
const [, base64 = ""] = icon.iconDataUrl.split(",", 2);
|
|
38
|
+
const bytes = Buffer.from(base64, "base64");
|
|
39
|
+
expect(bytes.byteLength, `${icon.siteName} icon should not be empty`).toBeGreaterThan(100);
|
|
40
|
+
const prefix = bytes.subarray(0, 32).toString("utf8").toLowerCase();
|
|
41
|
+
expect(prefix, `${icon.siteName} icon must not be an HTML response`).not.toContain("<!doctype");
|
|
42
|
+
expect(prefix, `${icon.siteName} icon must not be an HTML response`).not.toContain("<html");
|
|
43
|
+
expectImageSignature(icon, bytes);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
it("uses the default Rudder favicon.ico for Rudder-owned domains", async () => {
|
|
47
|
+
const icon = resolveKnownWebsiteIcon("https://rudderhq.dev/docs");
|
|
48
|
+
expect(icon?.siteName).toBe("Rudder");
|
|
49
|
+
expect(icon?.iconDataUrl).toMatch(/^data:image\/x-icon;base64,/u);
|
|
50
|
+
const [, base64 = ""] = icon?.iconDataUrl.split(",", 2) ?? [];
|
|
51
|
+
const bytes = Buffer.from(base64, "base64");
|
|
52
|
+
const favicon = await import("node:fs/promises").then((fs) => fs.readFile("ui/public/favicon.ico"));
|
|
53
|
+
expect(bytes).toEqual(favicon);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=website-icons.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"website-icons.test.js","sourceRoot":"","sources":["../src/website-icons.test.ts"],"names":[],"mappings":"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"}
|