glasswork 0.12.0 → 0.12.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 (69) hide show
  1. package/dist/core/types.d.ts +6 -1
  2. package/dist/core/types.d.ts.map +1 -1
  3. package/dist/email/compiler/code-generator.d.ts +11 -0
  4. package/dist/email/compiler/code-generator.d.ts.map +1 -0
  5. package/dist/email/compiler/code-generator.js +319 -0
  6. package/dist/email/compiler/code-generator.js.map +1 -0
  7. package/dist/http/route-helpers.d.ts +4 -9
  8. package/dist/http/route-helpers.d.ts.map +1 -1
  9. package/dist/http/route-helpers.js +1 -0
  10. package/dist/http/route-helpers.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/jobs/define-job.d.ts +25 -0
  15. package/dist/jobs/define-job.d.ts.map +1 -0
  16. package/dist/jobs/define-job.js +12 -0
  17. package/dist/jobs/define-job.js.map +1 -0
  18. package/dist/jobs/drivers/mock-driver.d.ts +38 -0
  19. package/dist/jobs/drivers/mock-driver.d.ts.map +1 -0
  20. package/dist/jobs/drivers/mock-driver.js +76 -0
  21. package/dist/jobs/drivers/mock-driver.js.map +1 -0
  22. package/dist/jobs/drivers/sqs-driver.d.ts +52 -0
  23. package/dist/jobs/drivers/sqs-driver.d.ts.map +1 -0
  24. package/dist/jobs/drivers/sqs-driver.js +191 -0
  25. package/dist/jobs/drivers/sqs-driver.js.map +1 -0
  26. package/dist/jobs/errors.d.ts +40 -0
  27. package/dist/jobs/errors.d.ts.map +1 -0
  28. package/dist/jobs/errors.js +61 -0
  29. package/dist/jobs/errors.js.map +1 -0
  30. package/dist/jobs/index.d.ts +11 -0
  31. package/dist/jobs/index.d.ts.map +1 -0
  32. package/dist/jobs/index.js +10 -0
  33. package/dist/jobs/index.js.map +1 -0
  34. package/dist/jobs/job-registry.d.ts +33 -0
  35. package/dist/jobs/job-registry.d.ts.map +1 -0
  36. package/dist/jobs/job-registry.js +56 -0
  37. package/dist/jobs/job-registry.js.map +1 -0
  38. package/dist/jobs/job-service.d.ts +44 -0
  39. package/dist/jobs/job-service.d.ts.map +1 -0
  40. package/dist/jobs/job-service.js +105 -0
  41. package/dist/jobs/job-service.js.map +1 -0
  42. package/dist/jobs/periodic-job.d.ts +6 -0
  43. package/dist/jobs/periodic-job.d.ts.map +1 -0
  44. package/dist/jobs/periodic-job.js +11 -0
  45. package/dist/jobs/periodic-job.js.map +1 -0
  46. package/dist/jobs/schedule-constants.d.ts +9 -0
  47. package/dist/jobs/schedule-constants.d.ts.map +1 -0
  48. package/dist/jobs/schedule-constants.js +9 -0
  49. package/dist/jobs/schedule-constants.js.map +1 -0
  50. package/dist/jobs/scheduler.d.ts +17 -0
  51. package/dist/jobs/scheduler.d.ts.map +1 -0
  52. package/dist/jobs/scheduler.js +47 -0
  53. package/dist/jobs/scheduler.js.map +1 -0
  54. package/dist/jobs/types.d.ts +156 -0
  55. package/dist/jobs/types.d.ts.map +1 -0
  56. package/dist/jobs/types.js +2 -0
  57. package/dist/jobs/types.js.map +1 -0
  58. package/dist/jobs/utils.d.ts +24 -0
  59. package/dist/jobs/utils.d.ts.map +1 -0
  60. package/dist/jobs/utils.js +69 -0
  61. package/dist/jobs/utils.js.map +1 -0
  62. package/dist/jobs/worker.d.ts +36 -0
  63. package/dist/jobs/worker.d.ts.map +1 -0
  64. package/dist/jobs/worker.js +260 -0
  65. package/dist/jobs/worker.js.map +1 -0
  66. package/dist/list-query/schema-helpers.d.ts +32 -34
  67. package/dist/list-query/schema-helpers.d.ts.map +1 -1
  68. package/dist/list-query/schema-helpers.js.map +1 -1
  69. package/package.json +2 -2
@@ -0,0 +1,260 @@
1
+ import { asValue, createContainer, InjectionMode } from 'awilix';
2
+ import { safeParse } from 'valibot';
3
+ import { collectModules, registerModuleProviders, validateNoCycles } from '../core/bootstrap.js';
4
+ import { createLogger } from '../utils/logger.js';
5
+ import { InvalidJobPayloadError, PermanentJobError, TransientJobError } from './errors.js';
6
+ import { createJobRegistry } from './job-registry.js';
7
+ import { MAX_SQS_DELAY_SECONDS, RUN_AT_METADATA_KEY } from './schedule-constants.js';
8
+ /**
9
+ * Bootstrap a worker Lambda handler for processing jobs.
10
+ */
11
+ export function bootstrapWorker(config) {
12
+ const logger = config.logger ?? createLogger('JobsWorker');
13
+ const statePromise = buildWorkerState(config.module, logger);
14
+ return async (event, _ctx) => {
15
+ const { container, registry } = await statePromise;
16
+ if (isSQSEvent(event)) {
17
+ const batchItemFailures = [];
18
+ for (const record of event.Records) {
19
+ try {
20
+ await processRecord(record, {
21
+ registry,
22
+ moduleContainer: container,
23
+ hooks: config.hooks,
24
+ logger,
25
+ driver: config.driver,
26
+ });
27
+ }
28
+ catch (_error) {
29
+ batchItemFailures.push({ itemIdentifier: record.messageId });
30
+ }
31
+ }
32
+ return { batchItemFailures };
33
+ }
34
+ // Non-SQS invocation (e.g., EventBridge periodic jobs)
35
+ const jobName = extractJobName(event);
36
+ const payload = extractPayload(event);
37
+ if (!jobName) {
38
+ throw new Error('Job name is required for non-SQS invocation');
39
+ }
40
+ await executeJob({
41
+ jobName,
42
+ jobId: 'event',
43
+ payload,
44
+ attemptNumber: 1,
45
+ enqueuedAt: new Date(),
46
+ }, { registry, moduleContainer: container, hooks: config.hooks, logger, driver: config.driver });
47
+ return { success: true };
48
+ };
49
+ }
50
+ async function resolveAsyncFactories(container, names, logger) {
51
+ const resolutions = names.map(async (name) => {
52
+ const resolved = container.resolve(name);
53
+ const value = resolved instanceof Promise ? await resolved : resolved;
54
+ container.register({ [name]: asValue(value) });
55
+ });
56
+ await Promise.all(resolutions).catch((error) => {
57
+ logger.error('Failed to resolve async providers', { error });
58
+ throw error;
59
+ });
60
+ }
61
+ async function buildWorkerState(module, logger) {
62
+ const container = createContainer({
63
+ injectionMode: InjectionMode.PROXY,
64
+ strict: true,
65
+ });
66
+ const allModules = collectModules(module);
67
+ validateNoCycles(allModules);
68
+ // Register providers
69
+ const asyncFactories = [];
70
+ for (const mod of allModules) {
71
+ const names = registerModuleProviders(mod, container, logger);
72
+ asyncFactories.push(...names);
73
+ }
74
+ // Resolve async factories before processing jobs
75
+ if (asyncFactories.length > 0) {
76
+ await resolveAsyncFactories(container, asyncFactories, logger);
77
+ }
78
+ const registry = buildJobRegistry(allModules);
79
+ return { container, registry };
80
+ }
81
+ function buildJobRegistry(modules) {
82
+ const registry = createJobRegistry();
83
+ for (const mod of modules) {
84
+ if (mod.jobs) {
85
+ for (const job of mod.jobs) {
86
+ registry.register(job);
87
+ }
88
+ }
89
+ }
90
+ return registry;
91
+ }
92
+ async function processRecord(record, context) {
93
+ let parsed;
94
+ try {
95
+ parsed = JSON.parse(record.body);
96
+ }
97
+ catch (error) {
98
+ context.logger.error('Failed to parse job message body', {
99
+ error,
100
+ messageId: record.messageId,
101
+ });
102
+ throw error;
103
+ }
104
+ if (!parsed || typeof parsed !== 'object') {
105
+ throw new Error('Invalid job message payload');
106
+ }
107
+ const parsedMessage = parsed;
108
+ const jobName = parsedMessage.jobName;
109
+ const payload = parsedMessage.payload;
110
+ const jobId = parsedMessage.jobId ?? record.messageId;
111
+ const enqueuedAt = parsedMessage.enqueuedAt ? new Date(parsedMessage.enqueuedAt) : new Date();
112
+ const metadata = parsedMessage.metadata;
113
+ if (!jobName) {
114
+ throw new Error('Job name is required');
115
+ }
116
+ const attemptNumber = record.attributes?.ApproximateReceiveCount
117
+ ? Number.parseInt(record.attributes.ApproximateReceiveCount, 10)
118
+ : 1;
119
+ const execution = {
120
+ jobId,
121
+ jobName,
122
+ payload,
123
+ attemptNumber,
124
+ enqueuedAt,
125
+ metadata,
126
+ };
127
+ await executeJob(execution, context);
128
+ }
129
+ async function executeJob(execution, context) {
130
+ const job = context.registry.getOrThrow(execution.jobName);
131
+ if (await rescheduleIfNotDue(execution, job, context)) {
132
+ return;
133
+ }
134
+ const scope = context.moduleContainer.createScope();
135
+ const services = scope.cradle;
136
+ let jobLogger = context.logger;
137
+ if (context.moduleContainer.hasRegistration('logger')) {
138
+ const baseLogger = context.moduleContainer.resolve('logger');
139
+ jobLogger = baseLogger?.child
140
+ ? baseLogger.child({ jobId: execution.jobId, jobName: execution.jobName })
141
+ : baseLogger;
142
+ }
143
+ const jobContext = {
144
+ services,
145
+ jobId: execution.jobId,
146
+ attemptNumber: execution.attemptNumber,
147
+ enqueuedAt: execution.enqueuedAt,
148
+ logger: jobLogger,
149
+ };
150
+ try {
151
+ await context.hooks?.onJobStart?.(execution, jobContext);
152
+ if (job.schema) {
153
+ const result = safeParse(job.schema, execution.payload);
154
+ if (!result.success) {
155
+ throw new InvalidJobPayloadError(job.name, result.issues);
156
+ }
157
+ }
158
+ await job.handler(execution.payload, jobContext);
159
+ await context.hooks?.onJobComplete?.(execution, jobContext);
160
+ }
161
+ catch (error) {
162
+ const err = error;
163
+ await context.hooks?.onJobFailed?.(execution, jobContext, err);
164
+ if (err instanceof PermanentJobError) {
165
+ jobLogger?.error('Job permanently failed', { err });
166
+ await context.hooks?.onJobDeadLetter?.(execution, jobContext, err);
167
+ return;
168
+ }
169
+ if (err instanceof InvalidJobPayloadError) {
170
+ jobLogger?.warn('Invalid job payload, retrying until DLQ', {
171
+ err,
172
+ jobName: execution.jobName,
173
+ jobId: execution.jobId,
174
+ attemptNumber: execution.attemptNumber,
175
+ });
176
+ throw err;
177
+ }
178
+ if (err instanceof TransientJobError) {
179
+ jobLogger?.warn('Job transient failure, retrying', { err, retryAfter: err.retryAfter });
180
+ }
181
+ throw err;
182
+ }
183
+ finally {
184
+ await scope.dispose();
185
+ }
186
+ }
187
+ async function rescheduleIfNotDue(execution, job, context) {
188
+ const runAtValue = execution.metadata?.[RUN_AT_METADATA_KEY];
189
+ if (!runAtValue) {
190
+ return false;
191
+ }
192
+ const runAt = new Date(runAtValue);
193
+ if (Number.isNaN(runAt.getTime())) {
194
+ context.logger.warn('Ignoring invalid runAt metadata; executing immediately', {
195
+ jobName: execution.jobName,
196
+ jobId: execution.jobId,
197
+ runAt: runAtValue,
198
+ });
199
+ return false;
200
+ }
201
+ const remainingMs = runAt.getTime() - Date.now();
202
+ if (remainingMs <= 1000) {
203
+ return false;
204
+ }
205
+ const driver = context.driver;
206
+ if (!driver || (!driver.enqueueIn && !driver.enqueueAt)) {
207
+ context.logger.warn('Job scheduled in future but worker has no driver; executing now', {
208
+ jobName: execution.jobName,
209
+ jobId: execution.jobId,
210
+ runAt: runAtValue,
211
+ });
212
+ return false;
213
+ }
214
+ const delaySeconds = Math.min(MAX_SQS_DELAY_SECONDS, Math.max(1, Math.floor(remainingMs / 1000)));
215
+ const message = {
216
+ jobName: job.name,
217
+ payload: execution.payload,
218
+ queue: job.queue,
219
+ jobId: execution.jobId,
220
+ metadata: {
221
+ ...execution.metadata,
222
+ [RUN_AT_METADATA_KEY]: runAtValue,
223
+ },
224
+ };
225
+ if (driver.enqueueIn) {
226
+ await driver.enqueueIn(message, delaySeconds);
227
+ }
228
+ else if (driver.enqueueAt) {
229
+ await driver.enqueueAt(message, runAt);
230
+ }
231
+ context.logger.info('Deferred job that is not due yet', {
232
+ jobName: execution.jobName,
233
+ jobId: execution.jobId,
234
+ runAt: runAtValue,
235
+ delaySeconds,
236
+ });
237
+ return true;
238
+ }
239
+ function isSQSEvent(event) {
240
+ return Boolean(event?.Records);
241
+ }
242
+ function extractJobName(event) {
243
+ if (typeof event.jobName === 'string')
244
+ return event.jobName;
245
+ const detail = event.detail;
246
+ if (detail && typeof detail.jobName === 'string')
247
+ return detail.jobName;
248
+ if (detail && typeof detail.name === 'string')
249
+ return detail.name;
250
+ return undefined;
251
+ }
252
+ function extractPayload(event) {
253
+ if ('payload' in event)
254
+ return event.payload;
255
+ const detail = event.detail;
256
+ if (detail && 'payload' in detail)
257
+ return detail.payload;
258
+ return undefined;
259
+ }
260
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/jobs/worker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type BaseIssue, type BaseSchema } from 'valibot';
1
+ import { type BaseIssue, type BaseSchema, type OptionalSchema } from 'valibot';
2
2
  /**
3
3
  * Schema for Prisma sort direction
4
4
  */
@@ -8,48 +8,48 @@ export declare const sortDirectionSchema: () => import("valibot").PicklistSchema
8
8
  * Supports all string-based filter operations
9
9
  */
10
10
  export declare const stringFilterSchema: () => import("valibot").ObjectSchema<{
11
- readonly equals: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
12
- readonly not: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").ObjectSchema<{
13
- readonly equals: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
11
+ readonly equals: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
12
+ readonly not: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").ObjectSchema<{
13
+ readonly equals: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
14
14
  }, undefined>], undefined>, undefined>;
15
- readonly contains: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
16
- readonly startsWith: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
17
- readonly endsWith: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
18
- readonly in: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
19
- readonly notIn: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
20
- readonly mode: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["default", "insensitive"], undefined>, undefined>;
15
+ readonly contains: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
16
+ readonly startsWith: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
17
+ readonly endsWith: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
18
+ readonly in: OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
19
+ readonly notIn: OptionalSchema<import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
20
+ readonly mode: OptionalSchema<import("valibot").PicklistSchema<["default", "insensitive"], undefined>, undefined>;
21
21
  }, undefined>;
22
22
  /**
23
23
  * Schema for Prisma IntFilter or FloatFilter operations
24
24
  * Supports numeric comparison operations
25
25
  */
26
26
  export declare const numberFilterSchema: () => import("valibot").ObjectSchema<{
27
- readonly equals: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
28
- readonly not: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
29
- readonly lt: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
30
- readonly lte: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
31
- readonly gt: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
32
- readonly gte: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
27
+ readonly equals: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
28
+ readonly not: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
29
+ readonly lt: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
30
+ readonly lte: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
31
+ readonly gt: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
32
+ readonly gte: OptionalSchema<import("valibot").UnionSchema<[import("valibot").StringSchema<undefined>, import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
33
33
  }, undefined>;
34
34
  /**
35
35
  * Schema for Prisma DateTimeFilter operations
36
36
  * Supports date comparison operations
37
37
  */
38
38
  export declare const dateFilterSchema: () => import("valibot").ObjectSchema<{
39
- readonly equals: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
40
- readonly not: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
41
- readonly lt: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
42
- readonly lte: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
43
- readonly gt: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
44
- readonly gte: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
39
+ readonly equals: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
40
+ readonly not: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
41
+ readonly lt: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
42
+ readonly lte: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
43
+ readonly gt: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
44
+ readonly gte: OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
45
45
  }, undefined>;
46
46
  /**
47
47
  * Schema for Prisma BoolFilter operations
48
48
  * Only supports equals and not operations
49
49
  */
50
50
  export declare const booleanFilterSchema: () => import("valibot").ObjectSchema<{
51
- readonly equals: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
52
- readonly not: import("valibot").OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
51
+ readonly equals: OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
52
+ readonly not: OptionalSchema<import("valibot").UnionSchema<[import("valibot").LiteralSchema<true, undefined>, import("valibot").LiteralSchema<false, undefined>], undefined>, undefined>;
53
53
  }, undefined>;
54
54
  /**
55
55
  * Schema for Prisma EnumFilter operations
@@ -57,29 +57,27 @@ export declare const booleanFilterSchema: () => import("valibot").ObjectSchema<{
57
57
  * Pass a picklist schema with the allowed enum values
58
58
  */
59
59
  export declare function enumFilterSchema<TEnum extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(enumSchema: TEnum): import("valibot").ObjectSchema<{
60
- readonly equals: import("valibot").OptionalSchema<TEnum, undefined>;
61
- readonly not: import("valibot").OptionalSchema<TEnum, undefined>;
62
- readonly in: import("valibot").OptionalSchema<import("valibot").ArraySchema<TEnum, undefined>, undefined>;
63
- readonly notIn: import("valibot").OptionalSchema<import("valibot").ArraySchema<TEnum, undefined>, undefined>;
60
+ readonly equals: OptionalSchema<TEnum, undefined>;
61
+ readonly not: OptionalSchema<TEnum, undefined>;
62
+ readonly in: OptionalSchema<import("valibot").ArraySchema<TEnum, undefined>, undefined>;
63
+ readonly notIn: OptionalSchema<import("valibot").ArraySchema<TEnum, undefined>, undefined>;
64
64
  }, undefined>;
65
65
  /**
66
66
  * Schema for nested relation filters
67
67
  * Allows validation of nested where conditions
68
68
  */
69
69
  export declare function relationFilterSchema<T extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(nestedSchema: T): import("valibot").ObjectSchema<{
70
- readonly is: import("valibot").OptionalSchema<T, undefined>;
71
- readonly isNot: import("valibot").OptionalSchema<T, undefined>;
70
+ readonly is: OptionalSchema<T, undefined>;
71
+ readonly isNot: OptionalSchema<T, undefined>;
72
72
  }, undefined>;
73
73
  /**
74
74
  * Helper to create a sort schema for a model
75
75
  * Pass an object with field names as keys and sortDirectionSchema() as values
76
76
  */
77
- export declare function createSortSchema(fields: Record<string, ReturnType<typeof sortDirectionSchema>>): import("valibot").ObjectSchema<{
78
- [k: string]: import("valibot").OptionalSchema<import("valibot").PicklistSchema<["asc", "desc"], undefined>, undefined>;
79
- }, undefined>;
77
+ export declare function createSortSchema<T extends Record<string, ReturnType<typeof sortDirectionSchema>>>(fields: T): import("valibot").ObjectSchema<{ [K in keyof T]: OptionalSchema<T[K], undefined>; }, undefined>;
80
78
  /**
81
79
  * Helper to create a filter schema for a model
82
80
  * Pass an object with field names as keys and filter schemas as values
83
81
  */
84
- export declare function createFilterSchema<T extends Record<string, BaseSchema<unknown, unknown, BaseIssue<unknown>>>>(fields: T): import("valibot").ObjectSchema<{ [K in keyof T]: import("valibot").OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>; }, undefined>;
82
+ export declare function createFilterSchema<T extends Record<string, BaseSchema<unknown, unknown, BaseIssue<unknown>>>>(fields: T): import("valibot").ObjectSchema<{ [K in keyof T]: OptionalSchema<T[K], undefined>; }, undefined>;
85
83
  //# sourceMappingURL=schema-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EAOhB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,mBAAmB,oEAAkC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;aAU3B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;aAQ3B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;aAQzB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;aAI5B,CAAC;AAEL;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,UAAU,EAAE,KAAK;;;;;cAQlB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,YAAY,EAAE,CAAC;;;cAMhB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;;cAI9F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1E,MAAM,EAAE,CAAC,qCAGJ,CAAC,yHAGP"}
1
+ {"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,KAAK,cAAc,EAMpB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,mBAAmB,oEAAkC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;aAU3B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;aAQ3B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;aAQzB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;aAI5B,CAAC;AAEL;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,UAAU,EAAE,KAAK;;;;;cAQlB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC7F,YAAY,EAAE,CAAC;;;cAMhB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,EAC/F,MAAM,EAAE,CAAC,qCAIJ,CAAC,6DAGP;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1E,MAAM,EAAE,CAAC,qCAGJ,CAAC,6DAGP"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-helpers.js","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-helpers.js","sourceRoot":"","sources":["../../src/list-query/schema-helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glasswork",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "description": "A transparent, Lambda-optimized web framework for building OpenAPI-compliant REST APIs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -120,7 +120,7 @@
120
120
  "@vitest/coverage-v8": "^4.0.15",
121
121
  "awilix": "^12.0.5",
122
122
  "dotenv": "^17.2.3",
123
- "hono": "^4.10.8",
123
+ "hono": "^4.11.0",
124
124
  "hono-openapi": "^1.1.2",
125
125
  "html-to-text": "^9.0.5",
126
126
  "mermaid": "^11.12.2",