@atcute/lex-cli 2.4.0 → 2.5.1
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 +107 -10
- package/dist/cli.js +10 -168
- package/dist/cli.js.map +1 -1
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +76 -78
- package/dist/codegen.js.map +1 -1
- package/dist/commands/export.d.ts +17 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +76 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/generate.d.ts +17 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +136 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/pull.d.ts +17 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/{pull.js → commands/pull.js} +35 -81
- package/dist/commands/pull.js.map +1 -0
- package/dist/config.d.ts +68 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +54 -3
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +65 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lexicon-loader.d.ts +17 -0
- package/dist/lexicon-loader.d.ts.map +1 -0
- package/dist/lexicon-loader.js +167 -0
- package/dist/lexicon-loader.js.map +1 -0
- package/dist/lexicon-metadata.js.map +1 -1
- package/dist/pull-sources/atproto.d.ts +17 -0
- package/dist/pull-sources/atproto.d.ts.map +1 -0
- package/dist/pull-sources/atproto.js +192 -0
- package/dist/pull-sources/atproto.js.map +1 -0
- package/dist/pull-sources/git.d.ts +15 -0
- package/dist/pull-sources/git.d.ts.map +1 -0
- package/dist/pull-sources/git.js +80 -0
- package/dist/pull-sources/git.js.map +1 -0
- package/dist/pull-sources/types.d.ts +16 -0
- package/dist/pull-sources/types.d.ts.map +1 -0
- package/dist/pull-sources/types.js +2 -0
- package/dist/pull-sources/types.js.map +1 -0
- package/dist/shared-options.d.ts +6 -0
- package/dist/shared-options.d.ts.map +1 -0
- package/dist/shared-options.js +11 -0
- package/dist/shared-options.js.map +1 -0
- package/package.json +12 -9
- package/src/cli.ts +9 -210
- package/src/codegen.ts +90 -88
- package/src/commands/export.ts +106 -0
- package/src/commands/generate.ts +170 -0
- package/src/{pull.ts → commands/pull.ts} +49 -116
- package/src/config.ts +67 -4
- package/src/lexicon-loader.ts +201 -0
- package/src/pull-sources/atproto.ts +243 -0
- package/src/pull-sources/git.ts +103 -0
- package/src/pull-sources/types.ts +18 -0
- package/src/shared-options.ts +13 -0
- package/dist/pull.d.ts +0 -7
- package/dist/pull.d.ts.map +0 -1
- package/dist/pull.js.map +0 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { merge, object } from '@optique/core/constructs';
|
|
4
|
+
import { message } from '@optique/core/message';
|
|
5
|
+
import {} from '@optique/core/parser';
|
|
6
|
+
import { command, constant } from '@optique/core/primitives';
|
|
7
|
+
import pc from 'picocolors';
|
|
8
|
+
import { generateLexiconApi } from '../codegen.js';
|
|
9
|
+
import { loadConfig } from '../config.js';
|
|
10
|
+
import { loadLexicons } from '../lexicon-loader.js';
|
|
11
|
+
import { packageJsonSchema } from '../lexicon-metadata.js';
|
|
12
|
+
import { sharedOptions } from '../shared-options.js';
|
|
13
|
+
/**
|
|
14
|
+
* resolves package imports to ImportMapping[]
|
|
15
|
+
*/
|
|
16
|
+
const resolveImportsToMappings = async (imports, configDirname) => {
|
|
17
|
+
const mappings = [];
|
|
18
|
+
for (const packageName of imports) {
|
|
19
|
+
// walk up from config directory to find package in node_modules
|
|
20
|
+
let packageJson;
|
|
21
|
+
let currentDir = configDirname;
|
|
22
|
+
let found = false;
|
|
23
|
+
while (currentDir !== path.dirname(currentDir)) {
|
|
24
|
+
const candidatePath = path.join(currentDir, 'node_modules', packageName, 'package.json');
|
|
25
|
+
try {
|
|
26
|
+
const content = await fs.readFile(candidatePath, 'utf8');
|
|
27
|
+
packageJson = JSON.parse(content);
|
|
28
|
+
found = true;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
// only continue to parent if file not found
|
|
33
|
+
if (err.code !== 'ENOENT') {
|
|
34
|
+
console.error(pc.bold(pc.red(`failed to read package.json for "${packageName}":`)));
|
|
35
|
+
console.error(err);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
// not found, try parent directory
|
|
39
|
+
currentDir = path.dirname(currentDir);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (!found) {
|
|
43
|
+
console.error(pc.bold(pc.red(`failed to resolve package "${packageName}"`)));
|
|
44
|
+
console.error(`Could not find package in node_modules starting from ${configDirname}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
// validate package.json
|
|
48
|
+
const result = packageJsonSchema.try(packageJson, { mode: 'passthrough' });
|
|
49
|
+
if (!result.ok) {
|
|
50
|
+
console.error(pc.bold(pc.red(`invalid atcute:lexicons in "${packageName}":`)));
|
|
51
|
+
console.error(result.message);
|
|
52
|
+
for (const issue of result.issues) {
|
|
53
|
+
console.log(`- ${issue.code} at .${issue.path.join('.')}`);
|
|
54
|
+
}
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
const lexicons = result.value['atcute:lexicons'];
|
|
58
|
+
if (!lexicons?.mappings) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
// convert mapping to ImportMapping[]
|
|
62
|
+
for (const [pattern, entry] of Object.entries(lexicons.mappings)) {
|
|
63
|
+
const isWildcard = pattern.endsWith('.*');
|
|
64
|
+
mappings.push({
|
|
65
|
+
nsid: [pattern],
|
|
66
|
+
imports: (nsid) => {
|
|
67
|
+
// check if pattern matches
|
|
68
|
+
if (isWildcard) {
|
|
69
|
+
if (!nsid.startsWith(pattern.slice(0, -1))) {
|
|
70
|
+
throw new Error(`NSID ${nsid} does not match pattern ${pattern}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (nsid !== pattern) {
|
|
75
|
+
throw new Error(`NSID ${nsid} does not match pattern ${pattern}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const nsidPrefix = isWildcard ? pattern.slice(0, -2) : pattern;
|
|
79
|
+
const nsidRemainder = isWildcard ? nsid.slice(nsidPrefix.length + 1) : '';
|
|
80
|
+
let expandedPath = entry.path
|
|
81
|
+
.replaceAll('{{nsid}}', nsid.replaceAll('.', '/'))
|
|
82
|
+
.replaceAll('{{nsid_remainder}}', nsidRemainder.replaceAll('.', '/'))
|
|
83
|
+
.replaceAll('{{nsid_prefix}}', nsidPrefix.replaceAll('.', '/'));
|
|
84
|
+
if (expandedPath === '.') {
|
|
85
|
+
expandedPath = packageName;
|
|
86
|
+
}
|
|
87
|
+
else if (expandedPath.startsWith('./')) {
|
|
88
|
+
expandedPath = `${packageName}/${expandedPath.slice(2)}`;
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
type: entry.type,
|
|
92
|
+
from: expandedPath,
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return mappings;
|
|
99
|
+
};
|
|
100
|
+
export const generateCommandSchema = command('generate', merge(object({
|
|
101
|
+
type: constant('generate'),
|
|
102
|
+
}), sharedOptions), {
|
|
103
|
+
brief: message `generate type definitions from lexicon documents`,
|
|
104
|
+
description: message `reads lexicon documents from the configured files and generates TypeScript type definitions and runtime validators.`,
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* runs the generate command to create type definitions from lexicon documents
|
|
108
|
+
* @param args parsed command arguments
|
|
109
|
+
*/
|
|
110
|
+
export const runGenerate = async (args) => {
|
|
111
|
+
const config = await loadConfig(args.config);
|
|
112
|
+
// resolve imports to mappings
|
|
113
|
+
const importMappings = config.imports ? await resolveImportsToMappings(config.imports, config.root) : [];
|
|
114
|
+
const allMappings = [...importMappings, ...(config.mappings ?? [])];
|
|
115
|
+
// load lexicons from files
|
|
116
|
+
const loaded = await loadLexicons(config.files, config.root);
|
|
117
|
+
const documents = loaded.map((l) => l.doc);
|
|
118
|
+
const generationResult = await generateLexiconApi({
|
|
119
|
+
documents: documents,
|
|
120
|
+
mappings: allMappings,
|
|
121
|
+
modules: {
|
|
122
|
+
importSuffix: config.modules?.importSuffix ?? '.js',
|
|
123
|
+
},
|
|
124
|
+
prettier: {
|
|
125
|
+
cwd: process.cwd(),
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
const outdir = path.join(config.root, config.outdir);
|
|
129
|
+
for (const file of generationResult.files) {
|
|
130
|
+
const filename = path.join(outdir, file.filename);
|
|
131
|
+
const dirname = path.dirname(filename);
|
|
132
|
+
await fs.mkdir(dirname, { recursive: true });
|
|
133
|
+
await fs.writeFile(filename, file.code);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type InferValue } from '@optique/core/parser';
|
|
2
|
+
export declare const pullCommandSchema: import("@optique/core/parser").Parser<{
|
|
3
|
+
readonly type: "pull";
|
|
4
|
+
} & {
|
|
5
|
+
readonly config: string | undefined;
|
|
6
|
+
}, ["matched", string] | ["parsing", Record<string | symbol, unknown>] | undefined>;
|
|
7
|
+
export type PullCommand = InferValue<typeof pullCommandSchema>;
|
|
8
|
+
/**
|
|
9
|
+
* runs the pull command to fetch lexicon documents from configured sources
|
|
10
|
+
* @param args parsed command arguments
|
|
11
|
+
*/
|
|
12
|
+
export declare const runPull: (args: {
|
|
13
|
+
readonly type: "pull";
|
|
14
|
+
} & {
|
|
15
|
+
readonly config: string | undefined;
|
|
16
|
+
}) => Promise<void>;
|
|
17
|
+
//# sourceMappingURL=pull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAWvD,eAAO,MAAM,iBAAiB;;;;mFAY7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAuJ/D;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;mBA4CnB,CAAC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
|
-
import * as os from 'node:os';
|
|
3
2
|
import * as path from 'node:path';
|
|
4
3
|
import { lexiconDoc, refineLexiconDoc } from '@atcute/lexicon-doc';
|
|
5
|
-
import
|
|
4
|
+
import { merge, object } from '@optique/core/constructs';
|
|
5
|
+
import { message } from '@optique/core/message';
|
|
6
|
+
import {} from '@optique/core/parser';
|
|
7
|
+
import { command, constant } from '@optique/core/primitives';
|
|
6
8
|
import pc from 'picocolors';
|
|
7
|
-
import
|
|
9
|
+
import prettier from 'prettier';
|
|
10
|
+
import { loadConfig } from '../config.js';
|
|
11
|
+
import { pullAtprotoSource } from '../pull-sources/atproto.js';
|
|
12
|
+
import { pullGitSource } from '../pull-sources/git.js';
|
|
13
|
+
import { sharedOptions } from '../shared-options.js';
|
|
14
|
+
export const pullCommandSchema = command('pull', merge(object({
|
|
15
|
+
type: constant('pull'),
|
|
16
|
+
}), sharedOptions), {
|
|
17
|
+
brief: message `pull lexicon documents from configured sources`,
|
|
18
|
+
description: message `fetches lexicon documents from configured git repositories and writes them to the output directory.`,
|
|
19
|
+
});
|
|
8
20
|
const ensurePullConfig = (config) => {
|
|
9
21
|
if (!config.pull) {
|
|
10
22
|
console.error(pc.bold(pc.red(`pull configuration missing`)));
|
|
@@ -65,83 +77,13 @@ const writeLexicon = async (outdir, nsid, doc, prettierConfig) => {
|
|
|
65
77
|
await fs.mkdir(dirname, { recursive: true });
|
|
66
78
|
await fs.writeFile(target, code);
|
|
67
79
|
};
|
|
68
|
-
/**
|
|
69
|
-
* pulls lexicon documents from a git repository source
|
|
70
|
-
* @param source git source configuration
|
|
71
|
-
* @returns pulled lexicons and commit hash
|
|
72
|
-
*/
|
|
73
|
-
const pullGitSource = async (source) => {
|
|
74
|
-
const tempParent = await fs.mkdtemp(path.join(os.tmpdir(), 'lex-cli-pull-'));
|
|
75
|
-
const cloneDir = path.join(tempParent, 'repo');
|
|
76
|
-
try {
|
|
77
|
-
await runGit([
|
|
78
|
-
'clone',
|
|
79
|
-
'--filter=blob:none',
|
|
80
|
-
'--depth',
|
|
81
|
-
'1',
|
|
82
|
-
'--sparse',
|
|
83
|
-
...(source.ref ? ['--branch', source.ref, '--single-branch'] : []),
|
|
84
|
-
source.remote,
|
|
85
|
-
cloneDir,
|
|
86
|
-
], { timeoutMs: 60_000 });
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
if (err instanceof GitError) {
|
|
90
|
-
console.error(pc.bold(pc.red(`git clone failed for ${source.remote}:`)));
|
|
91
|
-
console.error(err.stderr || err.message);
|
|
92
|
-
process.exit(1);
|
|
93
|
-
}
|
|
94
|
-
throw err;
|
|
95
|
-
}
|
|
96
|
-
try {
|
|
97
|
-
await runGit(['-C', cloneDir, 'sparse-checkout', 'set', '--no-cone', ...source.pattern], {
|
|
98
|
-
timeoutMs: 30_000,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
if (err instanceof GitError) {
|
|
103
|
-
console.error(pc.bold(pc.red(`git sparse-checkout failed for ${source.remote}:`)));
|
|
104
|
-
console.error(err.stderr || err.message);
|
|
105
|
-
process.exit(1);
|
|
106
|
-
}
|
|
107
|
-
throw err;
|
|
108
|
-
}
|
|
109
|
-
const pulled = new Map();
|
|
110
|
-
for await (const filename of fs.glob(source.pattern, { cwd: cloneDir })) {
|
|
111
|
-
const absolute = path.join(cloneDir, filename);
|
|
112
|
-
const stat = await fs.stat(absolute);
|
|
113
|
-
if (!stat.isFile()) {
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
const location = {
|
|
117
|
-
absolutePath: absolute,
|
|
118
|
-
relativePath: filename,
|
|
119
|
-
sourceDescription: source.remote,
|
|
120
|
-
};
|
|
121
|
-
const doc = await parseLexiconFile(location);
|
|
122
|
-
pulled.set(doc.id, { nsid: doc.id, doc, location });
|
|
123
|
-
}
|
|
124
|
-
// get the commit hash
|
|
125
|
-
let rev;
|
|
126
|
-
try {
|
|
127
|
-
const result = await runGit(['-C', cloneDir, 'rev-parse', 'HEAD'], { timeoutMs: 10_000 });
|
|
128
|
-
rev = result.stdout.trim();
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
if (err instanceof GitError) {
|
|
132
|
-
console.error(pc.bold(pc.red(`git rev-parse failed for ${source.remote}:`)));
|
|
133
|
-
console.error(err.stderr || err.message);
|
|
134
|
-
process.exit(1);
|
|
135
|
-
}
|
|
136
|
-
throw err;
|
|
137
|
-
}
|
|
138
|
-
await fs.rm(tempParent, { recursive: true, force: true });
|
|
139
|
-
return { pulled, rev };
|
|
140
|
-
};
|
|
141
80
|
const pullSource = async (source) => {
|
|
142
81
|
switch (source.type) {
|
|
143
82
|
case 'git': {
|
|
144
|
-
return pullGitSource(source);
|
|
83
|
+
return pullGitSource(source, parseLexiconFile);
|
|
84
|
+
}
|
|
85
|
+
case 'atproto': {
|
|
86
|
+
return pullAtprotoSource(source);
|
|
145
87
|
}
|
|
146
88
|
}
|
|
147
89
|
};
|
|
@@ -156,7 +98,18 @@ const writeSourceReadme = async (outdir, revisions, prettierConfig) => {
|
|
|
156
98
|
switch (source.type) {
|
|
157
99
|
case 'git': {
|
|
158
100
|
lines.push(`- ${source.remote}${source.ref ? ` (ref: ${source.ref})` : ``}`);
|
|
159
|
-
|
|
101
|
+
if (rev) {
|
|
102
|
+
lines.push(` - commit: ${rev}`);
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case 'atproto': {
|
|
107
|
+
if (source.mode === 'nsids') {
|
|
108
|
+
lines.push(`- atproto (nsids: ${source.nsids.join(', ')})`);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
lines.push(`- atproto (authority: ${source.authority}${source.pattern ? `, pattern: ${source.pattern.join(', ')}` : ''})`);
|
|
112
|
+
}
|
|
160
113
|
break;
|
|
161
114
|
}
|
|
162
115
|
}
|
|
@@ -170,10 +123,11 @@ const writeSourceReadme = async (outdir, revisions, prettierConfig) => {
|
|
|
170
123
|
await fs.writeFile(path.join(outdir, 'README.md'), formatted);
|
|
171
124
|
};
|
|
172
125
|
/**
|
|
173
|
-
*
|
|
174
|
-
* @param
|
|
126
|
+
* runs the pull command to fetch lexicon documents from configured sources
|
|
127
|
+
* @param args parsed command arguments
|
|
175
128
|
*/
|
|
176
|
-
export const runPull = async (
|
|
129
|
+
export const runPull = async (args) => {
|
|
130
|
+
const config = await loadConfig(args.config);
|
|
177
131
|
const pullConfig = ensurePullConfig(config);
|
|
178
132
|
const outdir = path.resolve(config.root, pullConfig.outdir);
|
|
179
133
|
const prettierConfig = await prettier.resolveConfig(config.root, { editorconfig: true });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -6,25 +6,73 @@ declare const gitSourceConfigSchema: v.ObjectType<{
|
|
|
6
6
|
ref: v.Optional<string>;
|
|
7
7
|
pattern: v.Type<string[]>;
|
|
8
8
|
}, undefined>;
|
|
9
|
+
declare const atprotoNsidsSourceConfigSchema: v.ObjectType<{
|
|
10
|
+
type: v.Type<"atproto">;
|
|
11
|
+
mode: v.Type<"nsids">;
|
|
12
|
+
nsids: v.Type<`${string}.${string}.${string}`[]>;
|
|
13
|
+
}, undefined>;
|
|
14
|
+
declare const atprotoAuthoritySourceConfigSchema: v.ObjectType<{
|
|
15
|
+
type: v.Type<"atproto">;
|
|
16
|
+
mode: v.Type<"authority">;
|
|
17
|
+
authority: v.Type<`${string}.${string}` | `did:plc:${string}` | `did:web:${string}`>;
|
|
18
|
+
pattern: v.Optional<string[]>;
|
|
19
|
+
}, undefined>;
|
|
20
|
+
declare const atprotoSourceConfigSchema: v.UnionType<[v.ObjectType<{
|
|
21
|
+
type: v.Type<"atproto">;
|
|
22
|
+
mode: v.Type<"nsids">;
|
|
23
|
+
nsids: v.Type<`${string}.${string}.${string}`[]>;
|
|
24
|
+
}, undefined>, v.ObjectType<{
|
|
25
|
+
type: v.Type<"atproto">;
|
|
26
|
+
mode: v.Type<"authority">;
|
|
27
|
+
authority: v.Type<`${string}.${string}` | `did:plc:${string}` | `did:web:${string}`>;
|
|
28
|
+
pattern: v.Optional<string[]>;
|
|
29
|
+
}, undefined>]>;
|
|
9
30
|
declare const sourceConfigSchema: v.UnionType<[v.ObjectType<{
|
|
10
31
|
type: v.Type<"git">;
|
|
11
32
|
remote: v.Type<string>;
|
|
12
33
|
ref: v.Optional<string>;
|
|
13
34
|
pattern: v.Type<string[]>;
|
|
14
|
-
}, undefined
|
|
35
|
+
}, undefined>, v.UnionType<[v.ObjectType<{
|
|
36
|
+
type: v.Type<"atproto">;
|
|
37
|
+
mode: v.Type<"nsids">;
|
|
38
|
+
nsids: v.Type<`${string}.${string}.${string}`[]>;
|
|
39
|
+
}, undefined>, v.ObjectType<{
|
|
40
|
+
type: v.Type<"atproto">;
|
|
41
|
+
mode: v.Type<"authority">;
|
|
42
|
+
authority: v.Type<`${string}.${string}` | `did:plc:${string}` | `did:web:${string}`>;
|
|
43
|
+
pattern: v.Optional<string[]>;
|
|
44
|
+
}, undefined>]>]>;
|
|
15
45
|
declare const pullConfigSchema: v.ObjectType<{
|
|
16
46
|
outdir: v.Type<string>;
|
|
17
47
|
clean: v.Optional<boolean>;
|
|
18
|
-
sources: v.Type<{
|
|
48
|
+
sources: v.Type<({
|
|
49
|
+
type: "atproto";
|
|
50
|
+
mode: "nsids";
|
|
51
|
+
nsids: `${string}.${string}.${string}`[];
|
|
52
|
+
} | {
|
|
53
|
+
type: "atproto";
|
|
54
|
+
mode: "authority";
|
|
55
|
+
authority: `${string}.${string}` | `did:plc:${string}` | `did:web:${string}`;
|
|
56
|
+
pattern?: string[] | undefined;
|
|
57
|
+
} | {
|
|
19
58
|
type: "git";
|
|
20
59
|
remote: string;
|
|
21
60
|
ref?: string | undefined;
|
|
22
61
|
pattern: string[];
|
|
23
|
-
}[]>;
|
|
62
|
+
})[]>;
|
|
63
|
+
}, undefined>;
|
|
64
|
+
declare const exportConfigSchema: v.ObjectType<{
|
|
65
|
+
outdir: v.Type<string>;
|
|
66
|
+
files: v.Optional<string[]>;
|
|
67
|
+
clean: v.Optional<boolean>;
|
|
24
68
|
}, undefined>;
|
|
25
69
|
export type GitSourceConfig = v.Infer<typeof gitSourceConfigSchema>;
|
|
70
|
+
export type AtprotoNsidsSourceConfig = v.Infer<typeof atprotoNsidsSourceConfigSchema>;
|
|
71
|
+
export type AtprotoAuthoritySourceConfig = v.Infer<typeof atprotoAuthoritySourceConfigSchema>;
|
|
72
|
+
export type AtprotoSourceConfig = v.Infer<typeof atprotoSourceConfigSchema>;
|
|
26
73
|
export type SourceConfig = v.Infer<typeof sourceConfigSchema>;
|
|
27
74
|
export type PullConfig = v.Infer<typeof pullConfigSchema>;
|
|
75
|
+
export type ExportConfig = v.Infer<typeof exportConfigSchema>;
|
|
28
76
|
export declare const lexiconConfigSchema: v.ObjectType<{
|
|
29
77
|
outdir: v.Type<string>;
|
|
30
78
|
files: v.Type<string[]>;
|
|
@@ -36,18 +84,32 @@ export declare const lexiconConfigSchema: v.ObjectType<{
|
|
|
36
84
|
pull: v.Optional<{
|
|
37
85
|
outdir: string;
|
|
38
86
|
clean?: boolean | undefined;
|
|
39
|
-
sources: {
|
|
87
|
+
sources: ({
|
|
88
|
+
type: "atproto";
|
|
89
|
+
mode: "nsids";
|
|
90
|
+
nsids: `${string}.${string}.${string}`[];
|
|
91
|
+
} | {
|
|
92
|
+
type: "atproto";
|
|
93
|
+
mode: "authority";
|
|
94
|
+
authority: `${string}.${string}` | `did:plc:${string}` | `did:web:${string}`;
|
|
95
|
+
pattern?: string[] | undefined;
|
|
96
|
+
} | {
|
|
40
97
|
type: "git";
|
|
41
98
|
remote: string;
|
|
42
99
|
ref?: string | undefined;
|
|
43
100
|
pattern: string[];
|
|
44
|
-
}[];
|
|
101
|
+
})[];
|
|
102
|
+
}>;
|
|
103
|
+
export: v.Optional<{
|
|
104
|
+
outdir: string;
|
|
105
|
+
files?: string[] | undefined;
|
|
106
|
+
clean?: boolean | undefined;
|
|
45
107
|
}>;
|
|
46
108
|
}, undefined>;
|
|
47
109
|
export type LexiconConfig = v.Infer<typeof lexiconConfigSchema>;
|
|
48
110
|
export interface NormalizedConfig extends LexiconConfig {
|
|
49
111
|
root: string;
|
|
50
112
|
}
|
|
51
|
-
export declare const loadConfig: (configPath
|
|
113
|
+
export declare const loadConfig: (configPath?: string | undefined) => Promise<NormalizedConfig>;
|
|
52
114
|
export {};
|
|
53
115
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAMpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,QAAA,MAAM,qBAAqB;;;;;aAUzB,CAAC;AAEH,QAAA,MAAM,8BAA8B;;;;aAMlC,CAAC;AAEH,QAAA,MAAM,kCAAkC;;;;;aAatC,CAAC;AAEH,QAAA,MAAM,yBAAyB;;;;;;;;;eAA8E,CAAC;AAE9G,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAA4D,CAAC;AAErF,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;aAMpB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;aAItB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAyC9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAkB9B,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,gEAsDtB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
1
2
|
import * as path from 'node:path';
|
|
2
3
|
import * as url from 'node:url';
|
|
3
4
|
import * as v from '@badrap/valita';
|
|
4
5
|
import pc from 'picocolors';
|
|
5
|
-
import {
|
|
6
|
+
import { isAtprotoDid } from '@atcute/identity';
|
|
7
|
+
import { isHandle, isNsid } from '@atcute/lexicons/syntax';
|
|
6
8
|
const gitSourceConfigSchema = v.object({
|
|
7
9
|
type: v.literal('git'),
|
|
8
10
|
remote: v.string().assert((value) => value.length > 0, `must not be empty`),
|
|
@@ -14,7 +16,27 @@ const gitSourceConfigSchema = v.object({
|
|
|
14
16
|
.array(v.string().assert((value) => value.length > 0, `must not be empty`))
|
|
15
17
|
.assert((value) => value.length > 0, `must include at least one glob pattern`),
|
|
16
18
|
});
|
|
17
|
-
const
|
|
19
|
+
const atprotoNsidsSourceConfigSchema = v.object({
|
|
20
|
+
type: v.literal('atproto'),
|
|
21
|
+
mode: v.literal('nsids'),
|
|
22
|
+
nsids: v
|
|
23
|
+
.array(v.string().assert((value) => isNsid(value), `must be valid nsid`))
|
|
24
|
+
.assert((value) => value.length > 0, `must include at least one nsid`),
|
|
25
|
+
});
|
|
26
|
+
const atprotoAuthoritySourceConfigSchema = v.object({
|
|
27
|
+
type: v.literal('atproto'),
|
|
28
|
+
mode: v.literal('authority'),
|
|
29
|
+
authority: v
|
|
30
|
+
.string()
|
|
31
|
+
.assert((value) => isHandle(value) || isAtprotoDid(value), `must a valid at-identifier`),
|
|
32
|
+
pattern: v
|
|
33
|
+
.array(v
|
|
34
|
+
.string()
|
|
35
|
+
.assert((value) => isValidLexiconPattern(value), `must be valid nsid or pattern ending with .*`))
|
|
36
|
+
.optional(),
|
|
37
|
+
});
|
|
38
|
+
const atprotoSourceConfigSchema = v.union(atprotoNsidsSourceConfigSchema, atprotoAuthoritySourceConfigSchema);
|
|
39
|
+
const sourceConfigSchema = v.union(gitSourceConfigSchema, atprotoSourceConfigSchema);
|
|
18
40
|
const pullConfigSchema = v.object({
|
|
19
41
|
outdir: v.string().assert((value) => value.length > 0, `must not be empty`),
|
|
20
42
|
clean: v.boolean().optional(),
|
|
@@ -22,6 +44,11 @@ const pullConfigSchema = v.object({
|
|
|
22
44
|
.array(sourceConfigSchema)
|
|
23
45
|
.assert((value) => value.length > 0, `must include at least one source`),
|
|
24
46
|
});
|
|
47
|
+
const exportConfigSchema = v.object({
|
|
48
|
+
outdir: v.string().assert((value) => value.length > 0, `must not be empty`),
|
|
49
|
+
files: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
|
|
50
|
+
clean: v.boolean().optional(),
|
|
51
|
+
});
|
|
25
52
|
const isValidLexiconPattern = (pattern) => {
|
|
26
53
|
if (pattern.endsWith('.*')) {
|
|
27
54
|
return isNsid(`${pattern.slice(0, -2)}.x`);
|
|
@@ -68,9 +95,33 @@ export const lexiconConfigSchema = v.object({
|
|
|
68
95
|
.partial()
|
|
69
96
|
.optional(),
|
|
70
97
|
pull: pullConfigSchema.optional(),
|
|
98
|
+
export: exportConfigSchema.optional(),
|
|
71
99
|
});
|
|
72
100
|
export const loadConfig = async (configPath) => {
|
|
73
|
-
|
|
101
|
+
let configFilename;
|
|
102
|
+
if (configPath) {
|
|
103
|
+
configFilename = path.resolve(configPath);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
// try to find lex.config.js or lex.config.ts in the current directory
|
|
107
|
+
const candidates = ['lex.config.js', 'lex.config.ts'];
|
|
108
|
+
for (const candidate of candidates) {
|
|
109
|
+
const candidatePath = path.resolve(candidate);
|
|
110
|
+
try {
|
|
111
|
+
await fs.access(candidatePath);
|
|
112
|
+
configFilename = candidatePath;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// file doesn't exist, try next candidate
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (!configFilename) {
|
|
120
|
+
console.error(pc.bold(pc.red(`config file not found`)));
|
|
121
|
+
console.error(`looked for: ${candidates.join(', ')}`);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
74
125
|
const configDirname = path.dirname(configFilename);
|
|
75
126
|
let rawConfig;
|
|
76
127
|
try {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
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,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC3E,GAAG,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;SACxD,QAAQ,EAAE;IACZ,OAAO,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,wCAAwC,CAAC;CAC/E,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,gCAAgC,CAAC;CACvE,CAAC,CAAC;AAEH,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC;IACzF,OAAO,EAAE,CAAC;SACR,KAAK,CACL,CAAC;SACC,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,8CAA8C,CAAC,CACjG;SACA,QAAQ,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,8BAA8B,EAAE,kCAAkC,CAAC,CAAC;AAE9G,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;AAErF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC;SACR,KAAK,CAAC,kBAAkB,CAAC;SACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,kCAAkC,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAUH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC;IAC3D,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;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AAAA,CACvB,CAAC;AAEF,MAAM,cAAc,GAAqC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACrF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAiC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAAA,CACrD,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAA0B,CAAC,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC;SACL,KAAK,CACL,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAAA,CACnB,CAAC,CACF;SACA,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,oCAAoC,CAAC;IACjF,OAAO,EAAE,cAAc;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC3E,KAAK,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,wCAAwC,CAAC;IAC/E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChG,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACjD,OAAO,EAAE,CAAC;SACR,MAAM,CAAC;QACP,YAAY,EAAE,CAAC;aACb,MAAM,EAAE;aACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,mBAAmB,CAAC;aACxD,QAAQ,EAAE;KACZ,CAAC;SACD,OAAO,EAAE;SACT,QAAQ,EAAE;IACZ,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,UAAmB,EAA6B,EAAE,CAAC;IACnF,IAAI,cAAkC,CAAC;IAEvC,IAAI,UAAU,EAAE,CAAC;QAChB,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACP,sEAAsE;QACtE,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAEtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC/B,cAAc,GAAG,aAAa,CAAC;gBAC/B,MAAM;YACP,CAAC;YAAC,MAAM,CAAC;gBACR,yCAAyC;YAC1C,CAAC;QACF,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAyB,CAAC;QACzE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAAA,CACtD,CAAC"}
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YACC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAW7B;CACD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,8EAwDlB,CAAC"}
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAc3C,MAAM,OAAO,QAAS,SAAQ,KAAK;IACzB,IAAI,CAAoB;IACxB,IAAI,CAAgB;IACpB,MAAM,CAAwB;IAC9B,MAAM,CAAS;IACf,MAAM,CAAS;IAExB,YACC,IAAuB,EACvB,MAAc,EACd,MAAc,EACd,IAAmB,EACnB,MAA6B;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|