marlarky 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +489 -0
- package/dist/adapters/faker-js-adapter.d.ts +44 -0
- package/dist/adapters/faker-js-adapter.d.ts.map +1 -0
- package/dist/adapters/faker-js-adapter.js +46 -0
- package/dist/adapters/faker-js-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +3 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +3 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/simple-faker-adapter.d.ts +22 -0
- package/dist/adapters/simple-faker-adapter.d.ts.map +1 -0
- package/dist/adapters/simple-faker-adapter.js +54 -0
- package/dist/adapters/simple-faker-adapter.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +588 -0
- package/dist/cli.js.map +1 -0
- package/dist/defaults/index.d.ts +2 -0
- package/dist/defaults/index.d.ts.map +1 -0
- package/dist/defaults/index.js +2 -0
- package/dist/defaults/index.js.map +1 -0
- package/dist/defaults/word-lists.d.ts +22 -0
- package/dist/defaults/word-lists.d.ts.map +1 -0
- package/dist/defaults/word-lists.js +124 -0
- package/dist/defaults/word-lists.js.map +1 -0
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +2 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/text-generator.d.ts +93 -0
- package/dist/generator/text-generator.d.ts.map +1 -0
- package/dist/generator/text-generator.js +411 -0
- package/dist/generator/text-generator.js.map +1 -0
- package/dist/generator/text-generator.test.d.ts +2 -0
- package/dist/generator/text-generator.test.d.ts.map +1 -0
- package/dist/generator/text-generator.test.js +151 -0
- package/dist/generator/text-generator.test.js.map +1 -0
- package/dist/grammar/index.d.ts +5 -0
- package/dist/grammar/index.d.ts.map +1 -0
- package/dist/grammar/index.js +3 -0
- package/dist/grammar/index.js.map +1 -0
- package/dist/grammar/phrase-builders.d.ts +72 -0
- package/dist/grammar/phrase-builders.d.ts.map +1 -0
- package/dist/grammar/phrase-builders.js +241 -0
- package/dist/grammar/phrase-builders.js.map +1 -0
- package/dist/grammar/sentence-templates.d.ts +67 -0
- package/dist/grammar/sentence-templates.d.ts.map +1 -0
- package/dist/grammar/sentence-templates.js +272 -0
- package/dist/grammar/sentence-templates.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/faker-adapter.d.ts +25 -0
- package/dist/interfaces/faker-adapter.d.ts.map +1 -0
- package/dist/interfaces/faker-adapter.js +2 -0
- package/dist/interfaces/faker-adapter.js.map +1 -0
- package/dist/interfaces/index.d.ts +4 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/lexicon-store.d.ts +39 -0
- package/dist/interfaces/lexicon-store.d.ts.map +1 -0
- package/dist/interfaces/lexicon-store.js +2 -0
- package/dist/interfaces/lexicon-store.js.map +1 -0
- package/dist/interfaces/rng.d.ts +25 -0
- package/dist/interfaces/rng.d.ts.map +1 -0
- package/dist/interfaces/rng.js +2 -0
- package/dist/interfaces/rng.js.map +1 -0
- package/dist/lexicon/index.d.ts +4 -0
- package/dist/lexicon/index.d.ts.map +1 -0
- package/dist/lexicon/index.js +4 -0
- package/dist/lexicon/index.js.map +1 -0
- package/dist/lexicon/loader.d.ts +24 -0
- package/dist/lexicon/loader.d.ts.map +1 -0
- package/dist/lexicon/loader.js +47 -0
- package/dist/lexicon/loader.js.map +1 -0
- package/dist/lexicon/store.d.ts +39 -0
- package/dist/lexicon/store.d.ts.map +1 -0
- package/dist/lexicon/store.js +291 -0
- package/dist/lexicon/store.js.map +1 -0
- package/dist/lexicon/validator.d.ts +10 -0
- package/dist/lexicon/validator.d.ts.map +1 -0
- package/dist/lexicon/validator.js +273 -0
- package/dist/lexicon/validator.js.map +1 -0
- package/dist/morphology/articles.d.ts +17 -0
- package/dist/morphology/articles.d.ts.map +1 -0
- package/dist/morphology/articles.js +66 -0
- package/dist/morphology/articles.js.map +1 -0
- package/dist/morphology/articles.test.d.ts +2 -0
- package/dist/morphology/articles.test.d.ts.map +1 -0
- package/dist/morphology/articles.test.js +56 -0
- package/dist/morphology/articles.test.js.map +1 -0
- package/dist/morphology/conjugate.d.ts +46 -0
- package/dist/morphology/conjugate.d.ts.map +1 -0
- package/dist/morphology/conjugate.js +337 -0
- package/dist/morphology/conjugate.js.map +1 -0
- package/dist/morphology/conjugate.test.d.ts +2 -0
- package/dist/morphology/conjugate.test.d.ts.map +1 -0
- package/dist/morphology/conjugate.test.js +168 -0
- package/dist/morphology/conjugate.test.js.map +1 -0
- package/dist/morphology/index.d.ts +6 -0
- package/dist/morphology/index.d.ts.map +1 -0
- package/dist/morphology/index.js +9 -0
- package/dist/morphology/index.js.map +1 -0
- package/dist/morphology/normalize.d.ts +52 -0
- package/dist/morphology/normalize.d.ts.map +1 -0
- package/dist/morphology/normalize.js +127 -0
- package/dist/morphology/normalize.js.map +1 -0
- package/dist/morphology/pluralize.d.ts +17 -0
- package/dist/morphology/pluralize.d.ts.map +1 -0
- package/dist/morphology/pluralize.js +186 -0
- package/dist/morphology/pluralize.js.map +1 -0
- package/dist/morphology/pluralize.test.d.ts +2 -0
- package/dist/morphology/pluralize.test.d.ts.map +1 -0
- package/dist/morphology/pluralize.test.js +86 -0
- package/dist/morphology/pluralize.test.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/word-provider.d.ts +125 -0
- package/dist/providers/word-provider.d.ts.map +1 -0
- package/dist/providers/word-provider.js +266 -0
- package/dist/providers/word-provider.js.map +1 -0
- package/dist/rng/index.d.ts +2 -0
- package/dist/rng/index.d.ts.map +1 -0
- package/dist/rng/index.js +2 -0
- package/dist/rng/index.js.map +1 -0
- package/dist/rng/seedable-rng.d.ts +19 -0
- package/dist/rng/seedable-rng.d.ts.map +1 -0
- package/dist/rng/seedable-rng.js +77 -0
- package/dist/rng/seedable-rng.js.map +1 -0
- package/dist/rng/seedable-rng.test.d.ts +2 -0
- package/dist/rng/seedable-rng.test.d.ts.map +1 -0
- package/dist/rng/seedable-rng.test.js +165 -0
- package/dist/rng/seedable-rng.test.js.map +1 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/rule-engine.d.ts +78 -0
- package/dist/rules/rule-engine.d.ts.map +1 -0
- package/dist/rules/rule-engine.js +271 -0
- package/dist/rules/rule-engine.js.map +1 -0
- package/dist/transforms/config-merge.d.ts +19 -0
- package/dist/transforms/config-merge.d.ts.map +1 -0
- package/dist/transforms/config-merge.js +88 -0
- package/dist/transforms/config-merge.js.map +1 -0
- package/dist/transforms/config-merge.test.d.ts +2 -0
- package/dist/transforms/config-merge.test.d.ts.map +1 -0
- package/dist/transforms/config-merge.test.js +91 -0
- package/dist/transforms/config-merge.test.js.map +1 -0
- package/dist/transforms/default-registry.d.ts +10 -0
- package/dist/transforms/default-registry.d.ts.map +1 -0
- package/dist/transforms/default-registry.js +17 -0
- package/dist/transforms/default-registry.js.map +1 -0
- package/dist/transforms/index.d.ts +15 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +20 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/pipeline.d.ts +28 -0
- package/dist/transforms/pipeline.d.ts.map +1 -0
- package/dist/transforms/pipeline.js +176 -0
- package/dist/transforms/pipeline.js.map +1 -0
- package/dist/transforms/pipeline.test.d.ts +2 -0
- package/dist/transforms/pipeline.test.d.ts.map +1 -0
- package/dist/transforms/pipeline.test.js +175 -0
- package/dist/transforms/pipeline.test.js.map +1 -0
- package/dist/transforms/protection.d.ts +16 -0
- package/dist/transforms/protection.d.ts.map +1 -0
- package/dist/transforms/protection.js +97 -0
- package/dist/transforms/protection.js.map +1 -0
- package/dist/transforms/protection.test.d.ts +2 -0
- package/dist/transforms/protection.test.d.ts.map +1 -0
- package/dist/transforms/protection.test.js +79 -0
- package/dist/transforms/protection.test.js.map +1 -0
- package/dist/transforms/registry.d.ts +25 -0
- package/dist/transforms/registry.d.ts.map +1 -0
- package/dist/transforms/registry.js +32 -0
- package/dist/transforms/registry.js.map +1 -0
- package/dist/transforms/registry.test.d.ts +2 -0
- package/dist/transforms/registry.test.d.ts.map +1 -0
- package/dist/transforms/registry.test.js +64 -0
- package/dist/transforms/registry.test.js.map +1 -0
- package/dist/transforms/tokenizer.d.ts +26 -0
- package/dist/transforms/tokenizer.d.ts.map +1 -0
- package/dist/transforms/tokenizer.js +137 -0
- package/dist/transforms/tokenizer.js.map +1 -0
- package/dist/transforms/tokenizer.test.d.ts +2 -0
- package/dist/transforms/tokenizer.test.d.ts.map +1 -0
- package/dist/transforms/tokenizer.test.js +85 -0
- package/dist/transforms/tokenizer.test.js.map +1 -0
- package/dist/transforms/transforms/biz-jargon.d.ts +7 -0
- package/dist/transforms/transforms/biz-jargon.d.ts.map +1 -0
- package/dist/transforms/transforms/biz-jargon.js +117 -0
- package/dist/transforms/transforms/biz-jargon.js.map +1 -0
- package/dist/transforms/transforms/emoji.d.ts +7 -0
- package/dist/transforms/transforms/emoji.d.ts.map +1 -0
- package/dist/transforms/transforms/emoji.js +127 -0
- package/dist/transforms/transforms/emoji.js.map +1 -0
- package/dist/transforms/transforms/index.d.ts +17 -0
- package/dist/transforms/transforms/index.d.ts.map +1 -0
- package/dist/transforms/transforms/index.js +37 -0
- package/dist/transforms/transforms/index.js.map +1 -0
- package/dist/transforms/transforms/leet.d.ts +7 -0
- package/dist/transforms/transforms/leet.d.ts.map +1 -0
- package/dist/transforms/transforms/leet.js +109 -0
- package/dist/transforms/transforms/leet.js.map +1 -0
- package/dist/transforms/transforms/mock-case.d.ts +7 -0
- package/dist/transforms/transforms/mock-case.d.ts.map +1 -0
- package/dist/transforms/transforms/mock-case.js +116 -0
- package/dist/transforms/transforms/mock-case.js.map +1 -0
- package/dist/transforms/transforms/pig-latin.d.ts +7 -0
- package/dist/transforms/transforms/pig-latin.d.ts.map +1 -0
- package/dist/transforms/transforms/pig-latin.js +132 -0
- package/dist/transforms/transforms/pig-latin.js.map +1 -0
- package/dist/transforms/transforms/pig-latin.test.d.ts +2 -0
- package/dist/transforms/transforms/pig-latin.test.d.ts.map +1 -0
- package/dist/transforms/transforms/pig-latin.test.js +77 -0
- package/dist/transforms/transforms/pig-latin.test.js.map +1 -0
- package/dist/transforms/transforms/pirate.d.ts +7 -0
- package/dist/transforms/transforms/pirate.d.ts.map +1 -0
- package/dist/transforms/transforms/pirate.js +150 -0
- package/dist/transforms/transforms/pirate.js.map +1 -0
- package/dist/transforms/transforms/redact.d.ts +7 -0
- package/dist/transforms/transforms/redact.d.ts.map +1 -0
- package/dist/transforms/transforms/redact.js +109 -0
- package/dist/transforms/transforms/redact.js.map +1 -0
- package/dist/transforms/transforms/reverse-words.d.ts +7 -0
- package/dist/transforms/transforms/reverse-words.d.ts.map +1 -0
- package/dist/transforms/transforms/reverse-words.js +88 -0
- package/dist/transforms/transforms/reverse-words.js.map +1 -0
- package/dist/transforms/transforms/transforms.test.d.ts +11 -0
- package/dist/transforms/transforms/transforms.test.d.ts.map +1 -0
- package/dist/transforms/transforms/transforms.test.js +489 -0
- package/dist/transforms/transforms/transforms.test.js.map +1 -0
- package/dist/transforms/transforms/ubbi-dubbi.d.ts +7 -0
- package/dist/transforms/transforms/ubbi-dubbi.d.ts.map +1 -0
- package/dist/transforms/transforms/ubbi-dubbi.js +120 -0
- package/dist/transforms/transforms/ubbi-dubbi.js.map +1 -0
- package/dist/transforms/transforms/uwu.d.ts +7 -0
- package/dist/transforms/transforms/uwu.d.ts.map +1 -0
- package/dist/transforms/transforms/uwu.js +106 -0
- package/dist/transforms/transforms/uwu.js.map +1 -0
- package/dist/transforms/types.d.ts +159 -0
- package/dist/transforms/types.d.ts.map +1 -0
- package/dist/transforms/types.js +22 -0
- package/dist/transforms/types.js.map +1 -0
- package/dist/types/api.d.ts +158 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/config.d.ts +86 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +66 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/context.d.ts +74 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +83 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lexicon.d.ts +247 -0
- package/dist/types/lexicon.d.ts.map +1 -0
- package/dist/types/lexicon.js +6 -0
- package/dist/types/lexicon.js.map +1 -0
- package/examples/basic-usage.ts +48 -0
- package/examples/corporate-lexicon.ts +71 -0
- package/examples/lexicons/corporate-min.json +200 -0
- package/examples/with-tracing.ts +85 -0
- package/package.json +70 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Transforms Config Merge Logic
|
|
3
|
+
*
|
|
4
|
+
* Merge order (from lowest to highest priority):
|
|
5
|
+
* 1. GeneratorConfig.outputTransforms (base)
|
|
6
|
+
* 2. Lexicon defaults (if config allows)
|
|
7
|
+
* 3. Archetype outputTransforms (if selected)
|
|
8
|
+
* 4. Per-call overrides
|
|
9
|
+
*/
|
|
10
|
+
import { DEFAULT_OUTPUT_TRANSFORMS_CONFIG, DEFAULT_PROTECTION_CONFIG } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Merge all sources into a final OutputTransformsConfig.
|
|
13
|
+
*/
|
|
14
|
+
export function mergeOutputTransformsConfig(base, lexiconDefaults, archetypeTransforms, perCallOverride) {
|
|
15
|
+
// Start with defaults
|
|
16
|
+
let result = {
|
|
17
|
+
...DEFAULT_OUTPUT_TRANSFORMS_CONFIG,
|
|
18
|
+
protection: { ...DEFAULT_PROTECTION_CONFIG },
|
|
19
|
+
};
|
|
20
|
+
// 1. Apply base config
|
|
21
|
+
if (base) {
|
|
22
|
+
result = {
|
|
23
|
+
...result,
|
|
24
|
+
...base,
|
|
25
|
+
protection: {
|
|
26
|
+
...result.protection,
|
|
27
|
+
...base.protection,
|
|
28
|
+
},
|
|
29
|
+
pipeline: base.pipeline ?? result.pipeline,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// 2. Apply lexicon defaults
|
|
33
|
+
if (lexiconDefaults?.defaults && lexiconDefaults.defaults.length > 0) {
|
|
34
|
+
// Lexicon defaults only apply if no explicit pipeline from base config
|
|
35
|
+
if (result.pipeline.length === 0) {
|
|
36
|
+
result.pipeline = [...lexiconDefaults.defaults];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// 3. Apply archetype transforms
|
|
40
|
+
if (archetypeTransforms?.pipeline && archetypeTransforms.pipeline.length > 0) {
|
|
41
|
+
// Archetype replaces pipeline by default
|
|
42
|
+
result.pipeline = [...archetypeTransforms.pipeline];
|
|
43
|
+
// Enable transforms if archetype provides a pipeline
|
|
44
|
+
result.enabled = true;
|
|
45
|
+
}
|
|
46
|
+
// 4. Apply per-call overrides
|
|
47
|
+
if (perCallOverride?.outputTransforms) {
|
|
48
|
+
const override = perCallOverride.outputTransforms;
|
|
49
|
+
const mergeMode = perCallOverride.mergeMode ?? 'replace';
|
|
50
|
+
if (override.enabled !== undefined) {
|
|
51
|
+
result.enabled = override.enabled;
|
|
52
|
+
}
|
|
53
|
+
if (override.pipeline) {
|
|
54
|
+
if (mergeMode === 'append') {
|
|
55
|
+
result.pipeline = [...result.pipeline, ...override.pipeline];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
result.pipeline = [...override.pipeline];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (override.protection) {
|
|
62
|
+
result.protection = {
|
|
63
|
+
...result.protection,
|
|
64
|
+
...override.protection,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (override.strict !== undefined) {
|
|
68
|
+
result.strict = override.strict;
|
|
69
|
+
}
|
|
70
|
+
if (override.autoOrder !== undefined) {
|
|
71
|
+
result.autoOrder = override.autoOrder;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Merge protection configs.
|
|
78
|
+
*/
|
|
79
|
+
export function mergeProtectionConfig(...configs) {
|
|
80
|
+
const result = { ...DEFAULT_PROTECTION_CONFIG };
|
|
81
|
+
for (const config of configs) {
|
|
82
|
+
if (!config)
|
|
83
|
+
continue;
|
|
84
|
+
Object.assign(result, config);
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=config-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-merge.js","sourceRoot":"","sources":["../../src/transforms/config-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-merge.test.d.ts","sourceRoot":"","sources":["../../src/transforms/config-merge.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { mergeOutputTransformsConfig, mergeProtectionConfig } from './config-merge.js';
|
|
3
|
+
describe('Config Merge', () => {
|
|
4
|
+
it('should return defaults when no args provided', () => {
|
|
5
|
+
const result = mergeOutputTransformsConfig();
|
|
6
|
+
expect(result.enabled).toBe(false);
|
|
7
|
+
expect(result.pipeline).toEqual([]);
|
|
8
|
+
expect(result.strict).toBe(false);
|
|
9
|
+
});
|
|
10
|
+
it('should apply base config', () => {
|
|
11
|
+
const result = mergeOutputTransformsConfig({
|
|
12
|
+
enabled: true,
|
|
13
|
+
pipeline: [{ id: 'pigLatin' }],
|
|
14
|
+
});
|
|
15
|
+
expect(result.enabled).toBe(true);
|
|
16
|
+
expect(result.pipeline).toEqual([{ id: 'pigLatin' }]);
|
|
17
|
+
});
|
|
18
|
+
it('should apply lexicon defaults when no base pipeline', () => {
|
|
19
|
+
const result = mergeOutputTransformsConfig(undefined, { defaults: [{ id: 'pirate' }] });
|
|
20
|
+
expect(result.pipeline).toEqual([{ id: 'pirate' }]);
|
|
21
|
+
});
|
|
22
|
+
it('should not override base pipeline with lexicon defaults', () => {
|
|
23
|
+
const result = mergeOutputTransformsConfig({ pipeline: [{ id: 'pigLatin' }] }, { defaults: [{ id: 'pirate' }] });
|
|
24
|
+
expect(result.pipeline).toEqual([{ id: 'pigLatin' }]);
|
|
25
|
+
});
|
|
26
|
+
it('should replace pipeline with archetype transforms', () => {
|
|
27
|
+
const result = mergeOutputTransformsConfig({ pipeline: [{ id: 'pigLatin' }] }, undefined, { pipeline: [{ id: 'leet' }, { id: 'mockCase' }] });
|
|
28
|
+
expect(result.pipeline).toEqual([{ id: 'leet' }, { id: 'mockCase' }]);
|
|
29
|
+
expect(result.enabled).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
it('should apply per-call override in replace mode', () => {
|
|
32
|
+
const result = mergeOutputTransformsConfig({ enabled: true, pipeline: [{ id: 'pigLatin' }] }, undefined, undefined, {
|
|
33
|
+
outputTransforms: {
|
|
34
|
+
pipeline: [{ id: 'mockCase' }],
|
|
35
|
+
},
|
|
36
|
+
mergeMode: 'replace',
|
|
37
|
+
});
|
|
38
|
+
expect(result.pipeline).toEqual([{ id: 'mockCase' }]);
|
|
39
|
+
});
|
|
40
|
+
it('should apply per-call override in append mode', () => {
|
|
41
|
+
const result = mergeOutputTransformsConfig({ enabled: true, pipeline: [{ id: 'pigLatin' }] }, undefined, undefined, {
|
|
42
|
+
outputTransforms: {
|
|
43
|
+
pipeline: [{ id: 'mockCase' }],
|
|
44
|
+
},
|
|
45
|
+
mergeMode: 'append',
|
|
46
|
+
});
|
|
47
|
+
expect(result.pipeline).toEqual([{ id: 'pigLatin' }, { id: 'mockCase' }]);
|
|
48
|
+
});
|
|
49
|
+
it('should merge protection config from all sources', () => {
|
|
50
|
+
const result = mergeOutputTransformsConfig({ protection: { keepAcronyms: false } }, undefined, undefined, {
|
|
51
|
+
outputTransforms: {
|
|
52
|
+
protection: { minWordLength: 5 },
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
expect(result.protection.keepAcronyms).toBe(false);
|
|
56
|
+
expect(result.protection.minWordLength).toBe(5);
|
|
57
|
+
});
|
|
58
|
+
it('should override strict mode per-call', () => {
|
|
59
|
+
const result = mergeOutputTransformsConfig({ strict: false }, undefined, undefined, {
|
|
60
|
+
outputTransforms: { strict: true },
|
|
61
|
+
});
|
|
62
|
+
expect(result.strict).toBe(true);
|
|
63
|
+
});
|
|
64
|
+
it('should enable transforms when archetype has pipeline', () => {
|
|
65
|
+
const result = mergeOutputTransformsConfig(undefined, undefined, { pipeline: [{ id: 'pirate' }] });
|
|
66
|
+
expect(result.enabled).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
it('should default mergeMode to replace', () => {
|
|
69
|
+
const result = mergeOutputTransformsConfig({ pipeline: [{ id: 'pigLatin' }] }, undefined, undefined, {
|
|
70
|
+
outputTransforms: { pipeline: [{ id: 'mockCase' }] },
|
|
71
|
+
});
|
|
72
|
+
expect(result.pipeline).toEqual([{ id: 'mockCase' }]);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe('Protection Config Merge', () => {
|
|
76
|
+
it('should return defaults with no args', () => {
|
|
77
|
+
const result = mergeProtectionConfig();
|
|
78
|
+
expect(result.keepAcronyms).toBe(true);
|
|
79
|
+
expect(result.keepNumbers).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
it('should override specific fields', () => {
|
|
82
|
+
const result = mergeProtectionConfig({ keepAcronyms: false }, { minWordLength: 5 });
|
|
83
|
+
expect(result.keepAcronyms).toBe(false);
|
|
84
|
+
expect(result.minWordLength).toBe(5);
|
|
85
|
+
});
|
|
86
|
+
it('should skip undefined configs', () => {
|
|
87
|
+
const result = mergeProtectionConfig(undefined, { keepAcronyms: false }, undefined);
|
|
88
|
+
expect(result.keepAcronyms).toBe(false);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=config-merge.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-merge.test.js","sourceRoot":"","sources":["../../src/transforms/config-merge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Transform Registry
|
|
3
|
+
* Pre-loaded with all V1 transforms.
|
|
4
|
+
*/
|
|
5
|
+
import { TransformRegistry } from './registry.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a new TransformRegistry pre-loaded with all V1 built-in transforms.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createDefaultRegistry(): TransformRegistry;
|
|
10
|
+
//# sourceMappingURL=default-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.d.ts","sourceRoot":"","sources":["../../src/transforms/default-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAMzD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Transform Registry
|
|
3
|
+
* Pre-loaded with all V1 transforms.
|
|
4
|
+
*/
|
|
5
|
+
import { TransformRegistry } from './registry.js';
|
|
6
|
+
import { V1_TRANSFORMS } from './transforms/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create a new TransformRegistry pre-loaded with all V1 built-in transforms.
|
|
9
|
+
*/
|
|
10
|
+
export function createDefaultRegistry() {
|
|
11
|
+
const registry = new TransformRegistry();
|
|
12
|
+
for (const transform of V1_TRANSFORMS) {
|
|
13
|
+
registry.register(transform);
|
|
14
|
+
}
|
|
15
|
+
return registry;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=default-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.js","sourceRoot":"","sources":["../../src/transforms/default-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Transform System
|
|
3
|
+
* Public API for the transform pipeline.
|
|
4
|
+
*/
|
|
5
|
+
export type { Token, TokenType, TokenMeta, ProtectionConfig, TransformStep, OutputTransformsConfig, OutputTransformsOverride, TransformCapabilities, TransformInput, TransformOutput, ValidationResult, IOutputTransform, OutputTokenTrace, TransformEvent, LexiconOutputTransforms, ArchetypeOutputTransforms, } from './types.js';
|
|
6
|
+
export { DEFAULT_PROTECTION_CONFIG, DEFAULT_OUTPUT_TRANSFORMS_CONFIG, } from './types.js';
|
|
7
|
+
export { tokenize, render, classifyChar } from './tokenizer.js';
|
|
8
|
+
export { applyProtection, isProtected } from './protection.js';
|
|
9
|
+
export { TransformRegistry } from './registry.js';
|
|
10
|
+
export { createDefaultRegistry } from './default-registry.js';
|
|
11
|
+
export { executePipeline, checkPipelineOrder } from './pipeline.js';
|
|
12
|
+
export type { PipelineResult } from './pipeline.js';
|
|
13
|
+
export { mergeOutputTransformsConfig, mergeProtectionConfig } from './config-merge.js';
|
|
14
|
+
export { pigLatinTransform, ubbiDubbiTransform, leetTransform, uwuTransform, pirateTransform, redactTransform, emojiTransform, mockCaseTransform, reverseWordsTransform, bizJargonTransform, V1_TRANSFORMS, } from './transforms/index.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGvF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Transform System
|
|
3
|
+
* Public API for the transform pipeline.
|
|
4
|
+
*/
|
|
5
|
+
export { DEFAULT_PROTECTION_CONFIG, DEFAULT_OUTPUT_TRANSFORMS_CONFIG, } from './types.js';
|
|
6
|
+
// Tokenizer
|
|
7
|
+
export { tokenize, render, classifyChar } from './tokenizer.js';
|
|
8
|
+
// Protection
|
|
9
|
+
export { applyProtection, isProtected } from './protection.js';
|
|
10
|
+
// Registry
|
|
11
|
+
export { TransformRegistry } from './registry.js';
|
|
12
|
+
// Default Registry
|
|
13
|
+
export { createDefaultRegistry } from './default-registry.js';
|
|
14
|
+
// Pipeline
|
|
15
|
+
export { executePipeline, checkPipelineOrder } from './pipeline.js';
|
|
16
|
+
// Config Merge
|
|
17
|
+
export { mergeOutputTransformsConfig, mergeProtectionConfig } from './config-merge.js';
|
|
18
|
+
// V1 Transforms
|
|
19
|
+
export { pigLatinTransform, ubbiDubbiTransform, leetTransform, uwuTransform, pirateTransform, redactTransform, emojiTransform, mockCaseTransform, reverseWordsTransform, bizJargonTransform, V1_TRANSFORMS, } from './transforms/index.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE/D,WAAW;AACX,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGpE,eAAe;AACf,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform Pipeline Executor
|
|
3
|
+
* Runs transform steps in order with seed-scoped RNG per step.
|
|
4
|
+
*/
|
|
5
|
+
import type { Token, OutputTransformsConfig, TransformStep, TransformEvent, OutputTokenTrace } from './types.js';
|
|
6
|
+
import type { TransformRegistry } from './registry.js';
|
|
7
|
+
/** Result of pipeline execution */
|
|
8
|
+
export interface PipelineResult {
|
|
9
|
+
/** Final rendered text */
|
|
10
|
+
text: string;
|
|
11
|
+
/** Final tokens */
|
|
12
|
+
tokens: Token[];
|
|
13
|
+
/** Output token traces (original vs transformed) */
|
|
14
|
+
outputTokens?: OutputTokenTrace[];
|
|
15
|
+
/** Transform events for each step */
|
|
16
|
+
transformEvents?: TransformEvent[];
|
|
17
|
+
/** IDs of transforms that were applied */
|
|
18
|
+
transformsApplied: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Execute the output transform pipeline on raw text.
|
|
22
|
+
*/
|
|
23
|
+
export declare function executePipeline(text: string, config: OutputTransformsConfig, registry: TransformRegistry, baseSeed: number, traceEnabled: boolean): PipelineResult;
|
|
24
|
+
/**
|
|
25
|
+
* Check pipeline ordering and return warnings for non-recommended orderings.
|
|
26
|
+
*/
|
|
27
|
+
export declare function checkPipelineOrder(pipeline: TransformStep[], registry: TransformRegistry): string[];
|
|
28
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/transforms/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAwBvD,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,oDAAoD;IACpD,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,qCAAqC;IACrC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,GACpB,cAAc,CAmIhB;AAwBD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,EAAE,iBAAiB,GAC1B,MAAM,EAAE,CAkBV"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform Pipeline Executor
|
|
3
|
+
* Runs transform steps in order with seed-scoped RNG per step.
|
|
4
|
+
*/
|
|
5
|
+
import { SeedableRng } from '../rng/seedable-rng.js';
|
|
6
|
+
import { applyProtection } from './protection.js';
|
|
7
|
+
import { tokenize, render } from './tokenizer.js';
|
|
8
|
+
/** Simple string hash for deterministic RNG forking */
|
|
9
|
+
function hashString(str) {
|
|
10
|
+
let hash = 0;
|
|
11
|
+
for (let i = 0; i < str.length; i++) {
|
|
12
|
+
const ch = str.charCodeAt(i);
|
|
13
|
+
hash = ((hash << 5) - hash + ch) | 0;
|
|
14
|
+
}
|
|
15
|
+
return hash >>> 0; // ensure unsigned 32-bit
|
|
16
|
+
}
|
|
17
|
+
/** Simple object hash for params tracing */
|
|
18
|
+
function hashParams(params) {
|
|
19
|
+
try {
|
|
20
|
+
const json = JSON.stringify(params, Object.keys(params).sort());
|
|
21
|
+
return String(hashString(json));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return '0';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Execute the output transform pipeline on raw text.
|
|
29
|
+
*/
|
|
30
|
+
export function executePipeline(text, config, registry, baseSeed, traceEnabled) {
|
|
31
|
+
if (!config.enabled || config.pipeline.length === 0) {
|
|
32
|
+
return {
|
|
33
|
+
text,
|
|
34
|
+
tokens: tokenize(text),
|
|
35
|
+
transformsApplied: [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// 1. Tokenize
|
|
39
|
+
let tokens = tokenize(text);
|
|
40
|
+
// Capture originals for trace
|
|
41
|
+
const originals = traceEnabled
|
|
42
|
+
? tokens.map(t => ({ type: t.type, value: t.value }))
|
|
43
|
+
: undefined;
|
|
44
|
+
// 2. Apply protection
|
|
45
|
+
applyProtection(tokens, config.protection);
|
|
46
|
+
// 3. Validate and collect pipeline steps
|
|
47
|
+
const steps = collectValidSteps(config.pipeline, registry, config.strict);
|
|
48
|
+
// 4. Optionally auto-order
|
|
49
|
+
if (config.autoOrder) {
|
|
50
|
+
steps.sort((a, b) => {
|
|
51
|
+
const orderA = a.transform.capabilities.preferredOrder ?? 50;
|
|
52
|
+
const orderB = b.transform.capabilities.preferredOrder ?? 50;
|
|
53
|
+
return orderA - orderB;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// 5. Execute each step
|
|
57
|
+
const transformEvents = [];
|
|
58
|
+
const transformsApplied = [];
|
|
59
|
+
const allWarnings = [];
|
|
60
|
+
for (let stepIndex = 0; stepIndex < steps.length; stepIndex++) {
|
|
61
|
+
const { step, transform } = steps[stepIndex];
|
|
62
|
+
const params = step.params ?? {};
|
|
63
|
+
// Fork RNG for this step
|
|
64
|
+
const stepSeed = (baseSeed + hashString(transform.id + String(stepIndex))) >>> 0;
|
|
65
|
+
const stepRng = new SeedableRng(stepSeed);
|
|
66
|
+
// Validate params
|
|
67
|
+
const validation = transform.validateParams(params);
|
|
68
|
+
if (!validation.valid) {
|
|
69
|
+
if (config.strict) {
|
|
70
|
+
throw new Error(`Transform "${transform.id}" invalid params: ${validation.errors.join(', ')}`);
|
|
71
|
+
}
|
|
72
|
+
// Skip with warning
|
|
73
|
+
const warnings = [`Skipped: invalid params - ${validation.errors.join(', ')}`];
|
|
74
|
+
if (traceEnabled) {
|
|
75
|
+
transformEvents.push({
|
|
76
|
+
transformId: transform.id,
|
|
77
|
+
paramsHash: hashParams(params),
|
|
78
|
+
tokensChangedCount: 0,
|
|
79
|
+
warnings,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
allWarnings.push(warnings);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Count tokens before for change tracking
|
|
86
|
+
const beforeValues = traceEnabled ? tokens.map(t => t.value) : undefined;
|
|
87
|
+
// Apply transform
|
|
88
|
+
const output = transform.apply({
|
|
89
|
+
tokens,
|
|
90
|
+
params,
|
|
91
|
+
rng: stepRng,
|
|
92
|
+
protection: config.protection,
|
|
93
|
+
traceEnabled,
|
|
94
|
+
});
|
|
95
|
+
tokens = output.tokens;
|
|
96
|
+
transformsApplied.push(transform.id);
|
|
97
|
+
// Track events
|
|
98
|
+
if (traceEnabled) {
|
|
99
|
+
let changedCount = 0;
|
|
100
|
+
if (beforeValues) {
|
|
101
|
+
for (let i = 0; i < Math.max(beforeValues.length, tokens.length); i++) {
|
|
102
|
+
if (i >= beforeValues.length || i >= tokens.length || beforeValues[i] !== tokens[i]?.value) {
|
|
103
|
+
changedCount++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
transformEvents.push({
|
|
108
|
+
transformId: transform.id,
|
|
109
|
+
paramsHash: hashParams(params),
|
|
110
|
+
tokensChangedCount: changedCount,
|
|
111
|
+
warnings: output.warnings,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
if (output.warnings) {
|
|
115
|
+
allWarnings.push(output.warnings);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// 6. Build trace
|
|
119
|
+
let outputTokens;
|
|
120
|
+
if (traceEnabled && originals) {
|
|
121
|
+
outputTokens = [];
|
|
122
|
+
const maxLen = Math.max(originals.length, tokens.length);
|
|
123
|
+
for (let i = 0; i < maxLen; i++) {
|
|
124
|
+
const orig = originals[i];
|
|
125
|
+
const transformed = tokens[i];
|
|
126
|
+
outputTokens.push({
|
|
127
|
+
type: (transformed?.type ?? orig?.type ?? 'symbol'),
|
|
128
|
+
original: orig?.value ?? '',
|
|
129
|
+
transformed: transformed?.value ?? '',
|
|
130
|
+
protected: transformed?.meta?.protected ?? false,
|
|
131
|
+
protectionsApplied: transformed?.meta?.protectionsApplied,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
text: render(tokens),
|
|
137
|
+
tokens,
|
|
138
|
+
outputTokens,
|
|
139
|
+
transformEvents: traceEnabled ? transformEvents : undefined,
|
|
140
|
+
transformsApplied,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** Collect and validate pipeline steps, resolving transforms from registry */
|
|
144
|
+
function collectValidSteps(pipeline, registry, strict) {
|
|
145
|
+
const result = [];
|
|
146
|
+
for (const step of pipeline) {
|
|
147
|
+
const transform = registry.get(step.id);
|
|
148
|
+
if (!transform) {
|
|
149
|
+
if (strict) {
|
|
150
|
+
throw new Error(`Unknown transform ID: "${step.id}"`);
|
|
151
|
+
}
|
|
152
|
+
continue; // skip unknown
|
|
153
|
+
}
|
|
154
|
+
result.push({ step, transform });
|
|
155
|
+
}
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Check pipeline ordering and return warnings for non-recommended orderings.
|
|
160
|
+
*/
|
|
161
|
+
export function checkPipelineOrder(pipeline, registry) {
|
|
162
|
+
const warnings = [];
|
|
163
|
+
let lastOrder = -Infinity;
|
|
164
|
+
for (const step of pipeline) {
|
|
165
|
+
const transform = registry.get(step.id);
|
|
166
|
+
if (!transform)
|
|
167
|
+
continue;
|
|
168
|
+
const order = transform.capabilities.preferredOrder ?? 50;
|
|
169
|
+
if (order < lastOrder) {
|
|
170
|
+
warnings.push(`Transform "${step.id}" (order ${order}) appears after a transform with higher structural impact (order ${lastOrder}). Consider reordering.`);
|
|
171
|
+
}
|
|
172
|
+
lastOrder = order;
|
|
173
|
+
}
|
|
174
|
+
return warnings;
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/transforms/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../../src/transforms/pipeline.test.ts"],"names":[],"mappings":""}
|