@rtif-sdk/core 1.3.0 → 1.5.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/apply.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * See docs/spec/operations.md for specification.
4
4
  */
5
5
  import { RtifError } from './error.js';
6
- import { normalizeSpans } from './normalize.js';
6
+ import { hasOwnKeys, normalizeSpans } from './normalize.js';
7
7
  import { blockTextLength, resolve } from './resolve.js';
8
8
  /**
9
9
  * Apply an operation to a document, returning the new document and its inverse.
@@ -42,6 +42,106 @@ export function apply(doc, op) {
42
42
  return applySetMeta(doc, op);
43
43
  }
44
44
  }
45
+ // ---------------------------------------------------------------------------
46
+ // Phase 2a: Zero-allocation shallow merge (replaces spread + delete operator)
47
+ // ---------------------------------------------------------------------------
48
+ /**
49
+ * Shallow-merge `updates` onto `existing` without using the `delete` operator.
50
+ * Keys in `updates` set to `null` remove that key from the result.
51
+ * Returns `undefined` when the result has no keys.
52
+ */
53
+ function mergeShallow(existing, updates) {
54
+ const result = {};
55
+ let count = 0;
56
+ // Copy existing keys that aren't being removed
57
+ if (existing) {
58
+ for (const k in existing) {
59
+ if (!(k in updates)) {
60
+ result[k] = existing[k];
61
+ count++;
62
+ }
63
+ }
64
+ }
65
+ // Add non-null updates
66
+ for (const k in updates) {
67
+ if (updates[k] !== null) {
68
+ result[k] = updates[k];
69
+ count++;
70
+ }
71
+ }
72
+ return count > 0 ? result : undefined;
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Phase 3a: Zero-closure block index lookup
76
+ // ---------------------------------------------------------------------------
77
+ /** Find block index by ID using a plain for-loop (no closure allocation). */
78
+ function findBlockIndex(blocks, blockId) {
79
+ for (let i = 0; i < blocks.length; i++) {
80
+ if (blocks[i].id === blockId)
81
+ return i;
82
+ }
83
+ return -1;
84
+ }
85
+ // ---------------------------------------------------------------------------
86
+ // Phase 3b: slice + index-assign helper for single-block replacement
87
+ // ---------------------------------------------------------------------------
88
+ /** Replace a single block in the array using slice (V8 memcpy intrinsic). */
89
+ function replaceBlock(blocks, index, block) {
90
+ const result = blocks.slice();
91
+ result[index] = block;
92
+ return result;
93
+ }
94
+ // ---------------------------------------------------------------------------
95
+ // Phase 3c: Extract deleted text directly from spans (no full join)
96
+ // ---------------------------------------------------------------------------
97
+ /**
98
+ * Walk spans to extract exactly `count` characters starting at `localOffset`.
99
+ * Avoids joining all span text into a single string (the 90% single-char
100
+ * delete reads only 1 span).
101
+ */
102
+ function extractTextFromSpans(spans, localOffset, count) {
103
+ let remaining = localOffset;
104
+ let charsNeeded = count;
105
+ let result = '';
106
+ for (const span of spans) {
107
+ const len = span.text.length;
108
+ if (remaining >= len) {
109
+ remaining -= len;
110
+ continue;
111
+ }
112
+ const start = remaining;
113
+ const available = len - start;
114
+ const take = Math.min(available, charsNeeded);
115
+ result += span.text.substring(start, start + take);
116
+ charsNeeded -= take;
117
+ if (charsNeeded <= 0)
118
+ break;
119
+ remaining = 0;
120
+ }
121
+ return result;
122
+ }
123
+ // ---------------------------------------------------------------------------
124
+ // Span helpers (Phase 1c: hasOwnKeys replaces Object.keys().length)
125
+ // ---------------------------------------------------------------------------
126
+ /** Create a span with text and optional marks (copies marks). */
127
+ function makeSpan(text, marks) {
128
+ return {
129
+ text,
130
+ ...(marks && hasOwnKeys(marks) ? { marks: { ...marks } } : {}),
131
+ };
132
+ }
133
+ /** Create a shallow copy of a span. */
134
+ function copySpan(span) {
135
+ return {
136
+ text: span.text,
137
+ ...(span.marks && hasOwnKeys(span.marks)
138
+ ? { marks: { ...span.marks } }
139
+ : {}),
140
+ };
141
+ }
142
+ // ---------------------------------------------------------------------------
143
+ // insert_text
144
+ // ---------------------------------------------------------------------------
45
145
  /**
46
146
  * Insert text into a block's spans at the given local offset.
47
147
  * Returns new spans array (not yet normalized).
@@ -51,7 +151,7 @@ function insertTextIntoSpans(spans, localOffset, text) {
51
151
  if (spans.length === 1 && spans[0].text === '' && localOffset === 0) {
52
152
  return [{
53
153
  text,
54
- ...(spans[0].marks && Object.keys(spans[0].marks).length > 0
154
+ ...(spans[0].marks && hasOwnKeys(spans[0].marks)
55
155
  ? { marks: { ...spans[0].marks } }
56
156
  : {}),
57
157
  }];
@@ -71,7 +171,7 @@ function insertTextIntoSpans(spans, localOffset, text) {
71
171
  const after = span.text.slice(remaining);
72
172
  result.push({
73
173
  text: before + text + after,
74
- ...(span.marks && Object.keys(span.marks).length > 0
174
+ ...(span.marks && hasOwnKeys(span.marks)
75
175
  ? { marks: { ...span.marks } }
76
176
  : {}),
77
177
  });
@@ -97,7 +197,7 @@ function applyInsertText(doc, op) {
97
197
  spans: newSpans,
98
198
  ...(block.attrs ? { attrs: { ...block.attrs } } : {}),
99
199
  };
100
- const newBlocks = doc.blocks.map((b, i) => (i === blockIndex ? newBlock : b));
200
+ const newBlocks = replaceBlock(doc.blocks, blockIndex, newBlock);
101
201
  const inverse = {
102
202
  type: 'delete_text',
103
203
  offset: op.offset,
@@ -108,6 +208,9 @@ function applyInsertText(doc, op) {
108
208
  inverse,
109
209
  };
110
210
  }
211
+ // ---------------------------------------------------------------------------
212
+ // delete_text
213
+ // ---------------------------------------------------------------------------
111
214
  /**
112
215
  * Apply delete_text: delete `count` characters starting at the given absolute offset.
113
216
  * Currently only supports single-block deletion (does not cross block boundaries).
@@ -122,9 +225,8 @@ function applyDeleteText(doc, op) {
122
225
  if (localOffset + op.count > bLen) {
123
226
  throw new RtifError('INVALID_COUNT', `delete_text range [${op.offset}, ${op.offset + op.count}) exceeds block text length`);
124
227
  }
125
- // Collect the deleted text for the inverse
126
- const fullText = block.spans.map((s) => s.text).join('');
127
- const deletedText = fullText.slice(localOffset, localOffset + op.count);
228
+ // Collect the deleted text for the inverse — walk spans directly
229
+ const deletedText = extractTextFromSpans(block.spans, localOffset, op.count);
128
230
  // Delete range from spans
129
231
  const newSpans = normalizeSpans(deleteFromSpans(block.spans, localOffset, op.count));
130
232
  const newBlock = {
@@ -133,7 +235,7 @@ function applyDeleteText(doc, op) {
133
235
  spans: newSpans,
134
236
  ...(block.attrs ? { attrs: { ...block.attrs } } : {}),
135
237
  };
136
- const newBlocks = doc.blocks.map((b, i) => (i === blockIndex ? newBlock : b));
238
+ const newBlocks = replaceBlock(doc.blocks, blockIndex, newBlock);
137
239
  const inverse = {
138
240
  type: 'insert_text',
139
241
  offset: op.offset,
@@ -173,7 +275,7 @@ function deleteFromSpans(spans, localOffset, count) {
173
275
  if (newText.length > 0) {
174
276
  result.push({
175
277
  text: newText,
176
- ...(span.marks && Object.keys(span.marks).length > 0
278
+ ...(span.marks && hasOwnKeys(span.marks)
177
279
  ? { marks: { ...span.marks } }
178
280
  : {}),
179
281
  });
@@ -184,6 +286,9 @@ function deleteFromSpans(spans, localOffset, count) {
184
286
  }
185
287
  return result;
186
288
  }
289
+ // ---------------------------------------------------------------------------
290
+ // split_block
291
+ // ---------------------------------------------------------------------------
187
292
  /**
188
293
  * Split a span array at a local offset into two halves.
189
294
  * Returns [leftSpans, rightSpans], each normalized.
@@ -203,13 +308,13 @@ function splitSpansAt(spans, localOffset) {
203
308
  // Split this span
204
309
  left.push({
205
310
  text: span.text.slice(0, remaining),
206
- ...(span.marks && Object.keys(span.marks).length > 0
311
+ ...(span.marks && hasOwnKeys(span.marks)
207
312
  ? { marks: { ...span.marks } }
208
313
  : {}),
209
314
  });
210
315
  right.push({
211
316
  text: span.text.slice(remaining),
212
- ...(span.marks && Object.keys(span.marks).length > 0
317
+ ...(span.marks && hasOwnKeys(span.marks)
213
318
  ? { marks: { ...span.marks } }
214
319
  : {}),
215
320
  });
@@ -269,13 +374,16 @@ function applySplitBlock(doc, op) {
269
374
  inverse,
270
375
  };
271
376
  }
377
+ // ---------------------------------------------------------------------------
378
+ // merge_block
379
+ // ---------------------------------------------------------------------------
272
380
  /**
273
381
  * Apply merge_block: merge a block with the previous block.
274
382
  * The merged block's spans are appended to the previous block's spans.
275
383
  * The merged block is removed.
276
384
  */
277
385
  function applyMergeBlock(doc, op) {
278
- const blockIndex = doc.blocks.findIndex((b) => b.id === op.blockId);
386
+ const blockIndex = findBlockIndex(doc.blocks, op.blockId);
279
387
  if (blockIndex === -1) {
280
388
  throw new RtifError('BLOCK_NOT_FOUND', `Block '${op.blockId}' not found`);
281
389
  }
@@ -319,6 +427,9 @@ function applyMergeBlock(doc, op) {
319
427
  inverse,
320
428
  };
321
429
  }
430
+ // ---------------------------------------------------------------------------
431
+ // set_span_marks
432
+ // ---------------------------------------------------------------------------
322
433
  /**
323
434
  * Apply set_span_marks: apply/remove marks on a range of text [offset, offset + count).
324
435
  * Splits spans at the range boundaries, merges marks per span, and normalizes.
@@ -402,10 +513,10 @@ function applySetSpanMarks(doc, op) {
402
513
  spans: normalized,
403
514
  ...(block.attrs ? { attrs: { ...block.attrs } } : {}),
404
515
  };
405
- const newBlocks = doc.blocks.map((b, i) => (i === blockIndex ? newBlock : b));
516
+ const newBlocks = replaceBlock(doc.blocks, blockIndex, newBlock);
406
517
  // Build inverse marks
407
518
  const inverseMarks = {};
408
- for (const key of Object.keys(op.marks)) {
519
+ for (const key in op.marks) {
409
520
  if (op.marks[key] === null) {
410
521
  // We removed this mark — inverse restores the previous value (if it existed)
411
522
  if (key in prevMarks) {
@@ -438,81 +549,50 @@ function applySetSpanMarks(doc, op) {
438
549
  * Only records each key once (from the first affected span).
439
550
  */
440
551
  function collectPrevMarks(span, opMarks, prevMarks) {
441
- for (const key of Object.keys(opMarks)) {
552
+ for (const key in opMarks) {
442
553
  if (!(key in prevMarks) && span.marks && key in span.marks) {
443
554
  prevMarks[key] = span.marks[key];
444
555
  }
445
556
  }
446
557
  }
447
558
  /**
448
- * Apply marks to a span via shallow merge. Null values remove keys.
559
+ * Apply marks to a span via shallow merge using mergeShallow (no delete operator).
449
560
  */
450
561
  function mergeMarksOnSpan(span, marks) {
451
- const newMarks = { ...(span.marks ?? {}) };
452
- for (const [key, value] of Object.entries(marks)) {
453
- if (value === null) {
454
- delete newMarks[key];
455
- }
456
- else {
457
- newMarks[key] = value;
458
- }
459
- }
460
- return {
461
- text: span.text,
462
- ...(Object.keys(newMarks).length > 0 ? { marks: newMarks } : {}),
463
- };
464
- }
465
- /** Create a span with text and optional marks (copies marks). */
466
- function makeSpan(text, marks) {
467
- return {
468
- text,
469
- ...(marks && Object.keys(marks).length > 0 ? { marks: { ...marks } } : {}),
470
- };
471
- }
472
- /** Create a shallow copy of a span. */
473
- function copySpan(span) {
562
+ const newMarks = mergeShallow(span.marks, marks);
474
563
  return {
475
564
  text: span.text,
476
- ...(span.marks && Object.keys(span.marks).length > 0
477
- ? { marks: { ...span.marks } }
478
- : {}),
565
+ ...(newMarks ? { marks: newMarks } : {}),
479
566
  };
480
567
  }
568
+ // ---------------------------------------------------------------------------
569
+ // set_block_attrs
570
+ // ---------------------------------------------------------------------------
481
571
  /**
482
572
  * Apply set_block_attrs: shallow-merge attrs onto a block.
483
573
  * Keys set to `null` are removed. If all attrs are removed, the block's
484
574
  * `attrs` property becomes `undefined`.
485
575
  */
486
576
  function applySetBlockAttrs(doc, op) {
487
- const blockIndex = doc.blocks.findIndex((b) => b.id === op.blockId);
577
+ const blockIndex = findBlockIndex(doc.blocks, op.blockId);
488
578
  if (blockIndex === -1) {
489
579
  throw new RtifError('BLOCK_NOT_FOUND', `Block '${op.blockId}' not found`);
490
580
  }
491
581
  const block = doc.blocks[blockIndex];
492
582
  const prevAttrs = block.attrs;
493
- // Shallow merge: start with existing attrs (if any), apply changes
494
- const merged = { ...(prevAttrs ?? {}) };
495
- for (const [key, value] of Object.entries(op.attrs)) {
496
- if (value === null) {
497
- delete merged[key];
498
- }
499
- else {
500
- merged[key] = value;
501
- }
502
- }
503
- // If no attrs remain, omit the property entirely
504
- const newAttrs = Object.keys(merged).length > 0 ? merged : undefined;
583
+ // Shallow merge using mergeShallow (no delete operator)
584
+ const newAttrs = mergeShallow(prevAttrs, op.attrs);
505
585
  const newBlock = {
506
586
  id: block.id,
507
587
  type: block.type,
508
588
  spans: block.spans,
509
589
  ...(newAttrs ? { attrs: newAttrs } : {}),
510
590
  };
511
- const newBlocks = doc.blocks.map((b, i) => (i === blockIndex ? newBlock : b));
591
+ const newBlocks = replaceBlock(doc.blocks, blockIndex, newBlock);
512
592
  // Build inverse: for each key in op.attrs, record the previous value
513
593
  // (or null if the key didn't exist, meaning the inverse should remove it)
514
594
  const inverseAttrs = {};
515
- for (const key of Object.keys(op.attrs)) {
595
+ for (const key in op.attrs) {
516
596
  if (prevAttrs && key in prevAttrs) {
517
597
  inverseAttrs[key] = prevAttrs[key];
518
598
  }
@@ -530,6 +610,9 @@ function applySetBlockAttrs(doc, op) {
530
610
  inverse,
531
611
  };
532
612
  }
613
+ // ---------------------------------------------------------------------------
614
+ // set_block_type
615
+ // ---------------------------------------------------------------------------
533
616
  /**
534
617
  * Apply set_block_type: change a block's type string.
535
618
  * The block retains its id, spans, and attrs — only `type` changes.
@@ -538,7 +621,7 @@ function applySetBlockType(doc, op) {
538
621
  if (!op.blockType) {
539
622
  throw new RtifError('INVALID_DOCUMENT', `set_block_type blockType must be a non-empty string`);
540
623
  }
541
- const blockIndex = doc.blocks.findIndex((b) => b.id === op.blockId);
624
+ const blockIndex = findBlockIndex(doc.blocks, op.blockId);
542
625
  if (blockIndex === -1) {
543
626
  throw new RtifError('BLOCK_NOT_FOUND', `Block '${op.blockId}' not found`);
544
627
  }
@@ -550,7 +633,7 @@ function applySetBlockType(doc, op) {
550
633
  spans: block.spans,
551
634
  ...(block.attrs ? { attrs: { ...block.attrs } } : {}),
552
635
  };
553
- const newBlocks = doc.blocks.map((b, i) => (i === blockIndex ? newBlock : b));
636
+ const newBlocks = replaceBlock(doc.blocks, blockIndex, newBlock);
554
637
  const inverse = {
555
638
  type: 'set_block_type',
556
639
  blockId: op.blockId,
@@ -561,6 +644,9 @@ function applySetBlockType(doc, op) {
561
644
  inverse,
562
645
  };
563
646
  }
647
+ // ---------------------------------------------------------------------------
648
+ // set_meta
649
+ // ---------------------------------------------------------------------------
564
650
  /**
565
651
  * Apply set_meta: shallow-merge meta onto the document.
566
652
  * Keys set to `null` are removed. If all meta keys are removed,
@@ -568,21 +654,11 @@ function applySetBlockType(doc, op) {
568
654
  */
569
655
  function applySetMeta(doc, op) {
570
656
  const prevMeta = doc.meta;
571
- // Shallow merge: start with existing meta (if any), apply changes
572
- const merged = { ...(prevMeta ?? {}) };
573
- for (const [key, value] of Object.entries(op.meta)) {
574
- if (value === null) {
575
- delete merged[key];
576
- }
577
- else {
578
- merged[key] = value;
579
- }
580
- }
581
- // If no meta keys remain, omit the property entirely
582
- const newMeta = Object.keys(merged).length > 0 ? merged : undefined;
657
+ // Shallow merge using mergeShallow (no delete operator)
658
+ const newMeta = mergeShallow(prevMeta, op.meta);
583
659
  // Build inverse: for each key in op.meta, record the previous value
584
660
  const inverseMeta = {};
585
- for (const key of Object.keys(op.meta)) {
661
+ for (const key in op.meta) {
586
662
  if (prevMeta && key in prevMeta) {
587
663
  inverseMeta[key] = prevMeta[key];
588
664
  }
package/dist/apply.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export type { RtifErrorCode } from './error.js';
4
4
  export type { Operation, InsertText, DeleteText, SplitBlock, MergeBlock, SetBlockAttrs, SetBlockType, SetSpanMarks, SetMeta, } from './operations.js';
5
5
  export { apply } from './apply.js';
6
6
  export type { ApplyResult } from './apply.js';
7
- export { normalizeSpans, marksEqual } from './normalize.js';
7
+ export { normalizeSpans, marksEqual, hasOwnKeys } from './normalize.js';
8
8
  export { resolve, blockTextLength, docLength } from './resolve.js';
9
9
  export type { ResolvedPosition } from './resolve.js';
10
10
  export { createResolveIndex } from './resolve-cache.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  export { RtifError } from './error.js';
3
3
  // Core functions
4
4
  export { apply } from './apply.js';
5
- export { normalizeSpans, marksEqual } from './normalize.js';
5
+ export { normalizeSpans, marksEqual, hasOwnKeys } from './normalize.js';
6
6
  export { resolve, blockTextLength, docLength } from './resolve.js';
7
7
  export { createResolveIndex } from './resolve-cache.js';
8
8
  export { validate } from './validate.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgBvC,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGnF,0BAA0B;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgBvC,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGnF,0BAA0B;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -3,6 +3,20 @@
3
3
  * See SPEC.md §3.3 for specification.
4
4
  */
5
5
  import type { Span } from './model.js';
6
+ /**
7
+ * Check whether an object has at least one own enumerable key.
8
+ * Zero-allocation replacement for `Object.keys(obj).length > 0`.
9
+ *
10
+ * @param obj - The object to test
11
+ * @returns true if the object has at least one own enumerable key
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * hasOwnKeys({ bold: true }); // => true
16
+ * hasOwnKeys({}); // => false
17
+ * ```
18
+ */
19
+ export declare function hasOwnKeys(obj: Record<string, unknown>): boolean;
6
20
  /**
7
21
  * Check if two mark objects are deeply equal.
8
22
  * Treats `undefined` and `{}` as equivalent (both mean "no marks").
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACtC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACrC,OAAO,CAKT;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAoCjE"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKvC;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGhE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACtC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACrC,OAAO,CAqBT;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAoCjE"}
package/dist/normalize.js CHANGED
@@ -2,6 +2,26 @@
2
2
  * Span normalization — ensures documents are always in canonical form.
3
3
  * See SPEC.md §3.3 for specification.
4
4
  */
5
+ /** Frozen empty object singleton — avoids allocating `{}` on every marksEqual call. */
6
+ const EMPTY_OBJ = Object.freeze({});
7
+ /**
8
+ * Check whether an object has at least one own enumerable key.
9
+ * Zero-allocation replacement for `Object.keys(obj).length > 0`.
10
+ *
11
+ * @param obj - The object to test
12
+ * @returns true if the object has at least one own enumerable key
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * hasOwnKeys({ bold: true }); // => true
17
+ * hasOwnKeys({}); // => false
18
+ * ```
19
+ */
20
+ export function hasOwnKeys(obj) {
21
+ for (const _ in obj)
22
+ return true;
23
+ return false;
24
+ }
5
25
  /**
6
26
  * Check if two mark objects are deeply equal.
7
27
  * Treats `undefined` and `{}` as equivalent (both mean "no marks").
@@ -18,11 +38,24 @@
18
38
  * ```
19
39
  */
20
40
  export function marksEqual(a, b) {
21
- const aKeys = Object.keys(a ?? {});
22
- const bKeys = Object.keys(b ?? {});
23
- if (aKeys.length !== bKeys.length)
24
- return false;
25
- return aKeys.every((key) => (a ?? {})[key] === (b ?? {})[key]);
41
+ // Reference equality fast-path (covers both-undefined and same-object)
42
+ if (a === b)
43
+ return true;
44
+ const aObj = a ?? EMPTY_OBJ;
45
+ const bObj = b ?? EMPTY_OBJ;
46
+ // Count keys in a and verify each exists with same value in b
47
+ let aCount = 0;
48
+ for (const key in aObj) {
49
+ aCount++;
50
+ if (aObj[key] !== bObj[key])
51
+ return false;
52
+ }
53
+ // Verify b has no extra keys
54
+ let bCount = 0;
55
+ for (const _ in bObj) {
56
+ bCount++;
57
+ }
58
+ return aCount === bCount;
26
59
  }
27
60
  /**
28
61
  * Check if a spans array is already in normalized form:
@@ -73,11 +106,11 @@ export function normalizeSpans(spans) {
73
106
  continue;
74
107
  const prev = result[result.length - 1];
75
108
  if (prev && marksEqual(prev.marks, span.marks)) {
76
- // Merge into previous span (create new object, don't mutate)
109
+ // Merge into previous span reuse marks reference (equality just verified)
77
110
  result[result.length - 1] = {
78
111
  text: prev.text + span.text,
79
- ...(prev.marks && Object.keys(prev.marks).length > 0
80
- ? { marks: { ...prev.marks } }
112
+ ...(prev.marks && hasOwnKeys(prev.marks)
113
+ ? { marks: prev.marks }
81
114
  : {}),
82
115
  };
83
116
  }
@@ -85,7 +118,7 @@ export function normalizeSpans(spans) {
85
118
  // Copy span to avoid mutation
86
119
  result.push({
87
120
  text: span.text,
88
- ...(span.marks && Object.keys(span.marks).length > 0
121
+ ...(span.marks && hasOwnKeys(span.marks)
89
122
  ? { marks: { ...span.marks } }
90
123
  : {}),
91
124
  });
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rtif-sdk/core",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "RTIF core data model, operations, and utilities",
5
5
  "author": "coryrobinson42@gmail.com",
6
6
  "type": "module",