@mdfriday/foundry 25.7.0 → 25.7.2
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/README.md +4 -0
- package/dist/internal/application/incremental-build-coordinator.d.ts +69 -0
- package/dist/internal/application/incremental-build-coordinator.d.ts.map +1 -0
- package/dist/internal/application/incremental-build-coordinator.js +184 -0
- package/dist/internal/application/incremental-build-coordinator.js.map +1 -0
- package/dist/internal/application/incremental-ssg.d.ts +8 -0
- package/dist/internal/application/incremental-ssg.d.ts.map +1 -0
- package/dist/internal/application/incremental-ssg.js +23 -0
- package/dist/internal/application/incremental-ssg.js.map +1 -0
- package/dist/internal/application/ssg.d.ts +19 -1
- package/dist/internal/application/ssg.d.ts.map +1 -1
- package/dist/internal/application/ssg.js +29 -4
- package/dist/internal/application/ssg.js.map +1 -1
- package/dist/internal/application/test-incremental-ssg.d.ts +9 -0
- package/dist/internal/application/test-incremental-ssg.d.ts.map +1 -0
- package/dist/internal/application/test-incremental-ssg.js +80 -0
- package/dist/internal/application/test-incremental-ssg.js.map +1 -0
- package/dist/internal/application/test-ssg.d.ts.map +1 -1
- package/dist/internal/application/test-ssg.js +1 -1
- package/dist/internal/application/test-ssg.js.map +1 -1
- package/dist/internal/domain/config/entity/dir.d.ts +3 -2
- package/dist/internal/domain/config/entity/dir.d.ts.map +1 -1
- package/dist/internal/domain/config/entity/dir.js +5 -4
- package/dist/internal/domain/config/entity/dir.js.map +1 -1
- package/dist/internal/domain/config/factory/config.d.ts.map +1 -1
- package/dist/internal/domain/config/factory/config.js +5 -2
- package/dist/internal/domain/config/factory/config.js.map +1 -1
- package/dist/internal/domain/content/entity/content.d.ts +6 -2
- package/dist/internal/domain/content/entity/content.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/content.js +51 -16
- package/dist/internal/domain/content/entity/content.js.map +1 -1
- package/dist/internal/domain/content/entity/pagebuilder.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/pagebuilder.js +5 -1
- package/dist/internal/domain/content/entity/pagebuilder.js.map +1 -1
- package/dist/internal/domain/content/entity/pagecollector.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/pagecollector.js +10 -8
- package/dist/internal/domain/content/entity/pagecollector.js.map +1 -1
- package/dist/internal/domain/content/entity/pagesource.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/pagesource.js +1 -2
- package/dist/internal/domain/content/entity/pagesource.js.map +1 -1
- package/dist/internal/domain/content/type.d.ts +3 -0
- package/dist/internal/domain/content/type.d.ts.map +1 -1
- package/dist/internal/domain/content/type.js.map +1 -1
- package/dist/internal/domain/content/vo/identity.d.ts +4 -0
- package/dist/internal/domain/content/vo/identity.d.ts.map +1 -1
- package/dist/internal/domain/content/vo/identity.js +17 -0
- package/dist/internal/domain/content/vo/identity.js.map +1 -1
- package/dist/internal/domain/fs/entity/basefs.d.ts.map +1 -1
- package/dist/internal/domain/fs/entity/basefs.js +21 -9
- package/dist/internal/domain/fs/entity/basefs.js.map +1 -1
- package/dist/internal/domain/fs/entity/fs.d.ts +1 -0
- package/dist/internal/domain/fs/entity/fs.d.ts.map +1 -1
- package/dist/internal/domain/fs/entity/fs.js +4 -0
- package/dist/internal/domain/fs/entity/fs.js.map +1 -1
- package/dist/internal/domain/fs/factory/fs.d.ts +1 -0
- package/dist/internal/domain/fs/factory/fs.d.ts.map +1 -1
- package/dist/internal/domain/fs/factory/fs.js.map +1 -1
- package/dist/internal/domain/fs/vo/file.d.ts +1 -0
- package/dist/internal/domain/fs/vo/file.d.ts.map +1 -1
- package/dist/internal/domain/fs/vo/file.js +6 -3
- package/dist/internal/domain/fs/vo/file.js.map +1 -1
- package/dist/internal/domain/fs/vo/fileinfo.d.ts.map +1 -1
- package/dist/internal/domain/fs/vo/fileinfo.js +1 -2
- package/dist/internal/domain/fs/vo/fileinfo.js.map +1 -1
- package/dist/internal/domain/fs/vo/filemeta.d.ts +0 -4
- package/dist/internal/domain/fs/vo/filemeta.d.ts.map +1 -1
- package/dist/internal/domain/fs/vo/filemeta.js +0 -9
- package/dist/internal/domain/fs/vo/filemeta.js.map +1 -1
- package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts +3 -0
- package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts.map +1 -0
- package/dist/internal/domain/fs/vo/incremental-file-collector.js +37 -0
- package/dist/internal/domain/fs/vo/incremental-file-collector.js.map +1 -0
- package/dist/internal/domain/fs/vo/overlay-factory.d.ts +1 -0
- package/dist/internal/domain/fs/vo/overlay-factory.d.ts.map +1 -1
- package/dist/internal/domain/fs/vo/overlay-factory.js +1 -38
- package/dist/internal/domain/fs/vo/overlay-factory.js.map +1 -1
- package/dist/internal/domain/fs/vo/walkway.d.ts.map +1 -1
- package/dist/internal/domain/fs/vo/walkway.js +1 -4
- package/dist/internal/domain/fs/vo/walkway.js.map +1 -1
- package/dist/internal/domain/markdown/type.d.ts +1 -0
- package/dist/internal/domain/markdown/type.d.ts.map +1 -1
- package/dist/internal/domain/markdown/type.js.map +1 -1
- package/dist/internal/domain/markdown/vo/shortcode.d.ts +1 -0
- package/dist/internal/domain/markdown/vo/shortcode.d.ts.map +1 -1
- package/dist/internal/domain/markdown/vo/shortcode.js +3 -0
- package/dist/internal/domain/markdown/vo/shortcode.js.map +1 -1
- package/dist/internal/domain/site/entity/page.d.ts +4 -2
- package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/page.js +13 -2
- package/dist/internal/domain/site/entity/page.js.map +1 -1
- package/dist/internal/domain/site/entity/site.d.ts +2 -1
- package/dist/internal/domain/site/entity/site.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/site.js +9 -1
- package/dist/internal/domain/site/entity/site.js.map +1 -1
- package/dist/internal/domain/template/entity/template.d.ts.map +1 -1
- package/dist/internal/domain/template/entity/template.js +3 -0
- package/dist/internal/domain/template/entity/template.js.map +1 -1
- package/dist/pkg/log/logger.d.ts.map +1 -1
- package/dist/pkg/log/logger.js +1 -0
- package/dist/pkg/log/logger.js.map +1 -1
- package/dist/pkg/log/manager.js +1 -1
- package/dist/pkg/web/server/livereload-server.d.ts +23 -0
- package/dist/pkg/web/server/livereload-server.d.ts.map +1 -0
- package/dist/pkg/web/server/livereload-server.js +370 -0
- package/dist/pkg/web/server/livereload-server.js.map +1 -0
- package/dist/pkg/web/server/types.d.ts +25 -0
- package/dist/pkg/web/server/types.d.ts.map +1 -0
- package/dist/pkg/web/server/types.js +3 -0
- package/dist/pkg/web/server/types.js.map +1 -0
- package/dist/pkg/web/watcher/content-file-watcher.d.ts +20 -0
- package/dist/pkg/web/watcher/content-file-watcher.d.ts.map +1 -0
- package/dist/pkg/web/watcher/content-file-watcher.js +154 -0
- package/dist/pkg/web/watcher/content-file-watcher.js.map +1 -0
- package/dist/pkg/web/watcher/types.d.ts +18 -0
- package/dist/pkg/web/watcher/types.d.ts.map +1 -0
- package/dist/pkg/web/watcher/types.js +3 -0
- package/dist/pkg/web/watcher/types.js.map +1 -0
- package/package.json +7 -2
- package/dist/internal/domain/markdown/examples/obsidian-example.d.ts +0 -79
- package/dist/internal/domain/markdown/examples/obsidian-example.d.ts.map +0 -1
- package/dist/internal/domain/markdown/examples/obsidian-example.js +0 -302
- package/dist/internal/domain/markdown/examples/obsidian-example.js.map +0 -1
- package/dist/internal/domain/markdown/examples/shortcode.d.ts +0 -43
- package/dist/internal/domain/markdown/examples/shortcode.d.ts.map +0 -1
- package/dist/internal/domain/markdown/examples/shortcode.js +0 -99
- package/dist/internal/domain/markdown/examples/shortcode.js.map +0 -1
- package/dist/internal/domain/prompt/entity/collector.d.ts +0 -88
- package/dist/internal/domain/prompt/entity/collector.d.ts.map +0 -1
- package/dist/internal/domain/prompt/entity/collector.js +0 -254
- package/dist/internal/domain/prompt/entity/collector.js.map +0 -1
- package/dist/internal/domain/prompt/entity/finder.d.ts +0 -88
- package/dist/internal/domain/prompt/entity/finder.d.ts.map +0 -1
- package/dist/internal/domain/prompt/entity/finder.js +0 -293
- package/dist/internal/domain/prompt/entity/finder.js.map +0 -1
- package/dist/internal/domain/prompt/entity/hub.d.ts +0 -112
- package/dist/internal/domain/prompt/entity/hub.d.ts.map +0 -1
- package/dist/internal/domain/prompt/entity/hub.js +0 -259
- package/dist/internal/domain/prompt/entity/hub.js.map +0 -1
- package/dist/internal/domain/prompt/entity/prompt.d.ts +0 -133
- package/dist/internal/domain/prompt/entity/prompt.d.ts.map +0 -1
- package/dist/internal/domain/prompt/entity/prompt.js +0 -237
- package/dist/internal/domain/prompt/entity/prompt.js.map +0 -1
- package/dist/internal/domain/prompt/factory/prompt.d.ts +0 -55
- package/dist/internal/domain/prompt/factory/prompt.d.ts.map +0 -1
- package/dist/internal/domain/prompt/factory/prompt.js +0 -212
- package/dist/internal/domain/prompt/factory/prompt.js.map +0 -1
- package/dist/internal/domain/prompt/index.d.ts +0 -10
- package/dist/internal/domain/prompt/index.d.ts.map +0 -1
- package/dist/internal/domain/prompt/index.js +0 -72
- package/dist/internal/domain/prompt/index.js.map +0 -1
- package/dist/internal/domain/prompt/type.d.ts +0 -180
- package/dist/internal/domain/prompt/type.d.ts.map +0 -1
- package/dist/internal/domain/prompt/type.js +0 -23
- package/dist/internal/domain/prompt/type.js.map +0 -1
- package/dist/internal/domain/prompt/vo/file.d.ts +0 -103
- package/dist/internal/domain/prompt/vo/file.d.ts.map +0 -1
- package/dist/internal/domain/prompt/vo/file.js +0 -265
- package/dist/internal/domain/prompt/vo/file.js.map +0 -1
- package/dist/internal/domain/prompt/vo/rule.d.ts +0 -139
- package/dist/internal/domain/prompt/vo/rule.d.ts.map +0 -1
- package/dist/internal/domain/prompt/vo/rule.js +0 -268
- package/dist/internal/domain/prompt/vo/rule.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAuB,WAAW,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAW,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,KAAK,CAA2B;gBAE5B,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW;IAK1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B;;OAEG;YACW,UAAU;IAgCxB;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C;;OAEG;IACH,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAI7B;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAYrD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAazD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KACpD;IAyBD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAoBF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,MAAM;CAGf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,CAEtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,EAC/D,GAAG,CAAC,EAAE,WAAW,GAChB,SAAS,CAkDX"}
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Collector = void 0;
|
|
4
|
-
exports.newCollector = newCollector;
|
|
5
|
-
exports.createMockCollector = createMockCollector;
|
|
6
|
-
const type_1 = require("../type");
|
|
7
|
-
const file_1 = require("../vo/file");
|
|
8
|
-
/**
|
|
9
|
-
* Collector entity for collecting prompt files
|
|
10
|
-
* TypeScript version of Go's Collector struct
|
|
11
|
-
*/
|
|
12
|
-
class Collector {
|
|
13
|
-
constructor(fs, log) {
|
|
14
|
-
this.files = new Map();
|
|
15
|
-
this.fs = fs;
|
|
16
|
-
this.log = log;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Collect files from filesystem
|
|
20
|
-
*/
|
|
21
|
-
async collect() {
|
|
22
|
-
const startTime = Date.now();
|
|
23
|
-
const processLog = this.log.withField('step', 'collect');
|
|
24
|
-
try {
|
|
25
|
-
const dirPath = "";
|
|
26
|
-
const promptFileSystem = this.fs.promptFs();
|
|
27
|
-
const root = await promptFileSystem.stat(dirPath);
|
|
28
|
-
await this.collectDir(dirPath, root);
|
|
29
|
-
const endTime = Date.now();
|
|
30
|
-
processLog.info(`Collected ${this.files.size} prompts in ${endTime - startTime}ms`);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
// Check if it's a "not exist" error - that's okay, like in Go version
|
|
34
|
-
if (error.message?.includes('ENOENT') ||
|
|
35
|
-
error.message?.includes('no such file') ||
|
|
36
|
-
error.message?.includes('file not found')) {
|
|
37
|
-
return; // Return silently like Go version
|
|
38
|
-
}
|
|
39
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
40
|
-
throw new type_1.PromptError(`Failed to collect prompts: ${message}`, 'COLLECTION_FAILED');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Collect files from a directory
|
|
45
|
-
*/
|
|
46
|
-
async collectDir(path, root) {
|
|
47
|
-
// Walk through the prompts directory
|
|
48
|
-
await this.fs.walkPrompts(path, {
|
|
49
|
-
walkFn: async (filePath, fi) => {
|
|
50
|
-
// The walkFn is called for each file
|
|
51
|
-
return;
|
|
52
|
-
},
|
|
53
|
-
hookPre: async (dir, dirPath, readdir) => {
|
|
54
|
-
if (readdir.length === 0) {
|
|
55
|
-
return [];
|
|
56
|
-
}
|
|
57
|
-
for (const fi of readdir) {
|
|
58
|
-
if (fi.isDir()) {
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const file = (0, file_1.newFile)(fi);
|
|
63
|
-
await this.handleFile(file);
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
67
|
-
this.log.warn(`Failed to handle file ${fi.name()}: ${message}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Continue walking (keep walking like Go version)
|
|
71
|
-
return readdir;
|
|
72
|
-
}
|
|
73
|
-
}, { info: root }); // Pass root info like Go version
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Handle a single file
|
|
77
|
-
*/
|
|
78
|
-
async handleFile(file) {
|
|
79
|
-
if (file.isDir()) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
try {
|
|
83
|
-
const name = file.relativeFilename();
|
|
84
|
-
const cleanName = name.startsWith('/') ? name.substring(1) : name;
|
|
85
|
-
// Only collect prompt files (based on extension)
|
|
86
|
-
if (file.isPromptFile()) {
|
|
87
|
-
this.files.set(cleanName, file);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
92
|
-
throw new type_1.PromptError(`Failed to handle file: ${message}`, 'FILE_HANDLE_FAILED');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Get collected files
|
|
97
|
-
*/
|
|
98
|
-
getFiles() {
|
|
99
|
-
return new Map(this.files);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Get files by pattern
|
|
103
|
-
*/
|
|
104
|
-
getFilesByPattern(pattern) {
|
|
105
|
-
const filtered = new Map();
|
|
106
|
-
for (const [path, file] of this.files) {
|
|
107
|
-
if (pattern.test(path) || pattern.test(file.name())) {
|
|
108
|
-
filtered.set(path, file);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return filtered;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Get files by extension
|
|
115
|
-
*/
|
|
116
|
-
getFilesByExtension(extension) {
|
|
117
|
-
const filtered = new Map();
|
|
118
|
-
const normalizedExt = extension.startsWith('.') ? extension : `.${extension}`;
|
|
119
|
-
for (const [path, file] of this.files) {
|
|
120
|
-
if (file.getExtension().toLowerCase() === normalizedExt.toLowerCase()) {
|
|
121
|
-
filtered.set(path, file);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return filtered;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Clear collected files
|
|
128
|
-
*/
|
|
129
|
-
clear() {
|
|
130
|
-
this.files.clear();
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get collection statistics
|
|
134
|
-
*/
|
|
135
|
-
getStats() {
|
|
136
|
-
let totalSize = 0;
|
|
137
|
-
let largestFile = null;
|
|
138
|
-
const fileTypes = new Map();
|
|
139
|
-
for (const [path, file] of this.files) {
|
|
140
|
-
const size = file.size();
|
|
141
|
-
totalSize += size;
|
|
142
|
-
if (!largestFile || size > largestFile.size) {
|
|
143
|
-
largestFile = { name: path, size };
|
|
144
|
-
}
|
|
145
|
-
const ext = file.getExtension().toLowerCase() || '.no-extension';
|
|
146
|
-
fileTypes.set(ext, (fileTypes.get(ext) || 0) + 1);
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
totalFiles: this.files.size,
|
|
150
|
-
totalSize,
|
|
151
|
-
fileTypes,
|
|
152
|
-
largestFile,
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Validate collected files
|
|
157
|
-
*/
|
|
158
|
-
async validateFiles() {
|
|
159
|
-
let valid = 0;
|
|
160
|
-
let invalid = 0;
|
|
161
|
-
const errors = [];
|
|
162
|
-
for (const [path, file] of this.files) {
|
|
163
|
-
try {
|
|
164
|
-
// Try to read content to validate file
|
|
165
|
-
await file.content();
|
|
166
|
-
valid++;
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
invalid++;
|
|
170
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
171
|
-
errors.push({ path, error: message });
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return { valid, invalid, errors };
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Reload collection
|
|
178
|
-
*/
|
|
179
|
-
async reload() {
|
|
180
|
-
this.clear();
|
|
181
|
-
await this.collect();
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Check if collection is empty
|
|
185
|
-
*/
|
|
186
|
-
isEmpty() {
|
|
187
|
-
return this.files.size === 0;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Get file count
|
|
191
|
-
*/
|
|
192
|
-
size() {
|
|
193
|
-
return this.files.size;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
exports.Collector = Collector;
|
|
197
|
-
/**
|
|
198
|
-
* Create a new Collector instance
|
|
199
|
-
*/
|
|
200
|
-
function newCollector(fs, log) {
|
|
201
|
-
return new Collector(fs, log);
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Create a mock Collector for testing
|
|
205
|
-
*/
|
|
206
|
-
function createMockCollector(files, log) {
|
|
207
|
-
// Create a mock file system
|
|
208
|
-
const mockFs = {
|
|
209
|
-
promptFs: () => ({}),
|
|
210
|
-
walkPrompts: async (start, cb, conf) => {
|
|
211
|
-
const mockFiles = files.map(f => {
|
|
212
|
-
const mockFileInfo = {
|
|
213
|
-
name: () => f.name,
|
|
214
|
-
size: () => f.content.length,
|
|
215
|
-
mode: () => 0o644,
|
|
216
|
-
modTime: () => f.modTime || new Date(),
|
|
217
|
-
isDir: () => false,
|
|
218
|
-
sys: () => null,
|
|
219
|
-
open: async () => ({
|
|
220
|
-
close: async () => { },
|
|
221
|
-
stat: async () => ({
|
|
222
|
-
name: () => f.name,
|
|
223
|
-
size: () => f.content.length,
|
|
224
|
-
mode: () => 0o644,
|
|
225
|
-
modTime: () => f.modTime || new Date(),
|
|
226
|
-
isDir: () => false,
|
|
227
|
-
sys: () => null,
|
|
228
|
-
}),
|
|
229
|
-
read: async (buffer) => {
|
|
230
|
-
const encoder = new TextEncoder();
|
|
231
|
-
const encoded = encoder.encode(f.content);
|
|
232
|
-
const bytesToCopy = Math.min(buffer.length, encoded.length);
|
|
233
|
-
buffer.set(encoded.slice(0, bytesToCopy));
|
|
234
|
-
return { bytesRead: bytesToCopy, buffer };
|
|
235
|
-
},
|
|
236
|
-
}),
|
|
237
|
-
};
|
|
238
|
-
return mockFileInfo;
|
|
239
|
-
});
|
|
240
|
-
if (cb.hookPre) {
|
|
241
|
-
await cb.hookPre({}, start, mockFiles);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
const mockLog = log || {
|
|
246
|
-
withField: (key, value) => mockLog,
|
|
247
|
-
info: (message) => { },
|
|
248
|
-
debug: (message) => { },
|
|
249
|
-
warn: (message) => { },
|
|
250
|
-
error: (message) => { },
|
|
251
|
-
};
|
|
252
|
-
return new Collector(mockFs, mockLog);
|
|
253
|
-
}
|
|
254
|
-
//# sourceMappingURL=collector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { PromptFinder, PromptInfo } from '../type';
|
|
2
|
-
import { File } from '../vo/file';
|
|
3
|
-
/**
|
|
4
|
-
* Finder entity for finding and retrieving prompts
|
|
5
|
-
* TypeScript version of Go's Finder struct
|
|
6
|
-
*/
|
|
7
|
-
export declare class Finder implements PromptFinder {
|
|
8
|
-
private files;
|
|
9
|
-
private contentCache;
|
|
10
|
-
/**
|
|
11
|
-
* Set files map
|
|
12
|
-
*/
|
|
13
|
-
setFiles(files: Map<string, File>): void;
|
|
14
|
-
/**
|
|
15
|
-
* 预加载所有文件内容到内存缓存(新增方法)
|
|
16
|
-
*/
|
|
17
|
-
preloadAllContent(): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* 同步获取内容(新增方法)- 依赖预加载
|
|
20
|
-
*/
|
|
21
|
-
getContentSync(name: string): string;
|
|
22
|
-
/**
|
|
23
|
-
* Get prompt raw content by name
|
|
24
|
-
*/
|
|
25
|
-
promptRawContent(name: string): Promise<string>;
|
|
26
|
-
/**
|
|
27
|
-
* Check if prompt exists
|
|
28
|
-
*/
|
|
29
|
-
hasPrompt(name: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Get all prompts
|
|
32
|
-
*/
|
|
33
|
-
getAllPrompts(): PromptInfo[];
|
|
34
|
-
/**
|
|
35
|
-
* Search prompts by pattern
|
|
36
|
-
*/
|
|
37
|
-
searchPrompts(pattern: RegExp): PromptInfo[];
|
|
38
|
-
/**
|
|
39
|
-
* Get prompt content with caching
|
|
40
|
-
*/
|
|
41
|
-
getPromptContent(name: string): Promise<{
|
|
42
|
-
content: string;
|
|
43
|
-
metadata: PromptInfo;
|
|
44
|
-
}>;
|
|
45
|
-
/**
|
|
46
|
-
* Get all prompt names
|
|
47
|
-
*/
|
|
48
|
-
getPromptNames(): string[];
|
|
49
|
-
/**
|
|
50
|
-
* Get prompts by extension
|
|
51
|
-
*/
|
|
52
|
-
getPromptsByExtension(extension: string): PromptInfo[];
|
|
53
|
-
/**
|
|
54
|
-
* Get prompts modified after date
|
|
55
|
-
*/
|
|
56
|
-
getPromptsModifiedAfter(date: Date): PromptInfo[];
|
|
57
|
-
/**
|
|
58
|
-
* Get largest prompts
|
|
59
|
-
*/
|
|
60
|
-
getLargestPrompts(limit?: number): PromptInfo[];
|
|
61
|
-
/**
|
|
62
|
-
* Get finder statistics
|
|
63
|
-
*/
|
|
64
|
-
getStats(): {
|
|
65
|
-
totalPrompts: number;
|
|
66
|
-
totalSize: number;
|
|
67
|
-
averageSize: number;
|
|
68
|
-
fileTypes: Map<string, number>;
|
|
69
|
-
lastModified: Date | null;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Clear all files
|
|
73
|
-
*/
|
|
74
|
-
clear(): void;
|
|
75
|
-
/**
|
|
76
|
-
* Get files count
|
|
77
|
-
*/
|
|
78
|
-
size(): number;
|
|
79
|
-
/**
|
|
80
|
-
* Check if finder is empty
|
|
81
|
-
*/
|
|
82
|
-
isEmpty(): boolean;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Create a new Finder instance
|
|
86
|
-
*/
|
|
87
|
-
export declare function newFinder(): Finder;
|
|
88
|
-
//# sourceMappingURL=finder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finder.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC;;;GAGG;AACH,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAIxC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAwCpC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAwChC;;OAEG;IACH,aAAa,IAAI,UAAU,EAAE;IAgB7B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAkB5C;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,UAAU,CAAC;KACtB,CAAC;IA0BF;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAmBtD;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAkBjD;;OAEG;IACH,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAOnD;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;KAC3B;IAyBD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Finder = void 0;
|
|
4
|
-
exports.newFinder = newFinder;
|
|
5
|
-
const type_1 = require("../type");
|
|
6
|
-
/**
|
|
7
|
-
* Finder entity for finding and retrieving prompts
|
|
8
|
-
* TypeScript version of Go's Finder struct
|
|
9
|
-
*/
|
|
10
|
-
class Finder {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.files = new Map();
|
|
13
|
-
this.contentCache = new Map();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Set files map
|
|
17
|
-
*/
|
|
18
|
-
setFiles(files) {
|
|
19
|
-
this.files = files;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 预加载所有文件内容到内存缓存(新增方法)
|
|
23
|
-
*/
|
|
24
|
-
async preloadAllContent() {
|
|
25
|
-
const promises = [];
|
|
26
|
-
console.log(`[DEBUG] Preloading content for ${this.files.size} files...`);
|
|
27
|
-
for (const [path, file] of this.files) {
|
|
28
|
-
console.log(`[DEBUG] Found file in collection: "${path}" -> ${file.name()}`);
|
|
29
|
-
promises.push(file.contentAsString().then(content => {
|
|
30
|
-
this.contentCache.set(path, content);
|
|
31
|
-
console.log(`[DEBUG] Cached content for: "${path}"`);
|
|
32
|
-
}).catch(error => {
|
|
33
|
-
console.error(`Failed to preload content for ${path}:`, error);
|
|
34
|
-
this.contentCache.set(path, ''); // 设置空内容避免后续错误
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
await Promise.all(promises);
|
|
38
|
-
console.log(`[DEBUG] Content cache keys: [${Array.from(this.contentCache.keys()).join(', ')}]`);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 同步获取内容(新增方法)- 依赖预加载
|
|
42
|
-
*/
|
|
43
|
-
getContentSync(name) {
|
|
44
|
-
console.log(`[DEBUG] getContentSync called with: "${name}"`);
|
|
45
|
-
if (this.contentCache.has(name)) {
|
|
46
|
-
console.log(`[DEBUG] Found direct match for: "${name}"`);
|
|
47
|
-
return this.contentCache.get(name) || '';
|
|
48
|
-
}
|
|
49
|
-
// 尝试多种路径格式匹配
|
|
50
|
-
const pathVariants = [
|
|
51
|
-
name, // 原始路径
|
|
52
|
-
name.startsWith('/') ? name.substring(1) : name, // 移除前导斜杠
|
|
53
|
-
name.startsWith('prompts/') ? name.substring(8) : name, // 移除 "prompts/" 前缀
|
|
54
|
-
name.startsWith('/prompts/') ? name.substring(9) : name, // 移除 "/prompts/" 前缀
|
|
55
|
-
];
|
|
56
|
-
// 同时也尝试为不带前缀的路径添加前缀
|
|
57
|
-
if (!name.startsWith('prompts/') && !name.startsWith('/prompts/')) {
|
|
58
|
-
pathVariants.push(`prompts/${name}`);
|
|
59
|
-
pathVariants.push(`/prompts/${name}`);
|
|
60
|
-
}
|
|
61
|
-
// 移除重复项
|
|
62
|
-
const uniqueVariants = [...new Set(pathVariants)];
|
|
63
|
-
console.log(`[DEBUG] Trying path variants: [${uniqueVariants.join(', ')}]`);
|
|
64
|
-
for (const variant of uniqueVariants) {
|
|
65
|
-
console.log(`[DEBUG] Checking variant: "${variant}"`);
|
|
66
|
-
if (this.contentCache.has(variant)) {
|
|
67
|
-
console.log(`[DEBUG] Found match for variant: "${variant}"`);
|
|
68
|
-
return this.contentCache.get(variant) || '';
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// 如果缓存中没有找到,抛出错误
|
|
72
|
-
console.log(`[DEBUG] No match found for any variant of: "${name}"`);
|
|
73
|
-
console.log(`[DEBUG] Available cache keys: [${Array.from(this.contentCache.keys()).join(', ')}]`);
|
|
74
|
-
throw new Error(`Prompt not found: ${name}. Tried variants: ${uniqueVariants.join(', ')}`);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get prompt raw content by name
|
|
78
|
-
*/
|
|
79
|
-
async promptRawContent(name) {
|
|
80
|
-
if (this.contentCache.has(name)) {
|
|
81
|
-
return this.contentCache.get(name) || '';
|
|
82
|
-
}
|
|
83
|
-
for (const [path, file] of this.files) {
|
|
84
|
-
if (path === name) {
|
|
85
|
-
try {
|
|
86
|
-
const content = await file.contentAsString();
|
|
87
|
-
this.contentCache.set(name, content);
|
|
88
|
-
return content;
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
92
|
-
throw new type_1.PromptError(`Failed to read content for prompt ${name}: ${message}`, 'CONTENT_READ_FAILED');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
throw new type_1.PromptError(`Prompt not found: ${name}`, 'PROMPT_NOT_FOUND');
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Check if prompt exists
|
|
100
|
-
*/
|
|
101
|
-
hasPrompt(name) {
|
|
102
|
-
console.log(`[DEBUG] hasPrompt called with: "${name}"`);
|
|
103
|
-
// 直接检查
|
|
104
|
-
if (this.files.has(name)) {
|
|
105
|
-
console.log(`[DEBUG] hasPrompt: Found direct match for: "${name}"`);
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
// 尝试多种路径格式匹配(与 getContentSync 保持一致)
|
|
109
|
-
const pathVariants = [
|
|
110
|
-
name, // 原始路径
|
|
111
|
-
name.startsWith('/') ? name.substring(1) : name, // 移除前导斜杠
|
|
112
|
-
name.startsWith('prompts/') ? name.substring(8) : name, // 移除 "prompts/" 前缀
|
|
113
|
-
name.startsWith('/prompts/') ? name.substring(9) : name, // 移除 "/prompts/" 前缀
|
|
114
|
-
];
|
|
115
|
-
// 同时也尝试为不带前缀的路径添加前缀
|
|
116
|
-
if (!name.startsWith('prompts/') && !name.startsWith('/prompts/')) {
|
|
117
|
-
pathVariants.push(`prompts/${name}`);
|
|
118
|
-
pathVariants.push(`/prompts/${name}`);
|
|
119
|
-
}
|
|
120
|
-
// 移除重复项
|
|
121
|
-
const uniqueVariants = [...new Set(pathVariants)];
|
|
122
|
-
console.log(`[DEBUG] hasPrompt: Trying path variants: [${uniqueVariants.join(', ')}]`);
|
|
123
|
-
for (const variant of uniqueVariants) {
|
|
124
|
-
console.log(`[DEBUG] hasPrompt: Checking variant: "${variant}"`);
|
|
125
|
-
if (this.files.has(variant)) {
|
|
126
|
-
console.log(`[DEBUG] hasPrompt: Found match for variant: "${variant}"`);
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
console.log(`[DEBUG] hasPrompt: No match found for any variant of: "${name}"`);
|
|
131
|
-
console.log(`[DEBUG] hasPrompt: Available file keys: [${Array.from(this.files.keys()).join(', ')}]`);
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Get all prompts
|
|
136
|
-
*/
|
|
137
|
-
getAllPrompts() {
|
|
138
|
-
const prompts = [];
|
|
139
|
-
for (const [path, file] of this.files) {
|
|
140
|
-
prompts.push({
|
|
141
|
-
name: file.name(),
|
|
142
|
-
path,
|
|
143
|
-
content: '', // Content not loaded for performance
|
|
144
|
-
size: file.size(),
|
|
145
|
-
modTime: file.modTime(),
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
return prompts;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Search prompts by pattern
|
|
152
|
-
*/
|
|
153
|
-
searchPrompts(pattern) {
|
|
154
|
-
const results = [];
|
|
155
|
-
for (const [path, file] of this.files) {
|
|
156
|
-
if (pattern.test(path) || pattern.test(file.name())) {
|
|
157
|
-
results.push({
|
|
158
|
-
name: file.name(),
|
|
159
|
-
path,
|
|
160
|
-
content: '', // Content not loaded for performance
|
|
161
|
-
size: file.size(),
|
|
162
|
-
modTime: file.modTime(),
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return results;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Get prompt content with caching
|
|
170
|
-
*/
|
|
171
|
-
async getPromptContent(name) {
|
|
172
|
-
const file = this.files.get(name);
|
|
173
|
-
if (!file) {
|
|
174
|
-
throw new type_1.PromptError(`Prompt not found: ${name}`, 'PROMPT_NOT_FOUND');
|
|
175
|
-
}
|
|
176
|
-
try {
|
|
177
|
-
const content = await file.contentAsString();
|
|
178
|
-
const metadata = {
|
|
179
|
-
name: file.name(),
|
|
180
|
-
path: name,
|
|
181
|
-
content,
|
|
182
|
-
size: file.size(),
|
|
183
|
-
modTime: file.modTime(),
|
|
184
|
-
};
|
|
185
|
-
return { content, metadata };
|
|
186
|
-
}
|
|
187
|
-
catch (error) {
|
|
188
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
189
|
-
throw new type_1.PromptError(`Failed to get prompt content for ${name}: ${message}`, 'CONTENT_RETRIEVAL_FAILED');
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Get all prompt names
|
|
194
|
-
*/
|
|
195
|
-
getPromptNames() {
|
|
196
|
-
return Array.from(this.files.keys());
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Get prompts by extension
|
|
200
|
-
*/
|
|
201
|
-
getPromptsByExtension(extension) {
|
|
202
|
-
const results = [];
|
|
203
|
-
const normalizedExt = extension.startsWith('.') ? extension : `.${extension}`;
|
|
204
|
-
for (const [path, file] of this.files) {
|
|
205
|
-
if (file.getExtension().toLowerCase() === normalizedExt.toLowerCase()) {
|
|
206
|
-
results.push({
|
|
207
|
-
name: file.name(),
|
|
208
|
-
path,
|
|
209
|
-
content: '', // Content not loaded for performance
|
|
210
|
-
size: file.size(),
|
|
211
|
-
modTime: file.modTime(),
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return results;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Get prompts modified after date
|
|
219
|
-
*/
|
|
220
|
-
getPromptsModifiedAfter(date) {
|
|
221
|
-
const results = [];
|
|
222
|
-
for (const [path, file] of this.files) {
|
|
223
|
-
if (file.modTime() > date) {
|
|
224
|
-
results.push({
|
|
225
|
-
name: file.name(),
|
|
226
|
-
path,
|
|
227
|
-
content: '', // Content not loaded for performance
|
|
228
|
-
size: file.size(),
|
|
229
|
-
modTime: file.modTime(),
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return results;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Get largest prompts
|
|
237
|
-
*/
|
|
238
|
-
getLargestPrompts(limit = 10) {
|
|
239
|
-
const allPrompts = this.getAllPrompts();
|
|
240
|
-
return allPrompts
|
|
241
|
-
.sort((a, b) => b.size - a.size)
|
|
242
|
-
.slice(0, limit);
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Get finder statistics
|
|
246
|
-
*/
|
|
247
|
-
getStats() {
|
|
248
|
-
let totalSize = 0;
|
|
249
|
-
let lastModified = null;
|
|
250
|
-
const fileTypes = new Map();
|
|
251
|
-
for (const [, file] of this.files) {
|
|
252
|
-
totalSize += file.size();
|
|
253
|
-
if (!lastModified || file.modTime() > lastModified) {
|
|
254
|
-
lastModified = file.modTime();
|
|
255
|
-
}
|
|
256
|
-
const ext = file.getExtension().toLowerCase();
|
|
257
|
-
fileTypes.set(ext, (fileTypes.get(ext) || 0) + 1);
|
|
258
|
-
}
|
|
259
|
-
return {
|
|
260
|
-
totalPrompts: this.files.size,
|
|
261
|
-
totalSize,
|
|
262
|
-
averageSize: this.files.size > 0 ? totalSize / this.files.size : 0,
|
|
263
|
-
fileTypes,
|
|
264
|
-
lastModified,
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Clear all files
|
|
269
|
-
*/
|
|
270
|
-
clear() {
|
|
271
|
-
this.files.clear();
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Get files count
|
|
275
|
-
*/
|
|
276
|
-
size() {
|
|
277
|
-
return this.files.size;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Check if finder is empty
|
|
281
|
-
*/
|
|
282
|
-
isEmpty() {
|
|
283
|
-
return this.files.size === 0;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
exports.Finder = Finder;
|
|
287
|
-
/**
|
|
288
|
-
* Create a new Finder instance
|
|
289
|
-
*/
|
|
290
|
-
function newFinder() {
|
|
291
|
-
return new Finder();
|
|
292
|
-
}
|
|
293
|
-
//# sourceMappingURL=finder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finder.js","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/finder.ts"],"names":[],"mappings":"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"}
|