@atproto/lexicon 0.4.5 → 0.4.6-next.5
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/blob-refs.d.ts.map +1 -1
- package/dist/blob-refs.js +1 -1
- package/dist/blob-refs.js.map +1 -1
- package/dist/lexicons.d.ts +1 -1
- package/dist/lexicons.d.ts.map +1 -1
- package/dist/lexicons.js +15 -35
- package/dist/lexicons.js.map +1 -1
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js +1 -1
- package/dist/serialize.js.map +1 -1
- package/dist/types.d.ts +993 -999
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -10
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +0 -3
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +0 -12
- package/dist/util.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js.map +1 -1
- package/dist/validators/blob.d.ts.map +1 -1
- package/dist/validators/complex.d.ts.map +1 -1
- package/dist/validators/complex.js +31 -59
- package/dist/validators/complex.js.map +1 -1
- package/dist/validators/formats.d.ts.map +1 -1
- package/dist/validators/formats.js +8 -11
- package/dist/validators/formats.js.map +1 -1
- package/dist/validators/primitives.d.ts +0 -6
- package/dist/validators/primitives.d.ts.map +1 -1
- package/dist/validators/primitives.js +2 -8
- package/dist/validators/primitives.js.map +1 -1
- package/dist/validators/xrpc.d.ts.map +1 -1
- package/dist/validators/xrpc.js +1 -1
- package/dist/validators/xrpc.js.map +1 -1
- package/jest.config.js +1 -0
- package/package.json +1 -1
- package/src/blob-refs.ts +1 -1
- package/src/lexicons.ts +24 -18
- package/src/serialize.ts +3 -3
- package/src/types.ts +7 -17
- package/src/util.ts +0 -15
- package/src/validation.ts +0 -1
- package/src/validators/blob.ts +1 -1
- package/src/validators/complex.ts +36 -66
- package/src/validators/formats.ts +11 -14
- package/src/validators/primitives.ts +11 -11
- package/src/validators/xrpc.ts +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcA,4BAyBC;
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc.d.ts","sourceRoot":"","sources":["../../src/validators/xrpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"xrpc.d.ts","sourceRoot":"","sources":["../../src/validators/xrpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAmB,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAI/E,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,OAAO,GACX,gBAAgB,CAsClB"}
|
package/dist/validators/xrpc.js
CHANGED
|
@@ -25,8 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.params = params;
|
|
27
27
|
const types_1 = require("../types");
|
|
28
|
-
const PrimitiveValidators = __importStar(require("./primitives"));
|
|
29
28
|
const complex_1 = require("./complex");
|
|
29
|
+
const PrimitiveValidators = __importStar(require("./primitives"));
|
|
30
30
|
function params(lexicons, path, def, val) {
|
|
31
31
|
// type
|
|
32
32
|
const value = val && typeof val === 'object' ? val : {};
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBA2CC;AA/CD,oCAA+E;AAC/E,uCAAiC;AACjC,kEAAmD;AAEnD,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
package/package.json
CHANGED
package/src/blob-refs.ts
CHANGED
package/src/lexicons.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
InvalidLexiconError,
|
|
3
3
|
LexRecord,
|
|
4
4
|
LexUserType,
|
|
5
5
|
LexiconDefNotFoundError,
|
|
6
|
-
|
|
7
|
-
ValidationResult,
|
|
6
|
+
LexiconDoc,
|
|
8
7
|
ValidationError,
|
|
8
|
+
ValidationResult,
|
|
9
9
|
isObj,
|
|
10
|
-
hasProp,
|
|
11
10
|
} from './types'
|
|
11
|
+
import { toLexUri } from './util'
|
|
12
12
|
import {
|
|
13
13
|
assertValidRecord,
|
|
14
|
-
assertValidXrpcParams,
|
|
15
14
|
assertValidXrpcInput,
|
|
16
|
-
assertValidXrpcOutput,
|
|
17
15
|
assertValidXrpcMessage,
|
|
16
|
+
assertValidXrpcOutput,
|
|
17
|
+
assertValidXrpcParams,
|
|
18
18
|
} from './validation'
|
|
19
|
-
import {
|
|
20
|
-
import * as ComplexValidators from './validators/complex'
|
|
19
|
+
import { object as validateObject } from './validators/complex'
|
|
21
20
|
|
|
22
21
|
/**
|
|
23
22
|
* A collection of compiled lexicons.
|
|
@@ -127,15 +126,17 @@ export class Lexicons implements Iterable<LexiconDoc> {
|
|
|
127
126
|
* Validate a record or object.
|
|
128
127
|
*/
|
|
129
128
|
validate(lexUri: string, value: unknown): ValidationResult {
|
|
130
|
-
lexUri = toLexUri(lexUri)
|
|
131
|
-
const def = this.getDefOrThrow(lexUri, ['record', 'object'])
|
|
132
129
|
if (!isObj(value)) {
|
|
133
130
|
throw new ValidationError(`Value must be an object`)
|
|
134
131
|
}
|
|
132
|
+
|
|
133
|
+
const lexUriNormalized = toLexUri(lexUri)
|
|
134
|
+
const def = this.getDefOrThrow(lexUriNormalized, ['record', 'object'])
|
|
135
|
+
|
|
135
136
|
if (def.type === 'record') {
|
|
136
|
-
return
|
|
137
|
+
return validateObject(this, 'Record', def.record, value)
|
|
137
138
|
} else if (def.type === 'object') {
|
|
138
|
-
return
|
|
139
|
+
return validateObject(this, 'Object', def, value)
|
|
139
140
|
} else {
|
|
140
141
|
// shouldn't happen
|
|
141
142
|
throw new InvalidLexiconError('Definition must be a record or object')
|
|
@@ -146,20 +147,25 @@ export class Lexicons implements Iterable<LexiconDoc> {
|
|
|
146
147
|
* Validate a record and throw on any error.
|
|
147
148
|
*/
|
|
148
149
|
assertValidRecord(lexUri: string, value: unknown) {
|
|
149
|
-
lexUri = toLexUri(lexUri)
|
|
150
|
-
const def = this.getDefOrThrow(lexUri, ['record'])
|
|
151
150
|
if (!isObj(value)) {
|
|
152
151
|
throw new ValidationError(`Record must be an object`)
|
|
153
152
|
}
|
|
154
|
-
if (!
|
|
153
|
+
if (!('$type' in value)) {
|
|
154
|
+
throw new ValidationError(`Record/$type must be a string`)
|
|
155
|
+
}
|
|
156
|
+
const { $type } = value
|
|
157
|
+
if (typeof $type !== 'string') {
|
|
155
158
|
throw new ValidationError(`Record/$type must be a string`)
|
|
156
159
|
}
|
|
157
|
-
|
|
158
|
-
|
|
160
|
+
|
|
161
|
+
const lexUriNormalized = toLexUri(lexUri)
|
|
162
|
+
if (toLexUri($type) !== lexUriNormalized) {
|
|
159
163
|
throw new ValidationError(
|
|
160
|
-
`Invalid $type: must be ${
|
|
164
|
+
`Invalid $type: must be ${lexUriNormalized}, got ${$type}`,
|
|
161
165
|
)
|
|
162
166
|
}
|
|
167
|
+
|
|
168
|
+
const def = this.getDefOrThrow(lexUriNormalized, ['record'])
|
|
163
169
|
return assertValidRecord(this, def as LexRecord, value)
|
|
164
170
|
}
|
|
165
171
|
|
package/src/serialize.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { CID } from 'multiformats/cid'
|
|
1
2
|
import {
|
|
2
|
-
check,
|
|
3
3
|
IpldValue,
|
|
4
|
+
JsonValue,
|
|
5
|
+
check,
|
|
4
6
|
ipldToJson,
|
|
5
7
|
jsonToIpld,
|
|
6
|
-
JsonValue,
|
|
7
8
|
} from '@atproto/common-web'
|
|
8
|
-
import { CID } from 'multiformats/cid'
|
|
9
9
|
import { BlobRef, jsonBlobRef } from './blob-refs'
|
|
10
10
|
|
|
11
11
|
export type LexValue =
|
package/src/types.ts
CHANGED
|
@@ -447,23 +447,13 @@ export function isValidLexiconDoc(v: unknown): v is LexiconDoc {
|
|
|
447
447
|
return lexiconDoc.safeParse(v).success
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
export function isObj(
|
|
451
|
-
return
|
|
450
|
+
export function isObj<V>(v: V): v is V & object {
|
|
451
|
+
return v != null && typeof v === 'object'
|
|
452
452
|
}
|
|
453
453
|
|
|
454
|
-
export
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
): data is Record<K, unknown> {
|
|
458
|
-
return prop in data
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
export const discriminatedObject = z.object({ $type: z.string() })
|
|
462
|
-
export type DiscriminatedObject = z.infer<typeof discriminatedObject>
|
|
463
|
-
export function isDiscriminatedObject(
|
|
464
|
-
value: unknown,
|
|
465
|
-
): value is DiscriminatedObject {
|
|
466
|
-
return discriminatedObject.safeParse(value).success
|
|
454
|
+
export type DiscriminatedObject = { $type: string }
|
|
455
|
+
export function isDiscriminatedObject(v: unknown): v is DiscriminatedObject {
|
|
456
|
+
return isObj(v) && '$type' in v && typeof v.$type === 'string'
|
|
467
457
|
}
|
|
468
458
|
|
|
469
459
|
export function parseLexiconDoc(v: unknown): LexiconDoc {
|
|
@@ -471,10 +461,10 @@ export function parseLexiconDoc(v: unknown): LexiconDoc {
|
|
|
471
461
|
return v as LexiconDoc
|
|
472
462
|
}
|
|
473
463
|
|
|
474
|
-
export type ValidationResult =
|
|
464
|
+
export type ValidationResult<V = unknown> =
|
|
475
465
|
| {
|
|
476
466
|
success: true
|
|
477
|
-
value:
|
|
467
|
+
value: V
|
|
478
468
|
}
|
|
479
469
|
| {
|
|
480
470
|
success: false
|
package/src/util.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
|
-
import { Lexicons } from './lexicons'
|
|
3
|
-
import { LexRefVariant, LexUserType } from './types'
|
|
4
2
|
|
|
5
3
|
export function toLexUri(str: string, baseUri?: string): string {
|
|
6
4
|
if (str.split('#').length > 2) {
|
|
@@ -19,19 +17,6 @@ export function toLexUri(str: string, baseUri?: string): string {
|
|
|
19
17
|
return `lex:${str}`
|
|
20
18
|
}
|
|
21
19
|
|
|
22
|
-
export function toConcreteTypes(
|
|
23
|
-
lexicons: Lexicons,
|
|
24
|
-
def: LexRefVariant | LexUserType,
|
|
25
|
-
): LexUserType[] {
|
|
26
|
-
if (def.type === 'ref') {
|
|
27
|
-
return [lexicons.getDefOrThrow(def.ref)]
|
|
28
|
-
} else if (def.type === 'union') {
|
|
29
|
-
return def.refs.map((ref) => lexicons.getDefOrThrow(ref)).flat()
|
|
30
|
-
} else {
|
|
31
|
-
return [def]
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
20
|
export function requiredPropertiesRefinement<
|
|
36
21
|
ObjectType extends {
|
|
37
22
|
required?: string[]
|
package/src/validation.ts
CHANGED
package/src/validators/blob.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlobRef } from '../blob-refs'
|
|
2
2
|
import { Lexicons } from '../lexicons'
|
|
3
|
-
import { LexUserType,
|
|
3
|
+
import { LexUserType, ValidationError, ValidationResult } from '../types'
|
|
4
4
|
|
|
5
5
|
export function blob(
|
|
6
6
|
lexicons: Lexicons,
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { Lexicons } from '../lexicons'
|
|
2
2
|
import {
|
|
3
3
|
LexArray,
|
|
4
|
-
LexObject,
|
|
5
4
|
LexRefVariant,
|
|
6
5
|
LexUserType,
|
|
7
6
|
ValidationError,
|
|
8
7
|
ValidationResult,
|
|
9
8
|
isDiscriminatedObject,
|
|
9
|
+
isObj,
|
|
10
10
|
} from '../types'
|
|
11
|
-
import {
|
|
12
|
-
|
|
11
|
+
import { toLexUri } from '../util'
|
|
13
12
|
import { blob } from './blob'
|
|
14
|
-
import {
|
|
13
|
+
import { validate as validatePrimitive } from './primitives'
|
|
15
14
|
|
|
16
15
|
export function validate(
|
|
17
16
|
lexicons: Lexicons,
|
|
@@ -20,18 +19,6 @@ export function validate(
|
|
|
20
19
|
value: unknown,
|
|
21
20
|
): ValidationResult {
|
|
22
21
|
switch (def.type) {
|
|
23
|
-
case 'boolean':
|
|
24
|
-
return boolean(lexicons, path, def, value)
|
|
25
|
-
case 'integer':
|
|
26
|
-
return integer(lexicons, path, def, value)
|
|
27
|
-
case 'string':
|
|
28
|
-
return string(lexicons, path, def, value)
|
|
29
|
-
case 'bytes':
|
|
30
|
-
return bytes(lexicons, path, def, value)
|
|
31
|
-
case 'cid-link':
|
|
32
|
-
return cidLink(lexicons, path, def, value)
|
|
33
|
-
case 'unknown':
|
|
34
|
-
return unknown(lexicons, path, def, value)
|
|
35
22
|
case 'object':
|
|
36
23
|
return object(lexicons, path, def, value)
|
|
37
24
|
case 'array':
|
|
@@ -39,10 +26,7 @@ export function validate(
|
|
|
39
26
|
case 'blob':
|
|
40
27
|
return blob(lexicons, path, def, value)
|
|
41
28
|
default:
|
|
42
|
-
return
|
|
43
|
-
success: false,
|
|
44
|
-
error: new ValidationError(`Unexpected lexicon type: ${def.type}`),
|
|
45
|
-
}
|
|
29
|
+
return validatePrimitive(lexicons, path, def, value)
|
|
46
30
|
}
|
|
47
31
|
}
|
|
48
32
|
|
|
@@ -104,35 +88,31 @@ export function object(
|
|
|
104
88
|
def: LexUserType,
|
|
105
89
|
value: unknown,
|
|
106
90
|
): ValidationResult {
|
|
107
|
-
def = def as LexObject
|
|
108
|
-
|
|
109
91
|
// type
|
|
110
|
-
if (!value
|
|
92
|
+
if (!isObj(value)) {
|
|
111
93
|
return {
|
|
112
94
|
success: false,
|
|
113
95
|
error: new ValidationError(`${path} must be an object`),
|
|
114
96
|
}
|
|
115
97
|
}
|
|
116
98
|
|
|
117
|
-
const requiredProps = new Set(def.required)
|
|
118
|
-
const nullableProps = new Set(def.nullable)
|
|
119
|
-
|
|
120
99
|
// properties
|
|
121
100
|
let resultValue = value
|
|
122
|
-
if (
|
|
101
|
+
if ('properties' in def && def.properties != null) {
|
|
123
102
|
for (const key in def.properties) {
|
|
124
|
-
|
|
103
|
+
const keyValue = value[key]
|
|
104
|
+
if (keyValue === null && def.nullable?.includes(key)) {
|
|
125
105
|
continue
|
|
126
106
|
}
|
|
127
107
|
const propDef = def.properties[key]
|
|
128
|
-
if (
|
|
108
|
+
if (keyValue === undefined && !def.required?.includes(key)) {
|
|
129
109
|
// Fast path for non-required undefined props.
|
|
130
110
|
if (
|
|
131
111
|
propDef.type === 'integer' ||
|
|
132
112
|
propDef.type === 'boolean' ||
|
|
133
113
|
propDef.type === 'string'
|
|
134
114
|
) {
|
|
135
|
-
if (
|
|
115
|
+
if (propDef.default === undefined) {
|
|
136
116
|
continue
|
|
137
117
|
}
|
|
138
118
|
} else {
|
|
@@ -141,20 +121,27 @@ export function object(
|
|
|
141
121
|
}
|
|
142
122
|
}
|
|
143
123
|
const propPath = `${path}/${key}`
|
|
144
|
-
const validated = validateOneOf(lexicons, propPath, propDef,
|
|
145
|
-
const propValue = validated.success ? validated.value :
|
|
146
|
-
|
|
124
|
+
const validated = validateOneOf(lexicons, propPath, propDef, keyValue)
|
|
125
|
+
const propValue = validated.success ? validated.value : keyValue
|
|
126
|
+
|
|
147
127
|
// Return error for bad validation, giving required rule precedence
|
|
148
|
-
if (
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
128
|
+
if (propValue === undefined) {
|
|
129
|
+
if (def.required?.includes(key)) {
|
|
130
|
+
return {
|
|
131
|
+
success: false,
|
|
132
|
+
error: new ValidationError(
|
|
133
|
+
`${path} must have the property "${key}"`,
|
|
134
|
+
),
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
if (!validated.success) {
|
|
139
|
+
return validated
|
|
152
140
|
}
|
|
153
|
-
} else if (!propIsUndefined && !validated.success) {
|
|
154
|
-
return validated
|
|
155
141
|
}
|
|
142
|
+
|
|
156
143
|
// Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value
|
|
157
|
-
if (propValue !==
|
|
144
|
+
if (propValue !== keyValue) {
|
|
158
145
|
if (resultValue === value) {
|
|
159
146
|
// Lazy shallow clone
|
|
160
147
|
resultValue = { ...value }
|
|
@@ -174,9 +161,8 @@ export function validateOneOf(
|
|
|
174
161
|
value: unknown,
|
|
175
162
|
mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)
|
|
176
163
|
): ValidationResult {
|
|
177
|
-
let
|
|
164
|
+
let concreteDef: LexUserType
|
|
178
165
|
|
|
179
|
-
let concreteDefs
|
|
180
166
|
if (def.type === 'union') {
|
|
181
167
|
if (!isDiscriminatedObject(value)) {
|
|
182
168
|
return {
|
|
@@ -197,33 +183,17 @@ export function validateOneOf(
|
|
|
197
183
|
}
|
|
198
184
|
return { success: true, value }
|
|
199
185
|
} else {
|
|
200
|
-
|
|
201
|
-
type: 'ref',
|
|
202
|
-
ref: value.$type,
|
|
203
|
-
})
|
|
186
|
+
concreteDef = lexicons.getDefOrThrow(value.$type)
|
|
204
187
|
}
|
|
188
|
+
} else if (def.type === 'ref') {
|
|
189
|
+
concreteDef = lexicons.getDefOrThrow(def.ref)
|
|
205
190
|
} else {
|
|
206
|
-
|
|
191
|
+
concreteDef = def
|
|
207
192
|
}
|
|
208
193
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
: validate(lexicons, path, concreteDef, value)
|
|
213
|
-
if (result.success) {
|
|
214
|
-
return result
|
|
215
|
-
}
|
|
216
|
-
error ??= result.error
|
|
217
|
-
}
|
|
218
|
-
if (concreteDefs.length > 1) {
|
|
219
|
-
return {
|
|
220
|
-
success: false,
|
|
221
|
-
error: new ValidationError(
|
|
222
|
-
`${path} did not match any of the expected definitions`,
|
|
223
|
-
),
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return { success: false, error }
|
|
194
|
+
return mustBeObj
|
|
195
|
+
? object(lexicons, path, concreteDef, value)
|
|
196
|
+
: validate(lexicons, path, concreteDef, value)
|
|
227
197
|
}
|
|
228
198
|
|
|
229
199
|
// to avoid bugs like #0189 this needs to handle both
|
|
@@ -235,7 +205,7 @@ const refsContainType = (refs: string[], type: string) => {
|
|
|
235
205
|
}
|
|
236
206
|
|
|
237
207
|
if (lexUri.endsWith('#main')) {
|
|
238
|
-
return refs.includes(lexUri.
|
|
208
|
+
return refs.includes(lexUri.slice(0, -5))
|
|
239
209
|
} else {
|
|
240
210
|
return refs.includes(lexUri + '#main')
|
|
241
211
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { isValidISODateString } from 'iso-datestring-validator'
|
|
2
2
|
import { CID } from 'multiformats/cid'
|
|
3
|
-
import {
|
|
3
|
+
import { validateLanguage } from '@atproto/common-web'
|
|
4
4
|
import {
|
|
5
|
+
ensureValidAtUri,
|
|
5
6
|
ensureValidDid,
|
|
6
7
|
ensureValidHandle,
|
|
7
8
|
ensureValidNsid,
|
|
8
|
-
ensureValidAtUri,
|
|
9
|
-
ensureValidTid,
|
|
10
9
|
ensureValidRecordKey,
|
|
10
|
+
isValidTid,
|
|
11
11
|
} from '@atproto/syntax'
|
|
12
|
-
import {
|
|
12
|
+
import { ValidationError, ValidationResult } from '../types'
|
|
13
13
|
|
|
14
14
|
export function datetime(path: string, value: string): ValidationResult {
|
|
15
15
|
try {
|
|
@@ -131,17 +131,14 @@ export function language(path: string, value: string): ValidationResult {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
export function tid(path: string, value: string): ValidationResult {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
),
|
|
142
|
-
}
|
|
134
|
+
if (isValidTid(value)) {
|
|
135
|
+
return { success: true, value }
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return {
|
|
139
|
+
success: false,
|
|
140
|
+
error: new ValidationError(`${path} must be a valid TID`),
|
|
143
141
|
}
|
|
144
|
-
return { success: true, value }
|
|
145
142
|
}
|
|
146
143
|
|
|
147
144
|
export function recordKey(path: string, value: string): ValidationResult {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { utf8Len, graphemeLen } from '@atproto/common-web'
|
|
2
1
|
import { CID } from 'multiformats/cid'
|
|
2
|
+
import { graphemeLen, utf8Len } from '@atproto/common-web'
|
|
3
3
|
import { Lexicons } from '../lexicons'
|
|
4
|
-
import * as formats from './formats'
|
|
5
4
|
import {
|
|
6
|
-
LexUserType,
|
|
7
5
|
LexBoolean,
|
|
6
|
+
LexBytes,
|
|
8
7
|
LexInteger,
|
|
9
8
|
LexString,
|
|
10
|
-
|
|
9
|
+
LexUserType,
|
|
11
10
|
ValidationError,
|
|
12
|
-
|
|
11
|
+
ValidationResult,
|
|
13
12
|
} from '../types'
|
|
13
|
+
import * as formats from './formats'
|
|
14
14
|
|
|
15
15
|
export function validate(
|
|
16
16
|
lexicons: Lexicons,
|
|
@@ -39,7 +39,7 @@ export function validate(
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
function boolean(
|
|
43
43
|
lexicons: Lexicons,
|
|
44
44
|
path: string,
|
|
45
45
|
def: LexUserType,
|
|
@@ -77,7 +77,7 @@ export function boolean(
|
|
|
77
77
|
return { success: true, value }
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
function integer(
|
|
81
81
|
lexicons: Lexicons,
|
|
82
82
|
path: string,
|
|
83
83
|
def: LexUserType,
|
|
@@ -151,7 +151,7 @@ export function integer(
|
|
|
151
151
|
return { success: true, value }
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
function string(
|
|
155
155
|
lexicons: Lexicons,
|
|
156
156
|
path: string,
|
|
157
157
|
def: LexUserType,
|
|
@@ -340,7 +340,7 @@ export function string(
|
|
|
340
340
|
return { success: true, value }
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
|
|
343
|
+
function bytes(
|
|
344
344
|
lexicons: Lexicons,
|
|
345
345
|
path: string,
|
|
346
346
|
def: LexUserType,
|
|
@@ -382,7 +382,7 @@ export function bytes(
|
|
|
382
382
|
return { success: true, value }
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
|
|
385
|
+
function cidLink(
|
|
386
386
|
lexicons: Lexicons,
|
|
387
387
|
path: string,
|
|
388
388
|
def: LexUserType,
|
|
@@ -398,7 +398,7 @@ export function cidLink(
|
|
|
398
398
|
return { success: true, value }
|
|
399
399
|
}
|
|
400
400
|
|
|
401
|
-
|
|
401
|
+
function unknown(
|
|
402
402
|
lexicons: Lexicons,
|
|
403
403
|
path: string,
|
|
404
404
|
def: LexUserType,
|
package/src/validators/xrpc.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Lexicons } from '../lexicons'
|
|
2
|
-
import { LexXrpcParameters,
|
|
3
|
-
|
|
4
|
-
import * as PrimitiveValidators from './primitives'
|
|
2
|
+
import { LexXrpcParameters, ValidationError, ValidationResult } from '../types'
|
|
5
3
|
import { array } from './complex'
|
|
4
|
+
import * as PrimitiveValidators from './primitives'
|
|
6
5
|
|
|
7
6
|
export function params(
|
|
8
7
|
lexicons: Lexicons,
|