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.
- package/README.md +34 -0
- package/dist/cjs/client/index.js +183 -25
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/queries/fragments/task.js +0 -37
- package/dist/cjs/queries/fragments/task.js.map +1 -1
- package/dist/cjs/utils/conversion.js +457 -0
- package/dist/cjs/utils/conversion.js.map +1 -1
- package/dist/esm/client/index.js +184 -26
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/queries/fragments/task.js +0 -37
- package/dist/esm/queries/fragments/task.js.map +1 -1
- package/dist/esm/utils/conversion.js +455 -0
- package/dist/esm/utils/conversion.js.map +1 -1
- package/dist/types/client/index.d.ts +49 -0
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/queries/fragments/task.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +33 -1
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/utils/conversion.d.ts +102 -0
- package/dist/types/utils/conversion.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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(/</g, '<')
|
|
24
|
+
.replace(/>/g, '>')
|
|
25
|
+
.replace(/"/g, '"')
|
|
26
|
+
.replace(/'/g, "'")
|
|
27
|
+
.replace(/'/g, "'")
|
|
28
|
+
.replace(/'/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":"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"}
|
|
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":"AAAA;;;;GAIG;AAuBH,OAAO,KAAK,EAGV,iBAAiB,EACjB,iBAAiB,EAejB,MAAM,EACN,mBAAmB,EACnB,IAAI,EAEJ,gBAAgB,EAKhB,sBAAsB,EACtB,iBAAiB,EAMjB,IAAI,EACL,MAAM,mBAAmB,CAAC;
|
|
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,
|
|
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
|