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,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ubbi Dubbi Transform (id="ubbiDubbi")
|
|
3
|
+
* Insert prefix before vowel sound groups.
|
|
4
|
+
*/
|
|
5
|
+
import { isProtected } from '../protection.js';
|
|
6
|
+
const DEFAULT_PARAMS = {
|
|
7
|
+
prefix: 'ub',
|
|
8
|
+
treatYAsVowel: 'sometimes',
|
|
9
|
+
preserveCase: true,
|
|
10
|
+
mode: 'beforeVowelGroups',
|
|
11
|
+
};
|
|
12
|
+
const VOWELS = new Set(['a', 'e', 'i', 'o', 'u']);
|
|
13
|
+
function isVowel(ch, position, params) {
|
|
14
|
+
const lower = ch.toLowerCase();
|
|
15
|
+
if (VOWELS.has(lower))
|
|
16
|
+
return true;
|
|
17
|
+
if (lower === 'y') {
|
|
18
|
+
if (params.treatYAsVowel === 'always')
|
|
19
|
+
return true;
|
|
20
|
+
if (params.treatYAsVowel === 'never')
|
|
21
|
+
return false;
|
|
22
|
+
return position > 0;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
function isUpperCase(ch) {
|
|
27
|
+
return ch >= 'A' && ch <= 'Z';
|
|
28
|
+
}
|
|
29
|
+
function transformWord(word, params) {
|
|
30
|
+
const result = [];
|
|
31
|
+
let insertions = 0;
|
|
32
|
+
const max = params.maxInsertionsPerWord ?? Infinity;
|
|
33
|
+
let inVowelGroup = false;
|
|
34
|
+
for (let i = 0; i < word.length; i++) {
|
|
35
|
+
const ch = word[i];
|
|
36
|
+
const vowel = isVowel(ch, i, params);
|
|
37
|
+
if (vowel) {
|
|
38
|
+
if (params.mode === 'beforeVowelGroups') {
|
|
39
|
+
if (!inVowelGroup && insertions < max) {
|
|
40
|
+
// Insert prefix before vowel group
|
|
41
|
+
if (params.preserveCase && isUpperCase(ch)) {
|
|
42
|
+
result.push(params.prefix[0].toUpperCase() + params.prefix.slice(1));
|
|
43
|
+
result.push(ch.toLowerCase());
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
result.push(params.prefix);
|
|
47
|
+
result.push(ch);
|
|
48
|
+
}
|
|
49
|
+
insertions++;
|
|
50
|
+
inVowelGroup = true;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// beforeEachVowel mode
|
|
56
|
+
if (insertions < max) {
|
|
57
|
+
if (params.preserveCase && isUpperCase(ch)) {
|
|
58
|
+
result.push(params.prefix[0].toUpperCase() + params.prefix.slice(1));
|
|
59
|
+
result.push(ch.toLowerCase());
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
result.push(params.prefix);
|
|
63
|
+
result.push(ch);
|
|
64
|
+
}
|
|
65
|
+
insertions++;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
inVowelGroup = false;
|
|
72
|
+
}
|
|
73
|
+
result.push(ch);
|
|
74
|
+
}
|
|
75
|
+
return result.join('');
|
|
76
|
+
}
|
|
77
|
+
export const ubbiDubbiTransform = {
|
|
78
|
+
id: 'ubbiDubbi',
|
|
79
|
+
version: '1.0.0',
|
|
80
|
+
capabilities: {
|
|
81
|
+
requiresTrace: false,
|
|
82
|
+
posAware: false,
|
|
83
|
+
deterministic: true,
|
|
84
|
+
safeToStack: true,
|
|
85
|
+
preferredOrder: 40,
|
|
86
|
+
},
|
|
87
|
+
validateParams(params) {
|
|
88
|
+
const errors = [];
|
|
89
|
+
if (params && typeof params === 'object') {
|
|
90
|
+
const p = params;
|
|
91
|
+
if (p.prefix !== undefined && typeof p.prefix !== 'string') {
|
|
92
|
+
errors.push('prefix must be a string');
|
|
93
|
+
}
|
|
94
|
+
if (p.treatYAsVowel && !['never', 'sometimes', 'always'].includes(p.treatYAsVowel)) {
|
|
95
|
+
errors.push('treatYAsVowel must be "never", "sometimes", or "always"');
|
|
96
|
+
}
|
|
97
|
+
if (p.mode && p.mode !== 'beforeEachVowel' && p.mode !== 'beforeVowelGroups') {
|
|
98
|
+
errors.push('mode must be "beforeEachVowel" or "beforeVowelGroups"');
|
|
99
|
+
}
|
|
100
|
+
if (p.maxInsertionsPerWord !== undefined && (typeof p.maxInsertionsPerWord !== 'number' || p.maxInsertionsPerWord < 0)) {
|
|
101
|
+
errors.push('maxInsertionsPerWord must be a non-negative number');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return { valid: errors.length === 0, errors };
|
|
105
|
+
},
|
|
106
|
+
apply(input) {
|
|
107
|
+
const params = { ...DEFAULT_PARAMS, ...input.params };
|
|
108
|
+
const tokens = [];
|
|
109
|
+
for (const token of input.tokens) {
|
|
110
|
+
if (token.type === 'word' && !isProtected(token)) {
|
|
111
|
+
tokens.push({ ...token, value: transformWord(token.value, params) });
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
tokens.push({ ...token });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { tokens };
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=ubbi-dubbi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ubbi-dubbi.js","sourceRoot":"","sources":["../../../src/transforms/transforms/ubbi-dubbi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uwu.d.ts","sourceRoot":"","sources":["../../../src/transforms/transforms/uwu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAMjB,MAAM,aAAa,CAAC;AA4DrB,eAAO,MAAM,YAAY,EAAE,gBAgE1B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uwu Transform (id="uwu")
|
|
3
|
+
* "Cute speak" phonetic + embellishments.
|
|
4
|
+
*/
|
|
5
|
+
import { isProtected } from '../protection.js';
|
|
6
|
+
const DEFAULT_PARAMS = {
|
|
7
|
+
rToW: true,
|
|
8
|
+
lToW: true,
|
|
9
|
+
insertNyaRate: 0.08,
|
|
10
|
+
suffixes: ['~', ' owo', ' uwu', ' :3'],
|
|
11
|
+
suffixRate: 0.06,
|
|
12
|
+
preserveCase: true,
|
|
13
|
+
};
|
|
14
|
+
/** Replace r/l with w, handle nya substitution */
|
|
15
|
+
function transformWord(word, params, rng) {
|
|
16
|
+
let result = '';
|
|
17
|
+
for (let i = 0; i < word.length; i++) {
|
|
18
|
+
const ch = word[i];
|
|
19
|
+
const lower = ch.toLowerCase();
|
|
20
|
+
// r → w
|
|
21
|
+
if (params.rToW && (lower === 'r')) {
|
|
22
|
+
const replacement = ch >= 'A' && ch <= 'Z' ? 'W' : 'w';
|
|
23
|
+
result += params.preserveCase ? replacement : 'w';
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// l → w
|
|
27
|
+
if (params.lToW && (lower === 'l')) {
|
|
28
|
+
const replacement = ch >= 'A' && ch <= 'Z' ? 'W' : 'w';
|
|
29
|
+
result += params.preserveCase ? replacement : 'w';
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
// na/ne/ni/no/nu → nya/nye/nyi/nyo/nyu
|
|
33
|
+
if (lower === 'n' && i + 1 < word.length) {
|
|
34
|
+
const nextLower = word[i + 1].toLowerCase();
|
|
35
|
+
if ('aeiou'.includes(nextLower) && rng.chance(params.insertNyaRate)) {
|
|
36
|
+
result += ch;
|
|
37
|
+
result += (ch >= 'A' && ch <= 'Z') ? 'Y' : 'y';
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
result += ch;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
export const uwuTransform = {
|
|
46
|
+
id: 'uwu',
|
|
47
|
+
version: '1.0.0',
|
|
48
|
+
capabilities: {
|
|
49
|
+
requiresTrace: false,
|
|
50
|
+
posAware: false,
|
|
51
|
+
deterministic: true,
|
|
52
|
+
safeToStack: true,
|
|
53
|
+
preferredOrder: 25,
|
|
54
|
+
},
|
|
55
|
+
validateParams(params) {
|
|
56
|
+
const errors = [];
|
|
57
|
+
if (params && typeof params === 'object') {
|
|
58
|
+
const p = params;
|
|
59
|
+
if (p.insertNyaRate !== undefined) {
|
|
60
|
+
const rate = p.insertNyaRate;
|
|
61
|
+
if (typeof rate !== 'number' || rate < 0 || rate > 1) {
|
|
62
|
+
errors.push('insertNyaRate must be between 0 and 1');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (p.suffixRate !== undefined) {
|
|
66
|
+
const rate = p.suffixRate;
|
|
67
|
+
if (typeof rate !== 'number' || rate < 0 || rate > 1) {
|
|
68
|
+
errors.push('suffixRate must be between 0 and 1');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (p.suffixes !== undefined && !Array.isArray(p.suffixes)) {
|
|
72
|
+
errors.push('suffixes must be an array');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { valid: errors.length === 0, errors };
|
|
76
|
+
},
|
|
77
|
+
apply(input) {
|
|
78
|
+
const params = { ...DEFAULT_PARAMS, ...input.params };
|
|
79
|
+
const tokens = [];
|
|
80
|
+
for (const token of input.tokens) {
|
|
81
|
+
if (token.type === 'word' && !isProtected(token)) {
|
|
82
|
+
tokens.push({ ...token, value: transformWord(token.value, params, input.rng) });
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
tokens.push({ ...token });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Add suffix at end of sentence occasionally
|
|
89
|
+
// Look for sentence-ending punctuation and insert suffix before it
|
|
90
|
+
if (params.suffixes.length > 0) {
|
|
91
|
+
for (let i = tokens.length - 1; i >= 0; i--) {
|
|
92
|
+
const t = tokens[i];
|
|
93
|
+
if (t.type === 'punct' && (t.value === '.' || t.value === '!' || t.value === '?')) {
|
|
94
|
+
if (input.rng.chance(params.suffixRate)) {
|
|
95
|
+
const suffix = input.rng.pick(params.suffixes);
|
|
96
|
+
// Insert suffix as a symbol token before punctuation
|
|
97
|
+
tokens.splice(i, 0, { type: 'symbol', value: suffix });
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return { tokens };
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=uwu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uwu.js","sourceRoot":"","sources":["../../../src/transforms/transforms/uwu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Transform System Types
|
|
3
|
+
* Based on TDD-LSETG-OT-001
|
|
4
|
+
*/
|
|
5
|
+
import type { IRng } from '../interfaces/rng.js';
|
|
6
|
+
/** Token type classification */
|
|
7
|
+
export type TokenType = 'word' | 'whitespace' | 'punct' | 'number' | 'symbol';
|
|
8
|
+
/** A single token from tokenization */
|
|
9
|
+
export interface Token {
|
|
10
|
+
/** Token type */
|
|
11
|
+
type: TokenType;
|
|
12
|
+
/** Token value (exact text) */
|
|
13
|
+
value: string;
|
|
14
|
+
/** Token metadata */
|
|
15
|
+
meta?: TokenMeta;
|
|
16
|
+
}
|
|
17
|
+
/** Metadata attached to a token */
|
|
18
|
+
export interface TokenMeta {
|
|
19
|
+
/** Whether this token is protected from transforms */
|
|
20
|
+
protected?: boolean;
|
|
21
|
+
/** Which protection rules matched */
|
|
22
|
+
protectionsApplied?: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Protection rule configuration */
|
|
25
|
+
export interface ProtectionConfig {
|
|
26
|
+
/** Keep ALL-CAPS acronyms unchanged */
|
|
27
|
+
keepAcronyms?: boolean;
|
|
28
|
+
/** Keep number tokens unchanged */
|
|
29
|
+
keepNumbers?: boolean;
|
|
30
|
+
/** Keep code-like tokens unchanged */
|
|
31
|
+
keepCodeTokens?: boolean;
|
|
32
|
+
/** Keep URL/email-like tokens unchanged */
|
|
33
|
+
keepUrlsEmails?: boolean;
|
|
34
|
+
/** Minimum word length to transform (shorter words are protected) */
|
|
35
|
+
minWordLength?: number;
|
|
36
|
+
/** Custom regex patterns for additional protection */
|
|
37
|
+
customProtectedRegex?: string[];
|
|
38
|
+
}
|
|
39
|
+
/** Default protection config */
|
|
40
|
+
export declare const DEFAULT_PROTECTION_CONFIG: Required<ProtectionConfig>;
|
|
41
|
+
/** A single step in the transform pipeline */
|
|
42
|
+
export interface TransformStep {
|
|
43
|
+
/** Transform ID (must match registered transform) */
|
|
44
|
+
id: string;
|
|
45
|
+
/** Transform-specific parameters */
|
|
46
|
+
params?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
/** Output transforms configuration */
|
|
49
|
+
export interface OutputTransformsConfig {
|
|
50
|
+
/** Whether output transforms are enabled */
|
|
51
|
+
enabled: boolean;
|
|
52
|
+
/** Ordered list of transform steps */
|
|
53
|
+
pipeline: TransformStep[];
|
|
54
|
+
/** Token protection configuration */
|
|
55
|
+
protection: ProtectionConfig;
|
|
56
|
+
/** If true, unknown transform ID or invalid params throws; else skip with warning */
|
|
57
|
+
strict: boolean;
|
|
58
|
+
/** Whether to auto-reorder pipeline by preferredOrder */
|
|
59
|
+
autoOrder?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/** Default output transforms config (disabled) */
|
|
62
|
+
export declare const DEFAULT_OUTPUT_TRANSFORMS_CONFIG: OutputTransformsConfig;
|
|
63
|
+
/** Per-call override for output transforms */
|
|
64
|
+
export interface OutputTransformsOverride {
|
|
65
|
+
/** Partial config override */
|
|
66
|
+
outputTransforms?: Partial<OutputTransformsConfig>;
|
|
67
|
+
/** How to merge pipeline with base config */
|
|
68
|
+
mergeMode?: 'replace' | 'append';
|
|
69
|
+
}
|
|
70
|
+
/** Capabilities declared by a transform */
|
|
71
|
+
export interface TransformCapabilities {
|
|
72
|
+
/** Whether the transform requires trace data */
|
|
73
|
+
requiresTrace: boolean;
|
|
74
|
+
/** Whether the transform is POS-aware */
|
|
75
|
+
posAware: boolean;
|
|
76
|
+
/** Whether the transform produces deterministic output (must be true for built-ins) */
|
|
77
|
+
deterministic: boolean;
|
|
78
|
+
/** Whether safe to stack with other transforms */
|
|
79
|
+
safeToStack: boolean;
|
|
80
|
+
/** Suggested ordering priority (lower = earlier in pipeline) */
|
|
81
|
+
preferredOrder?: number;
|
|
82
|
+
}
|
|
83
|
+
/** Input provided to a transform */
|
|
84
|
+
export interface TransformInput {
|
|
85
|
+
/** Tokenized text */
|
|
86
|
+
tokens: Token[];
|
|
87
|
+
/** Transform-specific parameters */
|
|
88
|
+
params: Record<string, unknown>;
|
|
89
|
+
/** Seeded RNG scoped to this transform step */
|
|
90
|
+
rng: IRng;
|
|
91
|
+
/** Protection configuration */
|
|
92
|
+
protection: ProtectionConfig;
|
|
93
|
+
/** Whether tracing is enabled */
|
|
94
|
+
traceEnabled: boolean;
|
|
95
|
+
}
|
|
96
|
+
/** Output returned from a transform */
|
|
97
|
+
export interface TransformOutput {
|
|
98
|
+
/** Transformed tokens */
|
|
99
|
+
tokens: Token[];
|
|
100
|
+
/** Transform events for tracing */
|
|
101
|
+
events?: TransformEvent[];
|
|
102
|
+
/** Warnings generated during transform */
|
|
103
|
+
warnings?: string[];
|
|
104
|
+
}
|
|
105
|
+
/** Validation result for transform params */
|
|
106
|
+
export interface ValidationResult {
|
|
107
|
+
/** Whether params are valid */
|
|
108
|
+
valid: boolean;
|
|
109
|
+
/** Validation errors */
|
|
110
|
+
errors: string[];
|
|
111
|
+
}
|
|
112
|
+
/** Transform plugin interface */
|
|
113
|
+
export interface IOutputTransform {
|
|
114
|
+
/** Unique transform ID */
|
|
115
|
+
id: string;
|
|
116
|
+
/** Transform version */
|
|
117
|
+
version: string;
|
|
118
|
+
/** Declared capabilities */
|
|
119
|
+
capabilities: TransformCapabilities;
|
|
120
|
+
/** Validate parameters */
|
|
121
|
+
validateParams(params: unknown): ValidationResult;
|
|
122
|
+
/** Apply the transform */
|
|
123
|
+
apply(input: TransformInput): TransformOutput;
|
|
124
|
+
}
|
|
125
|
+
/** Trace for a single token through the transform pipeline */
|
|
126
|
+
export interface OutputTokenTrace {
|
|
127
|
+
/** Token type */
|
|
128
|
+
type: TokenType;
|
|
129
|
+
/** Original token value (before transforms) */
|
|
130
|
+
original: string;
|
|
131
|
+
/** Transformed token value (after transforms) */
|
|
132
|
+
transformed: string;
|
|
133
|
+
/** Whether the token was protected */
|
|
134
|
+
protected: boolean;
|
|
135
|
+
/** Which protections matched */
|
|
136
|
+
protectionsApplied?: string[];
|
|
137
|
+
}
|
|
138
|
+
/** Event recorded for a transform step */
|
|
139
|
+
export interface TransformEvent {
|
|
140
|
+
/** Transform ID */
|
|
141
|
+
transformId: string;
|
|
142
|
+
/** Hash of parameters used */
|
|
143
|
+
paramsHash: string;
|
|
144
|
+
/** Number of tokens changed */
|
|
145
|
+
tokensChangedCount: number;
|
|
146
|
+
/** Warnings from this step */
|
|
147
|
+
warnings?: string[];
|
|
148
|
+
}
|
|
149
|
+
/** Output transforms config that can appear in a Lexicon */
|
|
150
|
+
export interface LexiconOutputTransforms {
|
|
151
|
+
/** Default transforms for this lexicon */
|
|
152
|
+
defaults?: TransformStep[];
|
|
153
|
+
}
|
|
154
|
+
/** Output transforms config for an archetype */
|
|
155
|
+
export interface ArchetypeOutputTransforms {
|
|
156
|
+
/** Pipeline for this archetype */
|
|
157
|
+
pipeline?: TransformStep[];
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transforms/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Transform System Types
|
|
3
|
+
* Based on TDD-LSETG-OT-001
|
|
4
|
+
*/
|
|
5
|
+
/** Default protection config */
|
|
6
|
+
export const DEFAULT_PROTECTION_CONFIG = {
|
|
7
|
+
keepAcronyms: true,
|
|
8
|
+
keepNumbers: true,
|
|
9
|
+
keepCodeTokens: true,
|
|
10
|
+
keepUrlsEmails: true,
|
|
11
|
+
minWordLength: 2,
|
|
12
|
+
customProtectedRegex: [],
|
|
13
|
+
};
|
|
14
|
+
/** Default output transforms config (disabled) */
|
|
15
|
+
export const DEFAULT_OUTPUT_TRANSFORMS_CONFIG = {
|
|
16
|
+
enabled: false,
|
|
17
|
+
pipeline: [],
|
|
18
|
+
protection: { ...DEFAULT_PROTECTION_CONFIG },
|
|
19
|
+
strict: false,
|
|
20
|
+
autoOrder: false,
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transforms/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6CH,gCAAgC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,CAAC;IAChB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AA0BF,kDAAkD;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAA2B;IACtE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE,GAAG,yBAAyB,EAAE;IAC5C,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;CACjB,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API Types
|
|
3
|
+
* Based on TDD Section 4 - Public API
|
|
4
|
+
*/
|
|
5
|
+
import type { Lexicon } from './lexicon.js';
|
|
6
|
+
import type { GeneratorConfig } from './config.js';
|
|
7
|
+
import type { IRng } from '../interfaces/rng.js';
|
|
8
|
+
import type { IFakerAdapter } from '../interfaces/faker-adapter.js';
|
|
9
|
+
import type { OutputTransformsConfig, OutputTokenTrace, TransformEvent } from '../transforms/types.js';
|
|
10
|
+
/** Options for TextGenerator constructor */
|
|
11
|
+
export interface GeneratorInitOptions {
|
|
12
|
+
/** Lexicon to use (optional - system works without it) */
|
|
13
|
+
lexicon?: Lexicon;
|
|
14
|
+
/** Faker adapter for fallback word generation (required) */
|
|
15
|
+
fakerAdapter: IFakerAdapter;
|
|
16
|
+
/** Custom RNG implementation (optional - uses internal seedable RNG) */
|
|
17
|
+
rng?: IRng;
|
|
18
|
+
/** Generator configuration (optional - uses defaults) */
|
|
19
|
+
config?: Partial<GeneratorConfig>;
|
|
20
|
+
/** Enable tracing for debugging (default false) */
|
|
21
|
+
enableTrace?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Options for sentence generation */
|
|
24
|
+
export interface SentenceOptions {
|
|
25
|
+
/** Override sentence type */
|
|
26
|
+
type?: 'simpleDeclarative' | 'compound' | 'introAdverbial' | 'subordinate' | 'interjection' | 'question';
|
|
27
|
+
/** Context hints (tags to activate) */
|
|
28
|
+
hints?: string[];
|
|
29
|
+
/** Minimum word count */
|
|
30
|
+
minWords?: number;
|
|
31
|
+
/** Maximum word count */
|
|
32
|
+
maxWords?: number;
|
|
33
|
+
/** Per-call output transform overrides */
|
|
34
|
+
outputTransforms?: Partial<OutputTransformsConfig>;
|
|
35
|
+
/** How to merge pipeline with base config */
|
|
36
|
+
mergeMode?: 'replace' | 'append';
|
|
37
|
+
}
|
|
38
|
+
/** Options for paragraph generation */
|
|
39
|
+
export interface ParagraphOptions {
|
|
40
|
+
/** Number of sentences (default: random within config range) */
|
|
41
|
+
sentences?: number;
|
|
42
|
+
/** Minimum sentences */
|
|
43
|
+
minSentences?: number;
|
|
44
|
+
/** Maximum sentences */
|
|
45
|
+
maxSentences?: number;
|
|
46
|
+
/** Context hints (tags to activate) */
|
|
47
|
+
hints?: string[];
|
|
48
|
+
/** Per-call output transform overrides */
|
|
49
|
+
outputTransforms?: Partial<OutputTransformsConfig>;
|
|
50
|
+
/** How to merge pipeline with base config */
|
|
51
|
+
mergeMode?: 'replace' | 'append';
|
|
52
|
+
}
|
|
53
|
+
/** Options for text block generation */
|
|
54
|
+
export interface TextBlockOptions {
|
|
55
|
+
/** Number of paragraphs */
|
|
56
|
+
paragraphs?: number;
|
|
57
|
+
/** Minimum paragraphs */
|
|
58
|
+
minParagraphs?: number;
|
|
59
|
+
/** Maximum paragraphs */
|
|
60
|
+
maxParagraphs?: number;
|
|
61
|
+
/** Context hints (tags to activate) */
|
|
62
|
+
hints?: string[];
|
|
63
|
+
/** Per-call output transform overrides */
|
|
64
|
+
outputTransforms?: Partial<OutputTransformsConfig>;
|
|
65
|
+
/** How to merge pipeline with base config */
|
|
66
|
+
mergeMode?: 'replace' | 'append';
|
|
67
|
+
}
|
|
68
|
+
/** Trace entry for a single token */
|
|
69
|
+
export interface TokenTrace {
|
|
70
|
+
/** The token value */
|
|
71
|
+
value: string;
|
|
72
|
+
/** Source: lexicon term set ID or faker method */
|
|
73
|
+
source: string;
|
|
74
|
+
/** Part of speech */
|
|
75
|
+
pos?: string;
|
|
76
|
+
/** Applied correlations */
|
|
77
|
+
correlationsApplied?: string[];
|
|
78
|
+
/** Retry count if any */
|
|
79
|
+
retryCount?: number;
|
|
80
|
+
}
|
|
81
|
+
/** Trace entry for a sentence */
|
|
82
|
+
export interface SentenceTrace {
|
|
83
|
+
/** The sentence text */
|
|
84
|
+
text: string;
|
|
85
|
+
/** Template used */
|
|
86
|
+
template: string;
|
|
87
|
+
/** Token traces */
|
|
88
|
+
tokens: TokenTrace[];
|
|
89
|
+
/** Constraints evaluated */
|
|
90
|
+
constraintsEvaluated: Array<{
|
|
91
|
+
id: string;
|
|
92
|
+
passed: boolean;
|
|
93
|
+
}>;
|
|
94
|
+
/** Total retry count */
|
|
95
|
+
retryCount: number;
|
|
96
|
+
}
|
|
97
|
+
/** Trace entry for a paragraph */
|
|
98
|
+
export interface ParagraphTrace {
|
|
99
|
+
/** Sentence traces */
|
|
100
|
+
sentences: SentenceTrace[];
|
|
101
|
+
}
|
|
102
|
+
/** Full generation trace */
|
|
103
|
+
export interface GenerationTrace {
|
|
104
|
+
/** Paragraph traces */
|
|
105
|
+
paragraphs: ParagraphTrace[];
|
|
106
|
+
/** Correlations applied during generation */
|
|
107
|
+
correlationsApplied: string[];
|
|
108
|
+
/** Invariants checked */
|
|
109
|
+
invariantsChecked: Array<{
|
|
110
|
+
id: string;
|
|
111
|
+
passed: boolean;
|
|
112
|
+
}>;
|
|
113
|
+
/** Output token traces from transforms (original vs transformed) */
|
|
114
|
+
outputTokens?: OutputTokenTrace[];
|
|
115
|
+
/** Transform events from the pipeline */
|
|
116
|
+
transformEvents?: TransformEvent[];
|
|
117
|
+
}
|
|
118
|
+
/** Generation metadata */
|
|
119
|
+
export interface GenerationMeta {
|
|
120
|
+
/** Active archetype */
|
|
121
|
+
archetype: string;
|
|
122
|
+
/** Seed used */
|
|
123
|
+
seed: number;
|
|
124
|
+
/** Lexicon version if loaded */
|
|
125
|
+
lexiconVersion?: string;
|
|
126
|
+
/** Lexicon ID if loaded */
|
|
127
|
+
lexiconId?: string;
|
|
128
|
+
/** IDs of transforms that were applied */
|
|
129
|
+
transformsApplied?: string[];
|
|
130
|
+
}
|
|
131
|
+
/** Generated text with optional trace */
|
|
132
|
+
export interface GeneratedText {
|
|
133
|
+
/** The generated text */
|
|
134
|
+
text: string;
|
|
135
|
+
/** Generation trace (when tracing enabled) */
|
|
136
|
+
trace?: GenerationTrace;
|
|
137
|
+
/** Generation metadata */
|
|
138
|
+
meta: GenerationMeta;
|
|
139
|
+
}
|
|
140
|
+
/** Lexicon validation error */
|
|
141
|
+
export interface LexiconValidationError {
|
|
142
|
+
/** Error path (e.g., "termSets.noun.tech.terms[0]") */
|
|
143
|
+
path: string;
|
|
144
|
+
/** Error message */
|
|
145
|
+
message: string;
|
|
146
|
+
/** Severity */
|
|
147
|
+
severity: 'error' | 'warning';
|
|
148
|
+
}
|
|
149
|
+
/** Lexicon validation result */
|
|
150
|
+
export interface LexiconValidationResult {
|
|
151
|
+
/** Whether the lexicon is valid */
|
|
152
|
+
valid: boolean;
|
|
153
|
+
/** Validation errors */
|
|
154
|
+
errors: LexiconValidationError[];
|
|
155
|
+
/** Validation warnings */
|
|
156
|
+
warnings: LexiconValidationError[];
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|