@atproto/lex-installer 0.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/dist/fs.d.ts +4 -0
- package/dist/fs.d.ts.map +1 -0
- package/dist/fs.js +24 -0
- package/dist/fs.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/lex-installer.d.ts +2143 -0
- package/dist/lex-installer.d.ts.map +1 -0
- package/dist/lex-installer.js +249 -0
- package/dist/lex-installer.js.map +1 -0
- package/dist/lexicons-manifest.d.ts +31 -0
- package/dist/lexicons-manifest.d.ts.map +1 -0
- package/dist/lexicons-manifest.js +15 -0
- package/dist/lexicons-manifest.js.map +1 -0
- package/dist/nsid-map.d.ts +32 -0
- package/dist/nsid-map.d.ts.map +1 -0
- package/dist/nsid-map.js +69 -0
- package/dist/nsid-map.js.map +1 -0
- package/dist/nsid-set.d.ts +30 -0
- package/dist/nsid-set.d.ts.map +1 -0
- package/dist/nsid-set.js +66 -0
- package/dist/nsid-set.js.map +1 -0
- package/package.json +51 -0
- package/src/fs.ts +24 -0
- package/src/index.ts +41 -0
- package/src/lex-installer.ts +314 -0
- package/src/lexicons-manifest.test.ts +50 -0
- package/src/lexicons-manifest.ts +23 -0
- package/src/nsid-map.ts +83 -0
- package/src/nsid-set.ts +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex-installer.d.ts","sourceRoot":"","sources":["../src/lex-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LexInstaller = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const lex_builder_1 = require("@atproto/lex-builder");
|
|
6
|
+
const lex_cbor_1 = require("@atproto/lex-cbor");
|
|
7
|
+
const lex_data_1 = require("@atproto/lex-data");
|
|
8
|
+
const lex_resolver_1 = require("@atproto/lex-resolver");
|
|
9
|
+
const syntax_1 = require("@atproto/syntax");
|
|
10
|
+
const fs_js_1 = require("./fs.js");
|
|
11
|
+
const nsid_map_js_1 = require("./nsid-map.js");
|
|
12
|
+
const nsid_set_js_1 = require("./nsid-set.js");
|
|
13
|
+
class LexInstaller {
|
|
14
|
+
options;
|
|
15
|
+
lexiconResolver;
|
|
16
|
+
indexer;
|
|
17
|
+
documents = new nsid_map_js_1.NsidMap();
|
|
18
|
+
manifest = {
|
|
19
|
+
version: 1,
|
|
20
|
+
lexicons: [],
|
|
21
|
+
resolutions: {},
|
|
22
|
+
};
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.options = options;
|
|
25
|
+
this.lexiconResolver = new lex_resolver_1.LexResolver(options);
|
|
26
|
+
this.indexer = new lex_builder_1.LexiconDirectoryIndexer({
|
|
27
|
+
lexicons: options.lexicons,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async [Symbol.asyncDispose]() {
|
|
31
|
+
await this.indexer[Symbol.asyncDispose]();
|
|
32
|
+
}
|
|
33
|
+
matches(manifest) {
|
|
34
|
+
return (0, lex_data_1.lexEquals)(this.manifest, manifest);
|
|
35
|
+
}
|
|
36
|
+
async install({ additions, manifest, } = {}) {
|
|
37
|
+
const roots = new nsid_map_js_1.NsidMap();
|
|
38
|
+
// First, process explicit additions
|
|
39
|
+
for (const lexicon of new Set(additions)) {
|
|
40
|
+
const [nsid, uri] = lexicon.startsWith('at://')
|
|
41
|
+
? ((uri) => [syntax_1.NSID.from(uri.rkey), uri])(new syntax_1.AtUri(lexicon))
|
|
42
|
+
: [syntax_1.NSID.from(lexicon), null];
|
|
43
|
+
if (roots.has(nsid)) {
|
|
44
|
+
throw new Error(`Duplicate lexicon addition: ${nsid} (${roots.get(nsid) ?? lexicon})`);
|
|
45
|
+
}
|
|
46
|
+
roots.set(nsid, uri);
|
|
47
|
+
console.debug(`Adding new lexicon: ${nsid} (${uri ?? 'from NSID'})`);
|
|
48
|
+
}
|
|
49
|
+
// Next, restore previously existing manifest entries
|
|
50
|
+
if (manifest) {
|
|
51
|
+
for (const lexicon of manifest.lexicons) {
|
|
52
|
+
const nsid = syntax_1.NSID.from(lexicon);
|
|
53
|
+
// Skip entries already added explicitly
|
|
54
|
+
if (!roots.has(nsid)) {
|
|
55
|
+
const uri = manifest.resolutions[lexicon]
|
|
56
|
+
? new syntax_1.AtUri(manifest.resolutions[lexicon].uri)
|
|
57
|
+
: null;
|
|
58
|
+
roots.set(nsid, uri);
|
|
59
|
+
console.debug(`Adding lexicon from manifest: ${nsid} (${uri ?? 'from NSID'})`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Install all root lexicons (and store them in the manifest)
|
|
64
|
+
await Promise.all(Array.from(roots, async ([nsid, sourceUri]) => {
|
|
65
|
+
console.debug(`Installing lexicon: ${nsid}`);
|
|
66
|
+
const { document } = sourceUri
|
|
67
|
+
? await this.installFromUri(sourceUri)
|
|
68
|
+
: await this.installFromNsid(nsid);
|
|
69
|
+
// Store the direct reference in the new manifest
|
|
70
|
+
this.manifest.lexicons.push(document.id);
|
|
71
|
+
this.manifest.lexicons.sort();
|
|
72
|
+
}));
|
|
73
|
+
// Then recursively install all referenced lexicons
|
|
74
|
+
let results;
|
|
75
|
+
do {
|
|
76
|
+
results = await Promise.all(Array.from(this.getMissingIds(), async (nsid) => {
|
|
77
|
+
console.debug(`Resolving dependency lexicon: ${nsid}`);
|
|
78
|
+
const nsidStr = nsid.toString();
|
|
79
|
+
const resolvedUri = manifest?.resolutions[nsidStr]?.uri
|
|
80
|
+
? new syntax_1.AtUri(manifest.resolutions[nsidStr].uri)
|
|
81
|
+
: null;
|
|
82
|
+
if (resolvedUri) {
|
|
83
|
+
await this.installFromUri(resolvedUri);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
await this.installFromNsid(nsid);
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
} while (results.length > 0);
|
|
90
|
+
}
|
|
91
|
+
getMissingIds() {
|
|
92
|
+
const missing = new nsid_set_js_1.NsidSet();
|
|
93
|
+
for (const document of this.documents.values()) {
|
|
94
|
+
for (const nsid of listDocumentNsidRefs(document)) {
|
|
95
|
+
if (!this.documents.has(nsid)) {
|
|
96
|
+
missing.add(nsid);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return missing;
|
|
101
|
+
}
|
|
102
|
+
async installFromNsid(nsid) {
|
|
103
|
+
const uri = await this.lexiconResolver.resolve(nsid);
|
|
104
|
+
return this.installFromUri(uri);
|
|
105
|
+
}
|
|
106
|
+
async installFromUri(uri) {
|
|
107
|
+
const document = this.options.update
|
|
108
|
+
? await this.fetch(uri)
|
|
109
|
+
: await this.indexer.get(uri.rkey).then((document) => {
|
|
110
|
+
console.debug(`Re-using existing lexicon ${uri.rkey} from indexer`);
|
|
111
|
+
return document;
|
|
112
|
+
}, (err) => {
|
|
113
|
+
if ((0, fs_js_1.isEnoentError)(err))
|
|
114
|
+
return this.fetch(uri);
|
|
115
|
+
throw err;
|
|
116
|
+
});
|
|
117
|
+
this.documents.set(syntax_1.NSID.from(document.id), document);
|
|
118
|
+
this.manifest.resolutions[document.id] = {
|
|
119
|
+
cid: (await (0, lex_cbor_1.cidForLex)(document)).toString(),
|
|
120
|
+
uri: uri.toString(),
|
|
121
|
+
};
|
|
122
|
+
return { document, uri };
|
|
123
|
+
}
|
|
124
|
+
async fetch(uri) {
|
|
125
|
+
console.debug(`Fetching lexicon from ${uri}...`);
|
|
126
|
+
const document = await this.lexiconResolver.fetch(uri, {
|
|
127
|
+
noCache: this.options.update,
|
|
128
|
+
});
|
|
129
|
+
const basePath = (0, node_path_1.join)(this.options.lexicons, ...document.id.split('.'));
|
|
130
|
+
await (0, fs_js_1.writeJsonFile)(`${basePath}.json`, document);
|
|
131
|
+
return document;
|
|
132
|
+
}
|
|
133
|
+
async save() {
|
|
134
|
+
await (0, fs_js_1.writeJsonFile)(this.options.manifest, this.manifest);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.LexInstaller = LexInstaller;
|
|
138
|
+
function* listDocumentNsidRefs(doc) {
|
|
139
|
+
try {
|
|
140
|
+
for (const def of Object.values(doc.defs)) {
|
|
141
|
+
if (def) {
|
|
142
|
+
for (const ref of defRefs(def)) {
|
|
143
|
+
const [nsid] = ref.split('#', 1);
|
|
144
|
+
if (nsid)
|
|
145
|
+
yield syntax_1.NSID.from(nsid);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (cause) {
|
|
151
|
+
throw new Error(`Failed to extract refs from lexicon ${doc.id}`, { cause });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function* defRefs(def) {
|
|
155
|
+
switch (def.type) {
|
|
156
|
+
case 'string':
|
|
157
|
+
if (def.knownValues) {
|
|
158
|
+
for (const val of def.knownValues) {
|
|
159
|
+
// Tokens ?
|
|
160
|
+
const { length, 0: nsid, 1: hash } = val.split('#');
|
|
161
|
+
if (length === 2 && hash) {
|
|
162
|
+
try {
|
|
163
|
+
syntax_1.NSID.from(nsid);
|
|
164
|
+
yield val;
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// ignore invalid nsid
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
case 'array':
|
|
174
|
+
return yield* defRefs(def.items);
|
|
175
|
+
case 'params':
|
|
176
|
+
case 'object':
|
|
177
|
+
for (const prop of Object.values(def.properties)) {
|
|
178
|
+
yield* defRefs(prop);
|
|
179
|
+
}
|
|
180
|
+
return;
|
|
181
|
+
case 'union':
|
|
182
|
+
yield* def.refs;
|
|
183
|
+
return;
|
|
184
|
+
case 'ref': {
|
|
185
|
+
yield def.ref;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
case 'record':
|
|
189
|
+
yield* defRefs(def.record);
|
|
190
|
+
return;
|
|
191
|
+
case 'procedure':
|
|
192
|
+
if (def.input?.schema) {
|
|
193
|
+
yield* defRefs(def.input.schema);
|
|
194
|
+
}
|
|
195
|
+
// fallthrough
|
|
196
|
+
case 'query':
|
|
197
|
+
if (def.output?.schema) {
|
|
198
|
+
yield* defRefs(def.output.schema);
|
|
199
|
+
}
|
|
200
|
+
// fallthrough
|
|
201
|
+
case 'subscription':
|
|
202
|
+
if (def.parameters) {
|
|
203
|
+
yield* defRefs(def.parameters);
|
|
204
|
+
}
|
|
205
|
+
if ('message' in def && def.message?.schema) {
|
|
206
|
+
yield* defRefs(def.message.schema);
|
|
207
|
+
}
|
|
208
|
+
return;
|
|
209
|
+
case 'permission-set':
|
|
210
|
+
for (const permission of def.permissions) {
|
|
211
|
+
yield* defRefs(permission);
|
|
212
|
+
}
|
|
213
|
+
return;
|
|
214
|
+
case 'permission':
|
|
215
|
+
if (def.resource === 'rpc') {
|
|
216
|
+
if (Array.isArray(def.lxm)) {
|
|
217
|
+
for (const lxm of def.lxm) {
|
|
218
|
+
if (typeof lxm === 'string') {
|
|
219
|
+
yield lxm;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else if (def.resource === 'repo') {
|
|
225
|
+
if (Array.isArray(def.collection)) {
|
|
226
|
+
for (const lxm of def.collection) {
|
|
227
|
+
if (typeof lxm === 'string') {
|
|
228
|
+
yield lxm;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return;
|
|
234
|
+
case 'boolean':
|
|
235
|
+
case 'cid-link':
|
|
236
|
+
case 'token':
|
|
237
|
+
case 'bytes':
|
|
238
|
+
case 'blob':
|
|
239
|
+
case 'integer':
|
|
240
|
+
case 'unknown':
|
|
241
|
+
// @NOTE We explicitly list all types here to ensure exhaustiveness
|
|
242
|
+
// causing TS to error if a new type is added without updating this switch
|
|
243
|
+
return;
|
|
244
|
+
default:
|
|
245
|
+
// @ts-expect-error
|
|
246
|
+
throw new Error(`Unknown lexicon def type: ${def.type}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=lex-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex-installer.js","sourceRoot":"","sources":["../src/lex-installer.ts"],"names":[],"mappings":"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","sourcesContent":["import { join } from 'node:path'\nimport { LexiconDirectoryIndexer } from '@atproto/lex-builder'\nimport { cidForLex } from '@atproto/lex-cbor'\nimport { lexEquals } from '@atproto/lex-data'\nimport {\n LexiconDocument,\n LexiconParameters,\n LexiconPermission,\n LexiconRef,\n LexiconRefUnion,\n LexiconUnknown,\n MainLexiconDefinition,\n NamedLexiconDefinition,\n} from '@atproto/lex-document'\nimport { LexResolver, LexResolverOptions } from '@atproto/lex-resolver'\nimport { AtUri as AtUriString, Nsid as NsidString } from '@atproto/lex-schema'\nimport { AtUri, NSID } from '@atproto/syntax'\nimport { isEnoentError, writeJsonFile } from './fs.js'\nimport { LexiconsManifest } from './lexicons-manifest.js'\nimport { NsidMap } from './nsid-map.js'\nimport { NsidSet } from './nsid-set.js'\n\nexport type LexInstallerOptions = LexResolverOptions & {\n lexicons: string\n manifest: string\n update?: boolean\n}\n\nexport class LexInstaller implements AsyncDisposable {\n protected readonly lexiconResolver: LexResolver\n protected readonly indexer: LexiconDirectoryIndexer\n protected readonly documents = new NsidMap<LexiconDocument>()\n protected readonly manifest: LexiconsManifest = {\n version: 1,\n lexicons: [],\n resolutions: {},\n }\n\n constructor(protected readonly options: LexInstallerOptions) {\n this.lexiconResolver = new LexResolver(options)\n this.indexer = new LexiconDirectoryIndexer({\n lexicons: options.lexicons,\n })\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n await this.indexer[Symbol.asyncDispose]()\n }\n\n matches(manifest: LexiconsManifest): boolean {\n return lexEquals(this.manifest, manifest)\n }\n\n async install({\n additions,\n manifest,\n }: {\n additions?: Iterable<string>\n manifest?: LexiconsManifest\n } = {}): Promise<void> {\n const roots = new NsidMap<AtUri | null>()\n\n // First, process explicit additions\n for (const lexicon of new Set(additions)) {\n const [nsid, uri]: [NSID, AtUri | null] = lexicon.startsWith('at://')\n ? ((uri) => [NSID.from(uri.rkey), uri])(new AtUri(lexicon))\n : [NSID.from(lexicon), null]\n\n if (roots.has(nsid)) {\n throw new Error(\n `Duplicate lexicon addition: ${nsid} (${roots.get(nsid) ?? lexicon})`,\n )\n }\n\n roots.set(nsid, uri)\n console.debug(`Adding new lexicon: ${nsid} (${uri ?? 'from NSID'})`)\n }\n\n // Next, restore previously existing manifest entries\n if (manifest) {\n for (const lexicon of manifest.lexicons) {\n const nsid = NSID.from(lexicon)\n\n // Skip entries already added explicitly\n if (!roots.has(nsid)) {\n const uri = manifest.resolutions[lexicon]\n ? new AtUri(manifest.resolutions[lexicon].uri)\n : null\n\n roots.set(nsid, uri)\n\n console.debug(\n `Adding lexicon from manifest: ${nsid} (${uri ?? 'from NSID'})`,\n )\n }\n }\n }\n\n // Install all root lexicons (and store them in the manifest)\n await Promise.all(\n Array.from(roots, async ([nsid, sourceUri]) => {\n console.debug(`Installing lexicon: ${nsid}`)\n\n const { document } = sourceUri\n ? await this.installFromUri(sourceUri)\n : await this.installFromNsid(nsid)\n\n // Store the direct reference in the new manifest\n this.manifest.lexicons.push(document.id)\n this.manifest.lexicons.sort()\n }),\n )\n\n // Then recursively install all referenced lexicons\n let results: unknown[]\n do {\n results = await Promise.all(\n Array.from(this.getMissingIds(), async (nsid) => {\n console.debug(`Resolving dependency lexicon: ${nsid}`)\n\n const nsidStr = nsid.toString() as NsidString\n const resolvedUri = manifest?.resolutions[nsidStr]?.uri\n ? new AtUri(manifest.resolutions[nsidStr].uri)\n : null\n if (resolvedUri) {\n await this.installFromUri(resolvedUri)\n } else {\n await this.installFromNsid(nsid)\n }\n }),\n )\n } while (results.length > 0)\n }\n\n protected getMissingIds(): NsidSet {\n const missing = new NsidSet()\n\n for (const document of this.documents.values()) {\n for (const nsid of listDocumentNsidRefs(document)) {\n if (!this.documents.has(nsid)) {\n missing.add(nsid)\n }\n }\n }\n\n return missing\n }\n\n protected async installFromNsid(nsid: NSID) {\n const uri = await this.lexiconResolver.resolve(nsid)\n return this.installFromUri(uri)\n }\n\n protected async installFromUri(uri: AtUri): Promise<{\n document: LexiconDocument\n uri: AtUri\n }> {\n const document = this.options.update\n ? await this.fetch(uri)\n : await this.indexer.get(uri.rkey).then(\n (document) => {\n console.debug(`Re-using existing lexicon ${uri.rkey} from indexer`)\n return document\n },\n (err) => {\n if (isEnoentError(err)) return this.fetch(uri)\n throw err\n },\n )\n\n this.documents.set(NSID.from(document.id), document)\n this.manifest.resolutions[document.id] = {\n cid: (await cidForLex(document)).toString(),\n uri: uri.toString() as AtUriString,\n }\n\n return { document, uri }\n }\n\n async fetch(uri: AtUri): Promise<LexiconDocument> {\n console.debug(`Fetching lexicon from ${uri}...`)\n\n const document = await this.lexiconResolver.fetch(uri, {\n noCache: this.options.update,\n })\n\n const basePath = join(this.options.lexicons, ...document.id.split('.'))\n await writeJsonFile(`${basePath}.json`, document)\n\n return document\n }\n\n async save(): Promise<void> {\n await writeJsonFile(this.options.manifest, this.manifest)\n }\n}\n\nfunction* listDocumentNsidRefs(doc: LexiconDocument): Iterable<NSID> {\n try {\n for (const def of Object.values(doc.defs)) {\n if (def) {\n for (const ref of defRefs(def)) {\n const [nsid] = ref.split('#', 1)\n if (nsid) yield NSID.from(nsid)\n }\n }\n }\n } catch (cause) {\n throw new Error(`Failed to extract refs from lexicon ${doc.id}`, { cause })\n }\n}\n\nfunction* defRefs(\n def:\n | MainLexiconDefinition\n | NamedLexiconDefinition\n | LexiconPermission\n | LexiconUnknown\n | LexiconParameters\n | LexiconRef\n | LexiconRefUnion,\n): Iterable<string> {\n switch (def.type) {\n case 'string':\n if (def.knownValues) {\n for (const val of def.knownValues) {\n // Tokens ?\n const { length, 0: nsid, 1: hash } = val.split('#')\n if (length === 2 && hash) {\n try {\n NSID.from(nsid)\n yield val\n } catch {\n // ignore invalid nsid\n }\n }\n }\n }\n return\n case 'array':\n return yield* defRefs(def.items)\n case 'params':\n case 'object':\n for (const prop of Object.values(def.properties)) {\n yield* defRefs(prop)\n }\n return\n case 'union':\n yield* def.refs\n return\n case 'ref': {\n yield def.ref\n return\n }\n case 'record':\n yield* defRefs(def.record)\n return\n case 'procedure':\n if (def.input?.schema) {\n yield* defRefs(def.input.schema)\n }\n // fallthrough\n case 'query':\n if (def.output?.schema) {\n yield* defRefs(def.output.schema)\n }\n // fallthrough\n case 'subscription':\n if (def.parameters) {\n yield* defRefs(def.parameters)\n }\n if ('message' in def && def.message?.schema) {\n yield* defRefs(def.message.schema)\n }\n return\n case 'permission-set':\n for (const permission of def.permissions) {\n yield* defRefs(permission)\n }\n return\n case 'permission':\n if (def.resource === 'rpc') {\n if (Array.isArray(def.lxm)) {\n for (const lxm of def.lxm) {\n if (typeof lxm === 'string') {\n yield lxm\n }\n }\n }\n } else if (def.resource === 'repo') {\n if (Array.isArray(def.collection)) {\n for (const lxm of def.collection) {\n if (typeof lxm === 'string') {\n yield lxm\n }\n }\n }\n }\n return\n case 'boolean':\n case 'cid-link':\n case 'token':\n case 'bytes':\n case 'blob':\n case 'integer':\n case 'unknown':\n // @NOTE We explicitly list all types here to ensure exhaustiveness\n // causing TS to error if a new type is added without updating this switch\n return\n default:\n // @ts-expect-error\n throw new Error(`Unknown lexicon def type: ${def.type}`)\n }\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { l } from '@atproto/lex-schema';
|
|
2
|
+
export declare const lexiconsManifestSchema: l.ObjectSchema<{
|
|
3
|
+
readonly version: l.LiteralSchema<1>;
|
|
4
|
+
readonly lexicons: l.ArraySchema<`${string}.${string}.${string}`>;
|
|
5
|
+
readonly resolutions: l.DictSchema<l.StringSchema<{
|
|
6
|
+
readonly format: "nsid";
|
|
7
|
+
}>, l.ObjectSchema<{
|
|
8
|
+
readonly cid: l.StringSchema<{
|
|
9
|
+
readonly format: "cid";
|
|
10
|
+
}>;
|
|
11
|
+
readonly uri: l.StringSchema<{
|
|
12
|
+
readonly format: "at-uri";
|
|
13
|
+
}>;
|
|
14
|
+
}, {
|
|
15
|
+
readonly required: readonly ["cid", "uri"];
|
|
16
|
+
}, {
|
|
17
|
+
uri: `at://did:${string}:${string}/${string}.${string}.${string}/${string}` | `at://${string}.${string}/${string}.${string}.${string}/${string}`;
|
|
18
|
+
cid: string;
|
|
19
|
+
}>>;
|
|
20
|
+
}, {
|
|
21
|
+
readonly required: readonly ["version", "lexicons", "resolutions"];
|
|
22
|
+
}, {
|
|
23
|
+
version: 1;
|
|
24
|
+
lexicons: `${string}.${string}.${string}`[];
|
|
25
|
+
resolutions: Record<`${string}.${string}.${string}`, {
|
|
26
|
+
uri: `at://did:${string}:${string}/${string}.${string}.${string}/${string}` | `at://${string}.${string}/${string}.${string}.${string}/${string}`;
|
|
27
|
+
cid: string;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
export type LexiconsManifest = l.Infer<typeof lexiconsManifestSchema>;
|
|
31
|
+
//# sourceMappingURL=lexicons-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexicons-manifest.d.ts","sourceRoot":"","sources":["../src/lexicons-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAA;AAEvC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBlC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lexiconsManifestSchema = void 0;
|
|
4
|
+
const lex_schema_1 = require("@atproto/lex-schema");
|
|
5
|
+
exports.lexiconsManifestSchema = lex_schema_1.l.object({
|
|
6
|
+
version: lex_schema_1.l.literal(1),
|
|
7
|
+
lexicons: lex_schema_1.l.array(lex_schema_1.l.string({ format: 'nsid' })),
|
|
8
|
+
resolutions: lex_schema_1.l.dict(lex_schema_1.l.string({ format: 'nsid' }), lex_schema_1.l.object({
|
|
9
|
+
cid: lex_schema_1.l.string({ format: 'cid' }),
|
|
10
|
+
uri: lex_schema_1.l.string({ format: 'at-uri' }),
|
|
11
|
+
}, {
|
|
12
|
+
required: ['cid', 'uri'],
|
|
13
|
+
})),
|
|
14
|
+
}, { required: ['version', 'lexicons', 'resolutions'] });
|
|
15
|
+
//# sourceMappingURL=lexicons-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexicons-manifest.js","sourceRoot":"","sources":["../src/lexicons-manifest.ts"],"names":[],"mappings":";;;AAAA,oDAAuC;AAE1B,QAAA,sBAAsB,GAAG,cAAC,CAAC,MAAM,CAC5C;IACE,OAAO,EAAE,cAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,QAAQ,EAAE,cAAC,CAAC,KAAK,CAAC,cAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,WAAW,EAAE,cAAC,CAAC,IAAI,CACjB,cAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAC5B,cAAC,CAAC,MAAM,CACN;QACE,GAAG,EAAE,cAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAChC,GAAG,EAAE,cAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;KACpC,EACD;QACE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;KACzB,CACF,CACF;CACF,EACD,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CACrD,CAAA","sourcesContent":["import { l } from '@atproto/lex-schema'\n\nexport const lexiconsManifestSchema = l.object(\n {\n version: l.literal(1),\n lexicons: l.array(l.string({ format: 'nsid' })),\n resolutions: l.dict(\n l.string({ format: 'nsid' }),\n l.object(\n {\n cid: l.string({ format: 'cid' }),\n uri: l.string({ format: 'at-uri' }),\n },\n {\n required: ['cid', 'uri'],\n },\n ),\n ),\n },\n { required: ['version', 'lexicons', 'resolutions'] },\n)\n\nexport type LexiconsManifest = l.Infer<typeof lexiconsManifestSchema>\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NSID } from '@atproto/syntax';
|
|
2
|
+
/**
|
|
3
|
+
* A Map implementation that maps keys of type K to an internal representation
|
|
4
|
+
* I. Key identity is determined by the {@link Object.is} comparison of the
|
|
5
|
+
* encoded keys.
|
|
6
|
+
*
|
|
7
|
+
* This is typically useful for values that can be serialized to a unique string
|
|
8
|
+
* representation.
|
|
9
|
+
*/
|
|
10
|
+
declare class MappedMap<K, V, I = any> implements Map<K, V> {
|
|
11
|
+
private readonly encodeKey;
|
|
12
|
+
private readonly decodeKey;
|
|
13
|
+
private map;
|
|
14
|
+
constructor(encodeKey: (key: K) => I, decodeKey: (enc: I) => K);
|
|
15
|
+
get size(): number;
|
|
16
|
+
clear(): void;
|
|
17
|
+
set(key: K, value: V): this;
|
|
18
|
+
get(key: K): V | undefined;
|
|
19
|
+
has(key: K): boolean;
|
|
20
|
+
delete(key: K): boolean;
|
|
21
|
+
values(): IterableIterator<V>;
|
|
22
|
+
keys(): IterableIterator<K>;
|
|
23
|
+
entries(): IterableIterator<[K, V]>;
|
|
24
|
+
forEach(callbackfn: (value: V, key: K, map: MappedMap<K, V>) => void, thisArg?: any): void;
|
|
25
|
+
[Symbol.iterator](): IterableIterator<[K, V]>;
|
|
26
|
+
[Symbol.toStringTag]: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class NsidMap<T> extends MappedMap<NSID, T, string> {
|
|
29
|
+
constructor();
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=nsid-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-map.d.ts","sourceRoot":"","sources":["../src/nsid-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC;;;;;;;GAOG;AACH,cAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAE,YAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAI/C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,OAAO,CAAC,GAAG,CAAkB;gBAGV,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EACxB,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAG3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAK3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIvB,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAI5B,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAM3B,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAMpC,OAAO,CACL,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAC5D,OAAO,CAAC,EAAE,GAAG,GACZ,IAAI;IAMP,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI7C,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAc;CAC3C;AAED,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;;CAOzD"}
|
package/dist/nsid-map.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NsidMap = void 0;
|
|
4
|
+
const syntax_1 = require("@atproto/syntax");
|
|
5
|
+
/**
|
|
6
|
+
* A Map implementation that maps keys of type K to an internal representation
|
|
7
|
+
* I. Key identity is determined by the {@link Object.is} comparison of the
|
|
8
|
+
* encoded keys.
|
|
9
|
+
*
|
|
10
|
+
* This is typically useful for values that can be serialized to a unique string
|
|
11
|
+
* representation.
|
|
12
|
+
*/
|
|
13
|
+
class MappedMap {
|
|
14
|
+
encodeKey;
|
|
15
|
+
decodeKey;
|
|
16
|
+
map = new Map();
|
|
17
|
+
constructor(encodeKey, decodeKey) {
|
|
18
|
+
this.encodeKey = encodeKey;
|
|
19
|
+
this.decodeKey = decodeKey;
|
|
20
|
+
}
|
|
21
|
+
get size() {
|
|
22
|
+
return this.map.size;
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
this.map.clear();
|
|
26
|
+
}
|
|
27
|
+
set(key, value) {
|
|
28
|
+
this.map.set(this.encodeKey(key), value);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
get(key) {
|
|
32
|
+
return this.map.get(this.encodeKey(key));
|
|
33
|
+
}
|
|
34
|
+
has(key) {
|
|
35
|
+
return this.map.has(this.encodeKey(key));
|
|
36
|
+
}
|
|
37
|
+
delete(key) {
|
|
38
|
+
return this.map.delete(this.encodeKey(key));
|
|
39
|
+
}
|
|
40
|
+
values() {
|
|
41
|
+
return this.map.values();
|
|
42
|
+
}
|
|
43
|
+
*keys() {
|
|
44
|
+
for (const key of this.map.keys()) {
|
|
45
|
+
yield this.decodeKey(key);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
*entries() {
|
|
49
|
+
for (const [key, value] of this.map.entries()) {
|
|
50
|
+
yield [this.decodeKey(key), value];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
forEach(callbackfn, thisArg) {
|
|
54
|
+
for (const [key, value] of this) {
|
|
55
|
+
callbackfn.call(thisArg, value, key, this);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
[Symbol.iterator]() {
|
|
59
|
+
return this.entries();
|
|
60
|
+
}
|
|
61
|
+
[Symbol.toStringTag] = 'MappedMap';
|
|
62
|
+
}
|
|
63
|
+
class NsidMap extends MappedMap {
|
|
64
|
+
constructor() {
|
|
65
|
+
super((key) => key.toString(), (enc) => syntax_1.NSID.from(enc));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.NsidMap = NsidMap;
|
|
69
|
+
//# sourceMappingURL=nsid-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-map.js","sourceRoot":"","sources":["../src/nsid-map.ts"],"names":[],"mappings":";;;AAAA,4CAAsC;AAEtC;;;;;;;GAOG;AACH,MAAM,SAAS;IAIM;IACA;IAJX,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAA;IAE7B,YACmB,SAAwB,EACxB,SAAwB;QADxB,cAAS,GAAT,SAAS,CAAe;QACxB,cAAS,GAAT,SAAS,CAAe;IACxC,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,CAAC,IAAI;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,CAAC,OAAO;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,OAAO,CACL,UAA4D,EAC5D,OAAa;QAEb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,WAAW,CAAC,GAAW,WAAW,CAAA;CAC3C;AAED,MAAa,OAAW,SAAQ,SAA0B;IACxD;QACE,KAAK,CACH,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EACvB,CAAC,GAAG,EAAE,EAAE,CAAC,aAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CACxB,CAAA;IACH,CAAC;CACF;AAPD,0BAOC","sourcesContent":["import { NSID } from '@atproto/syntax'\n\n/**\n * A Map implementation that maps keys of type K to an internal representation\n * I. Key identity is determined by the {@link Object.is} comparison of the\n * encoded keys.\n *\n * This is typically useful for values that can be serialized to a unique string\n * representation.\n */\nclass MappedMap<K, V, I = any> implements Map<K, V> {\n private map = new Map<I, V>()\n\n constructor(\n private readonly encodeKey: (key: K) => I,\n private readonly decodeKey: (enc: I) => K,\n ) {}\n\n get size(): number {\n return this.map.size\n }\n\n clear(): void {\n this.map.clear()\n }\n\n set(key: K, value: V): this {\n this.map.set(this.encodeKey(key), value)\n return this\n }\n\n get(key: K): V | undefined {\n return this.map.get(this.encodeKey(key))\n }\n\n has(key: K): boolean {\n return this.map.has(this.encodeKey(key))\n }\n\n delete(key: K): boolean {\n return this.map.delete(this.encodeKey(key))\n }\n\n values(): IterableIterator<V> {\n return this.map.values()\n }\n\n *keys(): IterableIterator<K> {\n for (const key of this.map.keys()) {\n yield this.decodeKey(key)\n }\n }\n\n *entries(): IterableIterator<[K, V]> {\n for (const [key, value] of this.map.entries()) {\n yield [this.decodeKey(key), value]\n }\n }\n\n forEach(\n callbackfn: (value: V, key: K, map: MappedMap<K, V>) => void,\n thisArg?: any,\n ): void {\n for (const [key, value] of this) {\n callbackfn.call(thisArg, value, key, this)\n }\n }\n\n [Symbol.iterator](): IterableIterator<[K, V]> {\n return this.entries()\n }\n\n [Symbol.toStringTag]: string = 'MappedMap'\n}\n\nexport class NsidMap<T> extends MappedMap<NSID, T, string> {\n constructor() {\n super(\n (key) => key.toString(),\n (enc) => NSID.from(enc),\n )\n }\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { NSID } from '@atproto/syntax';
|
|
2
|
+
/**
|
|
3
|
+
* A Set implementation that maps values of type K to an internal representation
|
|
4
|
+
* I. Value identity is determined by the {@link Object.is} comparison of the
|
|
5
|
+
* encoded values.
|
|
6
|
+
*
|
|
7
|
+
* This is typically useful for values that can be serialized to a unique string
|
|
8
|
+
* representation.
|
|
9
|
+
*/
|
|
10
|
+
export declare class MappedSet<K, I = any> implements Set<K> {
|
|
11
|
+
private readonly encodeValue;
|
|
12
|
+
private readonly decodeValue;
|
|
13
|
+
private set;
|
|
14
|
+
constructor(encodeValue: (val: K) => I, decodeValue: (enc: I) => K);
|
|
15
|
+
get size(): number;
|
|
16
|
+
clear(): void;
|
|
17
|
+
add(val: K): this;
|
|
18
|
+
has(val: K): boolean;
|
|
19
|
+
delete(val: K): boolean;
|
|
20
|
+
values(): IterableIterator<K>;
|
|
21
|
+
keys(): SetIterator<K>;
|
|
22
|
+
entries(): IterableIterator<[K, K]>;
|
|
23
|
+
forEach(callbackfn: (value: K, value2: K, set: Set<K>) => void, thisArg?: any): void;
|
|
24
|
+
[Symbol.iterator](): IterableIterator<K>;
|
|
25
|
+
[Symbol.toStringTag]: string;
|
|
26
|
+
}
|
|
27
|
+
export declare class NsidSet extends MappedSet<NSID, string> {
|
|
28
|
+
constructor();
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=nsid-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-set.d.ts","sourceRoot":"","sources":["../src/nsid-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC;;;;;;;GAOG;AACH,qBAAa,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAE,YAAW,GAAG,CAAC,CAAC,CAAC;IAIhD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,OAAO,CAAC,GAAG,CAAe;gBAGP,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAG7C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;IAKjB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAItB,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAM9B,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAIpC,OAAO,CACL,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EACtD,OAAO,CAAC,EAAE,GAAG,GACZ,IAAI;IAMP,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAIxC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAc;CAC3C;AAED,qBAAa,OAAQ,SAAQ,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;;CAOnD"}
|
package/dist/nsid-set.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NsidSet = exports.MappedSet = void 0;
|
|
4
|
+
const syntax_1 = require("@atproto/syntax");
|
|
5
|
+
/**
|
|
6
|
+
* A Set implementation that maps values of type K to an internal representation
|
|
7
|
+
* I. Value identity is determined by the {@link Object.is} comparison of the
|
|
8
|
+
* encoded values.
|
|
9
|
+
*
|
|
10
|
+
* This is typically useful for values that can be serialized to a unique string
|
|
11
|
+
* representation.
|
|
12
|
+
*/
|
|
13
|
+
class MappedSet {
|
|
14
|
+
encodeValue;
|
|
15
|
+
decodeValue;
|
|
16
|
+
set = new Set();
|
|
17
|
+
constructor(encodeValue, decodeValue) {
|
|
18
|
+
this.encodeValue = encodeValue;
|
|
19
|
+
this.decodeValue = decodeValue;
|
|
20
|
+
}
|
|
21
|
+
get size() {
|
|
22
|
+
return this.set.size;
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
this.set.clear();
|
|
26
|
+
}
|
|
27
|
+
add(val) {
|
|
28
|
+
this.set.add(this.encodeValue(val));
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
has(val) {
|
|
32
|
+
return this.set.has(this.encodeValue(val));
|
|
33
|
+
}
|
|
34
|
+
delete(val) {
|
|
35
|
+
return this.set.delete(this.encodeValue(val));
|
|
36
|
+
}
|
|
37
|
+
*values() {
|
|
38
|
+
for (const val of this.set.values()) {
|
|
39
|
+
yield this.decodeValue(val);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
keys() {
|
|
43
|
+
return this.values();
|
|
44
|
+
}
|
|
45
|
+
*entries() {
|
|
46
|
+
for (const val of this)
|
|
47
|
+
yield [val, val];
|
|
48
|
+
}
|
|
49
|
+
forEach(callbackfn, thisArg) {
|
|
50
|
+
for (const val of this) {
|
|
51
|
+
callbackfn.call(thisArg, val, val, this);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
[Symbol.iterator]() {
|
|
55
|
+
return this.values();
|
|
56
|
+
}
|
|
57
|
+
[Symbol.toStringTag] = 'MappedSet';
|
|
58
|
+
}
|
|
59
|
+
exports.MappedSet = MappedSet;
|
|
60
|
+
class NsidSet extends MappedSet {
|
|
61
|
+
constructor() {
|
|
62
|
+
super((val) => val.toString(), (enc) => syntax_1.NSID.from(enc));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.NsidSet = NsidSet;
|
|
66
|
+
//# sourceMappingURL=nsid-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nsid-set.js","sourceRoot":"","sources":["../src/nsid-set.ts"],"names":[],"mappings":";;;AAAA,4CAAsC;AAEtC;;;;;;;GAOG;AACH,MAAa,SAAS;IAID;IACA;IAJX,GAAG,GAAG,IAAI,GAAG,EAAK,CAAA;IAE1B,YACmB,WAA0B,EAC1B,WAA0B;QAD1B,gBAAW,GAAX,WAAW,CAAe;QAC1B,gBAAW,GAAX,WAAW,CAAe;IAC1C,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,CAAC,MAAM;QACL,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,CAAC,OAAO;QACN,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,CACL,UAAsD,EACtD,OAAa;QAEb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,CAAC,MAAM,CAAC,WAAW,CAAC,GAAW,WAAW,CAAA;CAC3C;AAzDD,8BAyDC;AAED,MAAa,OAAQ,SAAQ,SAAuB;IAClD;QACE,KAAK,CACH,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EACvB,CAAC,GAAG,EAAE,EAAE,CAAC,aAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CACxB,CAAA;IACH,CAAC;CACF;AAPD,0BAOC","sourcesContent":["import { NSID } from '@atproto/syntax'\n\n/**\n * A Set implementation that maps values of type K to an internal representation\n * I. Value identity is determined by the {@link Object.is} comparison of the\n * encoded values.\n *\n * This is typically useful for values that can be serialized to a unique string\n * representation.\n */\nexport class MappedSet<K, I = any> implements Set<K> {\n private set = new Set<I>()\n\n constructor(\n private readonly encodeValue: (val: K) => I,\n private readonly decodeValue: (enc: I) => K,\n ) {}\n\n get size(): number {\n return this.set.size\n }\n\n clear(): void {\n this.set.clear()\n }\n\n add(val: K): this {\n this.set.add(this.encodeValue(val))\n return this\n }\n\n has(val: K): boolean {\n return this.set.has(this.encodeValue(val))\n }\n\n delete(val: K): boolean {\n return this.set.delete(this.encodeValue(val))\n }\n\n *values(): IterableIterator<K> {\n for (const val of this.set.values()) {\n yield this.decodeValue(val)\n }\n }\n\n keys(): SetIterator<K> {\n return this.values()\n }\n\n *entries(): IterableIterator<[K, K]> {\n for (const val of this) yield [val, val]\n }\n\n forEach(\n callbackfn: (value: K, value2: K, set: Set<K>) => void,\n thisArg?: any,\n ): void {\n for (const val of this) {\n callbackfn.call(thisArg, val, val, this)\n }\n }\n\n [Symbol.iterator](): IterableIterator<K> {\n return this.values()\n }\n\n [Symbol.toStringTag]: string = 'MappedSet'\n}\n\nexport class NsidSet extends MappedSet<NSID, string> {\n constructor() {\n super(\n (val) => val.toString(),\n (enc) => NSID.from(enc),\n )\n }\n}\n"]}
|