@arrirpc/schema 0.54.0 → 0.57.0
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/index.cjs +62 -4
- package/dist/index.d.cts +8 -25
- package/dist/index.d.mts +8 -25
- package/dist/index.d.ts +8 -25
- package/dist/index.mjs +62 -5
- package/dist/shared/{schema.7414d46a.d.cts → schema.16e4d5ba.d.cts} +6 -5
- package/dist/shared/{schema.7414d46a.d.mts → schema.16e4d5ba.d.mts} +6 -5
- package/dist/shared/{schema.7414d46a.d.ts → schema.16e4d5ba.d.ts} +6 -5
- package/dist/shared/{schema.79ea38f8.mjs → schema.8f2f6fef.mjs} +114 -86
- package/dist/shared/{schema.4c9064ee.cjs → schema.e933693f.cjs} +113 -85
- package/dist/testSuites.cjs +1 -1
- package/dist/testSuites.d.cts +1 -1
- package/dist/testSuites.d.mts +1 -1
- package/dist/testSuites.d.ts +1 -1
- package/dist/testSuites.mjs +1 -1
- package/package.json +3 -3
|
@@ -79,8 +79,8 @@ function any(options = {}) {
|
|
|
79
79
|
isDeprecated: options.isDeprecated,
|
|
80
80
|
[SCHEMA_METADATA]: {
|
|
81
81
|
output: void 0,
|
|
82
|
-
parse: (input,
|
|
83
|
-
if (
|
|
82
|
+
parse: (input, context) => {
|
|
83
|
+
if (context.instancePath.length === 0 && typeof input === "string") {
|
|
84
84
|
try {
|
|
85
85
|
return JSON.parse(input);
|
|
86
86
|
} catch {
|
|
@@ -89,8 +89,8 @@ function any(options = {}) {
|
|
|
89
89
|
}
|
|
90
90
|
return input;
|
|
91
91
|
},
|
|
92
|
-
coerce: (input,
|
|
93
|
-
if (
|
|
92
|
+
coerce: (input, context) => {
|
|
93
|
+
if (context.instancePath.length === 0 && typeof input === "string") {
|
|
94
94
|
try {
|
|
95
95
|
return JSON.parse(input);
|
|
96
96
|
} catch {
|
|
@@ -117,24 +117,24 @@ function array(schema, opts = {}) {
|
|
|
117
117
|
isDeprecated: opts.isDeprecated,
|
|
118
118
|
[SCHEMA_METADATA]: {
|
|
119
119
|
output: [],
|
|
120
|
-
parse(input,
|
|
121
|
-
return parse$6(schema, input,
|
|
120
|
+
parse(input, context) {
|
|
121
|
+
return parse$6(schema, input, context, false);
|
|
122
122
|
},
|
|
123
|
-
coerce(input,
|
|
124
|
-
return parse$6(schema, input,
|
|
123
|
+
coerce(input, context) {
|
|
124
|
+
return parse$6(schema, input, context, true);
|
|
125
125
|
},
|
|
126
126
|
validate(input) {
|
|
127
127
|
return validate$5(schema, input);
|
|
128
128
|
},
|
|
129
|
-
serialize(input,
|
|
129
|
+
serialize(input, context) {
|
|
130
130
|
const strParts = [];
|
|
131
131
|
for (let i = 0; i < input.length; i++) {
|
|
132
132
|
const item = input[i];
|
|
133
133
|
strParts.push(
|
|
134
134
|
schema.metadata[SCHEMA_METADATA].serialize(item, {
|
|
135
|
-
instancePath: `${
|
|
136
|
-
schemaPath: `${
|
|
137
|
-
errors:
|
|
135
|
+
instancePath: `${context.instancePath}/${i}`,
|
|
136
|
+
schemaPath: `${context.schemaPath}/elements`,
|
|
137
|
+
errors: context.errors
|
|
138
138
|
})
|
|
139
139
|
);
|
|
140
140
|
}
|
|
@@ -221,7 +221,7 @@ function boolean(opts = {}) {
|
|
|
221
221
|
parse: parse$5,
|
|
222
222
|
validate: validate$4,
|
|
223
223
|
serialize: serialize$2,
|
|
224
|
-
coerce(input,
|
|
224
|
+
coerce(input, context) {
|
|
225
225
|
if (validate$4(input)) {
|
|
226
226
|
return input;
|
|
227
227
|
}
|
|
@@ -237,10 +237,10 @@ function boolean(opts = {}) {
|
|
|
237
237
|
case 0:
|
|
238
238
|
return false;
|
|
239
239
|
}
|
|
240
|
-
|
|
241
|
-
instancePath:
|
|
242
|
-
schemaPath:
|
|
243
|
-
message: `Error at ${
|
|
240
|
+
context.errors.push({
|
|
241
|
+
instancePath: context.instancePath,
|
|
242
|
+
schemaPath: context.schemaPath,
|
|
243
|
+
message: `Error at ${context.instancePath}. Unable to coerce ${input} to boolean.`
|
|
244
244
|
});
|
|
245
245
|
return void 0;
|
|
246
246
|
}
|
|
@@ -369,12 +369,12 @@ function safeCoerce(schema, input) {
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
function serialize$1(schema, input) {
|
|
372
|
-
const
|
|
372
|
+
const context = {
|
|
373
373
|
instancePath: "",
|
|
374
374
|
schemaPath: "",
|
|
375
375
|
errors: []
|
|
376
376
|
};
|
|
377
|
-
return schema.metadata[SCHEMA_METADATA].serialize(input,
|
|
377
|
+
return schema.metadata[SCHEMA_METADATA].serialize(input, context);
|
|
378
378
|
}
|
|
379
379
|
function errors(schema, input) {
|
|
380
380
|
const errorList = [];
|
|
@@ -423,22 +423,25 @@ function discriminator(propA, propB, propC) {
|
|
|
423
423
|
validate(input) {
|
|
424
424
|
return validate$2(discriminator2, mapping, input);
|
|
425
425
|
},
|
|
426
|
-
parse(input,
|
|
427
|
-
return parse$3(discriminator2, mapping, input,
|
|
426
|
+
parse(input, context) {
|
|
427
|
+
return parse$3(discriminator2, mapping, input, context, false);
|
|
428
428
|
},
|
|
429
|
-
coerce: (input,
|
|
430
|
-
return parse$3(discriminator2, mapping, input,
|
|
429
|
+
coerce: (input, context) => {
|
|
430
|
+
return parse$3(discriminator2, mapping, input, context, true);
|
|
431
431
|
},
|
|
432
|
-
serialize(input,
|
|
432
|
+
serialize(input, context) {
|
|
433
433
|
const discriminatorVal = input[discriminator2] ?? "";
|
|
434
434
|
const targetSchema = mapping[discriminatorVal];
|
|
435
435
|
if (!targetSchema) {
|
|
436
|
-
throw discriminatorMappingError(
|
|
436
|
+
throw discriminatorMappingError(
|
|
437
|
+
discriminatorVal,
|
|
438
|
+
context
|
|
439
|
+
);
|
|
437
440
|
}
|
|
438
441
|
const result = targetSchema.metadata[SCHEMA_METADATA].serialize(input, {
|
|
439
|
-
instancePath:
|
|
440
|
-
schemaPath: `${
|
|
441
|
-
errors:
|
|
442
|
+
instancePath: context.instancePath,
|
|
443
|
+
schemaPath: `${context.schemaPath}/mapping/${discriminatorVal}`,
|
|
444
|
+
errors: context.errors,
|
|
442
445
|
discriminatorKey: discriminator2,
|
|
443
446
|
discriminatorValue: discriminatorVal
|
|
444
447
|
});
|
|
@@ -561,35 +564,35 @@ function enumerator(paramA, paramB) {
|
|
|
561
564
|
isDeprecated: meta?.isDeprecated,
|
|
562
565
|
[SCHEMA_METADATA]: {
|
|
563
566
|
output: paramA[0] ?? "",
|
|
564
|
-
parse(input,
|
|
567
|
+
parse(input, context) {
|
|
565
568
|
if (isType(input)) {
|
|
566
569
|
return input;
|
|
567
570
|
}
|
|
568
|
-
|
|
569
|
-
instancePath:
|
|
570
|
-
schemaPath: `${
|
|
571
|
-
message: `Error at ${
|
|
571
|
+
context.errors.push({
|
|
572
|
+
instancePath: context.instancePath,
|
|
573
|
+
schemaPath: `${context.schemaPath}/enum`,
|
|
574
|
+
message: `Error at ${context.instancePath}. Invalid enum value. Expected one of the following values: [${enumVal.join(
|
|
572
575
|
", "
|
|
573
576
|
)}]`
|
|
574
577
|
});
|
|
575
578
|
return void 0;
|
|
576
579
|
},
|
|
577
|
-
coerce: (input,
|
|
580
|
+
coerce: (input, context) => {
|
|
578
581
|
if (isType(input)) {
|
|
579
582
|
return input;
|
|
580
583
|
}
|
|
581
|
-
|
|
582
|
-
instancePath:
|
|
583
|
-
schemaPath: `${
|
|
584
|
-
message: `Error at ${
|
|
584
|
+
context.errors.push({
|
|
585
|
+
instancePath: context.instancePath,
|
|
586
|
+
schemaPath: `${context.schemaPath}/enum`,
|
|
587
|
+
message: `Error at ${context.instancePath}. Invalid enum value. Expected one of the following values: [${enumVal.join(
|
|
585
588
|
", "
|
|
586
589
|
)}]`
|
|
587
590
|
});
|
|
588
591
|
return void 0;
|
|
589
592
|
},
|
|
590
593
|
validate: isType,
|
|
591
|
-
serialize(input,
|
|
592
|
-
if (
|
|
594
|
+
serialize(input, context) {
|
|
595
|
+
if (context.instancePath.length === 0) {
|
|
593
596
|
return input;
|
|
594
597
|
}
|
|
595
598
|
return `"${input}"`;
|
|
@@ -869,8 +872,8 @@ function int64(opts = {}) {
|
|
|
869
872
|
validate: isType,
|
|
870
873
|
parse,
|
|
871
874
|
coerce: parse,
|
|
872
|
-
serialize(input,
|
|
873
|
-
if (
|
|
875
|
+
serialize(input, context) {
|
|
876
|
+
if (context.instancePath.length === 0) {
|
|
874
877
|
return input.toString();
|
|
875
878
|
}
|
|
876
879
|
return `"${input.toString()}"`;
|
|
@@ -926,8 +929,8 @@ function uint64(opts = {}) {
|
|
|
926
929
|
validate: isType,
|
|
927
930
|
parse,
|
|
928
931
|
coerce: parse,
|
|
929
|
-
serialize(input,
|
|
930
|
-
if (
|
|
932
|
+
serialize(input, context) {
|
|
933
|
+
if (context.instancePath.length === 0) {
|
|
931
934
|
return input.toString();
|
|
932
935
|
}
|
|
933
936
|
return `"${input.toString()}"`;
|
|
@@ -1062,11 +1065,11 @@ function object(propA, propB) {
|
|
|
1062
1065
|
isDeprecated: opts.isDeprecated,
|
|
1063
1066
|
[SCHEMA_METADATA]: {
|
|
1064
1067
|
output: {},
|
|
1065
|
-
parse(input2,
|
|
1068
|
+
parse(input2, context) {
|
|
1066
1069
|
return parseObjectSchema(
|
|
1067
1070
|
schema,
|
|
1068
1071
|
input2,
|
|
1069
|
-
|
|
1072
|
+
context,
|
|
1070
1073
|
false
|
|
1071
1074
|
);
|
|
1072
1075
|
},
|
|
@@ -1081,11 +1084,11 @@ function object(propA, propB) {
|
|
|
1081
1084
|
validate(input2) {
|
|
1082
1085
|
return validateObjectSchema(schema, input2);
|
|
1083
1086
|
},
|
|
1084
|
-
serialize(input2,
|
|
1087
|
+
serialize(input2, context) {
|
|
1085
1088
|
return serializeObject(
|
|
1086
1089
|
schema,
|
|
1087
1090
|
input2,
|
|
1088
|
-
|
|
1091
|
+
context
|
|
1089
1092
|
);
|
|
1090
1093
|
}
|
|
1091
1094
|
}
|
|
@@ -1234,17 +1237,27 @@ function pick(inputSchema, keys, opts = {}) {
|
|
|
1234
1237
|
isDeprecated: opts.isDeprecated,
|
|
1235
1238
|
[SCHEMA_METADATA]: {
|
|
1236
1239
|
output: {},
|
|
1237
|
-
parse: (input,
|
|
1238
|
-
return parseObjectSchema(
|
|
1240
|
+
parse: (input, context) => {
|
|
1241
|
+
return parseObjectSchema(
|
|
1242
|
+
schema,
|
|
1243
|
+
input,
|
|
1244
|
+
context,
|
|
1245
|
+
true
|
|
1246
|
+
);
|
|
1239
1247
|
},
|
|
1240
|
-
coerce(input,
|
|
1241
|
-
return parseObjectSchema(
|
|
1248
|
+
coerce(input, context) {
|
|
1249
|
+
return parseObjectSchema(
|
|
1250
|
+
schema,
|
|
1251
|
+
input,
|
|
1252
|
+
context,
|
|
1253
|
+
false
|
|
1254
|
+
);
|
|
1242
1255
|
},
|
|
1243
1256
|
validate(input) {
|
|
1244
1257
|
return validateObjectSchema(schema, input);
|
|
1245
1258
|
},
|
|
1246
|
-
serialize(input,
|
|
1247
|
-
return serializeObject(schema, input,
|
|
1259
|
+
serialize(input, context) {
|
|
1260
|
+
return serializeObject(schema, input, context);
|
|
1248
1261
|
}
|
|
1249
1262
|
}
|
|
1250
1263
|
}
|
|
@@ -1290,11 +1303,16 @@ function omit(inputSchema, keys, opts = {}) {
|
|
|
1290
1303
|
parse(input, data) {
|
|
1291
1304
|
return parseObjectSchema(schema, input, data, false);
|
|
1292
1305
|
},
|
|
1293
|
-
serialize(input,
|
|
1294
|
-
return serializeObject(schema, input,
|
|
1306
|
+
serialize(input, context) {
|
|
1307
|
+
return serializeObject(schema, input, context);
|
|
1295
1308
|
},
|
|
1296
|
-
coerce(input,
|
|
1297
|
-
return parseObjectSchema(
|
|
1309
|
+
coerce(input, context) {
|
|
1310
|
+
return parseObjectSchema(
|
|
1311
|
+
schema,
|
|
1312
|
+
input,
|
|
1313
|
+
context,
|
|
1314
|
+
true
|
|
1315
|
+
);
|
|
1298
1316
|
}
|
|
1299
1317
|
}
|
|
1300
1318
|
}
|
|
@@ -1355,15 +1373,15 @@ function extend(baseSchema, inputSchema, opts = {}) {
|
|
|
1355
1373
|
description: opts.description,
|
|
1356
1374
|
[SCHEMA_METADATA]: {
|
|
1357
1375
|
output: {},
|
|
1358
|
-
parse(input,
|
|
1359
|
-
return parseObjectSchema(schema, input,
|
|
1376
|
+
parse(input, context) {
|
|
1377
|
+
return parseObjectSchema(schema, input, context, false);
|
|
1360
1378
|
},
|
|
1361
|
-
coerce(input,
|
|
1362
|
-
return parseObjectSchema(schema, input,
|
|
1379
|
+
coerce(input, context) {
|
|
1380
|
+
return parseObjectSchema(schema, input, context, true);
|
|
1363
1381
|
},
|
|
1364
1382
|
validate: isType,
|
|
1365
|
-
serialize(input,
|
|
1366
|
-
return serializeObject(schema, input,
|
|
1383
|
+
serialize(input, context) {
|
|
1384
|
+
return serializeObject(schema, input, context);
|
|
1367
1385
|
}
|
|
1368
1386
|
}
|
|
1369
1387
|
};
|
|
@@ -1400,14 +1418,24 @@ function partial(schema, options = {}) {
|
|
|
1400
1418
|
validate(input) {
|
|
1401
1419
|
return validateObjectSchema(newSchema, input);
|
|
1402
1420
|
},
|
|
1403
|
-
parse(input,
|
|
1404
|
-
return parseObjectSchema(
|
|
1421
|
+
parse(input, context) {
|
|
1422
|
+
return parseObjectSchema(
|
|
1423
|
+
newSchema,
|
|
1424
|
+
input,
|
|
1425
|
+
context,
|
|
1426
|
+
false
|
|
1427
|
+
);
|
|
1405
1428
|
},
|
|
1406
|
-
coerce(input,
|
|
1407
|
-
return parseObjectSchema(
|
|
1429
|
+
coerce(input, context) {
|
|
1430
|
+
return parseObjectSchema(
|
|
1431
|
+
newSchema,
|
|
1432
|
+
input,
|
|
1433
|
+
context,
|
|
1434
|
+
true
|
|
1435
|
+
);
|
|
1408
1436
|
},
|
|
1409
|
-
serialize(input,
|
|
1410
|
-
return serializeObject(schema, input,
|
|
1437
|
+
serialize(input, context) {
|
|
1438
|
+
return serializeObject(schema, input, context);
|
|
1411
1439
|
}
|
|
1412
1440
|
}
|
|
1413
1441
|
};
|
|
@@ -1437,26 +1465,26 @@ function record(schema, opts = {}) {
|
|
|
1437
1465
|
}
|
|
1438
1466
|
return true;
|
|
1439
1467
|
},
|
|
1440
|
-
parse(input,
|
|
1441
|
-
return parse$2(schema, input,
|
|
1468
|
+
parse(input, context) {
|
|
1469
|
+
return parse$2(schema, input, context, false);
|
|
1442
1470
|
},
|
|
1443
1471
|
coerce(input, data) {
|
|
1444
1472
|
return parse$2(schema, input, data, true);
|
|
1445
1473
|
},
|
|
1446
|
-
serialize(input,
|
|
1474
|
+
serialize(input, context) {
|
|
1447
1475
|
const strParts = [];
|
|
1448
1476
|
for (const key of Object.keys(input)) {
|
|
1449
1477
|
const val = input[key];
|
|
1450
1478
|
strParts.push(
|
|
1451
1479
|
`"${key}":${schema.metadata[SCHEMA_METADATA].serialize(val, {
|
|
1452
|
-
instancePath: `${
|
|
1453
|
-
schemaPath: `${
|
|
1454
|
-
errors:
|
|
1480
|
+
instancePath: `${context.instancePath}/${key}`,
|
|
1481
|
+
schemaPath: `${context.schemaPath}/values`,
|
|
1482
|
+
errors: context.errors
|
|
1455
1483
|
})}`
|
|
1456
1484
|
);
|
|
1457
1485
|
}
|
|
1458
1486
|
const result = `{${strParts.join(",")}}`;
|
|
1459
|
-
if (
|
|
1487
|
+
if (context.instancePath.length === 0) {
|
|
1460
1488
|
return sanitizeJson(result);
|
|
1461
1489
|
}
|
|
1462
1490
|
return result;
|
|
@@ -1519,14 +1547,14 @@ function recursive(propA, propB) {
|
|
|
1519
1547
|
metadata: {
|
|
1520
1548
|
[SCHEMA_METADATA]: {
|
|
1521
1549
|
output: "",
|
|
1522
|
-
parse(input,
|
|
1550
|
+
parse(input, context) {
|
|
1523
1551
|
if (recursiveFns[id]) {
|
|
1524
|
-
return recursiveFns[id].parse(input,
|
|
1552
|
+
return recursiveFns[id].parse(input, context);
|
|
1525
1553
|
}
|
|
1526
1554
|
},
|
|
1527
|
-
serialize(input,
|
|
1555
|
+
serialize(input, context) {
|
|
1528
1556
|
if (recursiveFns[id]) {
|
|
1529
|
-
return recursiveFns[id].serialize(input,
|
|
1557
|
+
return recursiveFns[id].serialize(input, context);
|
|
1530
1558
|
}
|
|
1531
1559
|
return "";
|
|
1532
1560
|
},
|
|
@@ -1536,9 +1564,9 @@ function recursive(propA, propB) {
|
|
|
1536
1564
|
}
|
|
1537
1565
|
return false;
|
|
1538
1566
|
},
|
|
1539
|
-
coerce(input,
|
|
1567
|
+
coerce(input, context) {
|
|
1540
1568
|
if (recursiveFns[id]) {
|
|
1541
|
-
return recursiveFns[id].coerce(input,
|
|
1569
|
+
return recursiveFns[id].coerce(input, context);
|
|
1542
1570
|
}
|
|
1543
1571
|
}
|
|
1544
1572
|
}
|
|
@@ -1568,8 +1596,8 @@ function string(opts = {}) {
|
|
|
1568
1596
|
parse: parse$1,
|
|
1569
1597
|
coerce: coerce$1,
|
|
1570
1598
|
validate: validate$1,
|
|
1571
|
-
serialize(input,
|
|
1572
|
-
if (
|
|
1599
|
+
serialize(input, context) {
|
|
1600
|
+
if (context.instancePath.length === 0) {
|
|
1573
1601
|
return input;
|
|
1574
1602
|
}
|
|
1575
1603
|
if (input.length < 42) {
|
package/dist/testSuites.cjs
CHANGED
package/dist/testSuites.d.cts
CHANGED
package/dist/testSuites.d.mts
CHANGED
package/dist/testSuites.d.ts
CHANGED
package/dist/testSuites.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'jtd-utils';
|
|
2
2
|
import 'scule';
|
|
3
|
-
import { K as object, W as string, M as optional, I as nullable, F as int32, z as discriminator, w as boolean, X as stringEnum, v as array, Y as timestamp, _ as uint32, t as any, J as number, Q as record, R as recursive, D as float64, C as float32, G as int64, E as int16, Z as uint16, H as int8, a0 as uint8, O as partial, $ as uint64, P as pick, A as enumerator } from './shared/schema.
|
|
3
|
+
import { K as object, W as string, M as optional, I as nullable, F as int32, z as discriminator, w as boolean, X as stringEnum, v as array, Y as timestamp, _ as uint32, t as any, J as number, Q as record, R as recursive, D as float64, C as float32, G as int64, E as int16, Z as uint16, H as int8, a0 as uint8, O as partial, $ as uint64, P as pick, A as enumerator } from './shared/schema.8f2f6fef.mjs';
|
|
4
4
|
|
|
5
5
|
const User = object({
|
|
6
6
|
id: string(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arrirpc/schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.57.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"scule": "^1.3.0",
|
|
26
26
|
"uncrypto": "^0.1.3",
|
|
27
|
-
"jtd-utils": "0.
|
|
27
|
+
"jtd-utils": "0.57.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@faker-js/faker": "^8.4.1",
|
|
31
|
-
"ajv": "^8.
|
|
31
|
+
"ajv": "^8.17.1",
|
|
32
32
|
"benny": "^3.7.1"
|
|
33
33
|
}
|
|
34
34
|
}
|