@diaryx/wasm 1.0.1-dev.b9c03a2 → 1.1.0-dev.4fa69f2

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/diaryx_wasm.d.ts CHANGED
@@ -321,6 +321,35 @@ export class DiaryxBackend {
321
321
  * ```
322
322
  */
323
323
  onFileSystemEvent(callback: Function): bigint;
324
+ /**
325
+ * Parse a Day One `Journal.json` file and return entries as JSON.
326
+ *
327
+ * Takes the raw bytes of a `Journal.json` file and returns a JSON array
328
+ * of successfully parsed entries. Parse errors are returned in a separate
329
+ * `errors` array.
330
+ *
331
+ * ## Example
332
+ * ```javascript
333
+ * const bytes = new Uint8Array(await file.arrayBuffer());
334
+ * const result = backend.parseDayOneJson(bytes);
335
+ * const { entries, errors } = JSON.parse(result);
336
+ * ```
337
+ */
338
+ parseDayOneJson(bytes: Uint8Array): string;
339
+ /**
340
+ * Parse a single markdown file and return the entry as JSON.
341
+ *
342
+ * Takes the raw bytes of a `.md` file and its filename, and returns
343
+ * a JSON-serialized `ImportedEntry`.
344
+ *
345
+ * ## Example
346
+ * ```javascript
347
+ * const bytes = new Uint8Array(await file.arrayBuffer());
348
+ * const entryJson = backend.parseMarkdownFile(bytes, file.name);
349
+ * const entry = JSON.parse(entryJson);
350
+ * ```
351
+ */
352
+ parseMarkdownFile(bytes: Uint8Array, filename: string): string;
324
353
  /**
325
354
  * Read binary file.
326
355
  *
@@ -547,6 +576,13 @@ export class WasmSyncClient {
547
576
  * Call this before connecting to join a share session.
548
577
  */
549
578
  setSessionCode(code: string): void;
579
+ /**
580
+ * Request body sync for specific files (lazy sync on demand).
581
+ *
582
+ * Sends SyncBodyFiles event through the session to initiate body
583
+ * SyncStep1 for just the requested files, rather than all files.
584
+ */
585
+ syncBodyFiles(file_paths: string[]): Promise<any>;
550
586
  /**
551
587
  * Send an unfocus message for specific files.
552
588
  */
@@ -572,6 +608,11 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
572
608
 
573
609
  export interface InitOutput {
574
610
  readonly memory: WebAssembly.Memory;
611
+ readonly __wbg_opfsfilesystem_free: (a: number, b: number) => void;
612
+ readonly now_timestamp: () => [number, number];
613
+ readonly opfsfilesystem_create: () => any;
614
+ readonly opfsfilesystem_createWithName: (a: number, b: number) => any;
615
+ readonly today_formatted: (a: number, b: number) => [number, number];
575
616
  readonly __wbg_jsasyncfilesystem_free: (a: number, b: number) => void;
576
617
  readonly __wbg_wasmsyncclient_free: (a: number, b: number) => void;
577
618
  readonly jsasyncfilesystem_has_callback: (a: number, b: number, c: number) => number;
@@ -592,18 +633,8 @@ export interface InitOutput {
592
633
  readonly wasmsyncclient_pollOutgoingText: (a: number) => [number, number];
593
634
  readonly wasmsyncclient_queueLocalUpdate: (a: number, b: number, c: number, d: number, e: number) => any;
594
635
  readonly wasmsyncclient_setSessionCode: (a: number, b: number, c: number) => void;
636
+ readonly wasmsyncclient_syncBodyFiles: (a: number, b: number, c: number) => any;
595
637
  readonly wasmsyncclient_unfocusFiles: (a: number, b: number, c: number) => void;
596
- readonly __wbg_opfsfilesystem_free: (a: number, b: number) => void;
597
- readonly opfsfilesystem_create: () => any;
598
- readonly opfsfilesystem_createWithName: (a: number, b: number) => any;
599
- readonly __wbg_fsafilesystem_free: (a: number, b: number) => void;
600
- readonly __wbg_indexeddbfilesystem_free: (a: number, b: number) => void;
601
- readonly fsafilesystem_fromHandle: (a: any) => number;
602
- readonly indexeddbfilesystem_create: () => any;
603
- readonly indexeddbfilesystem_createWithName: (a: number, b: number) => any;
604
- readonly init: () => void;
605
- readonly now_timestamp: () => [number, number];
606
- readonly today_formatted: (a: number, b: number) => [number, number];
607
638
  readonly __wbg_diaryxbackend_free: (a: number, b: number) => void;
608
639
  readonly diaryxbackend_create: (a: number, b: number) => any;
609
640
  readonly diaryxbackend_createFromDirectoryHandle: (a: any) => [number, number, number];
@@ -620,16 +651,24 @@ export interface InitOutput {
620
651
  readonly diaryxbackend_isCrdtEnabled: (a: number) => number;
621
652
  readonly diaryxbackend_offFileSystemEvent: (a: number, b: bigint) => number;
622
653
  readonly diaryxbackend_onFileSystemEvent: (a: number, b: any) => bigint;
654
+ readonly diaryxbackend_parseDayOneJson: (a: number, b: number, c: number) => [number, number, number, number];
655
+ readonly diaryxbackend_parseMarkdownFile: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
623
656
  readonly diaryxbackend_readBinary: (a: number, b: number, c: number) => any;
624
657
  readonly diaryxbackend_saveConfig: (a: number, b: any) => any;
625
658
  readonly diaryxbackend_setCrdtEnabled: (a: number, b: number) => void;
626
659
  readonly diaryxbackend_writeBinary: (a: number, b: number, c: number, d: any) => any;
627
- readonly wasm_bindgen__closure__destroy__h9e9f624a5c8a6473: (a: number, b: number) => void;
660
+ readonly __wbg_fsafilesystem_free: (a: number, b: number) => void;
661
+ readonly __wbg_indexeddbfilesystem_free: (a: number, b: number) => void;
662
+ readonly fsafilesystem_fromHandle: (a: any) => number;
663
+ readonly indexeddbfilesystem_create: () => any;
664
+ readonly indexeddbfilesystem_createWithName: (a: number, b: number) => any;
665
+ readonly init: () => void;
666
+ readonly wasm_bindgen__closure__destroy__h1498382f260ba9e2: (a: number, b: number) => void;
628
667
  readonly wasm_bindgen__closure__destroy__h54a6b627d1123dca: (a: number, b: number) => void;
629
668
  readonly wasm_bindgen__closure__destroy__h440f08373ff30a05: (a: number, b: number) => void;
630
- readonly wasm_bindgen__convert__closures_____invoke__h087382e1a24f6ffe: (a: number, b: number, c: any) => [number, number];
669
+ readonly wasm_bindgen__convert__closures_____invoke__h872c11fa074e322f: (a: number, b: number, c: any) => [number, number];
631
670
  readonly wasm_bindgen__convert__closures_____invoke__h4e796b59e8c15a06: (a: number, b: number, c: any, d: any) => void;
632
- readonly wasm_bindgen__convert__closures_____invoke__h7219f39dd5b80c81: (a: number, b: number, c: any) => void;
671
+ readonly wasm_bindgen__convert__closures_____invoke__haaa88c541214d3fe: (a: number, b: number, c: any) => void;
633
672
  readonly wasm_bindgen__convert__closures_____invoke__h7d21c95eeb3011e3: (a: number, b: number, c: any) => void;
634
673
  readonly wasm_bindgen__convert__closures_____invoke__h359356b1e0b37746: (a: number, b: number, c: any) => void;
635
674
  readonly __wbindgen_malloc: (a: number, b: number) => number;
package/diaryx_wasm.js CHANGED
@@ -337,6 +337,80 @@ export class DiaryxBackend {
337
337
  const ret = wasm.diaryxbackend_onFileSystemEvent(this.__wbg_ptr, callback);
338
338
  return BigInt.asUintN(64, ret);
339
339
  }
340
+ /**
341
+ * Parse a Day One `Journal.json` file and return entries as JSON.
342
+ *
343
+ * Takes the raw bytes of a `Journal.json` file and returns a JSON array
344
+ * of successfully parsed entries. Parse errors are returned in a separate
345
+ * `errors` array.
346
+ *
347
+ * ## Example
348
+ * ```javascript
349
+ * const bytes = new Uint8Array(await file.arrayBuffer());
350
+ * const result = backend.parseDayOneJson(bytes);
351
+ * const { entries, errors } = JSON.parse(result);
352
+ * ```
353
+ * @param {Uint8Array} bytes
354
+ * @returns {string}
355
+ */
356
+ parseDayOneJson(bytes) {
357
+ let deferred3_0;
358
+ let deferred3_1;
359
+ try {
360
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
361
+ const len0 = WASM_VECTOR_LEN;
362
+ const ret = wasm.diaryxbackend_parseDayOneJson(this.__wbg_ptr, ptr0, len0);
363
+ var ptr2 = ret[0];
364
+ var len2 = ret[1];
365
+ if (ret[3]) {
366
+ ptr2 = 0; len2 = 0;
367
+ throw takeFromExternrefTable0(ret[2]);
368
+ }
369
+ deferred3_0 = ptr2;
370
+ deferred3_1 = len2;
371
+ return getStringFromWasm0(ptr2, len2);
372
+ } finally {
373
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
374
+ }
375
+ }
376
+ /**
377
+ * Parse a single markdown file and return the entry as JSON.
378
+ *
379
+ * Takes the raw bytes of a `.md` file and its filename, and returns
380
+ * a JSON-serialized `ImportedEntry`.
381
+ *
382
+ * ## Example
383
+ * ```javascript
384
+ * const bytes = new Uint8Array(await file.arrayBuffer());
385
+ * const entryJson = backend.parseMarkdownFile(bytes, file.name);
386
+ * const entry = JSON.parse(entryJson);
387
+ * ```
388
+ * @param {Uint8Array} bytes
389
+ * @param {string} filename
390
+ * @returns {string}
391
+ */
392
+ parseMarkdownFile(bytes, filename) {
393
+ let deferred4_0;
394
+ let deferred4_1;
395
+ try {
396
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
397
+ const len0 = WASM_VECTOR_LEN;
398
+ const ptr1 = passStringToWasm0(filename, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
399
+ const len1 = WASM_VECTOR_LEN;
400
+ const ret = wasm.diaryxbackend_parseMarkdownFile(this.__wbg_ptr, ptr0, len0, ptr1, len1);
401
+ var ptr3 = ret[0];
402
+ var len3 = ret[1];
403
+ if (ret[3]) {
404
+ ptr3 = 0; len3 = 0;
405
+ throw takeFromExternrefTable0(ret[2]);
406
+ }
407
+ deferred4_0 = ptr3;
408
+ deferred4_1 = len3;
409
+ return getStringFromWasm0(ptr3, len3);
410
+ } finally {
411
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
412
+ }
413
+ }
340
414
  /**
341
415
  * Read binary file.
342
416
  *
@@ -807,6 +881,20 @@ export class WasmSyncClient {
807
881
  const len0 = WASM_VECTOR_LEN;
808
882
  wasm.wasmsyncclient_setSessionCode(this.__wbg_ptr, ptr0, len0);
809
883
  }
884
+ /**
885
+ * Request body sync for specific files (lazy sync on demand).
886
+ *
887
+ * Sends SyncBodyFiles event through the session to initiate body
888
+ * SyncStep1 for just the requested files, rather than all files.
889
+ * @param {string[]} file_paths
890
+ * @returns {Promise<any>}
891
+ */
892
+ syncBodyFiles(file_paths) {
893
+ const ptr0 = passArrayJsValueToWasm0(file_paths, wasm.__wbindgen_malloc);
894
+ const len0 = WASM_VECTOR_LEN;
895
+ const ret = wasm.wasmsyncclient_syncBodyFiles(this.__wbg_ptr, ptr0, len0);
896
+ return ret;
897
+ }
810
898
  /**
811
899
  * Send an unfocus message for specific files.
812
900
  * @param {string[]} files
@@ -1538,22 +1626,22 @@ function __wbg_get_imports() {
1538
1626
  return ret;
1539
1627
  }, arguments); },
1540
1628
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
1541
- // Cast intrinsic for `Closure(Closure { dtor_idx: 641, function: Function { arguments: [NamedExternref("Event")], shim_idx: 745, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
1542
- const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h9e9f624a5c8a6473, wasm_bindgen__convert__closures_____invoke__h087382e1a24f6ffe);
1629
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 787, function: Function { arguments: [NamedExternref("Event")], shim_idx: 655, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
1630
+ const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h1498382f260ba9e2, wasm_bindgen__convert__closures_____invoke__h872c11fa074e322f);
1543
1631
  return ret;
1544
1632
  },
1545
1633
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
1546
- // Cast intrinsic for `Closure(Closure { dtor_idx: 641, function: Function { arguments: [NamedExternref("IDBVersionChangeEvent")], shim_idx: 744, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1547
- const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h9e9f624a5c8a6473, wasm_bindgen__convert__closures_____invoke__h7219f39dd5b80c81);
1634
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 787, function: Function { arguments: [NamedExternref("IDBVersionChangeEvent")], shim_idx: 654, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1635
+ const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h1498382f260ba9e2, wasm_bindgen__convert__closures_____invoke__haaa88c541214d3fe);
1548
1636
  return ret;
1549
1637
  },
1550
1638
  __wbindgen_cast_0000000000000003: function(arg0, arg1) {
1551
- // Cast intrinsic for `Closure(Closure { dtor_idx: 787, function: Function { arguments: [NamedExternref("Event")], shim_idx: 788, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1639
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 816, function: Function { arguments: [NamedExternref("Event")], shim_idx: 817, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1552
1640
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h54a6b627d1123dca, wasm_bindgen__convert__closures_____invoke__h7d21c95eeb3011e3);
1553
1641
  return ret;
1554
1642
  },
1555
1643
  __wbindgen_cast_0000000000000004: function(arg0, arg1) {
1556
- // Cast intrinsic for `Closure(Closure { dtor_idx: 813, function: Function { arguments: [Externref], shim_idx: 814, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1644
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 842, function: Function { arguments: [Externref], shim_idx: 843, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1557
1645
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h440f08373ff30a05, wasm_bindgen__convert__closures_____invoke__h359356b1e0b37746);
1558
1646
  return ret;
1559
1647
  },
@@ -1598,8 +1686,8 @@ function __wbg_get_imports() {
1598
1686
  };
1599
1687
  }
1600
1688
 
1601
- function wasm_bindgen__convert__closures_____invoke__h7219f39dd5b80c81(arg0, arg1, arg2) {
1602
- wasm.wasm_bindgen__convert__closures_____invoke__h7219f39dd5b80c81(arg0, arg1, arg2);
1689
+ function wasm_bindgen__convert__closures_____invoke__haaa88c541214d3fe(arg0, arg1, arg2) {
1690
+ wasm.wasm_bindgen__convert__closures_____invoke__haaa88c541214d3fe(arg0, arg1, arg2);
1603
1691
  }
1604
1692
 
1605
1693
  function wasm_bindgen__convert__closures_____invoke__h7d21c95eeb3011e3(arg0, arg1, arg2) {
@@ -1610,8 +1698,8 @@ function wasm_bindgen__convert__closures_____invoke__h359356b1e0b37746(arg0, arg
1610
1698
  wasm.wasm_bindgen__convert__closures_____invoke__h359356b1e0b37746(arg0, arg1, arg2);
1611
1699
  }
1612
1700
 
1613
- function wasm_bindgen__convert__closures_____invoke__h087382e1a24f6ffe(arg0, arg1, arg2) {
1614
- const ret = wasm.wasm_bindgen__convert__closures_____invoke__h087382e1a24f6ffe(arg0, arg1, arg2);
1701
+ function wasm_bindgen__convert__closures_____invoke__h872c11fa074e322f(arg0, arg1, arg2) {
1702
+ const ret = wasm.wasm_bindgen__convert__closures_____invoke__h872c11fa074e322f(arg0, arg1, arg2);
1615
1703
  if (ret[1]) {
1616
1704
  throw takeFromExternrefTable0(ret[0]);
1617
1705
  }
@@ -1,6 +1,11 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
+ export const __wbg_opfsfilesystem_free: (a: number, b: number) => void;
5
+ export const now_timestamp: () => [number, number];
6
+ export const opfsfilesystem_create: () => any;
7
+ export const opfsfilesystem_createWithName: (a: number, b: number) => any;
8
+ export const today_formatted: (a: number, b: number) => [number, number];
4
9
  export const __wbg_jsasyncfilesystem_free: (a: number, b: number) => void;
5
10
  export const __wbg_wasmsyncclient_free: (a: number, b: number) => void;
6
11
  export const jsasyncfilesystem_has_callback: (a: number, b: number, c: number) => number;
@@ -21,18 +26,8 @@ export const wasmsyncclient_pollOutgoingBinary: (a: number) => any;
21
26
  export const wasmsyncclient_pollOutgoingText: (a: number) => [number, number];
22
27
  export const wasmsyncclient_queueLocalUpdate: (a: number, b: number, c: number, d: number, e: number) => any;
23
28
  export const wasmsyncclient_setSessionCode: (a: number, b: number, c: number) => void;
29
+ export const wasmsyncclient_syncBodyFiles: (a: number, b: number, c: number) => any;
24
30
  export const wasmsyncclient_unfocusFiles: (a: number, b: number, c: number) => void;
25
- export const __wbg_opfsfilesystem_free: (a: number, b: number) => void;
26
- export const opfsfilesystem_create: () => any;
27
- export const opfsfilesystem_createWithName: (a: number, b: number) => any;
28
- export const __wbg_fsafilesystem_free: (a: number, b: number) => void;
29
- export const __wbg_indexeddbfilesystem_free: (a: number, b: number) => void;
30
- export const fsafilesystem_fromHandle: (a: any) => number;
31
- export const indexeddbfilesystem_create: () => any;
32
- export const indexeddbfilesystem_createWithName: (a: number, b: number) => any;
33
- export const init: () => void;
34
- export const now_timestamp: () => [number, number];
35
- export const today_formatted: (a: number, b: number) => [number, number];
36
31
  export const __wbg_diaryxbackend_free: (a: number, b: number) => void;
37
32
  export const diaryxbackend_create: (a: number, b: number) => any;
38
33
  export const diaryxbackend_createFromDirectoryHandle: (a: any) => [number, number, number];
@@ -49,16 +44,24 @@ export const diaryxbackend_hasNativeSync: (a: number) => number;
49
44
  export const diaryxbackend_isCrdtEnabled: (a: number) => number;
50
45
  export const diaryxbackend_offFileSystemEvent: (a: number, b: bigint) => number;
51
46
  export const diaryxbackend_onFileSystemEvent: (a: number, b: any) => bigint;
47
+ export const diaryxbackend_parseDayOneJson: (a: number, b: number, c: number) => [number, number, number, number];
48
+ export const diaryxbackend_parseMarkdownFile: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
52
49
  export const diaryxbackend_readBinary: (a: number, b: number, c: number) => any;
53
50
  export const diaryxbackend_saveConfig: (a: number, b: any) => any;
54
51
  export const diaryxbackend_setCrdtEnabled: (a: number, b: number) => void;
55
52
  export const diaryxbackend_writeBinary: (a: number, b: number, c: number, d: any) => any;
56
- export const wasm_bindgen__closure__destroy__h9e9f624a5c8a6473: (a: number, b: number) => void;
53
+ export const __wbg_fsafilesystem_free: (a: number, b: number) => void;
54
+ export const __wbg_indexeddbfilesystem_free: (a: number, b: number) => void;
55
+ export const fsafilesystem_fromHandle: (a: any) => number;
56
+ export const indexeddbfilesystem_create: () => any;
57
+ export const indexeddbfilesystem_createWithName: (a: number, b: number) => any;
58
+ export const init: () => void;
59
+ export const wasm_bindgen__closure__destroy__h1498382f260ba9e2: (a: number, b: number) => void;
57
60
  export const wasm_bindgen__closure__destroy__h54a6b627d1123dca: (a: number, b: number) => void;
58
61
  export const wasm_bindgen__closure__destroy__h440f08373ff30a05: (a: number, b: number) => void;
59
- export const wasm_bindgen__convert__closures_____invoke__h087382e1a24f6ffe: (a: number, b: number, c: any) => [number, number];
62
+ export const wasm_bindgen__convert__closures_____invoke__h872c11fa074e322f: (a: number, b: number, c: any) => [number, number];
60
63
  export const wasm_bindgen__convert__closures_____invoke__h4e796b59e8c15a06: (a: number, b: number, c: any, d: any) => void;
61
- export const wasm_bindgen__convert__closures_____invoke__h7219f39dd5b80c81: (a: number, b: number, c: any) => void;
64
+ export const wasm_bindgen__convert__closures_____invoke__haaa88c541214d3fe: (a: number, b: number, c: any) => void;
62
65
  export const wasm_bindgen__convert__closures_____invoke__h7d21c95eeb3011e3: (a: number, b: number, c: any) => void;
63
66
  export const wasm_bindgen__convert__closures_____invoke__h359356b1e0b37746: (a: number, b: number, c: any) => void;
64
67
  export const __wbindgen_malloc: (a: number, b: number) => number;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@diaryx/wasm",
3
3
  "type": "module",
4
4
  "description": "WebAssembly bindings for Diaryx core functionality",
5
- "version": "1.0.1-dev.b9c03a2",
5
+ "version": "1.1.0-dev.4fa69f2",
6
6
  "license": "SEE LICENSE IN ../../LICENSE.md",
7
7
  "repository": {
8
8
  "type": "git",