@push.rocks/taskbuffer 3.2.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +1 -1
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/ts/index.d.ts +13 -0
  4. package/dist_ts_web/ts/index.js +12 -0
  5. package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.d.ts +8 -0
  6. package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.js +28 -0
  7. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.d.ts +13 -0
  8. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.js +31 -0
  9. package/dist_ts_web/ts/taskbuffer.classes.distributedcoordinator.d.ts +27 -0
  10. package/dist_ts_web/ts/taskbuffer.classes.distributedcoordinator.js +5 -0
  11. package/dist_ts_web/ts/taskbuffer.classes.task.d.ts +86 -0
  12. package/dist_ts_web/ts/taskbuffer.classes.task.js +257 -0
  13. package/dist_ts_web/ts/taskbuffer.classes.taskchain.d.ts +14 -0
  14. package/dist_ts_web/ts/taskbuffer.classes.taskchain.js +51 -0
  15. package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.d.ts +10 -0
  16. package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.js +20 -0
  17. package/dist_ts_web/ts/taskbuffer.classes.taskmanager.d.ts +49 -0
  18. package/dist_ts_web/ts/taskbuffer.classes.taskmanager.js +208 -0
  19. package/dist_ts_web/ts/taskbuffer.classes.taskonce.d.ts +11 -0
  20. package/dist_ts_web/ts/taskbuffer.classes.taskonce.js +20 -0
  21. package/dist_ts_web/ts/taskbuffer.classes.taskparallel.d.ts +7 -0
  22. package/dist_ts_web/ts/taskbuffer.classes.taskparallel.js +23 -0
  23. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.d.ts +30 -0
  24. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.js +54 -0
  25. package/dist_ts_web/ts/taskbuffer.classes.taskstep.d.ts +27 -0
  26. package/dist_ts_web/ts/taskbuffer.classes.taskstep.js +37 -0
  27. package/dist_ts_web/ts/taskbuffer.interfaces.d.ts +36 -0
  28. package/dist_ts_web/ts/taskbuffer.interfaces.js +2 -0
  29. package/dist_ts_web/ts/taskbuffer.logging.d.ts +2 -0
  30. package/dist_ts_web/ts/taskbuffer.logging.js +3 -0
  31. package/dist_ts_web/ts/taskbuffer.plugins.d.ts +8 -0
  32. package/dist_ts_web/ts/taskbuffer.plugins.js +9 -0
  33. package/dist_ts_web/ts_web/00_commitinfo_data.d.ts +8 -0
  34. package/dist_ts_web/ts_web/00_commitinfo_data.js +9 -0
  35. package/dist_ts_web/ts_web/demorunner.d.ts +1 -0
  36. package/dist_ts_web/ts_web/demorunner.js +33 -0
  37. package/dist_ts_web/ts_web/elements/taskbuffer-dashboard.demo.d.ts +2 -0
  38. package/dist_ts_web/ts_web/elements/taskbuffer-dashboard.demo.js +285 -0
  39. package/dist_ts_web/ts_web/index.d.ts +2 -0
  40. package/dist_ts_web/ts_web/index.js +3 -0
  41. package/dist_ts_web/ts_web/taskbuffer-dashboard.d.ts +24 -0
  42. package/dist_ts_web/ts_web/taskbuffer-dashboard.js +549 -0
  43. package/package.json +13 -12
  44. package/readme.md +429 -930
  45. package/ts/00_commitinfo_data.ts +1 -1
  46. package/ts_web/00_commitinfo_data.ts +1 -1
  47. package/ts_web/elements/taskbuffer-dashboard.demo.ts +311 -0
  48. package/ts_web/index.ts +12 -0
  49. package/ts_web/taskbuffer-dashboard.ts +541 -0
@@ -0,0 +1,549 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { DeesElement, customElement, html, css, property, state, cssManager } from '@design.estate/dees-element';
8
+ /**
9
+ * A web component that displays TaskManager tasks with progress visualization
10
+ */
11
+ let TaskbufferDashboard = class TaskbufferDashboard extends DeesElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ // Properties
15
+ this.taskManager = null;
16
+ this.refreshInterval = 1000; // milliseconds
17
+ // Internal state
18
+ this.tasks = [];
19
+ this.scheduledTasks = [];
20
+ this.isRunning = false;
21
+ }
22
+ // Styles
23
+ static { this.styles = [
24
+ cssManager.defaultStyles,
25
+ css `
26
+ :host {
27
+ display: block;
28
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
29
+ }
30
+
31
+ .dashboard-container {
32
+ padding: 24px;
33
+ background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};
34
+ min-height: 100vh;
35
+ }
36
+
37
+ .dashboard-header {
38
+ margin-bottom: 32px;
39
+ }
40
+
41
+ .dashboard-title {
42
+ font-size: 28px;
43
+ font-weight: 700;
44
+ color: ${cssManager.bdTheme('#09090b', '#fafafa')};
45
+ margin-bottom: 8px;
46
+ display: flex;
47
+ align-items: center;
48
+ gap: 12px;
49
+ }
50
+
51
+ .status-indicator {
52
+ width: 12px;
53
+ height: 12px;
54
+ border-radius: 50%;
55
+ background: ${cssManager.bdTheme('#22c55e', '#22c55e')};
56
+ animation: pulse 2s infinite;
57
+ }
58
+
59
+ .status-indicator.inactive {
60
+ background: ${cssManager.bdTheme('#94a3b8', '#475569')};
61
+ animation: none;
62
+ }
63
+
64
+ @keyframes pulse {
65
+ 0%, 100% {
66
+ opacity: 1;
67
+ }
68
+ 50% {
69
+ opacity: 0.5;
70
+ }
71
+ }
72
+
73
+ .dashboard-subtitle {
74
+ font-size: 14px;
75
+ color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
76
+ }
77
+
78
+ .tasks-section {
79
+ margin-bottom: 48px;
80
+ }
81
+
82
+ .section-title {
83
+ font-size: 20px;
84
+ font-weight: 600;
85
+ color: ${cssManager.bdTheme('#18181b', '#e4e4e7')};
86
+ margin-bottom: 16px;
87
+ }
88
+
89
+ .tasks-grid {
90
+ display: grid;
91
+ grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
92
+ gap: 16px;
93
+ }
94
+
95
+ .task-card {
96
+ background: ${cssManager.bdTheme('#f8fafc', '#18181b')};
97
+ border: 1px solid ${cssManager.bdTheme('#e2e8f0', '#27272a')};
98
+ border-radius: 12px;
99
+ padding: 20px;
100
+ transition: all 0.2s ease;
101
+ }
102
+
103
+ .task-card:hover {
104
+ transform: translateY(-2px);
105
+ box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0,0,0,0.1)', 'rgba(0,0,0,0.3)')};
106
+ }
107
+
108
+ .task-header {
109
+ display: flex;
110
+ justify-content: space-between;
111
+ align-items: flex-start;
112
+ margin-bottom: 12px;
113
+ }
114
+
115
+ .task-name {
116
+ font-size: 16px;
117
+ font-weight: 600;
118
+ color: ${cssManager.bdTheme('#0f172a', '#f1f5f9')};
119
+ }
120
+
121
+ .task-status {
122
+ display: inline-block;
123
+ padding: 4px 8px;
124
+ border-radius: 6px;
125
+ font-size: 11px;
126
+ font-weight: 600;
127
+ text-transform: uppercase;
128
+ letter-spacing: 0.5px;
129
+ }
130
+
131
+ .task-status.idle {
132
+ background: ${cssManager.bdTheme('#f1f5f9', '#27272a')};
133
+ color: ${cssManager.bdTheme('#64748b', '#94a3b8')};
134
+ }
135
+
136
+ .task-status.running {
137
+ background: ${cssManager.bdTheme('#dbeafe', '#1e3a8a')};
138
+ color: ${cssManager.bdTheme('#1e40af', '#93c5fd')};
139
+ }
140
+
141
+ .task-status.completed {
142
+ background: ${cssManager.bdTheme('#dcfce7', '#14532d')};
143
+ color: ${cssManager.bdTheme('#15803d', '#86efac')};
144
+ }
145
+
146
+ .task-status.failed {
147
+ background: ${cssManager.bdTheme('#fee2e2', '#7f1d1d')};
148
+ color: ${cssManager.bdTheme('#dc2626', '#fca5a5')};
149
+ }
150
+
151
+ .task-info {
152
+ display: flex;
153
+ gap: 16px;
154
+ margin-bottom: 16px;
155
+ font-size: 13px;
156
+ color: ${cssManager.bdTheme('#64748b', '#94a3b8')};
157
+ }
158
+
159
+ .task-info-item {
160
+ display: flex;
161
+ align-items: center;
162
+ gap: 4px;
163
+ }
164
+
165
+ .task-info-icon {
166
+ width: 14px;
167
+ height: 14px;
168
+ opacity: 0.7;
169
+ }
170
+
171
+ .progress-container {
172
+ margin-bottom: 16px;
173
+ }
174
+
175
+ .progress-label {
176
+ display: flex;
177
+ justify-content: space-between;
178
+ margin-bottom: 8px;
179
+ font-size: 13px;
180
+ color: ${cssManager.bdTheme('#475569', '#cbd5e1')};
181
+ }
182
+
183
+ .progress-bar {
184
+ height: 8px;
185
+ background: ${cssManager.bdTheme('#e2e8f0', '#27272a')};
186
+ border-radius: 4px;
187
+ overflow: hidden;
188
+ position: relative;
189
+ }
190
+
191
+ .progress-fill {
192
+ height: 100%;
193
+ background: linear-gradient(90deg, #3b82f6, #6366f1);
194
+ border-radius: 4px;
195
+ transition: width 0.3s ease;
196
+ position: relative;
197
+ overflow: hidden;
198
+ }
199
+
200
+ .progress-fill::after {
201
+ content: '';
202
+ position: absolute;
203
+ top: 0;
204
+ left: 0;
205
+ right: 0;
206
+ bottom: 0;
207
+ background: linear-gradient(
208
+ 90deg,
209
+ transparent,
210
+ rgba(255, 255, 255, 0.3),
211
+ transparent
212
+ );
213
+ animation: shimmer 2s infinite;
214
+ }
215
+
216
+ @keyframes shimmer {
217
+ 0% {
218
+ transform: translateX(-100%);
219
+ }
220
+ 100% {
221
+ transform: translateX(100%);
222
+ }
223
+ }
224
+
225
+ .steps-container {
226
+ border-top: 1px solid ${cssManager.bdTheme('#e2e8f0', '#27272a')};
227
+ padding-top: 12px;
228
+ }
229
+
230
+ .steps-title {
231
+ font-size: 12px;
232
+ font-weight: 600;
233
+ color: ${cssManager.bdTheme('#64748b', '#94a3b8')};
234
+ margin-bottom: 8px;
235
+ text-transform: uppercase;
236
+ letter-spacing: 0.5px;
237
+ }
238
+
239
+ .step-item {
240
+ display: flex;
241
+ align-items: center;
242
+ gap: 8px;
243
+ padding: 6px 0;
244
+ font-size: 13px;
245
+ }
246
+
247
+ .step-indicator {
248
+ width: 20px;
249
+ height: 20px;
250
+ border-radius: 50%;
251
+ display: flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ font-size: 10px;
255
+ font-weight: 600;
256
+ flex-shrink: 0;
257
+ }
258
+
259
+ .step-indicator.pending {
260
+ background: ${cssManager.bdTheme('#f1f5f9', '#27272a')};
261
+ color: ${cssManager.bdTheme('#94a3b8', '#64748b')};
262
+ border: 2px solid ${cssManager.bdTheme('#cbd5e1', '#3f3f46')};
263
+ }
264
+
265
+ .step-indicator.active {
266
+ background: linear-gradient(135deg, #3b82f6, #6366f1);
267
+ color: white;
268
+ animation: pulse 1.5s infinite;
269
+ }
270
+
271
+ .step-indicator.completed {
272
+ background: ${cssManager.bdTheme('#22c55e', '#22c55e')};
273
+ color: white;
274
+ }
275
+
276
+ .step-details {
277
+ flex: 1;
278
+ }
279
+
280
+ .step-name {
281
+ font-weight: 500;
282
+ color: ${cssManager.bdTheme('#1e293b', '#e2e8f0')};
283
+ }
284
+
285
+ .step-description {
286
+ font-size: 11px;
287
+ color: ${cssManager.bdTheme('#64748b', '#94a3b8')};
288
+ margin-top: 2px;
289
+ }
290
+
291
+ .step-percentage {
292
+ font-size: 11px;
293
+ font-weight: 600;
294
+ color: ${cssManager.bdTheme('#94a3b8', '#64748b')};
295
+ }
296
+
297
+ .empty-state {
298
+ text-align: center;
299
+ padding: 48px;
300
+ color: ${cssManager.bdTheme('#94a3b8', '#64748b')};
301
+ }
302
+
303
+ .empty-state-icon {
304
+ width: 64px;
305
+ height: 64px;
306
+ margin: 0 auto 16px;
307
+ opacity: 0.3;
308
+ }
309
+
310
+ .empty-state-text {
311
+ font-size: 16px;
312
+ margin-bottom: 8px;
313
+ }
314
+
315
+ .empty-state-subtext {
316
+ font-size: 14px;
317
+ color: ${cssManager.bdTheme('#cbd5e1', '#475569')};
318
+ }
319
+
320
+ .scheduled-section {
321
+ margin-top: 32px;
322
+ }
323
+
324
+ .schedule-info {
325
+ display: flex;
326
+ align-items: center;
327
+ gap: 8px;
328
+ margin-top: 8px;
329
+ font-size: 12px;
330
+ color: ${cssManager.bdTheme('#64748b', '#94a3b8')};
331
+ }
332
+
333
+ .schedule-icon {
334
+ width: 14px;
335
+ height: 14px;
336
+ }
337
+ `,
338
+ ]; }
339
+ // Lifecycle
340
+ async connectedCallback() {
341
+ await super.connectedCallback();
342
+ this.startRefreshing();
343
+ }
344
+ async disconnectedCallback() {
345
+ await super.disconnectedCallback();
346
+ this.stopRefreshing();
347
+ }
348
+ // Methods
349
+ startRefreshing() {
350
+ if (this.refreshTimer) {
351
+ clearInterval(this.refreshTimer);
352
+ }
353
+ this.updateData();
354
+ this.refreshTimer = setInterval(() => {
355
+ this.updateData();
356
+ }, this.refreshInterval);
357
+ this.isRunning = true;
358
+ }
359
+ stopRefreshing() {
360
+ if (this.refreshTimer) {
361
+ clearInterval(this.refreshTimer);
362
+ this.refreshTimer = null;
363
+ }
364
+ this.isRunning = false;
365
+ }
366
+ updateData() {
367
+ if (!this.taskManager) {
368
+ this.tasks = [];
369
+ this.scheduledTasks = [];
370
+ return;
371
+ }
372
+ this.tasks = this.taskManager.getAllTasksMetadata();
373
+ this.scheduledTasks = this.taskManager.getScheduledTasks();
374
+ }
375
+ formatNextRun(date) {
376
+ const now = new Date();
377
+ const diff = date.getTime() - now.getTime();
378
+ if (diff < 0)
379
+ return 'Past due';
380
+ if (diff < 60000)
381
+ return 'Less than a minute';
382
+ if (diff < 3600000)
383
+ return `${Math.floor(diff / 60000)} minutes`;
384
+ if (diff < 86400000)
385
+ return `${Math.floor(diff / 3600000)} hours`;
386
+ return `${Math.floor(diff / 86400000)} days`;
387
+ }
388
+ formatDuration(ms) {
389
+ if (!ms)
390
+ return '-';
391
+ if (ms < 1000)
392
+ return `${ms}ms`;
393
+ if (ms < 60000)
394
+ return `${(ms / 1000).toFixed(1)}s`;
395
+ return `${(ms / 60000).toFixed(1)}m`;
396
+ }
397
+ // Render
398
+ render() {
399
+ return html `
400
+ <div class="dashboard-container">
401
+ <div class="dashboard-header">
402
+ <div class="dashboard-title">
403
+ <span>TaskBuffer Dashboard</span>
404
+ <span class="status-indicator ${this.isRunning ? '' : 'inactive'}"></span>
405
+ </div>
406
+ <div class="dashboard-subtitle">
407
+ ${this.tasks.length} task${this.tasks.length !== 1 ? 's' : ''} registered
408
+ ${this.scheduledTasks.length > 0 ? ` • ${this.scheduledTasks.length} scheduled` : ''}
409
+ </div>
410
+ </div>
411
+
412
+ <div class="tasks-section">
413
+ <h2 class="section-title">Active Tasks</h2>
414
+
415
+ ${this.tasks.length > 0 ? html `
416
+ <div class="tasks-grid">
417
+ ${this.tasks.map(task => this.renderTaskCard(task))}
418
+ </div>
419
+ ` : html `
420
+ <div class="empty-state">
421
+ <svg class="empty-state-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
422
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
423
+ d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
424
+ </svg>
425
+ <div class="empty-state-text">No tasks registered</div>
426
+ <div class="empty-state-subtext">Tasks will appear here when added to the TaskManager</div>
427
+ </div>
428
+ `}
429
+ </div>
430
+
431
+ ${this.scheduledTasks.length > 0 ? html `
432
+ <div class="scheduled-section">
433
+ <h2 class="section-title">Scheduled Tasks</h2>
434
+ <div class="tasks-grid">
435
+ ${this.scheduledTasks.map(task => this.renderScheduledTaskCard(task))}
436
+ </div>
437
+ </div>
438
+ ` : ''}
439
+ </div>
440
+ `;
441
+ }
442
+ renderTaskCard(task) {
443
+ return html `
444
+ <div class="task-card">
445
+ <div class="task-header">
446
+ <div class="task-name">${task.name || 'Unnamed Task'}</div>
447
+ <div class="task-status ${task.status}">${task.status}</div>
448
+ </div>
449
+
450
+ <div class="task-info">
451
+ <div class="task-info-item">
452
+ <svg class="task-info-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
453
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
454
+ d="M13 10V3L4 14h7v7l9-11h-7z" />
455
+ </svg>
456
+ <span>Run ${task.runCount || 0} times</span>
457
+ </div>
458
+ ${task.buffered ? html `
459
+ <div class="task-info-item">
460
+ <svg class="task-info-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
461
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
462
+ d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" />
463
+ </svg>
464
+ <span>Buffer: ${task.bufferMax || 0}</span>
465
+ </div>
466
+ ` : ''}
467
+ </div>
468
+
469
+ ${task.steps && task.steps.length > 0 ? html `
470
+ <div class="progress-container">
471
+ <div class="progress-label">
472
+ <span>Progress</span>
473
+ <span>${task.currentProgress || 0}%</span>
474
+ </div>
475
+ <div class="progress-bar">
476
+ <div class="progress-fill" style="width: ${task.currentProgress || 0}%"></div>
477
+ </div>
478
+ </div>
479
+
480
+ <div class="steps-container">
481
+ <div class="steps-title">Steps</div>
482
+ ${task.steps.map(step => html `
483
+ <div class="step-item">
484
+ <div class="step-indicator ${step.status}">
485
+ ${step.status === 'completed' ? '✓' :
486
+ step.status === 'active' ? '•' :
487
+ ''}
488
+ </div>
489
+ <div class="step-details">
490
+ <div class="step-name">${step.name}</div>
491
+ ${step.description ? html `
492
+ <div class="step-description">${step.description}</div>
493
+ ` : ''}
494
+ </div>
495
+ <div class="step-percentage">${step.percentage}%</div>
496
+ </div>
497
+ `)}
498
+ </div>
499
+ ` : ''}
500
+ </div>
501
+ `;
502
+ }
503
+ renderScheduledTaskCard(task) {
504
+ return html `
505
+ <div class="task-card">
506
+ <div class="task-header">
507
+ <div class="task-name">${task.name}</div>
508
+ <div class="task-status idle">scheduled</div>
509
+ </div>
510
+
511
+ <div class="schedule-info">
512
+ <svg class="schedule-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
513
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
514
+ d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
515
+ </svg>
516
+ <span>Next run: ${this.formatNextRun(task.nextRun)}</span>
517
+ </div>
518
+
519
+ <div class="schedule-info">
520
+ <svg class="schedule-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
521
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
522
+ d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" />
523
+ </svg>
524
+ <span>Schedule: ${task.schedule}</span>
525
+ </div>
526
+ </div>
527
+ `;
528
+ }
529
+ };
530
+ __decorate([
531
+ property({ type: Object })
532
+ ], TaskbufferDashboard.prototype, "taskManager", void 0);
533
+ __decorate([
534
+ property({ type: Number })
535
+ ], TaskbufferDashboard.prototype, "refreshInterval", void 0);
536
+ __decorate([
537
+ state()
538
+ ], TaskbufferDashboard.prototype, "tasks", void 0);
539
+ __decorate([
540
+ state()
541
+ ], TaskbufferDashboard.prototype, "scheduledTasks", void 0);
542
+ __decorate([
543
+ state()
544
+ ], TaskbufferDashboard.prototype, "isRunning", void 0);
545
+ TaskbufferDashboard = __decorate([
546
+ customElement('taskbuffer-dashboard')
547
+ ], TaskbufferDashboard);
548
+ export { TaskbufferDashboard };
549
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvdGFza2J1ZmZlci1kYXNoYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pIOztHQUVHO0FBRUksSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBb0IsU0FBUSxXQUFXO0lBQTdDOztRQUNMLGFBQWE7UUFFTixnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFHdkMsb0JBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxlQUFlO1FBRXRELGlCQUFpQjtRQUVULFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRzVCLG1CQUFjLEdBQXlCLEVBQUUsQ0FBQztRQUcxQyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBcWdCckMsQ0FBQztJQWpnQkMsU0FBUzthQUNGLFdBQU0sR0FBRztRQUNkLFVBQVUsQ0FBQyxhQUFhO1FBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7c0JBUWUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztpQkFXN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztzQkFXbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7OztzQkFLeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7aUJBZTdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7OztpQkFVeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztzQkFX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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/taskbuffer",
3
- "version": "3.2.0",
3
+ "version": "3.5.0",
4
4
  "private": false,
5
5
  "description": "A flexible task management library supporting TypeScript, allowing for task buffering, scheduling, and execution with dependency management.",
6
6
  "main": "dist_ts/index.js",
@@ -29,20 +29,21 @@
29
29
  },
30
30
  "homepage": "https://code.foss.global/push.rocks/taskbuffer#readme",
31
31
  "dependencies": {
32
- "@push.rocks/lik": "^6.0.5",
32
+ "@design.estate/dees-element": "^2.1.3",
33
+ "@push.rocks/lik": "^6.2.2",
33
34
  "@push.rocks/smartdelay": "^3.0.5",
34
- "@push.rocks/smartlog": "^3.0.3",
35
- "@push.rocks/smartpromise": "^4.0.3",
36
- "@push.rocks/smartrx": "^3.0.6",
37
- "@push.rocks/smarttime": "^4.0.6",
38
- "@push.rocks/smartunique": "^3.0.6"
35
+ "@push.rocks/smartlog": "^3.1.10",
36
+ "@push.rocks/smartpromise": "^4.2.3",
37
+ "@push.rocks/smartrx": "^3.0.10",
38
+ "@push.rocks/smarttime": "^4.1.1",
39
+ "@push.rocks/smartunique": "^3.0.9"
39
40
  },
40
41
  "devDependencies": {
41
- "@git.zone/tsbuild": "^2.1.66",
42
- "@git.zone/tsbundle": "^2.0.8",
43
- "@git.zone/tsrun": "^1.2.44",
44
- "@git.zone/tstest": "^2.3.5",
45
- "@types/node": "^20.8.7"
42
+ "@git.zone/tsbuild": "^3.1.2",
43
+ "@git.zone/tsbundle": "^2.6.3",
44
+ "@git.zone/tsrun": "^2.0.0",
45
+ "@git.zone/tstest": "^3.1.3",
46
+ "@types/node": "^24.10.1"
46
47
  },
47
48
  "files": [
48
49
  "ts/**/*",