@atcute/lex-cli 2.8.2 → 3.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 +43 -29
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +6 -7
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +26 -9
- package/dist/commands/pull.js.map +1 -1
- package/dist/config.d.ts +60 -157
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +68 -137
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lexicon-loader.d.ts.map +1 -1
- package/dist/lexicon-loader.js +7 -8
- package/dist/lexicon-loader.js.map +1 -1
- package/dist/lexicon-metadata.d.ts +2 -2
- package/dist/lexicon-metadata.d.ts.map +1 -1
- package/dist/lexicon-metadata.js +13 -34
- package/dist/lexicon-metadata.js.map +1 -1
- package/dist/pull-sources/atproto.d.ts.map +1 -1
- package/dist/pull-sources/atproto.js +5 -3
- package/dist/pull-sources/atproto.js.map +1 -1
- package/dist/utils/issues.d.ts +4 -0
- package/dist/utils/issues.d.ts.map +1 -0
- package/dist/utils/issues.js +9 -0
- package/dist/utils/issues.js.map +1 -0
- package/dist/utils/nsid-pattern.d.ts +6 -0
- package/dist/utils/nsid-pattern.d.ts.map +1 -0
- package/dist/utils/nsid-pattern.js +12 -0
- package/dist/utils/nsid-pattern.js.map +1 -0
- package/package.json +7 -7
- package/src/commands/generate.ts +6 -9
- package/src/commands/pull.ts +28 -11
- package/src/config.ts +172 -189
- package/src/index.ts +3 -1
- package/src/lexicon-loader.ts +8 -10
- package/src/lexicon-metadata.ts +19 -36
- package/src/pull-sources/atproto.ts +4 -3
- package/src/utils/issues.ts +9 -0
- package/src/utils/nsid-pattern.ts +12 -0
package/dist/config.js
CHANGED
|
@@ -11,135 +11,90 @@ import * as path from 'node:path';
|
|
|
11
11
|
import * as url from 'node:url';
|
|
12
12
|
import { isAtprotoDid } from '@atcute/identity';
|
|
13
13
|
import { isHandle, isNsid } from '@atcute/lexicons/syntax';
|
|
14
|
-
import * as v from '@badrap/valita';
|
|
15
14
|
import pc from 'picocolors';
|
|
16
|
-
|
|
15
|
+
import * as v from 'valibot';
|
|
16
|
+
import { printValibotIssues } from './utils/issues.js';
|
|
17
|
+
import { isValidLexiconPattern } from './utils/nsid-pattern.js';
|
|
18
|
+
const nonEmptyString = v.pipe(v.string(), v.nonEmpty(`must not be empty`));
|
|
19
|
+
const gitSourceConfigSchema = v.looseObject({
|
|
17
20
|
type: v.literal('git'),
|
|
18
|
-
remote:
|
|
19
|
-
ref: v
|
|
20
|
-
|
|
21
|
-
.assert((value) => value.length > 0, `must not be empty`)
|
|
22
|
-
.optional(),
|
|
23
|
-
pattern: v
|
|
24
|
-
.array(v.string().assert((value) => value.length > 0, `must not be empty`))
|
|
25
|
-
.assert((value) => value.length > 0, `must include at least one glob pattern`),
|
|
21
|
+
remote: nonEmptyString,
|
|
22
|
+
ref: v.optional(nonEmptyString),
|
|
23
|
+
pattern: v.pipe(v.array(nonEmptyString), v.minLength(1, `must include at least one glob pattern`)),
|
|
26
24
|
});
|
|
27
|
-
const atprotoNsidsSourceConfigSchema = v.
|
|
25
|
+
const atprotoNsidsSourceConfigSchema = v.looseObject({
|
|
28
26
|
type: v.literal('atproto'),
|
|
29
27
|
mode: v.literal('nsids'),
|
|
30
|
-
nsids: v
|
|
31
|
-
.array(v.string().assert((value) => isNsid(value), `must be valid nsid`))
|
|
32
|
-
.assert((value) => value.length > 0, `must include at least one nsid`),
|
|
28
|
+
nsids: v.pipe(v.array(v.custom(isNsid, `must be valid nsid`)), v.minLength(1, `must include at least one nsid`)),
|
|
33
29
|
});
|
|
34
|
-
const atprotoAuthoritySourceConfigSchema = v.
|
|
30
|
+
const atprotoAuthoritySourceConfigSchema = v.looseObject({
|
|
35
31
|
type: v.literal('atproto'),
|
|
36
32
|
mode: v.literal('authority'),
|
|
37
|
-
authority: v
|
|
38
|
-
|
|
39
|
-
.assert((value) => isHandle(value) || isAtprotoDid(value), `must a valid at-identifier`),
|
|
40
|
-
pattern: v
|
|
41
|
-
.array(v
|
|
42
|
-
.string()
|
|
43
|
-
.assert((value) => isValidLexiconPattern(value), `must be valid nsid or pattern ending with .*`))
|
|
44
|
-
.optional(),
|
|
33
|
+
authority: v.pipe(v.string(), v.check((value) => isHandle(value) || isAtprotoDid(value), `must be a valid at-identifier`)),
|
|
34
|
+
pattern: v.optional(v.array(v.pipe(v.string(), v.check(isValidLexiconPattern, `must be valid nsid or pattern ending with .*`)))),
|
|
45
35
|
});
|
|
46
|
-
const atprotoSourceConfigSchema = v.union(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
const atprotoSourceConfigSchema = v.union([
|
|
37
|
+
atprotoNsidsSourceConfigSchema,
|
|
38
|
+
atprotoAuthoritySourceConfigSchema,
|
|
39
|
+
]);
|
|
40
|
+
const sourceConfigSchema = v.union([gitSourceConfigSchema, atprotoSourceConfigSchema]);
|
|
41
|
+
const pullConfigSchema = v.looseObject({
|
|
42
|
+
outdir: nonEmptyString,
|
|
43
|
+
clean: v.optional(v.boolean()),
|
|
44
|
+
sources: v.pipe(v.array(sourceConfigSchema), v.minLength(1, `must include at least one source`)),
|
|
54
45
|
});
|
|
55
|
-
const exportConfigSchema = v.
|
|
56
|
-
outdir:
|
|
57
|
-
files: v.
|
|
58
|
-
clean: v.
|
|
46
|
+
const exportConfigSchema = v.looseObject({
|
|
47
|
+
outdir: nonEmptyString,
|
|
48
|
+
files: v.optional(v.array(nonEmptyString)),
|
|
49
|
+
clean: v.optional(v.boolean()),
|
|
59
50
|
});
|
|
60
|
-
const formatterConfigSchema = v.union(
|
|
61
|
-
type: v.literal('
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
return isNsid(pattern);
|
|
76
|
-
};
|
|
77
|
-
const mappingImports = v.unknown().chain((value) => {
|
|
51
|
+
const formatterConfigSchema = v.union([
|
|
52
|
+
v.looseObject({ type: v.literal('prettier') }),
|
|
53
|
+
v.looseObject({
|
|
54
|
+
type: v.literal('command'),
|
|
55
|
+
command: nonEmptyString,
|
|
56
|
+
concurrency: v.optional(v.pipe(v.number(), v.check((value) => Number.isInteger(value) && value > 0, `must be a positive integer`)), () => 1),
|
|
57
|
+
}),
|
|
58
|
+
v.looseObject({
|
|
59
|
+
type: v.literal('lsp'),
|
|
60
|
+
command: nonEmptyString,
|
|
61
|
+
}),
|
|
62
|
+
]);
|
|
63
|
+
const mappingImports = v.pipe(v.unknown(), v.rawTransform(({ dataset, addIssue, NEVER }) => {
|
|
64
|
+
const value = dataset.value;
|
|
78
65
|
if (typeof value === 'string') {
|
|
79
66
|
if (value.length === 0) {
|
|
80
|
-
|
|
67
|
+
addIssue({ message: 'imports must not be empty' });
|
|
68
|
+
return NEVER;
|
|
81
69
|
}
|
|
82
|
-
return
|
|
70
|
+
return value;
|
|
83
71
|
}
|
|
84
72
|
if (typeof value === 'function') {
|
|
85
|
-
return
|
|
73
|
+
return value;
|
|
86
74
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (!isValidLexiconPattern(value)) {
|
|
93
|
-
return v.err(`invalid NSID pattern (must be valid NSID or end with .*)`);
|
|
94
|
-
}
|
|
95
|
-
return v.ok(value);
|
|
96
|
-
}))
|
|
97
|
-
.assert((patterns) => patterns.length > 0, `nsid requires at least one pattern`),
|
|
75
|
+
addIssue({ message: 'imports must be a string or function' });
|
|
76
|
+
return NEVER;
|
|
77
|
+
}));
|
|
78
|
+
const importMappingSchema = v.looseObject({
|
|
79
|
+
nsid: v.pipe(v.array(v.pipe(v.string(), v.check(isValidLexiconPattern, `invalid NSID pattern (must be valid NSID or end with .*)`))), v.minLength(1, `nsid requires at least one pattern`)),
|
|
98
80
|
imports: mappingImports,
|
|
99
81
|
});
|
|
100
|
-
const modulesConfigSchema = v
|
|
101
|
-
.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
.string()
|
|
111
|
-
.assert((value) => value.length > 0, `must not be empty`)
|
|
112
|
-
.optional(),
|
|
113
|
-
files: v
|
|
114
|
-
.array(v.string().assert((value) => value.length > 0, `must not be empty`))
|
|
115
|
-
.assert((value) => value.length > 0, `must include at least one glob pattern`)
|
|
116
|
-
.optional(),
|
|
117
|
-
imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
|
|
118
|
-
mappings: v.array(importMappingSchema).optional(),
|
|
119
|
-
modules: modulesConfigSchema.optional(),
|
|
120
|
-
clean: v.boolean().optional(),
|
|
82
|
+
const modulesConfigSchema = v.looseObject({
|
|
83
|
+
importSuffix: v.optional(nonEmptyString),
|
|
84
|
+
});
|
|
85
|
+
const generateConfigSchema = v.looseObject({
|
|
86
|
+
outdir: v.optional(nonEmptyString),
|
|
87
|
+
files: v.optional(v.pipe(v.array(nonEmptyString), v.minLength(1, `must include at least one glob pattern`))),
|
|
88
|
+
imports: v.optional(v.array(nonEmptyString)),
|
|
89
|
+
mappings: v.optional(v.array(importMappingSchema)),
|
|
90
|
+
modules: v.optional(modulesConfigSchema),
|
|
91
|
+
clean: v.optional(v.boolean()),
|
|
121
92
|
});
|
|
122
|
-
export const lexiconConfigSchema = v.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
.optional(),
|
|
128
|
-
/** @deprecated moved to `generate.files` */
|
|
129
|
-
files: v
|
|
130
|
-
.array(v.string().assert((value) => value.length > 0, `must not be empty`))
|
|
131
|
-
.assert((value) => value.length > 0, `must include at least one glob pattern`)
|
|
132
|
-
.optional(),
|
|
133
|
-
/** @deprecated moved to `generate.imports` */
|
|
134
|
-
imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
|
|
135
|
-
/** @deprecated moved to `generate.mappings` */
|
|
136
|
-
mappings: v.array(importMappingSchema).optional(),
|
|
137
|
-
/** @deprecated moved to `generate.modules` */
|
|
138
|
-
modules: modulesConfigSchema.optional(),
|
|
139
|
-
formatter: formatterConfigSchema.optional(),
|
|
140
|
-
generate: generateConfigSchema.optional(),
|
|
141
|
-
pull: pullConfigSchema.optional(),
|
|
142
|
-
export: exportConfigSchema.optional(),
|
|
93
|
+
export const lexiconConfigSchema = v.looseObject({
|
|
94
|
+
formatter: v.optional(formatterConfigSchema, () => ({ type: 'prettier' })),
|
|
95
|
+
generate: v.optional(generateConfigSchema),
|
|
96
|
+
pull: v.optional(pullConfigSchema),
|
|
97
|
+
export: v.optional(exportConfigSchema),
|
|
143
98
|
});
|
|
144
99
|
export const loadConfig = async (configPath) => {
|
|
145
100
|
let configFilename;
|
|
@@ -147,7 +102,6 @@ export const loadConfig = async (configPath) => {
|
|
|
147
102
|
configFilename = path.resolve(configPath);
|
|
148
103
|
}
|
|
149
104
|
else {
|
|
150
|
-
// try to find lex.config.js or lex.config.ts in the current directory
|
|
151
105
|
const candidates = ['lex.config.js', 'lex.config.ts'];
|
|
152
106
|
for (const candidate of candidates) {
|
|
153
107
|
const candidatePath = path.resolve(candidate);
|
|
@@ -178,35 +132,12 @@ export const loadConfig = async (configPath) => {
|
|
|
178
132
|
console.error(err);
|
|
179
133
|
process.exit(1);
|
|
180
134
|
}
|
|
181
|
-
const configResult =
|
|
182
|
-
if (!configResult.
|
|
135
|
+
const configResult = v.safeParse(lexiconConfigSchema, rawConfig);
|
|
136
|
+
if (!configResult.success) {
|
|
183
137
|
console.error(pc.bold(pc.red(`invalid config:`)));
|
|
184
|
-
|
|
185
|
-
for (const issue of configResult.issues) {
|
|
186
|
-
console.log(`- ${issue.code} at .${issue.path.join('.')}`);
|
|
187
|
-
}
|
|
138
|
+
printValibotIssues(configResult.issues);
|
|
188
139
|
process.exit(1);
|
|
189
140
|
}
|
|
190
|
-
|
|
191
|
-
// back-compat: top-level generate options were moved into `generate.*`. merge the legacy
|
|
192
|
-
// top-level values into `generate`, with nested `generate.*` winning on conflicts. the result
|
|
193
|
-
// is only present if at least one generate-related option was provided anywhere.
|
|
194
|
-
const hasLegacyTopLevel = outdir !== undefined ||
|
|
195
|
-
files !== undefined ||
|
|
196
|
-
imports !== undefined ||
|
|
197
|
-
mappings !== undefined ||
|
|
198
|
-
modules !== undefined;
|
|
199
|
-
let normalizedGenerate;
|
|
200
|
-
if (generate || hasLegacyTopLevel) {
|
|
201
|
-
normalizedGenerate = {
|
|
202
|
-
outdir: generate?.outdir ?? outdir,
|
|
203
|
-
files: generate?.files ?? files,
|
|
204
|
-
imports: generate?.imports ?? imports,
|
|
205
|
-
mappings: generate?.mappings ?? mappings,
|
|
206
|
-
modules: generate?.modules ?? modules,
|
|
207
|
-
clean: generate?.clean,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
return { ...rest, formatter, generate: normalizedGenerate, root: configDirname };
|
|
141
|
+
return { ...configResult.output, root: configDirname };
|
|
211
142
|
};
|
|
212
143
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,mBAAmB,WAAY,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":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AAItE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAqB,EAAiB,EAAE;IAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AAItE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAqB,EAAiB,EAAE;IAC3E,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-loader.d.ts","sourceRoot":"","sources":["../src/lexicon-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lexicon-loader.d.ts","sourceRoot":"","sources":["../src/lexicon-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAuGD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,aAAoB,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAmE5F,CAAC"}
|
package/dist/lexicon-loader.js
CHANGED
|
@@ -12,6 +12,8 @@ import * as url from 'node:url';
|
|
|
12
12
|
import { lexiconDoc, refineLexiconDoc } from '@atcute/lexicon-doc';
|
|
13
13
|
import { build } from '@atcute/lexicon-doc/builder';
|
|
14
14
|
import pc from 'picocolors';
|
|
15
|
+
import * as v from 'valibot';
|
|
16
|
+
import { printValibotIssues } from './utils/issues.js';
|
|
15
17
|
/** file extensions recognized as module files */
|
|
16
18
|
const MODULE_EXTENSIONS = new Set(['.js', '.cjs', '.mjs', '.ts', '.cts', '.mts']);
|
|
17
19
|
/**
|
|
@@ -61,16 +63,13 @@ const loadJsonFile = async (absolutePath, relativePath) => {
|
|
|
61
63
|
console.error(err);
|
|
62
64
|
process.exit(1);
|
|
63
65
|
}
|
|
64
|
-
const result =
|
|
65
|
-
if (!result.
|
|
66
|
+
const result = v.safeParse(lexiconDoc, json);
|
|
67
|
+
if (!result.success) {
|
|
66
68
|
console.error(pc.bold(pc.red(`schema validation failed for "${relativePath}"`)));
|
|
67
|
-
|
|
68
|
-
for (const issue of result.issues) {
|
|
69
|
-
console.log(`- ${issue.code} at .${issue.path.join('.')}`);
|
|
70
|
-
}
|
|
69
|
+
printValibotIssues(result.issues);
|
|
71
70
|
process.exit(1);
|
|
72
71
|
}
|
|
73
|
-
const issues = refineLexiconDoc(result.
|
|
72
|
+
const issues = refineLexiconDoc(result.output, true);
|
|
74
73
|
if (issues.length > 0) {
|
|
75
74
|
console.error(pc.bold(pc.red(`lint validation failed for "${relativePath}"`)));
|
|
76
75
|
for (const issue of issues) {
|
|
@@ -78,7 +77,7 @@ const loadJsonFile = async (absolutePath, relativePath) => {
|
|
|
78
77
|
}
|
|
79
78
|
process.exit(1);
|
|
80
79
|
}
|
|
81
|
-
return result.
|
|
80
|
+
return result.output;
|
|
82
81
|
};
|
|
83
82
|
/**
|
|
84
83
|
* loads a LexDocumentBuilder from a module file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-loader.js","sourceRoot":"","sources":["../src/lexicon-loader.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,KAAK,EAA2B,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lexicon-loader.js","sourceRoot":"","sources":["../src/lexicon-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as v from '
|
|
1
|
+
import * as v from 'valibot';
|
|
2
2
|
export type LexiconMappingEntryType = 'namespace' | 'named';
|
|
3
3
|
export type LexiconMappingPath = '.' | `./${string}`;
|
|
4
4
|
export interface LexiconMappingEntry {
|
|
@@ -15,5 +15,5 @@ export interface PackageJsonWithLexicons {
|
|
|
15
15
|
/**
|
|
16
16
|
* Schema for package.json with atcute:lexicons field
|
|
17
17
|
*/
|
|
18
|
-
export declare const packageJsonSchema: v.
|
|
18
|
+
export declare const packageJsonSchema: v.GenericSchema<unknown, PackageJsonWithLexicons>;
|
|
19
19
|
//# sourceMappingURL=lexicon-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-metadata.d.ts","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lexicon-metadata.d.ts","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,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;AAgCD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,uBAAuB,CAE9E,CAAC"}
|
package/dist/lexicon-metadata.js
CHANGED
|
@@ -1,51 +1,30 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
/**
|
|
4
|
-
* Validates if a string is a valid NSID pattern (exact or wildcard)
|
|
5
|
-
* - Exact: "com.atproto.repo.getRecord"
|
|
6
|
-
* - Wildcard: "com.atproto.*"
|
|
7
|
-
*/
|
|
8
|
-
const isValidLexiconPattern = (pattern) => {
|
|
9
|
-
if (pattern.endsWith('.*')) {
|
|
10
|
-
// For wildcards, remove the .* and validate the prefix as an NSID segment
|
|
11
|
-
const prefix = pattern.slice(0, -2);
|
|
12
|
-
// Add a dummy segment to make it a valid NSID for validation
|
|
13
|
-
return isNsid(prefix + '.x');
|
|
14
|
-
}
|
|
15
|
-
return isNsid(pattern);
|
|
16
|
-
};
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
import { isValidLexiconPattern } from './utils/nsid-pattern.js';
|
|
17
3
|
/**
|
|
18
4
|
* Schema for a single lexicon mapping entry
|
|
19
5
|
*/
|
|
20
|
-
const lexiconMappingEntry = v.
|
|
21
|
-
type: v.
|
|
22
|
-
path: v.
|
|
23
|
-
message: `path must be "." or start with "./"`,
|
|
24
|
-
}),
|
|
6
|
+
const lexiconMappingEntry = v.looseObject({
|
|
7
|
+
type: v.picklist(['namespace', 'named']),
|
|
8
|
+
path: v.custom((input) => typeof input === 'string' && (input === '.' || input.startsWith('./')), `path must be "." or start with "./"`),
|
|
25
9
|
});
|
|
26
10
|
/**
|
|
27
11
|
* Schema for the atcute:lexicons field in package.json
|
|
28
12
|
*/
|
|
29
|
-
const mappingsSchema = v
|
|
30
|
-
.record(lexiconMappingEntry)
|
|
31
|
-
.chain((input) => {
|
|
13
|
+
const mappingsSchema = v.pipe(v.record(v.string(), lexiconMappingEntry), v.check((input) => {
|
|
32
14
|
for (const key in input) {
|
|
33
15
|
if (!isValidLexiconPattern(key)) {
|
|
34
|
-
return
|
|
35
|
-
message: `invalid NSID pattern (must be valid NSID or end with .*)`,
|
|
36
|
-
path: [key],
|
|
37
|
-
});
|
|
16
|
+
return false;
|
|
38
17
|
}
|
|
39
18
|
}
|
|
40
|
-
return
|
|
41
|
-
});
|
|
42
|
-
const atcuteLexiconsField = v.
|
|
43
|
-
mappings:
|
|
19
|
+
return true;
|
|
20
|
+
}, `invalid NSID pattern (must be valid NSID or end with .*)`));
|
|
21
|
+
const atcuteLexiconsField = v.looseObject({
|
|
22
|
+
mappings: v.optional(mappingsSchema),
|
|
44
23
|
});
|
|
45
24
|
/**
|
|
46
25
|
* Schema for package.json with atcute:lexicons field
|
|
47
26
|
*/
|
|
48
|
-
export const packageJsonSchema = v.
|
|
49
|
-
'atcute:lexicons':
|
|
27
|
+
export const packageJsonSchema = v.looseObject({
|
|
28
|
+
'atcute:lexicons': v.optional(atcuteLexiconsField),
|
|
50
29
|
});
|
|
51
30
|
//# sourceMappingURL=lexicon-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexicon-metadata.js","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lexicon-metadata.js","sourceRoot":"","sources":["../src/lexicon-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAmBhE;;GAEG;AACH,MAAM,mBAAmB,GAAkD,CAAC,CAAC,WAAW,CAAC;IACxF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,CACb,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACjF,qCAAqC,CACrC;CACD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAkE,CAAC,CAAC,IAAI,CAC3F,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,EACzC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,0DAA0D,CAAC,CAC9D,CAAC;AAEF,MAAM,mBAAmB,GAAkD,CAAC,CAAC,WAAW,CAAC;IACxF,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsD,CAAC,CAAC,WAAW,CAAC;IACjG,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAClD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atproto.d.ts","sourceRoot":"","sources":["../../src/pull-sources/atproto.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"atproto.d.ts","sourceRoot":"","sources":["../../src/pull-sources/atproto.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAqE7D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAAkB,mBAAmB,KAAG,OAAO,CAAC,UAAU,CAmJvF,CAAC"}
|
|
@@ -38,11 +38,13 @@ const discoverLexiconsForAuthority = async (authority, didResolver) => {
|
|
|
38
38
|
const data = (await response.json());
|
|
39
39
|
// extract NSIDs from record keys (the rkey in at://did/collection/rkey)
|
|
40
40
|
for (const record of data.records) {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
let nsid;
|
|
42
|
+
try {
|
|
43
|
+
nsid = parseCanonicalResourceUri(record.uri).rkey;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
43
46
|
continue;
|
|
44
47
|
}
|
|
45
|
-
const nsid = r.value.rkey;
|
|
46
48
|
if (!isNsid(nsid)) {
|
|
47
49
|
continue;
|
|
48
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atproto.js","sourceRoot":"","sources":["../../src/pull-sources/atproto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EACN,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EACN,QAAQ,EACR,MAAM,EACN,yBAAyB,GAGzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,MAAM,YAAY,CAAC;AAM5B;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAG,KAAK,EACzC,SAAqB,EACrB,WAAgC,EACd,EAAE;IACpB,kCAAkC;IAClC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,sEAAsE;IACtE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,MAA0B,CAAC;IAE/B,GAAG,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oCAAoC,EAAE,WAAW,CAAC,CAAC;QACvE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;QACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACtC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;QAEF,wEAAwE;QACxE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,
|
|
1
|
+
{"version":3,"file":"atproto.js","sourceRoot":"","sources":["../../src/pull-sources/atproto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/utils/issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,WAAY,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAG,IAK5E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
/** prints a list of valibot issues to stderr in the lex-cli's standard format. */
|
|
3
|
+
export const printValibotIssues = (issues) => {
|
|
4
|
+
for (const issue of issues) {
|
|
5
|
+
const dotPath = v.getDotPath(issue) ?? '';
|
|
6
|
+
console.log(`- ${issue.type} at .${dotPath}: ${issue.message}`);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/utils/issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAuC,EAAQ,EAAE;IACnF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-pattern.d.ts","sourceRoot":"","sources":["../../src/utils/nsid-pattern.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAAa,MAAM,KAAG,OAKvD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isNsid } from '@atcute/lexicons/syntax';
|
|
2
|
+
/**
|
|
3
|
+
* checks whether a string is either a valid NSID or a wildcard pattern that
|
|
4
|
+
* ends with `.*` whose prefix is a valid NSID segment.
|
|
5
|
+
*/
|
|
6
|
+
export const isValidLexiconPattern = (pattern) => {
|
|
7
|
+
if (pattern.endsWith('.*')) {
|
|
8
|
+
return isNsid(`${pattern.slice(0, -2)}.x`);
|
|
9
|
+
}
|
|
10
|
+
return isNsid(pattern);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=nsid-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-pattern.js","sourceRoot":"","sources":["../../src/utils/nsid-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IACjE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC"}
|