semola 0.6.0 → 0.6.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 (43) hide show
  1. package/README.md +17 -5
  2. package/dist/lib/api/index.cjs +1 -537
  3. package/dist/lib/api/index.d.cts +1 -271
  4. package/dist/lib/api/index.d.mts +80 -84
  5. package/dist/lib/api/index.mjs +1 -535
  6. package/dist/lib/cache/index.cjs +1 -99
  7. package/dist/lib/cache/index.d.cts +1 -27
  8. package/dist/lib/cache/index.mjs +1 -98
  9. package/dist/lib/cron/index.cjs +1 -735
  10. package/dist/lib/cron/index.d.cts +1 -146
  11. package/dist/lib/cron/index.d.mts +99 -36
  12. package/dist/lib/cron/index.mjs +1 -726
  13. package/dist/lib/errors/index.cjs +1 -30
  14. package/dist/lib/errors/index.d.cts +1 -13
  15. package/dist/lib/errors/index.mjs +1 -26
  16. package/dist/lib/i18n/index.cjs +1 -42
  17. package/dist/lib/i18n/index.d.cts +1 -28
  18. package/dist/lib/i18n/index.mjs +1 -41
  19. package/dist/lib/logging/index.cjs +1 -388
  20. package/dist/lib/logging/index.d.cts +1 -108
  21. package/dist/lib/logging/index.mjs +1 -374
  22. package/dist/lib/orm/index.cjs +1 -1642
  23. package/dist/lib/orm/index.d.cts +1 -402
  24. package/dist/lib/orm/index.d.mts +4 -2
  25. package/dist/lib/orm/index.mjs +1 -1630
  26. package/dist/lib/policy/index.cjs +1 -285
  27. package/dist/lib/policy/index.d.cts +1 -77
  28. package/dist/lib/policy/index.mjs +1 -265
  29. package/dist/lib/prompts/index.cjs +6 -769
  30. package/dist/lib/prompts/index.d.cts +1 -75
  31. package/dist/lib/prompts/index.mjs +6 -762
  32. package/dist/lib/pubsub/index.cjs +1 -141
  33. package/dist/lib/pubsub/index.d.cts +1 -26
  34. package/dist/lib/pubsub/index.mjs +1 -140
  35. package/dist/lib/queue/index.cjs +1 -212
  36. package/dist/lib/queue/index.d.cts +1 -81
  37. package/dist/lib/queue/index.mjs +1 -209
  38. package/dist/lib/workflow/index.cjs +1 -537
  39. package/dist/lib/workflow/index.d.cts +1 -150
  40. package/dist/lib/workflow/index.mjs +1 -527
  41. package/dist/rolldown-runtime-CMqjfN_6.cjs +1 -0
  42. package/package.json +7 -5
  43. 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 };