@gmb/bitmark-parser 7.0.0 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +147 -11
- package/dist/browser/bitmark-parser.min.js +4 -4
- package/dist/browser/bitmark-parser.min.js.map +1 -1
- package/dist/browser/cjs/index.cjs +439 -67
- package/dist/browser/cjs/index.cjs.map +1 -1
- package/dist/browser/cjs/index.d.cts +320 -17
- package/dist/browser/esm/index.d.ts +320 -17
- package/dist/browser/esm/index.js +432 -67
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/browser/esm/worker-entry.js +317 -29
- package/dist/browser/esm/worker-entry.js.map +1 -1
- package/dist/browser/wasm/bitmark_browser_full_wasm_bg.wasm +0 -0
- package/dist/browser/wasm/bitmark_json_wasm_bg.wasm +0 -0
- package/dist/browser/wasm/bitmark_wasm_bg.wasm +0 -0
- package/dist/index.cjs +114 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +315 -17
- package/dist/index.d.ts +315 -17
- package/dist/index.js +107 -38
- package/dist/index.js.map +1 -1
- package/dist/legacy.cjs +1 -1
- package/dist/legacy.cjs.map +1 -1
- package/dist/legacy.js +1 -1
- package/dist/legacy.js.map +1 -1
- package/dist/worker-entry.cjs.map +1 -1
- package/package.json +7 -7
- package/schema/bitmark.schema.json +30 -6
- package/wasm/bitmark_wasm.d.ts +43 -8
- package/wasm/bitmark_wasm.js +165 -19
- package/wasm/bitmark_wasm_bg.wasm +0 -0
- package/wasm/bitmark_wasm_bg.wasm.d.ts +4 -1
- package/wasm/package.json +1 -1
- package/wasm-bitmark-json/bitmark_json_wasm.d.ts +43 -8
- package/wasm-bitmark-json/bitmark_json_wasm.js +156 -10
- package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm +0 -0
- package/wasm-bitmark-json/bitmark_json_wasm_bg.wasm.d.ts +4 -1
- package/wasm-bitmark-json/package.json +1 -1
- package/wasm-browser-full/bitmark_browser_full_wasm.d.ts +43 -8
- package/wasm-browser-full/bitmark_browser_full_wasm.js +165 -19
- package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm +0 -0
- package/wasm-browser-full/bitmark_browser_full_wasm_bg.wasm.d.ts +4 -1
- package/wasm-browser-full/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/index.cjs
CHANGED
|
@@ -31,16 +31,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
ALL_LANGUAGES: () => ALL_LANGUAGES,
|
|
34
|
+
CompletionItemKind: () => CompletionItemKind,
|
|
35
|
+
CompletionItemTag: () => CompletionItemTag,
|
|
36
|
+
DiagnosticSeverity: () => DiagnosticSeverity,
|
|
34
37
|
NotInitializedError: () => NotInitializedError,
|
|
35
38
|
RegisterError: () => RegisterError,
|
|
36
39
|
UnsupportedFeatureError: () => UnsupportedFeatureError,
|
|
37
40
|
bitmarkToObjects: () => bitmarkToObjects,
|
|
38
41
|
breakscapeText: () => breakscapeText,
|
|
39
42
|
canonicalize: () => canonicalize,
|
|
43
|
+
complete: () => complete,
|
|
40
44
|
convert: () => convert,
|
|
41
45
|
countBits: () => countBits,
|
|
46
|
+
diagnostics: () => diagnostics,
|
|
42
47
|
diff: () => diff,
|
|
43
48
|
diffBits: () => diffBits,
|
|
49
|
+
hover: () => hover,
|
|
44
50
|
info: () => info,
|
|
45
51
|
init: () => init,
|
|
46
52
|
initSync: () => initSync,
|
|
@@ -48,6 +54,7 @@ __export(src_exports, {
|
|
|
48
54
|
objectsToBitmark: () => objectsToBitmark,
|
|
49
55
|
patchEntry: () => patchEntry,
|
|
50
56
|
register: () => register,
|
|
57
|
+
resolve: () => resolve,
|
|
51
58
|
semanticTokens: () => semanticTokens,
|
|
52
59
|
splitBits: () => splitBits,
|
|
53
60
|
transform: () => transform,
|
|
@@ -68,7 +75,7 @@ var import_node_module = require("module");
|
|
|
68
75
|
// src/generated/package_info.ts
|
|
69
76
|
var PACKAGE_INFO = {
|
|
70
77
|
"name": "@gmb/bitmark-parser",
|
|
71
|
-
"version": "7.
|
|
78
|
+
"version": "7.2.0",
|
|
72
79
|
"author": "Get More Brain Ltd <info@getmorebrain.com>",
|
|
73
80
|
"license": "ISC",
|
|
74
81
|
"description": "A parser for bitmark text, powered by WebAssembly."
|
|
@@ -160,6 +167,7 @@ function planTransform(wasm, input, options) {
|
|
|
160
167
|
const sel = options.inputFormat ?? "auto";
|
|
161
168
|
const inputIsBitmark = sel === "bitmark" || sel !== "json" && wasm.is_bitmark(input);
|
|
162
169
|
const inputFormat = inputIsBitmark ? "bitmark" : "json";
|
|
170
|
+
wasm.transform("", "bitmark", output, mode, "", false, indent, spacesAroundValues);
|
|
163
171
|
const units = buildUnits(wasm, input, inputIsBitmark);
|
|
164
172
|
const total = units.length;
|
|
165
173
|
const hooked = [];
|
|
@@ -175,7 +183,9 @@ function planTransform(wasm, input, options) {
|
|
|
175
183
|
if (patchJson === "") {
|
|
176
184
|
resolved = units.map((_, index) => ({ source: index, bit: null, patch: [] }));
|
|
177
185
|
} else {
|
|
178
|
-
resolved = JSON.parse(
|
|
186
|
+
resolved = JSON.parse(
|
|
187
|
+
wasm.resolve_patch_document(input, inputFormat, patchJson)
|
|
188
|
+
);
|
|
179
189
|
}
|
|
180
190
|
const jobs = [];
|
|
181
191
|
const views = [];
|
|
@@ -225,7 +235,7 @@ function computeBit(wasm, job) {
|
|
|
225
235
|
return job.outputFormat === "json" ? stripArray(out) : out;
|
|
226
236
|
}
|
|
227
237
|
function recombine(wasm, elements, output, pretty, indent) {
|
|
228
|
-
if (output
|
|
238
|
+
if (output !== "json") return elements.join("\n");
|
|
229
239
|
const arr = `[${elements.join(",")}]`;
|
|
230
240
|
return pretty ? wasm.prettify(arr, indent) : arr;
|
|
231
241
|
}
|
|
@@ -253,62 +263,57 @@ async function orchestrateParallel(wasm, input, options, runJobs) {
|
|
|
253
263
|
// src/node/pool.ts
|
|
254
264
|
var import_node_url = require("url");
|
|
255
265
|
var import_node_worker_threads = require("worker_threads");
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
function runJobsParallel(jobs, workers, feature) {
|
|
266
|
+
|
|
267
|
+
// src/core/pool.ts
|
|
268
|
+
function runJobsWithPool(jobs, workers, spawn) {
|
|
260
269
|
if (jobs.length === 0) return Promise.resolve([]);
|
|
261
270
|
const poolSize = Math.max(1, Math.min(workers, jobs.length));
|
|
262
|
-
|
|
263
|
-
return new Promise((resolve, reject) => {
|
|
271
|
+
return new Promise((resolve2, reject) => {
|
|
264
272
|
const results = new Array(jobs.length);
|
|
265
273
|
let next = 0;
|
|
266
274
|
let settled = 0;
|
|
267
275
|
let done = false;
|
|
268
276
|
const pool = [];
|
|
269
|
-
const
|
|
270
|
-
for (const w of pool) void w.terminate();
|
|
271
|
-
};
|
|
272
|
-
const fail = (err) => {
|
|
277
|
+
const finish = (err) => {
|
|
273
278
|
if (done) return;
|
|
274
279
|
done = true;
|
|
275
|
-
|
|
276
|
-
reject(err);
|
|
280
|
+
for (const w of pool) w.terminate();
|
|
281
|
+
if (err) reject(err);
|
|
282
|
+
else resolve2(results);
|
|
277
283
|
};
|
|
278
284
|
const dispatch = (w) => {
|
|
279
|
-
if (done) return;
|
|
280
|
-
if (next >= jobs.length) return;
|
|
285
|
+
if (done || next >= jobs.length) return;
|
|
281
286
|
const id = next++;
|
|
282
|
-
w.
|
|
287
|
+
w.post({ id, job: jobs[id] });
|
|
283
288
|
};
|
|
284
289
|
for (let i = 0; i < poolSize; i++) {
|
|
285
|
-
const w =
|
|
286
|
-
pool.push(w);
|
|
287
|
-
w.on("message", (res) => {
|
|
290
|
+
const w = spawn((res) => {
|
|
288
291
|
if (done) return;
|
|
289
|
-
if (!res.ok)
|
|
290
|
-
fail(new Error(res.error ?? "worker job failed"));
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
292
|
+
if (!res.ok) return finish(new Error(res.error ?? "worker job failed"));
|
|
293
293
|
results[res.id] = res.element;
|
|
294
|
-
settled
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
resolve(results);
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
dispatch(w);
|
|
302
|
-
});
|
|
303
|
-
w.on("error", fail);
|
|
304
|
-
w.on("exit", (code) => {
|
|
305
|
-
if (!done && code !== 0) fail(new Error(`worker exited with code ${code}`));
|
|
306
|
-
});
|
|
294
|
+
if (++settled === jobs.length) finish();
|
|
295
|
+
else dispatch(w);
|
|
296
|
+
}, finish);
|
|
297
|
+
pool.push(w);
|
|
307
298
|
}
|
|
308
299
|
for (const w of pool) dispatch(w);
|
|
309
300
|
});
|
|
310
301
|
}
|
|
311
302
|
|
|
303
|
+
// src/node/pool.ts
|
|
304
|
+
function runJobsParallel(jobs, workers, feature) {
|
|
305
|
+
const path2 = (0, import_node_url.fileURLToPath)(new URL("./worker-entry.cjs", importMetaUrl));
|
|
306
|
+
return runJobsWithPool(jobs, workers, (onResult, onError) => {
|
|
307
|
+
const w = new import_node_worker_threads.Worker(path2, { workerData: { feature } });
|
|
308
|
+
w.on("message", (res) => onResult(res));
|
|
309
|
+
w.on("error", onError);
|
|
310
|
+
w.on("exit", (code) => {
|
|
311
|
+
if (code !== 0) onError(new Error(`worker exited with code ${code}`));
|
|
312
|
+
});
|
|
313
|
+
return { post: (msg) => w.postMessage(msg), terminate: () => void w.terminate() };
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
|
|
312
317
|
// src/node/transform-parallel.ts
|
|
313
318
|
function runParallelTransform(wasm, input, options) {
|
|
314
319
|
const feature = variant() ?? "full";
|
|
@@ -1418,6 +1423,24 @@ var StringWriter = stubClass("StringWriter", INTERNAL_REASON);
|
|
|
1418
1423
|
var FileWriter = stubClass("FileWriter", INTERNAL_REASON);
|
|
1419
1424
|
var StreamWriter = stubClass("StreamWriter", INTERNAL_REASON);
|
|
1420
1425
|
|
|
1426
|
+
// src/editor-types.ts
|
|
1427
|
+
var DiagnosticSeverity = {
|
|
1428
|
+
Error: 1,
|
|
1429
|
+
Warning: 2,
|
|
1430
|
+
Information: 3,
|
|
1431
|
+
Hint: 4
|
|
1432
|
+
};
|
|
1433
|
+
var CompletionItemKind = {
|
|
1434
|
+
Class: 7,
|
|
1435
|
+
Property: 10,
|
|
1436
|
+
Value: 12,
|
|
1437
|
+
Keyword: 14,
|
|
1438
|
+
Snippet: 15,
|
|
1439
|
+
EnumMember: 20,
|
|
1440
|
+
TypeParameter: 25
|
|
1441
|
+
};
|
|
1442
|
+
var CompletionItemTag = { Deprecated: 1 };
|
|
1443
|
+
|
|
1421
1444
|
// src/types.ts
|
|
1422
1445
|
function patchEntry(path2, op, value) {
|
|
1423
1446
|
return value === void 0 ? { path: path2, op } : { path: path2, op, value };
|
|
@@ -1485,6 +1508,52 @@ function semanticTokens(input, options = {}) {
|
|
|
1485
1508
|
})
|
|
1486
1509
|
);
|
|
1487
1510
|
}
|
|
1511
|
+
function diagnostics(input, options = {}) {
|
|
1512
|
+
return JSON.parse(
|
|
1513
|
+
convert(input, {
|
|
1514
|
+
inputFormat: "bitmark",
|
|
1515
|
+
outputFormat: "diagnostics",
|
|
1516
|
+
positionEncoding: options.positionEncoding
|
|
1517
|
+
})
|
|
1518
|
+
);
|
|
1519
|
+
}
|
|
1520
|
+
function complete(input, position, options = {}) {
|
|
1521
|
+
const wasm = getActive();
|
|
1522
|
+
if (typeof wasm.complete !== "function") throw new UnsupportedFeatureError("complete", variant());
|
|
1523
|
+
return JSON.parse(
|
|
1524
|
+
wasm.complete(
|
|
1525
|
+
input,
|
|
1526
|
+
position.line,
|
|
1527
|
+
position.character,
|
|
1528
|
+
options.positionEncoding ?? "",
|
|
1529
|
+
options.includeDeprecated ?? false,
|
|
1530
|
+
options.triggerCharacter ?? ""
|
|
1531
|
+
)
|
|
1532
|
+
);
|
|
1533
|
+
}
|
|
1534
|
+
function resolve(input, position, item, options = {}) {
|
|
1535
|
+
const wasm = getActive();
|
|
1536
|
+
if (typeof wasm.resolve !== "function") throw new UnsupportedFeatureError("resolve", variant());
|
|
1537
|
+
const resolved = JSON.parse(
|
|
1538
|
+
wasm.resolve(
|
|
1539
|
+
input,
|
|
1540
|
+
position.line,
|
|
1541
|
+
position.character,
|
|
1542
|
+
options.positionEncoding ?? "",
|
|
1543
|
+
options.includeDeprecated ?? false,
|
|
1544
|
+
item.label,
|
|
1545
|
+
item.kind
|
|
1546
|
+
)
|
|
1547
|
+
);
|
|
1548
|
+
return resolved ?? item;
|
|
1549
|
+
}
|
|
1550
|
+
function hover(input, position, options = {}) {
|
|
1551
|
+
const wasm = getActive();
|
|
1552
|
+
if (typeof wasm.hover !== "function") throw new UnsupportedFeatureError("hover", variant());
|
|
1553
|
+
return JSON.parse(
|
|
1554
|
+
wasm.hover(input, position.line, position.character, options.positionEncoding ?? "")
|
|
1555
|
+
);
|
|
1556
|
+
}
|
|
1488
1557
|
function canonicalize(input, options = {}) {
|
|
1489
1558
|
return getActive().canonicalize(
|
|
1490
1559
|
input,
|
|
@@ -1614,16 +1683,22 @@ function transformParallel(input, options = {}) {
|
|
|
1614
1683
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1615
1684
|
0 && (module.exports = {
|
|
1616
1685
|
ALL_LANGUAGES,
|
|
1686
|
+
CompletionItemKind,
|
|
1687
|
+
CompletionItemTag,
|
|
1688
|
+
DiagnosticSeverity,
|
|
1617
1689
|
NotInitializedError,
|
|
1618
1690
|
RegisterError,
|
|
1619
1691
|
UnsupportedFeatureError,
|
|
1620
1692
|
bitmarkToObjects,
|
|
1621
1693
|
breakscapeText,
|
|
1622
1694
|
canonicalize,
|
|
1695
|
+
complete,
|
|
1623
1696
|
convert,
|
|
1624
1697
|
countBits,
|
|
1698
|
+
diagnostics,
|
|
1625
1699
|
diff,
|
|
1626
1700
|
diffBits,
|
|
1701
|
+
hover,
|
|
1627
1702
|
info,
|
|
1628
1703
|
init,
|
|
1629
1704
|
initSync,
|
|
@@ -1631,6 +1706,7 @@ function transformParallel(input, options = {}) {
|
|
|
1631
1706
|
objectsToBitmark,
|
|
1632
1707
|
patchEntry,
|
|
1633
1708
|
register,
|
|
1709
|
+
resolve,
|
|
1634
1710
|
semanticTokens,
|
|
1635
1711
|
splitBits,
|
|
1636
1712
|
transform,
|