@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.
Files changed (75) hide show
  1. package/README.md +325 -0
  2. package/dist/commands/conversations.d.ts +16 -0
  3. package/dist/commands/conversations.d.ts.map +1 -0
  4. package/dist/commands/conversations.js +421 -0
  5. package/dist/commands/conversations.js.map +1 -0
  6. package/dist/commands/convex.d.ts +17 -0
  7. package/dist/commands/convex.d.ts.map +1 -0
  8. package/dist/commands/convex.js +442 -0
  9. package/dist/commands/convex.js.map +1 -0
  10. package/dist/commands/db.d.ts +16 -0
  11. package/dist/commands/db.d.ts.map +1 -0
  12. package/dist/commands/db.js +371 -0
  13. package/dist/commands/db.js.map +1 -0
  14. package/dist/commands/dev.d.ts +16 -0
  15. package/dist/commands/dev.d.ts.map +1 -0
  16. package/dist/commands/dev.js +558 -0
  17. package/dist/commands/dev.js.map +1 -0
  18. package/dist/commands/facts.d.ts +17 -0
  19. package/dist/commands/facts.d.ts.map +1 -0
  20. package/dist/commands/facts.js +386 -0
  21. package/dist/commands/facts.js.map +1 -0
  22. package/dist/commands/memory.d.ts +18 -0
  23. package/dist/commands/memory.d.ts.map +1 -0
  24. package/dist/commands/memory.js +486 -0
  25. package/dist/commands/memory.js.map +1 -0
  26. package/dist/commands/setup.d.ts +14 -0
  27. package/dist/commands/setup.d.ts.map +1 -0
  28. package/dist/commands/setup.js +494 -0
  29. package/dist/commands/setup.js.map +1 -0
  30. package/dist/commands/spaces.d.ts +18 -0
  31. package/dist/commands/spaces.d.ts.map +1 -0
  32. package/dist/commands/spaces.js +553 -0
  33. package/dist/commands/spaces.js.map +1 -0
  34. package/dist/commands/users.d.ts +18 -0
  35. package/dist/commands/users.d.ts.map +1 -0
  36. package/dist/commands/users.js +486 -0
  37. package/dist/commands/users.js.map +1 -0
  38. package/dist/index.d.ts +9 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +70 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/types.d.ts +144 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +5 -0
  45. package/dist/types.js.map +1 -0
  46. package/dist/utils/__tests__/config.test.d.ts +5 -0
  47. package/dist/utils/__tests__/config.test.d.ts.map +1 -0
  48. package/dist/utils/__tests__/config.test.js +127 -0
  49. package/dist/utils/__tests__/config.test.js.map +1 -0
  50. package/dist/utils/__tests__/formatting.test.d.ts +5 -0
  51. package/dist/utils/__tests__/formatting.test.d.ts.map +1 -0
  52. package/dist/utils/__tests__/formatting.test.js +132 -0
  53. package/dist/utils/__tests__/formatting.test.js.map +1 -0
  54. package/dist/utils/__tests__/validation.test.d.ts +5 -0
  55. package/dist/utils/__tests__/validation.test.d.ts.map +1 -0
  56. package/dist/utils/__tests__/validation.test.js +207 -0
  57. package/dist/utils/__tests__/validation.test.js.map +1 -0
  58. package/dist/utils/client.d.ts +42 -0
  59. package/dist/utils/client.d.ts.map +1 -0
  60. package/dist/utils/client.js +108 -0
  61. package/dist/utils/client.js.map +1 -0
  62. package/dist/utils/config.d.ts +67 -0
  63. package/dist/utils/config.d.ts.map +1 -0
  64. package/dist/utils/config.js +261 -0
  65. package/dist/utils/config.js.map +1 -0
  66. package/dist/utils/formatting.d.ts +81 -0
  67. package/dist/utils/formatting.d.ts.map +1 -0
  68. package/dist/utils/formatting.js +239 -0
  69. package/dist/utils/formatting.js.map +1 -0
  70. package/dist/utils/validation.d.ts +83 -0
  71. package/dist/utils/validation.d.ts.map +1 -0
  72. package/dist/utils/validation.js +243 -0
  73. package/dist/utils/validation.js.map +1 -0
  74. package/package.json +72 -0
  75. package/templates/.cortexrc.template +15 -0
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Validation Utilities Tests
3
+ */
4
+ import { describe, it, expect } from "@jest/globals";
5
+ import { validateMemorySpaceId, validateUserId, validateMemoryId, validateConversationId, validateFactId, validateMemorySpaceType, validateMemorySpaceStatus, validateFactType, validateOutputFormat, validateLimit, validateUrl, validateFilePath, validateSearchQuery, parseArrayArg, parseKeyValueArg, ValidationError, } from "../validation.js";
6
+ describe("validation utilities", () => {
7
+ describe("validateMemorySpaceId", () => {
8
+ it("should accept valid memory space IDs", () => {
9
+ expect(() => validateMemorySpaceId("agent-1")).not.toThrow();
10
+ expect(() => validateMemorySpaceId("my_space")).not.toThrow();
11
+ expect(() => validateMemorySpaceId("Space123")).not.toThrow();
12
+ expect(() => validateMemorySpaceId("a-b_c-123")).not.toThrow();
13
+ });
14
+ it("should reject empty string", () => {
15
+ expect(() => validateMemorySpaceId("")).toThrow(ValidationError);
16
+ expect(() => validateMemorySpaceId(" ")).toThrow(ValidationError);
17
+ });
18
+ it("should reject null/undefined", () => {
19
+ expect(() => validateMemorySpaceId(null)).toThrow(ValidationError);
20
+ expect(() => validateMemorySpaceId(undefined)).toThrow(ValidationError);
21
+ });
22
+ it("should reject IDs with invalid characters", () => {
23
+ expect(() => validateMemorySpaceId("space with spaces")).toThrow(ValidationError);
24
+ expect(() => validateMemorySpaceId("space@special")).toThrow(ValidationError);
25
+ expect(() => validateMemorySpaceId("space/path")).toThrow(ValidationError);
26
+ });
27
+ it("should reject IDs that are too long", () => {
28
+ const longId = "a".repeat(256);
29
+ expect(() => validateMemorySpaceId(longId)).toThrow(ValidationError);
30
+ });
31
+ });
32
+ describe("validateUserId", () => {
33
+ it("should accept valid user IDs", () => {
34
+ expect(() => validateUserId("user-123")).not.toThrow();
35
+ expect(() => validateUserId("user@example.com")).not.toThrow();
36
+ expect(() => validateUserId("12345")).not.toThrow();
37
+ });
38
+ it("should reject empty string", () => {
39
+ expect(() => validateUserId("")).toThrow(ValidationError);
40
+ });
41
+ it("should reject IDs that are too long", () => {
42
+ const longId = "u".repeat(256);
43
+ expect(() => validateUserId(longId)).toThrow(ValidationError);
44
+ });
45
+ });
46
+ describe("validateMemoryId", () => {
47
+ it("should accept valid memory IDs", () => {
48
+ expect(() => validateMemoryId("mem-abc123")).not.toThrow();
49
+ });
50
+ it("should reject empty string", () => {
51
+ expect(() => validateMemoryId("")).toThrow(ValidationError);
52
+ });
53
+ });
54
+ describe("validateConversationId", () => {
55
+ it("should accept valid conversation IDs", () => {
56
+ expect(() => validateConversationId("conv-123")).not.toThrow();
57
+ });
58
+ it("should reject empty string", () => {
59
+ expect(() => validateConversationId("")).toThrow(ValidationError);
60
+ });
61
+ });
62
+ describe("validateFactId", () => {
63
+ it("should accept valid fact IDs", () => {
64
+ expect(() => validateFactId("fact-xyz")).not.toThrow();
65
+ });
66
+ it("should reject empty string", () => {
67
+ expect(() => validateFactId("")).toThrow(ValidationError);
68
+ });
69
+ });
70
+ describe("validateMemorySpaceType", () => {
71
+ it("should accept valid types", () => {
72
+ expect(validateMemorySpaceType("personal")).toBe("personal");
73
+ expect(validateMemorySpaceType("team")).toBe("team");
74
+ expect(validateMemorySpaceType("project")).toBe("project");
75
+ expect(validateMemorySpaceType("custom")).toBe("custom");
76
+ });
77
+ it("should reject invalid types", () => {
78
+ expect(() => validateMemorySpaceType("invalid")).toThrow(ValidationError);
79
+ expect(() => validateMemorySpaceType("")).toThrow(ValidationError);
80
+ });
81
+ });
82
+ describe("validateMemorySpaceStatus", () => {
83
+ it("should accept valid statuses", () => {
84
+ expect(validateMemorySpaceStatus("active")).toBe("active");
85
+ expect(validateMemorySpaceStatus("archived")).toBe("archived");
86
+ });
87
+ it("should reject invalid statuses", () => {
88
+ expect(() => validateMemorySpaceStatus("deleted")).toThrow(ValidationError);
89
+ });
90
+ });
91
+ describe("validateFactType", () => {
92
+ it("should accept valid fact types", () => {
93
+ expect(validateFactType("preference")).toBe("preference");
94
+ expect(validateFactType("identity")).toBe("identity");
95
+ expect(validateFactType("knowledge")).toBe("knowledge");
96
+ expect(validateFactType("relationship")).toBe("relationship");
97
+ expect(validateFactType("event")).toBe("event");
98
+ expect(validateFactType("observation")).toBe("observation");
99
+ expect(validateFactType("custom")).toBe("custom");
100
+ });
101
+ it("should reject invalid fact types", () => {
102
+ expect(() => validateFactType("invalid")).toThrow(ValidationError);
103
+ });
104
+ });
105
+ describe("validateOutputFormat", () => {
106
+ it("should accept valid formats", () => {
107
+ expect(validateOutputFormat("table")).toBe("table");
108
+ expect(validateOutputFormat("json")).toBe("json");
109
+ expect(validateOutputFormat("csv")).toBe("csv");
110
+ });
111
+ it("should reject invalid formats", () => {
112
+ expect(() => validateOutputFormat("xml")).toThrow(ValidationError);
113
+ });
114
+ });
115
+ describe("validateLimit", () => {
116
+ it("should accept valid limits", () => {
117
+ expect(validateLimit(1)).toBe(1);
118
+ expect(validateLimit(50)).toBe(50);
119
+ expect(validateLimit(1000)).toBe(1000);
120
+ });
121
+ it("should reject zero or negative", () => {
122
+ expect(() => validateLimit(0)).toThrow(ValidationError);
123
+ expect(() => validateLimit(-1)).toThrow(ValidationError);
124
+ });
125
+ it("should reject limits exceeding max", () => {
126
+ expect(() => validateLimit(1001)).toThrow(ValidationError);
127
+ expect(() => validateLimit(101, 100)).toThrow(ValidationError);
128
+ });
129
+ it("should respect custom max", () => {
130
+ expect(validateLimit(50, 100)).toBe(50);
131
+ expect(() => validateLimit(101, 100)).toThrow(ValidationError);
132
+ });
133
+ });
134
+ describe("validateUrl", () => {
135
+ it("should accept valid URLs", () => {
136
+ expect(() => validateUrl("http://localhost:3210")).not.toThrow();
137
+ expect(() => validateUrl("https://example.convex.cloud")).not.toThrow();
138
+ expect(() => validateUrl("http://127.0.0.1:8080")).not.toThrow();
139
+ });
140
+ it("should reject invalid URLs", () => {
141
+ expect(() => validateUrl("not-a-url")).toThrow(ValidationError);
142
+ expect(() => validateUrl("")).toThrow(ValidationError);
143
+ });
144
+ });
145
+ describe("validateFilePath", () => {
146
+ it("should accept valid file paths", () => {
147
+ expect(() => validateFilePath("output.json")).not.toThrow();
148
+ expect(() => validateFilePath("./data/export.csv")).not.toThrow();
149
+ expect(() => validateFilePath("/absolute/path/file.txt")).not.toThrow();
150
+ });
151
+ it("should reject empty paths", () => {
152
+ expect(() => validateFilePath("")).toThrow(ValidationError);
153
+ expect(() => validateFilePath(" ")).toThrow(ValidationError);
154
+ });
155
+ });
156
+ describe("validateSearchQuery", () => {
157
+ it("should accept valid queries", () => {
158
+ expect(() => validateSearchQuery("password")).not.toThrow();
159
+ expect(() => validateSearchQuery("user preferences")).not.toThrow();
160
+ });
161
+ it("should reject empty queries", () => {
162
+ expect(() => validateSearchQuery("")).toThrow(ValidationError);
163
+ expect(() => validateSearchQuery(" ")).toThrow(ValidationError);
164
+ });
165
+ it("should reject queries that are too long", () => {
166
+ const longQuery = "q".repeat(1001);
167
+ expect(() => validateSearchQuery(longQuery)).toThrow(ValidationError);
168
+ });
169
+ });
170
+ describe("parseArrayArg", () => {
171
+ it("should parse comma-separated values", () => {
172
+ expect(parseArrayArg("a,b,c")).toEqual(["a", "b", "c"]);
173
+ expect(parseArrayArg("user-1, user-2, user-3")).toEqual([
174
+ "user-1",
175
+ "user-2",
176
+ "user-3",
177
+ ]);
178
+ });
179
+ it("should handle single value", () => {
180
+ expect(parseArrayArg("single")).toEqual(["single"]);
181
+ });
182
+ it("should handle empty string", () => {
183
+ expect(parseArrayArg("")).toEqual([]);
184
+ });
185
+ it("should filter out empty values", () => {
186
+ expect(parseArrayArg("a,,b,")).toEqual(["a", "b"]);
187
+ });
188
+ });
189
+ describe("parseKeyValueArg", () => {
190
+ it("should parse key=value pairs", () => {
191
+ expect(parseKeyValueArg("key1=value1,key2=value2")).toEqual({
192
+ key1: "value1",
193
+ key2: "value2",
194
+ });
195
+ });
196
+ it("should handle single pair", () => {
197
+ expect(parseKeyValueArg("name=test")).toEqual({ name: "test" });
198
+ });
199
+ it("should handle empty string", () => {
200
+ expect(parseKeyValueArg("")).toEqual({});
201
+ });
202
+ it("should handle whitespace", () => {
203
+ expect(parseKeyValueArg(" key = value ")).toEqual({ key: "value" });
204
+ });
205
+ });
206
+ });
207
+ //# sourceMappingURL=validation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/validation.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Cortex SDK Client Initialization
3
+ *
4
+ * Handles creating and managing connections to the Cortex SDK
5
+ */
6
+ import { Cortex } from "@cortexmemory/sdk";
7
+ import type { CLIConfig, GlobalOptions } from "../types.js";
8
+ /**
9
+ * Create a Cortex client from configuration and options
10
+ */
11
+ export declare function createClient(config: CLIConfig, options: GlobalOptions): Cortex;
12
+ /**
13
+ * Close the cached client connection
14
+ */
15
+ export declare function closeClient(): void;
16
+ /**
17
+ * Test connection to the Convex deployment
18
+ */
19
+ export declare function testConnection(config: CLIConfig, options: GlobalOptions): Promise<{
20
+ connected: boolean;
21
+ url: string;
22
+ error?: string;
23
+ latency?: number;
24
+ }>;
25
+ /**
26
+ * Get deployment info
27
+ */
28
+ export declare function getDeploymentInfo(config: CLIConfig, options: GlobalOptions): {
29
+ url: string;
30
+ deployment?: string;
31
+ hasKey: boolean;
32
+ isLocal: boolean;
33
+ };
34
+ /**
35
+ * Ensure client is connected before running an operation
36
+ */
37
+ export declare function withClient<T>(config: CLIConfig, options: GlobalOptions, operation: (client: Cortex) => Promise<T>): Promise<T>;
38
+ /**
39
+ * Run an operation with automatic cleanup on process exit
40
+ */
41
+ export declare function setupClientCleanup(): void;
42
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5D;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAyBD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAUA;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAczC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Cortex SDK Client Initialization
3
+ *
4
+ * Handles creating and managing connections to the Cortex SDK
5
+ */
6
+ import { Cortex } from "@cortexmemory/sdk";
7
+ import { resolveConfig } from "./config.js";
8
+ /**
9
+ * Cached client instance
10
+ */
11
+ let cachedClient = null;
12
+ let cachedUrl = null;
13
+ /**
14
+ * Create a Cortex client from configuration and options
15
+ */
16
+ export function createClient(config, options) {
17
+ const resolved = resolveConfig(config, options);
18
+ // Return cached client if URL matches
19
+ if (cachedClient && cachedUrl === resolved.url) {
20
+ return cachedClient;
21
+ }
22
+ // Close existing client if URL changed
23
+ if (cachedClient) {
24
+ cachedClient.close();
25
+ }
26
+ // Create new client
27
+ cachedClient = new Cortex({
28
+ convexUrl: resolved.url,
29
+ });
30
+ cachedUrl = resolved.url;
31
+ return cachedClient;
32
+ }
33
+ /**
34
+ * Close the cached client connection
35
+ */
36
+ export function closeClient() {
37
+ if (cachedClient) {
38
+ cachedClient.close();
39
+ cachedClient = null;
40
+ cachedUrl = null;
41
+ }
42
+ }
43
+ /**
44
+ * Test connection to the Convex deployment
45
+ */
46
+ export async function testConnection(config, options) {
47
+ const resolved = resolveConfig(config, options);
48
+ const startTime = Date.now();
49
+ try {
50
+ const client = createClient(config, options);
51
+ // Try to query something simple to verify connection
52
+ await client.memorySpaces.list({ limit: 1 });
53
+ const latency = Date.now() - startTime;
54
+ return {
55
+ connected: true,
56
+ url: resolved.url,
57
+ latency,
58
+ };
59
+ }
60
+ catch (error) {
61
+ return {
62
+ connected: false,
63
+ url: resolved.url,
64
+ error: error instanceof Error ? error.message : "Unknown error",
65
+ };
66
+ }
67
+ }
68
+ /**
69
+ * Get deployment info
70
+ */
71
+ export function getDeploymentInfo(config, options) {
72
+ const resolved = resolveConfig(config, options);
73
+ return {
74
+ url: resolved.url,
75
+ deployment: resolved.deployment,
76
+ hasKey: Boolean(resolved.key),
77
+ isLocal: resolved.url.includes("localhost") || resolved.url.includes("127.0.0.1"),
78
+ };
79
+ }
80
+ /**
81
+ * Ensure client is connected before running an operation
82
+ */
83
+ export async function withClient(config, options, operation) {
84
+ const client = createClient(config, options);
85
+ try {
86
+ return await operation(client);
87
+ }
88
+ finally {
89
+ // Don't close the client here - allow reuse
90
+ }
91
+ }
92
+ /**
93
+ * Run an operation with automatic cleanup on process exit
94
+ */
95
+ export function setupClientCleanup() {
96
+ process.on("exit", () => {
97
+ closeClient();
98
+ });
99
+ process.on("SIGINT", () => {
100
+ closeClient();
101
+ process.exit(0);
102
+ });
103
+ process.on("SIGTERM", () => {
104
+ closeClient();
105
+ process.exit(0);
106
+ });
107
+ }
108
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Configuration Management
3
+ *
4
+ * Handles loading, saving, and managing CLI configuration from multiple sources:
5
+ * 1. CLI flags (highest priority)
6
+ * 2. Environment variables
7
+ * 3. Project config (./cortex.config.json)
8
+ * 4. User config (~/.cortexrc)
9
+ */
10
+ import type { CLIConfig, DeploymentConfig, GlobalOptions, OutputFormat } from "../types.js";
11
+ /**
12
+ * Get the path to the user config file
13
+ */
14
+ export declare function getUserConfigPath(): string;
15
+ /**
16
+ * Get the path to the project config file
17
+ */
18
+ export declare function getProjectConfigPath(): string;
19
+ /**
20
+ * Load configuration from all sources
21
+ */
22
+ export declare function loadConfig(): Promise<CLIConfig>;
23
+ /**
24
+ * Save configuration to user config file
25
+ */
26
+ export declare function saveUserConfig(config: CLIConfig): Promise<void>;
27
+ /**
28
+ * Save configuration to project config file
29
+ */
30
+ export declare function saveProjectConfig(config: CLIConfig): Promise<void>;
31
+ /**
32
+ * Get a specific deployment configuration
33
+ */
34
+ export declare function getDeployment(config: CLIConfig, name?: string): DeploymentConfig | null;
35
+ /**
36
+ * Resolve final configuration from global options and config
37
+ */
38
+ export declare function resolveConfig(config: CLIConfig, options: GlobalOptions): {
39
+ url: string;
40
+ key?: string;
41
+ deployment?: string;
42
+ format: OutputFormat;
43
+ quiet: boolean;
44
+ debug: boolean;
45
+ };
46
+ /**
47
+ * Update a single deployment in the config
48
+ */
49
+ export declare function updateDeployment(name: string, deployment: DeploymentConfig, saveToUser?: boolean): Promise<CLIConfig>;
50
+ /**
51
+ * Set the default deployment
52
+ */
53
+ export declare function setDefaultDeployment(name: string): Promise<void>;
54
+ /**
55
+ * Set a configuration value
56
+ */
57
+ export declare function setConfigValue(key: string, value: string): Promise<void>;
58
+ /**
59
+ * List all deployments
60
+ */
61
+ export declare function listDeployments(config: CLIConfig): Array<{
62
+ name: string;
63
+ url: string;
64
+ isDefault: boolean;
65
+ hasKey: boolean;
66
+ }>;
67
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,aAAa,CAAC;AA8BrB;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CA6BrD;AA2DD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,gBAAgB,GAAG,IAAI,CAGzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CA6BA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,UAAU,UAAO,GAChB,OAAO,CAAC,SAAS,CAAC,CASpB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAStE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAOD"}