semola 0.5.4 → 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 (50) hide show
  1. package/README.md +35 -50
  2. package/dist/lib/api/index.cjs +1 -523
  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 -521
  6. package/dist/lib/cache/index.cjs +1 -74
  7. package/dist/lib/cache/index.d.cts +1 -48
  8. package/dist/lib/cache/index.d.mts +3 -24
  9. package/dist/lib/cache/index.mjs +1 -73
  10. package/dist/lib/cron/index.cjs +1 -735
  11. package/dist/lib/cron/index.d.cts +1 -146
  12. package/dist/lib/cron/index.d.mts +99 -36
  13. package/dist/lib/cron/index.mjs +1 -726
  14. package/dist/lib/errors/index.cjs +1 -30
  15. package/dist/lib/errors/index.d.cts +1 -2
  16. package/dist/lib/errors/index.d.mts +12 -1
  17. package/dist/lib/errors/index.mjs +1 -26
  18. package/dist/lib/i18n/index.cjs +1 -42
  19. package/dist/lib/i18n/index.d.cts +1 -28
  20. package/dist/lib/i18n/index.mjs +1 -41
  21. package/dist/lib/logging/index.cjs +1 -387
  22. package/dist/lib/logging/index.d.cts +1 -108
  23. package/dist/lib/logging/index.mjs +1 -374
  24. package/dist/lib/orm/index.cjs +1 -0
  25. package/dist/lib/orm/index.d.cts +1 -0
  26. package/dist/lib/orm/index.d.mts +404 -0
  27. package/dist/lib/orm/index.mjs +1 -0
  28. package/dist/lib/policy/index.cjs +1 -285
  29. package/dist/lib/policy/index.d.cts +1 -77
  30. package/dist/lib/policy/index.mjs +1 -265
  31. package/dist/lib/prompts/index.cjs +6 -769
  32. package/dist/lib/prompts/index.d.cts +1 -96
  33. package/dist/lib/prompts/index.d.mts +12 -33
  34. package/dist/lib/prompts/index.mjs +6 -763
  35. package/dist/lib/pubsub/index.cjs +1 -117
  36. package/dist/lib/pubsub/index.d.cts +1 -41
  37. package/dist/lib/pubsub/index.d.mts +3 -18
  38. package/dist/lib/pubsub/index.mjs +1 -116
  39. package/dist/lib/queue/index.cjs +1 -182
  40. package/dist/lib/queue/index.d.cts +1 -74
  41. package/dist/lib/queue/index.d.mts +11 -4
  42. package/dist/lib/queue/index.mjs +1 -181
  43. package/dist/lib/workflow/index.cjs +1 -534
  44. package/dist/lib/workflow/index.d.cts +1 -85
  45. package/dist/lib/workflow/index.d.mts +76 -11
  46. package/dist/lib/workflow/index.mjs +1 -533
  47. package/dist/rolldown-runtime-CMqjfN_6.cjs +1 -0
  48. package/package.json +17 -5
  49. package/dist/index-BhGNDjPq.d.mts +0 -13
  50. package/dist/index-DxSbeGP-.d.cts +0 -13
@@ -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 };