@fractary/core 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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/__tests__/smoke.test.d.ts +7 -0
  4. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  5. package/dist/__tests__/smoke.test.js +132 -0
  6. package/dist/__tests__/smoke.test.js.map +1 -0
  7. package/dist/common/config.d.ts +30 -0
  8. package/dist/common/config.d.ts.map +1 -0
  9. package/dist/common/config.js +120 -0
  10. package/dist/common/config.js.map +1 -0
  11. package/dist/common/errors.d.ts +264 -0
  12. package/dist/common/errors.d.ts.map +1 -0
  13. package/dist/common/errors.js +491 -0
  14. package/dist/common/errors.js.map +1 -0
  15. package/dist/common/index.d.ts +9 -0
  16. package/dist/common/index.d.ts.map +1 -0
  17. package/dist/common/index.js +25 -0
  18. package/dist/common/index.js.map +1 -0
  19. package/dist/common/types.d.ts +622 -0
  20. package/dist/common/types.d.ts.map +1 -0
  21. package/dist/common/types.js +8 -0
  22. package/dist/common/types.js.map +1 -0
  23. package/dist/docs/index.d.ts +8 -0
  24. package/dist/docs/index.d.ts.map +1 -0
  25. package/dist/docs/index.js +26 -0
  26. package/dist/docs/index.js.map +1 -0
  27. package/dist/docs/manager.d.ts +47 -0
  28. package/dist/docs/manager.d.ts.map +1 -0
  29. package/dist/docs/manager.js +250 -0
  30. package/dist/docs/manager.js.map +1 -0
  31. package/dist/docs/types.d.ts +113 -0
  32. package/dist/docs/types.d.ts.map +1 -0
  33. package/dist/docs/types.js +8 -0
  34. package/dist/docs/types.js.map +1 -0
  35. package/dist/file/index.d.ts +9 -0
  36. package/dist/file/index.d.ts.map +1 -0
  37. package/dist/file/index.js +28 -0
  38. package/dist/file/index.js.map +1 -0
  39. package/dist/file/local.d.ts +42 -0
  40. package/dist/file/local.d.ts.map +1 -0
  41. package/dist/file/local.js +137 -0
  42. package/dist/file/local.js.map +1 -0
  43. package/dist/file/manager.d.ts +42 -0
  44. package/dist/file/manager.d.ts.map +1 -0
  45. package/dist/file/manager.js +68 -0
  46. package/dist/file/manager.js.map +1 -0
  47. package/dist/file/types.d.ts +52 -0
  48. package/dist/file/types.d.ts.map +1 -0
  49. package/dist/file/types.js +8 -0
  50. package/dist/file/types.js.map +1 -0
  51. package/dist/index.d.ts +21 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +43 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/logs/index.d.ts +8 -0
  56. package/dist/logs/index.d.ts.map +1 -0
  57. package/dist/logs/index.js +26 -0
  58. package/dist/logs/index.js.map +1 -0
  59. package/dist/logs/manager.d.ts +97 -0
  60. package/dist/logs/manager.d.ts.map +1 -0
  61. package/dist/logs/manager.js +584 -0
  62. package/dist/logs/manager.js.map +1 -0
  63. package/dist/logs/types.d.ts +45 -0
  64. package/dist/logs/types.d.ts.map +1 -0
  65. package/dist/logs/types.js +8 -0
  66. package/dist/logs/types.js.map +1 -0
  67. package/dist/repo/git.d.ts +182 -0
  68. package/dist/repo/git.d.ts.map +1 -0
  69. package/dist/repo/git.js +496 -0
  70. package/dist/repo/git.js.map +1 -0
  71. package/dist/repo/index.d.ts +10 -0
  72. package/dist/repo/index.d.ts.map +1 -0
  73. package/dist/repo/index.js +29 -0
  74. package/dist/repo/index.js.map +1 -0
  75. package/dist/repo/manager.d.ts +179 -0
  76. package/dist/repo/manager.d.ts.map +1 -0
  77. package/dist/repo/manager.js +433 -0
  78. package/dist/repo/manager.js.map +1 -0
  79. package/dist/repo/providers/bitbucket.d.ts +48 -0
  80. package/dist/repo/providers/bitbucket.d.ts.map +1 -0
  81. package/dist/repo/providers/bitbucket.js +86 -0
  82. package/dist/repo/providers/bitbucket.js.map +1 -0
  83. package/dist/repo/providers/github.d.ts +30 -0
  84. package/dist/repo/providers/github.d.ts.map +1 -0
  85. package/dist/repo/providers/github.js +311 -0
  86. package/dist/repo/providers/github.js.map +1 -0
  87. package/dist/repo/providers/gitlab.d.ts +47 -0
  88. package/dist/repo/providers/gitlab.d.ts.map +1 -0
  89. package/dist/repo/providers/gitlab.js +84 -0
  90. package/dist/repo/providers/gitlab.js.map +1 -0
  91. package/dist/repo/providers/index.d.ts +9 -0
  92. package/dist/repo/providers/index.d.ts.map +1 -0
  93. package/dist/repo/providers/index.js +15 -0
  94. package/dist/repo/providers/index.js.map +1 -0
  95. package/dist/repo/types.d.ts +48 -0
  96. package/dist/repo/types.d.ts.map +1 -0
  97. package/dist/repo/types.js +8 -0
  98. package/dist/repo/types.js.map +1 -0
  99. package/dist/spec/index.d.ts +9 -0
  100. package/dist/spec/index.d.ts.map +1 -0
  101. package/dist/spec/index.js +30 -0
  102. package/dist/spec/index.js.map +1 -0
  103. package/dist/spec/manager.d.ts +106 -0
  104. package/dist/spec/manager.d.ts.map +1 -0
  105. package/dist/spec/manager.js +672 -0
  106. package/dist/spec/manager.js.map +1 -0
  107. package/dist/spec/templates.d.ts +28 -0
  108. package/dist/spec/templates.d.ts.map +1 -0
  109. package/dist/spec/templates.js +357 -0
  110. package/dist/spec/templates.js.map +1 -0
  111. package/dist/spec/types.d.ts +53 -0
  112. package/dist/spec/types.d.ts.map +1 -0
  113. package/dist/spec/types.js +8 -0
  114. package/dist/spec/types.js.map +1 -0
  115. package/dist/work/index.d.ts +8 -0
  116. package/dist/work/index.d.ts.map +1 -0
  117. package/dist/work/index.js +26 -0
  118. package/dist/work/index.js.map +1 -0
  119. package/dist/work/manager.d.ts +112 -0
  120. package/dist/work/manager.d.ts.map +1 -0
  121. package/dist/work/manager.js +227 -0
  122. package/dist/work/manager.js.map +1 -0
  123. package/dist/work/providers/github.d.ts +40 -0
  124. package/dist/work/providers/github.d.ts.map +1 -0
  125. package/dist/work/providers/github.js +299 -0
  126. package/dist/work/providers/github.js.map +1 -0
  127. package/dist/work/providers/jira.d.ts +60 -0
  128. package/dist/work/providers/jira.d.ts.map +1 -0
  129. package/dist/work/providers/jira.js +109 -0
  130. package/dist/work/providers/jira.js.map +1 -0
  131. package/dist/work/providers/linear.d.ts +57 -0
  132. package/dist/work/providers/linear.d.ts.map +1 -0
  133. package/dist/work/providers/linear.js +103 -0
  134. package/dist/work/providers/linear.js.map +1 -0
  135. package/dist/work/types.d.ts +42 -0
  136. package/dist/work/types.d.ts.map +1 -0
  137. package/dist/work/types.js +8 -0
  138. package/dist/work/types.js.map +1 -0
  139. package/package.json +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,0CAAwB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @fractary/core - Docs Manager
3
+ *
4
+ * Documentation management and organization.
5
+ */
6
+ import { Doc, DocFormat, DocMetadata, DocSearchQuery, DocsManagerConfig } from './types';
7
+ /**
8
+ * Documentation Manager - Create, manage, and search documentation
9
+ */
10
+ export declare class DocsManager {
11
+ private docsDir;
12
+ private defaultFormat;
13
+ constructor(config: DocsManagerConfig);
14
+ private ensureDir;
15
+ private getDocPath;
16
+ private getMetadataPath;
17
+ private getFileExtension;
18
+ /**
19
+ * Create a new document
20
+ */
21
+ createDoc(id: string, content: string, metadata: DocMetadata, format?: DocFormat): Promise<Doc>;
22
+ /**
23
+ * Get a document by ID
24
+ */
25
+ getDoc(id: string): Promise<Doc | null>;
26
+ /**
27
+ * Update a document
28
+ */
29
+ updateDoc(id: string, content: string, metadata?: Partial<DocMetadata>): Promise<Doc | null>;
30
+ /**
31
+ * Delete a document
32
+ */
33
+ deleteDoc(id: string): Promise<boolean>;
34
+ /**
35
+ * List all documents
36
+ */
37
+ listDocs(): Promise<Doc[]>;
38
+ /**
39
+ * Search documents
40
+ */
41
+ searchDocs(query: DocSearchQuery): Promise<Doc[]>;
42
+ /**
43
+ * Check if a document exists
44
+ */
45
+ docExists(id: string): Promise<boolean>;
46
+ }
47
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/docs/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACL,GAAG,EACH,SAAS,EACT,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAY;gBAErB,MAAM,EAAE,iBAAiB;IAMrC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACG,SAAS,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,GAAG,CAAC;IA2Bf;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IA6B7C;;OAEG;IACG,SAAS,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IA2BtB;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA4BhC;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAsDvD;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9C"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/core - Docs Manager
4
+ *
5
+ * Documentation management and organization.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.DocsManager = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const yaml = __importStar(require("js-yaml"));
45
+ /**
46
+ * Documentation Manager - Create, manage, and search documentation
47
+ */
48
+ class DocsManager {
49
+ docsDir;
50
+ defaultFormat;
51
+ constructor(config) {
52
+ this.docsDir = config.docsDir;
53
+ this.defaultFormat = config.defaultFormat || 'markdown';
54
+ this.ensureDir(this.docsDir);
55
+ }
56
+ ensureDir(dirPath) {
57
+ if (!fs.existsSync(dirPath)) {
58
+ fs.mkdirSync(dirPath, { recursive: true });
59
+ }
60
+ }
61
+ getDocPath(id, format) {
62
+ const ext = this.getFileExtension(format);
63
+ return path.join(this.docsDir, `${id}${ext}`);
64
+ }
65
+ getMetadataPath(id) {
66
+ return path.join(this.docsDir, `${id}.meta.yaml`);
67
+ }
68
+ getFileExtension(format) {
69
+ const extensions = {
70
+ markdown: '.md',
71
+ html: '.html',
72
+ pdf: '.pdf',
73
+ text: '.txt',
74
+ };
75
+ return extensions[format];
76
+ }
77
+ /**
78
+ * Create a new document
79
+ */
80
+ async createDoc(id, content, metadata, format) {
81
+ const docFormat = format || this.defaultFormat;
82
+ const docPath = this.getDocPath(id, docFormat);
83
+ const metaPath = this.getMetadataPath(id);
84
+ // Add timestamps
85
+ const fullMetadata = {
86
+ ...metadata,
87
+ createdAt: metadata.createdAt || new Date(),
88
+ updatedAt: new Date(),
89
+ };
90
+ // Write content
91
+ fs.writeFileSync(docPath, content, 'utf-8');
92
+ // Write metadata
93
+ fs.writeFileSync(metaPath, yaml.dump(fullMetadata), 'utf-8');
94
+ return {
95
+ id,
96
+ content,
97
+ format: docFormat,
98
+ metadata: fullMetadata,
99
+ path: docPath,
100
+ };
101
+ }
102
+ /**
103
+ * Get a document by ID
104
+ */
105
+ async getDoc(id) {
106
+ // Try to find the doc with any format
107
+ const formats = ['markdown', 'html', 'pdf', 'text'];
108
+ for (const format of formats) {
109
+ const docPath = this.getDocPath(id, format);
110
+ if (fs.existsSync(docPath)) {
111
+ const content = fs.readFileSync(docPath, 'utf-8');
112
+ const metaPath = this.getMetadataPath(id);
113
+ let metadata = { title: id };
114
+ if (fs.existsSync(metaPath)) {
115
+ const metaContent = fs.readFileSync(metaPath, 'utf-8');
116
+ metadata = yaml.load(metaContent);
117
+ }
118
+ return {
119
+ id,
120
+ content,
121
+ format,
122
+ metadata,
123
+ path: docPath,
124
+ };
125
+ }
126
+ }
127
+ return null;
128
+ }
129
+ /**
130
+ * Update a document
131
+ */
132
+ async updateDoc(id, content, metadata) {
133
+ const existingDoc = await this.getDoc(id);
134
+ if (!existingDoc) {
135
+ return null;
136
+ }
137
+ const updatedMetadata = {
138
+ ...existingDoc.metadata,
139
+ ...metadata,
140
+ updatedAt: new Date(),
141
+ };
142
+ const docPath = this.getDocPath(id, existingDoc.format);
143
+ const metaPath = this.getMetadataPath(id);
144
+ fs.writeFileSync(docPath, content, 'utf-8');
145
+ fs.writeFileSync(metaPath, yaml.dump(updatedMetadata), 'utf-8');
146
+ return {
147
+ id,
148
+ content,
149
+ format: existingDoc.format,
150
+ metadata: updatedMetadata,
151
+ path: docPath,
152
+ };
153
+ }
154
+ /**
155
+ * Delete a document
156
+ */
157
+ async deleteDoc(id) {
158
+ const doc = await this.getDoc(id);
159
+ if (!doc) {
160
+ return false;
161
+ }
162
+ const docPath = this.getDocPath(id, doc.format);
163
+ const metaPath = this.getMetadataPath(id);
164
+ if (fs.existsSync(docPath)) {
165
+ fs.unlinkSync(docPath);
166
+ }
167
+ if (fs.existsSync(metaPath)) {
168
+ fs.unlinkSync(metaPath);
169
+ }
170
+ return true;
171
+ }
172
+ /**
173
+ * List all documents
174
+ */
175
+ async listDocs() {
176
+ if (!fs.existsSync(this.docsDir)) {
177
+ return [];
178
+ }
179
+ const files = fs.readdirSync(this.docsDir);
180
+ const docIds = new Set();
181
+ // Extract unique document IDs (remove extensions and .meta)
182
+ for (const file of files) {
183
+ if (file.endsWith('.meta.yaml')) {
184
+ continue;
185
+ }
186
+ const id = file.replace(/\.(md|html|pdf|txt)$/, '');
187
+ docIds.add(id);
188
+ }
189
+ const docs = [];
190
+ for (const id of docIds) {
191
+ const doc = await this.getDoc(id);
192
+ if (doc) {
193
+ docs.push(doc);
194
+ }
195
+ }
196
+ return docs;
197
+ }
198
+ /**
199
+ * Search documents
200
+ */
201
+ async searchDocs(query) {
202
+ const allDocs = await this.listDocs();
203
+ let results = allDocs;
204
+ // Filter by text
205
+ if (query.text) {
206
+ const searchText = query.text.toLowerCase();
207
+ results = results.filter((doc) => doc.content.toLowerCase().includes(searchText) ||
208
+ doc.metadata.title.toLowerCase().includes(searchText) ||
209
+ doc.metadata.description?.toLowerCase().includes(searchText));
210
+ }
211
+ // Filter by tags
212
+ if (query.tags && query.tags.length > 0) {
213
+ results = results.filter((doc) => query.tags.some((tag) => doc.metadata.tags?.includes(tag)));
214
+ }
215
+ // Filter by author
216
+ if (query.author) {
217
+ results = results.filter((doc) => doc.metadata.authors?.includes(query.author));
218
+ }
219
+ // Filter by date range
220
+ if (query.dateRange) {
221
+ results = results.filter((doc) => {
222
+ const docDate = doc.metadata.updatedAt || doc.metadata.createdAt;
223
+ if (!docDate)
224
+ return false;
225
+ const date = new Date(docDate);
226
+ if (query.dateRange.from && date < query.dateRange.from) {
227
+ return false;
228
+ }
229
+ if (query.dateRange.to && date > query.dateRange.to) {
230
+ return false;
231
+ }
232
+ return true;
233
+ });
234
+ }
235
+ // Apply limit
236
+ if (query.limit && query.limit > 0) {
237
+ results = results.slice(0, query.limit);
238
+ }
239
+ return results;
240
+ }
241
+ /**
242
+ * Check if a document exists
243
+ */
244
+ async docExists(id) {
245
+ const doc = await this.getDoc(id);
246
+ return doc !== null;
247
+ }
248
+ }
249
+ exports.DocsManager = DocsManager;
250
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/docs/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @fractary/core - Docs Module Types
3
+ *
4
+ * Type definitions for documentation management.
5
+ */
6
+ /**
7
+ * Documentation format types
8
+ */
9
+ export type DocFormat = 'markdown' | 'html' | 'pdf' | 'text';
10
+ /**
11
+ * Documentation metadata
12
+ */
13
+ export interface DocMetadata {
14
+ /**
15
+ * Document title
16
+ */
17
+ title: string;
18
+ /**
19
+ * Document description
20
+ */
21
+ description?: string;
22
+ /**
23
+ * Document author(s)
24
+ */
25
+ authors?: string[];
26
+ /**
27
+ * Creation date
28
+ */
29
+ createdAt?: Date;
30
+ /**
31
+ * Last updated date
32
+ */
33
+ updatedAt?: Date;
34
+ /**
35
+ * Document version
36
+ */
37
+ version?: string;
38
+ /**
39
+ * Tags for categorization
40
+ */
41
+ tags?: string[];
42
+ /**
43
+ * Custom metadata
44
+ */
45
+ [key: string]: unknown;
46
+ }
47
+ /**
48
+ * Documentation item
49
+ */
50
+ export interface Doc {
51
+ /**
52
+ * Unique identifier
53
+ */
54
+ id: string;
55
+ /**
56
+ * Document content
57
+ */
58
+ content: string;
59
+ /**
60
+ * Document format
61
+ */
62
+ format: DocFormat;
63
+ /**
64
+ * Document metadata
65
+ */
66
+ metadata: DocMetadata;
67
+ /**
68
+ * File path (if stored on disk)
69
+ */
70
+ path?: string;
71
+ }
72
+ /**
73
+ * Documentation search query
74
+ */
75
+ export interface DocSearchQuery {
76
+ /**
77
+ * Search text
78
+ */
79
+ text?: string;
80
+ /**
81
+ * Filter by tags
82
+ */
83
+ tags?: string[];
84
+ /**
85
+ * Filter by author
86
+ */
87
+ author?: string;
88
+ /**
89
+ * Filter by date range
90
+ */
91
+ dateRange?: {
92
+ from?: Date;
93
+ to?: Date;
94
+ };
95
+ /**
96
+ * Limit results
97
+ */
98
+ limit?: number;
99
+ }
100
+ /**
101
+ * Configuration for docs manager
102
+ */
103
+ export interface DocsManagerConfig {
104
+ /**
105
+ * Base directory for documentation storage
106
+ */
107
+ docsDir: string;
108
+ /**
109
+ * Default format for new documents
110
+ */
111
+ defaultFormat?: DocFormat;
112
+ }
113
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docs/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,EAAE,CAAC,EAAE,IAAI,CAAC;KACX,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/core - Docs Module Types
4
+ *
5
+ * Type definitions for documentation management.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/docs/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fractary/core - File Module
3
+ *
4
+ * File storage operations across local and cloud storage backends.
5
+ */
6
+ export { FileManager } from './manager';
7
+ export { LocalStorage } from './local';
8
+ export * from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/core - File Module
4
+ *
5
+ * File storage operations across local and cloud storage backends.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.LocalStorage = exports.FileManager = void 0;
23
+ var manager_1 = require("./manager");
24
+ Object.defineProperty(exports, "FileManager", { enumerable: true, get: function () { return manager_1.FileManager; } });
25
+ var local_1 = require("./local");
26
+ Object.defineProperty(exports, "LocalStorage", { enumerable: true, get: function () { return local_1.LocalStorage; } });
27
+ __exportStar(require("./types"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,0CAAwB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fractary/core - Local File Storage Implementation
3
+ *
4
+ * Direct filesystem storage for file operations.
5
+ */
6
+ import { Storage } from './types';
7
+ /**
8
+ * Local filesystem storage implementation
9
+ */
10
+ export declare class LocalStorage implements Storage {
11
+ private basePath;
12
+ constructor(basePath: string);
13
+ private ensureDir;
14
+ private getFullPath;
15
+ /**
16
+ * Write content to storage
17
+ * @returns The path where content was written
18
+ */
19
+ write(id: string, content: string): Promise<string>;
20
+ /**
21
+ * Read content from storage
22
+ * @returns Content or null if not found
23
+ */
24
+ read(id: string): Promise<string | null>;
25
+ /**
26
+ * Check if content exists
27
+ */
28
+ exists(id: string): Promise<boolean>;
29
+ /**
30
+ * List all items in storage (optionally with prefix)
31
+ */
32
+ list(prefix?: string): Promise<string[]>;
33
+ /**
34
+ * Delete content from storage
35
+ */
36
+ delete(id: string): Promise<void>;
37
+ /**
38
+ * Get the base path for this storage
39
+ */
40
+ getBasePath(): string;
41
+ }
42
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/file/local.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzD;;;OAGG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ9C;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1C;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+B9C;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/core - Local File Storage Implementation
4
+ *
5
+ * Direct filesystem storage for file operations.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.LocalStorage = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ /**
45
+ * Local filesystem storage implementation
46
+ */
47
+ class LocalStorage {
48
+ basePath;
49
+ constructor(basePath) {
50
+ this.basePath = basePath;
51
+ this.ensureDir(basePath);
52
+ }
53
+ ensureDir(dirPath) {
54
+ if (!fs.existsSync(dirPath)) {
55
+ fs.mkdirSync(dirPath, { recursive: true });
56
+ }
57
+ }
58
+ getFullPath(id) {
59
+ return path.join(this.basePath, id);
60
+ }
61
+ /**
62
+ * Write content to storage
63
+ * @returns The path where content was written
64
+ */
65
+ async write(id, content) {
66
+ const fullPath = this.getFullPath(id);
67
+ this.ensureDir(path.dirname(fullPath));
68
+ fs.writeFileSync(fullPath, content, 'utf-8');
69
+ return fullPath;
70
+ }
71
+ /**
72
+ * Read content from storage
73
+ * @returns Content or null if not found
74
+ */
75
+ async read(id) {
76
+ const fullPath = this.getFullPath(id);
77
+ if (!fs.existsSync(fullPath)) {
78
+ return null;
79
+ }
80
+ return fs.readFileSync(fullPath, 'utf-8');
81
+ }
82
+ /**
83
+ * Check if content exists
84
+ */
85
+ async exists(id) {
86
+ const fullPath = this.getFullPath(id);
87
+ return fs.existsSync(fullPath);
88
+ }
89
+ /**
90
+ * List all items in storage (optionally with prefix)
91
+ */
92
+ async list(prefix) {
93
+ const searchPath = prefix
94
+ ? path.join(this.basePath, prefix)
95
+ : this.basePath;
96
+ if (!fs.existsSync(searchPath)) {
97
+ return [];
98
+ }
99
+ const results = [];
100
+ const walkDir = (dir, base) => {
101
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
102
+ for (const entry of entries) {
103
+ const relativePath = path.join(base, entry.name);
104
+ if (entry.isDirectory()) {
105
+ walkDir(path.join(dir, entry.name), relativePath);
106
+ }
107
+ else {
108
+ results.push(relativePath);
109
+ }
110
+ }
111
+ };
112
+ if (fs.statSync(searchPath).isDirectory()) {
113
+ walkDir(searchPath, prefix || '');
114
+ }
115
+ else {
116
+ results.push(prefix || '');
117
+ }
118
+ return results;
119
+ }
120
+ /**
121
+ * Delete content from storage
122
+ */
123
+ async delete(id) {
124
+ const fullPath = this.getFullPath(id);
125
+ if (fs.existsSync(fullPath)) {
126
+ fs.unlinkSync(fullPath);
127
+ }
128
+ }
129
+ /**
130
+ * Get the base path for this storage
131
+ */
132
+ getBasePath() {
133
+ return this.basePath;
134
+ }
135
+ }
136
+ exports.LocalStorage = LocalStorage;
137
+ //# sourceMappingURL=local.js.map