@cortexmemory/cli 0.1.0
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/README.md +325 -0
- package/dist/commands/conversations.d.ts +16 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +421 -0
- package/dist/commands/conversations.js.map +1 -0
- package/dist/commands/convex.d.ts +17 -0
- package/dist/commands/convex.d.ts.map +1 -0
- package/dist/commands/convex.js +442 -0
- package/dist/commands/convex.js.map +1 -0
- package/dist/commands/db.d.ts +16 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +371 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/dev.d.ts +16 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +558 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/facts.d.ts +17 -0
- package/dist/commands/facts.d.ts.map +1 -0
- package/dist/commands/facts.js +386 -0
- package/dist/commands/facts.js.map +1 -0
- package/dist/commands/memory.d.ts +18 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +486 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +494 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/spaces.d.ts +18 -0
- package/dist/commands/spaces.d.ts.map +1 -0
- package/dist/commands/spaces.js +553 -0
- package/dist/commands/spaces.js.map +1 -0
- package/dist/commands/users.d.ts +18 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +486 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +144 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/__tests__/config.test.d.ts +5 -0
- package/dist/utils/__tests__/config.test.d.ts.map +1 -0
- package/dist/utils/__tests__/config.test.js +127 -0
- package/dist/utils/__tests__/config.test.js.map +1 -0
- package/dist/utils/__tests__/formatting.test.d.ts +5 -0
- package/dist/utils/__tests__/formatting.test.d.ts.map +1 -0
- package/dist/utils/__tests__/formatting.test.js +132 -0
- package/dist/utils/__tests__/formatting.test.js.map +1 -0
- package/dist/utils/__tests__/validation.test.d.ts +5 -0
- package/dist/utils/__tests__/validation.test.d.ts.map +1 -0
- package/dist/utils/__tests__/validation.test.js +207 -0
- package/dist/utils/__tests__/validation.test.js.map +1 -0
- package/dist/utils/client.d.ts +42 -0
- package/dist/utils/client.d.ts.map +1 -0
- package/dist/utils/client.js +108 -0
- package/dist/utils/client.js.map +1 -0
- package/dist/utils/config.d.ts +67 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +261 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/formatting.d.ts +81 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +239 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/validation.d.ts +83 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +243 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +72 -0
- package/templates/.cortexrc.template +15 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cortex CLI Types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Output format options
|
|
6
|
+
*/
|
|
7
|
+
export type OutputFormat = "table" | "json" | "csv";
|
|
8
|
+
/**
|
|
9
|
+
* CLI configuration stored in ~/.cortexrc or ./cortex.config.json
|
|
10
|
+
*/
|
|
11
|
+
export interface CLIConfig {
|
|
12
|
+
deployments: Record<string, DeploymentConfig>;
|
|
13
|
+
default: string;
|
|
14
|
+
format: OutputFormat;
|
|
15
|
+
confirmDangerous: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration for a single deployment
|
|
19
|
+
*/
|
|
20
|
+
export interface DeploymentConfig {
|
|
21
|
+
url: string;
|
|
22
|
+
key?: string;
|
|
23
|
+
deployment?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Global CLI options that can be passed to any command
|
|
27
|
+
*/
|
|
28
|
+
export interface GlobalOptions {
|
|
29
|
+
deployment?: string;
|
|
30
|
+
url?: string;
|
|
31
|
+
key?: string;
|
|
32
|
+
format?: OutputFormat;
|
|
33
|
+
quiet?: boolean;
|
|
34
|
+
debug?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Memory space types
|
|
38
|
+
*/
|
|
39
|
+
export type MemorySpaceType = "personal" | "team" | "project" | "custom";
|
|
40
|
+
/**
|
|
41
|
+
* Memory space status
|
|
42
|
+
*/
|
|
43
|
+
export type MemorySpaceStatus = "active" | "archived";
|
|
44
|
+
/**
|
|
45
|
+
* Fact types
|
|
46
|
+
*/
|
|
47
|
+
export type FactType = "preference" | "identity" | "knowledge" | "relationship" | "event" | "observation" | "custom";
|
|
48
|
+
/**
|
|
49
|
+
* Source types for memories
|
|
50
|
+
*/
|
|
51
|
+
export type SourceType = "conversation" | "system" | "tool" | "a2a" | "fact-extraction";
|
|
52
|
+
/**
|
|
53
|
+
* Statistics result for memory spaces
|
|
54
|
+
*/
|
|
55
|
+
export interface SpaceStats {
|
|
56
|
+
memorySpaceId: string;
|
|
57
|
+
conversationCount: number;
|
|
58
|
+
memoryCount: number;
|
|
59
|
+
factCount: number;
|
|
60
|
+
participantCount: number;
|
|
61
|
+
lastActivity?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Database statistics
|
|
65
|
+
*/
|
|
66
|
+
export interface DatabaseStats {
|
|
67
|
+
memorySpaces: number;
|
|
68
|
+
conversations: number;
|
|
69
|
+
memories: number;
|
|
70
|
+
facts: number;
|
|
71
|
+
users: number;
|
|
72
|
+
immutableRecords: number;
|
|
73
|
+
mutableRecords: number;
|
|
74
|
+
contexts: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Backup data structure
|
|
78
|
+
*/
|
|
79
|
+
export interface BackupData {
|
|
80
|
+
version: string;
|
|
81
|
+
timestamp: number;
|
|
82
|
+
deployment: string;
|
|
83
|
+
data: {
|
|
84
|
+
memorySpaces?: unknown[];
|
|
85
|
+
conversations?: unknown[];
|
|
86
|
+
memories?: unknown[];
|
|
87
|
+
facts?: unknown[];
|
|
88
|
+
users?: unknown[];
|
|
89
|
+
immutable?: unknown[];
|
|
90
|
+
mutable?: unknown[];
|
|
91
|
+
contexts?: unknown[];
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Result of a delete operation
|
|
96
|
+
*/
|
|
97
|
+
export interface DeleteResult {
|
|
98
|
+
deleted: boolean;
|
|
99
|
+
count: number;
|
|
100
|
+
ids: string[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Result of a cascade deletion
|
|
104
|
+
*/
|
|
105
|
+
export interface CascadeDeleteResult {
|
|
106
|
+
deleted: boolean;
|
|
107
|
+
memoriesDeleted: number;
|
|
108
|
+
conversationsDeleted: number;
|
|
109
|
+
factsDeleted: number;
|
|
110
|
+
contextsDeleted: number;
|
|
111
|
+
totalDeleted: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* User delete result with GDPR cascade
|
|
115
|
+
*/
|
|
116
|
+
export interface UserDeleteResult {
|
|
117
|
+
userId: string;
|
|
118
|
+
deletedAt: number;
|
|
119
|
+
conversationsDeleted: number;
|
|
120
|
+
conversationMessagesDeleted: number;
|
|
121
|
+
immutableRecordsDeleted: number;
|
|
122
|
+
mutableKeysDeleted: number;
|
|
123
|
+
vectorMemoriesDeleted: number;
|
|
124
|
+
factsDeleted: number;
|
|
125
|
+
graphNodesDeleted?: number;
|
|
126
|
+
verification: {
|
|
127
|
+
complete: boolean;
|
|
128
|
+
issues: string[];
|
|
129
|
+
};
|
|
130
|
+
totalDeleted: number;
|
|
131
|
+
deletedLayers: string[];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Command handler context
|
|
135
|
+
*/
|
|
136
|
+
export interface CommandContext {
|
|
137
|
+
config: CLIConfig;
|
|
138
|
+
convexUrl: string;
|
|
139
|
+
convexKey?: string;
|
|
140
|
+
format: OutputFormat;
|
|
141
|
+
quiet: boolean;
|
|
142
|
+
debug: boolean;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/config.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Utilities Tests
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach } from "@jest/globals";
|
|
5
|
+
import { getDeployment, resolveConfig, listDeployments } from "../config.js";
|
|
6
|
+
describe("config utilities", () => {
|
|
7
|
+
const mockConfig = {
|
|
8
|
+
deployments: {
|
|
9
|
+
local: {
|
|
10
|
+
url: "http://127.0.0.1:3210",
|
|
11
|
+
deployment: "anonymous:local",
|
|
12
|
+
},
|
|
13
|
+
staging: {
|
|
14
|
+
url: "https://staging.convex.cloud",
|
|
15
|
+
key: "staging-key",
|
|
16
|
+
},
|
|
17
|
+
production: {
|
|
18
|
+
url: "https://prod.convex.cloud",
|
|
19
|
+
key: "prod-key",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
default: "local",
|
|
23
|
+
format: "table",
|
|
24
|
+
confirmDangerous: true,
|
|
25
|
+
};
|
|
26
|
+
describe("getDeployment", () => {
|
|
27
|
+
it("should return deployment by name", () => {
|
|
28
|
+
const deployment = getDeployment(mockConfig, "staging");
|
|
29
|
+
expect(deployment).toEqual({
|
|
30
|
+
url: "https://staging.convex.cloud",
|
|
31
|
+
key: "staging-key",
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
it("should return default deployment when name not provided", () => {
|
|
35
|
+
const deployment = getDeployment(mockConfig);
|
|
36
|
+
expect(deployment).toEqual({
|
|
37
|
+
url: "http://127.0.0.1:3210",
|
|
38
|
+
deployment: "anonymous:local",
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
it("should return null for non-existent deployment", () => {
|
|
42
|
+
const deployment = getDeployment(mockConfig, "nonexistent");
|
|
43
|
+
expect(deployment).toBeNull();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("resolveConfig", () => {
|
|
47
|
+
it("should use URL from options if provided", () => {
|
|
48
|
+
const resolved = resolveConfig(mockConfig, {
|
|
49
|
+
url: "http://custom:3000",
|
|
50
|
+
key: "custom-key",
|
|
51
|
+
});
|
|
52
|
+
expect(resolved.url).toBe("http://custom:3000");
|
|
53
|
+
expect(resolved.key).toBe("custom-key");
|
|
54
|
+
});
|
|
55
|
+
it("should use deployment from options", () => {
|
|
56
|
+
const resolved = resolveConfig(mockConfig, {
|
|
57
|
+
deployment: "production",
|
|
58
|
+
});
|
|
59
|
+
expect(resolved.url).toBe("https://prod.convex.cloud");
|
|
60
|
+
expect(resolved.key).toBe("prod-key");
|
|
61
|
+
});
|
|
62
|
+
it("should use default deployment when no options", () => {
|
|
63
|
+
const resolved = resolveConfig(mockConfig, {});
|
|
64
|
+
expect(resolved.url).toBe("http://127.0.0.1:3210");
|
|
65
|
+
expect(resolved.deployment).toBe("anonymous:local");
|
|
66
|
+
});
|
|
67
|
+
it("should throw for non-existent deployment", () => {
|
|
68
|
+
expect(() => resolveConfig(mockConfig, { deployment: "nonexistent" })).toThrow('Deployment "nonexistent" not found');
|
|
69
|
+
});
|
|
70
|
+
it("should use format from options", () => {
|
|
71
|
+
const resolved = resolveConfig(mockConfig, { format: "json" });
|
|
72
|
+
expect(resolved.format).toBe("json");
|
|
73
|
+
});
|
|
74
|
+
it("should use format from config when not in options", () => {
|
|
75
|
+
const resolved = resolveConfig(mockConfig, {});
|
|
76
|
+
expect(resolved.format).toBe("table");
|
|
77
|
+
});
|
|
78
|
+
it("should handle quiet option", () => {
|
|
79
|
+
const resolved = resolveConfig(mockConfig, { quiet: true });
|
|
80
|
+
expect(resolved.quiet).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it("should handle debug option", () => {
|
|
83
|
+
const resolved = resolveConfig(mockConfig, { debug: true });
|
|
84
|
+
expect(resolved.debug).toBe(true);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe("listDeployments", () => {
|
|
88
|
+
it("should list all deployments", () => {
|
|
89
|
+
const deployments = listDeployments(mockConfig);
|
|
90
|
+
expect(deployments).toHaveLength(3);
|
|
91
|
+
});
|
|
92
|
+
it("should include deployment names", () => {
|
|
93
|
+
const deployments = listDeployments(mockConfig);
|
|
94
|
+
const names = deployments.map((d) => d.name);
|
|
95
|
+
expect(names).toContain("local");
|
|
96
|
+
expect(names).toContain("staging");
|
|
97
|
+
expect(names).toContain("production");
|
|
98
|
+
});
|
|
99
|
+
it("should mark default deployment", () => {
|
|
100
|
+
const deployments = listDeployments(mockConfig);
|
|
101
|
+
const defaultDeployment = deployments.find((d) => d.isDefault);
|
|
102
|
+
expect(defaultDeployment?.name).toBe("local");
|
|
103
|
+
});
|
|
104
|
+
it("should indicate which deployments have keys", () => {
|
|
105
|
+
const deployments = listDeployments(mockConfig);
|
|
106
|
+
const local = deployments.find((d) => d.name === "local");
|
|
107
|
+
const staging = deployments.find((d) => d.name === "staging");
|
|
108
|
+
expect(local?.hasKey).toBe(false);
|
|
109
|
+
expect(staging?.hasKey).toBe(true);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe("environment variable overrides", () => {
|
|
114
|
+
const originalEnv = process.env;
|
|
115
|
+
beforeEach(() => {
|
|
116
|
+
process.env = { ...originalEnv };
|
|
117
|
+
});
|
|
118
|
+
afterEach(() => {
|
|
119
|
+
process.env = originalEnv;
|
|
120
|
+
});
|
|
121
|
+
it("should be tested in integration tests with actual config loading", () => {
|
|
122
|
+
// Environment overrides are applied during loadConfig()
|
|
123
|
+
// These should be tested in integration tests
|
|
124
|
+
expect(true).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/formatting.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formatting Utilities Tests
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from "@jest/globals";
|
|
5
|
+
import { formatJSON, formatCSV, formatTimestamp, formatRelativeTime, formatBytes, formatCount, } from "../formatting.js";
|
|
6
|
+
describe("formatting utilities", () => {
|
|
7
|
+
describe("formatJSON", () => {
|
|
8
|
+
it("should format objects as pretty JSON", () => {
|
|
9
|
+
const data = { key: "value", num: 42 };
|
|
10
|
+
const result = formatJSON(data);
|
|
11
|
+
expect(result).toBe(JSON.stringify(data, null, 2));
|
|
12
|
+
});
|
|
13
|
+
it("should format arrays", () => {
|
|
14
|
+
const data = [1, 2, 3];
|
|
15
|
+
const result = formatJSON(data);
|
|
16
|
+
expect(result).toBe(JSON.stringify(data, null, 2));
|
|
17
|
+
});
|
|
18
|
+
it("should handle null", () => {
|
|
19
|
+
expect(formatJSON(null)).toBe("null");
|
|
20
|
+
});
|
|
21
|
+
it("should handle strings", () => {
|
|
22
|
+
expect(formatJSON("test")).toBe('"test"');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe("formatCSV", () => {
|
|
26
|
+
it("should format array of objects as CSV", () => {
|
|
27
|
+
const data = [
|
|
28
|
+
{ name: "Alice", age: 30 },
|
|
29
|
+
{ name: "Bob", age: 25 },
|
|
30
|
+
];
|
|
31
|
+
const result = formatCSV(data);
|
|
32
|
+
expect(result).toContain("name,age");
|
|
33
|
+
expect(result).toContain("Alice,30");
|
|
34
|
+
expect(result).toContain("Bob,25");
|
|
35
|
+
});
|
|
36
|
+
it("should handle custom headers", () => {
|
|
37
|
+
const data = [{ name: "Test", extra: "ignored" }];
|
|
38
|
+
const result = formatCSV(data, ["name"]);
|
|
39
|
+
expect(result).toContain("name");
|
|
40
|
+
expect(result).not.toContain("extra");
|
|
41
|
+
});
|
|
42
|
+
it("should escape values with commas", () => {
|
|
43
|
+
const data = [{ text: "hello, world" }];
|
|
44
|
+
const result = formatCSV(data);
|
|
45
|
+
expect(result).toContain('"hello, world"');
|
|
46
|
+
});
|
|
47
|
+
it("should escape values with quotes", () => {
|
|
48
|
+
const data = [{ text: 'say "hello"' }];
|
|
49
|
+
const result = formatCSV(data);
|
|
50
|
+
expect(result).toContain('"say ""hello"""');
|
|
51
|
+
});
|
|
52
|
+
it("should handle empty array", () => {
|
|
53
|
+
expect(formatCSV([])).toBe("");
|
|
54
|
+
});
|
|
55
|
+
it("should wrap single object in array", () => {
|
|
56
|
+
const data = { name: "Test" };
|
|
57
|
+
const result = formatCSV(data);
|
|
58
|
+
expect(result).toContain("name");
|
|
59
|
+
expect(result).toContain("Test");
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe("formatTimestamp", () => {
|
|
63
|
+
it("should format timestamp as locale string", () => {
|
|
64
|
+
const timestamp = new Date("2025-01-15T10:30:00Z").getTime();
|
|
65
|
+
const result = formatTimestamp(timestamp);
|
|
66
|
+
expect(result).toBeTruthy();
|
|
67
|
+
expect(typeof result).toBe("string");
|
|
68
|
+
});
|
|
69
|
+
it("should handle current timestamp", () => {
|
|
70
|
+
const result = formatTimestamp(Date.now());
|
|
71
|
+
expect(result).toBeTruthy();
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe("formatRelativeTime", () => {
|
|
75
|
+
it('should format recent time as "just now"', () => {
|
|
76
|
+
const timestamp = Date.now() - 30000; // 30 seconds ago
|
|
77
|
+
const result = formatRelativeTime(timestamp);
|
|
78
|
+
expect(result).toBe("just now");
|
|
79
|
+
});
|
|
80
|
+
it("should format minutes ago", () => {
|
|
81
|
+
const timestamp = Date.now() - 5 * 60 * 1000; // 5 minutes ago
|
|
82
|
+
const result = formatRelativeTime(timestamp);
|
|
83
|
+
expect(result).toBe("5m ago");
|
|
84
|
+
});
|
|
85
|
+
it("should format hours ago", () => {
|
|
86
|
+
const timestamp = Date.now() - 3 * 60 * 60 * 1000; // 3 hours ago
|
|
87
|
+
const result = formatRelativeTime(timestamp);
|
|
88
|
+
expect(result).toBe("3h ago");
|
|
89
|
+
});
|
|
90
|
+
it("should format days ago", () => {
|
|
91
|
+
const timestamp = Date.now() - 2 * 24 * 60 * 60 * 1000; // 2 days ago
|
|
92
|
+
const result = formatRelativeTime(timestamp);
|
|
93
|
+
expect(result).toBe("2d ago");
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe("formatBytes", () => {
|
|
97
|
+
it("should format bytes", () => {
|
|
98
|
+
expect(formatBytes(500)).toBe("500.0 B");
|
|
99
|
+
});
|
|
100
|
+
it("should format kilobytes", () => {
|
|
101
|
+
expect(formatBytes(1024)).toBe("1.0 KB");
|
|
102
|
+
expect(formatBytes(2048)).toBe("2.0 KB");
|
|
103
|
+
});
|
|
104
|
+
it("should format megabytes", () => {
|
|
105
|
+
expect(formatBytes(1024 * 1024)).toBe("1.0 MB");
|
|
106
|
+
});
|
|
107
|
+
it("should format gigabytes", () => {
|
|
108
|
+
expect(formatBytes(1024 * 1024 * 1024)).toBe("1.0 GB");
|
|
109
|
+
});
|
|
110
|
+
it("should handle zero", () => {
|
|
111
|
+
expect(formatBytes(0)).toBe("0.0 B");
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe("formatCount", () => {
|
|
115
|
+
it("should format singular", () => {
|
|
116
|
+
expect(formatCount(1, "memory", "memories")).toBe("1 memory");
|
|
117
|
+
expect(formatCount(1, "user")).toBe("1 user");
|
|
118
|
+
});
|
|
119
|
+
it("should format plural", () => {
|
|
120
|
+
expect(formatCount(5, "memory", "memories")).toBe("5 memories");
|
|
121
|
+
expect(formatCount(0, "memory", "memories")).toBe("0 memories");
|
|
122
|
+
});
|
|
123
|
+
it("should auto-pluralize without explicit plural", () => {
|
|
124
|
+
expect(formatCount(2, "user")).toBe("2 users");
|
|
125
|
+
});
|
|
126
|
+
it("should format large numbers with commas", () => {
|
|
127
|
+
expect(formatCount(1000, "item")).toBe("1,000 items");
|
|
128
|
+
expect(formatCount(1000000, "record")).toBe("1,000,000 records");
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=formatting.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/formatting.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/validation.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|