@fractary/core 0.3.3 → 0.5.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/dist/__tests__/factories.test.d.ts +5 -0
- package/dist/__tests__/factories.test.d.ts.map +1 -0
- package/dist/__tests__/factories.test.js +66 -0
- package/dist/__tests__/factories.test.js.map +1 -0
- package/dist/auth/__tests__/create-token-provider.test.d.ts +5 -0
- package/dist/auth/__tests__/create-token-provider.test.d.ts.map +1 -0
- package/dist/auth/__tests__/create-token-provider.test.js +104 -0
- package/dist/auth/__tests__/create-token-provider.test.js.map +1 -0
- package/dist/auth/__tests__/github-app-auth.test.d.ts +5 -0
- package/dist/auth/__tests__/github-app-auth.test.d.ts.map +1 -0
- package/dist/auth/__tests__/github-app-auth.test.js +293 -0
- package/dist/auth/__tests__/github-app-auth.test.js.map +1 -0
- package/dist/auth/__tests__/static-token-provider.test.d.ts +5 -0
- package/dist/auth/__tests__/static-token-provider.test.d.ts.map +1 -0
- package/dist/auth/__tests__/static-token-provider.test.js +54 -0
- package/dist/auth/__tests__/static-token-provider.test.js.map +1 -0
- package/dist/auth/github-app-auth.d.ts +109 -0
- package/dist/auth/github-app-auth.d.ts.map +1 -0
- package/dist/auth/github-app-auth.js +262 -0
- package/dist/auth/github-app-auth.js.map +1 -0
- package/dist/auth/github-app-token-provider.d.ts +59 -0
- package/dist/auth/github-app-token-provider.d.ts.map +1 -0
- package/dist/auth/github-app-token-provider.js +68 -0
- package/dist/auth/github-app-token-provider.js.map +1 -0
- package/dist/auth/index.d.ts +45 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +74 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/static-token-provider.d.ts +35 -0
- package/dist/auth/static-token-provider.d.ts.map +1 -0
- package/dist/auth/static-token-provider.js +45 -0
- package/dist/auth/static-token-provider.js.map +1 -0
- package/dist/auth/types.d.ts +49 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/common/__tests__/secrets.test.d.ts +7 -0
- package/dist/common/__tests__/secrets.test.d.ts.map +1 -0
- package/dist/common/__tests__/secrets.test.js +320 -0
- package/dist/common/__tests__/secrets.test.js.map +1 -0
- package/dist/common/config.d.ts +6 -4
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +4 -30
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/secrets.d.ts +68 -0
- package/dist/common/secrets.d.ts.map +1 -0
- package/dist/common/secrets.js +180 -0
- package/dist/common/secrets.js.map +1 -0
- package/dist/common/yaml-config.d.ts +10 -0
- package/dist/common/yaml-config.d.ts.map +1 -1
- package/dist/common/yaml-config.js.map +1 -1
- package/dist/config/__tests__/loader.test.d.ts +5 -0
- package/dist/config/__tests__/loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/loader.test.js +129 -0
- package/dist/config/__tests__/loader.test.js.map +1 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +27 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +126 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +277 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/docs/index.d.ts +5 -0
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +6 -1
- package/dist/docs/index.js.map +1 -1
- package/dist/docs/manager.d.ts +27 -0
- package/dist/docs/manager.d.ts.map +1 -1
- package/dist/docs/manager.js +168 -15
- package/dist/docs/manager.js.map +1 -1
- package/dist/docs/type-registry.d.ts +123 -0
- package/dist/docs/type-registry.d.ts.map +1 -0
- package/dist/docs/type-registry.js +393 -0
- package/dist/docs/type-registry.js.map +1 -0
- package/dist/docs/types.d.ts +93 -0
- package/dist/docs/types.d.ts.map +1 -1
- package/dist/factories.d.ts +89 -0
- package/dist/factories.d.ts.map +1 -0
- package/dist/factories.js +228 -0
- package/dist/factories.js.map +1 -0
- package/dist/file/factory.d.ts +41 -0
- package/dist/file/factory.d.ts.map +1 -0
- package/dist/file/factory.js +237 -0
- package/dist/file/factory.js.map +1 -0
- package/dist/file/gcs.d.ts +66 -0
- package/dist/file/gcs.d.ts.map +1 -0
- package/dist/file/gcs.js +226 -0
- package/dist/file/gcs.js.map +1 -0
- package/dist/file/gdrive.d.ts +78 -0
- package/dist/file/gdrive.d.ts.map +1 -0
- package/dist/file/gdrive.js +302 -0
- package/dist/file/gdrive.js.map +1 -0
- package/dist/file/index.d.ts +13 -1
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +25 -1
- package/dist/file/index.js.map +1 -1
- package/dist/file/manager.d.ts +83 -2
- package/dist/file/manager.d.ts.map +1 -1
- package/dist/file/manager.js +125 -4
- package/dist/file/manager.js.map +1 -1
- package/dist/file/r2.d.ts +56 -0
- package/dist/file/r2.d.ts.map +1 -0
- package/dist/file/r2.js +96 -0
- package/dist/file/r2.js.map +1 -0
- package/dist/file/s3.d.ts +61 -0
- package/dist/file/s3.d.ts.map +1 -0
- package/dist/file/s3.js +258 -0
- package/dist/file/s3.js.map +1 -0
- package/dist/file/types.d.ts +145 -2
- package/dist/file/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/logs/index.d.ts +1 -0
- package/dist/logs/index.d.ts.map +1 -1
- package/dist/logs/index.js +3 -1
- package/dist/logs/index.js.map +1 -1
- package/dist/logs/manager.d.ts +29 -2
- package/dist/logs/manager.d.ts.map +1 -1
- package/dist/logs/manager.js +48 -7
- package/dist/logs/manager.js.map +1 -1
- package/dist/logs/type-registry.d.ts +180 -0
- package/dist/logs/type-registry.d.ts.map +1 -0
- package/dist/logs/type-registry.js +421 -0
- package/dist/logs/type-registry.js.map +1 -0
- package/dist/logs/type-registry.test.d.ts +5 -0
- package/dist/logs/type-registry.test.d.ts.map +1 -0
- package/dist/logs/type-registry.test.js +671 -0
- package/dist/logs/type-registry.test.js.map +1 -0
- package/dist/logs/types.d.ts +2 -0
- package/dist/logs/types.d.ts.map +1 -1
- package/package.json +76 -8
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fractary/core - Doc Type Registry
|
|
4
|
+
*
|
|
5
|
+
* Manages document type definitions for structured documentation.
|
|
6
|
+
* Loads core types from YAML/Markdown files and custom types from config.
|
|
7
|
+
*
|
|
8
|
+
* Doc types are stored as directories containing:
|
|
9
|
+
* - type.yaml: Type definition (schema, frontmatter rules, file naming)
|
|
10
|
+
* - template.md: Mustache template for document generation
|
|
11
|
+
* - standards.md: Standards and conventions for this type
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.DocTypeRegistry = void 0;
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const yaml = __importStar(require("js-yaml"));
|
|
51
|
+
/**
|
|
52
|
+
* Convert raw YAML (snake_case) to DocType (camelCase)
|
|
53
|
+
*/
|
|
54
|
+
function convertYamlToDocType(raw, template, standards) {
|
|
55
|
+
return {
|
|
56
|
+
id: raw.id,
|
|
57
|
+
displayName: raw.display_name,
|
|
58
|
+
description: raw.description,
|
|
59
|
+
template,
|
|
60
|
+
outputPath: raw.output_path,
|
|
61
|
+
fileNaming: {
|
|
62
|
+
pattern: raw.file_naming.pattern,
|
|
63
|
+
autoNumber: raw.file_naming.auto_number,
|
|
64
|
+
numberFormat: raw.file_naming.number_format,
|
|
65
|
+
slugSource: raw.file_naming.slug_source,
|
|
66
|
+
slugMaxLength: raw.file_naming.slug_max_length,
|
|
67
|
+
},
|
|
68
|
+
frontmatter: {
|
|
69
|
+
requiredFields: raw.frontmatter.required_fields,
|
|
70
|
+
optionalFields: raw.frontmatter.optional_fields,
|
|
71
|
+
defaults: raw.frontmatter.defaults,
|
|
72
|
+
},
|
|
73
|
+
structure: raw.structure
|
|
74
|
+
? {
|
|
75
|
+
requiredSections: raw.structure.required_sections,
|
|
76
|
+
optionalSections: raw.structure.optional_sections,
|
|
77
|
+
sectionOrder: raw.structure.section_order,
|
|
78
|
+
}
|
|
79
|
+
: undefined,
|
|
80
|
+
status: raw.status
|
|
81
|
+
? {
|
|
82
|
+
allowedValues: raw.status.allowed_values,
|
|
83
|
+
default: raw.status.default,
|
|
84
|
+
}
|
|
85
|
+
: undefined,
|
|
86
|
+
indexConfig: raw.index_config
|
|
87
|
+
? {
|
|
88
|
+
indexFile: raw.index_config.index_file,
|
|
89
|
+
sortBy: raw.index_config.sort_by,
|
|
90
|
+
sortOrder: raw.index_config.sort_order,
|
|
91
|
+
entryTemplate: raw.index_config.entry_template,
|
|
92
|
+
}
|
|
93
|
+
: undefined,
|
|
94
|
+
standards,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Doc Type Registry - Load and manage document type definitions
|
|
99
|
+
*/
|
|
100
|
+
class DocTypeRegistry {
|
|
101
|
+
coreTypes;
|
|
102
|
+
customTypes;
|
|
103
|
+
baseDir;
|
|
104
|
+
coreTypesPath;
|
|
105
|
+
constructor(config) {
|
|
106
|
+
this.baseDir = config?.baseDir || process.cwd();
|
|
107
|
+
this.coreTypes = new Map();
|
|
108
|
+
this.customTypes = new Map();
|
|
109
|
+
// Default to looking for templates/docs relative to package root
|
|
110
|
+
// When installed as a package, this should be resolved differently
|
|
111
|
+
this.coreTypesPath =
|
|
112
|
+
config?.coreTypesPath || this.findCoreTypesPath();
|
|
113
|
+
// Load core types unless explicitly skipped
|
|
114
|
+
if (!config?.skipCoreTypes) {
|
|
115
|
+
this.loadCoreTypes();
|
|
116
|
+
}
|
|
117
|
+
// Load custom types from manifest file if provided
|
|
118
|
+
if (config?.customManifestPath) {
|
|
119
|
+
this.loadCustomTypesFromManifest(config.customManifestPath);
|
|
120
|
+
}
|
|
121
|
+
// Load individual custom types if provided (can override manifest types)
|
|
122
|
+
if (config?.customTypes) {
|
|
123
|
+
this.loadCustomTypes(config.customTypes);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Find the core templates/docs directory (templates/docs)
|
|
128
|
+
*/
|
|
129
|
+
findCoreTypesPath() {
|
|
130
|
+
// Try common locations
|
|
131
|
+
const candidates = [
|
|
132
|
+
// Development: relative to SDK source
|
|
133
|
+
path.resolve(__dirname, '../../../../templates/docs'),
|
|
134
|
+
// Development: from repo root
|
|
135
|
+
path.resolve(process.cwd(), 'templates/docs'),
|
|
136
|
+
// Installed package: look in parent directories
|
|
137
|
+
path.resolve(__dirname, '../../../../../templates/docs'),
|
|
138
|
+
path.resolve(__dirname, '../../../../../../templates/docs'),
|
|
139
|
+
];
|
|
140
|
+
for (const candidate of candidates) {
|
|
141
|
+
if (fs.existsSync(path.join(candidate, 'manifest.yaml'))) {
|
|
142
|
+
return candidate;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Fallback - will fail later if types not found
|
|
146
|
+
return candidates[0];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Load all core doc types from the templates/docs directory
|
|
150
|
+
*/
|
|
151
|
+
loadCoreTypes() {
|
|
152
|
+
const manifestPath = path.join(this.coreTypesPath, 'manifest.yaml');
|
|
153
|
+
if (!fs.existsSync(manifestPath)) {
|
|
154
|
+
console.warn(`Core doc types manifest not found: ${manifestPath}`);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
const manifestContent = fs.readFileSync(manifestPath, 'utf-8');
|
|
159
|
+
const manifest = yaml.load(manifestContent);
|
|
160
|
+
for (const entry of manifest.doc_types) {
|
|
161
|
+
const docType = this.loadDocTypeFromDirectory(entry.id, path.join(this.coreTypesPath, entry.path.replace('./', '')));
|
|
162
|
+
if (docType) {
|
|
163
|
+
this.coreTypes.set(docType.id, docType);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.warn('Failed to load core doc types:', error);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Load custom doc types from a manifest file
|
|
173
|
+
* This is used when docs.custom_templates_path is set in config.yaml
|
|
174
|
+
*/
|
|
175
|
+
loadCustomTypesFromManifest(manifestPath) {
|
|
176
|
+
// Resolve path relative to baseDir if not absolute
|
|
177
|
+
const resolvedPath = path.isAbsolute(manifestPath)
|
|
178
|
+
? manifestPath
|
|
179
|
+
: path.join(this.baseDir, manifestPath);
|
|
180
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
181
|
+
// Custom manifest is optional - don't warn if not found
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
try {
|
|
185
|
+
const manifestContent = fs.readFileSync(resolvedPath, 'utf-8');
|
|
186
|
+
const manifest = yaml.load(manifestContent);
|
|
187
|
+
// Get the directory containing the manifest
|
|
188
|
+
const manifestDir = path.dirname(resolvedPath);
|
|
189
|
+
for (const entry of manifest.doc_types || []) {
|
|
190
|
+
// Resolve type directory relative to manifest location
|
|
191
|
+
const typeDirPath = path.join(manifestDir, entry.path.replace('./', ''));
|
|
192
|
+
const docType = this.loadDocTypeFromDirectory(entry.id, typeDirPath);
|
|
193
|
+
if (docType) {
|
|
194
|
+
this.customTypes.set(docType.id, docType);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.warn(`Failed to load custom doc types from ${manifestPath}:`, error);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Load a doc type from a directory
|
|
204
|
+
*/
|
|
205
|
+
loadDocTypeFromDirectory(id, dirPath) {
|
|
206
|
+
const typeYamlPath = path.join(dirPath, 'type.yaml');
|
|
207
|
+
const templatePath = path.join(dirPath, 'template.md');
|
|
208
|
+
const standardsPath = path.join(dirPath, 'standards.md');
|
|
209
|
+
if (!fs.existsSync(typeYamlPath)) {
|
|
210
|
+
console.warn(`Doc type definition not found: ${typeYamlPath}`);
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
// Read type.yaml
|
|
215
|
+
const typeContent = fs.readFileSync(typeYamlPath, 'utf-8');
|
|
216
|
+
const rawType = yaml.load(typeContent);
|
|
217
|
+
// Read template.md
|
|
218
|
+
let template = '';
|
|
219
|
+
if (fs.existsSync(templatePath)) {
|
|
220
|
+
template = fs.readFileSync(templatePath, 'utf-8');
|
|
221
|
+
}
|
|
222
|
+
// Read standards.md
|
|
223
|
+
let standards = '';
|
|
224
|
+
if (fs.existsSync(standardsPath)) {
|
|
225
|
+
standards = fs.readFileSync(standardsPath, 'utf-8');
|
|
226
|
+
}
|
|
227
|
+
// Convert and validate
|
|
228
|
+
const docType = convertYamlToDocType(rawType, template, standards);
|
|
229
|
+
// Ensure ID matches
|
|
230
|
+
if (docType.id !== id) {
|
|
231
|
+
console.warn(`Doc type ID mismatch: expected ${id}, got ${docType.id}`);
|
|
232
|
+
docType.id = id;
|
|
233
|
+
}
|
|
234
|
+
return docType;
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
console.warn(`Failed to load doc type ${id}:`, error);
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Load custom types from config paths
|
|
243
|
+
*/
|
|
244
|
+
loadCustomTypes(configs) {
|
|
245
|
+
for (const config of configs) {
|
|
246
|
+
try {
|
|
247
|
+
if (config.path) {
|
|
248
|
+
// Load from local directory
|
|
249
|
+
const typePath = path.isAbsolute(config.path)
|
|
250
|
+
? config.path
|
|
251
|
+
: path.join(this.baseDir, config.path);
|
|
252
|
+
const docType = this.loadDocTypeFromDirectory(config.id, typePath);
|
|
253
|
+
if (docType) {
|
|
254
|
+
this.customTypes.set(docType.id, docType);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else if (config.url) {
|
|
258
|
+
// URL loading would be async - not supported in constructor
|
|
259
|
+
// Users should use loadCustomTypeFromUrl() method instead
|
|
260
|
+
console.warn(`URL-based doc type loading not supported in constructor. Use loadCustomTypeFromUrl() for ${config.id}`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
console.warn(`Failed to load custom doc type ${config.id}:`, error);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Load a custom doc type from a URL (async)
|
|
270
|
+
* @param id - Type identifier
|
|
271
|
+
* @param baseUrl - Base URL to the type directory (should contain type.yaml, template.md, standards.md)
|
|
272
|
+
*/
|
|
273
|
+
async loadCustomTypeFromUrl(id, baseUrl) {
|
|
274
|
+
try {
|
|
275
|
+
// Fetch type.yaml
|
|
276
|
+
const typeUrl = `${baseUrl}/type.yaml`;
|
|
277
|
+
const typeResponse = await fetch(typeUrl);
|
|
278
|
+
if (!typeResponse.ok) {
|
|
279
|
+
console.warn(`Failed to fetch doc type: ${typeUrl}`);
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
const typeContent = await typeResponse.text();
|
|
283
|
+
const rawType = yaml.load(typeContent);
|
|
284
|
+
// Fetch template.md
|
|
285
|
+
let template = '';
|
|
286
|
+
try {
|
|
287
|
+
const templateUrl = `${baseUrl}/template.md`;
|
|
288
|
+
const templateResponse = await fetch(templateUrl);
|
|
289
|
+
if (templateResponse.ok) {
|
|
290
|
+
template = await templateResponse.text();
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// Template is optional
|
|
295
|
+
}
|
|
296
|
+
// Fetch standards.md
|
|
297
|
+
let standards = '';
|
|
298
|
+
try {
|
|
299
|
+
const standardsUrl = `${baseUrl}/standards.md`;
|
|
300
|
+
const standardsResponse = await fetch(standardsUrl);
|
|
301
|
+
if (standardsResponse.ok) {
|
|
302
|
+
standards = await standardsResponse.text();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// Standards is optional
|
|
307
|
+
}
|
|
308
|
+
const docType = convertYamlToDocType(rawType, template, standards);
|
|
309
|
+
docType.id = id;
|
|
310
|
+
this.customTypes.set(id, docType);
|
|
311
|
+
return docType;
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
console.warn(`Failed to load doc type from URL ${baseUrl}:`, error);
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Get all available doc types (core + custom)
|
|
320
|
+
*/
|
|
321
|
+
getAllTypes() {
|
|
322
|
+
const types = [];
|
|
323
|
+
// Add core types
|
|
324
|
+
for (const docType of this.coreTypes.values()) {
|
|
325
|
+
types.push(docType);
|
|
326
|
+
}
|
|
327
|
+
// Add custom types (may override core types)
|
|
328
|
+
for (const docType of this.customTypes.values()) {
|
|
329
|
+
const existingIndex = types.findIndex((t) => t.id === docType.id);
|
|
330
|
+
if (existingIndex >= 0) {
|
|
331
|
+
types[existingIndex] = docType;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
types.push(docType);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return types.sort((a, b) => a.id.localeCompare(b.id));
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Get a doc type by ID
|
|
341
|
+
*/
|
|
342
|
+
getType(id) {
|
|
343
|
+
// Custom types take precedence
|
|
344
|
+
if (this.customTypes.has(id)) {
|
|
345
|
+
return this.customTypes.get(id);
|
|
346
|
+
}
|
|
347
|
+
return this.coreTypes.get(id) || null;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Check if a doc type exists
|
|
351
|
+
*/
|
|
352
|
+
hasType(id) {
|
|
353
|
+
return this.coreTypes.has(id) || this.customTypes.has(id);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Get only core types
|
|
357
|
+
*/
|
|
358
|
+
getCoreTypes() {
|
|
359
|
+
return Array.from(this.coreTypes.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Get only custom types
|
|
363
|
+
*/
|
|
364
|
+
getCustomTypes() {
|
|
365
|
+
return Array.from(this.customTypes.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Register a custom type programmatically
|
|
369
|
+
*/
|
|
370
|
+
registerType(docType) {
|
|
371
|
+
this.customTypes.set(docType.id, docType);
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Unregister a custom type
|
|
375
|
+
*/
|
|
376
|
+
unregisterType(id) {
|
|
377
|
+
return this.customTypes.delete(id);
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Get the manifest URL for core types
|
|
381
|
+
*/
|
|
382
|
+
static getCoreManifestUrl() {
|
|
383
|
+
return 'https://raw.githubusercontent.com/fractary/core/main/templates/docs/manifest.yaml';
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Get the base URL for a specific core type
|
|
387
|
+
*/
|
|
388
|
+
static getCoreTypeUrl(typeId) {
|
|
389
|
+
return `https://raw.githubusercontent.com/fractary/core/main/templates/docs/${typeId}`;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
exports.DocTypeRegistry = DocTypeRegistry;
|
|
393
|
+
//# sourceMappingURL=type-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-registry.js","sourceRoot":"","sources":["../../src/docs/type-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/docs/types.d.ts
CHANGED
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
* Documentation format types
|
|
8
8
|
*/
|
|
9
9
|
export type DocFormat = 'markdown' | 'html' | 'pdf' | 'text';
|
|
10
|
+
/**
|
|
11
|
+
* Metadata storage mode
|
|
12
|
+
* - 'frontmatter': Metadata embedded in YAML frontmatter at start of markdown files (recommended)
|
|
13
|
+
* - 'sidecar': Metadata stored in separate .meta.yaml files alongside content files (legacy)
|
|
14
|
+
*/
|
|
15
|
+
export type MetadataMode = 'frontmatter' | 'sidecar';
|
|
10
16
|
/**
|
|
11
17
|
* Documentation metadata
|
|
12
18
|
*/
|
|
@@ -39,6 +45,14 @@ export interface DocMetadata {
|
|
|
39
45
|
* Tags for categorization
|
|
40
46
|
*/
|
|
41
47
|
tags?: string[];
|
|
48
|
+
/**
|
|
49
|
+
* Document type (e.g., 'adr', 'api', 'architecture')
|
|
50
|
+
*/
|
|
51
|
+
docType?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Document status (e.g., 'draft', 'published', 'deprecated')
|
|
54
|
+
*/
|
|
55
|
+
status?: string;
|
|
42
56
|
/**
|
|
43
57
|
* Custom metadata
|
|
44
58
|
*/
|
|
@@ -85,6 +99,10 @@ export interface DocSearchQuery {
|
|
|
85
99
|
* Filter by author
|
|
86
100
|
*/
|
|
87
101
|
author?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Filter by document type
|
|
104
|
+
*/
|
|
105
|
+
docType?: string;
|
|
88
106
|
/**
|
|
89
107
|
* Filter by date range
|
|
90
108
|
*/
|
|
@@ -109,5 +127,80 @@ export interface DocsManagerConfig {
|
|
|
109
127
|
* Default format for new documents
|
|
110
128
|
*/
|
|
111
129
|
defaultFormat?: DocFormat;
|
|
130
|
+
/**
|
|
131
|
+
* Metadata storage mode (default: 'frontmatter' for markdown, 'sidecar' for others)
|
|
132
|
+
*/
|
|
133
|
+
metadataMode?: MetadataMode;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Document type definition
|
|
137
|
+
*/
|
|
138
|
+
export interface DocType {
|
|
139
|
+
/**
|
|
140
|
+
* Type identifier (e.g., 'adr', 'api', 'architecture')
|
|
141
|
+
*/
|
|
142
|
+
id: string;
|
|
143
|
+
/**
|
|
144
|
+
* Human-readable name
|
|
145
|
+
*/
|
|
146
|
+
displayName: string;
|
|
147
|
+
/**
|
|
148
|
+
* Description of this document type
|
|
149
|
+
*/
|
|
150
|
+
description: string;
|
|
151
|
+
/**
|
|
152
|
+
* Mustache template for document content
|
|
153
|
+
*/
|
|
154
|
+
template: string;
|
|
155
|
+
/**
|
|
156
|
+
* Default output path relative to docs directory
|
|
157
|
+
*/
|
|
158
|
+
outputPath: string;
|
|
159
|
+
/**
|
|
160
|
+
* File naming configuration
|
|
161
|
+
*/
|
|
162
|
+
fileNaming: {
|
|
163
|
+
pattern: string;
|
|
164
|
+
autoNumber?: boolean;
|
|
165
|
+
numberFormat?: string;
|
|
166
|
+
slugSource?: string;
|
|
167
|
+
slugMaxLength?: number;
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Frontmatter field configuration
|
|
171
|
+
*/
|
|
172
|
+
frontmatter: {
|
|
173
|
+
requiredFields: string[];
|
|
174
|
+
optionalFields?: string[];
|
|
175
|
+
defaults?: Record<string, unknown>;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Document structure requirements
|
|
179
|
+
*/
|
|
180
|
+
structure?: {
|
|
181
|
+
requiredSections?: string[];
|
|
182
|
+
optionalSections?: string[];
|
|
183
|
+
sectionOrder?: string[];
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Status field configuration
|
|
187
|
+
*/
|
|
188
|
+
status?: {
|
|
189
|
+
allowedValues: string[];
|
|
190
|
+
default: string;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Index configuration
|
|
194
|
+
*/
|
|
195
|
+
indexConfig?: {
|
|
196
|
+
indexFile: string;
|
|
197
|
+
sortBy?: string;
|
|
198
|
+
sortOrder?: 'asc' | 'desc';
|
|
199
|
+
entryTemplate?: string;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Documentation standards (markdown content)
|
|
203
|
+
*/
|
|
204
|
+
standards?: string;
|
|
112
205
|
}
|
|
113
206
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/docs/types.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docs/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/core - Manager Factories
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating authenticated managers.
|
|
5
|
+
* Provides a convenient way to create WorkManager and RepoManager
|
|
6
|
+
* with automatic configuration loading and authentication.
|
|
7
|
+
*/
|
|
8
|
+
import { WorkManager } from './work';
|
|
9
|
+
import { RepoManager } from './repo';
|
|
10
|
+
import { LoadedConfig } from './config/loader';
|
|
11
|
+
/**
|
|
12
|
+
* Options for creating managers
|
|
13
|
+
*/
|
|
14
|
+
export interface CreateManagerOptions {
|
|
15
|
+
/** Pre-loaded configuration (optional - will load if not provided) */
|
|
16
|
+
config?: LoadedConfig;
|
|
17
|
+
/** Working directory for repository operations */
|
|
18
|
+
cwd?: string;
|
|
19
|
+
/** Skip authentication (use existing gh CLI auth instead) */
|
|
20
|
+
skipAuth?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create an authenticated WorkManager
|
|
24
|
+
*
|
|
25
|
+
* Loads configuration automatically and creates a WorkManager
|
|
26
|
+
* with proper authentication.
|
|
27
|
+
*
|
|
28
|
+
* @param options Creation options
|
|
29
|
+
* @returns Configured WorkManager instance
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Simple usage - auto-loads config and auth
|
|
34
|
+
* const workManager = await createWorkManager();
|
|
35
|
+
* const issues = await workManager.searchIssues('bug');
|
|
36
|
+
*
|
|
37
|
+
* // With pre-loaded config
|
|
38
|
+
* const config = await loadConfig();
|
|
39
|
+
* const workManager = await createWorkManager({ config });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function createWorkManager(options?: CreateManagerOptions): Promise<WorkManager>;
|
|
43
|
+
/**
|
|
44
|
+
* Create an authenticated RepoManager
|
|
45
|
+
*
|
|
46
|
+
* Loads configuration automatically and creates a RepoManager
|
|
47
|
+
* with proper authentication.
|
|
48
|
+
*
|
|
49
|
+
* @param options Creation options
|
|
50
|
+
* @returns Configured RepoManager instance
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Simple usage - auto-loads config and auth
|
|
55
|
+
* const repoManager = await createRepoManager();
|
|
56
|
+
* const status = repoManager.getStatus();
|
|
57
|
+
*
|
|
58
|
+
* // With explicit working directory
|
|
59
|
+
* const repoManager = await createRepoManager({ cwd: '/path/to/repo' });
|
|
60
|
+
*
|
|
61
|
+
* // With pre-loaded config
|
|
62
|
+
* const config = await loadConfig();
|
|
63
|
+
* const repoManager = await createRepoManager({ config });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function createRepoManager(options?: CreateManagerOptions): Promise<RepoManager>;
|
|
67
|
+
/**
|
|
68
|
+
* Create both WorkManager and RepoManager with shared config
|
|
69
|
+
*
|
|
70
|
+
* Useful when you need both managers and want to share
|
|
71
|
+
* configuration and authentication.
|
|
72
|
+
*
|
|
73
|
+
* @param options Creation options
|
|
74
|
+
* @returns Object with both managers
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const { work, repo } = await createManagers();
|
|
79
|
+
*
|
|
80
|
+
* // Fetch issue and create branch
|
|
81
|
+
* const issue = await work.fetchIssue(123);
|
|
82
|
+
* await repo.createBranch(`feature/${issue.number}-${slug(issue.title)}`);
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function createManagers(options?: CreateManagerOptions): Promise<{
|
|
86
|
+
work: WorkManager;
|
|
87
|
+
repo: RepoManager;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAc,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA0C3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkFD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAwBnD"}
|