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
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,588 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* marlarky CLI
|
|
4
|
+
* Command-line interface for the marlarky text generator
|
|
5
|
+
*/
|
|
6
|
+
import { parseArgs } from 'node:util';
|
|
7
|
+
import { readFileSync } from 'node:fs';
|
|
8
|
+
import { resolve, dirname } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { TextGenerator, SimpleFakerAdapter, loadLexiconFromString, validateLexicon, createDefaultRegistry, } from './index.js';
|
|
11
|
+
// ---------- Node 18 ESM __dirname polyfill ----------
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
14
|
+
// ---------- Version ----------
|
|
15
|
+
function getVersion() {
|
|
16
|
+
try {
|
|
17
|
+
const pkgPath = resolve(__dirname, '..', 'package.json');
|
|
18
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
19
|
+
return pkg.version;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return 'unknown';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// ---------- Help text ----------
|
|
26
|
+
const MAIN_HELP = `
|
|
27
|
+
marlarky - Generate syntactically plausible English text
|
|
28
|
+
|
|
29
|
+
Usage:
|
|
30
|
+
marlarky <command> [options]
|
|
31
|
+
|
|
32
|
+
Commands:
|
|
33
|
+
sentence Generate one or more sentences
|
|
34
|
+
paragraph Generate one or more paragraphs
|
|
35
|
+
text Generate a text block (multiple paragraphs)
|
|
36
|
+
validate Validate a lexicon JSON file
|
|
37
|
+
list List available transforms or sentence types
|
|
38
|
+
|
|
39
|
+
Global Options:
|
|
40
|
+
-s, --seed <n> RNG seed for deterministic output
|
|
41
|
+
-l, --lexicon <path> Path to a lexicon JSON file
|
|
42
|
+
-a, --archetype <name> Archetype to activate from the lexicon
|
|
43
|
+
-x, --transform <id> Apply an output transform (repeatable, comma-separated)
|
|
44
|
+
-t, --trace Output JSON trace to stderr
|
|
45
|
+
-j, --json Output full result as JSON to stdout
|
|
46
|
+
-n, --count <n> Number of units to generate (default: 1)
|
|
47
|
+
-h, --help Show help
|
|
48
|
+
-v, --version Show version
|
|
49
|
+
|
|
50
|
+
Examples:
|
|
51
|
+
marlarky sentence
|
|
52
|
+
marlarky sentence --seed 42 --type question
|
|
53
|
+
marlarky paragraph --sentences 5 --lexicon ./corp.json
|
|
54
|
+
marlarky text --paragraphs 3 --archetype corporate
|
|
55
|
+
marlarky sentence --transform pigLatin
|
|
56
|
+
marlarky sentence --transform leet,uwu --json
|
|
57
|
+
marlarky validate ./my-lexicon.json
|
|
58
|
+
marlarky list transforms
|
|
59
|
+
`.trimStart();
|
|
60
|
+
const SENTENCE_HELP = `
|
|
61
|
+
marlarky sentence - Generate one or more sentences
|
|
62
|
+
|
|
63
|
+
Usage:
|
|
64
|
+
marlarky sentence [options]
|
|
65
|
+
|
|
66
|
+
Options:
|
|
67
|
+
--type <type> Sentence type: simpleDeclarative, compound,
|
|
68
|
+
introAdverbial, subordinate, interjection, question
|
|
69
|
+
--hints <tags> Comma-separated hint tags (e.g. domain:tech,register:formal)
|
|
70
|
+
--min-words <n> Minimum word count per sentence
|
|
71
|
+
--max-words <n> Maximum word count per sentence
|
|
72
|
+
-x, --transform <id> Apply an output transform (repeatable, comma-separated)
|
|
73
|
+
-s, --seed <n> RNG seed for deterministic output
|
|
74
|
+
-l, --lexicon <path> Path to a lexicon JSON file
|
|
75
|
+
-a, --archetype <name> Archetype to activate from the lexicon
|
|
76
|
+
-t, --trace Output JSON trace to stderr
|
|
77
|
+
-j, --json Output full result as JSON to stdout
|
|
78
|
+
-n, --count <n> Number of sentences to generate (default: 1)
|
|
79
|
+
-h, --help Show this help
|
|
80
|
+
|
|
81
|
+
Examples:
|
|
82
|
+
marlarky sentence
|
|
83
|
+
marlarky sentence --seed 42 --type question
|
|
84
|
+
marlarky sentence --count 5 --lexicon ./corp.json --archetype corporate
|
|
85
|
+
marlarky sentence --transform pigLatin --seed 42
|
|
86
|
+
marlarky sentence --min-words 10 --max-words 20
|
|
87
|
+
`.trimStart();
|
|
88
|
+
const PARAGRAPH_HELP = `
|
|
89
|
+
marlarky paragraph - Generate one or more paragraphs
|
|
90
|
+
|
|
91
|
+
Usage:
|
|
92
|
+
marlarky paragraph [options]
|
|
93
|
+
|
|
94
|
+
Options:
|
|
95
|
+
--sentences <n> Exact number of sentences per paragraph
|
|
96
|
+
--min-sentences <n> Minimum sentences per paragraph
|
|
97
|
+
--max-sentences <n> Maximum sentences per paragraph
|
|
98
|
+
--hints <tags> Comma-separated hint tags
|
|
99
|
+
-x, --transform <id> Apply an output transform (repeatable, comma-separated)
|
|
100
|
+
-s, --seed <n> RNG seed for deterministic output
|
|
101
|
+
-l, --lexicon <path> Path to a lexicon JSON file
|
|
102
|
+
-a, --archetype <name> Archetype to activate from the lexicon
|
|
103
|
+
-t, --trace Output JSON trace to stderr
|
|
104
|
+
-j, --json Output full result as JSON to stdout
|
|
105
|
+
-n, --count <n> Number of paragraphs to generate (default: 1)
|
|
106
|
+
-h, --help Show this help
|
|
107
|
+
|
|
108
|
+
Examples:
|
|
109
|
+
marlarky paragraph --sentences 5 --seed 42
|
|
110
|
+
marlarky paragraph --count 3 --lexicon ./corp.json
|
|
111
|
+
marlarky paragraph --transform pirate
|
|
112
|
+
`.trimStart();
|
|
113
|
+
const TEXT_HELP = `
|
|
114
|
+
marlarky text - Generate a text block (multiple paragraphs)
|
|
115
|
+
|
|
116
|
+
Usage:
|
|
117
|
+
marlarky text [options]
|
|
118
|
+
|
|
119
|
+
Options:
|
|
120
|
+
--paragraphs <n> Exact number of paragraphs
|
|
121
|
+
--min-paragraphs <n> Minimum paragraphs
|
|
122
|
+
--max-paragraphs <n> Maximum paragraphs
|
|
123
|
+
--hints <tags> Comma-separated hint tags
|
|
124
|
+
-x, --transform <id> Apply an output transform (repeatable, comma-separated)
|
|
125
|
+
-s, --seed <n> RNG seed for deterministic output
|
|
126
|
+
-l, --lexicon <path> Path to a lexicon JSON file
|
|
127
|
+
-a, --archetype <name> Archetype to activate from the lexicon
|
|
128
|
+
-t, --trace Output JSON trace to stderr
|
|
129
|
+
-j, --json Output full result as JSON to stdout
|
|
130
|
+
-n, --count <n> Number of text blocks to generate (default: 1)
|
|
131
|
+
-h, --help Show this help
|
|
132
|
+
|
|
133
|
+
Examples:
|
|
134
|
+
marlarky text --paragraphs 3 --seed 42
|
|
135
|
+
marlarky text --lexicon ./corp.json --archetype corporate
|
|
136
|
+
marlarky text --transform bizJargon
|
|
137
|
+
`.trimStart();
|
|
138
|
+
const VALIDATE_HELP = `
|
|
139
|
+
marlarky validate - Validate a lexicon JSON file
|
|
140
|
+
|
|
141
|
+
Usage:
|
|
142
|
+
marlarky validate <file.json> [options]
|
|
143
|
+
|
|
144
|
+
Options:
|
|
145
|
+
--json Output validation result as JSON
|
|
146
|
+
-h, --help Show this help
|
|
147
|
+
|
|
148
|
+
Examples:
|
|
149
|
+
marlarky validate ./my-lexicon.json
|
|
150
|
+
marlarky validate ./my-lexicon.json --json
|
|
151
|
+
`.trimStart();
|
|
152
|
+
const LIST_HELP = `
|
|
153
|
+
marlarky list - List available transforms or sentence types
|
|
154
|
+
|
|
155
|
+
Usage:
|
|
156
|
+
marlarky list <category>
|
|
157
|
+
|
|
158
|
+
Categories:
|
|
159
|
+
transforms List all registered output transforms
|
|
160
|
+
types List all sentence types
|
|
161
|
+
|
|
162
|
+
Options:
|
|
163
|
+
--json Output as JSON
|
|
164
|
+
-h, --help Show this help
|
|
165
|
+
|
|
166
|
+
Examples:
|
|
167
|
+
marlarky list transforms
|
|
168
|
+
marlarky list types
|
|
169
|
+
marlarky list transforms --json
|
|
170
|
+
`.trimStart();
|
|
171
|
+
// ---------- Constants ----------
|
|
172
|
+
const GLOBAL_OPTIONS = {
|
|
173
|
+
seed: { type: 'string', short: 's' },
|
|
174
|
+
lexicon: { type: 'string', short: 'l' },
|
|
175
|
+
archetype: { type: 'string', short: 'a' },
|
|
176
|
+
transform: { type: 'string', short: 'x', multiple: true },
|
|
177
|
+
trace: { type: 'boolean', short: 't', default: false },
|
|
178
|
+
json: { type: 'boolean', short: 'j', default: false },
|
|
179
|
+
count: { type: 'string', short: 'n' },
|
|
180
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
181
|
+
};
|
|
182
|
+
const VALID_SENTENCE_TYPES = [
|
|
183
|
+
'simpleDeclarative',
|
|
184
|
+
'compound',
|
|
185
|
+
'introAdverbial',
|
|
186
|
+
'subordinate',
|
|
187
|
+
'interjection',
|
|
188
|
+
'question',
|
|
189
|
+
];
|
|
190
|
+
// ---------- Utilities ----------
|
|
191
|
+
function die(message) {
|
|
192
|
+
process.stderr.write(`Error: ${message}\n`);
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
function parsePositiveInt(value, defaultValue) {
|
|
196
|
+
if (value === undefined || value === null)
|
|
197
|
+
return defaultValue;
|
|
198
|
+
const n = Number(value);
|
|
199
|
+
if (!Number.isInteger(n) || n < 1) {
|
|
200
|
+
die(`Expected a positive integer, got "${String(value)}"`);
|
|
201
|
+
}
|
|
202
|
+
return n;
|
|
203
|
+
}
|
|
204
|
+
function parseHints(value) {
|
|
205
|
+
if (value === undefined || value === null)
|
|
206
|
+
return undefined;
|
|
207
|
+
return String(value).split(',').map(s => s.trim()).filter(Boolean);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Parse --transform flags into a TransformStep pipeline and OutputTransformsConfig override.
|
|
211
|
+
* Accepts repeatable --transform flags and/or comma-separated IDs.
|
|
212
|
+
* Returns undefined if no transforms specified.
|
|
213
|
+
*/
|
|
214
|
+
function parseTransformOverride(values) {
|
|
215
|
+
const raw = values['transform'];
|
|
216
|
+
if (!raw)
|
|
217
|
+
return undefined;
|
|
218
|
+
// raw may be a single string or string[] depending on parseArgs multiple flag
|
|
219
|
+
const entries = Array.isArray(raw)
|
|
220
|
+
? raw.flatMap(v => v.split(','))
|
|
221
|
+
: String(raw).split(',');
|
|
222
|
+
const ids = entries.map(s => s.trim()).filter(Boolean);
|
|
223
|
+
if (ids.length === 0)
|
|
224
|
+
return undefined;
|
|
225
|
+
// Validate that all IDs exist in the default registry
|
|
226
|
+
const registry = createDefaultRegistry();
|
|
227
|
+
for (const id of ids) {
|
|
228
|
+
if (!registry.has(id)) {
|
|
229
|
+
const available = registry.list().map(t => t.id).join(', ');
|
|
230
|
+
die(`Unknown transform "${id}". Available: ${available}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
const pipeline = ids.map(id => ({ id }));
|
|
234
|
+
return {
|
|
235
|
+
enabled: true,
|
|
236
|
+
pipeline,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
// ---------- Generator factory ----------
|
|
240
|
+
function createGenerator(values) {
|
|
241
|
+
let lexicon;
|
|
242
|
+
if (values['lexicon']) {
|
|
243
|
+
const lexiconPath = resolve(String(values['lexicon']));
|
|
244
|
+
try {
|
|
245
|
+
const json = readFileSync(lexiconPath, 'utf-8');
|
|
246
|
+
lexicon = loadLexiconFromString(json);
|
|
247
|
+
}
|
|
248
|
+
catch (err) {
|
|
249
|
+
die(`Loading lexicon: ${err instanceof Error ? err.message : String(err)}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
const generator = new TextGenerator({
|
|
253
|
+
fakerAdapter: new SimpleFakerAdapter(),
|
|
254
|
+
lexicon,
|
|
255
|
+
enableTrace: !!values['trace'] || !!values['json'],
|
|
256
|
+
});
|
|
257
|
+
if (values['seed'] !== undefined) {
|
|
258
|
+
const seed = Number(values['seed']);
|
|
259
|
+
if (Number.isNaN(seed)) {
|
|
260
|
+
die(`--seed must be a number, got "${String(values['seed'])}"`);
|
|
261
|
+
}
|
|
262
|
+
generator.setSeed(seed);
|
|
263
|
+
}
|
|
264
|
+
if (values['archetype']) {
|
|
265
|
+
generator.setArchetype(String(values['archetype']));
|
|
266
|
+
}
|
|
267
|
+
return generator;
|
|
268
|
+
}
|
|
269
|
+
// ---------- Output ----------
|
|
270
|
+
function emitResult(result, trace, jsonOutput) {
|
|
271
|
+
if (typeof result === 'string') {
|
|
272
|
+
if (jsonOutput) {
|
|
273
|
+
process.stdout.write(JSON.stringify({ text: result }, null, 2) + '\n');
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
process.stdout.write(result + '\n');
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
if (jsonOutput) {
|
|
281
|
+
process.stdout.write(JSON.stringify(result, null, 2) + '\n');
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
process.stdout.write(result.text + '\n');
|
|
285
|
+
}
|
|
286
|
+
if (trace && !jsonOutput && result.trace) {
|
|
287
|
+
const traceOutput = {
|
|
288
|
+
trace: result.trace,
|
|
289
|
+
meta: result.meta,
|
|
290
|
+
};
|
|
291
|
+
process.stderr.write(JSON.stringify(traceOutput, null, 2) + '\n');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// ---------- Subcommand handlers ----------
|
|
296
|
+
function handleSentence() {
|
|
297
|
+
const { values } = parseArgs({
|
|
298
|
+
args: process.argv.slice(3),
|
|
299
|
+
options: {
|
|
300
|
+
...GLOBAL_OPTIONS,
|
|
301
|
+
type: { type: 'string' },
|
|
302
|
+
hints: { type: 'string' },
|
|
303
|
+
'min-words': { type: 'string' },
|
|
304
|
+
'max-words': { type: 'string' },
|
|
305
|
+
},
|
|
306
|
+
strict: true,
|
|
307
|
+
});
|
|
308
|
+
if (values['help']) {
|
|
309
|
+
process.stdout.write(SENTENCE_HELP);
|
|
310
|
+
process.exit(0);
|
|
311
|
+
}
|
|
312
|
+
if (values['type'] && !VALID_SENTENCE_TYPES.includes(values['type'])) {
|
|
313
|
+
die(`Invalid sentence type "${String(values['type'])}". Valid types: ${VALID_SENTENCE_TYPES.join(', ')}`);
|
|
314
|
+
}
|
|
315
|
+
const generator = createGenerator(values);
|
|
316
|
+
const count = parsePositiveInt(values['count'], 1);
|
|
317
|
+
const transformOverride = parseTransformOverride(values);
|
|
318
|
+
const opts = {};
|
|
319
|
+
if (values['type'])
|
|
320
|
+
opts.type = values['type'];
|
|
321
|
+
opts.hints = parseHints(values['hints']);
|
|
322
|
+
if (values['min-words'] !== undefined)
|
|
323
|
+
opts.minWords = parsePositiveInt(values['min-words'], 1);
|
|
324
|
+
if (values['max-words'] !== undefined)
|
|
325
|
+
opts.maxWords = parsePositiveInt(values['max-words'], 1);
|
|
326
|
+
if (transformOverride)
|
|
327
|
+
opts.outputTransforms = transformOverride;
|
|
328
|
+
const jsonOutput = !!values['json'];
|
|
329
|
+
for (let i = 0; i < count; i++) {
|
|
330
|
+
const result = generator.sentence(opts);
|
|
331
|
+
emitResult(result, !!values['trace'], jsonOutput);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
function handleParagraph() {
|
|
335
|
+
const { values } = parseArgs({
|
|
336
|
+
args: process.argv.slice(3),
|
|
337
|
+
options: {
|
|
338
|
+
...GLOBAL_OPTIONS,
|
|
339
|
+
sentences: { type: 'string' },
|
|
340
|
+
'min-sentences': { type: 'string' },
|
|
341
|
+
'max-sentences': { type: 'string' },
|
|
342
|
+
hints: { type: 'string' },
|
|
343
|
+
},
|
|
344
|
+
strict: true,
|
|
345
|
+
});
|
|
346
|
+
if (values['help']) {
|
|
347
|
+
process.stdout.write(PARAGRAPH_HELP);
|
|
348
|
+
process.exit(0);
|
|
349
|
+
}
|
|
350
|
+
const generator = createGenerator(values);
|
|
351
|
+
const count = parsePositiveInt(values['count'], 1);
|
|
352
|
+
const transformOverride = parseTransformOverride(values);
|
|
353
|
+
const opts = {};
|
|
354
|
+
if (values['sentences'] !== undefined)
|
|
355
|
+
opts.sentences = parsePositiveInt(values['sentences'], 1);
|
|
356
|
+
if (values['min-sentences'] !== undefined)
|
|
357
|
+
opts.minSentences = parsePositiveInt(values['min-sentences'], 1);
|
|
358
|
+
if (values['max-sentences'] !== undefined)
|
|
359
|
+
opts.maxSentences = parsePositiveInt(values['max-sentences'], 1);
|
|
360
|
+
opts.hints = parseHints(values['hints']);
|
|
361
|
+
if (transformOverride)
|
|
362
|
+
opts.outputTransforms = transformOverride;
|
|
363
|
+
const jsonOutput = !!values['json'];
|
|
364
|
+
for (let i = 0; i < count; i++) {
|
|
365
|
+
const result = generator.paragraph(opts);
|
|
366
|
+
emitResult(result, !!values['trace'], jsonOutput);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
function handleText() {
|
|
370
|
+
const { values } = parseArgs({
|
|
371
|
+
args: process.argv.slice(3),
|
|
372
|
+
options: {
|
|
373
|
+
...GLOBAL_OPTIONS,
|
|
374
|
+
paragraphs: { type: 'string' },
|
|
375
|
+
'min-paragraphs': { type: 'string' },
|
|
376
|
+
'max-paragraphs': { type: 'string' },
|
|
377
|
+
hints: { type: 'string' },
|
|
378
|
+
},
|
|
379
|
+
strict: true,
|
|
380
|
+
});
|
|
381
|
+
if (values['help']) {
|
|
382
|
+
process.stdout.write(TEXT_HELP);
|
|
383
|
+
process.exit(0);
|
|
384
|
+
}
|
|
385
|
+
const generator = createGenerator(values);
|
|
386
|
+
const count = parsePositiveInt(values['count'], 1);
|
|
387
|
+
const transformOverride = parseTransformOverride(values);
|
|
388
|
+
const opts = {};
|
|
389
|
+
if (values['paragraphs'] !== undefined)
|
|
390
|
+
opts.paragraphs = parsePositiveInt(values['paragraphs'], 1);
|
|
391
|
+
if (values['min-paragraphs'] !== undefined)
|
|
392
|
+
opts.minParagraphs = parsePositiveInt(values['min-paragraphs'], 1);
|
|
393
|
+
if (values['max-paragraphs'] !== undefined)
|
|
394
|
+
opts.maxParagraphs = parsePositiveInt(values['max-paragraphs'], 1);
|
|
395
|
+
opts.hints = parseHints(values['hints']);
|
|
396
|
+
if (transformOverride)
|
|
397
|
+
opts.outputTransforms = transformOverride;
|
|
398
|
+
const jsonOutput = !!values['json'];
|
|
399
|
+
for (let i = 0; i < count; i++) {
|
|
400
|
+
const result = generator.textBlock(opts);
|
|
401
|
+
emitResult(result, !!values['trace'], jsonOutput);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
function handleValidate() {
|
|
405
|
+
const { values, positionals } = parseArgs({
|
|
406
|
+
args: process.argv.slice(3),
|
|
407
|
+
options: {
|
|
408
|
+
json: { type: 'boolean', default: false },
|
|
409
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
410
|
+
},
|
|
411
|
+
allowPositionals: true,
|
|
412
|
+
strict: true,
|
|
413
|
+
});
|
|
414
|
+
if (values['help']) {
|
|
415
|
+
process.stdout.write(VALIDATE_HELP);
|
|
416
|
+
process.exit(0);
|
|
417
|
+
}
|
|
418
|
+
const filePath = positionals[0];
|
|
419
|
+
if (!filePath) {
|
|
420
|
+
die('No file path provided.\nUsage: marlarky validate <file.json> [--json]');
|
|
421
|
+
}
|
|
422
|
+
const resolvedPath = resolve(filePath);
|
|
423
|
+
let content;
|
|
424
|
+
try {
|
|
425
|
+
content = readFileSync(resolvedPath, 'utf-8');
|
|
426
|
+
}
|
|
427
|
+
catch (err) {
|
|
428
|
+
die(`Reading file: ${err instanceof Error ? err.message : String(err)}`);
|
|
429
|
+
}
|
|
430
|
+
let parsed;
|
|
431
|
+
try {
|
|
432
|
+
parsed = JSON.parse(content);
|
|
433
|
+
}
|
|
434
|
+
catch (err) {
|
|
435
|
+
const msg = `Invalid JSON: ${err instanceof Error ? err.message : String(err)}`;
|
|
436
|
+
if (values['json']) {
|
|
437
|
+
process.stdout.write(JSON.stringify({
|
|
438
|
+
valid: false,
|
|
439
|
+
errors: [{ path: '', message: msg, severity: 'error' }],
|
|
440
|
+
warnings: [],
|
|
441
|
+
}, null, 2) + '\n');
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
process.stderr.write(msg + '\n');
|
|
445
|
+
}
|
|
446
|
+
process.exit(1);
|
|
447
|
+
}
|
|
448
|
+
const result = validateLexicon(parsed);
|
|
449
|
+
if (values['json']) {
|
|
450
|
+
process.stdout.write(JSON.stringify(result, null, 2) + '\n');
|
|
451
|
+
process.exit(result.valid ? 0 : 1);
|
|
452
|
+
}
|
|
453
|
+
if (result.valid && result.warnings.length === 0) {
|
|
454
|
+
process.stdout.write(`Valid lexicon: ${resolvedPath}\n`);
|
|
455
|
+
process.exit(0);
|
|
456
|
+
}
|
|
457
|
+
if (result.valid) {
|
|
458
|
+
process.stdout.write(`Valid lexicon with warnings: ${resolvedPath}\n\n`);
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
process.stderr.write(`Invalid lexicon: ${resolvedPath}\n\n`);
|
|
462
|
+
}
|
|
463
|
+
if (result.errors.length > 0) {
|
|
464
|
+
process.stderr.write('Errors:\n');
|
|
465
|
+
for (const err of result.errors) {
|
|
466
|
+
process.stderr.write(` ${err.path}: ${err.message}\n`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
if (result.warnings.length > 0) {
|
|
470
|
+
const stream = result.valid ? process.stdout : process.stderr;
|
|
471
|
+
stream.write('\nWarnings:\n');
|
|
472
|
+
for (const warn of result.warnings) {
|
|
473
|
+
stream.write(` ${warn.path}: ${warn.message}\n`);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
process.exit(result.valid ? 0 : 1);
|
|
477
|
+
}
|
|
478
|
+
function handleList() {
|
|
479
|
+
const { values, positionals } = parseArgs({
|
|
480
|
+
args: process.argv.slice(3),
|
|
481
|
+
options: {
|
|
482
|
+
json: { type: 'boolean', default: false },
|
|
483
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
484
|
+
},
|
|
485
|
+
allowPositionals: true,
|
|
486
|
+
strict: true,
|
|
487
|
+
});
|
|
488
|
+
if (values['help']) {
|
|
489
|
+
process.stdout.write(LIST_HELP);
|
|
490
|
+
process.exit(0);
|
|
491
|
+
}
|
|
492
|
+
const category = positionals[0];
|
|
493
|
+
if (!category) {
|
|
494
|
+
die('No category specified.\nUsage: marlarky list <transforms|types>');
|
|
495
|
+
}
|
|
496
|
+
switch (category) {
|
|
497
|
+
case 'transforms': {
|
|
498
|
+
const registry = createDefaultRegistry();
|
|
499
|
+
const transforms = registry.list();
|
|
500
|
+
if (values['json']) {
|
|
501
|
+
const data = transforms.map(t => ({
|
|
502
|
+
id: t.id,
|
|
503
|
+
version: t.version,
|
|
504
|
+
deterministic: t.capabilities.deterministic,
|
|
505
|
+
safeToStack: t.capabilities.safeToStack,
|
|
506
|
+
preferredOrder: t.capabilities.preferredOrder ?? null,
|
|
507
|
+
}));
|
|
508
|
+
process.stdout.write(JSON.stringify(data, null, 2) + '\n');
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
process.stdout.write('Available transforms:\n\n');
|
|
512
|
+
for (const t of transforms) {
|
|
513
|
+
const order = t.capabilities.preferredOrder !== undefined
|
|
514
|
+
? ` (order: ${t.capabilities.preferredOrder})`
|
|
515
|
+
: '';
|
|
516
|
+
process.stdout.write(` ${t.id} v${t.version}${order}\n`);
|
|
517
|
+
}
|
|
518
|
+
process.stdout.write(`\n${transforms.length} transforms registered.\n`);
|
|
519
|
+
}
|
|
520
|
+
break;
|
|
521
|
+
}
|
|
522
|
+
case 'types': {
|
|
523
|
+
if (values['json']) {
|
|
524
|
+
process.stdout.write(JSON.stringify(VALID_SENTENCE_TYPES, null, 2) + '\n');
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
process.stdout.write('Available sentence types:\n\n');
|
|
528
|
+
for (const t of VALID_SENTENCE_TYPES) {
|
|
529
|
+
process.stdout.write(` ${t}\n`);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
break;
|
|
533
|
+
}
|
|
534
|
+
default:
|
|
535
|
+
die(`Unknown list category "${category}". Valid: transforms, types`);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
// ---------- Main dispatch ----------
|
|
539
|
+
function main() {
|
|
540
|
+
const { values: topValues, positionals } = parseArgs({
|
|
541
|
+
args: process.argv.slice(2),
|
|
542
|
+
options: {
|
|
543
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
544
|
+
version: { type: 'boolean', short: 'v', default: false },
|
|
545
|
+
},
|
|
546
|
+
allowPositionals: true,
|
|
547
|
+
strict: false,
|
|
548
|
+
});
|
|
549
|
+
if (topValues['version']) {
|
|
550
|
+
process.stdout.write(getVersion() + '\n');
|
|
551
|
+
process.exit(0);
|
|
552
|
+
}
|
|
553
|
+
const command = positionals[0];
|
|
554
|
+
if (topValues['help'] && !command) {
|
|
555
|
+
process.stdout.write(MAIN_HELP);
|
|
556
|
+
process.exit(0);
|
|
557
|
+
}
|
|
558
|
+
if (!command) {
|
|
559
|
+
process.stderr.write('Error: No command specified.\n\n');
|
|
560
|
+
process.stderr.write(MAIN_HELP);
|
|
561
|
+
process.exit(1);
|
|
562
|
+
}
|
|
563
|
+
switch (command) {
|
|
564
|
+
case 'sentence':
|
|
565
|
+
return handleSentence();
|
|
566
|
+
case 'paragraph':
|
|
567
|
+
return handleParagraph();
|
|
568
|
+
case 'text':
|
|
569
|
+
return handleText();
|
|
570
|
+
case 'validate':
|
|
571
|
+
return handleValidate();
|
|
572
|
+
case 'list':
|
|
573
|
+
return handleList();
|
|
574
|
+
default:
|
|
575
|
+
process.stderr.write(`Error: Unknown command "${command}".\n\n`);
|
|
576
|
+
process.stderr.write(MAIN_HELP);
|
|
577
|
+
process.exit(1);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
// ---------- Entry point ----------
|
|
581
|
+
try {
|
|
582
|
+
main();
|
|
583
|
+
}
|
|
584
|
+
catch (err) {
|
|
585
|
+
process.stderr.write(`Error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
586
|
+
process.exit(1);
|
|
587
|
+
}
|
|
588
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { DEFAULT_NOUNS, DEFAULT_VERBS, DEFAULT_ADJECTIVES, DEFAULT_ADVERBS, DEFAULT_PREPOSITIONS, DEFAULT_CONJUNCTIONS, DEFAULT_SUBORDINATORS, DEFAULT_INTERJECTIONS, DEFAULT_DETERMINERS, DEFAULT_SUBJECT_PRONOUNS, DEFAULT_OBJECT_PRONOUNS, DEFAULT_POSSESSIVE_DETERMINERS, DEFAULT_MODALS, DEFAULT_RELATIVES, DEFAULT_TRANSITIONS, DEFAULT_QUESTION_WORDS, DEFAULT_AUXILIARIES, } from './word-lists.js';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { DEFAULT_NOUNS, DEFAULT_VERBS, DEFAULT_ADJECTIVES, DEFAULT_ADVERBS, DEFAULT_PREPOSITIONS, DEFAULT_CONJUNCTIONS, DEFAULT_SUBORDINATORS, DEFAULT_INTERJECTIONS, DEFAULT_DETERMINERS, DEFAULT_SUBJECT_PRONOUNS, DEFAULT_OBJECT_PRONOUNS, DEFAULT_POSSESSIVE_DETERMINERS, DEFAULT_MODALS, DEFAULT_RELATIVES, DEFAULT_TRANSITIONS, DEFAULT_QUESTION_WORDS, DEFAULT_AUXILIARIES, } from './word-lists.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Curated Word Lists
|
|
3
|
+
* Used when no lexicon is provided or as fallback
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_NOUNS: string[];
|
|
6
|
+
export declare const DEFAULT_VERBS: string[];
|
|
7
|
+
export declare const DEFAULT_ADJECTIVES: string[];
|
|
8
|
+
export declare const DEFAULT_ADVERBS: string[];
|
|
9
|
+
export declare const DEFAULT_PREPOSITIONS: string[];
|
|
10
|
+
export declare const DEFAULT_CONJUNCTIONS: string[];
|
|
11
|
+
export declare const DEFAULT_SUBORDINATORS: string[];
|
|
12
|
+
export declare const DEFAULT_INTERJECTIONS: string[];
|
|
13
|
+
export declare const DEFAULT_DETERMINERS: string[];
|
|
14
|
+
export declare const DEFAULT_SUBJECT_PRONOUNS: string[];
|
|
15
|
+
export declare const DEFAULT_OBJECT_PRONOUNS: string[];
|
|
16
|
+
export declare const DEFAULT_POSSESSIVE_DETERMINERS: string[];
|
|
17
|
+
export declare const DEFAULT_MODALS: string[];
|
|
18
|
+
export declare const DEFAULT_RELATIVES: string[];
|
|
19
|
+
export declare const DEFAULT_TRANSITIONS: string[];
|
|
20
|
+
export declare const DEFAULT_QUESTION_WORDS: string[];
|
|
21
|
+
export declare const DEFAULT_AUXILIARIES: string[];
|
|
22
|
+
//# sourceMappingURL=word-lists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"word-lists.d.ts","sourceRoot":"","sources":["../../src/defaults/word-lists.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,aAAa,UAWzB,CAAC;AAGF,eAAO,MAAM,aAAa,UAYzB,CAAC;AAGF,eAAO,MAAM,kBAAkB,UAU9B,CAAC;AAGF,eAAO,MAAM,eAAe,UAU3B,CAAC;AAGF,eAAO,MAAM,oBAAoB,UAMhC,CAAC;AAGF,eAAO,MAAM,oBAAoB,UAEhC,CAAC;AAGF,eAAO,MAAM,qBAAqB,UAIjC,CAAC;AAGF,eAAO,MAAM,qBAAqB,UAIjC,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAGF,eAAO,MAAM,wBAAwB,UAEpC,CAAC;AAGF,eAAO,MAAM,uBAAuB,UAEnC,CAAC;AAGF,eAAO,MAAM,8BAA8B,UAE1C,CAAC;AAGF,eAAO,MAAM,cAAc,UAE1B,CAAC;AAGF,eAAO,MAAM,iBAAiB,UAE7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AAGF,eAAO,MAAM,sBAAsB,UAElC,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAG/B,CAAC"}
|