youmd 0.6.19 → 0.6.21

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 (51) hide show
  1. package/dist/commands/chat.d.ts.map +1 -1
  2. package/dist/commands/chat.js +337 -31
  3. package/dist/commands/chat.js.map +1 -1
  4. package/dist/commands/login.js +1 -1
  5. package/dist/commands/login.js.map +1 -1
  6. package/dist/commands/skill.js +2 -2
  7. package/dist/commands/skill.js.map +1 -1
  8. package/dist/index.js +79 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/ascii.d.ts +4 -0
  11. package/dist/lib/ascii.d.ts.map +1 -1
  12. package/dist/lib/ascii.js +12 -4
  13. package/dist/lib/ascii.js.map +1 -1
  14. package/dist/lib/first-run.d.ts +14 -0
  15. package/dist/lib/first-run.d.ts.map +1 -0
  16. package/dist/lib/first-run.js +97 -0
  17. package/dist/lib/first-run.js.map +1 -0
  18. package/dist/lib/onboarding.js +1 -1
  19. package/dist/lib/onboarding.js.map +1 -1
  20. package/dist/mcp/server.js +1 -1
  21. package/dist/you.js +1 -1
  22. package/dist/you.js.map +1 -1
  23. package/package.json +1 -1
  24. package/dist/__tests__/api.test.d.ts +0 -2
  25. package/dist/__tests__/api.test.d.ts.map +0 -1
  26. package/dist/__tests__/api.test.js +0 -87
  27. package/dist/__tests__/api.test.js.map +0 -1
  28. package/dist/__tests__/compiler.test.d.ts +0 -2
  29. package/dist/__tests__/compiler.test.d.ts.map +0 -1
  30. package/dist/__tests__/compiler.test.js +0 -127
  31. package/dist/__tests__/compiler.test.js.map +0 -1
  32. package/dist/__tests__/config.test.d.ts +0 -2
  33. package/dist/__tests__/config.test.d.ts.map +0 -1
  34. package/dist/__tests__/config.test.js +0 -79
  35. package/dist/__tests__/config.test.js.map +0 -1
  36. package/dist/__tests__/decompile.test.d.ts +0 -2
  37. package/dist/__tests__/decompile.test.d.ts.map +0 -1
  38. package/dist/__tests__/decompile.test.js +0 -102
  39. package/dist/__tests__/decompile.test.js.map +0 -1
  40. package/dist/__tests__/hash.test.d.ts +0 -2
  41. package/dist/__tests__/hash.test.d.ts.map +0 -1
  42. package/dist/__tests__/hash.test.js +0 -44
  43. package/dist/__tests__/hash.test.js.map +0 -1
  44. package/dist/__tests__/integration.test.d.ts +0 -2
  45. package/dist/__tests__/integration.test.d.ts.map +0 -1
  46. package/dist/__tests__/integration.test.js +0 -284
  47. package/dist/__tests__/integration.test.js.map +0 -1
  48. package/dist/__tests__/skill-renderer.test.d.ts +0 -2
  49. package/dist/__tests__/skill-renderer.test.d.ts.map +0 -1
  50. package/dist/__tests__/skill-renderer.test.js +0 -68
  51. package/dist/__tests__/skill-renderer.test.js.map +0 -1
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const vitest_1 = require("vitest");
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const os = __importStar(require("os"));
40
- const compiler_1 = require("../lib/compiler");
41
- (0, vitest_1.describe)("compiler", () => {
42
- let tmpDir;
43
- (0, vitest_1.beforeEach)(() => {
44
- tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "youmd-test-"));
45
- // Create minimal bundle structure
46
- fs.mkdirSync(path.join(tmpDir, "profile"), { recursive: true });
47
- fs.mkdirSync(path.join(tmpDir, "preferences"), { recursive: true });
48
- });
49
- (0, vitest_1.afterEach)(() => {
50
- fs.rmSync(tmpDir, { recursive: true, force: true });
51
- });
52
- (0, vitest_1.it)("compiles an empty bundle without error", () => {
53
- const result = (0, compiler_1.compileBundle)(tmpDir);
54
- (0, vitest_1.expect)(result).toBeDefined();
55
- (0, vitest_1.expect)(result.youJson).toBeDefined();
56
- (0, vitest_1.expect)(result.markdown).toBeDefined();
57
- (0, vitest_1.expect)(result.manifest).toBeDefined();
58
- (0, vitest_1.expect)(result.stats).toBeDefined();
59
- });
60
- (0, vitest_1.it)("compiles about.md into identity fields", () => {
61
- fs.writeFileSync(path.join(tmpDir, "profile", "about.md"), `---
62
- title: About
63
- ---
64
- # Houston Golden
65
-
66
- **Tagline:** Building the identity protocol
67
-
68
- **Location:** Miami, FL
69
-
70
- Founded BAMF Media. Building You.md.`);
71
- const result = (0, compiler_1.compileBundle)(tmpDir);
72
- const identity = result.youJson.identity;
73
- (0, vitest_1.expect)(identity).toBeDefined();
74
- (0, vitest_1.expect)(identity.name).toBe("Houston Golden");
75
- });
76
- (0, vitest_1.it)("compiles projects.md into projects array", () => {
77
- fs.writeFileSync(path.join(tmpDir, "profile", "projects.md"), `---
78
- title: Projects
79
- ---
80
- ## You.md
81
- - **Role:** Founder
82
- - **Status:** building
83
- - **Description:** Identity context protocol.
84
- - **URL:** https://you.md
85
-
86
- ## BAMF Media
87
- - **Role:** CEO
88
- - **Status:** active
89
- - **Description:** Growth marketing agency.`);
90
- const result = (0, compiler_1.compileBundle)(tmpDir);
91
- const projects = result.youJson.projects;
92
- (0, vitest_1.expect)(projects).toBeDefined();
93
- (0, vitest_1.expect)(projects.length).toBeGreaterThanOrEqual(2);
94
- (0, vitest_1.expect)(projects[0].name).toBe("You.md");
95
- });
96
- (0, vitest_1.it)("compiles preferences into agent prefs", () => {
97
- fs.writeFileSync(path.join(tmpDir, "preferences", "agent.md"), `---
98
- title: Agent Preferences
99
- ---
100
- **Tone:** direct, no fluff
101
- **Formality:** casual-professional
102
- **Avoid:** corporate speak, emoji`);
103
- const result = (0, compiler_1.compileBundle)(tmpDir);
104
- const prefs = result.youJson.preferences;
105
- (0, vitest_1.expect)(prefs).toBeDefined();
106
- const agent = prefs.agent;
107
- (0, vitest_1.expect)(agent.tone).toContain("direct");
108
- });
109
- (0, vitest_1.it)("writes bundle files to disk", () => {
110
- const result = (0, compiler_1.compileBundle)(tmpDir);
111
- (0, compiler_1.writeBundle)(tmpDir, result);
112
- (0, vitest_1.expect)(fs.existsSync(path.join(tmpDir, "you.json"))).toBe(true);
113
- (0, vitest_1.expect)(fs.existsSync(path.join(tmpDir, "you.md"))).toBe(true);
114
- (0, vitest_1.expect)(fs.existsSync(path.join(tmpDir, "manifest.json"))).toBe(true);
115
- // you.json should be valid JSON
116
- const parsed = JSON.parse(fs.readFileSync(path.join(tmpDir, "you.json"), "utf-8"));
117
- (0, vitest_1.expect)(parsed.schema).toBe("you-md/v1");
118
- });
119
- (0, vitest_1.it)("tracks stats correctly", () => {
120
- fs.writeFileSync(path.join(tmpDir, "profile", "about.md"), "# Test\nHello");
121
- fs.writeFileSync(path.join(tmpDir, "profile", "values.md"), "- Integrity\n- Speed");
122
- const result = (0, compiler_1.compileBundle)(tmpDir);
123
- (0, vitest_1.expect)(result.stats.totalSections).toBeGreaterThan(0);
124
- (0, vitest_1.expect)(result.filesRead.length).toBeGreaterThan(0);
125
- });
126
- });
127
- //# sourceMappingURL=compiler.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler.test.js","sourceRoot":"","sources":["../../src/__tests__/compiler.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":""}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const vitest_1 = require("vitest");
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const os = __importStar(require("os"));
40
- (0, vitest_1.describe)("config", () => {
41
- let originalHome;
42
- let tmpHome;
43
- (0, vitest_1.beforeEach)(() => {
44
- tmpHome = fs.mkdtempSync(path.join(os.tmpdir(), "youmd-config-test-"));
45
- originalHome = process.env.HOME;
46
- process.env.HOME = tmpHome;
47
- });
48
- (0, vitest_1.afterEach)(() => {
49
- process.env.HOME = originalHome;
50
- fs.rmSync(tmpHome, { recursive: true, force: true });
51
- });
52
- (0, vitest_1.it)("getConvexSiteUrl returns default when no config", async () => {
53
- // Re-import to pick up new HOME
54
- const { getConvexSiteUrl } = await Promise.resolve().then(() => __importStar(require("../lib/config")));
55
- const url = getConvexSiteUrl();
56
- (0, vitest_1.expect)(url).toContain("convex.site");
57
- });
58
- (0, vitest_1.it)("getConvexSiteUrl returns apiUrl from config when set", async () => {
59
- const configDir = path.join(tmpHome, ".youmd");
60
- fs.mkdirSync(configDir, { recursive: true });
61
- fs.writeFileSync(path.join(configDir, "config.json"), JSON.stringify({ apiUrl: "https://custom.convex.site" }));
62
- // Need fresh import
63
- vitest_1.vi.resetModules();
64
- const { getConvexSiteUrl } = await Promise.resolve().then(() => __importStar(require("../lib/config")));
65
- const url = getConvexSiteUrl();
66
- // May or may not pick up the custom URL depending on module caching
67
- (0, vitest_1.expect)(url).toContain("convex.site");
68
- });
69
- (0, vitest_1.it)("isAuthenticated returns false when no token", async () => {
70
- const { isAuthenticated } = await Promise.resolve().then(() => __importStar(require("../lib/config")));
71
- (0, vitest_1.expect)(isAuthenticated()).toBe(false);
72
- });
73
- (0, vitest_1.it)("localBundleExists returns false when no .youmd dir", async () => {
74
- const { localBundleExists } = await Promise.resolve().then(() => __importStar(require("../lib/config")));
75
- // We're in a temp dir with no .youmd
76
- (0, vitest_1.expect)(localBundleExists()).toBe(false);
77
- });
78
- });
79
- //# sourceMappingURL=config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAyE;AACzE,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,IAAA,iBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,YAAgC,CAAC;IACrC,IAAI,OAAe,CAAC;IAEpB,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACvE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,gCAAgC;QAChC,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EACnC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CACzD,CAAC;QAEF,oBAAoB;QACpB,WAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,oEAAoE;QACpE,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;QAC5D,qCAAqC;QACrC,IAAA,eAAM,EAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=decompile.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decompile.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/decompile.test.ts"],"names":[],"mappings":""}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const fs = __importStar(require("fs"));
37
- const os = __importStar(require("os"));
38
- const path = __importStar(require("path"));
39
- const vitest_1 = require("vitest");
40
- const compiler_1 = require("../lib/compiler");
41
- const decompile_1 = require("../lib/decompile");
42
- const tempDirs = [];
43
- function makeTempDir() {
44
- const dir = fs.mkdtempSync(path.join(os.tmpdir(), "youmd-decompile-"));
45
- tempDirs.push(dir);
46
- return dir;
47
- }
48
- (0, vitest_1.describe)("decompileToFilesystem", () => {
49
- (0, vitest_1.afterEach)(() => {
50
- for (const dir of tempDirs.splice(0)) {
51
- fs.rmSync(dir, { recursive: true, force: true });
52
- }
53
- });
54
- (0, vitest_1.it)("does not scaffold empty/default-only sections from nested bundles", () => {
55
- const bundleDir = makeTempDir();
56
- (0, decompile_1.decompileToFilesystem)(bundleDir, {
57
- schema: "you-md/v1",
58
- username: "tester",
59
- identity: {
60
- name: "Test User",
61
- bio: {
62
- short: "Short bio.",
63
- medium: "Short bio.",
64
- long: "Short bio.",
65
- },
66
- },
67
- now: {
68
- focus: [],
69
- },
70
- preferences: {
71
- writing: {
72
- style: "",
73
- format: "markdown preferred",
74
- },
75
- },
76
- projects: [],
77
- values: [],
78
- links: {},
79
- voice: {},
80
- agent_directives: {},
81
- });
82
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "profile", "about.md"))).toBe(true);
83
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "profile", "now.md"))).toBe(false);
84
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "preferences", "writing.md"))).toBe(false);
85
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "profile", "projects.md"))).toBe(false);
86
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "profile", "values.md"))).toBe(false);
87
- (0, vitest_1.expect)(fs.existsSync(path.join(bundleDir, "profile", "links.md"))).toBe(false);
88
- });
89
- (0, vitest_1.it)("does not synthesize writing defaults when no writing section exists", () => {
90
- const bundleDir = makeTempDir();
91
- for (const dir of ["profile", "preferences", "voice", "directives"]) {
92
- fs.mkdirSync(path.join(bundleDir, dir), { recursive: true });
93
- }
94
- fs.writeFileSync(path.join(bundleDir, "profile", "about.md"), '---\ntitle: "About"\n---\n\n# Test User\n\nA real bio.\n');
95
- const compiled = (0, compiler_1.compileBundle)(bundleDir);
96
- const writing = (compiled.youJson.preferences?.writing ??
97
- {});
98
- (0, vitest_1.expect)(writing.style).toBe("");
99
- (0, vitest_1.expect)(writing.format).toBe("");
100
- });
101
- });
102
- //# sourceMappingURL=decompile.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decompile.test.js","sourceRoot":"","sources":["../../src/__tests__/decompile.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hash.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/hash.test.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const hash_1 = require("../lib/hash");
5
- (0, vitest_1.describe)("hash", () => {
6
- (0, vitest_1.describe)("computeContentHash", () => {
7
- (0, vitest_1.it)("returns a 64-char hex string (SHA-256)", () => {
8
- const hash = (0, hash_1.computeContentHash)({ test: true }, "# test");
9
- (0, vitest_1.expect)(hash).toMatch(/^[0-9a-f]{64}$/);
10
- });
11
- (0, vitest_1.it)("is deterministic — same input produces same hash", () => {
12
- const a = (0, hash_1.computeContentHash)({ x: 1, y: "hello" }, "markdown");
13
- const b = (0, hash_1.computeContentHash)({ x: 1, y: "hello" }, "markdown");
14
- (0, vitest_1.expect)(a).toBe(b);
15
- });
16
- (0, vitest_1.it)("is order-independent for object keys", () => {
17
- const a = (0, hash_1.computeContentHash)({ z: 1, a: 2 }, "md");
18
- const b = (0, hash_1.computeContentHash)({ a: 2, z: 1 }, "md");
19
- (0, vitest_1.expect)(a).toBe(b);
20
- });
21
- (0, vitest_1.it)("is sensitive to JSON changes", () => {
22
- const a = (0, hash_1.computeContentHash)({ x: 1 }, "same");
23
- const b = (0, hash_1.computeContentHash)({ x: 2 }, "same");
24
- (0, vitest_1.expect)(a).not.toBe(b);
25
- });
26
- (0, vitest_1.it)("is sensitive to markdown changes", () => {
27
- const a = (0, hash_1.computeContentHash)({ x: 1 }, "hello");
28
- const b = (0, hash_1.computeContentHash)({ x: 1 }, "hello world");
29
- (0, vitest_1.expect)(a).not.toBe(b);
30
- });
31
- (0, vitest_1.it)("handles empty objects", () => {
32
- const hash = (0, hash_1.computeContentHash)({}, "");
33
- (0, vitest_1.expect)(hash).toMatch(/^[0-9a-f]{64}$/);
34
- });
35
- });
36
- (0, vitest_1.describe)("shortHash", () => {
37
- (0, vitest_1.it)("returns first 12 characters", () => {
38
- const hash = "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890";
39
- (0, vitest_1.expect)((0, hash_1.shortHash)(hash)).toBe("abcdef123456");
40
- (0, vitest_1.expect)((0, hash_1.shortHash)(hash)).toHaveLength(12);
41
- });
42
- });
43
- });
44
- //# sourceMappingURL=hash.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../src/__tests__/hash.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":""}