openworkflow 0.4.0 → 0.4.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 (133) hide show
  1. package/README.md +17 -11
  2. package/dist/backend-sqlite/backend.d.ts +38 -0
  3. package/dist/backend-sqlite/backend.d.ts.map +1 -0
  4. package/dist/backend-sqlite/backend.js +628 -0
  5. package/dist/backend-sqlite/backend.js.map +1 -0
  6. package/dist/backend-sqlite/index.d.ts +2 -0
  7. package/dist/backend-sqlite/index.d.ts.map +1 -0
  8. package/dist/backend-sqlite/index.js +2 -0
  9. package/dist/backend-sqlite/index.js.map +1 -0
  10. package/dist/backend-sqlite/sqlite.d.ts +45 -0
  11. package/dist/backend-sqlite/sqlite.d.ts.map +1 -0
  12. package/dist/backend-sqlite/sqlite.js +229 -0
  13. package/dist/backend-sqlite/sqlite.js.map +1 -0
  14. package/dist/config/config.d.ts +102 -0
  15. package/dist/config/config.d.ts.map +1 -0
  16. package/dist/config/config.js +29 -0
  17. package/dist/config/config.js.map +1 -0
  18. package/dist/config/index.d.ts +3 -0
  19. package/dist/config/index.d.ts.map +1 -0
  20. package/dist/config/index.js +2 -0
  21. package/dist/config/index.js.map +1 -0
  22. package/dist/config.d.ts +28 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +41 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/core/backend-test-suite.d.ts +22 -0
  27. package/dist/core/backend-test-suite.d.ts.map +1 -0
  28. package/dist/core/backend-test-suite.js +960 -0
  29. package/dist/core/backend-test-suite.js.map +1 -0
  30. package/dist/core/backend.d.ts +103 -0
  31. package/dist/core/backend.d.ts.map +1 -0
  32. package/dist/core/backend.js +2 -0
  33. package/dist/core/backend.js.map +1 -0
  34. package/dist/core/backend.testsuite.d.ts +21 -0
  35. package/dist/core/backend.testsuite.d.ts.map +1 -0
  36. package/dist/core/backend.testsuite.js +958 -0
  37. package/dist/core/backend.testsuite.js.map +1 -0
  38. package/dist/{duration.d.ts → core/duration.d.ts} +2 -1
  39. package/dist/core/duration.d.ts.map +1 -0
  40. package/dist/{duration.js → core/duration.js} +6 -5
  41. package/dist/core/duration.js.map +1 -0
  42. package/dist/core/duration.test.d.ts +2 -0
  43. package/dist/core/duration.test.d.ts.map +1 -0
  44. package/dist/core/duration.test.js +264 -0
  45. package/dist/core/duration.test.js.map +1 -0
  46. package/dist/core/json.d.ts +5 -0
  47. package/dist/core/json.d.ts.map +1 -0
  48. package/dist/core/json.js +2 -0
  49. package/dist/core/json.js.map +1 -0
  50. package/dist/core/result.d.ts +12 -0
  51. package/dist/core/result.d.ts.map +1 -0
  52. package/dist/core/result.js +7 -0
  53. package/dist/core/result.js.map +1 -0
  54. package/dist/core/result.test.d.ts +2 -0
  55. package/dist/core/result.test.d.ts.map +1 -0
  56. package/dist/core/result.test.js +11 -0
  57. package/dist/core/result.test.js.map +1 -0
  58. package/dist/core/retry.d.ts +16 -0
  59. package/dist/core/retry.d.ts.map +1 -0
  60. package/dist/{backend.js → core/retry.js} +1 -3
  61. package/dist/core/retry.js.map +1 -0
  62. package/dist/core/retry.test.d.ts +2 -0
  63. package/dist/core/retry.test.d.ts.map +1 -0
  64. package/dist/core/retry.test.js +36 -0
  65. package/dist/core/retry.test.js.map +1 -0
  66. package/dist/core/schema.d.ts.map +1 -0
  67. package/dist/core/schema.js.map +1 -0
  68. package/dist/core/step.d.ts +120 -0
  69. package/dist/core/step.d.ts.map +1 -0
  70. package/dist/core/step.js +101 -0
  71. package/dist/core/step.js.map +1 -0
  72. package/dist/core/step.test.d.ts +2 -0
  73. package/dist/core/step.test.d.ts.map +1 -0
  74. package/dist/core/step.test.js +340 -0
  75. package/dist/core/step.test.js.map +1 -0
  76. package/dist/core/workflow.d.ts +108 -0
  77. package/dist/core/workflow.d.ts.map +1 -0
  78. package/dist/core/workflow.js +79 -0
  79. package/dist/core/workflow.js.map +1 -0
  80. package/dist/core/workflow.test.d.ts +2 -0
  81. package/dist/core/workflow.test.d.ts.map +1 -0
  82. package/dist/core/workflow.test.js +216 -0
  83. package/dist/core/workflow.test.js.map +1 -0
  84. package/dist/execution/execution.d.ts +91 -0
  85. package/dist/execution/execution.d.ts.map +1 -0
  86. package/dist/execution/execution.js +188 -0
  87. package/dist/execution/execution.js.map +1 -0
  88. package/dist/execution/execution.test.d.ts +2 -0
  89. package/dist/execution/execution.test.d.ts.map +1 -0
  90. package/dist/execution/execution.test.js +382 -0
  91. package/dist/execution/execution.test.js.map +1 -0
  92. package/dist/global.d.ts +62 -0
  93. package/dist/global.d.ts.map +1 -0
  94. package/dist/global.js +78 -0
  95. package/dist/global.js.map +1 -0
  96. package/dist/index.d.ts +9 -5
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +4 -3
  99. package/dist/index.js.map +1 -1
  100. package/dist/sdk/sdk.d.ts +182 -0
  101. package/dist/sdk/sdk.d.ts.map +1 -0
  102. package/dist/sdk/sdk.js +208 -0
  103. package/dist/sdk/sdk.js.map +1 -0
  104. package/dist/sdk/sdk.test.d.ts +2 -0
  105. package/dist/sdk/sdk.test.d.ts.map +1 -0
  106. package/dist/sdk/sdk.test.js +195 -0
  107. package/dist/sdk/sdk.test.js.map +1 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/dist/{worker.d.ts → worker/worker.d.ts} +3 -3
  110. package/dist/worker/worker.d.ts.map +1 -0
  111. package/dist/worker/worker.js +208 -0
  112. package/dist/worker/worker.js.map +1 -0
  113. package/dist/worker/worker.test.d.ts +2 -0
  114. package/dist/worker/worker.test.d.ts.map +1 -0
  115. package/dist/worker/worker.test.js +786 -0
  116. package/dist/worker/worker.test.js.map +1 -0
  117. package/package.json +6 -6
  118. package/dist/backend.d.ts +0 -173
  119. package/dist/backend.d.ts.map +0 -1
  120. package/dist/backend.js.map +0 -1
  121. package/dist/client.d.ts +0 -153
  122. package/dist/client.d.ts.map +0 -1
  123. package/dist/client.js +0 -151
  124. package/dist/client.js.map +0 -1
  125. package/dist/duration.d.ts.map +0 -1
  126. package/dist/duration.js.map +0 -1
  127. package/dist/schema.d.ts.map +0 -1
  128. package/dist/schema.js.map +0 -1
  129. package/dist/worker.d.ts.map +0 -1
  130. package/dist/worker.js +0 -384
  131. package/dist/worker.js.map +0 -1
  132. /package/dist/{schema.d.ts → core/schema.d.ts} +0 -0
  133. /package/dist/{schema.js → core/schema.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.testsuite.js","sourceRoot":"","sources":["../../core/backend.testsuite.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Result } from "./result.js";
1
2
  type Years = "years" | "year" | "yrs" | "yr" | "y";
2
3
  type Months = "months" | "month" | "mo";
3
4
  type Weeks = "weeks" | "week" | "w";
@@ -14,6 +15,6 @@ export type DurationString = `${number}` | `${number}${UnitAnyCase}` | `${number
14
15
  * - short units: "1ms", "5s", "30m", "2h", "7d", "3w", "1y"
15
16
  * - long units: "1 millisecond", "5 seconds", "30 minutes", "2 hours", "7 days", "3 weeks", "1 year"
16
17
  */
17
- export declare function parseDuration(str: DurationString): number;
18
+ export declare function parseDuration(str: DurationString): Result<number, Error>;
18
19
  export {};
19
20
  //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../core/duration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,KAAK,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;AACxC,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC;AACpC,KAAK,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;AACjC,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,KAAK,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;AAC3D,KAAK,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;AAC3D,KAAK,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;AAC7E,KAAK,IAAI,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,IAAI,GACJ,KAAK,GACL,OAAO,GACP,OAAO,GACP,YAAY,CAAC;AACjB,KAAK,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GACtB,GAAG,MAAM,EAAE,GACX,GAAG,MAAM,GAAG,WAAW,EAAE,GACzB,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;AAE/B;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAiExE"}
@@ -1,3 +1,4 @@
1
+ import { ok, err } from "./result.js";
1
2
  /**
2
3
  * Parse a duration string into milliseconds. Exmaples:
3
4
  * - short units: "1ms", "5s", "30m", "2h", "7d", "3w", "1y"
@@ -5,14 +6,14 @@
5
6
  */
6
7
  export function parseDuration(str) {
7
8
  if (typeof str !== "string") {
8
- throw new TypeError("Invalid duration format: expected a string but received " + typeof str);
9
+ return err(new TypeError("Invalid duration format: expected a string but received " + typeof str));
9
10
  }
10
11
  if (str.length === 0) {
11
- throw new Error('Invalid duration format: ""');
12
+ return err(new Error('Invalid duration format: ""'));
12
13
  }
13
14
  const match = /^(-?\.?\d+(?:\.\d+)?)\s*([a-z]+)?$/i.exec(str);
14
15
  if (!match?.[1]) {
15
- throw new Error(`Invalid duration format: "${str}"`);
16
+ return err(new Error(`Invalid duration format: "${str}"`));
16
17
  }
17
18
  const numValue = Number.parseFloat(match[1]);
18
19
  const unit = match[2]?.toLowerCase() ?? "ms"; // default to ms if not provided
@@ -54,8 +55,8 @@ export function parseDuration(str) {
54
55
  };
55
56
  const multiplier = multipliers[unit];
56
57
  if (multiplier === undefined) {
57
- throw new Error(`Invalid duration format: "${str}"`);
58
+ return err(new Error(`Invalid duration format: "${str}"`));
58
59
  }
59
- return numValue * multiplier;
60
+ return ok(numValue * multiplier);
60
61
  }
61
62
  //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../core/duration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAyBtC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAmB;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CACR,IAAI,SAAS,CACX,0DAA0D,GAAG,OAAO,GAAG,CACxE,CACF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAG,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC,gCAAgC;IAE9E,MAAM,WAAW,GAA2B;QAC1C,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,IAAI;QACP,MAAM,EAAE,EAAE,GAAG,IAAI;QACjB,OAAO,EAAE,EAAE,GAAG,IAAI;QAClB,GAAG,EAAE,EAAE,GAAG,IAAI;QACd,IAAI,EAAE,EAAE,GAAG,IAAI;QACf,CAAC,EAAE,EAAE,GAAG,IAAI;QACZ,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACpB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QAClB,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACnB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACjB,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QACxB,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QACzB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QACtB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAC9B,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAC1B,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;QACrB,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;QACrB,EAAE,EAAE,cAAc;QAClB,GAAG,EAAE,cAAc;QACnB,CAAC,EAAE,cAAc;KAClB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=duration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.test.d.ts","sourceRoot":"","sources":["../../core/duration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,264 @@
1
+ import { parseDuration } from "./duration.js";
2
+ import { ok, err } from "./result.js";
3
+ import { describe, expect, test } from "vitest";
4
+ describe("parseDuration", () => {
5
+ describe("milliseconds", () => {
6
+ test("parses integer milliseconds", () => {
7
+ expect(parseDuration("100ms")).toEqual(ok(100));
8
+ expect(parseDuration("1ms")).toEqual(ok(1));
9
+ expect(parseDuration("5000ms")).toEqual(ok(5000));
10
+ });
11
+ test("parses decimal milliseconds", () => {
12
+ expect(parseDuration("1.5ms")).toEqual(ok(1.5));
13
+ expect(parseDuration("10.25ms")).toEqual(ok(10.25));
14
+ });
15
+ test("parses milliseconds with long format", () => {
16
+ expect(parseDuration("53 milliseconds")).toEqual(ok(53));
17
+ expect(parseDuration("17 msecs")).toEqual(ok(17));
18
+ expect(parseDuration("100 millisecond")).toEqual(ok(100));
19
+ });
20
+ test("parses numbers without unit as milliseconds", () => {
21
+ expect(parseDuration("100")).toEqual(ok(100));
22
+ expect(parseDuration("1000")).toEqual(ok(1000));
23
+ });
24
+ test("parses negative milliseconds", () => {
25
+ expect(parseDuration("-100ms")).toEqual(ok(-100));
26
+ expect(parseDuration("-100 milliseconds")).toEqual(ok(-100));
27
+ });
28
+ });
29
+ describe("seconds", () => {
30
+ test("parses integer seconds", () => {
31
+ expect(parseDuration("1s")).toEqual(ok(1000));
32
+ expect(parseDuration("5s")).toEqual(ok(5000));
33
+ expect(parseDuration("60s")).toEqual(ok(60_000));
34
+ });
35
+ test("parses decimal seconds", () => {
36
+ expect(parseDuration("1.5s")).toEqual(ok(1500));
37
+ expect(parseDuration("0.1s")).toEqual(ok(100));
38
+ expect(parseDuration("2.5s")).toEqual(ok(2500));
39
+ expect(parseDuration("0.001s")).toEqual(ok(1));
40
+ });
41
+ test("parses seconds with long format", () => {
42
+ expect(parseDuration("1 sec")).toEqual(ok(1000));
43
+ expect(parseDuration("5 seconds")).toEqual(ok(5000));
44
+ expect(parseDuration("10 secs")).toEqual(ok(10_000));
45
+ });
46
+ test("parses seconds with leading decimal", () => {
47
+ expect(parseDuration(".5s")).toEqual(ok(500));
48
+ expect(parseDuration(".5ms")).toEqual(ok(0.5));
49
+ });
50
+ test("parses negative seconds", () => {
51
+ expect(parseDuration("-5s")).toEqual(ok(-5000));
52
+ expect(parseDuration("-.5s")).toEqual(ok(-500));
53
+ });
54
+ });
55
+ describe("minutes", () => {
56
+ test("parses integer minutes", () => {
57
+ expect(parseDuration("1m")).toEqual(ok(60 * 1000));
58
+ expect(parseDuration("5m")).toEqual(ok(5 * 60 * 1000));
59
+ expect(parseDuration("30m")).toEqual(ok(30 * 60 * 1000));
60
+ });
61
+ test("parses decimal minutes", () => {
62
+ expect(parseDuration("1.5m")).toEqual(ok(1.5 * 60 * 1000));
63
+ expect(parseDuration("0.5m")).toEqual(ok(30 * 1000));
64
+ });
65
+ test("parses minutes with long format", () => {
66
+ expect(parseDuration("1 min")).toEqual(ok(60_000));
67
+ expect(parseDuration("5 minutes")).toEqual(ok(5 * 60 * 1000));
68
+ expect(parseDuration("10 mins")).toEqual(ok(10 * 60 * 1000));
69
+ });
70
+ });
71
+ describe("hours", () => {
72
+ test("parses integer hours", () => {
73
+ expect(parseDuration("1h")).toEqual(ok(60 * 60 * 1000));
74
+ expect(parseDuration("2h")).toEqual(ok(2 * 60 * 60 * 1000));
75
+ expect(parseDuration("24h")).toEqual(ok(24 * 60 * 60 * 1000));
76
+ });
77
+ test("parses decimal hours", () => {
78
+ expect(parseDuration("1.5h")).toEqual(ok(1.5 * 60 * 60 * 1000));
79
+ expect(parseDuration("0.25h")).toEqual(ok(15 * 60 * 1000));
80
+ });
81
+ test("parses hours with long format", () => {
82
+ expect(parseDuration("1 hr")).toEqual(ok(3_600_000));
83
+ expect(parseDuration("2 hours")).toEqual(ok(2 * 60 * 60 * 1000));
84
+ expect(parseDuration("3 hrs")).toEqual(ok(3 * 60 * 60 * 1000));
85
+ expect(parseDuration("1.5 hours")).toEqual(ok(5_400_000));
86
+ });
87
+ test("parses negative hours", () => {
88
+ expect(parseDuration("-1.5h")).toEqual(ok(-5_400_000));
89
+ expect(parseDuration("-10.5h")).toEqual(ok(-37_800_000));
90
+ expect(parseDuration("-.5h")).toEqual(ok(-1_800_000));
91
+ expect(parseDuration("-1.5 hours")).toEqual(ok(-5_400_000));
92
+ expect(parseDuration("-.5 hr")).toEqual(ok(-1_800_000));
93
+ });
94
+ });
95
+ describe("days", () => {
96
+ test("parses integer days", () => {
97
+ expect(parseDuration("1d")).toEqual(ok(24 * 60 * 60 * 1000));
98
+ expect(parseDuration("7d")).toEqual(ok(7 * 24 * 60 * 60 * 1000));
99
+ expect(parseDuration("30d")).toEqual(ok(30 * 24 * 60 * 60 * 1000));
100
+ });
101
+ test("parses decimal days", () => {
102
+ expect(parseDuration("1.5d")).toEqual(ok(1.5 * 24 * 60 * 60 * 1000));
103
+ expect(parseDuration("0.5d")).toEqual(ok(12 * 60 * 60 * 1000));
104
+ });
105
+ test("parses days with long format", () => {
106
+ expect(parseDuration("2 days")).toEqual(ok(172_800_000));
107
+ expect(parseDuration("1 day")).toEqual(ok(24 * 60 * 60 * 1000));
108
+ });
109
+ });
110
+ describe("weeks", () => {
111
+ test("parses integer weeks", () => {
112
+ expect(parseDuration("1w")).toEqual(ok(7 * 24 * 60 * 60 * 1000));
113
+ expect(parseDuration("2w")).toEqual(ok(2 * 7 * 24 * 60 * 60 * 1000));
114
+ expect(parseDuration("3w")).toEqual(ok(1_814_400_000));
115
+ });
116
+ test("parses decimal weeks", () => {
117
+ expect(parseDuration("1.5w")).toEqual(ok(1.5 * 7 * 24 * 60 * 60 * 1000));
118
+ expect(parseDuration("0.5w")).toEqual(ok(3.5 * 24 * 60 * 60 * 1000));
119
+ });
120
+ test("parses weeks with long format", () => {
121
+ expect(parseDuration("1 week")).toEqual(ok(604_800_000));
122
+ expect(parseDuration("2 weeks")).toEqual(ok(2 * 7 * 24 * 60 * 60 * 1000));
123
+ });
124
+ });
125
+ describe("months", () => {
126
+ test("parses integer months", () => {
127
+ expect(parseDuration("1mo")).toEqual(ok(2_629_800_000));
128
+ expect(parseDuration("2mo")).toEqual(ok(2 * 2_629_800_000));
129
+ expect(parseDuration("6mo")).toEqual(ok(6 * 2_629_800_000));
130
+ });
131
+ test("parses decimal months", () => {
132
+ expect(parseDuration("1.5mo")).toEqual(ok(1.5 * 2_629_800_000));
133
+ expect(parseDuration("0.5mo")).toEqual(ok(0.5 * 2_629_800_000));
134
+ });
135
+ test("parses months with long format", () => {
136
+ expect(parseDuration("1 month")).toEqual(ok(2_629_800_000));
137
+ expect(parseDuration("2 months")).toEqual(ok(2 * 2_629_800_000));
138
+ });
139
+ });
140
+ describe("years", () => {
141
+ test("parses integer years", () => {
142
+ expect(parseDuration("1y")).toEqual(ok(31_557_600_000));
143
+ expect(parseDuration("2y")).toEqual(ok(2 * 31_557_600_000));
144
+ expect(parseDuration("5y")).toEqual(ok(5 * 31_557_600_000));
145
+ });
146
+ test("parses decimal years", () => {
147
+ expect(parseDuration("1.5y")).toEqual(ok(1.5 * 31_557_600_000));
148
+ expect(parseDuration("0.5y")).toEqual(ok(0.5 * 31_557_600_000));
149
+ });
150
+ test("parses years with long format", () => {
151
+ expect(parseDuration("1 year")).toEqual(ok(31_557_600_000));
152
+ expect(parseDuration("2 years")).toEqual(ok(2 * 31_557_600_000));
153
+ expect(parseDuration("1 yr")).toEqual(ok(31_557_600_000));
154
+ expect(parseDuration("2 yrs")).toEqual(ok(2 * 31_557_600_000));
155
+ });
156
+ });
157
+ describe("case insensitivity", () => {
158
+ test("parses case-insensitive units", () => {
159
+ expect(parseDuration("5S")).toEqual(ok(5000));
160
+ expect(parseDuration("5M")).toEqual(ok(5 * 60 * 1000));
161
+ expect(parseDuration("5H")).toEqual(ok(5 * 60 * 60 * 1000));
162
+ expect(parseDuration("5D")).toEqual(ok(5 * 24 * 60 * 60 * 1000));
163
+ expect(parseDuration("5W")).toEqual(ok(5 * 7 * 24 * 60 * 60 * 1000));
164
+ });
165
+ test("parses case-insensitive long format", () => {
166
+ // @ts-expect-error - mixed-case (not in type but accepted at runtime)
167
+ expect(parseDuration("53 YeArS")).toEqual(ok(1_672_552_800_000));
168
+ // @ts-expect-error - mixed-case (not in type but accepted at runtime)
169
+ expect(parseDuration("53 WeEkS")).toEqual(ok(32_054_400_000));
170
+ // @ts-expect-error - mixed-case (not in type but accepted at runtime)
171
+ expect(parseDuration("53 DaYS")).toEqual(ok(4_579_200_000));
172
+ // @ts-expect-error - mixed-case (not in type but accepted at runtime)
173
+ expect(parseDuration("53 HoUrs")).toEqual(ok(190_800_000));
174
+ // @ts-expect-error - mixed-case (not in type but accepted at runtime)
175
+ expect(parseDuration("53 MiLliSeCondS")).toEqual(ok(53));
176
+ });
177
+ });
178
+ describe("whitespace handling", () => {
179
+ test("parses with single space", () => {
180
+ expect(parseDuration("1 s")).toEqual(ok(1000));
181
+ expect(parseDuration("5 m")).toEqual(ok(5 * 60 * 1000));
182
+ expect(parseDuration("2 h")).toEqual(ok(2 * 60 * 60 * 1000));
183
+ });
184
+ test("parses with multiple spaces", () => {
185
+ expect(parseDuration("1 s")).toEqual(ok(1000));
186
+ expect(parseDuration("5 m")).toEqual(ok(5 * 60 * 1000));
187
+ });
188
+ });
189
+ describe("edge cases", () => {
190
+ test("parses zero values", () => {
191
+ expect(parseDuration("0ms")).toEqual(ok(0));
192
+ expect(parseDuration("0s")).toEqual(ok(0));
193
+ expect(parseDuration("0m")).toEqual(ok(0));
194
+ expect(parseDuration("0h")).toEqual(ok(0));
195
+ expect(parseDuration("0d")).toEqual(ok(0));
196
+ expect(parseDuration("0")).toEqual(ok(0));
197
+ });
198
+ test("parses very small decimals", () => {
199
+ expect(parseDuration("0.001s")).toEqual(ok(1));
200
+ expect(parseDuration("0.1ms")).toEqual(ok(0.1));
201
+ });
202
+ test("parses large numbers", () => {
203
+ expect(parseDuration("999999ms")).toEqual(ok(999_999));
204
+ expect(parseDuration("1000s")).toEqual(ok(1_000_000));
205
+ });
206
+ });
207
+ describe("error cases", () => {
208
+ test("returns error on invalid format", () => {
209
+ // @ts-expect-error - invalid format
210
+ expect(parseDuration("invalid")).toEqual(err(new Error('Invalid duration format: "invalid"')));
211
+ // @ts-expect-error - invalid format
212
+ expect(parseDuration("10-.5")).toEqual(err(new Error('Invalid duration format: "10-.5"')));
213
+ // @ts-expect-error - invalid format
214
+ expect(parseDuration("foo")).toEqual(err(new Error('Invalid duration format: "foo"')));
215
+ });
216
+ test("returns error on empty string", () => {
217
+ // @ts-expect-error - empty string
218
+ expect(parseDuration("")).toEqual(err(new Error('Invalid duration format: ""')));
219
+ });
220
+ test("returns error on missing number", () => {
221
+ // @ts-expect-error - unit without number
222
+ expect(parseDuration("ms")).toEqual(err(new Error('Invalid duration format: "ms"')));
223
+ // @ts-expect-error - unit without number
224
+ expect(parseDuration("s")).toEqual(err(new Error('Invalid duration format: "s"')));
225
+ // @ts-expect-error - unit without number
226
+ expect(parseDuration("m")).toEqual(err(new Error('Invalid duration format: "m"')));
227
+ // @ts-expect-error - unit without number
228
+ expect(parseDuration("h")).toEqual(err(new Error('Invalid duration format: "h"')));
229
+ });
230
+ test("returns error on unknown unit", () => {
231
+ // @ts-expect-error - unknown unit
232
+ expect(parseDuration("100x")).toEqual(err(new Error('Invalid duration format: "100x"')));
233
+ // @ts-expect-error - unknown unit
234
+ expect(parseDuration("5z")).toEqual(err(new Error('Invalid duration format: "5z"')));
235
+ });
236
+ test("returns error on multiple units", () => {
237
+ // @ts-expect-error - multiple units
238
+ expect(parseDuration("1h30m")).toEqual(err(new Error('Invalid duration format: "1h30m"')));
239
+ // @ts-expect-error - multiple units
240
+ expect(parseDuration("5s100ms")).toEqual(err(new Error('Invalid duration format: "5s100ms"')));
241
+ });
242
+ test("returns error on leading/trailing spaces", () => {
243
+ expect(parseDuration(" 5s")).toEqual(err(new Error('Invalid duration format: " 5s"')));
244
+ // @ts-expect-error - trailing space
245
+ expect(parseDuration("5s ")).toEqual(err(new Error('Invalid duration format: "5s "')));
246
+ });
247
+ test("returns error on special characters", () => {
248
+ // @ts-expect-error - special characters
249
+ expect(parseDuration("5s!")).toEqual(err(new Error('Invalid duration format: "5s!"')));
250
+ // @ts-expect-error - special characters
251
+ expect(parseDuration("@5s")).toEqual(err(new Error('Invalid duration format: "@5s"')));
252
+ });
253
+ test("returns error on non-string types", () => {
254
+ expect(parseDuration(undefined)).toEqual(err(new TypeError("Invalid duration format: expected a string but received undefined")));
255
+ expect(parseDuration(null)).toEqual(err(new TypeError("Invalid duration format: expected a string but received object")));
256
+ expect(parseDuration([])).toEqual(err(new TypeError("Invalid duration format: expected a string but received object")));
257
+ expect(parseDuration({})).toEqual(err(new TypeError("Invalid duration format: expected a string but received object")));
258
+ expect(parseDuration(Number.NaN)).toEqual(err(new TypeError("Invalid duration format: expected a string but received number")));
259
+ expect(parseDuration(Number.POSITIVE_INFINITY)).toEqual(err(new TypeError("Invalid duration format: expected a string but received number")));
260
+ expect(parseDuration(Number.NEGATIVE_INFINITY)).toEqual(err(new TypeError("Invalid duration format: expected a string but received number")));
261
+ });
262
+ });
263
+ });
264
+ //# sourceMappingURL=duration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.test.js","sourceRoot":"","sources":["../../core/duration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonValue[] | {
3
+ [key: string]: JsonValue;
4
+ };
5
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../core/json.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../core/json.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export type Result<T, E> = Ok<T> | Err<E>;
2
+ export interface Ok<T> {
3
+ ok: true;
4
+ value: T;
5
+ }
6
+ export interface Err<E> {
7
+ ok: false;
8
+ error: E;
9
+ }
10
+ export declare function ok<T>(value: T): Ok<T>;
11
+ export declare function err<E>(error: E): Err<E>;
12
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../core/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,MAAM,WAAW,EAAE,CAAC,CAAC;IACnB,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,CAAC,CAAC;CACV;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC"}
@@ -0,0 +1,7 @@
1
+ export function ok(value) {
2
+ return { ok: true, value };
3
+ }
4
+ export function err(error) {
5
+ return { ok: false, error };
6
+ }
7
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../core/result.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=result.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.test.d.ts","sourceRoot":"","sources":["../../core/result.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { ok, err } from "./result.js";
2
+ import { describe, expect, test } from "vitest";
3
+ describe("Result helpers", () => {
4
+ test("ok creates success result", () => {
5
+ expect(ok(123)).toEqual({ ok: true, value: 123 });
6
+ });
7
+ test("err creates error result", () => {
8
+ expect(err("oops")).toEqual({ ok: false, error: "oops" });
9
+ });
10
+ });
11
+ //# sourceMappingURL=result.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.test.js","sourceRoot":"","sources":["../../core/result.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare const DEFAULT_RETRY_POLICY: {
2
+ readonly initialIntervalMs: 1000;
3
+ readonly backoffCoefficient: 2;
4
+ readonly maximumIntervalMs: number;
5
+ readonly maximumAttempts: number;
6
+ };
7
+ export type RetryPolicy = typeof DEFAULT_RETRY_POLICY;
8
+ /**
9
+ * Calculate the next retry delay using exponential backoff.
10
+ */
11
+ export declare function calculateRetryDelayMs(attemptNumber: number): number;
12
+ /**
13
+ * Check if an operation should be retried based on the retry policy.
14
+ */
15
+ export declare function shouldRetry(retryPolicy: RetryPolicy, attemptNumber: number): boolean;
16
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../core/retry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,oBAAoB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,GACpB,OAAO,CAET"}
@@ -1,5 +1,3 @@
1
- export const DEFAULT_NAMESPACE_ID = "default";
2
- // -----------------------------------------------------------------------------
3
1
  export const DEFAULT_RETRY_POLICY = {
4
2
  initialIntervalMs: 1000, // 1s
5
3
  backoffCoefficient: 2,
@@ -20,4 +18,4 @@ export function calculateRetryDelayMs(attemptNumber) {
20
18
  export function shouldRetry(retryPolicy, attemptNumber) {
21
19
  return attemptNumber < retryPolicy.maximumAttempts;
22
20
  }
23
- //# sourceMappingURL=backend.js.map
21
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../core/retry.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iBAAiB,EAAE,IAAI,EAAE,KAAK;IAC9B,kBAAkB,EAAE,CAAC;IACrB,iBAAiB,EAAE,GAAG,GAAG,IAAI,EAAE,OAAO;IACtC,eAAe,EAAE,QAAQ,EAAE,YAAY;CAC/B,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IACzD,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAChE,oBAAoB,CAAC;IAEvB,MAAM,SAAS,GACb,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;IAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,WAAwB,EACxB,aAAqB;IAErB,OAAO,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC;AACrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=retry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.test.d.ts","sourceRoot":"","sources":["../../core/retry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { calculateRetryDelayMs, DEFAULT_RETRY_POLICY, shouldRetry, } from "./retry.js";
2
+ import { describe, expect, test } from "vitest";
3
+ describe("calculateRetryDelayMs", () => {
4
+ test("calculates exponential backoff correctly", () => {
5
+ expect(calculateRetryDelayMs(1)).toBe(1000);
6
+ expect(calculateRetryDelayMs(2)).toBe(2000);
7
+ expect(calculateRetryDelayMs(3)).toBe(4000);
8
+ expect(calculateRetryDelayMs(4)).toBe(8000);
9
+ expect(calculateRetryDelayMs(5)).toBe(16_000);
10
+ expect(calculateRetryDelayMs(6)).toBe(32_000);
11
+ expect(calculateRetryDelayMs(7)).toBe(64_000);
12
+ });
13
+ test("caps delay at maximum interval", () => {
14
+ const { maximumIntervalMs } = DEFAULT_RETRY_POLICY;
15
+ // attempt 8: 1s * 2^7 = 128s = 128000ms, but capped at 100000ms (max)
16
+ expect(calculateRetryDelayMs(8)).toBe(maximumIntervalMs);
17
+ // attempts 10 & 100: should still be capped
18
+ expect(calculateRetryDelayMs(10)).toBe(maximumIntervalMs);
19
+ expect(calculateRetryDelayMs(100)).toBe(maximumIntervalMs);
20
+ });
21
+ test("handles edge cases", () => {
22
+ // attempt 0: 1s * 2^-1 = 0.5s = 500ms
23
+ expect(calculateRetryDelayMs(0)).toBe(500);
24
+ expect(calculateRetryDelayMs(Infinity)).toBe(100_000);
25
+ });
26
+ });
27
+ describe("shouldRetry", () => {
28
+ test("always returns true with default policy (infinite retries)", () => {
29
+ const retryPolicy = DEFAULT_RETRY_POLICY;
30
+ expect(shouldRetry(retryPolicy, 1)).toBe(true);
31
+ expect(shouldRetry(retryPolicy, 10)).toBe(true);
32
+ expect(shouldRetry(retryPolicy, 100)).toBe(true);
33
+ expect(shouldRetry(retryPolicy, 1000)).toBe(true);
34
+ });
35
+ });
36
+ //# sourceMappingURL=retry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../core/retry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CAAC;QAEnD,sEAAsE;QACtE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEzD,4CAA4C;QAC5C,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,sCAAsC;QACtC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,WAAW,GAAG,oBAAoB,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}