@pcircle/footprint 1.0.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 (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -0
  3. package/SKILL.md +355 -0
  4. package/dist/index.d.ts +19 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +690 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/lib/crypto/decrypt.d.ts +11 -0
  9. package/dist/lib/crypto/decrypt.d.ts.map +1 -0
  10. package/dist/lib/crypto/decrypt.js +30 -0
  11. package/dist/lib/crypto/decrypt.js.map +1 -0
  12. package/dist/lib/crypto/encrypt.d.ts +13 -0
  13. package/dist/lib/crypto/encrypt.d.ts.map +1 -0
  14. package/dist/lib/crypto/encrypt.js +24 -0
  15. package/dist/lib/crypto/encrypt.js.map +1 -0
  16. package/dist/lib/crypto/index.d.ts +6 -0
  17. package/dist/lib/crypto/index.d.ts.map +1 -0
  18. package/dist/lib/crypto/index.js +5 -0
  19. package/dist/lib/crypto/index.js.map +1 -0
  20. package/dist/lib/crypto/key-derivation.d.ts +30 -0
  21. package/dist/lib/crypto/key-derivation.d.ts.map +1 -0
  22. package/dist/lib/crypto/key-derivation.js +63 -0
  23. package/dist/lib/crypto/key-derivation.js.map +1 -0
  24. package/dist/lib/crypto/types.d.ts +22 -0
  25. package/dist/lib/crypto/types.d.ts.map +1 -0
  26. package/dist/lib/crypto/types.js +10 -0
  27. package/dist/lib/crypto/types.js.map +1 -0
  28. package/dist/lib/storage/database.d.ts +116 -0
  29. package/dist/lib/storage/database.d.ts.map +1 -0
  30. package/dist/lib/storage/database.js +390 -0
  31. package/dist/lib/storage/database.js.map +1 -0
  32. package/dist/lib/storage/export.d.ts +26 -0
  33. package/dist/lib/storage/export.d.ts.map +1 -0
  34. package/dist/lib/storage/export.js +113 -0
  35. package/dist/lib/storage/export.js.map +1 -0
  36. package/dist/lib/storage/git.d.ts +16 -0
  37. package/dist/lib/storage/git.d.ts.map +1 -0
  38. package/dist/lib/storage/git.js +55 -0
  39. package/dist/lib/storage/git.js.map +1 -0
  40. package/dist/lib/storage/index.d.ts +6 -0
  41. package/dist/lib/storage/index.d.ts.map +1 -0
  42. package/dist/lib/storage/index.js +5 -0
  43. package/dist/lib/storage/index.js.map +1 -0
  44. package/dist/lib/storage/schema.d.ts +17 -0
  45. package/dist/lib/storage/schema.d.ts.map +1 -0
  46. package/dist/lib/storage/schema.js +103 -0
  47. package/dist/lib/storage/schema.js.map +1 -0
  48. package/dist/lib/storage/types.d.ts +26 -0
  49. package/dist/lib/storage/types.d.ts.map +1 -0
  50. package/dist/lib/storage/types.js +2 -0
  51. package/dist/lib/storage/types.js.map +1 -0
  52. package/dist/test-helpers.d.ts +33 -0
  53. package/dist/test-helpers.d.ts.map +1 -0
  54. package/dist/test-helpers.js +108 -0
  55. package/dist/test-helpers.js.map +1 -0
  56. package/dist/types.d.ts +29 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +2 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/ui/dashboard.html +965 -0
  61. package/dist/ui/detail.html +348 -0
  62. package/dist/ui/export.html +409 -0
  63. package/dist/ui/register.d.ts +7 -0
  64. package/dist/ui/register.d.ts.map +1 -0
  65. package/dist/ui/register.js +154 -0
  66. package/dist/ui/register.js.map +1 -0
  67. package/dist/ui-tmp/ui/export.html +409 -0
  68. package/package.json +78 -0
@@ -0,0 +1,17 @@
1
+ import type Database from 'better-sqlite3';
2
+ /**
3
+ * Creates the database schema (tables and indexes)
4
+ * This function is idempotent - safe to run multiple times
5
+ *
6
+ * @param db - SQLite database instance
7
+ */
8
+ export declare function createSchema(db: Database.Database): void;
9
+ /**
10
+ * Verifies that the database schema is valid
11
+ * Checks for existence of required tables
12
+ *
13
+ * @param db - SQLite database instance
14
+ * @returns true if schema is valid, false otherwise
15
+ */
16
+ export declare function verifySchema(db: Database.Database): boolean;
17
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/storage/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAO3C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAqDxD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAqC3D"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Current schema version
3
+ */
4
+ const SCHEMA_VERSION = '1';
5
+ /**
6
+ * Creates the database schema (tables and indexes)
7
+ * This function is idempotent - safe to run multiple times
8
+ *
9
+ * @param db - SQLite database instance
10
+ */
11
+ export function createSchema(db) {
12
+ try {
13
+ // Create evidences table
14
+ db.exec(`
15
+ CREATE TABLE IF NOT EXISTS evidences (
16
+ id TEXT PRIMARY KEY,
17
+ timestamp TEXT NOT NULL,
18
+ conversationId TEXT NOT NULL,
19
+ llmProvider TEXT NOT NULL,
20
+ encryptedContent BLOB NOT NULL,
21
+ nonce BLOB NOT NULL,
22
+ contentHash TEXT NOT NULL,
23
+ messageCount INTEGER NOT NULL DEFAULT 0,
24
+ gitCommitHash TEXT,
25
+ gitTimestamp TEXT,
26
+ tags TEXT,
27
+ createdAt TEXT NOT NULL DEFAULT (datetime('now')),
28
+ updatedAt TEXT NOT NULL DEFAULT (datetime('now'))
29
+ );
30
+ `);
31
+ // Create metadata table for schema versioning
32
+ db.exec(`
33
+ CREATE TABLE IF NOT EXISTS metadata (
34
+ key TEXT PRIMARY KEY,
35
+ value TEXT NOT NULL
36
+ );
37
+ `);
38
+ // Create indexes for common queries
39
+ db.exec(`
40
+ CREATE INDEX IF NOT EXISTS idx_timestamp ON evidences(timestamp);
41
+ `);
42
+ db.exec(`
43
+ CREATE INDEX IF NOT EXISTS idx_conversation_id ON evidences(conversationId);
44
+ `);
45
+ db.exec(`
46
+ CREATE INDEX IF NOT EXISTS idx_content_hash ON evidences(contentHash);
47
+ `);
48
+ // Set schema version (use INSERT OR IGNORE to make it idempotent)
49
+ const stmt = db.prepare(`
50
+ INSERT OR IGNORE INTO metadata (key, value)
51
+ VALUES ('schema_version', ?)
52
+ `);
53
+ stmt.run(SCHEMA_VERSION);
54
+ }
55
+ catch (error) {
56
+ // Clean up database connection on failure to prevent resource leaks
57
+ db.close();
58
+ throw error;
59
+ }
60
+ }
61
+ /**
62
+ * Verifies that the database schema is valid
63
+ * Checks for existence of required tables
64
+ *
65
+ * @param db - SQLite database instance
66
+ * @returns true if schema is valid, false otherwise
67
+ */
68
+ export function verifySchema(db) {
69
+ try {
70
+ // Check if evidences table exists
71
+ const evidencesTableInfo = db.pragma('table_info(evidences)');
72
+ if (!evidencesTableInfo || evidencesTableInfo.length === 0) {
73
+ return false;
74
+ }
75
+ // Check if metadata table exists
76
+ const metadataTableInfo = db.pragma('table_info(metadata)');
77
+ if (!metadataTableInfo || metadataTableInfo.length === 0) {
78
+ return false;
79
+ }
80
+ // Verify required columns exist in evidences table
81
+ const evidencesColumns = evidencesTableInfo.map((col) => col.name);
82
+ const requiredColumns = [
83
+ 'id',
84
+ 'timestamp',
85
+ 'encryptedContent',
86
+ 'nonce',
87
+ 'contentHash',
88
+ 'messageCount',
89
+ 'createdAt',
90
+ 'updatedAt'
91
+ ];
92
+ for (const col of requiredColumns) {
93
+ if (!evidencesColumns.includes(col)) {
94
+ return false;
95
+ }
96
+ }
97
+ return true;
98
+ }
99
+ catch (error) {
100
+ return false;
101
+ }
102
+ }
103
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/storage/schema.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,EAAqB;IAChD,IAAI,CAAC;QACH,yBAAyB;QACzB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;KAgBP,CAAC,CAAC;QAEH,8CAA8C;QAC9C,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QAEH,oCAAoC;QACpC,EAAE,CAAC,IAAI,CAAC;;KAEP,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC;;KAEP,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC;;KAEP,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGvB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oEAAoE;QACpE,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,EAAqB;IAChD,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAA0C,CAAC;QACvG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAA0C,CAAC;QACrG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mDAAmD;QACnD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG;YACtB,IAAI;YACJ,WAAW;YACX,kBAAkB;YAClB,OAAO;YACP,aAAa;YACb,cAAc;YACd,WAAW;YACX,WAAW;SACZ,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Evidence record stored in the database
3
+ */
4
+ export interface Evidence {
5
+ id: string;
6
+ timestamp: string;
7
+ conversationId: string | null;
8
+ llmProvider: string | null;
9
+ encryptedContent: Uint8Array;
10
+ nonce: Uint8Array;
11
+ contentHash: string;
12
+ messageCount: number;
13
+ gitCommitHash: string | null;
14
+ gitTimestamp: string | null;
15
+ tags: string | null;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ }
19
+ /**
20
+ * Metadata key-value pairs for schema versioning and other system data
21
+ */
22
+ export interface Metadata {
23
+ key: string;
24
+ value: string;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/storage/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/storage/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Test Helper Utilities for EvidenceMCP Server
3
+ */
4
+ import type { EvidenceMCPServer } from './index.js';
5
+ export interface ToolInfo {
6
+ name: string;
7
+ description: string;
8
+ }
9
+ export interface ResourceInfo {
10
+ name: string;
11
+ uriTemplate: string;
12
+ description: string;
13
+ mimeType: string;
14
+ }
15
+ export declare class EvidenceMCPTestHelpers {
16
+ private server;
17
+ constructor(server: EvidenceMCPServer);
18
+ private getServerInternal;
19
+ getTools(): Promise<ToolInfo[]>;
20
+ getResources(): Promise<ResourceInfo[]>;
21
+ readResource(uri: string): Promise<{
22
+ contents: Array<{
23
+ uri: string;
24
+ mimeType: string;
25
+ text: string;
26
+ }>;
27
+ }>;
28
+ executeTool(toolName: string, params: Record<string, unknown>): Promise<Record<string, unknown>>;
29
+ callTool(name: string, params: Record<string, unknown>): Promise<{
30
+ structuredContent: Record<string, unknown>;
31
+ }>;
32
+ }
33
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuDD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAE7C,OAAO,CAAC,iBAAiB;IAInB,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS/B,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IA0BxG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAmBhG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAIvH"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Test Helper Utilities for EvidenceMCP Server
3
+ */
4
+ function getFromRegistry(registry, finder) {
5
+ if (!registry)
6
+ return null;
7
+ if (registry instanceof Map) {
8
+ for (const [key, value] of registry.entries()) {
9
+ const result = finder(key, value);
10
+ if (result)
11
+ return result;
12
+ }
13
+ }
14
+ else if (Array.isArray(registry)) {
15
+ for (const item of registry) {
16
+ const result = finder(item.name, item);
17
+ if (result)
18
+ return result;
19
+ }
20
+ }
21
+ else if (typeof registry === 'object') {
22
+ for (const [key, value] of Object.entries(registry)) {
23
+ const result = finder(key, value);
24
+ if (result)
25
+ return result;
26
+ }
27
+ }
28
+ return null;
29
+ }
30
+ function mapRegistry(registry, mapper) {
31
+ if (!registry)
32
+ return [];
33
+ if (registry instanceof Map) {
34
+ return Array.from(registry.entries()).map(([key, value]) => mapper(key, value));
35
+ }
36
+ if (Array.isArray(registry)) {
37
+ return registry.map((item) => mapper(item.name, item));
38
+ }
39
+ if (typeof registry === 'object') {
40
+ return Object.entries(registry).map(([key, value]) => mapper(key, value));
41
+ }
42
+ return [];
43
+ }
44
+ export class EvidenceMCPTestHelpers {
45
+ server;
46
+ constructor(server) {
47
+ this.server = server;
48
+ }
49
+ getServerInternal() {
50
+ return this.server;
51
+ }
52
+ async getTools() {
53
+ const tools = Reflect.get(this.getServerInternal().server, '_registeredTools');
54
+ return mapRegistry(tools, (name, tool) => ({
55
+ name,
56
+ description: (tool.description || tool.title)
57
+ }));
58
+ }
59
+ async getResources() {
60
+ const templates = Reflect.get(this.getServerInternal().server, '_registeredResourceTemplates');
61
+ return mapRegistry(templates, (name, template) => ({
62
+ name,
63
+ uriTemplate: template.resourceTemplate?._uriTemplate?.template
64
+ || template.uriTemplate
65
+ || '',
66
+ description: template.metadata?.description
67
+ || template.description
68
+ || '',
69
+ mimeType: template.metadata?.mimeType
70
+ || template.mimeType
71
+ || 'text/plain'
72
+ }));
73
+ }
74
+ async readResource(uri) {
75
+ const templates = Reflect.get(this.getServerInternal().server, '_registeredResourceTemplates');
76
+ const match = uri.match(/^(\w+):\/\/(.+)$/);
77
+ if (!match) {
78
+ throw new Error('Unknown resource');
79
+ }
80
+ const [, resourceName, id] = match;
81
+ const handler = getFromRegistry(templates, (key, value) => key === resourceName ? value : null);
82
+ if (!handler) {
83
+ throw new Error('Unknown resource');
84
+ }
85
+ const handlerFn = handler.readCallback || handler.handler;
86
+ if (!handlerFn || typeof handlerFn !== 'function') {
87
+ throw new Error('Unknown resource');
88
+ }
89
+ return handlerFn({ href: uri }, { id });
90
+ }
91
+ async executeTool(toolName, params) {
92
+ const tools = Reflect.get(this.getServerInternal().server, '_registeredTools');
93
+ if (!tools) {
94
+ throw new Error('No tools registered');
95
+ }
96
+ const tool = getFromRegistry(tools, (key, value) => key === toolName ? value : null);
97
+ if (!tool || !tool.handler || typeof tool.handler !== 'function') {
98
+ throw new Error(`Tool ${toolName} not found`);
99
+ }
100
+ const result = await tool.handler(params);
101
+ return (result.structuredContent || result);
102
+ }
103
+ async callTool(name, params) {
104
+ const result = await this.executeTool(name, params);
105
+ return { structuredContent: result };
106
+ }
107
+ }
108
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Configuration for EvidenceMCP Server
3
+ */
4
+ export interface ServerConfig {
5
+ /** Path to encrypted evidence database */
6
+ dbPath: string;
7
+ /** Password for encrypting/decrypting evidence */
8
+ password: string;
9
+ /** Server name (for MCP protocol) */
10
+ name?: string;
11
+ /** Server version */
12
+ version?: string;
13
+ }
14
+ /**
15
+ * Evidence capture request parameters
16
+ */
17
+ export interface CaptureEvidenceParams {
18
+ /** Conversation ID (e.g., Claude session ID) */
19
+ conversationId: string;
20
+ /** LLM provider name */
21
+ llmProvider: string;
22
+ /** Conversation content (messages, prompts, responses) */
23
+ content: string;
24
+ /** Number of messages in conversation */
25
+ messageCount: number;
26
+ /** Optional tags for categorization */
27
+ tags?: string;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IAEjB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IAEvB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IAEpB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}