@atproto/lexicon 0.4.2 → 0.4.4
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/CHANGELOG.md +15 -0
- package/dist/types.d.ts +6282 -6282
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +53 -9
- package/dist/types.js.map +1 -1
- package/dist/util.js +3 -4
- package/dist/util.js.map +1 -1
- package/dist/validation.js +5 -6
- package/dist/validation.js.map +1 -1
- package/dist/validators/blob.js +1 -2
- package/dist/validators/blob.js.map +1 -1
- package/dist/validators/complex.js +4 -5
- package/dist/validators/complex.js.map +1 -1
- package/dist/validators/formats.d.ts.map +1 -1
- package/dist/validators/formats.js +25 -22
- package/dist/validators/formats.js.map +1 -1
- package/dist/validators/primitives.d.ts.map +1 -1
- package/dist/validators/primitives.js +41 -23
- package/dist/validators/primitives.js.map +1 -1
- package/dist/validators/xrpc.js +1 -2
- package/dist/validators/xrpc.js.map +1 -1
- package/jest.config.js +1 -2
- package/package.json +4 -3
- package/src/types.ts +52 -3
- package/src/validators/formats.ts +15 -10
- package/src/validators/primitives.ts +42 -17
- package/tests/_scaffolds/lexicons.ts +18 -0
- package/tests/general.test.ts +186 -5
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.tests.tsbuildinfo +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/validators/formats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/validators/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EACL,WAAW,EAIX,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAEjB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAoBlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CA+BlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmElB;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EACL,WAAW,EAIX,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAEjB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAoBlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CA+BlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmElB;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAsLlB;AAED,wBAAgB,KAAK,CACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmClB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CASlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAUlB"}
|
|
@@ -23,7 +23,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.validate = validate;
|
|
27
|
+
exports.boolean = boolean;
|
|
28
|
+
exports.integer = integer;
|
|
29
|
+
exports.string = string;
|
|
30
|
+
exports.bytes = bytes;
|
|
31
|
+
exports.cidLink = cidLink;
|
|
32
|
+
exports.unknown = unknown;
|
|
27
33
|
const common_web_1 = require("@atproto/common-web");
|
|
28
34
|
const cid_1 = require("multiformats/cid");
|
|
29
35
|
const formats = __importStar(require("./formats"));
|
|
@@ -49,7 +55,6 @@ function validate(lexicons, path, def, value) {
|
|
|
49
55
|
};
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
|
-
exports.validate = validate;
|
|
53
58
|
function boolean(lexicons, path, def, value) {
|
|
54
59
|
def = def;
|
|
55
60
|
// type
|
|
@@ -80,7 +85,6 @@ function boolean(lexicons, path, def, value) {
|
|
|
80
85
|
}
|
|
81
86
|
return { success: true, value };
|
|
82
87
|
}
|
|
83
|
-
exports.boolean = boolean;
|
|
84
88
|
function integer(lexicons, path, def, value) {
|
|
85
89
|
def = def;
|
|
86
90
|
// type
|
|
@@ -138,7 +142,6 @@ function integer(lexicons, path, def, value) {
|
|
|
138
142
|
}
|
|
139
143
|
return { success: true, value };
|
|
140
144
|
}
|
|
141
|
-
exports.integer = integer;
|
|
142
145
|
function string(lexicons, path, def, value) {
|
|
143
146
|
def = def;
|
|
144
147
|
// type
|
|
@@ -176,22 +179,41 @@ function string(lexicons, path, def, value) {
|
|
|
176
179
|
}
|
|
177
180
|
}
|
|
178
181
|
// maxLength and minLength
|
|
179
|
-
if (typeof def.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
182
|
+
if (typeof def.minLength === 'number' || typeof def.maxLength === 'number') {
|
|
183
|
+
// If the JavaScript string length * 3 is below the maximum limit,
|
|
184
|
+
// its UTF8 length (which <= .length * 3) will also be below.
|
|
185
|
+
if (typeof def.minLength === 'number' && value.length * 3 < def.minLength) {
|
|
186
|
+
return {
|
|
187
|
+
success: false,
|
|
188
|
+
error: new types_1.ValidationError(`${path} must not be shorter than ${def.minLength} characters`),
|
|
189
|
+
};
|
|
188
190
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
191
|
+
// If the JavaScript string length * 3 is within the maximum limit,
|
|
192
|
+
// its UTF8 length (which <= .length * 3) will also be within.
|
|
193
|
+
// When there's no minimal length, this lets us skip the UTF8 length check.
|
|
194
|
+
let canSkipUtf8LenChecks = false;
|
|
195
|
+
if (typeof def.minLength === 'undefined' &&
|
|
196
|
+
typeof def.maxLength === 'number' &&
|
|
197
|
+
value.length * 3 <= def.maxLength) {
|
|
198
|
+
canSkipUtf8LenChecks = true;
|
|
199
|
+
}
|
|
200
|
+
if (!canSkipUtf8LenChecks) {
|
|
201
|
+
const len = (0, common_web_1.utf8Len)(value);
|
|
202
|
+
if (typeof def.maxLength === 'number') {
|
|
203
|
+
if (len > def.maxLength) {
|
|
204
|
+
return {
|
|
205
|
+
success: false,
|
|
206
|
+
error: new types_1.ValidationError(`${path} must not be longer than ${def.maxLength} characters`),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (typeof def.minLength === 'number') {
|
|
211
|
+
if (len < def.minLength) {
|
|
212
|
+
return {
|
|
213
|
+
success: false,
|
|
214
|
+
error: new types_1.ValidationError(`${path} must not be shorter than ${def.minLength} characters`),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
195
217
|
}
|
|
196
218
|
}
|
|
197
219
|
}
|
|
@@ -272,7 +294,6 @@ function string(lexicons, path, def, value) {
|
|
|
272
294
|
}
|
|
273
295
|
return { success: true, value };
|
|
274
296
|
}
|
|
275
|
-
exports.string = string;
|
|
276
297
|
function bytes(lexicons, path, def, value) {
|
|
277
298
|
def = def;
|
|
278
299
|
if (!value || !(value instanceof Uint8Array)) {
|
|
@@ -301,7 +322,6 @@ function bytes(lexicons, path, def, value) {
|
|
|
301
322
|
}
|
|
302
323
|
return { success: true, value };
|
|
303
324
|
}
|
|
304
|
-
exports.bytes = bytes;
|
|
305
325
|
function cidLink(lexicons, path, def, value) {
|
|
306
326
|
if (cid_1.CID.asCID(value) === null) {
|
|
307
327
|
return {
|
|
@@ -311,7 +331,6 @@ function cidLink(lexicons, path, def, value) {
|
|
|
311
331
|
}
|
|
312
332
|
return { success: true, value };
|
|
313
333
|
}
|
|
314
|
-
exports.cidLink = cidLink;
|
|
315
334
|
function unknown(lexicons, path, def, value) {
|
|
316
335
|
// type
|
|
317
336
|
if (!value || typeof value !== 'object') {
|
|
@@ -322,5 +341,4 @@ function unknown(lexicons, path, def, value) {
|
|
|
322
341
|
}
|
|
323
342
|
return { success: true, value };
|
|
324
343
|
}
|
|
325
|
-
exports.unknown = unknown;
|
|
326
344
|
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"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"}
|
package/dist/validators/xrpc.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.params =
|
|
26
|
+
exports.params = params;
|
|
27
27
|
const types_1 = require("../types");
|
|
28
28
|
const PrimitiveValidators = __importStar(require("./primitives"));
|
|
29
29
|
const complex_1 = require("./complex");
|
|
@@ -63,5 +63,4 @@ function params(lexicons, path, def, val) {
|
|
|
63
63
|
}
|
|
64
64
|
return { success: true, value: resultValue };
|
|
65
65
|
}
|
|
66
|
-
exports.params = params;
|
|
67
66
|
//# sourceMappingURL=xrpc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc.js","sourceRoot":"","sources":["../../src/validators/xrpc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xrpc.js","sourceRoot":"","sources":["../../src/validators/xrpc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBA2CC;AAhDD,oCAA+E;AAE/E,kEAAmD;AACnD,uCAAiC;AAEjC,SAAgB,MAAM,CACpB,QAAkB,EAClB,IAAY,EACZ,GAAsB,EACtB,GAAY;IAEZ,OAAO;IACP,MAAM,KAAK,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAEvD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAEjD,aAAa;IACb,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YACnC,MAAM,SAAS,GACb,OAAO,CAAC,IAAI,KAAK,OAAO;gBACtB,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YACtE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClE,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,WAAW,CAAA;YACxD,mEAAmE;YACnE,IAAI,eAAe,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI,uBAAe,CAAC,GAAG,IAAI,4BAA4B,GAAG,GAAG,CAAC;iBACtE,CAAA;YACH,CAAC;iBAAM,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAClD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,8FAA8F;YAC9F,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC1B,qBAAqB;oBACrB,WAAW,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;gBAC5B,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AAC9C,CAAC"}
|
package/jest.config.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/** @type {import('jest').Config} */
|
|
2
2
|
module.exports = {
|
|
3
3
|
displayName: 'Lexicon',
|
|
4
|
-
transform: { '^.+\\.
|
|
5
|
-
transformIgnorePatterns: [`<rootDir>/node_modules/(?!get-port)`],
|
|
4
|
+
transform: { '^.+\\.ts$': '@swc/jest' },
|
|
6
5
|
setupFiles: ['<rootDir>/../../jest.setup.ts'],
|
|
7
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/lexicon",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "atproto Lexicon schema language library",
|
|
6
6
|
"keywords": [
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
"multiformats": "^9.9.0",
|
|
21
21
|
"zod": "^3.23.8",
|
|
22
22
|
"@atproto/common-web": "^0.3.1",
|
|
23
|
-
"@atproto/syntax": "^0.3.
|
|
23
|
+
"@atproto/syntax": "^0.3.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"jest": "^28.1.2"
|
|
26
|
+
"jest": "^28.1.2",
|
|
27
|
+
"typescript": "^5.6.3"
|
|
27
28
|
},
|
|
28
29
|
"scripts": {
|
|
29
30
|
"test": "jest",
|
package/src/types.ts
CHANGED
|
@@ -145,7 +145,21 @@ export const lexArray = z
|
|
|
145
145
|
.object({
|
|
146
146
|
type: z.literal('array'),
|
|
147
147
|
description: z.string().optional(),
|
|
148
|
-
items: z.
|
|
148
|
+
items: z.discriminatedUnion('type', [
|
|
149
|
+
// lexPrimitive
|
|
150
|
+
lexBoolean,
|
|
151
|
+
lexInteger,
|
|
152
|
+
lexString,
|
|
153
|
+
lexUnknown,
|
|
154
|
+
// lexIpldType
|
|
155
|
+
lexBytes,
|
|
156
|
+
lexCidLink,
|
|
157
|
+
// lexRefVariant
|
|
158
|
+
lexRef,
|
|
159
|
+
lexRefUnion,
|
|
160
|
+
// other
|
|
161
|
+
lexBlob,
|
|
162
|
+
]),
|
|
149
163
|
minLength: z.number().int().optional(),
|
|
150
164
|
maxLength: z.number().int().optional(),
|
|
151
165
|
})
|
|
@@ -176,7 +190,23 @@ export const lexObject = z
|
|
|
176
190
|
required: z.string().array().optional(),
|
|
177
191
|
nullable: z.string().array().optional(),
|
|
178
192
|
properties: z.record(
|
|
179
|
-
z.
|
|
193
|
+
z.discriminatedUnion('type', [
|
|
194
|
+
lexArray,
|
|
195
|
+
|
|
196
|
+
// lexPrimitive
|
|
197
|
+
lexBoolean,
|
|
198
|
+
lexInteger,
|
|
199
|
+
lexString,
|
|
200
|
+
lexUnknown,
|
|
201
|
+
// lexIpldType
|
|
202
|
+
lexBytes,
|
|
203
|
+
lexCidLink,
|
|
204
|
+
// lexRefVariant
|
|
205
|
+
lexRef,
|
|
206
|
+
lexRefUnion,
|
|
207
|
+
// other
|
|
208
|
+
lexBlob,
|
|
209
|
+
]),
|
|
180
210
|
),
|
|
181
211
|
})
|
|
182
212
|
.strict()
|
|
@@ -191,7 +221,17 @@ export const lexXrpcParameters = z
|
|
|
191
221
|
type: z.literal('params'),
|
|
192
222
|
description: z.string().optional(),
|
|
193
223
|
required: z.string().array().optional(),
|
|
194
|
-
properties: z.record(
|
|
224
|
+
properties: z.record(
|
|
225
|
+
z.discriminatedUnion('type', [
|
|
226
|
+
lexPrimitiveArray,
|
|
227
|
+
|
|
228
|
+
// lexPrimitive
|
|
229
|
+
lexBoolean,
|
|
230
|
+
lexInteger,
|
|
231
|
+
lexString,
|
|
232
|
+
lexUnknown,
|
|
233
|
+
]),
|
|
234
|
+
),
|
|
195
235
|
})
|
|
196
236
|
.strict()
|
|
197
237
|
.superRefine(requiredPropertiesRefinement)
|
|
@@ -201,6 +241,7 @@ export const lexXrpcBody = z
|
|
|
201
241
|
.object({
|
|
202
242
|
description: z.string().optional(),
|
|
203
243
|
encoding: z.string(),
|
|
244
|
+
// @NOTE using discriminatedUnion with a refined schema requires zod >= 4
|
|
204
245
|
schema: z.union([lexRefVariant, lexObject]).optional(),
|
|
205
246
|
})
|
|
206
247
|
.strict()
|
|
@@ -209,6 +250,7 @@ export type LexXrpcBody = z.infer<typeof lexXrpcBody>
|
|
|
209
250
|
export const lexXrpcSubscriptionMessage = z
|
|
210
251
|
.object({
|
|
211
252
|
description: z.string().optional(),
|
|
253
|
+
// @NOTE using discriminatedUnion with a refined schema requires zod >= 4
|
|
212
254
|
schema: z.union([lexRefVariant, lexObject]).optional(),
|
|
213
255
|
})
|
|
214
256
|
.strict()
|
|
@@ -353,6 +395,13 @@ export const lexUserType = z.custom<
|
|
|
353
395
|
}
|
|
354
396
|
}
|
|
355
397
|
|
|
398
|
+
if (typeof val['type'] !== 'string') {
|
|
399
|
+
return {
|
|
400
|
+
message: 'Type property must be a string',
|
|
401
|
+
fatal: true,
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
356
405
|
return {
|
|
357
406
|
message: `Invalid type: ${val['type']} must be one of: record, query, procedure, subscription, blob, array, token, object, boolean, integer, string, bytes, cid-link, unknown`,
|
|
358
407
|
fatal: true,
|
|
@@ -47,6 +47,7 @@ export function atUri(path: string, value: string): ValidationResult {
|
|
|
47
47
|
error: new ValidationError(`${path} must be a valid at-uri`),
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
|
|
50
51
|
return { success: true, value }
|
|
51
52
|
}
|
|
52
53
|
|
|
@@ -59,6 +60,7 @@ export function did(path: string, value: string): ValidationResult {
|
|
|
59
60
|
error: new ValidationError(`${path} must be a valid did`),
|
|
60
61
|
}
|
|
61
62
|
}
|
|
63
|
+
|
|
62
64
|
return { success: true, value }
|
|
63
65
|
}
|
|
64
66
|
|
|
@@ -71,21 +73,24 @@ export function handle(path: string, value: string): ValidationResult {
|
|
|
71
73
|
error: new ValidationError(`${path} must be a valid handle`),
|
|
72
74
|
}
|
|
73
75
|
}
|
|
76
|
+
|
|
74
77
|
return { success: true, value }
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
export function atIdentifier(path: string, value: string): ValidationResult {
|
|
78
|
-
|
|
79
|
-
if (
|
|
80
|
-
const
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
// We can discriminate based on the "did:" prefix
|
|
82
|
+
if (value.startsWith('did:')) {
|
|
83
|
+
const didResult = did(path, value)
|
|
84
|
+
if (didResult.success) return didResult
|
|
85
|
+
} else {
|
|
86
|
+
const handleResult = handle(path, value)
|
|
87
|
+
if (handleResult.success) return handleResult
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
success: false,
|
|
92
|
+
error: new ValidationError(`${path} must be a valid did or a handle`),
|
|
87
93
|
}
|
|
88
|
-
return { success: true, value }
|
|
89
94
|
}
|
|
90
95
|
|
|
91
96
|
export function nsid(path: string, value: string): ValidationResult {
|
|
@@ -198,27 +198,52 @@ export function string(
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
// maxLength and minLength
|
|
201
|
-
if (typeof def.
|
|
202
|
-
|
|
201
|
+
if (typeof def.minLength === 'number' || typeof def.maxLength === 'number') {
|
|
202
|
+
// If the JavaScript string length * 3 is below the maximum limit,
|
|
203
|
+
// its UTF8 length (which <= .length * 3) will also be below.
|
|
204
|
+
if (typeof def.minLength === 'number' && value.length * 3 < def.minLength) {
|
|
205
|
+
return {
|
|
206
|
+
success: false,
|
|
207
|
+
error: new ValidationError(
|
|
208
|
+
`${path} must not be shorter than ${def.minLength} characters`,
|
|
209
|
+
),
|
|
210
|
+
}
|
|
211
|
+
}
|
|
203
212
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
213
|
+
// If the JavaScript string length * 3 is within the maximum limit,
|
|
214
|
+
// its UTF8 length (which <= .length * 3) will also be within.
|
|
215
|
+
// When there's no minimal length, this lets us skip the UTF8 length check.
|
|
216
|
+
let canSkipUtf8LenChecks = false
|
|
217
|
+
if (
|
|
218
|
+
typeof def.minLength === 'undefined' &&
|
|
219
|
+
typeof def.maxLength === 'number' &&
|
|
220
|
+
value.length * 3 <= def.maxLength
|
|
221
|
+
) {
|
|
222
|
+
canSkipUtf8LenChecks = true
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (!canSkipUtf8LenChecks) {
|
|
226
|
+
const len = utf8Len(value)
|
|
227
|
+
|
|
228
|
+
if (typeof def.maxLength === 'number') {
|
|
229
|
+
if (len > def.maxLength) {
|
|
230
|
+
return {
|
|
231
|
+
success: false,
|
|
232
|
+
error: new ValidationError(
|
|
233
|
+
`${path} must not be longer than ${def.maxLength} characters`,
|
|
234
|
+
),
|
|
235
|
+
}
|
|
211
236
|
}
|
|
212
237
|
}
|
|
213
|
-
}
|
|
214
238
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
239
|
+
if (typeof def.minLength === 'number') {
|
|
240
|
+
if (len < def.minLength) {
|
|
241
|
+
return {
|
|
242
|
+
success: false,
|
|
243
|
+
error: new ValidationError(
|
|
244
|
+
`${path} must not be shorter than ${def.minLength} characters`,
|
|
245
|
+
),
|
|
246
|
+
}
|
|
222
247
|
}
|
|
223
248
|
}
|
|
224
249
|
}
|
|
@@ -313,6 +313,24 @@ const lexicons: LexiconDoc[] = [
|
|
|
313
313
|
},
|
|
314
314
|
},
|
|
315
315
|
},
|
|
316
|
+
{
|
|
317
|
+
lexicon: 1,
|
|
318
|
+
id: 'com.example.stringLengthNoMinLength',
|
|
319
|
+
defs: {
|
|
320
|
+
main: {
|
|
321
|
+
type: 'record',
|
|
322
|
+
record: {
|
|
323
|
+
type: 'object',
|
|
324
|
+
properties: {
|
|
325
|
+
string: {
|
|
326
|
+
type: 'string',
|
|
327
|
+
maxLength: 4,
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
316
334
|
{
|
|
317
335
|
lexicon: 1,
|
|
318
336
|
id: 'com.example.stringLengthGrapheme',
|