@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.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/dist/__tests__/smoke.test.d.ts +7 -0
- package/dist/__tests__/smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke.test.js +132 -0
- package/dist/__tests__/smoke.test.js.map +1 -0
- package/dist/common/config.d.ts +30 -0
- package/dist/common/config.d.ts.map +1 -0
- package/dist/common/config.js +120 -0
- package/dist/common/config.js.map +1 -0
- package/dist/common/errors.d.ts +264 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/errors.js +491 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/common/index.d.ts +9 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +25 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/types.d.ts +622 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +8 -0
- package/dist/common/types.js.map +1 -0
- package/dist/docs/index.d.ts +8 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +26 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/manager.d.ts +47 -0
- package/dist/docs/manager.d.ts.map +1 -0
- package/dist/docs/manager.js +250 -0
- package/dist/docs/manager.js.map +1 -0
- package/dist/docs/types.d.ts +113 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +8 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/file/index.d.ts +9 -0
- package/dist/file/index.d.ts.map +1 -0
- package/dist/file/index.js +28 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/local.d.ts +42 -0
- package/dist/file/local.d.ts.map +1 -0
- package/dist/file/local.js +137 -0
- package/dist/file/local.js.map +1 -0
- package/dist/file/manager.d.ts +42 -0
- package/dist/file/manager.d.ts.map +1 -0
- package/dist/file/manager.js +68 -0
- package/dist/file/manager.js.map +1 -0
- package/dist/file/types.d.ts +52 -0
- package/dist/file/types.d.ts.map +1 -0
- package/dist/file/types.js +8 -0
- package/dist/file/types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/index.d.ts +8 -0
- package/dist/logs/index.d.ts.map +1 -0
- package/dist/logs/index.js +26 -0
- package/dist/logs/index.js.map +1 -0
- package/dist/logs/manager.d.ts +97 -0
- package/dist/logs/manager.d.ts.map +1 -0
- package/dist/logs/manager.js +584 -0
- package/dist/logs/manager.js.map +1 -0
- package/dist/logs/types.d.ts +45 -0
- package/dist/logs/types.d.ts.map +1 -0
- package/dist/logs/types.js +8 -0
- package/dist/logs/types.js.map +1 -0
- package/dist/repo/git.d.ts +182 -0
- package/dist/repo/git.d.ts.map +1 -0
- package/dist/repo/git.js +496 -0
- package/dist/repo/git.js.map +1 -0
- package/dist/repo/index.d.ts +10 -0
- package/dist/repo/index.d.ts.map +1 -0
- package/dist/repo/index.js +29 -0
- package/dist/repo/index.js.map +1 -0
- package/dist/repo/manager.d.ts +179 -0
- package/dist/repo/manager.d.ts.map +1 -0
- package/dist/repo/manager.js +433 -0
- package/dist/repo/manager.js.map +1 -0
- package/dist/repo/providers/bitbucket.d.ts +48 -0
- package/dist/repo/providers/bitbucket.d.ts.map +1 -0
- package/dist/repo/providers/bitbucket.js +86 -0
- package/dist/repo/providers/bitbucket.js.map +1 -0
- package/dist/repo/providers/github.d.ts +30 -0
- package/dist/repo/providers/github.d.ts.map +1 -0
- package/dist/repo/providers/github.js +311 -0
- package/dist/repo/providers/github.js.map +1 -0
- package/dist/repo/providers/gitlab.d.ts +47 -0
- package/dist/repo/providers/gitlab.d.ts.map +1 -0
- package/dist/repo/providers/gitlab.js +84 -0
- package/dist/repo/providers/gitlab.js.map +1 -0
- package/dist/repo/providers/index.d.ts +9 -0
- package/dist/repo/providers/index.d.ts.map +1 -0
- package/dist/repo/providers/index.js +15 -0
- package/dist/repo/providers/index.js.map +1 -0
- package/dist/repo/types.d.ts +48 -0
- package/dist/repo/types.d.ts.map +1 -0
- package/dist/repo/types.js +8 -0
- package/dist/repo/types.js.map +1 -0
- package/dist/spec/index.d.ts +9 -0
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +30 -0
- package/dist/spec/index.js.map +1 -0
- package/dist/spec/manager.d.ts +106 -0
- package/dist/spec/manager.d.ts.map +1 -0
- package/dist/spec/manager.js +672 -0
- package/dist/spec/manager.js.map +1 -0
- package/dist/spec/templates.d.ts +28 -0
- package/dist/spec/templates.d.ts.map +1 -0
- package/dist/spec/templates.js +357 -0
- package/dist/spec/templates.js.map +1 -0
- package/dist/spec/types.d.ts +53 -0
- package/dist/spec/types.d.ts.map +1 -0
- package/dist/spec/types.js +8 -0
- package/dist/spec/types.js.map +1 -0
- package/dist/work/index.d.ts +8 -0
- package/dist/work/index.d.ts.map +1 -0
- package/dist/work/index.js +26 -0
- package/dist/work/index.js.map +1 -0
- package/dist/work/manager.d.ts +112 -0
- package/dist/work/manager.d.ts.map +1 -0
- package/dist/work/manager.js +227 -0
- package/dist/work/manager.js.map +1 -0
- package/dist/work/providers/github.d.ts +40 -0
- package/dist/work/providers/github.d.ts.map +1 -0
- package/dist/work/providers/github.js +299 -0
- package/dist/work/providers/github.js.map +1 -0
- package/dist/work/providers/jira.d.ts +60 -0
- package/dist/work/providers/jira.d.ts.map +1 -0
- package/dist/work/providers/jira.js +109 -0
- package/dist/work/providers/jira.js.map +1 -0
- package/dist/work/providers/linear.d.ts +57 -0
- package/dist/work/providers/linear.d.ts.map +1 -0
- package/dist/work/providers/linear.js +103 -0
- package/dist/work/providers/linear.js.map +1 -0
- package/dist/work/types.d.ts +42 -0
- package/dist/work/types.d.ts.map +1 -0
- package/dist/work/types.js +8 -0
- package/dist/work/types.js.map +1 -0
- 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 @@
|
|
|
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
|