@geoprotocol/grc-20 0.1.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/builder/edit.d.ts +107 -0
- package/dist/builder/edit.d.ts.map +1 -0
- package/dist/builder/edit.js +221 -0
- package/dist/builder/edit.js.map +1 -0
- package/dist/builder/entity.d.ts +62 -0
- package/dist/builder/entity.d.ts.map +1 -0
- package/dist/builder/entity.js +126 -0
- package/dist/builder/entity.js.map +1 -0
- package/dist/builder/index.d.ts +5 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +5 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/relation.d.ts +66 -0
- package/dist/builder/relation.d.ts.map +1 -0
- package/dist/builder/relation.js +114 -0
- package/dist/builder/relation.js.map +1 -0
- package/dist/builder/update.d.ts +90 -0
- package/dist/builder/update.d.ts.map +1 -0
- package/dist/builder/update.js +174 -0
- package/dist/builder/update.js.map +1 -0
- package/dist/codec/edit.d.ts +17 -0
- package/dist/codec/edit.d.ts.map +1 -0
- package/dist/codec/edit.js +393 -0
- package/dist/codec/edit.js.map +1 -0
- package/dist/codec/index.d.ts +3 -0
- package/dist/codec/index.d.ts.map +1 -0
- package/dist/codec/index.js +3 -0
- package/dist/codec/index.js.map +1 -0
- package/dist/codec/op.d.ts +27 -0
- package/dist/codec/op.d.ts.map +1 -0
- package/dist/codec/op.js +333 -0
- package/dist/codec/op.js.map +1 -0
- package/dist/codec/primitives.d.ts +138 -0
- package/dist/codec/primitives.d.ts.map +1 -0
- package/dist/codec/primitives.js +285 -0
- package/dist/codec/primitives.js.map +1 -0
- package/dist/codec/value.d.ts +41 -0
- package/dist/codec/value.d.ts.map +1 -0
- package/dist/codec/value.js +202 -0
- package/dist/codec/value.js.map +1 -0
- package/dist/genesis/index.d.ts +109 -0
- package/dist/genesis/index.d.ts.map +1 -0
- package/dist/genesis/index.js +183 -0
- package/dist/genesis/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/test/basic.test.d.ts +2 -0
- package/dist/test/basic.test.d.ts.map +1 -0
- package/dist/test/basic.test.js +270 -0
- package/dist/test/basic.test.js.map +1 -0
- package/dist/types/edit.d.ts +46 -0
- package/dist/types/edit.d.ts.map +1 -0
- package/dist/types/edit.js +13 -0
- package/dist/types/edit.js.map +1 -0
- package/dist/types/id.d.ts +32 -0
- package/dist/types/id.d.ts.map +1 -0
- package/dist/types/id.js +45 -0
- package/dist/types/id.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/op.d.ts +147 -0
- package/dist/types/op.d.ts.map +1 -0
- package/dist/types/op.js +60 -0
- package/dist/types/op.js.map +1 -0
- package/dist/types/value.d.ts +107 -0
- package/dist/types/value.d.ts.map +1 -0
- package/dist/types/value.js +126 -0
- package/dist/types/value.js.map +1 -0
- package/dist/util/id.d.ts +51 -0
- package/dist/util/id.d.ts.map +1 -0
- package/dist/util/id.js +215 -0
- package/dist/util/id.js.map +1 -0
- package/dist/util/index.d.ts +2 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +2 -0
- package/dist/util/index.js.map +1 -0
- package/package.json +68 -0
- package/readme.md +232 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { compareIds } from "../types/id.js";
|
|
2
|
+
import { DataType, valueDataType } from "../types/value.js";
|
|
3
|
+
import { DecodeError, Reader, Writer } from "./primitives.js";
|
|
4
|
+
import { decodeOp, encodeOp } from "./op.js";
|
|
5
|
+
// Magic bytes
|
|
6
|
+
const MAGIC_UNCOMPRESSED = new TextEncoder().encode("GRC2");
|
|
7
|
+
const MAGIC_COMPRESSED = new TextEncoder().encode("GRC2Z");
|
|
8
|
+
// Current version
|
|
9
|
+
const VERSION = 0;
|
|
10
|
+
/**
|
|
11
|
+
* Encodes an Edit to binary format.
|
|
12
|
+
*/
|
|
13
|
+
export function encodeEdit(edit, options) {
|
|
14
|
+
const canonical = options?.canonical ?? false;
|
|
15
|
+
// Build dictionaries by scanning all ops
|
|
16
|
+
let dicts = buildDictionaries(edit.ops);
|
|
17
|
+
// Sort dictionaries for canonical encoding
|
|
18
|
+
if (canonical) {
|
|
19
|
+
dicts = sortDictionaries(dicts);
|
|
20
|
+
}
|
|
21
|
+
// Create dictionary indices
|
|
22
|
+
const indices = createDictionaryIndices(dicts);
|
|
23
|
+
// Write to buffer
|
|
24
|
+
const writer = new Writer(1024);
|
|
25
|
+
// Magic + version
|
|
26
|
+
writer.writeBytes(MAGIC_UNCOMPRESSED);
|
|
27
|
+
writer.writeByte(VERSION);
|
|
28
|
+
// Header
|
|
29
|
+
writer.writeId(edit.id);
|
|
30
|
+
writer.writeString(edit.name);
|
|
31
|
+
// Authors (sorted for canonical)
|
|
32
|
+
let authors = edit.authors;
|
|
33
|
+
if (canonical) {
|
|
34
|
+
authors = [...authors].sort(compareIds);
|
|
35
|
+
}
|
|
36
|
+
writer.writeIdVec(authors);
|
|
37
|
+
writer.writeSignedVarint(edit.createdAt);
|
|
38
|
+
// Dictionaries
|
|
39
|
+
writeDictionaries(writer, dicts);
|
|
40
|
+
// Operations
|
|
41
|
+
writer.writeVarintNumber(edit.ops.length);
|
|
42
|
+
for (const op of edit.ops) {
|
|
43
|
+
encodeOp(writer, op, indices);
|
|
44
|
+
}
|
|
45
|
+
return writer.finish();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Decodes binary data to an Edit.
|
|
49
|
+
*/
|
|
50
|
+
export function decodeEdit(data) {
|
|
51
|
+
// Check for compression
|
|
52
|
+
if (data.length >= 5 && matchesMagic(data, MAGIC_COMPRESSED)) {
|
|
53
|
+
throw new DecodeError("E001", "compressed data detected - use decodeEditCompressed() or decompress first");
|
|
54
|
+
}
|
|
55
|
+
// Check magic
|
|
56
|
+
if (data.length < 4 || !matchesMagic(data, MAGIC_UNCOMPRESSED)) {
|
|
57
|
+
const found = data.length >= 4 ? data.subarray(0, 4) : data;
|
|
58
|
+
throw new DecodeError("E001", `invalid magic bytes: expected GRC2, found ${Array.from(found)}`);
|
|
59
|
+
}
|
|
60
|
+
const reader = new Reader(data);
|
|
61
|
+
// Skip magic
|
|
62
|
+
reader.readBytes(4);
|
|
63
|
+
// Version
|
|
64
|
+
const version = reader.readByte();
|
|
65
|
+
if (version !== VERSION) {
|
|
66
|
+
throw new DecodeError("E001", `unsupported version: ${version}`);
|
|
67
|
+
}
|
|
68
|
+
// Header
|
|
69
|
+
const id = reader.readId();
|
|
70
|
+
const name = reader.readString();
|
|
71
|
+
const authors = reader.readIdVec();
|
|
72
|
+
const createdAt = reader.readSignedVarint();
|
|
73
|
+
// Dictionaries
|
|
74
|
+
const dicts = readDictionaries(reader);
|
|
75
|
+
const lookups = createDictionaryLookups(dicts);
|
|
76
|
+
// Operations
|
|
77
|
+
const opCount = reader.readVarintNumber();
|
|
78
|
+
const ops = [];
|
|
79
|
+
for (let i = 0; i < opCount; i++) {
|
|
80
|
+
ops.push(decodeOp(reader, lookups));
|
|
81
|
+
}
|
|
82
|
+
return { id, name, authors, createdAt, ops };
|
|
83
|
+
}
|
|
84
|
+
function matchesMagic(data, magic) {
|
|
85
|
+
for (let i = 0; i < magic.length; i++) {
|
|
86
|
+
if (data[i] !== magic[i])
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
function idKey(id) {
|
|
92
|
+
return Array.from(id).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
93
|
+
}
|
|
94
|
+
function buildDictionaries(ops) {
|
|
95
|
+
const dicts = {
|
|
96
|
+
properties: new Map(),
|
|
97
|
+
relationTypes: new Map(),
|
|
98
|
+
languages: new Map(),
|
|
99
|
+
units: new Map(),
|
|
100
|
+
objects: new Map(),
|
|
101
|
+
};
|
|
102
|
+
function addProperty(id, dataType) {
|
|
103
|
+
const key = idKey(id);
|
|
104
|
+
if (!dicts.properties.has(key)) {
|
|
105
|
+
dicts.properties.set(key, { id, dataType });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function addRelationType(id) {
|
|
109
|
+
const key = idKey(id);
|
|
110
|
+
if (!dicts.relationTypes.has(key)) {
|
|
111
|
+
dicts.relationTypes.set(key, id);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function addLanguage(id) {
|
|
115
|
+
const key = idKey(id);
|
|
116
|
+
if (!dicts.languages.has(key)) {
|
|
117
|
+
dicts.languages.set(key, id);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function addUnit(id) {
|
|
121
|
+
const key = idKey(id);
|
|
122
|
+
if (!dicts.units.has(key)) {
|
|
123
|
+
dicts.units.set(key, id);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function addObject(id) {
|
|
127
|
+
const key = idKey(id);
|
|
128
|
+
if (!dicts.objects.has(key)) {
|
|
129
|
+
dicts.objects.set(key, id);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function processPropertyValue(pv) {
|
|
133
|
+
addProperty(pv.property, valueDataType(pv.value));
|
|
134
|
+
if (pv.value.type === "text" && pv.value.language) {
|
|
135
|
+
addLanguage(pv.value.language);
|
|
136
|
+
}
|
|
137
|
+
if ((pv.value.type === "int64" || pv.value.type === "float64" || pv.value.type === "decimal") &&
|
|
138
|
+
pv.value.unit) {
|
|
139
|
+
addUnit(pv.value.unit);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function processUnsetLanguage(lang) {
|
|
143
|
+
if (lang.type === "specific") {
|
|
144
|
+
addLanguage(lang.language);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
for (const op of ops) {
|
|
148
|
+
switch (op.type) {
|
|
149
|
+
case "createEntity":
|
|
150
|
+
// ID is inline, not in object dict
|
|
151
|
+
for (const pv of op.values) {
|
|
152
|
+
processPropertyValue(pv);
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case "updateEntity":
|
|
156
|
+
addObject(op.id);
|
|
157
|
+
for (const pv of op.setProperties) {
|
|
158
|
+
processPropertyValue(pv);
|
|
159
|
+
}
|
|
160
|
+
for (const unset of op.unsetProperties) {
|
|
161
|
+
addProperty(unset.property, DataType.Text); // Assume TEXT for unset properties
|
|
162
|
+
processUnsetLanguage(unset.language);
|
|
163
|
+
}
|
|
164
|
+
break;
|
|
165
|
+
case "deleteEntity":
|
|
166
|
+
case "restoreEntity":
|
|
167
|
+
addObject(op.id);
|
|
168
|
+
break;
|
|
169
|
+
case "createRelation":
|
|
170
|
+
// For unique mode, compute the derived ID and add to objects if referenced later
|
|
171
|
+
addRelationType(op.relationType);
|
|
172
|
+
addObject(op.from);
|
|
173
|
+
addObject(op.to);
|
|
174
|
+
// Many mode ID is inline
|
|
175
|
+
// Entity is inline if present
|
|
176
|
+
break;
|
|
177
|
+
case "updateRelation":
|
|
178
|
+
case "deleteRelation":
|
|
179
|
+
case "restoreRelation":
|
|
180
|
+
addObject(op.id);
|
|
181
|
+
break;
|
|
182
|
+
case "createProperty":
|
|
183
|
+
// ID is inline
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return dicts;
|
|
188
|
+
}
|
|
189
|
+
function sortDictionaries(dicts) {
|
|
190
|
+
// Sort each dictionary by ID bytes
|
|
191
|
+
const sortedProps = Array.from(dicts.properties.values()).sort((a, b) => compareIds(a.id, b.id));
|
|
192
|
+
const sortedRelTypes = Array.from(dicts.relationTypes.values()).sort(compareIds);
|
|
193
|
+
const sortedLangs = Array.from(dicts.languages.values()).sort(compareIds);
|
|
194
|
+
const sortedUnits = Array.from(dicts.units.values()).sort(compareIds);
|
|
195
|
+
const sortedObjects = Array.from(dicts.objects.values()).sort(compareIds);
|
|
196
|
+
const sorted = {
|
|
197
|
+
properties: new Map(),
|
|
198
|
+
relationTypes: new Map(),
|
|
199
|
+
languages: new Map(),
|
|
200
|
+
units: new Map(),
|
|
201
|
+
objects: new Map(),
|
|
202
|
+
};
|
|
203
|
+
for (const prop of sortedProps) {
|
|
204
|
+
sorted.properties.set(idKey(prop.id), prop);
|
|
205
|
+
}
|
|
206
|
+
for (const id of sortedRelTypes) {
|
|
207
|
+
sorted.relationTypes.set(idKey(id), id);
|
|
208
|
+
}
|
|
209
|
+
for (const id of sortedLangs) {
|
|
210
|
+
sorted.languages.set(idKey(id), id);
|
|
211
|
+
}
|
|
212
|
+
for (const id of sortedUnits) {
|
|
213
|
+
sorted.units.set(idKey(id), id);
|
|
214
|
+
}
|
|
215
|
+
for (const id of sortedObjects) {
|
|
216
|
+
sorted.objects.set(idKey(id), id);
|
|
217
|
+
}
|
|
218
|
+
return sorted;
|
|
219
|
+
}
|
|
220
|
+
function createDictionaryIndices(dicts) {
|
|
221
|
+
const propToIndex = new Map();
|
|
222
|
+
const propToDataType = new Map();
|
|
223
|
+
const relTypeToIndex = new Map();
|
|
224
|
+
const langToIndex = new Map();
|
|
225
|
+
const unitToIndex = new Map();
|
|
226
|
+
const objToIndex = new Map();
|
|
227
|
+
let i = 0;
|
|
228
|
+
for (const [key, prop] of dicts.properties) {
|
|
229
|
+
propToIndex.set(key, i++);
|
|
230
|
+
propToDataType.set(key, prop.dataType);
|
|
231
|
+
}
|
|
232
|
+
i = 0;
|
|
233
|
+
for (const key of dicts.relationTypes.keys()) {
|
|
234
|
+
relTypeToIndex.set(key, i++);
|
|
235
|
+
}
|
|
236
|
+
i = 0;
|
|
237
|
+
for (const key of dicts.languages.keys()) {
|
|
238
|
+
langToIndex.set(key, i++);
|
|
239
|
+
}
|
|
240
|
+
i = 0;
|
|
241
|
+
for (const key of dicts.units.keys()) {
|
|
242
|
+
unitToIndex.set(key, i++);
|
|
243
|
+
}
|
|
244
|
+
i = 0;
|
|
245
|
+
for (const key of dicts.objects.keys()) {
|
|
246
|
+
objToIndex.set(key, i++);
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
getPropertyIndex(id) {
|
|
250
|
+
const key = idKey(id);
|
|
251
|
+
const idx = propToIndex.get(key);
|
|
252
|
+
if (idx === undefined) {
|
|
253
|
+
throw new Error(`property not in dictionary: ${key}`);
|
|
254
|
+
}
|
|
255
|
+
return idx;
|
|
256
|
+
},
|
|
257
|
+
getLanguageIndex(id) {
|
|
258
|
+
if (id === undefined)
|
|
259
|
+
return 0;
|
|
260
|
+
const key = idKey(id);
|
|
261
|
+
const idx = langToIndex.get(key);
|
|
262
|
+
if (idx === undefined) {
|
|
263
|
+
throw new Error(`language not in dictionary: ${key}`);
|
|
264
|
+
}
|
|
265
|
+
return idx + 1;
|
|
266
|
+
},
|
|
267
|
+
getUnitIndex(id) {
|
|
268
|
+
if (id === undefined)
|
|
269
|
+
return 0;
|
|
270
|
+
const key = idKey(id);
|
|
271
|
+
const idx = unitToIndex.get(key);
|
|
272
|
+
if (idx === undefined) {
|
|
273
|
+
throw new Error(`unit not in dictionary: ${key}`);
|
|
274
|
+
}
|
|
275
|
+
return idx + 1;
|
|
276
|
+
},
|
|
277
|
+
getDataType(propertyId) {
|
|
278
|
+
const key = idKey(propertyId);
|
|
279
|
+
const dt = propToDataType.get(key);
|
|
280
|
+
if (dt === undefined) {
|
|
281
|
+
throw new Error(`property not in dictionary: ${key}`);
|
|
282
|
+
}
|
|
283
|
+
return dt;
|
|
284
|
+
},
|
|
285
|
+
getObjectIndex(id) {
|
|
286
|
+
const key = idKey(id);
|
|
287
|
+
const idx = objToIndex.get(key);
|
|
288
|
+
if (idx === undefined) {
|
|
289
|
+
throw new Error(`object not in dictionary: ${key}`);
|
|
290
|
+
}
|
|
291
|
+
return idx;
|
|
292
|
+
},
|
|
293
|
+
getRelationTypeIndex(id) {
|
|
294
|
+
const key = idKey(id);
|
|
295
|
+
const idx = relTypeToIndex.get(key);
|
|
296
|
+
if (idx === undefined) {
|
|
297
|
+
throw new Error(`relation type not in dictionary: ${key}`);
|
|
298
|
+
}
|
|
299
|
+
return idx;
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
function writeDictionaries(writer, dicts) {
|
|
304
|
+
// Properties: count + (id, data_type) pairs
|
|
305
|
+
writer.writeVarintNumber(dicts.properties.size);
|
|
306
|
+
for (const prop of dicts.properties.values()) {
|
|
307
|
+
writer.writeId(prop.id);
|
|
308
|
+
writer.writeByte(prop.dataType);
|
|
309
|
+
}
|
|
310
|
+
// Relation types
|
|
311
|
+
writer.writeVarintNumber(dicts.relationTypes.size);
|
|
312
|
+
for (const id of dicts.relationTypes.values()) {
|
|
313
|
+
writer.writeId(id);
|
|
314
|
+
}
|
|
315
|
+
// Languages
|
|
316
|
+
writer.writeVarintNumber(dicts.languages.size);
|
|
317
|
+
for (const id of dicts.languages.values()) {
|
|
318
|
+
writer.writeId(id);
|
|
319
|
+
}
|
|
320
|
+
// Units
|
|
321
|
+
writer.writeVarintNumber(dicts.units.size);
|
|
322
|
+
for (const id of dicts.units.values()) {
|
|
323
|
+
writer.writeId(id);
|
|
324
|
+
}
|
|
325
|
+
// Objects
|
|
326
|
+
writer.writeVarintNumber(dicts.objects.size);
|
|
327
|
+
for (const id of dicts.objects.values()) {
|
|
328
|
+
writer.writeId(id);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
function readDictionaries(reader) {
|
|
332
|
+
// Properties
|
|
333
|
+
const propCount = reader.readVarintNumber();
|
|
334
|
+
const properties = [];
|
|
335
|
+
for (let i = 0; i < propCount; i++) {
|
|
336
|
+
const id = reader.readId();
|
|
337
|
+
const dataTypeByte = reader.readByte();
|
|
338
|
+
if (dataTypeByte < 1 || dataTypeByte > 10) {
|
|
339
|
+
throw new DecodeError("E005", `invalid data type: ${dataTypeByte}`);
|
|
340
|
+
}
|
|
341
|
+
properties.push({ id, dataType: dataTypeByte });
|
|
342
|
+
}
|
|
343
|
+
// Relation types
|
|
344
|
+
const relationTypes = reader.readIdVec();
|
|
345
|
+
// Languages
|
|
346
|
+
const languages = reader.readIdVec();
|
|
347
|
+
// Units
|
|
348
|
+
const units = reader.readIdVec();
|
|
349
|
+
// Objects
|
|
350
|
+
const objects = reader.readIdVec();
|
|
351
|
+
return { properties, relationTypes, languages, units, objects };
|
|
352
|
+
}
|
|
353
|
+
function createDictionaryLookups(dicts) {
|
|
354
|
+
return {
|
|
355
|
+
getProperty(index) {
|
|
356
|
+
if (index >= dicts.properties.length) {
|
|
357
|
+
throw new DecodeError("E002", `property index ${index} out of bounds (size: ${dicts.properties.length})`);
|
|
358
|
+
}
|
|
359
|
+
return dicts.properties[index];
|
|
360
|
+
},
|
|
361
|
+
getLanguage(index) {
|
|
362
|
+
if (index === 0)
|
|
363
|
+
return undefined;
|
|
364
|
+
const langIndex = index - 1;
|
|
365
|
+
if (langIndex >= dicts.languages.length) {
|
|
366
|
+
throw new DecodeError("E002", `language index ${index} out of bounds`);
|
|
367
|
+
}
|
|
368
|
+
return dicts.languages[langIndex];
|
|
369
|
+
},
|
|
370
|
+
getUnit(index) {
|
|
371
|
+
if (index === 0)
|
|
372
|
+
return undefined;
|
|
373
|
+
const unitIndex = index - 1;
|
|
374
|
+
if (unitIndex >= dicts.units.length) {
|
|
375
|
+
throw new DecodeError("E002", `unit index ${index} out of bounds`);
|
|
376
|
+
}
|
|
377
|
+
return dicts.units[unitIndex];
|
|
378
|
+
},
|
|
379
|
+
getObject(index) {
|
|
380
|
+
if (index >= dicts.objects.length) {
|
|
381
|
+
throw new DecodeError("E002", `object index ${index} out of bounds (size: ${dicts.objects.length})`);
|
|
382
|
+
}
|
|
383
|
+
return dicts.objects[index];
|
|
384
|
+
},
|
|
385
|
+
getRelationType(index) {
|
|
386
|
+
if (index >= dicts.relationTypes.length) {
|
|
387
|
+
throw new DecodeError("E002", `relation type index ${index} out of bounds (size: ${dicts.relationTypes.length})`);
|
|
388
|
+
}
|
|
389
|
+
return dicts.relationTypes[index];
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/codec/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,GAEX,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Id } from "../types/id.js";
|
|
2
|
+
import type { Op } from "../types/op.js";
|
|
3
|
+
import { Reader, Writer } from "./primitives.js";
|
|
4
|
+
import { type DictionaryIndices, type DictionaryLookups } from "./value.js";
|
|
5
|
+
/**
|
|
6
|
+
* Extended dictionary indices for ops (includes objects).
|
|
7
|
+
*/
|
|
8
|
+
export interface OpDictionaryIndices extends DictionaryIndices {
|
|
9
|
+
getObjectIndex(id: Id): number;
|
|
10
|
+
getRelationTypeIndex(id: Id): number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Extended dictionary lookups for ops.
|
|
14
|
+
*/
|
|
15
|
+
export interface OpDictionaryLookups extends DictionaryLookups {
|
|
16
|
+
getObject(index: number): Id;
|
|
17
|
+
getRelationType(index: number): Id;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Encodes a single operation.
|
|
21
|
+
*/
|
|
22
|
+
export declare function encodeOp(writer: Writer, op: Op, dicts: OpDictionaryIndices): void;
|
|
23
|
+
/**
|
|
24
|
+
* Decodes a single operation.
|
|
25
|
+
*/
|
|
26
|
+
export declare function decodeOp(reader: Reader, dicts: OpDictionaryLookups): Op;
|
|
27
|
+
//# sourceMappingURL=op.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../../src/codec/op.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAMV,EAAE,EAOH,MAAM,gBAAgB,CAAC;AAaxB,OAAO,EAAe,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC;IAC7B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC;CACpC;AAiBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CA8BjF;AAgID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,EAAE,CAyBvE"}
|