@mdfriday/foundry 25.7.1 → 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.
Files changed (147) hide show
  1. package/README.md +4 -0
  2. package/dist/internal/application/incremental-build-coordinator.d.ts +69 -0
  3. package/dist/internal/application/incremental-build-coordinator.d.ts.map +1 -0
  4. package/dist/internal/application/incremental-build-coordinator.js +184 -0
  5. package/dist/internal/application/incremental-build-coordinator.js.map +1 -0
  6. package/dist/internal/application/incremental-ssg.d.ts +8 -0
  7. package/dist/internal/application/incremental-ssg.d.ts.map +1 -0
  8. package/dist/internal/application/incremental-ssg.js +23 -0
  9. package/dist/internal/application/incremental-ssg.js.map +1 -0
  10. package/dist/internal/application/ssg.d.ts +19 -1
  11. package/dist/internal/application/ssg.d.ts.map +1 -1
  12. package/dist/internal/application/ssg.js +28 -4
  13. package/dist/internal/application/ssg.js.map +1 -1
  14. package/dist/internal/application/test-incremental-ssg.d.ts +9 -0
  15. package/dist/internal/application/test-incremental-ssg.d.ts.map +1 -0
  16. package/dist/internal/application/test-incremental-ssg.js +80 -0
  17. package/dist/internal/application/test-incremental-ssg.js.map +1 -0
  18. package/dist/internal/application/test-ssg.d.ts.map +1 -1
  19. package/dist/internal/application/test-ssg.js.map +1 -1
  20. package/dist/internal/domain/content/entity/content.d.ts +6 -2
  21. package/dist/internal/domain/content/entity/content.d.ts.map +1 -1
  22. package/dist/internal/domain/content/entity/content.js +51 -16
  23. package/dist/internal/domain/content/entity/content.js.map +1 -1
  24. package/dist/internal/domain/content/entity/pagebuilder.d.ts.map +1 -1
  25. package/dist/internal/domain/content/entity/pagebuilder.js +5 -1
  26. package/dist/internal/domain/content/entity/pagebuilder.js.map +1 -1
  27. package/dist/internal/domain/content/entity/pagecollector.d.ts.map +1 -1
  28. package/dist/internal/domain/content/entity/pagecollector.js +10 -8
  29. package/dist/internal/domain/content/entity/pagecollector.js.map +1 -1
  30. package/dist/internal/domain/content/entity/pagesource.d.ts.map +1 -1
  31. package/dist/internal/domain/content/entity/pagesource.js +1 -2
  32. package/dist/internal/domain/content/entity/pagesource.js.map +1 -1
  33. package/dist/internal/domain/content/type.d.ts +3 -0
  34. package/dist/internal/domain/content/type.d.ts.map +1 -1
  35. package/dist/internal/domain/content/type.js.map +1 -1
  36. package/dist/internal/domain/content/vo/identity.d.ts +4 -0
  37. package/dist/internal/domain/content/vo/identity.d.ts.map +1 -1
  38. package/dist/internal/domain/content/vo/identity.js +17 -0
  39. package/dist/internal/domain/content/vo/identity.js.map +1 -1
  40. package/dist/internal/domain/fs/entity/basefs.d.ts.map +1 -1
  41. package/dist/internal/domain/fs/entity/basefs.js +21 -9
  42. package/dist/internal/domain/fs/entity/basefs.js.map +1 -1
  43. package/dist/internal/domain/fs/entity/fs.d.ts +1 -0
  44. package/dist/internal/domain/fs/entity/fs.d.ts.map +1 -1
  45. package/dist/internal/domain/fs/entity/fs.js +4 -0
  46. package/dist/internal/domain/fs/entity/fs.js.map +1 -1
  47. package/dist/internal/domain/fs/vo/file.d.ts +1 -0
  48. package/dist/internal/domain/fs/vo/file.d.ts.map +1 -1
  49. package/dist/internal/domain/fs/vo/file.js +6 -3
  50. package/dist/internal/domain/fs/vo/file.js.map +1 -1
  51. package/dist/internal/domain/fs/vo/fileinfo.d.ts.map +1 -1
  52. package/dist/internal/domain/fs/vo/fileinfo.js +1 -2
  53. package/dist/internal/domain/fs/vo/fileinfo.js.map +1 -1
  54. package/dist/internal/domain/fs/vo/filemeta.d.ts +0 -4
  55. package/dist/internal/domain/fs/vo/filemeta.d.ts.map +1 -1
  56. package/dist/internal/domain/fs/vo/filemeta.js +0 -9
  57. package/dist/internal/domain/fs/vo/filemeta.js.map +1 -1
  58. package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts +3 -0
  59. package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts.map +1 -0
  60. package/dist/internal/domain/fs/vo/incremental-file-collector.js +37 -0
  61. package/dist/internal/domain/fs/vo/incremental-file-collector.js.map +1 -0
  62. package/dist/internal/domain/fs/vo/walkway.d.ts.map +1 -1
  63. package/dist/internal/domain/fs/vo/walkway.js +1 -4
  64. package/dist/internal/domain/fs/vo/walkway.js.map +1 -1
  65. package/dist/internal/domain/markdown/type.d.ts +1 -0
  66. package/dist/internal/domain/markdown/type.d.ts.map +1 -1
  67. package/dist/internal/domain/markdown/type.js.map +1 -1
  68. package/dist/internal/domain/markdown/vo/shortcode.d.ts +1 -0
  69. package/dist/internal/domain/markdown/vo/shortcode.d.ts.map +1 -1
  70. package/dist/internal/domain/markdown/vo/shortcode.js +3 -0
  71. package/dist/internal/domain/markdown/vo/shortcode.js.map +1 -1
  72. package/dist/internal/domain/site/entity/page.d.ts +4 -2
  73. package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
  74. package/dist/internal/domain/site/entity/page.js +6 -0
  75. package/dist/internal/domain/site/entity/page.js.map +1 -1
  76. package/dist/internal/domain/site/entity/site.d.ts +2 -1
  77. package/dist/internal/domain/site/entity/site.d.ts.map +1 -1
  78. package/dist/internal/domain/site/entity/site.js +9 -1
  79. package/dist/internal/domain/site/entity/site.js.map +1 -1
  80. package/dist/internal/domain/template/entity/template.d.ts.map +1 -1
  81. package/dist/internal/domain/template/entity/template.js +3 -0
  82. package/dist/internal/domain/template/entity/template.js.map +1 -1
  83. package/dist/pkg/log/logger.d.ts.map +1 -1
  84. package/dist/pkg/log/logger.js +1 -0
  85. package/dist/pkg/log/logger.js.map +1 -1
  86. package/dist/pkg/log/manager.js +1 -1
  87. package/dist/pkg/web/server/livereload-server.d.ts +23 -0
  88. package/dist/pkg/web/server/livereload-server.d.ts.map +1 -0
  89. package/dist/pkg/web/server/livereload-server.js +370 -0
  90. package/dist/pkg/web/server/livereload-server.js.map +1 -0
  91. package/dist/pkg/web/server/types.d.ts +25 -0
  92. package/dist/pkg/web/server/types.d.ts.map +1 -0
  93. package/dist/pkg/web/server/types.js +3 -0
  94. package/dist/pkg/web/server/types.js.map +1 -0
  95. package/dist/pkg/web/watcher/content-file-watcher.d.ts +20 -0
  96. package/dist/pkg/web/watcher/content-file-watcher.d.ts.map +1 -0
  97. package/dist/pkg/web/watcher/content-file-watcher.js +154 -0
  98. package/dist/pkg/web/watcher/content-file-watcher.js.map +1 -0
  99. package/dist/pkg/web/watcher/types.d.ts +18 -0
  100. package/dist/pkg/web/watcher/types.d.ts.map +1 -0
  101. package/dist/pkg/web/watcher/types.js +3 -0
  102. package/dist/pkg/web/watcher/types.js.map +1 -0
  103. package/package.json +7 -2
  104. package/dist/internal/domain/markdown/examples/obsidian-example.d.ts +0 -79
  105. package/dist/internal/domain/markdown/examples/obsidian-example.d.ts.map +0 -1
  106. package/dist/internal/domain/markdown/examples/obsidian-example.js +0 -302
  107. package/dist/internal/domain/markdown/examples/obsidian-example.js.map +0 -1
  108. package/dist/internal/domain/markdown/examples/shortcode.d.ts +0 -43
  109. package/dist/internal/domain/markdown/examples/shortcode.d.ts.map +0 -1
  110. package/dist/internal/domain/markdown/examples/shortcode.js +0 -99
  111. package/dist/internal/domain/markdown/examples/shortcode.js.map +0 -1
  112. package/dist/internal/domain/prompt/entity/collector.d.ts +0 -88
  113. package/dist/internal/domain/prompt/entity/collector.d.ts.map +0 -1
  114. package/dist/internal/domain/prompt/entity/collector.js +0 -254
  115. package/dist/internal/domain/prompt/entity/collector.js.map +0 -1
  116. package/dist/internal/domain/prompt/entity/finder.d.ts +0 -88
  117. package/dist/internal/domain/prompt/entity/finder.d.ts.map +0 -1
  118. package/dist/internal/domain/prompt/entity/finder.js +0 -293
  119. package/dist/internal/domain/prompt/entity/finder.js.map +0 -1
  120. package/dist/internal/domain/prompt/entity/hub.d.ts +0 -112
  121. package/dist/internal/domain/prompt/entity/hub.d.ts.map +0 -1
  122. package/dist/internal/domain/prompt/entity/hub.js +0 -259
  123. package/dist/internal/domain/prompt/entity/hub.js.map +0 -1
  124. package/dist/internal/domain/prompt/entity/prompt.d.ts +0 -133
  125. package/dist/internal/domain/prompt/entity/prompt.d.ts.map +0 -1
  126. package/dist/internal/domain/prompt/entity/prompt.js +0 -237
  127. package/dist/internal/domain/prompt/entity/prompt.js.map +0 -1
  128. package/dist/internal/domain/prompt/factory/prompt.d.ts +0 -55
  129. package/dist/internal/domain/prompt/factory/prompt.d.ts.map +0 -1
  130. package/dist/internal/domain/prompt/factory/prompt.js +0 -212
  131. package/dist/internal/domain/prompt/factory/prompt.js.map +0 -1
  132. package/dist/internal/domain/prompt/index.d.ts +0 -10
  133. package/dist/internal/domain/prompt/index.d.ts.map +0 -1
  134. package/dist/internal/domain/prompt/index.js +0 -72
  135. package/dist/internal/domain/prompt/index.js.map +0 -1
  136. package/dist/internal/domain/prompt/type.d.ts +0 -180
  137. package/dist/internal/domain/prompt/type.d.ts.map +0 -1
  138. package/dist/internal/domain/prompt/type.js +0 -23
  139. package/dist/internal/domain/prompt/type.js.map +0 -1
  140. package/dist/internal/domain/prompt/vo/file.d.ts +0 -103
  141. package/dist/internal/domain/prompt/vo/file.d.ts.map +0 -1
  142. package/dist/internal/domain/prompt/vo/file.js +0 -265
  143. package/dist/internal/domain/prompt/vo/file.js.map +0 -1
  144. package/dist/internal/domain/prompt/vo/rule.d.ts +0 -139
  145. package/dist/internal/domain/prompt/vo/rule.d.ts.map +0 -1
  146. package/dist/internal/domain/prompt/vo/rule.js +0 -268
  147. package/dist/internal/domain/prompt/vo/rule.js.map +0 -1
@@ -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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"}