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.
- package/dist/core/types.d.ts +6 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/email/compiler/code-generator.d.ts +11 -0
- package/dist/email/compiler/code-generator.d.ts.map +1 -0
- package/dist/email/compiler/code-generator.js +319 -0
- package/dist/email/compiler/code-generator.js.map +1 -0
- package/dist/http/route-helpers.d.ts +4 -9
- package/dist/http/route-helpers.d.ts.map +1 -1
- package/dist/http/route-helpers.js +1 -0
- package/dist/http/route-helpers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/define-job.d.ts +25 -0
- package/dist/jobs/define-job.d.ts.map +1 -0
- package/dist/jobs/define-job.js +12 -0
- package/dist/jobs/define-job.js.map +1 -0
- package/dist/jobs/drivers/mock-driver.d.ts +38 -0
- package/dist/jobs/drivers/mock-driver.d.ts.map +1 -0
- package/dist/jobs/drivers/mock-driver.js +76 -0
- package/dist/jobs/drivers/mock-driver.js.map +1 -0
- package/dist/jobs/drivers/sqs-driver.d.ts +52 -0
- package/dist/jobs/drivers/sqs-driver.d.ts.map +1 -0
- package/dist/jobs/drivers/sqs-driver.js +191 -0
- package/dist/jobs/drivers/sqs-driver.js.map +1 -0
- package/dist/jobs/errors.d.ts +40 -0
- package/dist/jobs/errors.d.ts.map +1 -0
- package/dist/jobs/errors.js +61 -0
- package/dist/jobs/errors.js.map +1 -0
- package/dist/jobs/index.d.ts +11 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +10 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/job-registry.d.ts +33 -0
- package/dist/jobs/job-registry.d.ts.map +1 -0
- package/dist/jobs/job-registry.js +56 -0
- package/dist/jobs/job-registry.js.map +1 -0
- package/dist/jobs/job-service.d.ts +44 -0
- package/dist/jobs/job-service.d.ts.map +1 -0
- package/dist/jobs/job-service.js +105 -0
- package/dist/jobs/job-service.js.map +1 -0
- package/dist/jobs/periodic-job.d.ts +6 -0
- package/dist/jobs/periodic-job.d.ts.map +1 -0
- package/dist/jobs/periodic-job.js +11 -0
- package/dist/jobs/periodic-job.js.map +1 -0
- package/dist/jobs/schedule-constants.d.ts +9 -0
- package/dist/jobs/schedule-constants.d.ts.map +1 -0
- package/dist/jobs/schedule-constants.js +9 -0
- package/dist/jobs/schedule-constants.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +17 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +47 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/types.d.ts +156 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +2 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/utils.d.ts +24 -0
- package/dist/jobs/utils.d.ts.map +1 -0
- package/dist/jobs/utils.js +69 -0
- package/dist/jobs/utils.js.map +1 -0
- package/dist/jobs/worker.d.ts +36 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +260 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/list-query/schema-helpers.d.ts +32 -34
- package/dist/list-query/schema-helpers.d.ts.map +1 -1
- package/dist/list-query/schema-helpers.js.map +1 -1
- 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:
|
|
12
|
-
readonly not:
|
|
13
|
-
readonly equals:
|
|
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:
|
|
16
|
-
readonly startsWith:
|
|
17
|
-
readonly endsWith:
|
|
18
|
-
readonly in:
|
|
19
|
-
readonly notIn:
|
|
20
|
-
readonly mode:
|
|
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:
|
|
28
|
-
readonly not:
|
|
29
|
-
readonly lt:
|
|
30
|
-
readonly lte:
|
|
31
|
-
readonly gt:
|
|
32
|
-
readonly gte:
|
|
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:
|
|
40
|
-
readonly not:
|
|
41
|
-
readonly lt:
|
|
42
|
-
readonly lte:
|
|
43
|
-
readonly gt:
|
|
44
|
-
readonly gte:
|
|
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:
|
|
52
|
-
readonly not:
|
|
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:
|
|
61
|
-
readonly not:
|
|
62
|
-
readonly in:
|
|
63
|
-
readonly notIn:
|
|
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:
|
|
71
|
-
readonly isNot:
|
|
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
|
|
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]:
|
|
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,
|
|
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":"AAAA,OAAO,EACL,KAAK,EAGL,OAAO,
|
|
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.
|
|
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.
|
|
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",
|