@maroonedog/luq 0.1.0 → 0.1.1-alpha

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 (2) hide show
  1. package/README.md +19 -10
  2. package/package.json +353 -353
package/README.md CHANGED
@@ -109,21 +109,30 @@ async function loadValidator() {
109
109
  ## Custom Business Logic
110
110
 
111
111
  ```typescript
112
+ import { plugin } from "@maroonedog/luq/core/builder/plugins/plugin-creator";
113
+
112
114
  // Create reusable, type-safe business rules
113
- const customPlugin = plugin({
114
- name: "businessRules",
115
- validators: {
116
- productCode: {
117
- validate: (value: string) =>
118
- value.startsWith("PROD-") && value.length === 10,
119
- message: "Invalid product code format"
120
- }
121
- }
115
+ const productCodePlugin = plugin({
116
+ name: "productCode",
117
+ methodName: "productCode",
118
+ allowedTypes: ["string"],
119
+ category: "custom",
120
+ impl: (options?: { messageFactory?: (ctx: any) => string }) => ({
121
+ check: (value: any) => {
122
+ if (typeof value !== "string") return true;
123
+ return value.startsWith("PROD-") && value.length === 10;
124
+ },
125
+ code: "productCode",
126
+ getErrorMessage: (value: any, path: string) =>
127
+ options?.messageFactory?.({ path, value }) ||
128
+ `Invalid product code format (must be PROD-XXXXX)`,
129
+ params: [options]
130
+ })
122
131
  });
123
132
 
124
133
  // Use across your application
125
134
  const validator = Builder()
126
- .use(customPlugin)
135
+ .use(productCodePlugin)
127
136
  .for<Product>()
128
137
  .v("code", b => b.string.productCode())
129
138
  .build();
package/package.json CHANGED
@@ -1,353 +1,353 @@
1
- {
2
- "name": "@maroonedog/luq",
3
- "version": "0.1.0",
4
- "description": "Universal Model & API Definition Platform - TypeScript validation library evolving into cross-language code generation",
5
- "main": "dist/index.js",
6
- "module": "dist/index.mjs",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.mjs",
12
- "require": "./dist/index.js"
13
- },
14
- "./plugins/required": {
15
- "types": "./dist/plugins/required.d.ts",
16
- "import": "./dist/plugins/required.mjs",
17
- "require": "./dist/plugins/required.js"
18
- },
19
- "./plugins/optional": {
20
- "types": "./dist/plugins/optional.d.ts",
21
- "import": "./dist/plugins/optional.mjs",
22
- "require": "./dist/plugins/optional.js"
23
- },
24
- "./plugins/nullable": {
25
- "types": "./dist/plugins/nullable.d.ts",
26
- "import": "./dist/plugins/nullable.mjs",
27
- "require": "./dist/plugins/nullable.js"
28
- },
29
- "./plugins/stringMin": {
30
- "types": "./dist/plugins/stringMin.d.ts",
31
- "import": "./dist/plugins/stringMin.mjs",
32
- "require": "./dist/plugins/stringMin.js"
33
- },
34
- "./plugins/stringMax": {
35
- "types": "./dist/plugins/stringMax.d.ts",
36
- "import": "./dist/plugins/stringMax.mjs",
37
- "require": "./dist/plugins/stringMax.js"
38
- },
39
- "./plugins/stringEmail": {
40
- "types": "./dist/plugins/stringEmail.d.ts",
41
- "import": "./dist/plugins/stringEmail.mjs",
42
- "require": "./dist/plugins/stringEmail.js"
43
- },
44
- "./plugins/stringPattern": {
45
- "types": "./dist/plugins/stringPattern.d.ts",
46
- "import": "./dist/plugins/stringPattern.mjs",
47
- "require": "./dist/plugins/stringPattern.js"
48
- },
49
- "./plugins/stringUrl": {
50
- "types": "./dist/plugins/stringUrl.d.ts",
51
- "import": "./dist/plugins/stringUrl.mjs",
52
- "require": "./dist/plugins/stringUrl.js"
53
- },
54
- "./plugins/stringDate": {
55
- "types": "./dist/plugins/stringDate.d.ts",
56
- "import": "./dist/plugins/stringDate.mjs",
57
- "require": "./dist/plugins/stringDate.js"
58
- },
59
- "./plugins/stringDatetime": {
60
- "types": "./dist/plugins/stringDatetime.d.ts",
61
- "import": "./dist/plugins/stringDatetime.mjs",
62
- "require": "./dist/plugins/stringDatetime.js"
63
- },
64
- "./plugins/stringTime": {
65
- "types": "./dist/plugins/stringTime.d.ts",
66
- "import": "./dist/plugins/stringTime.mjs",
67
- "require": "./dist/plugins/stringTime.js"
68
- },
69
- "./plugins/stringIpv4": {
70
- "types": "./dist/plugins/stringIpv4.d.ts",
71
- "import": "./dist/plugins/stringIpv4.mjs",
72
- "require": "./dist/plugins/stringIpv4.js"
73
- },
74
- "./plugins/stringIpv6": {
75
- "types": "./dist/plugins/stringIpv6.d.ts",
76
- "import": "./dist/plugins/stringIpv6.mjs",
77
- "require": "./dist/plugins/stringIpv6.js"
78
- },
79
- "./plugins/stringHostname": {
80
- "types": "./dist/plugins/stringHostname.d.ts",
81
- "import": "./dist/plugins/stringHostname.mjs",
82
- "require": "./dist/plugins/stringHostname.js"
83
- },
84
- "./plugins/stringDuration": {
85
- "types": "./dist/plugins/stringDuration.d.ts",
86
- "import": "./dist/plugins/stringDuration.mjs",
87
- "require": "./dist/plugins/stringDuration.js"
88
- },
89
- "./plugins/stringBase64": {
90
- "types": "./dist/plugins/stringBase64.d.ts",
91
- "import": "./dist/plugins/stringBase64.mjs",
92
- "require": "./dist/plugins/stringBase64.js"
93
- },
94
- "./plugins/stringJsonPointer": {
95
- "types": "./dist/plugins/stringJsonPointer.d.ts",
96
- "import": "./dist/plugins/stringJsonPointer.mjs",
97
- "require": "./dist/plugins/stringJsonPointer.js"
98
- },
99
- "./plugins/stringRelativeJsonPointer": {
100
- "types": "./dist/plugins/stringRelativeJsonPointer.d.ts",
101
- "import": "./dist/plugins/stringRelativeJsonPointer.mjs",
102
- "require": "./dist/plugins/stringRelativeJsonPointer.js"
103
- },
104
- "./plugins/stringIri": {
105
- "types": "./dist/plugins/stringIri.d.ts",
106
- "import": "./dist/plugins/stringIri.mjs",
107
- "require": "./dist/plugins/stringIri.js"
108
- },
109
- "./plugins/stringIriReference": {
110
- "types": "./dist/plugins/stringIriReference.d.ts",
111
- "import": "./dist/plugins/stringIriReference.mjs",
112
- "require": "./dist/plugins/stringIriReference.js"
113
- },
114
- "./plugins/stringUriTemplate": {
115
- "types": "./dist/plugins/stringUriTemplate.d.ts",
116
- "import": "./dist/plugins/stringUriTemplate.mjs",
117
- "require": "./dist/plugins/stringUriTemplate.js"
118
- },
119
- "./plugins/stringContentEncoding": {
120
- "types": "./dist/plugins/stringContentEncoding.d.ts",
121
- "import": "./dist/plugins/stringContentEncoding.mjs",
122
- "require": "./dist/plugins/stringContentEncoding.js"
123
- },
124
- "./plugins/stringContentMediaType": {
125
- "types": "./dist/plugins/stringContentMediaType.d.ts",
126
- "import": "./dist/plugins/stringContentMediaType.mjs",
127
- "require": "./dist/plugins/stringContentMediaType.js"
128
- },
129
- "./plugins/uuid": {
130
- "types": "./dist/plugins/uuid.d.ts",
131
- "import": "./dist/plugins/uuid.mjs",
132
- "require": "./dist/plugins/uuid.js"
133
- },
134
- "./plugins/numberMin": {
135
- "types": "./dist/plugins/numberMin.d.ts",
136
- "import": "./dist/plugins/numberMin.mjs",
137
- "require": "./dist/plugins/numberMin.js"
138
- },
139
- "./plugins/numberMax": {
140
- "types": "./dist/plugins/numberMax.d.ts",
141
- "import": "./dist/plugins/numberMax.mjs",
142
- "require": "./dist/plugins/numberMax.js"
143
- },
144
- "./plugins/numberPositive": {
145
- "types": "./dist/plugins/numberPositive.d.ts",
146
- "import": "./dist/plugins/numberPositive.mjs",
147
- "require": "./dist/plugins/numberPositive.js"
148
- },
149
- "./plugins/numberNegative": {
150
- "types": "./dist/plugins/numberNegative.d.ts",
151
- "import": "./dist/plugins/numberNegative.mjs",
152
- "require": "./dist/plugins/numberNegative.js"
153
- },
154
- "./plugins/numberInteger": {
155
- "types": "./dist/plugins/numberInteger.d.ts",
156
- "import": "./dist/plugins/numberInteger.mjs",
157
- "require": "./dist/plugins/numberInteger.js"
158
- },
159
- "./plugins/numberMultipleOf": {
160
- "types": "./dist/plugins/numberMultipleOf.d.ts",
161
- "import": "./dist/plugins/numberMultipleOf.mjs",
162
- "require": "./dist/plugins/numberMultipleOf.js"
163
- },
164
- "./plugins/booleanTruthy": {
165
- "types": "./dist/plugins/booleanTruthy.d.ts",
166
- "import": "./dist/plugins/booleanTruthy.mjs",
167
- "require": "./dist/plugins/booleanTruthy.js"
168
- },
169
- "./plugins/booleanFalsy": {
170
- "types": "./dist/plugins/booleanFalsy.d.ts",
171
- "import": "./dist/plugins/booleanFalsy.mjs",
172
- "require": "./dist/plugins/booleanFalsy.js"
173
- },
174
- "./plugins/arrayMinLength": {
175
- "types": "./dist/plugins/arrayMinLength.d.ts",
176
- "import": "./dist/plugins/arrayMinLength.mjs",
177
- "require": "./dist/plugins/arrayMinLength.js"
178
- },
179
- "./plugins/arrayMaxLength": {
180
- "types": "./dist/plugins/arrayMaxLength.d.ts",
181
- "import": "./dist/plugins/arrayMaxLength.mjs",
182
- "require": "./dist/plugins/arrayMaxLength.js"
183
- },
184
- "./plugins/arrayUnique": {
185
- "types": "./dist/plugins/arrayUnique.d.ts",
186
- "import": "./dist/plugins/arrayUnique.mjs",
187
- "require": "./dist/plugins/arrayUnique.js"
188
- },
189
- "./plugins/arrayIncludes": {
190
- "types": "./dist/plugins/arrayIncludes.d.ts",
191
- "import": "./dist/plugins/arrayIncludes.mjs",
192
- "require": "./dist/plugins/arrayIncludes.js"
193
- },
194
- "./plugins/arrayContains": {
195
- "types": "./dist/plugins/arrayContains.d.ts",
196
- "import": "./dist/plugins/arrayContains.mjs",
197
- "require": "./dist/plugins/arrayContains.js"
198
- },
199
- "./plugins/object": {
200
- "types": "./dist/plugins/object.d.ts",
201
- "import": "./dist/plugins/object.mjs",
202
- "require": "./dist/plugins/object.js"
203
- },
204
- "./plugins/objectMinProperties": {
205
- "types": "./dist/plugins/objectMinProperties.d.ts",
206
- "import": "./dist/plugins/objectMinProperties.mjs",
207
- "require": "./dist/plugins/objectMinProperties.js"
208
- },
209
- "./plugins/objectMaxProperties": {
210
- "types": "./dist/plugins/objectMaxProperties.d.ts",
211
- "import": "./dist/plugins/objectMaxProperties.mjs",
212
- "require": "./dist/plugins/objectMaxProperties.js"
213
- },
214
- "./plugins/objectAdditionalProperties": {
215
- "types": "./dist/plugins/objectAdditionalProperties.d.ts",
216
- "import": "./dist/plugins/objectAdditionalProperties.mjs",
217
- "require": "./dist/plugins/objectAdditionalProperties.js"
218
- },
219
- "./plugins/objectPropertyNames": {
220
- "types": "./dist/plugins/objectPropertyNames.d.ts",
221
- "import": "./dist/plugins/objectPropertyNames.mjs",
222
- "require": "./dist/plugins/objectPropertyNames.js"
223
- },
224
- "./plugins/objectPatternProperties": {
225
- "types": "./dist/plugins/objectPatternProperties.d.ts",
226
- "import": "./dist/plugins/objectPatternProperties.mjs",
227
- "require": "./dist/plugins/objectPatternProperties.js"
228
- },
229
- "./plugins/objectDependentRequired": {
230
- "types": "./dist/plugins/objectDependentRequired.d.ts",
231
- "import": "./dist/plugins/objectDependentRequired.mjs",
232
- "require": "./dist/plugins/objectDependentRequired.js"
233
- },
234
- "./plugins/objectDependentSchemas": {
235
- "types": "./dist/plugins/objectDependentSchemas.d.ts",
236
- "import": "./dist/plugins/objectDependentSchemas.mjs",
237
- "require": "./dist/plugins/objectDependentSchemas.js"
238
- },
239
- "./plugins/oneOf": {
240
- "types": "./dist/plugins/oneOf.d.ts",
241
- "import": "./dist/plugins/oneOf.mjs",
242
- "require": "./dist/plugins/oneOf.js"
243
- },
244
- "./plugins/literal": {
245
- "types": "./dist/plugins/literal.d.ts",
246
- "import": "./dist/plugins/literal.mjs",
247
- "require": "./dist/plugins/literal.js"
248
- },
249
- "./plugins/compareField": {
250
- "types": "./dist/plugins/compareField.d.ts",
251
- "import": "./dist/plugins/compareField.mjs",
252
- "require": "./dist/plugins/compareField.js"
253
- },
254
- "./plugins/requiredIf": {
255
- "types": "./dist/plugins/requiredIf.d.ts",
256
- "import": "./dist/plugins/requiredIf.mjs",
257
- "require": "./dist/plugins/requiredIf.js"
258
- },
259
- "./plugins/validateIf": {
260
- "types": "./dist/plugins/validateIf.d.ts",
261
- "import": "./dist/plugins/validateIf.mjs",
262
- "require": "./dist/plugins/validateIf.js"
263
- },
264
- "./plugins/skip": {
265
- "types": "./dist/plugins/skip.d.ts",
266
- "import": "./dist/plugins/skip.mjs",
267
- "require": "./dist/plugins/skip.js"
268
- },
269
- "./plugins/transform": {
270
- "types": "./dist/plugins/transform.d.ts",
271
- "import": "./dist/plugins/transform.mjs",
272
- "require": "./dist/plugins/transform.js"
273
- },
274
- "./plugins/tupleBuilder": {
275
- "types": "./dist/plugins/tupleBuilder.d.ts",
276
- "import": "./dist/plugins/tupleBuilder.mjs",
277
- "require": "./dist/plugins/tupleBuilder.js"
278
- },
279
- "./plugins/readOnlyWriteOnly": {
280
- "types": "./dist/plugins/readOnlyWriteOnly.d.ts",
281
- "import": "./dist/plugins/readOnlyWriteOnly.mjs",
282
- "require": "./dist/plugins/readOnlyWriteOnly.js"
283
- },
284
- "./plugins/custom": {
285
- "types": "./dist/plugins/custom.d.ts",
286
- "import": "./dist/plugins/custom.mjs",
287
- "require": "./dist/plugins/custom.js"
288
- },
289
- "./plugins/jsonSchema": {
290
- "types": "./dist/plugins/jsonSchema.d.ts",
291
- "import": "./dist/plugins/jsonSchema.mjs",
292
- "require": "./dist/plugins/jsonSchema.js"
293
- },
294
- "./plugins/jsonSchemaFullFeature": {
295
- "types": "./dist/plugins/jsonSchemaFullFeature.d.ts",
296
- "import": "./dist/plugins/jsonSchemaFullFeature.mjs",
297
- "require": "./dist/plugins/jsonSchemaFullFeature.js"
298
- }
299
- },
300
- "scripts": {
301
- "build": "node build.js",
302
- "test": "jest --no-watch --no-watchman",
303
- "test:swc": "swc test --config-file .swcrc --out-dir test-compiled && jest test-compiled",
304
- "test:watch": "jest --watch",
305
- "lint": "eslint src/**/*.ts",
306
- "prepare": "npm run build",
307
- "prepublishOnly": "npm test && npm run lint",
308
- "generate-docs": "npx ts-node --project scripts/tsconfig.json scripts/docs-generator/index.ts"
309
- },
310
- "repository": {
311
- "type": "git",
312
- "url": "git+https://github.com/maroonedog/luq.git"
313
- },
314
- "homepage": "https://luq.dev",
315
- "bugs": {
316
- "url": "https://github.com/maroonedog/luq/issues"
317
- },
318
- "keywords": [
319
- "form",
320
- "validation",
321
- "typescript",
322
- "validator",
323
- "library"
324
- ],
325
- "author": "",
326
- "license": "MIT",
327
- "files": [
328
- "dist"
329
- ],
330
- "devDependencies": {
331
- "@playwright/test": "^1.54.2",
332
- "@swc/cli": "^0.4.0",
333
- "@swc/core": "^1.7.36",
334
- "@swc/jest": "^0.2.36",
335
- "@types/jest": "^29.5.14",
336
- "@typescript-eslint/eslint-plugin": "^6.21.0",
337
- "@typescript-eslint/parser": "^6.21.0",
338
- "dts-bundle-generator": "^9.5.1",
339
- "esbuild": "^0.25.5",
340
- "eslint": "^8.57.1",
341
- "jest": "^29.7.0",
342
- "prettier": "^3.6.2",
343
- "rollup": "^4.46.2",
344
- "rollup-plugin-dts": "^6.2.1",
345
- "sharp": "^0.34.3",
346
- "ts-jest": "^29.4.0",
347
- "ts-node": "^10.9.2",
348
- "tsx": "^4.20.3",
349
- "typescript": "^5.8.3",
350
- "zod": "^4.0.14"
351
- },
352
- "sideEffects": false
353
- }
1
+ {
2
+ "name": "@maroonedog/luq",
3
+ "version": "0.1.1-alpha",
4
+ "description": "Universal Model & API Definition Platform - TypeScript validation library evolving into cross-language code generation",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
13
+ },
14
+ "./plugins/required": {
15
+ "types": "./dist/plugins/required.d.ts",
16
+ "import": "./dist/plugins/required.mjs",
17
+ "require": "./dist/plugins/required.js"
18
+ },
19
+ "./plugins/optional": {
20
+ "types": "./dist/plugins/optional.d.ts",
21
+ "import": "./dist/plugins/optional.mjs",
22
+ "require": "./dist/plugins/optional.js"
23
+ },
24
+ "./plugins/nullable": {
25
+ "types": "./dist/plugins/nullable.d.ts",
26
+ "import": "./dist/plugins/nullable.mjs",
27
+ "require": "./dist/plugins/nullable.js"
28
+ },
29
+ "./plugins/stringMin": {
30
+ "types": "./dist/plugins/stringMin.d.ts",
31
+ "import": "./dist/plugins/stringMin.mjs",
32
+ "require": "./dist/plugins/stringMin.js"
33
+ },
34
+ "./plugins/stringMax": {
35
+ "types": "./dist/plugins/stringMax.d.ts",
36
+ "import": "./dist/plugins/stringMax.mjs",
37
+ "require": "./dist/plugins/stringMax.js"
38
+ },
39
+ "./plugins/stringEmail": {
40
+ "types": "./dist/plugins/stringEmail.d.ts",
41
+ "import": "./dist/plugins/stringEmail.mjs",
42
+ "require": "./dist/plugins/stringEmail.js"
43
+ },
44
+ "./plugins/stringPattern": {
45
+ "types": "./dist/plugins/stringPattern.d.ts",
46
+ "import": "./dist/plugins/stringPattern.mjs",
47
+ "require": "./dist/plugins/stringPattern.js"
48
+ },
49
+ "./plugins/stringUrl": {
50
+ "types": "./dist/plugins/stringUrl.d.ts",
51
+ "import": "./dist/plugins/stringUrl.mjs",
52
+ "require": "./dist/plugins/stringUrl.js"
53
+ },
54
+ "./plugins/stringDate": {
55
+ "types": "./dist/plugins/stringDate.d.ts",
56
+ "import": "./dist/plugins/stringDate.mjs",
57
+ "require": "./dist/plugins/stringDate.js"
58
+ },
59
+ "./plugins/stringDatetime": {
60
+ "types": "./dist/plugins/stringDatetime.d.ts",
61
+ "import": "./dist/plugins/stringDatetime.mjs",
62
+ "require": "./dist/plugins/stringDatetime.js"
63
+ },
64
+ "./plugins/stringTime": {
65
+ "types": "./dist/plugins/stringTime.d.ts",
66
+ "import": "./dist/plugins/stringTime.mjs",
67
+ "require": "./dist/plugins/stringTime.js"
68
+ },
69
+ "./plugins/stringIpv4": {
70
+ "types": "./dist/plugins/stringIpv4.d.ts",
71
+ "import": "./dist/plugins/stringIpv4.mjs",
72
+ "require": "./dist/plugins/stringIpv4.js"
73
+ },
74
+ "./plugins/stringIpv6": {
75
+ "types": "./dist/plugins/stringIpv6.d.ts",
76
+ "import": "./dist/plugins/stringIpv6.mjs",
77
+ "require": "./dist/plugins/stringIpv6.js"
78
+ },
79
+ "./plugins/stringHostname": {
80
+ "types": "./dist/plugins/stringHostname.d.ts",
81
+ "import": "./dist/plugins/stringHostname.mjs",
82
+ "require": "./dist/plugins/stringHostname.js"
83
+ },
84
+ "./plugins/stringDuration": {
85
+ "types": "./dist/plugins/stringDuration.d.ts",
86
+ "import": "./dist/plugins/stringDuration.mjs",
87
+ "require": "./dist/plugins/stringDuration.js"
88
+ },
89
+ "./plugins/stringBase64": {
90
+ "types": "./dist/plugins/stringBase64.d.ts",
91
+ "import": "./dist/plugins/stringBase64.mjs",
92
+ "require": "./dist/plugins/stringBase64.js"
93
+ },
94
+ "./plugins/stringJsonPointer": {
95
+ "types": "./dist/plugins/stringJsonPointer.d.ts",
96
+ "import": "./dist/plugins/stringJsonPointer.mjs",
97
+ "require": "./dist/plugins/stringJsonPointer.js"
98
+ },
99
+ "./plugins/stringRelativeJsonPointer": {
100
+ "types": "./dist/plugins/stringRelativeJsonPointer.d.ts",
101
+ "import": "./dist/plugins/stringRelativeJsonPointer.mjs",
102
+ "require": "./dist/plugins/stringRelativeJsonPointer.js"
103
+ },
104
+ "./plugins/stringIri": {
105
+ "types": "./dist/plugins/stringIri.d.ts",
106
+ "import": "./dist/plugins/stringIri.mjs",
107
+ "require": "./dist/plugins/stringIri.js"
108
+ },
109
+ "./plugins/stringIriReference": {
110
+ "types": "./dist/plugins/stringIriReference.d.ts",
111
+ "import": "./dist/plugins/stringIriReference.mjs",
112
+ "require": "./dist/plugins/stringIriReference.js"
113
+ },
114
+ "./plugins/stringUriTemplate": {
115
+ "types": "./dist/plugins/stringUriTemplate.d.ts",
116
+ "import": "./dist/plugins/stringUriTemplate.mjs",
117
+ "require": "./dist/plugins/stringUriTemplate.js"
118
+ },
119
+ "./plugins/stringContentEncoding": {
120
+ "types": "./dist/plugins/stringContentEncoding.d.ts",
121
+ "import": "./dist/plugins/stringContentEncoding.mjs",
122
+ "require": "./dist/plugins/stringContentEncoding.js"
123
+ },
124
+ "./plugins/stringContentMediaType": {
125
+ "types": "./dist/plugins/stringContentMediaType.d.ts",
126
+ "import": "./dist/plugins/stringContentMediaType.mjs",
127
+ "require": "./dist/plugins/stringContentMediaType.js"
128
+ },
129
+ "./plugins/uuid": {
130
+ "types": "./dist/plugins/uuid.d.ts",
131
+ "import": "./dist/plugins/uuid.mjs",
132
+ "require": "./dist/plugins/uuid.js"
133
+ },
134
+ "./plugins/numberMin": {
135
+ "types": "./dist/plugins/numberMin.d.ts",
136
+ "import": "./dist/plugins/numberMin.mjs",
137
+ "require": "./dist/plugins/numberMin.js"
138
+ },
139
+ "./plugins/numberMax": {
140
+ "types": "./dist/plugins/numberMax.d.ts",
141
+ "import": "./dist/plugins/numberMax.mjs",
142
+ "require": "./dist/plugins/numberMax.js"
143
+ },
144
+ "./plugins/numberPositive": {
145
+ "types": "./dist/plugins/numberPositive.d.ts",
146
+ "import": "./dist/plugins/numberPositive.mjs",
147
+ "require": "./dist/plugins/numberPositive.js"
148
+ },
149
+ "./plugins/numberNegative": {
150
+ "types": "./dist/plugins/numberNegative.d.ts",
151
+ "import": "./dist/plugins/numberNegative.mjs",
152
+ "require": "./dist/plugins/numberNegative.js"
153
+ },
154
+ "./plugins/numberInteger": {
155
+ "types": "./dist/plugins/numberInteger.d.ts",
156
+ "import": "./dist/plugins/numberInteger.mjs",
157
+ "require": "./dist/plugins/numberInteger.js"
158
+ },
159
+ "./plugins/numberMultipleOf": {
160
+ "types": "./dist/plugins/numberMultipleOf.d.ts",
161
+ "import": "./dist/plugins/numberMultipleOf.mjs",
162
+ "require": "./dist/plugins/numberMultipleOf.js"
163
+ },
164
+ "./plugins/booleanTruthy": {
165
+ "types": "./dist/plugins/booleanTruthy.d.ts",
166
+ "import": "./dist/plugins/booleanTruthy.mjs",
167
+ "require": "./dist/plugins/booleanTruthy.js"
168
+ },
169
+ "./plugins/booleanFalsy": {
170
+ "types": "./dist/plugins/booleanFalsy.d.ts",
171
+ "import": "./dist/plugins/booleanFalsy.mjs",
172
+ "require": "./dist/plugins/booleanFalsy.js"
173
+ },
174
+ "./plugins/arrayMinLength": {
175
+ "types": "./dist/plugins/arrayMinLength.d.ts",
176
+ "import": "./dist/plugins/arrayMinLength.mjs",
177
+ "require": "./dist/plugins/arrayMinLength.js"
178
+ },
179
+ "./plugins/arrayMaxLength": {
180
+ "types": "./dist/plugins/arrayMaxLength.d.ts",
181
+ "import": "./dist/plugins/arrayMaxLength.mjs",
182
+ "require": "./dist/plugins/arrayMaxLength.js"
183
+ },
184
+ "./plugins/arrayUnique": {
185
+ "types": "./dist/plugins/arrayUnique.d.ts",
186
+ "import": "./dist/plugins/arrayUnique.mjs",
187
+ "require": "./dist/plugins/arrayUnique.js"
188
+ },
189
+ "./plugins/arrayIncludes": {
190
+ "types": "./dist/plugins/arrayIncludes.d.ts",
191
+ "import": "./dist/plugins/arrayIncludes.mjs",
192
+ "require": "./dist/plugins/arrayIncludes.js"
193
+ },
194
+ "./plugins/arrayContains": {
195
+ "types": "./dist/plugins/arrayContains.d.ts",
196
+ "import": "./dist/plugins/arrayContains.mjs",
197
+ "require": "./dist/plugins/arrayContains.js"
198
+ },
199
+ "./plugins/object": {
200
+ "types": "./dist/plugins/object.d.ts",
201
+ "import": "./dist/plugins/object.mjs",
202
+ "require": "./dist/plugins/object.js"
203
+ },
204
+ "./plugins/objectMinProperties": {
205
+ "types": "./dist/plugins/objectMinProperties.d.ts",
206
+ "import": "./dist/plugins/objectMinProperties.mjs",
207
+ "require": "./dist/plugins/objectMinProperties.js"
208
+ },
209
+ "./plugins/objectMaxProperties": {
210
+ "types": "./dist/plugins/objectMaxProperties.d.ts",
211
+ "import": "./dist/plugins/objectMaxProperties.mjs",
212
+ "require": "./dist/plugins/objectMaxProperties.js"
213
+ },
214
+ "./plugins/objectAdditionalProperties": {
215
+ "types": "./dist/plugins/objectAdditionalProperties.d.ts",
216
+ "import": "./dist/plugins/objectAdditionalProperties.mjs",
217
+ "require": "./dist/plugins/objectAdditionalProperties.js"
218
+ },
219
+ "./plugins/objectPropertyNames": {
220
+ "types": "./dist/plugins/objectPropertyNames.d.ts",
221
+ "import": "./dist/plugins/objectPropertyNames.mjs",
222
+ "require": "./dist/plugins/objectPropertyNames.js"
223
+ },
224
+ "./plugins/objectPatternProperties": {
225
+ "types": "./dist/plugins/objectPatternProperties.d.ts",
226
+ "import": "./dist/plugins/objectPatternProperties.mjs",
227
+ "require": "./dist/plugins/objectPatternProperties.js"
228
+ },
229
+ "./plugins/objectDependentRequired": {
230
+ "types": "./dist/plugins/objectDependentRequired.d.ts",
231
+ "import": "./dist/plugins/objectDependentRequired.mjs",
232
+ "require": "./dist/plugins/objectDependentRequired.js"
233
+ },
234
+ "./plugins/objectDependentSchemas": {
235
+ "types": "./dist/plugins/objectDependentSchemas.d.ts",
236
+ "import": "./dist/plugins/objectDependentSchemas.mjs",
237
+ "require": "./dist/plugins/objectDependentSchemas.js"
238
+ },
239
+ "./plugins/oneOf": {
240
+ "types": "./dist/plugins/oneOf.d.ts",
241
+ "import": "./dist/plugins/oneOf.mjs",
242
+ "require": "./dist/plugins/oneOf.js"
243
+ },
244
+ "./plugins/literal": {
245
+ "types": "./dist/plugins/literal.d.ts",
246
+ "import": "./dist/plugins/literal.mjs",
247
+ "require": "./dist/plugins/literal.js"
248
+ },
249
+ "./plugins/compareField": {
250
+ "types": "./dist/plugins/compareField.d.ts",
251
+ "import": "./dist/plugins/compareField.mjs",
252
+ "require": "./dist/plugins/compareField.js"
253
+ },
254
+ "./plugins/requiredIf": {
255
+ "types": "./dist/plugins/requiredIf.d.ts",
256
+ "import": "./dist/plugins/requiredIf.mjs",
257
+ "require": "./dist/plugins/requiredIf.js"
258
+ },
259
+ "./plugins/validateIf": {
260
+ "types": "./dist/plugins/validateIf.d.ts",
261
+ "import": "./dist/plugins/validateIf.mjs",
262
+ "require": "./dist/plugins/validateIf.js"
263
+ },
264
+ "./plugins/skip": {
265
+ "types": "./dist/plugins/skip.d.ts",
266
+ "import": "./dist/plugins/skip.mjs",
267
+ "require": "./dist/plugins/skip.js"
268
+ },
269
+ "./plugins/transform": {
270
+ "types": "./dist/plugins/transform.d.ts",
271
+ "import": "./dist/plugins/transform.mjs",
272
+ "require": "./dist/plugins/transform.js"
273
+ },
274
+ "./plugins/tupleBuilder": {
275
+ "types": "./dist/plugins/tupleBuilder.d.ts",
276
+ "import": "./dist/plugins/tupleBuilder.mjs",
277
+ "require": "./dist/plugins/tupleBuilder.js"
278
+ },
279
+ "./plugins/readOnlyWriteOnly": {
280
+ "types": "./dist/plugins/readOnlyWriteOnly.d.ts",
281
+ "import": "./dist/plugins/readOnlyWriteOnly.mjs",
282
+ "require": "./dist/plugins/readOnlyWriteOnly.js"
283
+ },
284
+ "./plugins/custom": {
285
+ "types": "./dist/plugins/custom.d.ts",
286
+ "import": "./dist/plugins/custom.mjs",
287
+ "require": "./dist/plugins/custom.js"
288
+ },
289
+ "./plugins/jsonSchema": {
290
+ "types": "./dist/plugins/jsonSchema.d.ts",
291
+ "import": "./dist/plugins/jsonSchema.mjs",
292
+ "require": "./dist/plugins/jsonSchema.js"
293
+ },
294
+ "./plugins/jsonSchemaFullFeature": {
295
+ "types": "./dist/plugins/jsonSchemaFullFeature.d.ts",
296
+ "import": "./dist/plugins/jsonSchemaFullFeature.mjs",
297
+ "require": "./dist/plugins/jsonSchemaFullFeature.js"
298
+ }
299
+ },
300
+ "scripts": {
301
+ "build": "node build.js",
302
+ "test": "jest --no-watch --no-watchman",
303
+ "test:swc": "swc test --config-file .swcrc --out-dir test-compiled && jest test-compiled",
304
+ "test:watch": "jest --watch",
305
+ "lint": "eslint src/**/*.ts",
306
+ "prepare": "npm run build",
307
+ "prepublishOnly": "npm test && npm run lint",
308
+ "generate-docs": "npx ts-node --project scripts/tsconfig.json scripts/docs-generator/index.ts"
309
+ },
310
+ "repository": {
311
+ "type": "git",
312
+ "url": "git+https://github.com/maroonedog/luq.git"
313
+ },
314
+ "homepage": "https://luq.dev",
315
+ "bugs": {
316
+ "url": "https://github.com/maroonedog/luq/issues"
317
+ },
318
+ "keywords": [
319
+ "form",
320
+ "validation",
321
+ "typescript",
322
+ "validator",
323
+ "library"
324
+ ],
325
+ "author": "",
326
+ "license": "MIT",
327
+ "files": [
328
+ "dist"
329
+ ],
330
+ "devDependencies": {
331
+ "@playwright/test": "^1.54.2",
332
+ "@swc/cli": "^0.4.0",
333
+ "@swc/core": "^1.7.36",
334
+ "@swc/jest": "^0.2.36",
335
+ "@types/jest": "^29.5.14",
336
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
337
+ "@typescript-eslint/parser": "^6.21.0",
338
+ "dts-bundle-generator": "^9.5.1",
339
+ "esbuild": "^0.25.5",
340
+ "eslint": "^8.57.1",
341
+ "jest": "^29.7.0",
342
+ "prettier": "^3.6.2",
343
+ "rollup": "^4.46.2",
344
+ "rollup-plugin-dts": "^6.2.1",
345
+ "sharp": "^0.34.3",
346
+ "ts-jest": "^29.4.0",
347
+ "ts-node": "^10.9.2",
348
+ "tsx": "^4.20.3",
349
+ "typescript": "^5.8.3",
350
+ "zod": "^4.0.14"
351
+ },
352
+ "sideEffects": false
353
+ }