@decaf-ts/integrations 0.9.0 → 0.10.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 (97) hide show
  1. package/dist/integrations.cjs +1 -1
  2. package/docker/minio-compose.yml +1 -1
  3. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +33 -0
  4. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
  5. package/lib/cjs/blob/core/BlobStoreService.cjs +176 -1
  6. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
  7. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +32 -0
  8. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
  9. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +31 -0
  10. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -1
  11. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +30 -0
  12. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -1
  13. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +30 -0
  14. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -1
  15. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +31 -0
  16. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
  17. package/lib/cjs/calendar/CalendarService.cjs +393 -0
  18. package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
  19. package/lib/cjs/calendar/index.cjs +21 -0
  20. package/lib/cjs/calendar/index.cjs.map +1 -0
  21. package/lib/cjs/calendar/types.cjs +4 -0
  22. package/lib/cjs/calendar/types.cjs.map +1 -0
  23. package/lib/cjs/calendar/validators/cron.cjs +58 -0
  24. package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
  25. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +39 -0
  26. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
  27. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +47 -0
  28. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
  29. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +4 -0
  30. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
  31. package/lib/cjs/graph/log/GraphRunLogger.cjs +2 -3
  32. package/lib/cjs/graph/log/GraphRunLogger.cjs.map +1 -1
  33. package/lib/cjs/index.cjs +3 -3
  34. package/lib/esm/blob/azure/AzureBlobStoreService.js +33 -0
  35. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
  36. package/lib/esm/blob/core/BlobStoreService.js +176 -1
  37. package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
  38. package/lib/esm/blob/gcp/GcsBlobStoreService.js +32 -0
  39. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
  40. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +31 -0
  41. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -1
  42. package/lib/esm/blob/local/LocalBlobStoreService.js +30 -0
  43. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -1
  44. package/lib/esm/blob/memory/MemoryBlobStoreService.js +30 -0
  45. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -1
  46. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +31 -0
  47. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
  48. package/lib/esm/calendar/CalendarService.js +384 -0
  49. package/lib/esm/calendar/CalendarService.js.map +1 -0
  50. package/lib/esm/calendar/index.js +4 -0
  51. package/lib/esm/calendar/index.js.map +1 -0
  52. package/lib/esm/calendar/types.js +2 -0
  53. package/lib/esm/calendar/types.js.map +1 -0
  54. package/lib/esm/calendar/validators/cron.js +48 -0
  55. package/lib/esm/calendar/validators/cron.js.map +1 -0
  56. package/lib/esm/calendar/writers/CalendarFsWriter.js +31 -0
  57. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
  58. package/lib/esm/calendar/writers/CalenderDownloader.js +39 -0
  59. package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
  60. package/lib/esm/calendar/writers/ICalendarWriter.js +2 -0
  61. package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
  62. package/lib/esm/graph/log/GraphRunLogger.js +2 -3
  63. package/lib/esm/graph/log/GraphRunLogger.js.map +1 -1
  64. package/lib/esm/index.js +3 -3
  65. package/lib/types/blob/azure/AzureBlobStoreService.d.cts +37 -0
  66. package/lib/types/blob/azure/AzureBlobStoreService.d.mts +37 -0
  67. package/lib/types/blob/core/BlobStoreService.d.cts +232 -1
  68. package/lib/types/blob/core/BlobStoreService.d.mts +232 -1
  69. package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +35 -0
  70. package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +35 -0
  71. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.cts +34 -0
  72. package/lib/types/blob/ipfs/IpfsBlobStoreService.d.mts +34 -0
  73. package/lib/types/blob/local/LocalBlobStoreService.d.cts +27 -0
  74. package/lib/types/blob/local/LocalBlobStoreService.d.mts +27 -0
  75. package/lib/types/blob/memory/MemoryBlobStoreService.d.cts +27 -0
  76. package/lib/types/blob/memory/MemoryBlobStoreService.d.mts +27 -0
  77. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +28 -0
  78. package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +28 -0
  79. package/lib/types/calendar/CalendarService.d.cts +40 -0
  80. package/lib/types/calendar/CalendarService.d.mts +40 -0
  81. package/lib/types/calendar/index.d.cts +3 -0
  82. package/lib/types/calendar/index.d.mts +3 -0
  83. package/lib/types/calendar/types.d.cts +64 -0
  84. package/lib/types/calendar/types.d.mts +64 -0
  85. package/lib/types/calendar/validators/cron.d.cts +7 -0
  86. package/lib/types/calendar/validators/cron.d.mts +7 -0
  87. package/lib/types/calendar/writers/CalendarFsWriter.d.cts +6 -0
  88. package/lib/types/calendar/writers/CalendarFsWriter.d.mts +6 -0
  89. package/lib/types/calendar/writers/CalenderDownloader.d.cts +6 -0
  90. package/lib/types/calendar/writers/CalenderDownloader.d.mts +6 -0
  91. package/lib/types/calendar/writers/ICalendarWriter.d.cts +5 -0
  92. package/lib/types/calendar/writers/ICalendarWriter.d.mts +5 -0
  93. package/lib/types/graph/log/GraphRunLogger.d.cts +3 -1
  94. package/lib/types/graph/log/GraphRunLogger.d.mts +3 -1
  95. package/lib/types/index.d.cts +2 -2
  96. package/lib/types/index.d.mts +2 -2
  97. package/package.json +14 -2
@@ -0,0 +1,384 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { service, Service } from "@decaf-ts/core";
11
+ import { CronExpressionParser } from "cron-parser";
12
+ import { OperationKeys, ValidationError } from "@decaf-ts/db-decorators";
13
+ import { inject } from "@decaf-ts/injectable-decorators";
14
+ /**
15
+ * Creates interoperable iCalendar medication reminders.
16
+ *
17
+ * The service has no static Node imports, so the same module can be bundled
18
+ * for browsers. Node-only filesystem behavior is loaded dynamically.
19
+ */
20
+ let CalendarService = class CalendarService extends Service {
21
+ async createMedicationReminder(options, ...args) {
22
+ const { log, ctx } = (await this.logCtx(args, OperationKeys.CREATE, true)).for(this.createMedicationReminder);
23
+ this.validateOptions(options);
24
+ const start = options.start ? new Date(options.start) : new Date();
25
+ const timezone = options.timezone ??
26
+ Intl.DateTimeFormat().resolvedOptions().timeZone ??
27
+ "UTC";
28
+ const durationMinutes = options.durationMinutes ?? 15;
29
+ const alarmMinutesBefore = options.alarmMinutesBefore ?? 10;
30
+ const uid = options.uid ?? this.createUid();
31
+ const recurrence = this.createRecurrence(options, start, timezone, ctx);
32
+ const firstOccurrence = recurrence.rdates?.[0] ??
33
+ this.getFirstOccurrence(options.cron, start, timezone);
34
+ const end = new Date(firstOccurrence.getTime() + durationMinutes * 60_000);
35
+ const lines = [
36
+ "BEGIN:VCALENDAR",
37
+ "VERSION:2.0",
38
+ "CALSCALE:GREGORIAN",
39
+ "PRODID:-//PTP//Calendar Service//EN",
40
+ "METHOD:PUBLISH",
41
+ "BEGIN:VEVENT",
42
+ `UID:${this.escapeProperty(uid)}`,
43
+ `DTSTAMP:${this.formatUtcDate(new Date())}`,
44
+ `DTSTART;TZID=${this.escapeParameter(timezone)}:${this.formatLocalDate(firstOccurrence, timezone)}`,
45
+ `DTEND;TZID=${this.escapeParameter(timezone)}:${this.formatLocalDate(end, timezone)}`,
46
+ `SUMMARY:${this.escapeText(options.title)}`,
47
+ ];
48
+ if (options.description) {
49
+ lines.push(`DESCRIPTION:${this.escapeText(options.description)}`);
50
+ }
51
+ if (options.location) {
52
+ lines.push(`LOCATION:${this.escapeText(options.location)}`);
53
+ }
54
+ if (recurrence.rrule) {
55
+ lines.push(`RRULE:${recurrence.rrule}`);
56
+ }
57
+ if (recurrence.rdates && recurrence.rdates.length > 1) {
58
+ // DTSTART already represents the first occurrence.
59
+ const remaining = recurrence.rdates.slice(1);
60
+ lines.push(...this.createFoldedRDateLines(remaining, timezone));
61
+ }
62
+ if (options.organizerEmail) {
63
+ lines.push(`ORGANIZER:mailto:${this.escapeProperty(options.organizerEmail)}`);
64
+ }
65
+ if (options.attendeeEmail) {
66
+ lines.push([
67
+ "ATTENDEE",
68
+ "CUTYPE=INDIVIDUAL",
69
+ "ROLE=REQ-PARTICIPANT",
70
+ "PARTSTAT=NEEDS-ACTION",
71
+ "RSVP=TRUE",
72
+ ].join(";") + `:mailto:${this.escapeProperty(options.attendeeEmail)}`);
73
+ }
74
+ lines.push("BEGIN:VALARM", "ACTION:DISPLAY", `TRIGGER:-PT${alarmMinutesBefore}M`, `DESCRIPTION:${this.escapeText(options.title)}`, "END:VALARM", "END:VEVENT", "END:VCALENDAR");
75
+ const content = this.foldLines(lines).join("\r\n") + "\r\n";
76
+ const filename = this.createFilename(options.title);
77
+ log.verbose(`Calendar event created: ${filename}`);
78
+ log.debug(`Content for ${filename}: ${content}`);
79
+ return {
80
+ filename,
81
+ content,
82
+ mimeType: "text/calendar",
83
+ bytes: new TextEncoder().encode(content),
84
+ };
85
+ }
86
+ async createAndStoreReminder(options, ...args) {
87
+ const { ctx } = (await this.logCtx(args, OperationKeys.CREATE, true)).for(this.createAndStoreReminder);
88
+ const file = await this.createMedicationReminder(options, ctx);
89
+ await this.writer.write(file, ctx);
90
+ }
91
+ createRecurrence(options, start, timezone, ctx) {
92
+ const parsed = this.parseSimpleCron(options.cron, ctx);
93
+ const until = options.until ? this.formatUtcDate(options.until) : undefined;
94
+ if (parsed) {
95
+ const rrule = this.convertSimpleCronToRRule(parsed, until);
96
+ if (rrule) {
97
+ return { rrule };
98
+ }
99
+ }
100
+ return {
101
+ rdates: this.expandCronDates(options.cron, start, timezone, options.maxOccurrences ?? 365, options.until),
102
+ };
103
+ }
104
+ /**
105
+ * Converts the commonly needed medication schedules.
106
+ *
107
+ * Unsupported cron shapes fall back to explicit RDATE occurrences.
108
+ */
109
+ convertSimpleCronToRRule(cron, until) {
110
+ const suffix = until ? `;UNTIL=${until}` : "";
111
+ const minutes = cron.minute.join(",");
112
+ const hours = cron.hour.join(",");
113
+ const timeParts = `BYHOUR=${hours};BYMINUTE=${minutes};BYSECOND=0`;
114
+ const everyDay = cron.dayOfMonth === null &&
115
+ cron.month === null &&
116
+ cron.dayOfWeek === null;
117
+ if (everyDay) {
118
+ return `FREQ=DAILY;${timeParts}${suffix}`;
119
+ }
120
+ const weekly = cron.dayOfMonth === null &&
121
+ cron.month === null &&
122
+ cron.dayOfWeek !== null;
123
+ if (weekly) {
124
+ const weekdays = cron
125
+ .dayOfWeek.map((day) => this.weekdayToIcs(day))
126
+ .join(",");
127
+ return `FREQ=WEEKLY;BYDAY=${weekdays};${timeParts}${suffix}`;
128
+ }
129
+ const monthly = cron.dayOfMonth !== null &&
130
+ cron.month === null &&
131
+ cron.dayOfWeek === null;
132
+ if (monthly) {
133
+ return (`FREQ=MONTHLY;BYMONTHDAY=${cron.dayOfMonth.join(",")};` +
134
+ `${timeParts}${suffix}`);
135
+ }
136
+ const yearly = cron.dayOfMonth !== null &&
137
+ cron.month !== null &&
138
+ cron.dayOfWeek === null;
139
+ if (yearly) {
140
+ return (`FREQ=YEARLY;BYMONTH=${cron.month.join(",")};` +
141
+ `BYMONTHDAY=${cron.dayOfMonth.join(",")};` +
142
+ `${timeParts}${suffix}`);
143
+ }
144
+ // Cron day-of-month/day-of-week combinations have OR-like semantics
145
+ // in many implementations and cannot be represented safely as one RRULE.
146
+ return undefined;
147
+ }
148
+ parseSimpleCron(expression, ctx) {
149
+ const { log } = this.logCtx([ctx], this.parseSimpleCron);
150
+ const fields = expression.trim().split(/\s+/);
151
+ if (fields.length !== 5) {
152
+ return undefined;
153
+ }
154
+ const [minute, hour, dayOfMonth, month, dayOfWeek] = fields;
155
+ try {
156
+ return {
157
+ minute: this.parseCronField(minute, 0, 59, ctx),
158
+ hour: this.parseCronField(hour, 0, 23, ctx),
159
+ dayOfMonth: dayOfMonth === "*"
160
+ ? null
161
+ : this.parseCronField(dayOfMonth, 1, 31, ctx),
162
+ month: month === "*" ? null : this.parseCronField(month, 1, 12, ctx),
163
+ dayOfWeek: dayOfWeek === "*"
164
+ ? null
165
+ : this.parseCronField(dayOfWeek, 0, 7, ctx).map((value) => value === 7 ? 0 : value),
166
+ };
167
+ }
168
+ catch {
169
+ log.debug(`Failed to generate simple cron expression for ${expression}`);
170
+ return undefined;
171
+ }
172
+ }
173
+ parseCronField(field, minimum, maximum,
174
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
175
+ ctx) {
176
+ const values = new Set();
177
+ for (const segment of field.split(",")) {
178
+ const [rangeExpression, stepExpression] = segment.split("/");
179
+ const step = stepExpression === undefined ? 1 : Number.parseInt(stepExpression, 10);
180
+ if (!Number.isInteger(step) || step <= 0) {
181
+ throw new ValidationError(`Invalid cron step: ${segment}`);
182
+ }
183
+ let start;
184
+ let end;
185
+ if (rangeExpression === "*") {
186
+ start = minimum;
187
+ end = maximum;
188
+ }
189
+ else if (rangeExpression.includes("-")) {
190
+ const bounds = rangeExpression.split("-");
191
+ if (bounds.length !== 2) {
192
+ throw new ValidationError(`Invalid cron range: ${segment}`);
193
+ }
194
+ start = Number.parseInt(bounds[0], 10);
195
+ end = Number.parseInt(bounds[1], 10);
196
+ }
197
+ else {
198
+ start = Number.parseInt(rangeExpression, 10);
199
+ end = start;
200
+ }
201
+ if (!Number.isInteger(start) ||
202
+ !Number.isInteger(end) ||
203
+ start < minimum ||
204
+ end > maximum ||
205
+ start > end) {
206
+ throw new ValidationError(`Invalid cron field: ${segment}`);
207
+ }
208
+ for (let value = start; value <= end; value += step) {
209
+ values.add(value);
210
+ }
211
+ }
212
+ return [...values].sort((a, b) => a - b);
213
+ }
214
+ expandCronDates(cron, start, timezone, maximum, until) {
215
+ const interval = CronExpressionParser.parse(cron, {
216
+ currentDate: start,
217
+ tz: timezone,
218
+ });
219
+ const occurrences = [];
220
+ while (occurrences.length < maximum) {
221
+ const next = interval.next().toDate();
222
+ if (until && next > until) {
223
+ break;
224
+ }
225
+ occurrences.push(next);
226
+ }
227
+ if (occurrences.length === 0) {
228
+ throw new Error("The cron expression produced no occurrences in the requested range.");
229
+ }
230
+ return occurrences;
231
+ }
232
+ getFirstOccurrence(cron, start, timezone) {
233
+ const interval = CronExpressionParser.parse(cron, {
234
+ currentDate: start,
235
+ tz: timezone,
236
+ });
237
+ return interval.next().toDate();
238
+ }
239
+ createFoldedRDateLines(dates, timezone) {
240
+ const prefix = `RDATE;TZID=${this.escapeParameter(timezone)}:`;
241
+ const values = dates.map((date) => this.formatLocalDate(date, timezone));
242
+ // Keep each logical property reasonably sized before RFC line folding.
243
+ const result = [];
244
+ let current = prefix;
245
+ for (const value of values) {
246
+ const candidate = current === prefix ? `${current}${value}` : `${current},${value}`;
247
+ if (new TextEncoder().encode(candidate).length > 700) {
248
+ result.push(current);
249
+ current = `${prefix}${value}`;
250
+ }
251
+ else {
252
+ current = candidate;
253
+ }
254
+ }
255
+ if (current !== prefix) {
256
+ result.push(current);
257
+ }
258
+ return result;
259
+ }
260
+ formatUtcDate(date) {
261
+ return date
262
+ .toISOString()
263
+ .replace(/[-:]/g, "")
264
+ .replace(/\.\d{3}Z$/, "Z");
265
+ }
266
+ formatLocalDate(date, timezone) {
267
+ const parts = new Intl.DateTimeFormat("en-CA", {
268
+ timeZone: timezone,
269
+ year: "numeric",
270
+ month: "2-digit",
271
+ day: "2-digit",
272
+ hour: "2-digit",
273
+ minute: "2-digit",
274
+ second: "2-digit",
275
+ hourCycle: "h23",
276
+ }).formatToParts(date);
277
+ const values = Object.fromEntries(parts
278
+ .filter((part) => part.type !== "literal")
279
+ .map((part) => [part.type, part.value]));
280
+ return (`${values.year}${values.month}${values.day}` +
281
+ `T${values.hour}${values.minute}${values.second}`);
282
+ }
283
+ foldLines(lines) {
284
+ return lines.flatMap((line) => this.foldLine(line));
285
+ }
286
+ /**
287
+ * RFC 5545 content lines should be folded at 75 octets.
288
+ */
289
+ foldLine(line) {
290
+ const encoder = new TextEncoder();
291
+ const result = [];
292
+ let remaining = line;
293
+ let first = true;
294
+ while (encoder.encode(first ? remaining : ` ${remaining}`).length > 75) {
295
+ const prefix = first ? "" : " ";
296
+ let chunk = "";
297
+ let consumed = 0;
298
+ for (const character of remaining) {
299
+ const candidate = `${prefix}${chunk}${character}`;
300
+ if (encoder.encode(candidate).length > 75) {
301
+ break;
302
+ }
303
+ chunk += character;
304
+ consumed += character.length;
305
+ }
306
+ if (!chunk) {
307
+ throw new Error("Unable to fold iCalendar content line.");
308
+ }
309
+ result.push(`${prefix}${chunk}`);
310
+ remaining = remaining.slice(consumed);
311
+ first = false;
312
+ }
313
+ result.push(first ? remaining : ` ${remaining}`);
314
+ return result;
315
+ }
316
+ escapeText(value) {
317
+ return value
318
+ .replace(/\\/g, "\\\\")
319
+ .replace(/\r?\n/g, "\\n")
320
+ .replace(/;/g, "\\;")
321
+ .replace(/,/g, "\\,");
322
+ }
323
+ escapeProperty(value) {
324
+ return value.replace(/[\r\n]/g, "");
325
+ }
326
+ escapeParameter(value) {
327
+ if (!/^[A-Za-z0-9_+./-]+$/.test(value)) {
328
+ throw new ValidationError(`Unsafe iCalendar parameter: ${value}`);
329
+ }
330
+ return value;
331
+ }
332
+ weekdayToIcs(day) {
333
+ const days = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"];
334
+ const result = days[day];
335
+ if (!result) {
336
+ throw new ValidationError(`Invalid weekday: ${day}`);
337
+ }
338
+ return result;
339
+ }
340
+ createUid() {
341
+ const random = globalThis.crypto?.randomUUID?.() ??
342
+ `${Date.now()}-${Math.random().toString(16).slice(2)}`;
343
+ return `${random}@calendar-service`;
344
+ }
345
+ createFilename(title) {
346
+ const safeTitle = title
347
+ .normalize("NFKD")
348
+ .replace(/[^\w.-]+/g, "-")
349
+ .replace(/^-+|-+$/g, "")
350
+ .toLowerCase();
351
+ return `${safeTitle || "calendar-reminder"}.ics`;
352
+ }
353
+ validateOptions(options) {
354
+ if (!options.cron?.trim()) {
355
+ throw new ValidationError("A cron expression is required.");
356
+ }
357
+ if (!options.title?.trim()) {
358
+ throw new ValidationError("A calendar title is required.");
359
+ }
360
+ if (options.durationMinutes !== undefined &&
361
+ (!Number.isFinite(options.durationMinutes) ||
362
+ options.durationMinutes <= 0)) {
363
+ throw new ValidationError("durationMinutes must be greater than zero.");
364
+ }
365
+ if (options.alarmMinutesBefore !== undefined &&
366
+ (!Number.isInteger(options.alarmMinutesBefore) ||
367
+ options.alarmMinutesBefore < 0)) {
368
+ throw new ValidationError("alarmMinutesBefore must be a non-negative integer.");
369
+ }
370
+ if (options.maxOccurrences !== undefined &&
371
+ (!Number.isInteger(options.maxOccurrences) || options.maxOccurrences <= 0)) {
372
+ throw new ValidationError("maxOccurrences must be a positive integer.");
373
+ }
374
+ }
375
+ };
376
+ __decorate([
377
+ inject('"calendar-writer"'),
378
+ __metadata("design:type", Object)
379
+ ], CalendarService.prototype, "writer", void 0);
380
+ CalendarService = __decorate([
381
+ service()
382
+ ], CalendarService);
383
+ export { CalendarService };
384
+ //# sourceMappingURL=CalendarService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarService.js","sourceRoot":"","sources":["../../../src/calendar/CalendarService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./validators/cron.js";
2
+ export * from "./types.js";
3
+ export * from "./CalendarService.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calendar/index.ts"],"names":[],"mappings":"AAAA,qCAAkC;AAClC,2BAAwB;AACxB,qCAAkC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/calendar/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { apply, Metadata, propMetadata } from "@decaf-ts/decoration";
11
+ import { innerValidationDecorator, validator, Validator, } from "@decaf-ts/decorator-validation";
12
+ import { CronExpressionParser } from "cron-parser";
13
+ const CRON_VALIDATION_KEY = "cron";
14
+ export const CRON_VALIDATION_ERROR_MESSAGE = "Not a valid cron expression";
15
+ let CronValidator = class CronValidator extends Validator {
16
+ constructor(message = CRON_VALIDATION_ERROR_MESSAGE) {
17
+ super(message, "string");
18
+ }
19
+ hasErrors(value, options) {
20
+ if (value === undefined || value === null)
21
+ return;
22
+ const cron = value.trim();
23
+ if (!cron) {
24
+ return this.getMessage(options?.message || this.message);
25
+ }
26
+ try {
27
+ CronExpressionParser.parse(cron);
28
+ return;
29
+ }
30
+ catch {
31
+ return this.getMessage(options?.message || this.message);
32
+ }
33
+ }
34
+ };
35
+ CronValidator = __decorate([
36
+ validator(CRON_VALIDATION_KEY),
37
+ __metadata("design:paramtypes", [String])
38
+ ], CronValidator);
39
+ export { CronValidator };
40
+ export const cron = (message = CRON_VALIDATION_ERROR_MESSAGE) => {
41
+ return function cron(target, propKey) {
42
+ return apply(propMetadata(Metadata.key(CRON_VALIDATION_KEY, propKey), message), innerValidationDecorator(cron, CRON_VALIDATION_KEY, {
43
+ message,
44
+ async: false,
45
+ }))(target, propKey);
46
+ };
47
+ };
48
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../../src/calendar/validators/cron.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,SAAS,EACT,SAAS,GAEV,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAGpE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAC1C,YAAY,UAAkB,6BAA6B;QACzD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,OAA0B;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAA;AArBY,aAAa;IADzB,SAAS,CAAC,mBAAmB,CAAC;;GAClB,aAAa,CAqBzB;;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,UAAkB,6BAA6B,EAAE,EAAE;IACtE,OAAO,SAAS,IAAI,CAAC,MAAc,EAAE,OAAa;QAChD,OAAO,KAAK,CACV,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EACjE,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,EAAE;YAClD,OAAO;YACP,KAAK,EAAE,KAAK;SACb,CAAC,CACH,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,31 @@
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 { InternalError } from "@decaf-ts/db-decorators";
8
+ import { injectable } from "@decaf-ts/injectable-decorators";
9
+ import { writeFile } from "node:fs/promises";
10
+ import { statfsSync } from "node:fs";
11
+ import { join } from "path";
12
+ let FsCalenderWriter = class FsCalenderWriter {
13
+ async write(file, ctx) {
14
+ if (typeof process === "undefined" || !process.versions?.node) {
15
+ throw new InternalError("FsCalendarWriter is only available in Node");
16
+ }
17
+ let p = process.env.CALENDAR_PATH || "";
18
+ if (!p)
19
+ throw new InternalError(`No calendar storage path defined`);
20
+ p = join(p, file.filename);
21
+ if (!statfsSync(p))
22
+ ctx.logger.for(this.write).info(`Writing calendar file to ${p}`);
23
+ await writeFile(p, file.bytes);
24
+ return file;
25
+ }
26
+ };
27
+ FsCalenderWriter = __decorate([
28
+ injectable("calendar-writer")
29
+ ], FsCalenderWriter);
30
+ export { FsCalenderWriter };
31
+ //# sourceMappingURL=CalendarFsWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarFsWriter.js","sourceRoot":"","sources":["../../../../src/calendar/writers/CalendarFsWriter.ts"],"names":[],"mappings":";;;;;;AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,KAAK,CAAC,KAAK,CAAC,IAAkB,EAAE,GAAiB;QAC/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;QAExC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,kCAAkC,CAAC,CAAC;QACpE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAhBY,gBAAgB;IAD5B,UAAU,CAAC,iBAAiB,CAAC;GACjB,gBAAgB,CAgB5B"}
@@ -0,0 +1,39 @@
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 { InternalError } from "@decaf-ts/db-decorators";
8
+ import { injectable } from "@decaf-ts/injectable-decorators";
9
+ let DownloadCalenderWriter = class DownloadCalenderWriter {
10
+ async write(file, ctx) {
11
+ if (typeof globalThis.window === "undefined" ||
12
+ typeof globalThis.document === "undefined") {
13
+ throw new InternalError("Calendar Download is only available in a browser.");
14
+ }
15
+ const log = ctx.logger.for(this.write);
16
+ const blob = new Blob([file.content], {
17
+ type: `${file.mimeType};charset=utf-8`,
18
+ });
19
+ const objectUrl = URL.createObjectURL(blob);
20
+ log.debug(`Downloadable blob at ${objectUrl}`);
21
+ const anchor = globalThis.document.createElement("a");
22
+ anchor.href = objectUrl;
23
+ anchor.download = file.filename;
24
+ anchor.style.display = "none";
25
+ globalThis.document.body.appendChild(anchor);
26
+ anchor.click();
27
+ anchor.remove();
28
+ globalThis.window.setTimeout(() => {
29
+ URL.revokeObjectURL(objectUrl);
30
+ log.debug(`Downloadable blob at ${objectUrl} expired`);
31
+ }, 1_000);
32
+ return file;
33
+ }
34
+ };
35
+ DownloadCalenderWriter = __decorate([
36
+ injectable("calendar-writer")
37
+ ], DownloadCalenderWriter);
38
+ export { DownloadCalenderWriter };
39
+ //# sourceMappingURL=CalenderDownloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalenderDownloader.js","sourceRoot":"","sources":["../../../../src/calendar/writers/CalenderDownloader.ts"],"names":[],"mappings":";;;;;;AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGtD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,KAAK,CAAC,KAAK,CAAC,IAAkB,EAAE,GAAY;QAC1C,IACE,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW;YACjD,OAAQ,UAAkB,CAAC,QAAQ,KAAK,WAAW,EACnD,CAAC;YACD,MAAM,IAAI,aAAa,CACrB,mDAAmD,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACpC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,gBAAgB;SACvC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE5C,GAAG,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAI,UAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE/D,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;QACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAE7B,UAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,EAAE,CAAC;QAEf,UAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACzC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,wBAAwB,SAAS,UAAU,CAAC,CAAC;QACzD,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AApCY,sBAAsB;IADlC,UAAU,CAAC,iBAAiB,CAAC;GACjB,sBAAsB,CAoClC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ICalendarWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICalendarWriter.js","sourceRoot":"","sources":["../../../../src/calendar/writers/ICalendarWriter.ts"],"names":[],"mappings":""}
@@ -113,9 +113,8 @@ export class GraphRunLogger {
113
113
  debug(msg, meta) {
114
114
  this.emit("debug", msg, meta);
115
115
  }
116
- /** @inheritdoc */
117
- action(action, message, code, ...rest) {
118
- this.inner.action(action, message, code, ...rest);
116
+ action(action, codeOrMeta, meta) {
117
+ this.inner.action(action, codeOrMeta, meta);
119
118
  }
120
119
  /** @inheritdoc */
121
120
  setConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRunLogger.js","sourceRoot":"","sources":["../../../../src/graph/log/GraphRunLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AA0BvC;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IAIzB,YAAY,OAA8B;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CACtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAiB,CAC9C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,OAA8B;QACpD,OAAO;YACL,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM;YAC3C,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU;YACnD,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK;YACzC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC/C,CAAC;IACJ,CAAC;IAED,+EAA+E;IACvE,IAAI,CAAC,KAAgC,EAAE,GAAe,EAAE,IAAc;QAC5E,MAAM,UAAU,GACd,OAAO,GAAG,KAAK,QAAQ;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,KAAK,GAAqB;YAC9B,KAAK;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU;YACvC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI;YACnC,OAAO,EAAE,IAAI;SACd,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,uBAAuB,CAAC,aAAa;YAC3C,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,kDAAkD;QACpD,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAGV;YACF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACxC,CAAC;QACF,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,GAAe,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAuB,EAAE,KAAuB,EAAE,IAAc;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAiB,EAAG,KAAiB,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB;IAClB,QAAQ,CACN,GAAuB,EACvB,KAAuB,EACvB,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAiB,EAAG,KAAiB,IAAI,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAe,EAAE,SAA4B,EAAE,IAAc;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAe,EAAE,IAAc;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAe,EAAE,SAA4B,EAAE,IAAc;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,GAAe,EAAE,IAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAuB,EAAE,KAAuB,EAAE,IAAc;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAiB,EAAG,KAAiB,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,GAAe,EAAE,IAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,GAAe,EAAE,IAAc;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,MAAc,EAAE,OAAmB,EAAE,IAAa,EAAE,GAAG,IAAW;QACvE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB;IAClB,SAAS;QACP,sEAAsE;IACxE,CAAC;IAED,kBAAkB;IAClB,GAAG,CACD,OAKgB,EAChB,OAAsB;IACtB,6DAA6D;IAC7D,GAAG,KAAY;QAEf,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,KAAK;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"GraphRunLogger.js","sourceRoot":"","sources":["../../../../src/graph/log/GraphRunLogger.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -6,8 +6,8 @@
6
6
  export * from "./utils.js";
7
7
  export * from "./namespaces/index.js";
8
8
  export * from "./feature-flags/index.js";
9
- export const VERSION = "0.7.0";
10
- export const COMMIT = "b7e65cb";
11
- export const FULL_VERSION = "0.7.0-b7e65cb";
9
+ export const VERSION = "0.9.0";
10
+ export const COMMIT = "1d7b1fb";
11
+ export const FULL_VERSION = "0.9.0-1d7b1fb";
12
12
  export const PACKAGE_NAME = "@decaf-ts/integrations";
13
13
  //# sourceMappingURL=index.js.map