semola 0.6.0 → 0.6.2

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 (51) hide show
  1. package/README.md +19 -5
  2. package/dist/index-DISN0WKZ.d.mts +78 -0
  3. package/dist/lib/api/index.cjs +1 -537
  4. package/dist/lib/api/index.d.cts +1 -271
  5. package/dist/lib/api/index.d.mts +100 -164
  6. package/dist/lib/api/index.mjs +1 -535
  7. package/dist/lib/cache/index.cjs +1 -99
  8. package/dist/lib/cache/index.d.cts +1 -27
  9. package/dist/lib/cache/index.mjs +1 -98
  10. package/dist/lib/cli/index.cjs +3 -0
  11. package/dist/lib/cli/index.d.cts +1 -0
  12. package/dist/lib/cli/index.d.mts +90 -0
  13. package/dist/lib/cli/index.mjs +3 -0
  14. package/dist/lib/cron/index.cjs +1 -735
  15. package/dist/lib/cron/index.d.cts +1 -146
  16. package/dist/lib/cron/index.d.mts +99 -36
  17. package/dist/lib/cron/index.mjs +1 -726
  18. package/dist/lib/errors/index.cjs +1 -30
  19. package/dist/lib/errors/index.d.cts +1 -13
  20. package/dist/lib/errors/index.mjs +1 -26
  21. package/dist/lib/i18n/index.cjs +1 -42
  22. package/dist/lib/i18n/index.d.cts +1 -28
  23. package/dist/lib/i18n/index.d.mts +2 -2
  24. package/dist/lib/i18n/index.mjs +1 -41
  25. package/dist/lib/logging/index.cjs +1 -388
  26. package/dist/lib/logging/index.d.cts +1 -108
  27. package/dist/lib/logging/index.mjs +1 -374
  28. package/dist/lib/orm/index.cjs +1 -1642
  29. package/dist/lib/orm/index.d.cts +1 -402
  30. package/dist/lib/orm/index.d.mts +27 -25
  31. package/dist/lib/orm/index.mjs +1 -1630
  32. package/dist/lib/policy/index.cjs +1 -285
  33. package/dist/lib/policy/index.d.cts +1 -77
  34. package/dist/lib/policy/index.d.mts +1 -1
  35. package/dist/lib/policy/index.mjs +1 -265
  36. package/dist/lib/prompts/index.cjs +6 -769
  37. package/dist/lib/prompts/index.d.cts +1 -75
  38. package/dist/lib/prompts/index.mjs +6 -762
  39. package/dist/lib/pubsub/index.cjs +1 -141
  40. package/dist/lib/pubsub/index.d.cts +1 -26
  41. package/dist/lib/pubsub/index.mjs +1 -140
  42. package/dist/lib/queue/index.cjs +1 -212
  43. package/dist/lib/queue/index.d.cts +1 -81
  44. package/dist/lib/queue/index.mjs +1 -209
  45. package/dist/lib/workflow/index.cjs +1 -537
  46. package/dist/lib/workflow/index.d.cts +1 -150
  47. package/dist/lib/workflow/index.d.mts +0 -1
  48. package/dist/lib/workflow/index.mjs +1 -527
  49. package/dist/rolldown-runtime-CMqjfN_6.cjs +1 -0
  50. package/package.json +17 -5
  51. package/dist/chunk-CKQMccvm.cjs +0 -28
@@ -1,146 +1 @@
1
- //#region src/lib/cron/builder/types.d.ts
2
- declare const WeekDay: {
3
- readonly sun: 0;
4
- readonly mon: 1;
5
- readonly tue: 2;
6
- readonly wed: 3;
7
- readonly thu: 4;
8
- readonly fri: 5;
9
- readonly sat: 6;
10
- };
11
- declare const Month: {
12
- readonly jan: 1;
13
- readonly feb: 2;
14
- readonly mar: 3;
15
- readonly apr: 4;
16
- readonly may: 5;
17
- readonly jun: 6;
18
- readonly jul: 7;
19
- readonly aug: 8;
20
- readonly sep: 9;
21
- readonly oct: 10;
22
- readonly nov: 11;
23
- readonly dec: 12;
24
- };
25
- type Enumerate<N extends number, Acc extends number[] = []> = Acc["length"] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc["length"]]>;
26
- type IntRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
27
- type TimeType = IntRange<0, 60>;
28
- type HourType = IntRange<0, 24>;
29
- type DayType = IntRange<1, 32>;
30
- type MonthType = IntRange<1, 13>;
31
- type WeekDayType = IntRange<0, 7>;
32
- type CronRange<T> = {
33
- min: NoInfer<T>;
34
- max: NoInfer<T>;
35
- };
36
- type CronStep<T> = {
37
- step: NoInfer<T>;
38
- range?: {
39
- min: NoInfer<T>;
40
- max?: NoInfer<T>;
41
- };
42
- };
43
- type CronField = "second" | "minute" | "hour" | "day" | "month" | "weekday";
44
- type CronListExpr<T> = Exclude<CronExpr<T>, {
45
- type: "list";
46
- }>;
47
- type CronExpr<T> = {
48
- type: "any";
49
- } | {
50
- type: "value";
51
- value: T;
52
- } | {
53
- type: "range";
54
- min: T;
55
- max: T;
56
- } | {
57
- type: "step";
58
- step: T;
59
- range?: {
60
- min: T;
61
- max?: T;
62
- };
63
- } | {
64
- type: "list";
65
- values: CronListExpr<T>[];
66
- };
67
- interface IBuilder<Used extends CronField> {
68
- second(expr: CronExpr<TimeType>): CronBuilderType<Used | "second">;
69
- minute(expr: CronExpr<TimeType>): CronBuilderType<Used | "minute">;
70
- hour(expr: CronExpr<HourType>): CronBuilderType<Used | "hour">;
71
- day(expr: CronExpr<DayType>): CronBuilderType<Used | "day">;
72
- month(expr: CronExpr<MonthType>): CronBuilderType<Used | "month">;
73
- weekday(expr: CronExpr<WeekDayType>): CronBuilderType<Used | "weekday">;
74
- }
75
- type CronBuilderType<Used extends CronField = never> = Omit<IBuilder<Used>, Used>;
76
- type BuilderFn = (builder: CronBuilderType) => void;
77
- //#endregion
78
- //#region src/lib/cron/builder/index.d.ts
79
- declare class FieldWrapper<T> {
80
- private fields;
81
- add(expr: CronListExpr<T>): void;
82
- read(): CronListExpr<T>[];
83
- }
84
- declare class CronListBuilder<T> {
85
- private wrapper;
86
- constructor(wrapper: FieldWrapper<T>);
87
- any(): CronListBuilder<T>;
88
- range(options: CronRange<T>): CronListBuilder<T>;
89
- step(options: CronStep<T>): CronListBuilder<T>;
90
- number(value: T): CronListBuilder<T>;
91
- }
92
- declare function range<T>(options: CronRange<T>): CronExpr<T>;
93
- declare function any<T>(): CronExpr<T>;
94
- declare function step<T>(options: CronStep<T>): CronExpr<T>;
95
- declare function list<T>(builderFn: (builder: CronListBuilder<T>) => CronListBuilder<T>): CronExpr<T>;
96
- declare function number<T>(value: T): {
97
- type: "value";
98
- value: T;
99
- };
100
- declare function cronJobBuilder(buildFn: BuilderFn): string;
101
- //#endregion
102
- //#region src/lib/cron/core/types.d.ts
103
- type CronAlias = "@yearly" | "@monthly" | "@weekly" | "@daily" | "@hourly" | "@minutely";
104
- type CronStatus = "idle" | "running" | "paused";
105
- type CronOptions = {
106
- name: string;
107
- schedule: CronAlias | (string & {});
108
- handler: () => void | Promise<void>;
109
- };
110
- //#endregion
111
- //#region src/lib/cron/core/index.d.ts
112
- declare class Cron {
113
- private options;
114
- private status;
115
- private timeoutId;
116
- private second;
117
- private minute;
118
- private hour;
119
- private day;
120
- private month;
121
- private dayOfWeek;
122
- private hasSeconds;
123
- private _dayWildcard;
124
- private _dowWildcard;
125
- private fillRange;
126
- private handleStep;
127
- private handleStepRange;
128
- private handleStepSingle;
129
- private handleRange;
130
- private handleNumber;
131
- constructor(options: CronOptions);
132
- private resolveAlias;
133
- private parse;
134
- private handleField;
135
- matches(date: Date): boolean;
136
- getNextRun(): Date | null;
137
- start(): void;
138
- stop(): void;
139
- pause(): void;
140
- resume(): void;
141
- getStatus(): CronStatus;
142
- private next;
143
- private run;
144
- }
145
- //#endregion
146
- export { Cron, Month, WeekDay, any, cronJobBuilder, list, number, range, step };
1
+ export type * from './index.d.mts'
@@ -40,7 +40,7 @@ type CronStep<T> = {
40
40
  max?: NoInfer<T>;
41
41
  };
42
42
  };
43
- type CronField = "second" | "minute" | "hour" | "day" | "month" | "weekday";
43
+ type CronField = "minute" | "hour" | "day" | "month" | "weekday";
44
44
  type CronListExpr<T> = Exclude<CronExpr<T>, {
45
45
  type: "list";
46
46
  }>;
@@ -65,7 +65,6 @@ type CronExpr<T> = {
65
65
  values: CronListExpr<T>[];
66
66
  };
67
67
  interface IBuilder<Used extends CronField> {
68
- second(expr: CronExpr<TimeType>): CronBuilderType<Used | "second">;
69
68
  minute(expr: CronExpr<TimeType>): CronBuilderType<Used | "minute">;
70
69
  hour(expr: CronExpr<HourType>): CronBuilderType<Used | "hour">;
71
70
  day(expr: CronExpr<DayType>): CronBuilderType<Used | "day">;
@@ -100,47 +99,111 @@ declare function number<T>(value: T): {
100
99
  declare function cronJobBuilder(buildFn: BuilderFn): string;
101
100
  //#endregion
102
101
  //#region src/lib/cron/core/types.d.ts
103
- type CronAlias = "@yearly" | "@monthly" | "@weekly" | "@daily" | "@hourly" | "@minutely";
104
- type CronStatus = "idle" | "running" | "paused";
105
- type CronOptions = {
102
+ type MinutelyAlias = "@minutely";
103
+ type ErrorMetadataType = {
106
104
  name: string;
107
- schedule: CronAlias | (string & {});
108
- handler: () => void | Promise<void>;
105
+ failedAt: number;
106
+ error: Error;
109
107
  };
108
+ type ScheduleType = Bun.CronWithAutocomplete | MinutelyAlias;
109
+ type OnFailedAttemptContextType = {
110
+ error: Error;
111
+ attemptNumber: number;
112
+ retriesLeft: number;
113
+ delay: number;
114
+ jobName: string;
115
+ };
116
+ type RetryOnErrorContextType = {
117
+ error: Error;
118
+ jobName: string;
119
+ };
120
+ type RetryOptions = {
121
+ maxAttempts: number;
122
+ onError?: (error: ErrorMetadataType) => void | Promise<void>;
123
+ onFailedAttempt?: (ctx: OnFailedAttemptContextType) => void | Promise<void>;
124
+ retryOnError?: (ctx: RetryOnErrorContextType) => boolean;
125
+ };
126
+ type CronBaseOptions = {
127
+ name: string;
128
+ schedule: ScheduleType;
129
+ };
130
+ type CronOptions = CronBaseOptions & {
131
+ handler: () => unknown;
132
+ retry?: RetryObserver;
133
+ };
134
+ type CronOSOptions = CronBaseOptions & {
135
+ path: string;
136
+ };
137
+ type CronStatus = "idle" | "running";
138
+ declare abstract class JobWithRetry {
139
+ protected constructor();
140
+ abstract run(): void;
141
+ abstract stop(): void;
142
+ }
143
+ type NotifyErrorContext = {
144
+ type: "error";
145
+ job: JobWithRetry;
146
+ error: Error;
147
+ name: string;
148
+ };
149
+ type NotifyAddRetryContext = {
150
+ type: "add";
151
+ name: string;
152
+ };
153
+ type NotifySuccessContext = {
154
+ type: "success";
155
+ name: string;
156
+ };
157
+ type NotifyContext = NotifySuccessContext | NotifyErrorContext | NotifyAddRetryContext;
158
+ interface RetryObserver {
159
+ update(ctx: NotifyContext): Promise<void>;
160
+ }
110
161
  //#endregion
111
162
  //#region src/lib/cron/core/index.d.ts
112
- declare class Cron {
163
+ declare class RetryCronJob implements RetryObserver {
164
+ private options;
165
+ private jobs;
166
+ constructor(options: RetryOptions);
167
+ update(ctx: NotifyContext): Promise<void>;
168
+ private checkAttempts;
169
+ private runOnRetryError;
170
+ private runDelay;
171
+ private calculateDelay;
172
+ }
173
+ declare class Cron extends JobWithRetry {
113
174
  private options;
114
175
  private status;
115
- private timeoutId;
116
- private second;
117
- private minute;
118
- private hour;
119
- private day;
120
- private month;
121
- private dayOfWeek;
122
- private hasSeconds;
123
- private _dayWildcard;
124
- private _dowWildcard;
125
- private fillRange;
126
- private handleStep;
127
- private handleStepRange;
128
- private handleStepSingle;
129
- private handleRange;
130
- private handleNumber;
176
+ private cron;
177
+ private manager?;
178
+ private common;
131
179
  constructor(options: CronOptions);
132
- private resolveAlias;
133
- private parse;
134
- private handleField;
135
- matches(date: Date): boolean;
136
- getNextRun(): Date | null;
137
- start(): void;
138
- stop(): void;
139
- pause(): void;
140
- resume(): void;
180
+ [Symbol.dispose](): void;
141
181
  getStatus(): CronStatus;
142
- private next;
143
- private run;
182
+ run(): void;
183
+ stop(): void;
184
+ ref(): void;
185
+ unref(): void;
186
+ getExpression(): string;
187
+ getJobName(): string;
188
+ next(from?: Date | number): Date | null;
189
+ }
190
+ declare class CronOS {
191
+ private options;
192
+ private common;
193
+ constructor(options: CronOSOptions);
194
+ run(): Promise<void>;
195
+ stop(): Promise<void>;
196
+ getExpression(): string;
197
+ getJobName(): string;
198
+ next(from?: Date | number): Date | null;
199
+ }
200
+ //#endregion
201
+ //#region src/lib/cron/errors.d.ts
202
+ declare class OutOfBoundError extends Error {
203
+ constructor(message: string);
204
+ }
205
+ declare class InvalidRetryError extends TypeError {
206
+ constructor(message: string);
144
207
  }
145
208
  //#endregion
146
- export { Cron, Month, WeekDay, any, cronJobBuilder, list, number, range, step };
209
+ export { Cron, CronOS, InvalidRetryError, Month, OutOfBoundError, RetryCronJob, WeekDay, any, cronJobBuilder, list, number, range, step };