@hexidecibel/companion 0.0.1 → 0.1.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.
Files changed (110) hide show
  1. package/dist/__tests__/task-parser.test.js +29 -29
  2. package/dist/__tests__/task-parser.test.js.map +1 -1
  3. package/dist/anthropic-usage.d.ts.map +1 -1
  4. package/dist/anthropic-usage.js +1 -1
  5. package/dist/anthropic-usage.js.map +1 -1
  6. package/dist/cert-generator.d.ts.map +1 -1
  7. package/dist/cert-generator.js +4 -21
  8. package/dist/cert-generator.js.map +1 -1
  9. package/dist/cli.d.ts +9 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +413 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +1 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/escalation.d.ts +51 -0
  17. package/dist/escalation.d.ts.map +1 -0
  18. package/dist/escalation.js +198 -0
  19. package/dist/escalation.js.map +1 -0
  20. package/dist/index.js +67 -30
  21. package/dist/index.js.map +1 -1
  22. package/dist/input-injector.d.ts.map +1 -1
  23. package/dist/input-injector.js +9 -5
  24. package/dist/input-injector.js.map +1 -1
  25. package/dist/notification-store.d.ts +35 -0
  26. package/dist/notification-store.d.ts.map +1 -0
  27. package/dist/notification-store.js +272 -0
  28. package/dist/notification-store.js.map +1 -0
  29. package/dist/parser.d.ts +15 -1
  30. package/dist/parser.d.ts.map +1 -1
  31. package/dist/parser.js +106 -61
  32. package/dist/parser.js.map +1 -1
  33. package/dist/push.d.ts +18 -26
  34. package/dist/push.d.ts.map +1 -1
  35. package/dist/push.js +90 -184
  36. package/dist/push.js.map +1 -1
  37. package/dist/qr-server.d.ts.map +1 -1
  38. package/dist/qr-server.js +159 -139
  39. package/dist/qr-server.js.map +1 -1
  40. package/dist/rules-engine.d.ts +20 -0
  41. package/dist/rules-engine.d.ts.map +1 -0
  42. package/dist/rules-engine.js +71 -0
  43. package/dist/rules-engine.js.map +1 -0
  44. package/dist/scaffold/claude-commands.d.ts +18 -0
  45. package/dist/scaffold/claude-commands.d.ts.map +1 -0
  46. package/dist/scaffold/claude-commands.js +352 -0
  47. package/dist/scaffold/claude-commands.js.map +1 -0
  48. package/dist/scaffold/generator.d.ts.map +1 -1
  49. package/dist/scaffold/generator.js +26 -1
  50. package/dist/scaffold/generator.js.map +1 -1
  51. package/dist/scaffold/scorer.d.ts +19 -0
  52. package/dist/scaffold/scorer.d.ts.map +1 -0
  53. package/dist/scaffold/scorer.js +92 -0
  54. package/dist/scaffold/scorer.js.map +1 -0
  55. package/dist/scaffold/templates/go-cli.d.ts +3 -0
  56. package/dist/scaffold/templates/go-cli.d.ts.map +1 -0
  57. package/dist/scaffold/templates/go-cli.js +249 -0
  58. package/dist/scaffold/templates/go-cli.js.map +1 -0
  59. package/dist/scaffold/templates/index.d.ts.map +1 -1
  60. package/dist/scaffold/templates/index.js +8 -2
  61. package/dist/scaffold/templates/index.js.map +1 -1
  62. package/dist/scaffold/templates/nextjs.d.ts +3 -0
  63. package/dist/scaffold/templates/nextjs.d.ts.map +1 -0
  64. package/dist/scaffold/templates/nextjs.js +336 -0
  65. package/dist/scaffold/templates/nextjs.js.map +1 -0
  66. package/dist/scaffold/templates/node-express.d.ts.map +1 -1
  67. package/dist/scaffold/templates/node-express.js +170 -157
  68. package/dist/scaffold/templates/node-express.js.map +1 -1
  69. package/dist/scaffold/templates/python-fastapi.d.ts.map +1 -1
  70. package/dist/scaffold/templates/python-fastapi.js +234 -221
  71. package/dist/scaffold/templates/python-fastapi.js.map +1 -1
  72. package/dist/scaffold/templates/react-mui-website.d.ts.map +1 -1
  73. package/dist/scaffold/templates/react-mui-website.js +337 -324
  74. package/dist/scaffold/templates/react-mui-website.js.map +1 -1
  75. package/dist/scaffold/templates/react-typescript.d.ts.map +1 -1
  76. package/dist/scaffold/templates/react-typescript.js +219 -206
  77. package/dist/scaffold/templates/react-typescript.js.map +1 -1
  78. package/dist/scaffold/templates/typescript-library.d.ts +3 -0
  79. package/dist/scaffold/templates/typescript-library.d.ts.map +1 -0
  80. package/dist/scaffold/templates/typescript-library.js +241 -0
  81. package/dist/scaffold/templates/typescript-library.js.map +1 -0
  82. package/dist/scaffold/types.d.ts +7 -0
  83. package/dist/scaffold/types.d.ts.map +1 -1
  84. package/dist/subagent-watcher.d.ts.map +1 -1
  85. package/dist/subagent-watcher.js +3 -3
  86. package/dist/subagent-watcher.js.map +1 -1
  87. package/dist/tmux-manager.d.ts +37 -0
  88. package/dist/tmux-manager.d.ts.map +1 -1
  89. package/dist/tmux-manager.js +165 -5
  90. package/dist/tmux-manager.js.map +1 -1
  91. package/dist/tool-config.d.ts.map +1 -1
  92. package/dist/tool-config.js +2 -2
  93. package/dist/tool-config.js.map +1 -1
  94. package/dist/types.d.ts +85 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js +18 -0
  97. package/dist/types.js.map +1 -1
  98. package/dist/watcher.d.ts +7 -0
  99. package/dist/watcher.d.ts.map +1 -1
  100. package/dist/watcher.js +118 -9
  101. package/dist/watcher.js.map +1 -1
  102. package/dist/websocket.d.ts +16 -2
  103. package/dist/websocket.d.ts.map +1 -1
  104. package/dist/websocket.js +758 -117
  105. package/dist/websocket.js.map +1 -1
  106. package/dist/work-group-manager.d.ts +69 -0
  107. package/dist/work-group-manager.d.ts.map +1 -0
  108. package/dist/work-group-manager.js +610 -0
  109. package/dist/work-group-manager.js.map +1 -0
  110. package/package.json +1 -1
package/dist/parser.js CHANGED
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.detectCurrentActivityFast = detectCurrentActivityFast;
37
37
  exports.parseConversationFile = parseConversationFile;
38
+ exports.parseConversationChain = parseConversationChain;
38
39
  exports.extractHighlights = extractHighlights;
39
40
  exports.detectWaitingForInput = detectWaitingForInput;
40
41
  exports.detectIdle = detectIdle;
@@ -47,7 +48,7 @@ exports.extractUsageFromFile = extractUsageFromFile;
47
48
  exports.extractTasks = extractTasks;
48
49
  const fs = __importStar(require("fs"));
49
50
  const tool_config_1 = require("./tool-config");
50
- const MAX_MESSAGES = 100; // Limit to most recent messages
51
+ const MAX_MESSAGES = Infinity; // No cap full conversation available for infinite scroll
51
52
  // KNOWN_TOOLS alias for backward compatibility in this file
52
53
  const KNOWN_TOOLS = tool_config_1.KNOWN_TOOL_NAMES;
53
54
  // Rate-limit parser warnings: max one per key per 60s
@@ -80,7 +81,7 @@ function detectCurrentActivityFast(filePath) {
80
81
  fs.readSync(fd, buffer, 0, readSize, Math.max(0, fileSize - readSize));
81
82
  fs.closeSync(fd);
82
83
  const tail = buffer.toString('utf-8');
83
- const lines = tail.split('\n').filter(line => line.trim());
84
+ const lines = tail.split('\n').filter((line) => line.trim());
84
85
  // Collect tool_result IDs from recent lines so we know which tools completed
85
86
  const completedToolIds = new Set();
86
87
  for (let i = lines.length - 1; i >= 0; i--) {
@@ -155,7 +156,7 @@ function parseConversationFile(filePath, limit = MAX_MESSAGES, preReadContent) {
155
156
  if (!content) {
156
157
  return [];
157
158
  }
158
- const lines = content.split('\n').filter(line => line.trim());
159
+ const lines = content.split('\n').filter((line) => line.trim());
159
160
  // First pass: collect all tool results, start times, and completion times
160
161
  const toolResults = new Map();
161
162
  const toolStartTimes = new Map();
@@ -180,8 +181,8 @@ function parseConversationFile(filePath, limit = MAX_MESSAGES, preReadContent) {
180
181
  }
181
182
  else if (Array.isArray(block.content)) {
182
183
  output = block.content
183
- .filter(c => c.type === 'text' && c.text)
184
- .map(c => c.text || '')
184
+ .filter((c) => c.type === 'text' && c.text)
185
+ .map((c) => c.text || '')
185
186
  .join('\n');
186
187
  }
187
188
  toolResults.set(block.tool_use_id, output);
@@ -193,7 +194,6 @@ function parseConversationFile(filePath, limit = MAX_MESSAGES, preReadContent) {
193
194
  // Skip malformed lines
194
195
  }
195
196
  }
196
- const completedToolIds = new Set(toolResults.keys());
197
197
  const messages = [];
198
198
  // Process from the end to get most recent messages first
199
199
  for (let i = lines.length - 1; i >= 0 && messages.length < limit * 2; i--) {
@@ -262,10 +262,10 @@ function parseEntry(entry, toolResults, toolStartTimes, toolCompleteTimes) {
262
262
  console.log(`Parser: Found AskUserQuestion tool, questions count: ${input.questions?.length || 0}`);
263
263
  if (input.questions && input.questions.length > 0) {
264
264
  // Extract all questions
265
- questions = input.questions.map(q => ({
265
+ questions = input.questions.map((q) => ({
266
266
  question: q.question,
267
267
  header: q.header,
268
- options: q.options.map(opt => ({
268
+ options: q.options.map((opt) => ({
269
269
  label: opt.label,
270
270
  description: opt.description,
271
271
  })),
@@ -275,7 +275,7 @@ function parseEntry(entry, toolResults, toolStartTimes, toolCompleteTimes) {
275
275
  const firstQuestion = input.questions[0];
276
276
  content = firstQuestion.question;
277
277
  // Set options from first question for backward compat (single-question case)
278
- options = firstQuestion.options.map(opt => ({
278
+ options = firstQuestion.options.map((opt) => ({
279
279
  label: opt.label,
280
280
  description: opt.description,
281
281
  }));
@@ -336,23 +336,67 @@ function parseEntry(entry, toolResults, toolStartTimes, toolCompleteTimes) {
336
336
  multiSelect: multiSelect || undefined,
337
337
  };
338
338
  }
339
- function extractHighlights(messages) {
340
- // Find the index of the last user message - anything before this has been "responded to"
341
- let lastUserMessageIndex = -1;
342
- for (let i = messages.length - 1; i >= 0; i--) {
343
- if (messages[i].type === 'user') {
344
- lastUserMessageIndex = i;
345
- break;
339
+ /**
340
+ * Parse a chain of conversation files for cross-session infinite scroll.
341
+ * Files are ordered oldest-first. Pagination counts from the END of the
342
+ * newest (last) file backwards through older files.
343
+ *
344
+ * Returns { highlights, total, hasMore } matching the get_highlights contract.
345
+ */
346
+ function parseConversationChain(files, limit, offset) {
347
+ if (files.length === 0) {
348
+ return { highlights: [], total: 0, hasMore: false };
349
+ }
350
+ // Parse all files and collect highlights per file, newest-first
351
+ // We cache this lazily — only parse as many files as needed
352
+ const allHighlights = [];
353
+ let totalCount = 0;
354
+ // Walk from newest to oldest, stop once we have enough
355
+ for (let i = files.length - 1; i >= 0; i--) {
356
+ const messages = parseConversationFile(files[i]);
357
+ const highlights = extractHighlights(messages);
358
+ if (highlights.length > 0) {
359
+ // Insert a session boundary marker between files (not before the first/newest)
360
+ if (allHighlights.length > 0 && messages.length > 0) {
361
+ const boundaryTime = messages[messages.length - 1]?.timestamp || Date.now();
362
+ allHighlights.unshift({
363
+ id: `boundary-${i}`,
364
+ type: 'assistant',
365
+ content: `── Previous session ──`,
366
+ timestamp: boundaryTime,
367
+ isWaitingForChoice: false,
368
+ });
369
+ totalCount++;
370
+ }
371
+ // Prepend older highlights before newer ones
372
+ allHighlights.unshift(...highlights);
373
+ totalCount += highlights.length;
374
+ }
375
+ // Check if we have enough messages to satisfy the request
376
+ // We need at least offset + limit messages to paginate correctly
377
+ if (totalCount > offset + limit) {
378
+ break; // No need to parse more old files
346
379
  }
347
380
  }
381
+ // Paginate from the end, same logic as the existing get_highlights
382
+ const total = totalCount;
383
+ const startIdx = Math.max(0, total - offset - limit);
384
+ const endIdx = Math.max(total - offset, 0);
385
+ const resultHighlights = allHighlights.slice(startIdx, endIdx);
386
+ const hasMore = startIdx > 0;
387
+ return { highlights: resultHighlights, total, hasMore };
388
+ }
389
+ function extractHighlights(messages) {
390
+ // Find the index of the last user message - anything before this has been "responded to"
348
391
  const rawHighlights = messages
349
- .filter(msg => {
392
+ .filter((msg) => {
350
393
  // Include user messages with content
351
394
  if (msg.type === 'user' && msg.content && msg.content.trim())
352
395
  return true;
353
396
  // Include assistant messages with content OR toolCalls
354
397
  if (msg.type === 'assistant') {
355
- const hasContent = msg.content && msg.content.trim();
398
+ const trimmed = msg.content?.trim();
399
+ const hasContent = trimmed && trimmed !== '(no content)';
356
400
  const hasToolCalls = msg.toolCalls && msg.toolCalls.length > 0;
357
401
  return hasContent || hasToolCalls;
358
402
  }
@@ -362,22 +406,26 @@ function extractHighlights(messages) {
362
406
  const isLastMessage = index === arr.length - 1;
363
407
  const originalIndex = messages.indexOf(msg);
364
408
  // Check if this message has pending approval tools
365
- const hasPendingApprovalTools = msg.toolCalls?.some(tc => tc.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(tc.name) && tc.name !== 'Task') ?? false;
409
+ const hasPendingApprovalTools = msg.toolCalls?.some((tc) => tc.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(tc.name) && tc.name !== 'Task') ?? false;
366
410
  // Check if all tools in this message are already completed/errored
367
- const allToolsCompleted = (msg.toolCalls?.length ?? 0) > 0 && msg.toolCalls?.every(tc => tc.status === 'completed' || tc.status === 'error' || tc.output !== undefined);
411
+ const allToolsCompleted = (msg.toolCalls?.length ?? 0) > 0 &&
412
+ msg.toolCalls?.every((tc) => tc.status === 'completed' || tc.status === 'error' || tc.output !== undefined);
368
413
  // Check if user already responded after this message (tool is running, not waiting)
369
414
  const userRespondedAfter = originalIndex < messages.length - 1 &&
370
- messages.slice(originalIndex + 1).some(m => m.type === 'user');
415
+ messages.slice(originalIndex + 1).some((m) => m.type === 'user');
371
416
  // Show options if:
372
417
  // 1. This message has options AND
373
418
  // 2. Either it's the last message OR it has pending approval tools AND
374
419
  // 3. Tools haven't all completed AND
375
420
  // 4. User hasn't already responded (tool would be running, not waiting)
376
- const showOptions = msg.options && msg.options.length > 0 &&
377
- (isLastMessage || hasPendingApprovalTools) && !allToolsCompleted && !userRespondedAfter;
421
+ const showOptions = msg.options &&
422
+ msg.options.length > 0 &&
423
+ (isLastMessage || hasPendingApprovalTools) &&
424
+ !allToolsCompleted &&
425
+ !userRespondedAfter;
378
426
  // If user responded after this message, pending tools are now running (not waiting for approval)
379
427
  const toolCalls = userRespondedAfter && msg.toolCalls
380
- ? msg.toolCalls.map(tc => tc.status === 'pending' ? { ...tc, status: 'running' } : tc)
428
+ ? msg.toolCalls.map((tc) => tc.status === 'pending' ? { ...tc, status: 'running' } : tc)
381
429
  : msg.toolCalls;
382
430
  return {
383
431
  id: msg.id,
@@ -396,8 +444,15 @@ function extractHighlights(messages) {
396
444
  const highlights = [];
397
445
  for (const h of rawHighlights) {
398
446
  const prev = highlights[highlights.length - 1];
399
- const isToolOnly = h.type === 'assistant' && (!h.content || !h.content.trim()) && h.toolCalls && h.toolCalls.length > 0;
400
- const prevIsToolOnly = prev && prev.type === 'assistant' && (!prev.content || !prev.content.trim()) && prev.toolCalls && prev.toolCalls.length > 0;
447
+ const isToolOnly = h.type === 'assistant' &&
448
+ (!h.content || !h.content.trim()) &&
449
+ h.toolCalls &&
450
+ h.toolCalls.length > 0;
451
+ const prevIsToolOnly = prev &&
452
+ prev.type === 'assistant' &&
453
+ (!prev.content || !prev.content.trim()) &&
454
+ prev.toolCalls &&
455
+ prev.toolCalls.length > 0;
401
456
  if (isToolOnly && prevIsToolOnly && !h.options && !prev.options) {
402
457
  // Merge: append tool calls to previous message
403
458
  prev.toolCalls = [...(prev.toolCalls || []), ...(h.toolCalls || [])];
@@ -422,28 +477,20 @@ function detectWaitingForInput(messages) {
422
477
  if (lastMessage.type === 'assistant') {
423
478
  // Check for pending tool calls that need approval
424
479
  if (lastMessage.toolCalls) {
425
- const hasPendingApproval = lastMessage.toolCalls.some(tc => tc.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(tc.name));
480
+ const hasPendingApproval = lastMessage.toolCalls.some((tc) => tc.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(tc.name));
426
481
  if (hasPendingApproval) {
427
482
  return true;
428
483
  }
429
- }
430
- // Check for text content that looks like a question or prompt
431
- if (lastMessage.content.trim()) {
432
- const questionPatterns = [
433
- /\?$/,
434
- /would you like/i,
435
- /do you want/i,
436
- /should I/i,
437
- /let me know/i,
438
- /please confirm/i,
439
- /please provide/i,
440
- ];
441
- for (const pattern of questionPatterns) {
442
- if (pattern.test(lastMessage.content)) {
443
- return true;
444
- }
484
+ // If any tools are still running, not waiting yet
485
+ if (lastMessage.toolCalls.some((tc) => tc.status === 'running')) {
486
+ return false;
445
487
  }
446
488
  }
489
+ // Assistant finished with all tools completed (or no tools) = waiting for next user input
490
+ if (!lastMessage.toolCalls ||
491
+ lastMessage.toolCalls.every((tc) => tc.status === 'completed' || tc.status === 'error')) {
492
+ return true;
493
+ }
447
494
  }
448
495
  return false;
449
496
  }
@@ -455,11 +502,11 @@ function detectIdle(messages) {
455
502
  // If the last message is from the assistant with all tools completed and no question
456
503
  if (lastMessage.type === 'assistant') {
457
504
  // Still has running/pending tools = not idle
458
- if (lastMessage.toolCalls?.some(tc => tc.status === 'pending' || tc.status === 'running')) {
505
+ if (lastMessage.toolCalls?.some((tc) => tc.status === 'pending' || tc.status === 'running')) {
459
506
  return false;
460
507
  }
461
508
  // All tools completed, no question pattern = idle (finished task)
462
- if (!lastMessage.toolCalls || lastMessage.toolCalls.every(tc => tc.status === 'completed')) {
509
+ if (!lastMessage.toolCalls || lastMessage.toolCalls.every((tc) => tc.status === 'completed')) {
463
510
  return !detectWaitingForInput(messages);
464
511
  }
465
512
  }
@@ -474,7 +521,9 @@ function detectCurrentActivity(messages) {
474
521
  return 'Processing...';
475
522
  }
476
523
  // Check for tool calls in the last assistant message
477
- if (lastMessage.type === 'assistant' && lastMessage.toolCalls && lastMessage.toolCalls.length > 0) {
524
+ if (lastMessage.type === 'assistant' &&
525
+ lastMessage.toolCalls &&
526
+ lastMessage.toolCalls.length > 0) {
478
527
  const lastTool = lastMessage.toolCalls[lastMessage.toolCalls.length - 1];
479
528
  // Check if this is a pending approval
480
529
  if (lastTool.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(lastTool.name)) {
@@ -520,7 +569,7 @@ function getRecentActivity(messages, limit = 5) {
520
569
  break;
521
570
  const input = tool.input;
522
571
  let inputStr = '';
523
- let outputStr = tool.output || '';
572
+ const outputStr = tool.output || '';
524
573
  // Format input based on tool type
525
574
  if (input.file_path) {
526
575
  inputStr = input.file_path;
@@ -558,7 +607,9 @@ function getSessionStatus(conversationPath, isProcessRunning) {
558
607
  };
559
608
  }
560
609
  /**
561
- * Get list of pending tools that need approval from the last message
610
+ * Get list of pending tools that need approval from the last message.
611
+ * Only returns tools that actually require user approval (Bash, Write, Edit, etc.)
612
+ * Excludes Task (runs in background), AskUserQuestion (choice prompts, not tool approval).
562
613
  */
563
614
  function getPendingApprovalTools(messages) {
564
615
  if (messages.length === 0)
@@ -567,8 +618,8 @@ function getPendingApprovalTools(messages) {
567
618
  if (lastMessage.type !== 'assistant' || !lastMessage.toolCalls)
568
619
  return [];
569
620
  return lastMessage.toolCalls
570
- .filter(tc => tc.status === 'pending')
571
- .map(tc => tc.name);
621
+ .filter((tc) => tc.status === 'pending' && tool_config_1.APPROVAL_TOOLS.includes(tc.name) && tc.name !== 'Task')
622
+ .map((tc) => tc.name);
572
623
  }
573
624
  /**
574
625
  * Detect compaction events in a conversation file
@@ -579,7 +630,7 @@ function detectCompaction(filePath, sessionId, sessionName, projectPath, lastChe
579
630
  if (!content) {
580
631
  return { event: null, lastLine: 0 };
581
632
  }
582
- const lines = content.split('\n').filter(line => line.trim());
633
+ const lines = content.split('\n').filter((line) => line.trim());
583
634
  let compactionEvent = null;
584
635
  // Only check lines after lastCheckedLine to avoid re-detecting old compactions
585
636
  for (let i = lastCheckedLine; i < lines.length; i++) {
@@ -621,7 +672,7 @@ function extractUsageFromFile(filePath, sessionName) {
621
672
  return result;
622
673
  }
623
674
  const content = fs.readFileSync(filePath, 'utf-8');
624
- const lines = content.split('\n').filter(line => line.trim());
675
+ const lines = content.split('\n').filter((line) => line.trim());
625
676
  const seenMessageIds = new Set();
626
677
  for (const line of lines) {
627
678
  try {
@@ -667,7 +718,7 @@ function extractUsageFromFile(filePath, sessionName) {
667
718
  * Extract tasks from JSONL content (from TaskCreate/TaskUpdate tool calls)
668
719
  */
669
720
  function extractTasks(content) {
670
- const lines = content.split('\n').filter(line => line.trim());
721
+ const lines = content.split('\n').filter((line) => line.trim());
671
722
  // Track tasks by temporary ID (toolu_xxx) until we get real ID from result
672
723
  const pendingTasks = new Map();
673
724
  // Map toolu_xxx to real task ID
@@ -731,16 +782,10 @@ function extractTasks(content) {
731
782
  existingTask.owner = input.owner;
732
783
  }
733
784
  if (input.addBlockedBy) {
734
- existingTask.blockedBy = [
735
- ...(existingTask.blockedBy || []),
736
- ...input.addBlockedBy,
737
- ];
785
+ existingTask.blockedBy = [...(existingTask.blockedBy || []), ...input.addBlockedBy];
738
786
  }
739
787
  if (input.addBlocks) {
740
- existingTask.blocks = [
741
- ...(existingTask.blocks || []),
742
- ...input.addBlocks,
743
- ];
788
+ existingTask.blocks = [...(existingTask.blocks || []), ...input.addBlocks];
744
789
  }
745
790
  existingTask.updatedAt = timestamp;
746
791
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,8DA0FC;AAED,sDA0EC;AA8ID,wDAoDC;AAED,8CAuGC;AAED,sDAgCC;AAGD,gCAmBC;AAUD,sDAsDC;AAED,8CAyCC;AAED,4CAcC;AAOD,0DAWC;AAuBD,4CAuCC;AAKD,oDA+DC;AAyBD,oCAuIC;AA5/BD,uCAAyB;AAYzB,+CAAkG;AAmClG,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,2DAA2D;AAE1F,4DAA4D;AAC5D,MAAM,WAAW,GAAG,8BAAgB,CAAC;AAErC,sDAAsD;AACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;IACrD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK;QAAE,OAAO;IACvC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAE5B,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QACvE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,6EAA6E;QAC7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;4BACtD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,OAAO,eAAe,CAAC;gBACzB,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACjE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBAChC,oDAAoD;wBACpD,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BAClD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;4BAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gCACxD,uCAAuC;gCACvC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oCACnC,SAAS;gCACX,CAAC;gCAED,2BAA2B;gCAC3B,IAAI,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oCAC7B,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gCACvE,CAAC;gCAED,+BAA+B;gCAC/B,IAAI,4BAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oCACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAA4C,CAAC;oCACjE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;wCAC5C,MAAM,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wCACvD,OAAO,YAAY,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oCAChF,CAAC;oCACD,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;wCAC1E,MAAM,QAAQ,GACX,KAAK,CAAC,SAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC;wCAClE,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,GAAG,CAAC;oCAC7D,CAAC;oCACD,OAAO,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC;gCAClC,CAAC;gCAED,OAAO,IAAA,gCAAkB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BACxC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,SAAS,CAAC,CAAC,yCAAyC;gBAC7D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,QAAgB,EAChB,QAAgB,YAAY,EAC5B,cAAuB;IAEvB,MAAM,OAAO,GACX,cAAc,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhE,0EAA0E;IAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAErF,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC1C,6BAA6B;oBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;wBAC1C,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC1C,CAAC;oBAED,iDAAiD;oBACjD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtD,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;wBAEpD,oEAAoE;wBACpE,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACtC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;wBACzB,CAAC;6BAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;4BACxC,MAAM,GAAG,KAAK,CAAC,OAAO;iCACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;iCAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;iCACxB,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC;wBACD,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,yDAAyD;IACzD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,KAAK,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBAClF,IAAI,OAAO,EAAE,CAAC;oBACZ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;gBAClE,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClD,gBAAgB,CAAC,oBAAoB,EAAE,gCAAgC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CACjB,KAAiB,EACjB,WAAgC,EAChC,cAAmC,EACnC,iBAAsC;IAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,IAAI,OAAqC,CAAC;IAC1C,IAAI,SAAiC,CAAC;IACtC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;YACxB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChB,gBAAgB,CAAC,mBAAmB,EAAE,oCAAoC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtF,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,gBAAgB,CAAC,cAAc,EAAE,oCAAoC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAElD,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAG,KAAK,CAAC,KAAiC,IAAI,EAAE;oBACrD,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;oBAC3C,SAAS;oBACT,WAAW;iBACZ,CAAC,CAAC;gBAEH,oEAAoE;gBACpE,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,EAAE,CAAC;oBAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAA6B,CAAC;oBAClD,OAAO,CAAC,GAAG,CACT,wDAAwD,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,EAAE,CACvF,CAAC;oBACF,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClD,wBAAwB;wBACxB,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gCAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;gCAChB,WAAW,EAAE,GAAG,CAAC,WAAW;6BAC7B,CAAC,CAAC;4BACH,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,KAAK;yBACpC,CAAC,CAAC,CAAC;wBAEJ,0EAA0E;wBAC1E,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACzC,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC;wBACjC,6EAA6E;wBAC7E,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;4BAC5C,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,WAAW,EAAE,GAAG,CAAC,WAAW;yBAC7B,CAAC,CAAC,CAAC;wBACJ,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,WAAW,GAAG,aAAa,CAAC,WAAW,IAAI,KAAK,CAAC;wBACjD,OAAO,CAAC,GAAG,CACT,qBAAqB,SAAS,CAAC,MAAM,yBAAyB,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,WAAW,GAAG,CACvJ,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC1D,8DAA8D;oBAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAA6B,CAAC;oBAClD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClD,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACxC,CAAC;gBACH,CAAC;gBACD,gDAAgD;gBAChD,qFAAqF;qBAChF,IAAI,SAAS,IAAI,4BAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAgC,CAAC;oBACrD,IAAI,WAAW,GAAG,EAAE,CAAC;oBAErB,iDAAiD;oBACjD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAC3C,WAAW,GAAG,QAAS,KAAK,CAAC,OAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBACtE,CAAC;yBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBAChF,WAAW,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpD,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtD,WAAW,GAAG,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC7C,CAAC;yBAAM,CAAC;wBACN,WAAW,GAAG,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC;oBACvC,CAAC;oBAED,OAAO,GAAG;wBACR,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,WAAW,EAAE,EAAE;wBACxD,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;qBACnD,CAAC;oBACF,kBAAkB,GAAG,IAAI,CAAC;oBAC1B,OAAO,CAAC,GAAG,CACT,mBAAmB,KAAK,CAAC,IAAI,0BAA0B,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAC1F,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxC,oEAAoE;gBACpE,kDAAkD;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAErF,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,EAAE,KAAK,CAAC,IAA4B;QACxC,OAAO;QACP,SAAS;QACT,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvD,OAAO;QACP,SAAS;QACT,kBAAkB;QAClB,WAAW,EAAE,WAAW,IAAI,SAAS;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,KAAe,EACf,KAAa,EACb,MAAc;IAEd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,gEAAgE;IAChE,4DAA4D;IAC5D,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,uDAAuD;IACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,+EAA+E;YAC/E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5E,aAAa,CAAC,OAAO,CAAC;oBACpB,EAAE,EAAE,YAAY,CAAC,EAAE;oBACnB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,wBAAwB;oBACjC,SAAS,EAAE,YAAY;oBACvB,kBAAkB,EAAE,KAAK;iBAC1B,CAAC,CAAC;gBACH,UAAU,EAAE,CAAC;YACf,CAAC;YACD,6CAA6C;YAC7C,aAAa,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;YACrC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,0DAA0D;QAC1D,iEAAiE;QACjE,IAAI,UAAU,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,kCAAkC;QAC3C,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC;IAE7B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAA+B;IAC/D,yFAAyF;IACzF,MAAM,aAAa,GAAG,QAAQ;SAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,qCAAqC;QACrC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1E,uDAAuD;QACvD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,KAAK,cAAc,CAAC;YACzD,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/D,OAAO,UAAU,IAAI,YAAY,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,aAAa,GAAG,KAAK,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5C,mDAAmD;QACnD,MAAM,uBAAuB,GAC3B,GAAG,CAAC,SAAS,EAAE,IAAI,CACjB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,4BAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAC1F,IAAI,KAAK,CAAC;QAEb,mEAAmE;QACnE,MAAM,iBAAiB,GACrB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAChC,GAAG,CAAC,SAAS,EAAE,KAAK,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CACtF,CAAC;QAEJ,oFAAoF;QACpF,MAAM,kBAAkB,GACtB,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnC,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAEnE,mBAAmB;QACnB,kCAAkC;QAClC,uEAAuE;QACvE,qCAAqC;QACrC,wEAAwE;QACxE,MAAM,WAAW,GACf,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,aAAa,IAAI,uBAAuB,CAAC;YAC1C,CAAC,iBAAiB;YAClB,CAAC,kBAAkB,CAAC;QAEtB,iGAAiG;QACjG,MAAM,SAAS,GACb,kBAAkB,IAAI,GAAG,CAAC,SAAS;YACjC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACvB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CACrE;YACH,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;QAEpB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAA4B;YACtC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC9C,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAClD,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK;YAChE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACtD,SAAS;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,4EAA4E;IAC5E,6DAA6D;IAC7D,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,UAAU,GACd,CAAC,CAAC,IAAI,KAAK,WAAW;YACtB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,MAAM,cAAc,GAClB,IAAI;YACJ,IAAI,CAAC,IAAI,KAAK,WAAW;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5B,IAAI,UAAU,IAAI,cAAc,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,+CAA+C;YAC/C,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,uBAAuB;QACvD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,aAAa,EAAE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,4BAA4B,aAAa,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,qBAAqB,CAAC,QAA+B;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElD,4CAA4C;IAC5C,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,kDAAkD;QAClD,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CACnD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,4BAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CACpE,CAAC;YACF,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,kDAAkD;YAClD,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,0FAA0F;QAC1F,IACE,CAAC,WAAW,CAAC,SAAS;YACtB,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,EACvF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+FAA+F;AAC/F,SAAgB,UAAU,CAAC,QAA+B;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElD,qFAAqF;IACrF,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,6CAA6C;QAC7C,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;YAC7F,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,SAAgB,qBAAqB,CAAC,QAA+B;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElD,4DAA4D;IAC5D,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,qDAAqD;IACrD,IACE,WAAW,CAAC,IAAI,KAAK,WAAW;QAChC,WAAW,CAAC,SAAS;QACrB,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzE,sCAAsC;QACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,4BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAgC,CAAC;YACxD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvD,OAAO,YAAY,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAmB,CAAC;gBAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBACvD,OAAO,WAAW,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,GAAG,CAAC;YAChE,CAAC;YACD,OAAO,WAAW,QAAQ,CAAC,IAAI,GAAG,CAAC;QACrC,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,gCAAkB,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtD,kCAAkC;QAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAgC,CAAC;YACxD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAmB,CAAC;gBAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBACvD,OAAO,GAAG,WAAW,KAAK,QAAQ,EAAE,CAAC;YACvC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvD,OAAO,GAAG,WAAW,KAAK,GAAG,GAAI,KAAK,CAAC,OAAkB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,iFAAiF;IACjF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,iBAAiB,CAC/B,QAA+B,EAC/B,QAAgB,CAAC;IAEjB,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,wDAAwD;IACxD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;gBAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;gBACpD,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;gBAEpC,kCAAkC;gBAClC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,QAAQ,GAAG,KAAK,CAAC,SAAmB,CAAC;gBACvC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACzB,QAAQ,GAAG,KAAK,CAAC,OAAiB,CAAC;gBACrC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACzB,QAAQ,GAAG,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzC,CAAC;qBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACvB,QAAQ,GAAG,KAAK,CAAC,KAAe,CAAC;gBACnC,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC;oBACd,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3E,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,oBAAoB;oBAC1D,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,gCAAgC;AAC/D,CAAC;AAED,SAAgB,gBAAgB,CAC9B,gBAAwB,EACxB,gBAAyB;IAEzB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,SAAS,EAAE,gBAAgB;QAC3B,iBAAiB,EAAE,gBAAgB,IAAI,qBAAqB,CAAC,QAAQ,CAAC;QACtE,YAAY,EAAE,WAAW,EAAE,SAAS,IAAI,CAAC;QACzC,cAAc,EAAE,gBAAgB;QAChC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;KAChF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,QAA+B;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1E,OAAO,WAAW,CAAC,SAAS;SACzB,MAAM,CACL,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,4BAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAC1F;SACA,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAmBD;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,QAAgB,EAChB,SAAiB,EACjB,WAAmB,EACnB,WAAmB,EACnB,kBAA0B,CAAC,EAC3B,cAAuB;IAEvB,MAAM,OAAO,GACX,cAAc,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,eAAe,GAA2B,IAAI,CAAC;IAEnD,+EAA+E;IAC/E,KAAK,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnC,qDAAqD;YACrD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrF,eAAe,GAAG;oBAChB,SAAS;oBACT,WAAW;oBACX,WAAW;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS;iBACV,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,WAAmB;IACxE,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,QAAQ;QACnB,WAAW;QACX,gBAAgB,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;QACpB,wBAAwB,EAAE,CAAC;QAC3B,oBAAoB,EAAE,CAAC;QACvB,YAAY,EAAE,CAAC;QACf,oBAAoB,EAAE,CAAC;KACxB,CAAC;IAEF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhD,gDAAgD;YAChD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBACvD,MAAM,KAAK,GAAI,KAAuC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAEnE,oFAAoF;gBACpF,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAElC,yDAAyD;gBACzD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,YAAY,CAAC;oBAC9C,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC;gBAClD,CAAC;gBACD,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;oBAC/E,MAAM,CAAC,wBAAwB,IAAI,KAAK,CAAC,2BAA2B,CAAC;gBACvE,CAAC;gBACD,IAAI,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,EAAE,CAAC;oBACvE,MAAM,CAAC,oBAAoB,IAAI,KAAK,CAAC,uBAAuB,CAAC;gBAC/D,CAAC;gBACD,0DAA0D;gBAC1D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAsBD;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0D,CAAC;IACvF,gCAAgC;IAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,yBAAyB;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAErF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC1C,oBAAoB;oBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAwB,CAAC;wBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,EAAY,CAAC;wBAElC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE;4BACvB,IAAI,EAAE;gCACJ,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,WAAW,EAAE,KAAK,CAAC,WAAW;gCAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,MAAM,EAAE,SAAS;gCACjB,SAAS,EAAE,EAAE;gCACb,MAAM,EAAE,EAAE;gCACV,SAAS,EAAE,SAAS;gCACpB,SAAS,EAAE,SAAS;6BACrB;4BACD,SAAS;yBACV,CAAC,CAAC;oBACL,CAAC;oBAED,oBAAoB;oBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAwB,CAAC;wBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;wBAE5B,qBAAqB;wBACrB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACvC,IAAI,YAAY,EAAE,CAAC;4BACjB,kBAAkB;4BAClB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gCAC/B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCACrB,SAAS;4BACX,CAAC;4BAED,gBAAgB;4BAChB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gCACjB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;4BAC3D,CAAC;4BACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gCAClB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;4BACvC,CAAC;4BACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gCACtB,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;4BAC/C,CAAC;4BACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gCACrB,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;4BAC7C,CAAC;iCAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gCACxC,kCAAkC;gCAClC,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC;4BACtC,CAAC;4BACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gCAChB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;4BACnC,CAAC;4BACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gCACvB,YAAY,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;4BACtF,CAAC;4BACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gCACpB,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;4BAC7E,CAAC;4BACD,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;wBACrC,CAAC;oBACH,CAAC;oBAED,0CAA0C;oBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAqB,CAAC;wBAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAEzC,IAAI,OAAO,EAAE,CAAC;4BACZ,sCAAsC;4BACtC,IAAI,aAAa,GAAG,EAAE,CAAC;4BACvB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gCACtC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;4BAChC,CAAC;iCAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gCACxC,aAAa,GAAG,KAAK,CAAC,OAAO;qCAC1B,MAAM,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;qCAC3E,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;qCAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;4BAChB,CAAC;4BAED,wDAAwD;4BACxD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;4BAChF,IAAI,OAAO,EAAE,CAAC;gCACZ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gCAC1B,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gCAEnC,+BAA+B;gCAC/B,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;oCAChB,EAAE,EAAE,MAAM;oCACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE;oCACnC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;oCAC3C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS;oCACxC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;oCACnC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;oCACzB,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS;oCACjC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oCAC3B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS;oCAC9C,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS;iCAC/C,CAAC,CAAC;4BACL,CAAC;4BAED,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/push.d.ts CHANGED
@@ -1,38 +1,30 @@
1
- interface DeviceNotificationPrefs {
2
- quietHoursEnabled: boolean;
3
- quietHoursStart: string;
4
- quietHoursEnd: string;
5
- throttleMinutes: number;
6
- }
1
+ import { NotificationEventType } from './types';
2
+ import { NotificationStore } from './notification-store';
7
3
  export declare class PushNotificationService {
8
- private devices;
9
- private instantNotifyDevices;
10
- private devicePrefs;
11
- private lastNotificationTime;
12
- private pendingPush;
13
- private pushDelayMs;
4
+ private store;
14
5
  private firebaseInitialized;
15
- private batchedNotifications;
16
- private batchTimer;
17
- private readonly BATCH_INTERVAL_MS;
18
- constructor(credentialsPath: string | undefined, pushDelayMs: number);
19
- setInstantNotify(deviceId: string, enabled: boolean): void;
20
- setNotificationPrefs(deviceId: string, prefs: DeviceNotificationPrefs): void;
21
- private isInQuietHours;
22
- private isThrottled;
23
- private recordNotificationSent;
6
+ constructor(credentialsPath: string | undefined, _pushDelayMs: number, store: NotificationStore);
7
+ getStore(): NotificationStore;
24
8
  registerDevice(deviceId: string, pushToken: string): void;
25
9
  unregisterDevice(deviceId: string): void;
26
10
  updateDeviceLastSeen(deviceId: string): void;
27
- scheduleWaitingNotification(preview: string, sessionId?: string, sessionName?: string): void;
28
- private sendBatchedNotifications;
29
- cancelPendingNotification(): void;
30
- private sendNotificationsToDevices;
11
+ /**
12
+ * Send push notification to ALL registered devices unconditionally.
13
+ * Called by escalation service when push timer fires.
14
+ */
15
+ sendToAllDevices(preview: string, eventType: NotificationEventType, sessionId?: string, sessionName?: string): void;
16
+ private getTitleForEvent;
31
17
  private sendNotifications;
32
18
  private sendViaFirebase;
33
19
  private sendViaExpo;
20
+ /**
21
+ * Send a test push notification to all registered devices.
22
+ */
23
+ sendTestNotification(): Promise<{
24
+ sent: number;
25
+ failed: number;
26
+ }>;
34
27
  isEnabled(): boolean;
35
28
  getRegisteredDeviceCount(): number;
36
29
  }
37
- export {};
38
30
  //# sourceMappingURL=push.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AA6BA,UAAU,uBAAuB;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AASD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,WAAW,CAAmD;IACtE,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;gBAE5C,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM;IAqBpE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAU1D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAK5E,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,sBAAsB;IAI9B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO5C,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAuD5F,OAAO,CAAC,wBAAwB;IA6BhC,yBAAyB,IAAI,IAAI;YAkBnB,0BAA0B;YAc1B,iBAAiB;YAwBjB,eAAe;YAgDf,WAAW;IAqDzB,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,MAAM;CAGnC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsBzD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,mBAAmB,CAAkB;gBAEjC,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IAqB/F,QAAQ,IAAI,iBAAiB;IAI7B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI5C;;;OAGG;IACH,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,qBAAqB,EAChC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAcP,OAAO,CAAC,gBAAgB;YAiBV,iBAAiB;YAoCjB,eAAe;YAwDf,WAAW;IA0DzB;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAoCvE,SAAS,IAAI,OAAO;IAIpB,wBAAwB,IAAI,MAAM;CAGnC"}