@mdfriday/foundry 25.7.1 → 25.7.3
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 +28 -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 +2 -2
- package/dist/internal/application/test-ssg.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/fileinfo.d.ts +1 -1
- package/dist/internal/domain/content/vo/fileinfo.d.ts.map +1 -1
- package/dist/internal/domain/content/vo/fileinfo.js +8 -3
- package/dist/internal/domain/content/vo/fileinfo.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/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/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/entity/markdown.d.ts.map +1 -1
- package/dist/internal/domain/markdown/entity/markdown.js +2 -0
- package/dist/internal/domain/markdown/entity/markdown.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 +5 -2
- package/dist/internal/domain/markdown/vo/shortcode.js.map +1 -1
- package/dist/internal/domain/paths/type.d.ts +2 -0
- package/dist/internal/domain/paths/type.d.ts.map +1 -1
- package/dist/internal/domain/paths/type.js +14 -0
- package/dist/internal/domain/paths/type.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 +6 -0
- 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 +7 -36
- package/dist/internal/domain/template/entity/template.js.map +1 -1
- package/dist/internal/domain/template/vo/info.d.ts +0 -13
- package/dist/internal/domain/template/vo/info.d.ts.map +1 -1
- package/dist/internal/domain/template/vo/info.js +0 -25
- package/dist/internal/domain/template/vo/info.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,265 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.File = void 0;
|
|
37
|
-
exports.newFile = newFile;
|
|
38
|
-
exports.createMockFile = createMockFile;
|
|
39
|
-
exports.isPromptFile = isPromptFile;
|
|
40
|
-
exports.extractPromptName = extractPromptName;
|
|
41
|
-
const type_1 = require("../type");
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const crypto = __importStar(require("crypto"));
|
|
44
|
-
/**
|
|
45
|
-
* File value object for prompt files
|
|
46
|
-
* TypeScript version of Go's File struct
|
|
47
|
-
*/
|
|
48
|
-
class File {
|
|
49
|
-
constructor(fileMetaInfo) {
|
|
50
|
-
this.initialized = false;
|
|
51
|
-
this.fileMetaInfo = fileMetaInfo;
|
|
52
|
-
this._path = '';
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get file name
|
|
56
|
-
*/
|
|
57
|
-
name() {
|
|
58
|
-
return this.fileMetaInfo.name();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Get file size
|
|
62
|
-
*/
|
|
63
|
-
size() {
|
|
64
|
-
return this.fileMetaInfo.size();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get file mode
|
|
68
|
-
*/
|
|
69
|
-
mode() {
|
|
70
|
-
return this.fileMetaInfo.mode();
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get file modification time
|
|
74
|
-
*/
|
|
75
|
-
modTime() {
|
|
76
|
-
return this.fileMetaInfo.modTime();
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Check if this is a directory
|
|
80
|
-
*/
|
|
81
|
-
isDir() {
|
|
82
|
-
return this.fileMetaInfo.isDir();
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Get system info
|
|
86
|
-
*/
|
|
87
|
-
sys() {
|
|
88
|
-
return this.fileMetaInfo.sys();
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get relative filename
|
|
92
|
-
*/
|
|
93
|
-
relativeFilename() {
|
|
94
|
-
if (!this.initialized) {
|
|
95
|
-
this.lazyInit();
|
|
96
|
-
}
|
|
97
|
-
return this._path;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Open file for reading
|
|
101
|
-
*/
|
|
102
|
-
async open() {
|
|
103
|
-
return this.fileMetaInfo.open();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Get file content as bytes
|
|
107
|
-
*/
|
|
108
|
-
async content() {
|
|
109
|
-
if (this.contentCache) {
|
|
110
|
-
return this.contentCache;
|
|
111
|
-
}
|
|
112
|
-
try {
|
|
113
|
-
const file = await this.fileMetaInfo.open();
|
|
114
|
-
const fileInfo = await file.stat();
|
|
115
|
-
const buffer = new Uint8Array(fileInfo.size());
|
|
116
|
-
const result = await file.read(buffer);
|
|
117
|
-
await file.close();
|
|
118
|
-
this.contentCache = result.buffer;
|
|
119
|
-
return this.contentCache;
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
123
|
-
throw new type_1.PromptError(`Failed to read file content: ${message}`, 'CONTENT_READ_FAILED');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get file content as string
|
|
128
|
-
*/
|
|
129
|
-
async contentAsString() {
|
|
130
|
-
const bytes = await this.content();
|
|
131
|
-
return new TextDecoder('utf-8').decode(bytes);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get file path
|
|
135
|
-
*/
|
|
136
|
-
getPath() {
|
|
137
|
-
return this._path;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Get unique ID for this file
|
|
141
|
-
*/
|
|
142
|
-
async getUniqueID() {
|
|
143
|
-
if (this.uniqueID) {
|
|
144
|
-
return this.uniqueID;
|
|
145
|
-
}
|
|
146
|
-
const content = await this.content();
|
|
147
|
-
const hash = crypto.createHash('sha256');
|
|
148
|
-
hash.update(content);
|
|
149
|
-
this.uniqueID = hash.digest('hex');
|
|
150
|
-
return this.uniqueID;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Get file extension
|
|
154
|
-
*/
|
|
155
|
-
getExtension() {
|
|
156
|
-
return path.extname(this.name());
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Check if file is a prompt file based on extension
|
|
160
|
-
*/
|
|
161
|
-
isPromptFile() {
|
|
162
|
-
const ext = this.getExtension().toLowerCase();
|
|
163
|
-
return ['.md', '.txt', '.prompt'].includes(ext);
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Check if file has changed since last check
|
|
167
|
-
*/
|
|
168
|
-
hasChanged(lastModTime) {
|
|
169
|
-
return this.modTime() > lastModTime;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Copy file
|
|
173
|
-
*/
|
|
174
|
-
copy() {
|
|
175
|
-
const newFile = new File(this.fileMetaInfo);
|
|
176
|
-
newFile._path = this._path;
|
|
177
|
-
if (this.uniqueID) {
|
|
178
|
-
newFile.uniqueID = this.uniqueID;
|
|
179
|
-
}
|
|
180
|
-
newFile.initialized = this.initialized;
|
|
181
|
-
// Don't copy content cache to avoid memory issues
|
|
182
|
-
return newFile;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Clear content cache
|
|
186
|
-
*/
|
|
187
|
-
clearCache() {
|
|
188
|
-
delete this.contentCache;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Lazy initialization
|
|
192
|
-
*/
|
|
193
|
-
lazyInit() {
|
|
194
|
-
if (this.initialized) {
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
// Get the correct relative filename from FileMetaInfo
|
|
199
|
-
this._path = this.fileMetaInfo.relativeFilename();
|
|
200
|
-
this.initialized = true;
|
|
201
|
-
}
|
|
202
|
-
catch (error) {
|
|
203
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
204
|
-
throw new type_1.PromptError(`Failed to initialize file: ${message}`, 'FILE_INIT_FAILED');
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
exports.File = File;
|
|
209
|
-
/**
|
|
210
|
-
* Create a new File instance
|
|
211
|
-
*/
|
|
212
|
-
function newFile(fileMetaInfo) {
|
|
213
|
-
return new File(fileMetaInfo);
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Create a mock File for testing
|
|
217
|
-
*/
|
|
218
|
-
function createMockFile(name, content, modTime) {
|
|
219
|
-
const mockFileInfo = {
|
|
220
|
-
name: () => name,
|
|
221
|
-
size: () => content.length,
|
|
222
|
-
mode: () => 0o644,
|
|
223
|
-
modTime: () => modTime || new Date(),
|
|
224
|
-
isDir: () => false,
|
|
225
|
-
sys: () => null,
|
|
226
|
-
open: async () => {
|
|
227
|
-
return {
|
|
228
|
-
close: async () => { },
|
|
229
|
-
stat: async () => ({
|
|
230
|
-
name: () => name,
|
|
231
|
-
size: () => content.length,
|
|
232
|
-
mode: () => 0o644,
|
|
233
|
-
modTime: () => modTime || new Date(),
|
|
234
|
-
isDir: () => false,
|
|
235
|
-
sys: () => null,
|
|
236
|
-
}),
|
|
237
|
-
read: async (buffer) => {
|
|
238
|
-
const encoder = new TextEncoder();
|
|
239
|
-
const encoded = encoder.encode(content);
|
|
240
|
-
const bytesToCopy = Math.min(buffer.length, encoded.length);
|
|
241
|
-
buffer.set(encoded.slice(0, bytesToCopy));
|
|
242
|
-
return { bytesRead: bytesToCopy, buffer };
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
|
-
},
|
|
246
|
-
};
|
|
247
|
-
return new File(mockFileInfo);
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Check if a file path represents a prompt file
|
|
251
|
-
*/
|
|
252
|
-
function isPromptFile(filePath) {
|
|
253
|
-
const ext = path.extname(filePath).toLowerCase();
|
|
254
|
-
return ['.md', '.txt', '.prompt'].includes(ext);
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Extract prompt name from file path
|
|
258
|
-
*/
|
|
259
|
-
function extractPromptName(filePath) {
|
|
260
|
-
// Remove leading slash and file extension
|
|
261
|
-
const cleanPath = filePath.startsWith('/') ? filePath.substring(1) : filePath;
|
|
262
|
-
const ext = path.extname(cleanPath);
|
|
263
|
-
return ext ? cleanPath.replace(ext, '') : cleanPath;
|
|
264
|
-
}
|
|
265
|
-
//# sourceMappingURL=file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../internal/domain/prompt/vo/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { PromptRule } from '../type';
|
|
2
|
-
/**
|
|
3
|
-
* Rule value object for prompt processing rules
|
|
4
|
-
* TypeScript version of Go's Rule struct
|
|
5
|
-
*/
|
|
6
|
-
export declare class Rule implements PromptRule {
|
|
7
|
-
readonly name: string;
|
|
8
|
-
readonly pattern?: RegExp;
|
|
9
|
-
readonly transform?: (content: string) => string;
|
|
10
|
-
readonly validate?: (content: string) => boolean;
|
|
11
|
-
private readonly priority;
|
|
12
|
-
private readonly description?;
|
|
13
|
-
private readonly tags;
|
|
14
|
-
constructor(config: {
|
|
15
|
-
name: string;
|
|
16
|
-
pattern?: RegExp;
|
|
17
|
-
transform?: (content: string) => string;
|
|
18
|
-
validate?: (content: string) => boolean;
|
|
19
|
-
priority?: number;
|
|
20
|
-
description?: string;
|
|
21
|
-
tags?: string[];
|
|
22
|
-
});
|
|
23
|
-
/**
|
|
24
|
-
* Apply rule to content
|
|
25
|
-
*/
|
|
26
|
-
apply(content: string): string;
|
|
27
|
-
/**
|
|
28
|
-
* Check if rule applies to content
|
|
29
|
-
*/
|
|
30
|
-
appliesTo(content: string): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Get rule priority
|
|
33
|
-
*/
|
|
34
|
-
getPriority(): number;
|
|
35
|
-
/**
|
|
36
|
-
* Get rule description
|
|
37
|
-
*/
|
|
38
|
-
getDescription(): string;
|
|
39
|
-
/**
|
|
40
|
-
* Get rule tags
|
|
41
|
-
*/
|
|
42
|
-
getTags(): string[];
|
|
43
|
-
/**
|
|
44
|
-
* Check if rule has tag
|
|
45
|
-
*/
|
|
46
|
-
hasTag(tag: string): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Get rule summary
|
|
49
|
-
*/
|
|
50
|
-
getSummary(): {
|
|
51
|
-
name: string;
|
|
52
|
-
priority: number;
|
|
53
|
-
description: string;
|
|
54
|
-
tags: string[];
|
|
55
|
-
hasPattern: boolean;
|
|
56
|
-
hasTransform: boolean;
|
|
57
|
-
hasValidate: boolean;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Create a copy of this rule
|
|
61
|
-
*/
|
|
62
|
-
copy(): Rule;
|
|
63
|
-
/**
|
|
64
|
-
* Check if two rules are equal
|
|
65
|
-
*/
|
|
66
|
-
equals(other: Rule): boolean;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Create a new Rule instance
|
|
70
|
-
*/
|
|
71
|
-
export declare function newRule(config: {
|
|
72
|
-
name: string;
|
|
73
|
-
pattern?: RegExp;
|
|
74
|
-
transform?: (content: string) => string;
|
|
75
|
-
validate?: (content: string) => boolean;
|
|
76
|
-
priority?: number;
|
|
77
|
-
description?: string;
|
|
78
|
-
tags?: string[];
|
|
79
|
-
}): Rule;
|
|
80
|
-
/**
|
|
81
|
-
* Predefined common rules
|
|
82
|
-
*/
|
|
83
|
-
export declare const CommonRules: {
|
|
84
|
-
/**
|
|
85
|
-
* Rule to trim whitespace
|
|
86
|
-
*/
|
|
87
|
-
TRIM_WHITESPACE: Rule;
|
|
88
|
-
/**
|
|
89
|
-
* Rule to normalize line endings
|
|
90
|
-
*/
|
|
91
|
-
NORMALIZE_LINE_ENDINGS: Rule;
|
|
92
|
-
/**
|
|
93
|
-
* Rule to remove empty lines
|
|
94
|
-
*/
|
|
95
|
-
REMOVE_EMPTY_LINES: Rule;
|
|
96
|
-
/**
|
|
97
|
-
* Rule to validate markdown format
|
|
98
|
-
*/
|
|
99
|
-
VALIDATE_MARKDOWN: Rule;
|
|
100
|
-
/**
|
|
101
|
-
* Rule to add frontmatter if missing
|
|
102
|
-
*/
|
|
103
|
-
ADD_FRONTMATTER: Rule;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Rule chain for applying multiple rules in order
|
|
107
|
-
*/
|
|
108
|
-
export declare class RuleChain {
|
|
109
|
-
private rules;
|
|
110
|
-
/**
|
|
111
|
-
* Add rule to chain
|
|
112
|
-
*/
|
|
113
|
-
addRule(rule: Rule): RuleChain;
|
|
114
|
-
/**
|
|
115
|
-
* Remove rule from chain
|
|
116
|
-
*/
|
|
117
|
-
removeRule(name: string): boolean;
|
|
118
|
-
/**
|
|
119
|
-
* Apply all rules to content
|
|
120
|
-
*/
|
|
121
|
-
apply(content: string): string;
|
|
122
|
-
/**
|
|
123
|
-
* Get all rules
|
|
124
|
-
*/
|
|
125
|
-
getRules(): Rule[];
|
|
126
|
-
/**
|
|
127
|
-
* Clear all rules
|
|
128
|
-
*/
|
|
129
|
-
clear(): void;
|
|
130
|
-
/**
|
|
131
|
-
* Sort rules by priority (higher priority first)
|
|
132
|
-
*/
|
|
133
|
-
private sortByPriority;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Create a new RuleChain instance
|
|
137
|
-
*/
|
|
138
|
-
export declare function newRuleChain(): RuleChain;
|
|
139
|
-
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/prompt/vo/rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuleChain = exports.CommonRules = exports.Rule = void 0;
|
|
4
|
-
exports.newRule = newRule;
|
|
5
|
-
exports.newRuleChain = newRuleChain;
|
|
6
|
-
const type_1 = require("../type");
|
|
7
|
-
/**
|
|
8
|
-
* Rule value object for prompt processing rules
|
|
9
|
-
* TypeScript version of Go's Rule struct
|
|
10
|
-
*/
|
|
11
|
-
class Rule {
|
|
12
|
-
constructor(config) {
|
|
13
|
-
this.name = config.name;
|
|
14
|
-
if (config.pattern) {
|
|
15
|
-
this.pattern = config.pattern;
|
|
16
|
-
}
|
|
17
|
-
if (config.transform) {
|
|
18
|
-
this.transform = config.transform;
|
|
19
|
-
}
|
|
20
|
-
if (config.validate) {
|
|
21
|
-
this.validate = config.validate;
|
|
22
|
-
}
|
|
23
|
-
this.priority = config.priority || 0;
|
|
24
|
-
if (config.description) {
|
|
25
|
-
this.description = config.description;
|
|
26
|
-
}
|
|
27
|
-
this.tags = config.tags || [];
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Apply rule to content
|
|
31
|
-
*/
|
|
32
|
-
apply(content) {
|
|
33
|
-
// First validate if validation function is provided
|
|
34
|
-
if (this.validate && !this.validate(content)) {
|
|
35
|
-
throw new type_1.PromptError(`Content validation failed for rule: ${this.name}`, 'RULE_VALIDATION_FAILED');
|
|
36
|
-
}
|
|
37
|
-
// Check pattern match if pattern is provided
|
|
38
|
-
if (this.pattern && !this.pattern.test(content)) {
|
|
39
|
-
return content; // No transformation if pattern doesn't match
|
|
40
|
-
}
|
|
41
|
-
// Apply transformation if provided
|
|
42
|
-
if (this.transform) {
|
|
43
|
-
try {
|
|
44
|
-
return this.transform(content);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
48
|
-
throw new type_1.PromptError(`Content transformation failed for rule ${this.name}: ${message}`, 'RULE_TRANSFORM_FAILED');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return content;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Check if rule applies to content
|
|
55
|
-
*/
|
|
56
|
-
appliesTo(content) {
|
|
57
|
-
if (this.pattern) {
|
|
58
|
-
return this.pattern.test(content);
|
|
59
|
-
}
|
|
60
|
-
return true; // No pattern means applies to all content
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get rule priority
|
|
64
|
-
*/
|
|
65
|
-
getPriority() {
|
|
66
|
-
return this.priority;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get rule description
|
|
70
|
-
*/
|
|
71
|
-
getDescription() {
|
|
72
|
-
return this.description || `Rule: ${this.name}`;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get rule tags
|
|
76
|
-
*/
|
|
77
|
-
getTags() {
|
|
78
|
-
return [...this.tags];
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Check if rule has tag
|
|
82
|
-
*/
|
|
83
|
-
hasTag(tag) {
|
|
84
|
-
return this.tags.includes(tag);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Get rule summary
|
|
88
|
-
*/
|
|
89
|
-
getSummary() {
|
|
90
|
-
return {
|
|
91
|
-
name: this.name,
|
|
92
|
-
priority: this.priority,
|
|
93
|
-
description: this.getDescription(),
|
|
94
|
-
tags: this.getTags(),
|
|
95
|
-
hasPattern: !!this.pattern,
|
|
96
|
-
hasTransform: !!this.transform,
|
|
97
|
-
hasValidate: !!this.validate,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Create a copy of this rule
|
|
102
|
-
*/
|
|
103
|
-
copy() {
|
|
104
|
-
const config = {
|
|
105
|
-
name: this.name,
|
|
106
|
-
priority: this.priority,
|
|
107
|
-
tags: [...this.tags],
|
|
108
|
-
};
|
|
109
|
-
if (this.pattern) {
|
|
110
|
-
config.pattern = this.pattern;
|
|
111
|
-
}
|
|
112
|
-
if (this.transform) {
|
|
113
|
-
config.transform = this.transform;
|
|
114
|
-
}
|
|
115
|
-
if (this.validate) {
|
|
116
|
-
config.validate = this.validate;
|
|
117
|
-
}
|
|
118
|
-
if (this.description) {
|
|
119
|
-
config.description = this.description;
|
|
120
|
-
}
|
|
121
|
-
return new Rule(config);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Check if two rules are equal
|
|
125
|
-
*/
|
|
126
|
-
equals(other) {
|
|
127
|
-
return this.name === other.name &&
|
|
128
|
-
this.priority === other.priority &&
|
|
129
|
-
this.description === other.description &&
|
|
130
|
-
this.pattern?.source === other.pattern?.source &&
|
|
131
|
-
JSON.stringify(this.tags.sort()) === JSON.stringify(other.tags.sort());
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
exports.Rule = Rule;
|
|
135
|
-
/**
|
|
136
|
-
* Create a new Rule instance
|
|
137
|
-
*/
|
|
138
|
-
function newRule(config) {
|
|
139
|
-
return new Rule(config);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Predefined common rules
|
|
143
|
-
*/
|
|
144
|
-
exports.CommonRules = {
|
|
145
|
-
/**
|
|
146
|
-
* Rule to trim whitespace
|
|
147
|
-
*/
|
|
148
|
-
TRIM_WHITESPACE: newRule({
|
|
149
|
-
name: 'trim-whitespace',
|
|
150
|
-
description: 'Remove leading and trailing whitespace',
|
|
151
|
-
transform: (content) => content.trim(),
|
|
152
|
-
tags: ['formatting', 'cleanup'],
|
|
153
|
-
}),
|
|
154
|
-
/**
|
|
155
|
-
* Rule to normalize line endings
|
|
156
|
-
*/
|
|
157
|
-
NORMALIZE_LINE_ENDINGS: newRule({
|
|
158
|
-
name: 'normalize-line-endings',
|
|
159
|
-
description: 'Normalize line endings to LF',
|
|
160
|
-
transform: (content) => content.replace(/\r\n/g, '\n').replace(/\r/g, '\n'),
|
|
161
|
-
tags: ['formatting', 'normalization'],
|
|
162
|
-
}),
|
|
163
|
-
/**
|
|
164
|
-
* Rule to remove empty lines
|
|
165
|
-
*/
|
|
166
|
-
REMOVE_EMPTY_LINES: newRule({
|
|
167
|
-
name: 'remove-empty-lines',
|
|
168
|
-
description: 'Remove empty lines from content',
|
|
169
|
-
transform: (content) => content.split('\n').filter(line => line.trim()).join('\n'),
|
|
170
|
-
tags: ['formatting', 'cleanup'],
|
|
171
|
-
}),
|
|
172
|
-
/**
|
|
173
|
-
* Rule to validate markdown format
|
|
174
|
-
*/
|
|
175
|
-
VALIDATE_MARKDOWN: newRule({
|
|
176
|
-
name: 'validate-markdown',
|
|
177
|
-
description: 'Validate basic markdown format',
|
|
178
|
-
pattern: /\.md$/i,
|
|
179
|
-
validate: (content) => {
|
|
180
|
-
// Basic markdown validation - check for headers, links, etc.
|
|
181
|
-
const hasHeaders = /^#{1,6}\s/.test(content);
|
|
182
|
-
const hasValidLinks = !content.includes('](') || /\[.+\]\(.+\)/.test(content);
|
|
183
|
-
return hasValidLinks;
|
|
184
|
-
},
|
|
185
|
-
tags: ['validation', 'markdown'],
|
|
186
|
-
}),
|
|
187
|
-
/**
|
|
188
|
-
* Rule to add frontmatter if missing
|
|
189
|
-
*/
|
|
190
|
-
ADD_FRONTMATTER: newRule({
|
|
191
|
-
name: 'add-frontmatter',
|
|
192
|
-
description: 'Add basic frontmatter to markdown files',
|
|
193
|
-
pattern: /\.md$/i,
|
|
194
|
-
transform: (content) => {
|
|
195
|
-
if (content.startsWith('---')) {
|
|
196
|
-
return content;
|
|
197
|
-
}
|
|
198
|
-
const frontmatter = `---\ntitle: "Prompt"\ndate: ${new Date().toISOString().split('T')[0]}\n---\n\n`;
|
|
199
|
-
return frontmatter + content;
|
|
200
|
-
},
|
|
201
|
-
tags: ['formatting', 'markdown', 'frontmatter'],
|
|
202
|
-
}),
|
|
203
|
-
};
|
|
204
|
-
/**
|
|
205
|
-
* Rule chain for applying multiple rules in order
|
|
206
|
-
*/
|
|
207
|
-
class RuleChain {
|
|
208
|
-
constructor() {
|
|
209
|
-
this.rules = [];
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Add rule to chain
|
|
213
|
-
*/
|
|
214
|
-
addRule(rule) {
|
|
215
|
-
this.rules.push(rule);
|
|
216
|
-
this.sortByPriority();
|
|
217
|
-
return this;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Remove rule from chain
|
|
221
|
-
*/
|
|
222
|
-
removeRule(name) {
|
|
223
|
-
const index = this.rules.findIndex(rule => rule.name === name);
|
|
224
|
-
if (index >= 0) {
|
|
225
|
-
this.rules.splice(index, 1);
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
return false;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Apply all rules to content
|
|
232
|
-
*/
|
|
233
|
-
apply(content) {
|
|
234
|
-
let result = content;
|
|
235
|
-
for (const rule of this.rules) {
|
|
236
|
-
if (rule.appliesTo(result)) {
|
|
237
|
-
result = rule.apply(result);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
return result;
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Get all rules
|
|
244
|
-
*/
|
|
245
|
-
getRules() {
|
|
246
|
-
return [...this.rules];
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Clear all rules
|
|
250
|
-
*/
|
|
251
|
-
clear() {
|
|
252
|
-
this.rules = [];
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Sort rules by priority (higher priority first)
|
|
256
|
-
*/
|
|
257
|
-
sortByPriority() {
|
|
258
|
-
this.rules.sort((a, b) => b.getPriority() - a.getPriority());
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
exports.RuleChain = RuleChain;
|
|
262
|
-
/**
|
|
263
|
-
* Create a new RuleChain instance
|
|
264
|
-
*/
|
|
265
|
-
function newRuleChain() {
|
|
266
|
-
return new RuleChain();
|
|
267
|
-
}
|
|
268
|
-
//# sourceMappingURL=rule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../../../internal/domain/prompt/vo/rule.ts"],"names":[],"mappings":"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"}
|