sunsama-api 0.11.2 → 0.12.1

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.
@@ -13,6 +13,22 @@ import { marked } from 'marked';
13
13
  import TurndownService from 'turndown';
14
14
  import { z } from 'zod';
15
15
  import { SunsamaAuthError } from '../errors/index.js';
16
+ /**
17
+ * Decodes common HTML entities back to their original characters.
18
+ * This is needed because marked's lexer HTML-encodes some characters.
19
+ */
20
+ function decodeHtmlEntities(text) {
21
+ return text
22
+ .replace(/&/g, '&')
23
+ .replace(/&lt;/g, '<')
24
+ .replace(/&gt;/g, '>')
25
+ .replace(/&quot;/g, '"')
26
+ .replace(/&#39;/g, "'")
27
+ .replace(/&#x27;/g, "'")
28
+ .replace(/&apos;/g, "'")
29
+ .replace(/&#(\d+);/g, (_, code) => String.fromCharCode(parseInt(code, 10)))
30
+ .replace(/&#x([0-9a-fA-F]+);/g, (_, code) => String.fromCharCode(parseInt(code, 16)));
31
+ }
16
32
  /**
17
33
  * Validation schema for HTML input
18
34
  */
@@ -226,4 +242,443 @@ export function convertContent(content, fromFormat, toFormat, options = {}) {
226
242
  }
227
243
  throw new SunsamaAuthError(`Invalid conversion format: ${fromFormat} to ${toFormat}`);
228
244
  }
245
+ /**
246
+ * Parses inline tokens from marked and converts them to formatted segments
247
+ * with Yjs-compatible attributes
248
+ *
249
+ * @param tokens - Array of marked inline tokens
250
+ * @param inheritedAttributes - Attributes inherited from parent elements
251
+ * @returns Array of formatted segments with text and attributes
252
+ * @internal
253
+ */
254
+ function parseInlineTokens(tokens, inheritedAttributes = {}) {
255
+ const segments = [];
256
+ for (const token of tokens) {
257
+ switch (token.type) {
258
+ case 'text': {
259
+ const textToken = token;
260
+ // Handle text tokens that may have nested tokens (from inline parsing)
261
+ if ('tokens' in textToken && textToken.tokens && textToken.tokens.length > 0) {
262
+ segments.push(...parseInlineTokens(textToken.tokens, inheritedAttributes));
263
+ }
264
+ else {
265
+ const attrs = Object.keys(inheritedAttributes).length > 0 ? inheritedAttributes : undefined;
266
+ segments.push({ text: decodeHtmlEntities(textToken.text), attributes: attrs });
267
+ }
268
+ break;
269
+ }
270
+ case 'strong': {
271
+ const strongToken = token;
272
+ const newAttrs = { ...inheritedAttributes, bold: true };
273
+ if ('tokens' in strongToken && strongToken.tokens && strongToken.tokens.length > 0) {
274
+ segments.push(...parseInlineTokens(strongToken.tokens, newAttrs));
275
+ }
276
+ else {
277
+ segments.push({ text: decodeHtmlEntities(strongToken.text), attributes: newAttrs });
278
+ }
279
+ break;
280
+ }
281
+ case 'em': {
282
+ const emToken = token;
283
+ const newAttrs = { ...inheritedAttributes, italic: true };
284
+ if ('tokens' in emToken && emToken.tokens && emToken.tokens.length > 0) {
285
+ segments.push(...parseInlineTokens(emToken.tokens, newAttrs));
286
+ }
287
+ else {
288
+ segments.push({ text: decodeHtmlEntities(emToken.text), attributes: newAttrs });
289
+ }
290
+ break;
291
+ }
292
+ case 'link': {
293
+ const linkToken = token;
294
+ // Sunsama expects link as a nested object with href property
295
+ const newAttrs = { ...inheritedAttributes, link: { href: linkToken.href } };
296
+ if ('tokens' in linkToken && linkToken.tokens && linkToken.tokens.length > 0) {
297
+ segments.push(...parseInlineTokens(linkToken.tokens, newAttrs));
298
+ }
299
+ else {
300
+ segments.push({ text: decodeHtmlEntities(linkToken.text), attributes: newAttrs });
301
+ }
302
+ break;
303
+ }
304
+ case 'codespan': {
305
+ const codeToken = token;
306
+ const newAttrs = { ...inheritedAttributes, code: true };
307
+ segments.push({ text: decodeHtmlEntities(codeToken.text), attributes: newAttrs });
308
+ break;
309
+ }
310
+ case 'del': {
311
+ // Note: Sunsama's editor doesn't support strikethrough marks
312
+ // So we render it as plain text with ~~ delimiters preserved
313
+ const delToken = token;
314
+ if ('tokens' in delToken && delToken.tokens && delToken.tokens.length > 0) {
315
+ segments.push({ text: '~~' });
316
+ segments.push(...parseInlineTokens(delToken.tokens, inheritedAttributes));
317
+ segments.push({ text: '~~' });
318
+ }
319
+ else {
320
+ segments.push({
321
+ text: `~~${decodeHtmlEntities(delToken.text)}~~`,
322
+ attributes: inheritedAttributes,
323
+ });
324
+ }
325
+ break;
326
+ }
327
+ case 'br': {
328
+ segments.push({ text: '\n' });
329
+ break;
330
+ }
331
+ case 'escape': {
332
+ const escapeToken = token;
333
+ const attrs = Object.keys(inheritedAttributes).length > 0 ? inheritedAttributes : undefined;
334
+ segments.push({ text: decodeHtmlEntities(escapeToken.text), attributes: attrs });
335
+ break;
336
+ }
337
+ default: {
338
+ // For any other token types, try to extract text
339
+ if ('text' in token && typeof token.text === 'string') {
340
+ const attrs = Object.keys(inheritedAttributes).length > 0 ? inheritedAttributes : undefined;
341
+ segments.push({
342
+ text: decodeHtmlEntities(token.text),
343
+ attributes: attrs,
344
+ });
345
+ }
346
+ else if ('raw' in token && typeof token.raw === 'string') {
347
+ const attrs = Object.keys(inheritedAttributes).length > 0 ? inheritedAttributes : undefined;
348
+ segments.push({ text: token.raw, attributes: attrs });
349
+ }
350
+ break;
351
+ }
352
+ }
353
+ }
354
+ return segments;
355
+ }
356
+ /**
357
+ * Parses markdown content into formatted segments suitable for Yjs XmlText insertion.
358
+ *
359
+ * This function converts markdown text into an array of segments, where each segment
360
+ * contains the text content and optional formatting attributes (bold, italic, link, etc.).
361
+ * The segments can be used to insert rich text into a Yjs document with proper formatting.
362
+ *
363
+ * @param markdown - The markdown content to parse
364
+ * @returns Array of formatted segments with text and Yjs-compatible attributes
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const segments = parseMarkdownToSegments('This is **bold** and *italic* text');
369
+ * // Returns:
370
+ * // [
371
+ * // { text: 'This is ' },
372
+ * // { text: 'bold', attributes: { bold: true } },
373
+ * // { text: ' and ' },
374
+ * // { text: 'italic', attributes: { italic: true } },
375
+ * // { text: ' text' }
376
+ * // ]
377
+ *
378
+ * const linkSegments = parseMarkdownToSegments('Visit [Google](https://google.com)');
379
+ * // Returns:
380
+ * // [
381
+ * // { text: 'Visit ' },
382
+ * // { text: 'Google', attributes: { link: 'https://google.com' } }
383
+ * // ]
384
+ * ```
385
+ */
386
+ export function parseMarkdownToSegments(markdown) {
387
+ if (!markdown || markdown.trim() === '') {
388
+ return [];
389
+ }
390
+ const segments = [];
391
+ // Configure marked for GFM (GitHub Flavored Markdown) support
392
+ marked.setOptions({
393
+ gfm: true,
394
+ breaks: true,
395
+ });
396
+ // Tokenize the markdown
397
+ const tokens = marked.lexer(markdown);
398
+ for (let i = 0; i < tokens.length; i++) {
399
+ const token = tokens[i];
400
+ switch (token.type) {
401
+ case 'paragraph': {
402
+ const paragraphToken = token;
403
+ if (paragraphToken.tokens) {
404
+ segments.push(...parseInlineTokens(paragraphToken.tokens));
405
+ }
406
+ // Add newline after paragraph if not the last token
407
+ if (i < tokens.length - 1) {
408
+ segments.push({ text: '\n' });
409
+ }
410
+ break;
411
+ }
412
+ case 'heading': {
413
+ const headingToken = token;
414
+ if (headingToken.tokens) {
415
+ // Apply bold formatting to headings
416
+ segments.push(...parseInlineTokens(headingToken.tokens, { bold: true }));
417
+ }
418
+ segments.push({ text: '\n' });
419
+ break;
420
+ }
421
+ case 'list': {
422
+ const listToken = token;
423
+ for (let j = 0; j < listToken.items.length; j++) {
424
+ const item = listToken.items[j];
425
+ // Add list marker
426
+ const marker = listToken.ordered ? `${j + 1}. ` : '• ';
427
+ segments.push({ text: marker });
428
+ if (item.tokens) {
429
+ // Process list item content
430
+ for (const itemToken of item.tokens) {
431
+ if (itemToken.type === 'text' &&
432
+ 'tokens' in itemToken &&
433
+ itemToken.tokens) {
434
+ segments.push(...parseInlineTokens(itemToken.tokens));
435
+ }
436
+ else if ('tokens' in itemToken && itemToken.tokens) {
437
+ segments.push(...parseInlineTokens(itemToken.tokens));
438
+ }
439
+ else if ('text' in itemToken) {
440
+ segments.push({ text: decodeHtmlEntities(itemToken.text) });
441
+ }
442
+ }
443
+ }
444
+ segments.push({ text: '\n' });
445
+ }
446
+ break;
447
+ }
448
+ case 'code': {
449
+ const codeToken = token;
450
+ segments.push({ text: decodeHtmlEntities(codeToken.text), attributes: { code: true } });
451
+ segments.push({ text: '\n' });
452
+ break;
453
+ }
454
+ case 'blockquote': {
455
+ const blockquoteToken = token;
456
+ if (blockquoteToken.tokens) {
457
+ for (const innerToken of blockquoteToken.tokens) {
458
+ if (innerToken.type === 'paragraph' && 'tokens' in innerToken) {
459
+ segments.push({ text: '> ' });
460
+ segments.push(...parseInlineTokens(innerToken.tokens));
461
+ segments.push({ text: '\n' });
462
+ }
463
+ }
464
+ }
465
+ break;
466
+ }
467
+ case 'hr': {
468
+ segments.push({ text: '---\n' });
469
+ break;
470
+ }
471
+ case 'space': {
472
+ segments.push({ text: '\n' });
473
+ break;
474
+ }
475
+ case 'text': {
476
+ const textToken = token;
477
+ if ('tokens' in textToken && textToken.tokens) {
478
+ segments.push(...parseInlineTokens(textToken.tokens));
479
+ }
480
+ else {
481
+ segments.push({ text: decodeHtmlEntities(textToken.text) });
482
+ }
483
+ break;
484
+ }
485
+ default: {
486
+ // Handle any other token types by extracting raw text
487
+ if ('raw' in token && typeof token.raw === 'string') {
488
+ segments.push({ text: decodeHtmlEntities(token.raw) });
489
+ }
490
+ break;
491
+ }
492
+ }
493
+ }
494
+ // Merge adjacent segments with the same attributes for efficiency
495
+ return mergeAdjacentSegments(segments);
496
+ }
497
+ /**
498
+ * Merges adjacent segments that have the same attributes
499
+ * @param segments - Array of formatted segments
500
+ * @returns Merged array of segments
501
+ * @internal
502
+ */
503
+ function mergeAdjacentSegments(segments) {
504
+ if (segments.length === 0)
505
+ return [];
506
+ const merged = [];
507
+ let current = segments[0];
508
+ for (let i = 1; i < segments.length; i++) {
509
+ const next = segments[i];
510
+ // Check if attributes are the same (or both undefined/empty)
511
+ const currentAttrs = current.attributes || {};
512
+ const nextAttrs = next.attributes || {};
513
+ const attrsEqual = JSON.stringify(currentAttrs) === JSON.stringify(nextAttrs);
514
+ if (attrsEqual) {
515
+ // Merge the text
516
+ current = {
517
+ text: current.text + next.text,
518
+ attributes: Object.keys(currentAttrs).length > 0 ? currentAttrs : undefined,
519
+ };
520
+ }
521
+ else {
522
+ merged.push(current);
523
+ current = next;
524
+ }
525
+ }
526
+ merged.push(current);
527
+ return merged;
528
+ }
529
+ /**
530
+ * Parses markdown content into a document structure with block-level elements.
531
+ *
532
+ * This function converts markdown text into an array of document blocks, where each block
533
+ * represents a block-level element (paragraph, blockquote, horizontal rule, etc.).
534
+ * This structure is suitable for creating proper Yjs XmlElement hierarchies that match
535
+ * Sunsama's rich text editor format.
536
+ *
537
+ * @param markdown - The markdown content to parse
538
+ * @returns Array of document blocks representing the document structure
539
+ *
540
+ * @example
541
+ * ```typescript
542
+ * const blocks = parseMarkdownToBlocks('Hello **world**\n\n> A quote\n\n---');
543
+ * // Returns:
544
+ * // [
545
+ * // { type: 'paragraph', segments: [{ text: 'Hello ' }, { text: 'world', attributes: { bold: true } }] },
546
+ * // { type: 'blockquote', children: [{ type: 'paragraph', segments: [{ text: 'A quote' }] }] },
547
+ * // { type: 'horizontalRule' }
548
+ * // ]
549
+ * ```
550
+ */
551
+ export function parseMarkdownToBlocks(markdown) {
552
+ if (!markdown || markdown.trim() === '') {
553
+ return [];
554
+ }
555
+ const blocks = [];
556
+ // Configure marked for GFM support
557
+ marked.setOptions({
558
+ gfm: true,
559
+ breaks: true,
560
+ });
561
+ // Tokenize the markdown
562
+ const tokens = marked.lexer(markdown);
563
+ for (const token of tokens) {
564
+ switch (token.type) {
565
+ case 'paragraph': {
566
+ const paragraphToken = token;
567
+ if (paragraphToken.tokens) {
568
+ const segments = parseInlineTokens(paragraphToken.tokens);
569
+ if (segments.length > 0) {
570
+ blocks.push({ type: 'paragraph', segments: mergeAdjacentSegments(segments) });
571
+ }
572
+ }
573
+ break;
574
+ }
575
+ case 'heading': {
576
+ // Convert headings to bold paragraphs (Sunsama may not support native headings)
577
+ const headingToken = token;
578
+ if (headingToken.tokens) {
579
+ const segments = parseInlineTokens(headingToken.tokens, { bold: true });
580
+ if (segments.length > 0) {
581
+ blocks.push({ type: 'paragraph', segments: mergeAdjacentSegments(segments) });
582
+ }
583
+ }
584
+ break;
585
+ }
586
+ case 'blockquote': {
587
+ const blockquoteToken = token;
588
+ const children = [];
589
+ if (blockquoteToken.tokens) {
590
+ for (const innerToken of blockquoteToken.tokens) {
591
+ if (innerToken.type === 'paragraph' && 'tokens' in innerToken) {
592
+ const segments = parseInlineTokens(innerToken.tokens);
593
+ if (segments.length > 0) {
594
+ children.push({ type: 'paragraph', segments: mergeAdjacentSegments(segments) });
595
+ }
596
+ }
597
+ }
598
+ }
599
+ if (children.length > 0) {
600
+ blocks.push({ type: 'blockquote', children });
601
+ }
602
+ break;
603
+ }
604
+ case 'hr': {
605
+ blocks.push({ type: 'horizontalRule' });
606
+ break;
607
+ }
608
+ case 'code': {
609
+ const codeToken = token;
610
+ blocks.push({
611
+ type: 'codeBlock',
612
+ segments: [{ text: decodeHtmlEntities(codeToken.text) }],
613
+ });
614
+ break;
615
+ }
616
+ case 'list': {
617
+ // Create proper list structure with listItem elements
618
+ const listToken = token;
619
+ const items = [];
620
+ for (const item of listToken.items) {
621
+ const segments = [];
622
+ if (item.tokens) {
623
+ for (const itemToken of item.tokens) {
624
+ if (itemToken.type === 'text' &&
625
+ 'tokens' in itemToken &&
626
+ itemToken.tokens) {
627
+ segments.push(...parseInlineTokens(itemToken.tokens));
628
+ }
629
+ else if ('tokens' in itemToken && itemToken.tokens) {
630
+ segments.push(...parseInlineTokens(itemToken.tokens));
631
+ }
632
+ else if ('text' in itemToken) {
633
+ segments.push({ text: decodeHtmlEntities(itemToken.text) });
634
+ }
635
+ }
636
+ }
637
+ if (segments.length > 0) {
638
+ items.push({ segments: mergeAdjacentSegments(segments) });
639
+ }
640
+ }
641
+ if (items.length > 0) {
642
+ blocks.push({
643
+ type: listToken.ordered ? 'orderedList' : 'bulletList',
644
+ items,
645
+ start: listToken.ordered && typeof listToken.start === 'number'
646
+ ? listToken.start
647
+ : undefined,
648
+ });
649
+ }
650
+ break;
651
+ }
652
+ case 'space': {
653
+ // Skip pure space tokens - they're handled by paragraph breaks
654
+ break;
655
+ }
656
+ case 'text': {
657
+ const textToken = token;
658
+ const segments = [];
659
+ if ('tokens' in textToken && textToken.tokens) {
660
+ segments.push(...parseInlineTokens(textToken.tokens));
661
+ }
662
+ else {
663
+ segments.push({ text: decodeHtmlEntities(textToken.text) });
664
+ }
665
+ if (segments.length > 0) {
666
+ blocks.push({ type: 'paragraph', segments: mergeAdjacentSegments(segments) });
667
+ }
668
+ break;
669
+ }
670
+ default: {
671
+ // Handle any other token types by extracting raw text
672
+ if ('raw' in token && typeof token.raw === 'string') {
673
+ const raw = token.raw.trim();
674
+ if (raw) {
675
+ blocks.push({ type: 'paragraph', segments: [{ text: raw }] });
676
+ }
677
+ }
678
+ break;
679
+ }
680
+ }
681
+ }
682
+ return blocks;
683
+ }
229
684
  //# sourceMappingURL=conversion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../../src/utils/conversion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwCtD;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;AAEzF;;GAEG;AACH,MAAM,sBAAsB,GAA0B;IACpD,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,SAAS;IACpB,EAAE,EAAE,IAAI;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAA0B;IAClD,QAAQ,EAAE,IAAI;IACd,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;GAEG;AACH,SAAS,qBAAqB,CAAC,UAAiC,EAAE;IAChE,MAAM,MAAM,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,OAAO,EAAE,CAAC;IACzD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;QAC1C,YAAY,EAAE,KAAK;QACnB,EAAE,EAAE,KAAK;QACT,gBAAgB,EAAE,GAAG;QACrB,cAAc,EAAE,QAAQ;QACxB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,MAAM,CAAC,SAAqC;QACvD,kBAAkB,EAAE,MAAM;QAC1B,EAAE,EAAE,MAAM,CAAC,EAAE;KACd,CAAC,CAAC;IAEH,uCAAuC;IACvC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,4BAA4B;QAC5B,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;YACvC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;YACpB,WAAW,EAAE,UAAU,OAAO;gBAC5B,OAAO,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;QAEH,yBAAyB;QACzB,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;YACvC,MAAM,EAAE,UAAU,IAAU;gBAC1B,OAAO,CACL,IAAI,CAAC,QAAQ,KAAK,IAAI;oBACrB,IAAgB,CAAC,aAAa;oBAC9B,IAAgB,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,IAAI,CACnE,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,UAAU,OAAO,EAAE,IAAU;gBACxC,MAAM,QAAQ,GAAI,IAAgB,CAAC,aAAa;oBAC9C,CAAC,CAAE,IAAgB,CAAC,aAAa,CAAC,wBAAwB,CAAC;oBAC3D,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,SAAS,GAAG,QAAQ,IAAK,QAA6B,CAAC,OAAO,CAAC;gBACrE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YACrD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1D,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAa,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,UAAiC,EAAE;IAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvD,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,kEAAkE;QAClE,iDAAiD;KAClD,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,UAAiC,EAAE;IAC9E,IAAI,CAAC;QACH,iBAAiB;QACjB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5B,uCAAuC;QACvC,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEvD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhD,oDAAoD;QACpD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,UAAiC,EAAE;IAClF,IAAI,CAAC;QACH,iBAAiB;QACjB,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,gCAAgC;QAChC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzB,2BAA2B;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,oGAAoG;QACpG,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,wEAAwE;IACxE,IAAI,SAAS,GAAG,IAAI;SACjB,OAAO,CAAC,qDAAqD,EAAE,EAAE,CAAC;SAClE,OAAO,CAAC,qDAAqD,EAAE,EAAE,CAAC;SAClE,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1B,kEAAkE;IAClE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAElE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,UAA+B,EAC/B,QAA6B,EAC7B,UAA6B,EAAE;IAE/B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,CAAC,uBAAuB;IACzC,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACrD,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,cAAc,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAED,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,UAAU,OAAO,QAAQ,EAAE,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../../src/utils/conversion.ts"],"names":[],"mappings":"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"}
@@ -197,6 +197,40 @@ export declare class SunsamaClient {
197
197
  * taskId: customId,
198
198
  * snoozeUntil: new Date('2025-01-15T09:00:00')
199
199
  * });
200
+ *
201
+ * // Create a task from a GitHub issue
202
+ * const result = await client.createTask('Fix API documentation bug', {
203
+ * integration: {
204
+ * service: 'github',
205
+ * identifier: {
206
+ * id: 'I_kwDOO4SCuM7VTB4n',
207
+ * repositoryOwnerLogin: 'robertn702',
208
+ * repositoryName: 'sunsama-api',
209
+ * number: 17,
210
+ * type: 'Issue',
211
+ * url: 'https://github.com/robertn702/sunsama-api/issues/17',
212
+ * __typename: 'TaskGithubIntegrationIdentifier'
213
+ * },
214
+ * __typename: 'TaskGithubIntegration'
215
+ * },
216
+ * timeEstimate: 45
217
+ * });
218
+ *
219
+ * // Create a task from a Gmail email
220
+ * const result = await client.createTask('Project Update Email', {
221
+ * integration: {
222
+ * service: 'gmail',
223
+ * identifier: {
224
+ * id: '19a830b40fd7ab7d',
225
+ * messageId: '19a830b40fd7ab7d',
226
+ * accountId: 'user@example.com',
227
+ * url: 'https://mail.google.com/mail/u/user@example.com/#inbox/19a830b40fd7ab7d',
228
+ * __typename: 'TaskGmailIntegrationIdentifier'
229
+ * },
230
+ * __typename: 'TaskGmailIntegration'
231
+ * },
232
+ * timeEstimate: 15
233
+ * });
200
234
  * ```
201
235
  */
202
236
  createTask(text: string, options?: CreateTaskOptions): Promise<CreateTaskPayload>;
@@ -423,6 +457,21 @@ export declare class SunsamaClient {
423
457
  * ```
424
458
  */
425
459
  updateTaskStream(taskId: string, streamId: string, limitResponsePayload?: boolean): Promise<UpdateTaskPayload>;
460
+ /**
461
+ * Inserts document blocks into a Yjs XmlFragment
462
+ *
463
+ * This method creates the proper XML element hierarchy for Sunsama's rich text editor,
464
+ * including paragraphs, blockquotes, horizontal rules, and text with formatting marks.
465
+ *
466
+ * @param fragment - The Yjs XmlFragment to insert blocks into
467
+ * @param blocks - Array of document blocks to insert
468
+ * @internal
469
+ */
470
+ /**
471
+ * Helper to insert text segments into a text node that's already in the document
472
+ */
473
+ private insertSegmentsIntoTextNode;
474
+ private insertBlocksIntoFragment;
426
475
  /**
427
476
  * Creates an updated collaborative editing snapshot based on existing state
428
477
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../src/queries/fragments/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,yBAAyB,gCASrC,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAoBxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAuRrC,CAAC;AAEF,eAAO,MAAM,aAAa,gCAoLzB,CAAC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../src/queries/fragments/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,yBAAyB,gCASrC,CAAC;AAEF,eAAO,MAAM,4BAA4B,gCAoBxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAkPrC,CAAC;AAEF,eAAO,MAAM,aAAa,gCAoLzB,CAAC"}
@@ -697,10 +697,40 @@ export interface TaskLinearIntegration extends BaseTaskIntegration {
697
697
  };
698
698
  __typename: 'TaskLinearIntegration';
699
699
  }
700
+ /**
701
+ * GitHub integration for tasks
702
+ */
703
+ export interface TaskGithubIntegration extends BaseTaskIntegration {
704
+ service: 'github';
705
+ identifier: {
706
+ id: string;
707
+ repositoryOwnerLogin: string;
708
+ repositoryName: string;
709
+ number: number;
710
+ type: string;
711
+ url: string;
712
+ __typename: 'TaskGithubIntegrationIdentifier';
713
+ };
714
+ __typename: 'TaskGithubIntegration';
715
+ }
716
+ /**
717
+ * Gmail integration for tasks
718
+ */
719
+ export interface TaskGmailIntegration extends BaseTaskIntegration {
720
+ service: 'gmail';
721
+ identifier: {
722
+ id: string;
723
+ messageId: string;
724
+ accountId: string;
725
+ url: string;
726
+ __typename: 'TaskGmailIntegrationIdentifier';
727
+ };
728
+ __typename: 'TaskGmailIntegration';
729
+ }
700
730
  /**
701
731
  * Union type for all task integrations
702
732
  */
703
- export type TaskIntegration = TaskWebsiteIntegration | TaskGoogleCalendarIntegration | TaskLinearIntegration;
733
+ export type TaskIntegration = TaskWebsiteIntegration | TaskGoogleCalendarIntegration | TaskLinearIntegration | TaskGithubIntegration | TaskGmailIntegration;
704
734
  /**
705
735
  * Main Task structure
706
736
  */
@@ -1029,6 +1059,8 @@ export interface CreateTaskOptions {
1029
1059
  dueDate?: Date | string;
1030
1060
  /** Snooze until date as Date or ISO string */
1031
1061
  snoozeUntil?: Date | string;
1062
+ /** Integration information for linking task to external services (e.g., Gmail) */
1063
+ integration?: TaskIntegration;
1032
1064
  }
1033
1065
  /**
1034
1066
  * Input for createTask mutation