@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.
- 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.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/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/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 +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 +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,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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"}
|