@atcute/lex-cli 2.3.1 → 2.3.3
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/dist/cli.js +15 -19
- package/dist/cli.js.map +1 -1
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +23 -38
- package/dist/codegen.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +91 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +2 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lexicon-metadata.d.ts.map +1 -1
- package/dist/lexicon-metadata.js +1 -3
- package/dist/lexicon-metadata.js.map +1 -1
- package/package.json +6 -6
- package/src/cli.ts +19 -22
- package/src/codegen.ts +23 -59
- package/src/config.ts +121 -0
- package/src/index.ts +3 -11
- package/src/lexicon-metadata.ts +3 -5
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
-
import
|
|
3
|
+
import { lexiconDoc, refineLexiconDoc } from '@atcute/lexicon-doc';
|
|
4
4
|
import { object } from '@optique/core/constructs';
|
|
5
5
|
import { command, constant, option } from '@optique/core/primitives';
|
|
6
6
|
import { run } from '@optique/run';
|
|
7
7
|
import { path as pathParser } from '@optique/run/valueparser';
|
|
8
8
|
import pc from 'picocolors';
|
|
9
|
-
import { lexiconDoc } from '@atcute/lexicon-doc';
|
|
10
9
|
import { generateLexiconApi } from './codegen.js';
|
|
10
|
+
import { loadConfig } from './config.js';
|
|
11
11
|
import { packageJsonSchema } from './lexicon-metadata.js';
|
|
12
12
|
/**
|
|
13
13
|
* Resolves package imports to ImportMapping[]
|
|
@@ -102,27 +102,15 @@ const parser = command('generate', object({
|
|
|
102
102
|
}));
|
|
103
103
|
const result = run(parser, { programName: 'lex-cli' });
|
|
104
104
|
if (result.type === 'generate') {
|
|
105
|
-
const
|
|
106
|
-
const configDirname = path.dirname(configFilename);
|
|
107
|
-
let config;
|
|
108
|
-
try {
|
|
109
|
-
const configURL = url.pathToFileURL(configFilename);
|
|
110
|
-
const configMod = (await import(configURL.href));
|
|
111
|
-
config = configMod.default;
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
console.error(pc.bold(pc.red(`failed to import config:`)));
|
|
115
|
-
console.error(err);
|
|
116
|
-
process.exit(1);
|
|
117
|
-
}
|
|
105
|
+
const config = await loadConfig(result.config);
|
|
118
106
|
// Resolve imports to mappings
|
|
119
|
-
const importMappings = config.imports ? await resolveImportsToMappings(config.imports,
|
|
107
|
+
const importMappings = config.imports ? await resolveImportsToMappings(config.imports, config.root) : [];
|
|
120
108
|
const allMappings = [...importMappings, ...(config.mappings ?? [])];
|
|
121
109
|
const documents = [];
|
|
122
|
-
for await (const filename of fs.glob(config.files, { cwd:
|
|
110
|
+
for await (const filename of fs.glob(config.files, { cwd: config.root })) {
|
|
123
111
|
let source;
|
|
124
112
|
try {
|
|
125
|
-
source = await fs.readFile(path.join(
|
|
113
|
+
source = await fs.readFile(path.join(config.root, filename), 'utf8');
|
|
126
114
|
}
|
|
127
115
|
catch (err) {
|
|
128
116
|
console.error(pc.bold(pc.red(`file read error with "${filename}"`)));
|
|
@@ -147,6 +135,14 @@ if (result.type === 'generate') {
|
|
|
147
135
|
}
|
|
148
136
|
process.exit(1);
|
|
149
137
|
}
|
|
138
|
+
const issues = refineLexiconDoc(result.value, true);
|
|
139
|
+
if (issues.length > 0) {
|
|
140
|
+
console.error(pc.bold(pc.red(`lint validation failed for "${filename}"`)));
|
|
141
|
+
for (const issue of issues) {
|
|
142
|
+
console.log(`- ${issue.message} at .${issue.path.join('.')}`);
|
|
143
|
+
}
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
150
146
|
documents.push(result.value);
|
|
151
147
|
}
|
|
152
148
|
const generationResult = await generateLexiconApi({
|
|
@@ -159,7 +155,7 @@ if (result.type === 'generate') {
|
|
|
159
155
|
cwd: process.cwd(),
|
|
160
156
|
},
|
|
161
157
|
});
|
|
162
|
-
const outdir = path.join(
|
|
158
|
+
const outdir = path.join(config.root, config.outdir);
|
|
163
159
|
for (const file of generationResult.files) {
|
|
164
160
|
const filename = path.join(outdir, file.filename);
|
|
165
161
|
const dirname = path.dirname(filename);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,MAAM,wBAAwB,GAAG,KAAK,EACrC,OAAiB,EACjB,aAAqB,EACM,EAAE;IAC7B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QACnC,gEAAgE;QAChE,IAAI,WAAoB,CAAC;QACzB,IAAI,UAAU,GAAG,aAAa,CAAC;QAC/B,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,OAAO,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACzF,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACzD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClC,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACP,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBACnB,4CAA4C;gBAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBAED,kCAAkC;gBAClC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,KAAK,CAAC,wDAAwD,aAAa,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,+BAA+B,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACzB,SAAS;QACV,CAAC;QAED,qCAAqC;QACrC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE1C,QAAQ,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,CAAC,OAAO,CAAC;gBACf,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;oBACzB,2BAA2B;oBAC3B,IAAI,UAAU,EAAE,CAAC;wBAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC5C,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,2BAA2B,OAAO,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;4BACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,2BAA2B,OAAO,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACF,CAAC;oBAED,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAE1E,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI;yBAC3B,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;yBACjD,UAAU,CAAC,oBAAoB,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;yBACpE,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAEjE,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;wBAC1B,YAAY,GAAG,WAAW,CAAC;oBAC5B,CAAC;yBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1C,YAAY,GAAG,GAAG,WAAW,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,CAAC;oBAED,OAAO;wBACN,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,IAAI,EAAE,YAAY;qBAClB,CAAC;gBACH,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,OAAO,CACrB,UAAU,EACV,MAAM,CAAC;IACN,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;CACnE,CAAC,CACF,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAEvD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/C,8BAA8B;IAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAiB,EAAE,CAAC;IAEnC,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1E,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iCAAiC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YAE3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;QACjD,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE;YACR,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,KAAK;SACnD;QACD,QAAQ,EAAE;YACT,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SAClB;KACD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;AACF,CAAC"}
|
package/dist/codegen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEX,UAAU,EAWV,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;CACpB;AAuBD,eAAO,MAAM,kBAAkB,GAAU,MAAM,iBAAiB,KAAG,OAAO,CAAC,gBAAgB,CAmT1F,CAAC"}
|
package/dist/codegen.js
CHANGED
|
@@ -104,6 +104,10 @@ export const generateLexiconApi = async (opts) => {
|
|
|
104
104
|
result = `${PURE} v.literal(${lit(stripMainHash(defUri))})`;
|
|
105
105
|
break;
|
|
106
106
|
}
|
|
107
|
+
case 'permission-set': {
|
|
108
|
+
// skip permission sets
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
107
111
|
default: {
|
|
108
112
|
result = generateType(imports, defUri, def);
|
|
109
113
|
break;
|
|
@@ -173,12 +177,7 @@ export const generateLexiconApi = async (opts) => {
|
|
|
173
177
|
file.sinterfaces += `export interface $params {}\n`;
|
|
174
178
|
}
|
|
175
179
|
if (def.message?.schema) {
|
|
176
|
-
|
|
177
|
-
file.sinterfaces += `export interface $message extends v.InferInput<${camelcased}Schema['message']> {}\n`;
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
file.sinterfaces += `export type $message = v.InferInput<${camelcased}Schema['message']>;\n`;
|
|
181
|
-
}
|
|
180
|
+
file.sinterfaces += `export type $message = v.InferInput<${camelcased}Schema['message']>;\n`;
|
|
182
181
|
}
|
|
183
182
|
break;
|
|
184
183
|
}
|
|
@@ -297,14 +296,8 @@ const generateXrpcSubscription = (imports, defUri, spec) => {
|
|
|
297
296
|
let inner = ``;
|
|
298
297
|
inner += `"params": ${params},`;
|
|
299
298
|
if (schema) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
inner += `"message": ${res},`;
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
const res = generateType(imports, defUri, schema);
|
|
306
|
-
inner += `get "message" () { return ${res} },`;
|
|
307
|
-
}
|
|
299
|
+
const res = generateType(imports, defUri, schema);
|
|
300
|
+
inner += `get "message" () { return ${res} },`;
|
|
308
301
|
}
|
|
309
302
|
else {
|
|
310
303
|
inner += `"message": null,`;
|
|
@@ -598,26 +591,16 @@ const generateType = (imports, defUri, spec, lazy = false) => {
|
|
|
598
591
|
}
|
|
599
592
|
// LexPrimitive
|
|
600
593
|
case 'boolean': {
|
|
594
|
+
let call = `${PURE} v.boolean()`;
|
|
601
595
|
if (spec.const !== undefined) {
|
|
602
|
-
|
|
596
|
+
call = `${PURE} v.literal(${spec.const})`;
|
|
603
597
|
}
|
|
604
|
-
let call = `${PURE} v.boolean()`;
|
|
605
598
|
if (spec.default !== undefined) {
|
|
606
599
|
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
607
600
|
}
|
|
608
601
|
return call;
|
|
609
602
|
}
|
|
610
603
|
case 'integer': {
|
|
611
|
-
if (spec.const !== undefined) {
|
|
612
|
-
return `${PURE} v.literal(${lit(spec.const)})`;
|
|
613
|
-
}
|
|
614
|
-
if (spec.enum !== undefined) {
|
|
615
|
-
let call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
616
|
-
if (spec.default !== undefined) {
|
|
617
|
-
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
618
|
-
}
|
|
619
|
-
return call;
|
|
620
|
-
}
|
|
621
604
|
let pipe = [];
|
|
622
605
|
if ((spec.minimum ?? 0) > 0 || spec.maximum !== undefined) {
|
|
623
606
|
if (spec.maximum === undefined) {
|
|
@@ -628,7 +611,13 @@ const generateType = (imports, defUri, spec, lazy = false) => {
|
|
|
628
611
|
}
|
|
629
612
|
}
|
|
630
613
|
let call = `${PURE} v.integer()`;
|
|
631
|
-
if (
|
|
614
|
+
if (spec.const !== undefined) {
|
|
615
|
+
call = `${PURE} v.literal(${lit(spec.const)})`;
|
|
616
|
+
}
|
|
617
|
+
else if (spec.enum !== undefined) {
|
|
618
|
+
call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
619
|
+
}
|
|
620
|
+
else if (pipe.length !== 0) {
|
|
632
621
|
call = `${PURE} v.constrain(${call}, [ ${pipe.join(', ')} ])`;
|
|
633
622
|
}
|
|
634
623
|
if (spec.default !== undefined) {
|
|
@@ -637,16 +626,6 @@ const generateType = (imports, defUri, spec, lazy = false) => {
|
|
|
637
626
|
return call;
|
|
638
627
|
}
|
|
639
628
|
case 'string': {
|
|
640
|
-
if (spec.const !== undefined) {
|
|
641
|
-
return `${PURE} v.literal(${lit(spec.const)})`;
|
|
642
|
-
}
|
|
643
|
-
if (spec.enum !== undefined) {
|
|
644
|
-
let call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
645
|
-
if (spec.default !== undefined) {
|
|
646
|
-
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
647
|
-
}
|
|
648
|
-
return call;
|
|
649
|
-
}
|
|
650
629
|
let pipe = [];
|
|
651
630
|
if ((spec.minLength ?? 0) > 0 || spec.maxLength !== undefined) {
|
|
652
631
|
if (spec.maxLength === undefined) {
|
|
@@ -714,7 +693,13 @@ const generateType = (imports, defUri, spec, lazy = false) => {
|
|
|
714
693
|
break;
|
|
715
694
|
}
|
|
716
695
|
}
|
|
717
|
-
if (
|
|
696
|
+
if (spec.const !== undefined) {
|
|
697
|
+
call = `${PURE} v.literal(${lit(spec.const)})`;
|
|
698
|
+
}
|
|
699
|
+
else if (spec.enum !== undefined) {
|
|
700
|
+
call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
701
|
+
}
|
|
702
|
+
else if (pipe.length !== 0) {
|
|
718
703
|
call = `${PURE} v.constrain(${call}, [ ${pipe.join(', ')} ])`;
|
|
719
704
|
}
|
|
720
705
|
if (spec.default !== undefined) {
|
package/dist/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as v from '@badrap/valita';
|
|
2
|
+
import type { ImportMapping } from './codegen.js';
|
|
3
|
+
export declare const lexiconConfigSchema: v.ObjectType<{
|
|
4
|
+
outdir: v.Type<string>;
|
|
5
|
+
files: v.Type<string[]>;
|
|
6
|
+
imports: v.Optional<string[]>;
|
|
7
|
+
mappings: v.Optional<ImportMapping[]>;
|
|
8
|
+
modules: v.Optional<{
|
|
9
|
+
importSuffix?: string | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
}, undefined>;
|
|
12
|
+
export type LexiconConfig = v.Infer<typeof lexiconConfigSchema>;
|
|
13
|
+
export interface NormalizedConfig extends LexiconConfig {
|
|
14
|
+
root: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const loadConfig: (configPath: string) => Promise<NormalizedConfig>;
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAKpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA6ClD,eAAO,MAAM,mBAAmB;;;;;;;;aA8B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,UAAU,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,gBAAgB,CA6B7E,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import * as url from 'node:url';
|
|
3
|
+
import * as v from '@badrap/valita';
|
|
4
|
+
import pc from 'picocolors';
|
|
5
|
+
import { isNsid } from '@atcute/lexicons/syntax';
|
|
6
|
+
const isValidLexiconPattern = (pattern) => {
|
|
7
|
+
if (pattern.endsWith('.*')) {
|
|
8
|
+
return isNsid(`${pattern.slice(0, -2)}.x`);
|
|
9
|
+
}
|
|
10
|
+
return isNsid(pattern);
|
|
11
|
+
};
|
|
12
|
+
const mappingImports = v.unknown().chain((value) => {
|
|
13
|
+
if (typeof value === 'string') {
|
|
14
|
+
if (value.length === 0) {
|
|
15
|
+
return v.err({ message: 'imports must not be empty' });
|
|
16
|
+
}
|
|
17
|
+
return v.ok(value);
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'function') {
|
|
20
|
+
return v.ok(value);
|
|
21
|
+
}
|
|
22
|
+
return v.err({ message: 'imports must be a string or function' });
|
|
23
|
+
});
|
|
24
|
+
const importMappingSchema = v.object({
|
|
25
|
+
nsid: v
|
|
26
|
+
.array(v.string().chain((value) => {
|
|
27
|
+
if (!isValidLexiconPattern(value)) {
|
|
28
|
+
return v.err({
|
|
29
|
+
message: 'invalid NSID pattern (must be valid NSID or end with .*)',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return v.ok(value);
|
|
33
|
+
}))
|
|
34
|
+
.assert((patterns) => patterns.length > 0, {
|
|
35
|
+
message: 'nsid requires at least one pattern',
|
|
36
|
+
}),
|
|
37
|
+
imports: mappingImports,
|
|
38
|
+
});
|
|
39
|
+
export const lexiconConfigSchema = v.object({
|
|
40
|
+
outdir: v.string().assert((value) => value.length > 0, {
|
|
41
|
+
message: 'outdir must not be empty',
|
|
42
|
+
}),
|
|
43
|
+
files: v
|
|
44
|
+
.array(v.string().assert((value) => value.length > 0, {
|
|
45
|
+
message: 'files entries must not be empty',
|
|
46
|
+
}))
|
|
47
|
+
.assert((value) => value.length > 0, {
|
|
48
|
+
message: 'files must include at least one pattern',
|
|
49
|
+
}),
|
|
50
|
+
imports: v
|
|
51
|
+
.array(v.string().assert((value) => value.length > 0, {
|
|
52
|
+
message: 'imports entries must not be empty',
|
|
53
|
+
}))
|
|
54
|
+
.optional(),
|
|
55
|
+
mappings: v.array(importMappingSchema).optional(),
|
|
56
|
+
modules: v
|
|
57
|
+
.object({
|
|
58
|
+
importSuffix: v
|
|
59
|
+
.string()
|
|
60
|
+
.assert((value) => value.length > 0, { message: 'importSuffix must not be empty' })
|
|
61
|
+
.optional(),
|
|
62
|
+
})
|
|
63
|
+
.partial()
|
|
64
|
+
.optional(),
|
|
65
|
+
});
|
|
66
|
+
export const loadConfig = async (configPath) => {
|
|
67
|
+
const configFilename = path.resolve(configPath);
|
|
68
|
+
const configDirname = path.dirname(configFilename);
|
|
69
|
+
let rawConfig;
|
|
70
|
+
try {
|
|
71
|
+
const configURL = url.pathToFileURL(configFilename);
|
|
72
|
+
const configMod = (await import(configURL.href));
|
|
73
|
+
rawConfig = configMod.default;
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.error(pc.bold(pc.red(`failed to import config:`)));
|
|
77
|
+
console.error(err);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
const configResult = lexiconConfigSchema.try(rawConfig, { mode: 'passthrough' });
|
|
81
|
+
if (!configResult.ok) {
|
|
82
|
+
console.error(pc.bold(pc.red(`invalid config:`)));
|
|
83
|
+
console.error(configResult.message);
|
|
84
|
+
for (const issue of configResult.issues) {
|
|
85
|
+
console.log(`- ${issue.code} at .${issue.path.join('.')}`);
|
|
86
|
+
}
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
return { ...configResult.value, root: configDirname };
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export
|
|
3
|
-
outdir: string;
|
|
4
|
-
files: string[];
|
|
5
|
-
imports?: string[];
|
|
6
|
-
mappings?: ImportMapping[];
|
|
7
|
-
modules?: {
|
|
8
|
-
importSuffix?: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
1
|
+
import { type LexiconConfig } from './config.js';
|
|
2
|
+
export type { LexiconConfig };
|
|
11
3
|
export declare const defineLexiconConfig: (config: LexiconConfig) => LexiconConfig;
|
|
12
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,mBAAmB,GAAI,QAAQ,aAAa,KAAG,aAE3D,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AAItE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAqB,EAAiB,EAAE;IAC3E,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-metadata.d.ts","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAIpC,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,KAAK,MAAM,EAAE,CAAC;AAErD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACvC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"lexicon-metadata.d.ts","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAIpC,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,KAAK,MAAM,EAAE,CAAC;AAErD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACvC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAiDD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAE5D,CAAC"}
|
package/dist/lexicon-metadata.js
CHANGED
|
@@ -19,9 +19,7 @@ const isValidLexiconPattern = (pattern) => {
|
|
|
19
19
|
*/
|
|
20
20
|
const lexiconMappingEntry = v.object({
|
|
21
21
|
type: v.union(v.literal('namespace'), v.literal('named')),
|
|
22
|
-
path: v
|
|
23
|
-
.string()
|
|
24
|
-
.assert((input) => input === '.' || input.startsWith('./'), {
|
|
22
|
+
path: v.string().assert((input) => input === '.' || input.startsWith('./'), {
|
|
25
23
|
message: `path must be "." or start with "./"`,
|
|
26
24
|
}),
|
|
27
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-metadata.js","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAmBjD;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,6DAA6D;QAC7D,OAAO,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAgC,CAAC,CAAC,MAAM,CAAC;IACjE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"lexicon-metadata.js","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAmBjD;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,6DAA6D;QAC7D,OAAO,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAgC,CAAC,CAAC,MAAM,CAAC;IACjE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAA+B,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACxG,OAAO,EAAE,qCAAqC;KAC9C,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgD,CAAC;KACnE,MAAM,CAAC,mBAAmB,CAAC;KAC3B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,GAAG,CAAC;gBACZ,OAAO,EAAE,0DAA0D;gBACnE,IAAI,EAAE,CAAC,GAAG,CAAC;aACX,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEJ,MAAM,mBAAmB,GAAgC,CAAC,CAAC,MAAM,CAAC;IACjE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoC,CAAC,CAAC,MAAM,CAAC;IAC1E,iBAAiB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@atcute/lex-cli",
|
|
4
|
-
"version": "2.3.
|
|
4
|
+
"version": "2.3.3",
|
|
5
5
|
"description": "cli tool to generate type definitions for atcute",
|
|
6
6
|
"license": "0BSD",
|
|
7
7
|
"repository": {
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@badrap/valita": "^0.4.6",
|
|
25
|
-
"@optique/core": "^0.6.
|
|
26
|
-
"@optique/run": "^0.6.
|
|
25
|
+
"@optique/core": "^0.6.2",
|
|
26
|
+
"@optique/run": "^0.6.2",
|
|
27
27
|
"picocolors": "^1.1.1",
|
|
28
28
|
"prettier": "^3.6.2",
|
|
29
|
-
"@atcute/lexicon-doc": "^
|
|
29
|
+
"@atcute/lexicon-doc": "^2.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@types/node": "^22.
|
|
32
|
+
"@types/node": "^22.19.0",
|
|
33
33
|
"tschema": "^3.2.0",
|
|
34
|
-
"@atcute/lexicons": "^1.2.
|
|
34
|
+
"@atcute/lexicons": "^1.2.4"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "pnpm run generate:schema && tsc",
|
package/src/cli.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import { lexiconDoc, refineLexiconDoc, type LexiconDoc } from '@atcute/lexicon-doc';
|
|
4
5
|
|
|
5
6
|
import { object } from '@optique/core/constructs';
|
|
6
7
|
import { command, constant, option } from '@optique/core/primitives';
|
|
@@ -8,10 +9,8 @@ import { run } from '@optique/run';
|
|
|
8
9
|
import { path as pathParser } from '@optique/run/valueparser';
|
|
9
10
|
import pc from 'picocolors';
|
|
10
11
|
|
|
11
|
-
import { lexiconDoc, type LexiconDoc } from '@atcute/lexicon-doc';
|
|
12
|
-
|
|
13
12
|
import { generateLexiconApi, type ImportMapping } from './codegen.js';
|
|
14
|
-
import
|
|
13
|
+
import { loadConfig } from './config.js';
|
|
15
14
|
import { packageJsonSchema } from './lexicon-metadata.js';
|
|
16
15
|
|
|
17
16
|
/**
|
|
@@ -128,31 +127,18 @@ const parser = command(
|
|
|
128
127
|
const result = run(parser, { programName: 'lex-cli' });
|
|
129
128
|
|
|
130
129
|
if (result.type === 'generate') {
|
|
131
|
-
const
|
|
132
|
-
const configDirname = path.dirname(configFilename);
|
|
133
|
-
|
|
134
|
-
let config: LexiconConfig;
|
|
135
|
-
try {
|
|
136
|
-
const configURL = url.pathToFileURL(configFilename);
|
|
137
|
-
const configMod = (await import(configURL.href)) as { default: LexiconConfig };
|
|
138
|
-
config = configMod.default;
|
|
139
|
-
} catch (err) {
|
|
140
|
-
console.error(pc.bold(pc.red(`failed to import config:`)));
|
|
141
|
-
console.error(err);
|
|
142
|
-
|
|
143
|
-
process.exit(1);
|
|
144
|
-
}
|
|
130
|
+
const config = await loadConfig(result.config);
|
|
145
131
|
|
|
146
132
|
// Resolve imports to mappings
|
|
147
|
-
const importMappings = config.imports ? await resolveImportsToMappings(config.imports,
|
|
133
|
+
const importMappings = config.imports ? await resolveImportsToMappings(config.imports, config.root) : [];
|
|
148
134
|
const allMappings = [...importMappings, ...(config.mappings ?? [])];
|
|
149
135
|
|
|
150
136
|
const documents: LexiconDoc[] = [];
|
|
151
137
|
|
|
152
|
-
for await (const filename of fs.glob(config.files, { cwd:
|
|
138
|
+
for await (const filename of fs.glob(config.files, { cwd: config.root })) {
|
|
153
139
|
let source: string;
|
|
154
140
|
try {
|
|
155
|
-
source = await fs.readFile(path.join(
|
|
141
|
+
source = await fs.readFile(path.join(config.root, filename), 'utf8');
|
|
156
142
|
} catch (err) {
|
|
157
143
|
console.error(pc.bold(pc.red(`file read error with "${filename}"`)));
|
|
158
144
|
console.error(err);
|
|
@@ -182,6 +168,17 @@ if (result.type === 'generate') {
|
|
|
182
168
|
process.exit(1);
|
|
183
169
|
}
|
|
184
170
|
|
|
171
|
+
const issues = refineLexiconDoc(result.value, true);
|
|
172
|
+
if (issues.length > 0) {
|
|
173
|
+
console.error(pc.bold(pc.red(`lint validation failed for "${filename}"`)));
|
|
174
|
+
|
|
175
|
+
for (const issue of issues) {
|
|
176
|
+
console.log(`- ${issue.message} at .${issue.path.join('.')}`);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
|
|
185
182
|
documents.push(result.value);
|
|
186
183
|
}
|
|
187
184
|
|
|
@@ -196,7 +193,7 @@ if (result.type === 'generate') {
|
|
|
196
193
|
},
|
|
197
194
|
});
|
|
198
195
|
|
|
199
|
-
const outdir = path.join(
|
|
196
|
+
const outdir = path.join(config.root, config.outdir);
|
|
200
197
|
|
|
201
198
|
for (const file of generationResult.files) {
|
|
202
199
|
const filename = path.join(outdir, file.filename);
|
package/src/codegen.ts
CHANGED
|
@@ -3,12 +3,9 @@ import { dirname as getDirname, relative as getRelativePath } from 'node:path/po
|
|
|
3
3
|
import * as prettier from 'prettier';
|
|
4
4
|
|
|
5
5
|
import type {
|
|
6
|
-
|
|
7
|
-
LexBlob,
|
|
6
|
+
LexDefinableField,
|
|
8
7
|
LexiconDoc,
|
|
9
|
-
LexIpldType,
|
|
10
8
|
LexObject,
|
|
11
|
-
LexPrimitive,
|
|
12
9
|
LexRecord,
|
|
13
10
|
LexRefVariant,
|
|
14
11
|
LexUnknown,
|
|
@@ -177,6 +174,10 @@ export const generateLexiconApi = async (opts: LexiconApiOptions): Promise<Lexic
|
|
|
177
174
|
result = `${PURE} v.literal(${lit(stripMainHash(defUri))})`;
|
|
178
175
|
break;
|
|
179
176
|
}
|
|
177
|
+
case 'permission-set': {
|
|
178
|
+
// skip permission sets
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
180
181
|
default: {
|
|
181
182
|
result = generateType(imports, defUri, def);
|
|
182
183
|
break;
|
|
@@ -248,11 +249,7 @@ export const generateLexiconApi = async (opts: LexiconApiOptions): Promise<Lexic
|
|
|
248
249
|
}
|
|
249
250
|
|
|
250
251
|
if (def.message?.schema) {
|
|
251
|
-
|
|
252
|
-
file.sinterfaces += `export interface $message extends v.InferInput<${camelcased}Schema['message']> {}\n`;
|
|
253
|
-
} else {
|
|
254
|
-
file.sinterfaces += `export type $message = v.InferInput<${camelcased}Schema['message']>;\n`;
|
|
255
|
-
}
|
|
252
|
+
file.sinterfaces += `export type $message = v.InferInput<${camelcased}Schema['message']>;\n`;
|
|
256
253
|
}
|
|
257
254
|
|
|
258
255
|
break;
|
|
@@ -400,15 +397,9 @@ const generateXrpcSubscription = (imports: ImportSet, defUri: string, spec: LexX
|
|
|
400
397
|
inner += `"params": ${params},`;
|
|
401
398
|
|
|
402
399
|
if (schema) {
|
|
403
|
-
|
|
404
|
-
const res = generateObject(imports, defUri, schema, 'none');
|
|
400
|
+
const res = generateType(imports, defUri, schema);
|
|
405
401
|
|
|
406
|
-
|
|
407
|
-
} else {
|
|
408
|
-
const res = generateType(imports, defUri, schema);
|
|
409
|
-
|
|
410
|
-
inner += `get "message" () { return ${res} },`;
|
|
411
|
-
}
|
|
402
|
+
inner += `get "message" () { return ${res} },`;
|
|
412
403
|
} else {
|
|
413
404
|
inner += `"message": null,`;
|
|
414
405
|
}
|
|
@@ -687,12 +678,7 @@ const generateJsdocField = (spec: LexUserType | LexRefVariant | LexUnknown) => {
|
|
|
687
678
|
return res;
|
|
688
679
|
};
|
|
689
680
|
|
|
690
|
-
const generateType = (
|
|
691
|
-
imports: ImportSet,
|
|
692
|
-
defUri: string,
|
|
693
|
-
spec: LexArray | LexPrimitive | LexIpldType | LexRefVariant | LexBlob,
|
|
694
|
-
lazy = false,
|
|
695
|
-
): string => {
|
|
681
|
+
const generateType = (imports: ImportSet, defUri: string, spec: LexDefinableField, lazy = false): string => {
|
|
696
682
|
switch (spec.type) {
|
|
697
683
|
// LexRefVariant
|
|
698
684
|
case 'ref': {
|
|
@@ -773,12 +759,12 @@ const generateType = (
|
|
|
773
759
|
|
|
774
760
|
// LexPrimitive
|
|
775
761
|
case 'boolean': {
|
|
762
|
+
let call = `${PURE} v.boolean()`;
|
|
763
|
+
|
|
776
764
|
if (spec.const !== undefined) {
|
|
777
|
-
|
|
765
|
+
call = `${PURE} v.literal(${spec.const})`;
|
|
778
766
|
}
|
|
779
767
|
|
|
780
|
-
let call = `${PURE} v.boolean()`;
|
|
781
|
-
|
|
782
768
|
if (spec.default !== undefined) {
|
|
783
769
|
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
784
770
|
}
|
|
@@ -786,20 +772,6 @@ const generateType = (
|
|
|
786
772
|
return call;
|
|
787
773
|
}
|
|
788
774
|
case 'integer': {
|
|
789
|
-
if (spec.const !== undefined) {
|
|
790
|
-
return `${PURE} v.literal(${lit(spec.const)})`;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
if (spec.enum !== undefined) {
|
|
794
|
-
let call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
795
|
-
|
|
796
|
-
if (spec.default !== undefined) {
|
|
797
|
-
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
return call;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
775
|
let pipe: string[] = [];
|
|
804
776
|
|
|
805
777
|
if ((spec.minimum ?? 0) > 0 || spec.maximum !== undefined) {
|
|
@@ -812,7 +784,11 @@ const generateType = (
|
|
|
812
784
|
|
|
813
785
|
let call = `${PURE} v.integer()`;
|
|
814
786
|
|
|
815
|
-
if (
|
|
787
|
+
if (spec.const !== undefined) {
|
|
788
|
+
call = `${PURE} v.literal(${lit(spec.const)})`;
|
|
789
|
+
} else if (spec.enum !== undefined) {
|
|
790
|
+
call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
791
|
+
} else if (pipe.length !== 0) {
|
|
816
792
|
call = `${PURE} v.constrain(${call}, [ ${pipe.join(', ')} ])`;
|
|
817
793
|
}
|
|
818
794
|
|
|
@@ -823,20 +799,6 @@ const generateType = (
|
|
|
823
799
|
return call;
|
|
824
800
|
}
|
|
825
801
|
case 'string': {
|
|
826
|
-
if (spec.const !== undefined) {
|
|
827
|
-
return `${PURE} v.literal(${lit(spec.const)})`;
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
if (spec.enum !== undefined) {
|
|
831
|
-
let call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
832
|
-
|
|
833
|
-
if (spec.default !== undefined) {
|
|
834
|
-
call = `${PURE} v.optional(${call}, ${lit(spec.default)})`;
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
return call;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
802
|
let pipe: string[] = [];
|
|
841
803
|
|
|
842
804
|
if ((spec.minLength ?? 0) > 0 || spec.maxLength !== undefined) {
|
|
@@ -908,7 +870,11 @@ const generateType = (
|
|
|
908
870
|
}
|
|
909
871
|
}
|
|
910
872
|
|
|
911
|
-
if (
|
|
873
|
+
if (spec.const !== undefined) {
|
|
874
|
+
call = `${PURE} v.literal(${lit(spec.const)})`;
|
|
875
|
+
} else if (spec.enum !== undefined) {
|
|
876
|
+
call = `${PURE} v.literalEnum(${lit(spec.enum.toSorted())})`;
|
|
877
|
+
} else if (pipe.length !== 0) {
|
|
912
878
|
call = `${PURE} v.constrain(${call}, [ ${pipe.join(', ')} ])`;
|
|
913
879
|
}
|
|
914
880
|
|
|
@@ -953,9 +919,7 @@ const generateType = (
|
|
|
953
919
|
}
|
|
954
920
|
};
|
|
955
921
|
|
|
956
|
-
const isRefVariant = (
|
|
957
|
-
spec: LexArray | LexPrimitive | LexIpldType | LexRefVariant | LexBlob,
|
|
958
|
-
): spec is LexRefVariant => {
|
|
922
|
+
const isRefVariant = (spec: LexDefinableField): spec is LexRefVariant => {
|
|
959
923
|
const type = spec.type;
|
|
960
924
|
return type === 'ref' || type === 'union';
|
|
961
925
|
};
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import * as url from 'node:url';
|
|
3
|
+
|
|
4
|
+
import * as v from '@badrap/valita';
|
|
5
|
+
import pc from 'picocolors';
|
|
6
|
+
|
|
7
|
+
import { isNsid } from '@atcute/lexicons/syntax';
|
|
8
|
+
|
|
9
|
+
import type { ImportMapping } from './codegen.js';
|
|
10
|
+
|
|
11
|
+
const isValidLexiconPattern = (pattern: string): boolean => {
|
|
12
|
+
if (pattern.endsWith('.*')) {
|
|
13
|
+
return isNsid(`${pattern.slice(0, -2)}.x`);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return isNsid(pattern);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const mappingImports: v.Type<ImportMapping['imports']> = v.unknown().chain((value) => {
|
|
20
|
+
if (typeof value === 'string') {
|
|
21
|
+
if (value.length === 0) {
|
|
22
|
+
return v.err({ message: 'imports must not be empty' });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return v.ok(value);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (typeof value === 'function') {
|
|
29
|
+
return v.ok(value as ImportMapping['imports']);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return v.err({ message: 'imports must be a string or function' });
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const importMappingSchema: v.Type<ImportMapping> = v.object({
|
|
36
|
+
nsid: v
|
|
37
|
+
.array(
|
|
38
|
+
v.string().chain((value) => {
|
|
39
|
+
if (!isValidLexiconPattern(value)) {
|
|
40
|
+
return v.err({
|
|
41
|
+
message: 'invalid NSID pattern (must be valid NSID or end with .*)',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return v.ok(value);
|
|
46
|
+
}),
|
|
47
|
+
)
|
|
48
|
+
.assert((patterns) => patterns.length > 0, {
|
|
49
|
+
message: 'nsid requires at least one pattern',
|
|
50
|
+
}),
|
|
51
|
+
imports: mappingImports,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
export const lexiconConfigSchema = v.object({
|
|
55
|
+
outdir: v.string().assert((value) => value.length > 0, {
|
|
56
|
+
message: 'outdir must not be empty',
|
|
57
|
+
}),
|
|
58
|
+
files: v
|
|
59
|
+
.array(
|
|
60
|
+
v.string().assert((value) => value.length > 0, {
|
|
61
|
+
message: 'files entries must not be empty',
|
|
62
|
+
}),
|
|
63
|
+
)
|
|
64
|
+
.assert((value) => value.length > 0, {
|
|
65
|
+
message: 'files must include at least one pattern',
|
|
66
|
+
}),
|
|
67
|
+
imports: v
|
|
68
|
+
.array(
|
|
69
|
+
v.string().assert((value) => value.length > 0, {
|
|
70
|
+
message: 'imports entries must not be empty',
|
|
71
|
+
}),
|
|
72
|
+
)
|
|
73
|
+
.optional(),
|
|
74
|
+
mappings: v.array(importMappingSchema).optional(),
|
|
75
|
+
modules: v
|
|
76
|
+
.object({
|
|
77
|
+
importSuffix: v
|
|
78
|
+
.string()
|
|
79
|
+
.assert((value) => value.length > 0, { message: 'importSuffix must not be empty' })
|
|
80
|
+
.optional(),
|
|
81
|
+
})
|
|
82
|
+
.partial()
|
|
83
|
+
.optional(),
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
export type LexiconConfig = v.Infer<typeof lexiconConfigSchema>;
|
|
87
|
+
|
|
88
|
+
export interface NormalizedConfig extends LexiconConfig {
|
|
89
|
+
root: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export const loadConfig = async (configPath: string): Promise<NormalizedConfig> => {
|
|
93
|
+
const configFilename = path.resolve(configPath);
|
|
94
|
+
const configDirname = path.dirname(configFilename);
|
|
95
|
+
|
|
96
|
+
let rawConfig: unknown;
|
|
97
|
+
try {
|
|
98
|
+
const configURL = url.pathToFileURL(configFilename);
|
|
99
|
+
const configMod = (await import(configURL.href)) as { default: unknown };
|
|
100
|
+
rawConfig = configMod.default;
|
|
101
|
+
} catch (err) {
|
|
102
|
+
console.error(pc.bold(pc.red(`failed to import config:`)));
|
|
103
|
+
console.error(err);
|
|
104
|
+
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const configResult = lexiconConfigSchema.try(rawConfig, { mode: 'passthrough' });
|
|
109
|
+
if (!configResult.ok) {
|
|
110
|
+
console.error(pc.bold(pc.red(`invalid config:`)));
|
|
111
|
+
console.error(configResult.message);
|
|
112
|
+
|
|
113
|
+
for (const issue of configResult.issues) {
|
|
114
|
+
console.log(`- ${issue.code} at .${issue.path.join('.')}`);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return { ...configResult.value, root: configDirname };
|
|
121
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { lexiconConfigSchema, type LexiconConfig } from './config.js';
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
outdir: string;
|
|
5
|
-
files: string[];
|
|
6
|
-
imports?: string[];
|
|
7
|
-
mappings?: ImportMapping[];
|
|
8
|
-
modules?: {
|
|
9
|
-
importSuffix?: string;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
3
|
+
export type { LexiconConfig };
|
|
12
4
|
|
|
13
5
|
export const defineLexiconConfig = (config: LexiconConfig): LexiconConfig => {
|
|
14
|
-
return config;
|
|
6
|
+
return lexiconConfigSchema.parse(config);
|
|
15
7
|
};
|
package/src/lexicon-metadata.ts
CHANGED
|
@@ -39,11 +39,9 @@ const isValidLexiconPattern = (pattern: string): boolean => {
|
|
|
39
39
|
*/
|
|
40
40
|
const lexiconMappingEntry: v.Type<LexiconMappingEntry> = v.object({
|
|
41
41
|
type: v.union(v.literal('namespace'), v.literal('named')),
|
|
42
|
-
path: v
|
|
43
|
-
.
|
|
44
|
-
|
|
45
|
-
message: `path must be "." or start with "./"`,
|
|
46
|
-
}),
|
|
42
|
+
path: v.string().assert((input): input is LexiconMappingPath => input === '.' || input.startsWith('./'), {
|
|
43
|
+
message: `path must be "." or start with "./"`,
|
|
44
|
+
}),
|
|
47
45
|
});
|
|
48
46
|
|
|
49
47
|
/**
|