@arcblock/did-connect-js 1.29.26 → 1.30.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.
@@ -1,152 +1,214 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
2
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
3
+ const require_index = require('../node_modules/valibot/dist/index.cjs');
3
4
  let _arcblock_validator = require("@arcblock/validator");
4
5
  let _ocap_mcrypto = require("@ocap/mcrypto");
5
6
 
6
7
  //#region src/schema/claims.ts
7
- const trustedIssuerSchema = _arcblock_validator.Joi.alternatives().try(_arcblock_validator.Joi.object({
8
- did: _arcblock_validator.Joi.DID().required(),
9
- endpoint: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).required()
10
- }), _arcblock_validator.Joi.DID().required());
11
- const optionalUrlSchema = _arcblock_validator.Joi.string().uri({
12
- scheme: ["http", "https"],
13
- allowRelative: true
14
- }).optional().default("").allow("");
15
- const requirementSchema = _arcblock_validator.Joi.object({
16
- tokens: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.object({
17
- address: _arcblock_validator.Joi.DID().required(),
18
- value: _arcblock_validator.Joi.BN().positive().required()
19
- })).required(),
20
- assets: _arcblock_validator.Joi.object({
21
- address: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional(),
22
- parent: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional(),
23
- issuer: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional(),
24
- amount: _arcblock_validator.Joi.number().positive().min(1)
25
- }).optional()
8
+ const trustedIssuerSchema = require_index.union([require_index.object({
9
+ did: (0, _arcblock_validator.vDID)(),
10
+ endpoint: require_index.pipe(require_index.string(), require_index.check((s) => {
11
+ try {
12
+ const url = new URL(s);
13
+ return ["http:", "https:"].includes(url.protocol);
14
+ } catch {
15
+ return false;
16
+ }
17
+ }, "Must be a valid HTTP/HTTPS URL"))
18
+ }), (0, _arcblock_validator.vDID)()]);
19
+ const optionalUrlSchema = require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => {
20
+ if (s === "") return true;
21
+ try {
22
+ const url = new URL(s);
23
+ return ["http:", "https:"].includes(url.protocol);
24
+ } catch {
25
+ return s.startsWith("/");
26
+ }
27
+ }, "Must be a valid URL")), "");
28
+ const requirementSchema = require_index.object({
29
+ tokens: require_index.array(require_index.object({
30
+ address: (0, _arcblock_validator.vDID)(),
31
+ value: (0, _arcblock_validator.vBNPositive)()
32
+ })),
33
+ assets: require_index.optional(require_index.object({
34
+ address: require_index.optional(require_index.array((0, _arcblock_validator.vDID)())),
35
+ parent: require_index.optional(require_index.array((0, _arcblock_validator.vDID)())),
36
+ issuer: require_index.optional(require_index.array((0, _arcblock_validator.vDID)())),
37
+ amount: require_index.optional(require_index.pipe(require_index.number(), require_index.check((n) => n > 0, "Must be positive"), require_index.minValue(1)))
38
+ }))
26
39
  });
27
- const targetTypeSchema = _arcblock_validator.Joi.object({
28
- key: _arcblock_validator.Joi.string().valid(...Object.keys(_ocap_mcrypto.types.KeyType).map((x) => x.toLowerCase())).default("ed25519"),
29
- hash: _arcblock_validator.Joi.string().valid(...Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())).default("sha3"),
30
- role: _arcblock_validator.Joi.string().valid(...Object.keys(_ocap_mcrypto.types.RoleType).map((x) => x.toLowerCase().split("_").pop())).default("account"),
31
- encoding: _arcblock_validator.Joi.string().valid(...Object.keys(_ocap_mcrypto.types.EncodingType).map((x) => x.toLowerCase())).default("base58")
32
- }).optional();
40
+ const targetTypeSchema = require_index.optional(require_index.object({
41
+ key: require_index.optional(require_index.picklist(Object.keys(_ocap_mcrypto.types.KeyType).map((x) => x.toLowerCase())), "ed25519"),
42
+ hash: require_index.optional(require_index.picklist(Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())), "sha3"),
43
+ role: require_index.optional(require_index.picklist(Object.keys(_ocap_mcrypto.types.RoleType).map((x) => x.toLowerCase().split("_").pop())), "account"),
44
+ encoding: require_index.optional(require_index.picklist(Object.keys(_ocap_mcrypto.types.EncodingType).map((x) => x.toLowerCase())), "base58")
45
+ }));
33
46
  var claims_default = (chainInfo) => {
34
- const options = {
35
- stripUnknown: true,
36
- noDefaults: false
37
- };
38
47
  const createStandardFields = (type, description) => ({
39
- type: _arcblock_validator.Joi.string().valid(type).default(type),
40
- description: _arcblock_validator.Joi.string().min(1).default(description),
41
- chainInfo,
42
- mfaCode: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.number().min(10).max(99).optional()).default([]),
43
- meta: _arcblock_validator.Joi.any().optional().default({})
48
+ type: require_index.optional(require_index.literal(type), type),
49
+ description: require_index.optional(require_index.pipe(require_index.string(), require_index.minLength(1)), description),
50
+ chainInfo: require_index.optional(chainInfo),
51
+ mfaCode: require_index.optional(require_index.array(require_index.optional(require_index.pipe(require_index.number(), require_index.minValue(10), require_index.maxValue(99)))), []),
52
+ meta: require_index.optional(require_index.any(), {})
44
53
  });
45
- const authPrincipal = _arcblock_validator.Joi.object({
54
+ const authPrincipal = require_index.object({
46
55
  ...createStandardFields("authPrincipal", "Please continue with your account"),
47
- target: _arcblock_validator.Joi.DID().optional().allow("").default(""),
48
- supervised: _arcblock_validator.Joi.boolean().default(false),
56
+ target: require_index.optional(require_index.union([require_index.literal(""), (0, _arcblock_validator.vDID)()]), ""),
57
+ supervised: require_index.optional(require_index.boolean(), false),
49
58
  targetType: targetTypeSchema
50
- }).options(options);
51
- const keyPair = _arcblock_validator.Joi.object({
59
+ });
60
+ const keyPair = require_index.object({
52
61
  ...createStandardFields("keyPair", "Please create account to continue."),
53
- moniker: _arcblock_validator.Joi.string().regex(/^[a-zA-Z0-9][-a-zA-Z0-9_]{2,128}$/).required(),
54
- declare: _arcblock_validator.Joi.boolean().optional().default(true),
55
- migrateFrom: _arcblock_validator.Joi.DID().optional().allow("").default(""),
62
+ moniker: require_index.pipe(require_index.string(), require_index.regex(/^[a-zA-Z0-9][-a-zA-Z0-9_]{2,128}$/)),
63
+ declare: require_index.optional(require_index.boolean(), true),
64
+ migrateFrom: require_index.optional(require_index.union([require_index.literal(""), (0, _arcblock_validator.vDID)()]), ""),
56
65
  targetType: targetTypeSchema
57
- }).options(options);
58
- const encryptionKey = _arcblock_validator.Joi.object({
66
+ });
67
+ const encryptionKey = require_index.object({
59
68
  ...createStandardFields("encryptionKey", "Please provide encryptionKey to continue."),
60
- salt: _arcblock_validator.Joi.string().required(),
61
- delegation: _arcblock_validator.Joi.string().optional().allow("").default("")
62
- }).options(options);
69
+ salt: require_index.string(),
70
+ delegation: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), "")
71
+ });
72
+ const profileItemValues = [
73
+ "did",
74
+ "fullName",
75
+ "email",
76
+ "phone",
77
+ "signature",
78
+ "avatar",
79
+ "birthday",
80
+ "url"
81
+ ];
82
+ const profile = require_index.pipe(require_index.looseObject({ ...createStandardFields("profile", "Please provide your profile to continue.") }), require_index.transform((obj) => {
83
+ const { fields, ...rest } = obj;
84
+ if (fields !== void 0) return {
85
+ ...rest,
86
+ items: fields
87
+ };
88
+ return rest;
89
+ }), require_index.rawTransform(({ dataset, addIssue, NEVER }) => {
90
+ const obj = dataset.value;
91
+ const items = obj.items ?? ["fullName"];
92
+ if (!Array.isArray(items) || items.length < 1) {
93
+ addIssue({ message: "\"items\" must contain at least 1 items" });
94
+ return NEVER;
95
+ }
96
+ const validSet = new Set(profileItemValues);
97
+ for (let i = 0; i < items.length; i++) if (!validSet.has(items[i])) {
98
+ addIssue({ message: `"items[${i}]" must be one of [${[...profileItemValues].join(", ")}]` });
99
+ return NEVER;
100
+ }
101
+ return {
102
+ ...obj,
103
+ items
104
+ };
105
+ }));
106
+ const signature = require_index.object({
107
+ ...createStandardFields("signature", "Sign this transaction or message to continue."),
108
+ typeUrl: require_index.picklist([
109
+ "fg:x:delegation",
110
+ "fg:t:transaction",
111
+ "mime:text/plain",
112
+ "mime:text/html",
113
+ "eth:transaction",
114
+ "eth:standard-data",
115
+ "eth:personal-data",
116
+ "eth:typed-data",
117
+ "eth:legacy-data"
118
+ ]),
119
+ display: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
120
+ method: require_index.optional(require_index.picklist(["none", ...Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())]), "sha3"),
121
+ digest: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
122
+ origin: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
123
+ nonce: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
124
+ requirement: require_index.optional(requirementSchema)
125
+ });
126
+ const prepareTx = require_index.object({
127
+ ...createStandardFields("prepareTx", "Prepare and sign this transaction to continue."),
128
+ display: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
129
+ partialTx: require_index.string(),
130
+ nonce: require_index.optional(require_index.union([require_index.literal(""), require_index.string()]), ""),
131
+ requirement: requirementSchema
132
+ });
133
+ const agreement = require_index.object({
134
+ ...createStandardFields("agreement", "Confirm your agreement to continue."),
135
+ uri: require_index.union([require_index.literal(""), require_index.pipe(require_index.string(), require_index.check((s) => {
136
+ try {
137
+ const url = new URL(s);
138
+ return ["http:", "https:"].includes(url.protocol);
139
+ } catch {
140
+ return false;
141
+ }
142
+ }, "Must be a valid HTTP/HTTPS URL"))]),
143
+ method: require_index.optional(require_index.picklist(Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())), "sha2"),
144
+ digest: require_index.string()
145
+ });
146
+ const vcFilterSchema = require_index.object({
147
+ type: require_index.optional(require_index.pipe(require_index.array(require_index.pipe(require_index.string(), require_index.minLength(1))), require_index.minLength(1))),
148
+ target: require_index.optional((0, _arcblock_validator.vDID)()),
149
+ trustedIssuers: require_index.optional(require_index.pipe(require_index.array(trustedIssuerSchema), require_index.minLength(1))),
150
+ tag: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "" || s.length >= 1, "Must be non-empty or empty string")), ""),
151
+ ownerDid: require_index.optional(require_index.array((0, _arcblock_validator.vDID)()), []),
152
+ claimUrl: optionalUrlSchema,
153
+ acquireUrl: optionalUrlSchema
154
+ });
155
+ const verifiableCredential = require_index.object({
156
+ ...createStandardFields("verifiableCredential", "Please present a verifiable credential to continue."),
157
+ optional: require_index.optional(require_index.boolean(), false),
158
+ claimUrl: optionalUrlSchema,
159
+ acquireUrl: optionalUrlSchema,
160
+ item: require_index.optional(require_index.pipe(require_index.array(require_index.pipe(require_index.string(), require_index.minLength(1))), require_index.minLength(1))),
161
+ target: require_index.optional((0, _arcblock_validator.vDID)()),
162
+ trustedIssuers: require_index.optional(require_index.pipe(require_index.array(trustedIssuerSchema), require_index.minLength(1))),
163
+ tag: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "" || s.length >= 1, "Must be non-empty or empty string")), ""),
164
+ ownerDid: require_index.optional(require_index.array((0, _arcblock_validator.vDID)()), []),
165
+ filters: require_index.optional(require_index.array(vcFilterSchema))
166
+ });
167
+ const assetFilterSchema = require_index.object({
168
+ address: require_index.optional((0, _arcblock_validator.vDID)()),
169
+ trustedIssuers: require_index.optional(require_index.pipe(require_index.array(trustedIssuerSchema), require_index.minLength(1))),
170
+ trustedParents: require_index.optional(require_index.pipe(require_index.array((0, _arcblock_validator.vDID)()), require_index.minLength(1))),
171
+ tag: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "" || s.length >= 1, "Must be non-empty or empty string")), ""),
172
+ ownerDid: require_index.optional(require_index.array((0, _arcblock_validator.vDID)()), []),
173
+ consumed: require_index.optional(require_index.boolean()),
174
+ acquireUrl: optionalUrlSchema
175
+ });
176
+ const asset = require_index.object({
177
+ ...createStandardFields("asset", "Please present an on chain asset to continue."),
178
+ optional: require_index.optional(require_index.boolean(), false),
179
+ address: require_index.optional((0, _arcblock_validator.vDID)()),
180
+ trustedIssuers: require_index.optional(require_index.pipe(require_index.array(trustedIssuerSchema), require_index.minLength(1))),
181
+ trustedParents: require_index.optional(require_index.pipe(require_index.array((0, _arcblock_validator.vDID)()), require_index.minLength(1))),
182
+ tag: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "" || s.length >= 1, "Must be non-empty or empty string")), ""),
183
+ ownerDid: require_index.optional(require_index.array((0, _arcblock_validator.vDID)()), []),
184
+ consumed: require_index.optional(require_index.boolean()),
185
+ acquireUrl: optionalUrlSchema,
186
+ filters: require_index.optional(require_index.array(assetFilterSchema))
187
+ });
188
+ const assetOrVCFilterSchema = require_index.object({
189
+ type: require_index.optional(require_index.pipe(require_index.array(require_index.pipe(require_index.string(), require_index.minLength(1))), require_index.minLength(1))),
190
+ address: require_index.optional((0, _arcblock_validator.vDID)()),
191
+ trustedIssuers: require_index.optional(require_index.pipe(require_index.array(trustedIssuerSchema), require_index.minLength(1))),
192
+ trustedParents: require_index.optional(require_index.pipe(require_index.array((0, _arcblock_validator.vDID)()), require_index.minLength(1))),
193
+ tag: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "" || s.length >= 1, "Must be non-empty or empty string")), ""),
194
+ ownerDid: require_index.optional(require_index.array((0, _arcblock_validator.vDID)()), []),
195
+ consumed: require_index.optional(require_index.boolean()),
196
+ claimUrl: optionalUrlSchema,
197
+ acquireUrl: optionalUrlSchema
198
+ });
63
199
  return {
64
200
  authPrincipal,
65
- profile: _arcblock_validator.Joi.object({
66
- ...createStandardFields("profile", "Please provide your profile to continue."),
67
- items: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.string().valid("did", "fullName", "email", "phone", "signature", "avatar", "birthday", "url")).min(1).default(["fullName"])
68
- }).rename("fields", "items", {
69
- ignoreUndefined: true,
70
- override: true
71
- }).options(options),
72
- signature: _arcblock_validator.Joi.object({
73
- ...createStandardFields("signature", "Sign this transaction or message to continue."),
74
- typeUrl: _arcblock_validator.Joi.string().valid("fg:x:delegation", "fg:t:transaction", "mime:text/plain", "mime:text/html", "eth:transaction", "eth:standard-data", "eth:personal-data", "eth:typed-data", "eth:legacy-data").required(),
75
- display: _arcblock_validator.Joi.string().allow("").default(""),
76
- method: _arcblock_validator.Joi.string().allow("none", ...Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())).optional().default("sha3"),
77
- digest: _arcblock_validator.Joi.string().allow("").default(""),
78
- origin: _arcblock_validator.Joi.string().allow("").default(""),
79
- nonce: _arcblock_validator.Joi.string().allow("").default(""),
80
- requirement: requirementSchema.optional()
81
- }).options(options),
82
- prepareTx: _arcblock_validator.Joi.object({
83
- ...createStandardFields("prepareTx", "Prepare and sign this transaction to continue."),
84
- display: _arcblock_validator.Joi.string().allow("").default(""),
85
- partialTx: _arcblock_validator.Joi.string().required(),
86
- nonce: _arcblock_validator.Joi.string().allow("").default(""),
87
- requirement: requirementSchema.required()
88
- }).options(options),
89
- agreement: _arcblock_validator.Joi.object({
90
- ...createStandardFields("agreement", "Confirm your agreement to continue."),
91
- uri: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).required().allow(""),
92
- method: _arcblock_validator.Joi.string().allow(...Object.keys(_ocap_mcrypto.types.HashType).map((x) => x.toLowerCase())).optional().default("sha2"),
93
- digest: _arcblock_validator.Joi.string().required()
94
- }).options(options),
95
- verifiableCredential: _arcblock_validator.Joi.object({
96
- ...createStandardFields("verifiableCredential", "Please present a verifiable credential to continue."),
97
- optional: _arcblock_validator.Joi.boolean().default(false),
98
- claimUrl: optionalUrlSchema,
99
- acquireUrl: optionalUrlSchema,
100
- item: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.string().min(1).required()).min(1).optional(),
101
- target: _arcblock_validator.Joi.DID().optional(),
102
- trustedIssuers: _arcblock_validator.Joi.array().items(trustedIssuerSchema).min(1).optional(),
103
- tag: _arcblock_validator.Joi.string().min(1).allow("").default(""),
104
- ownerDid: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional().default([]),
105
- filters: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.object({
106
- type: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.string().min(1).required()).min(1).optional(),
107
- target: _arcblock_validator.Joi.DID().optional(),
108
- trustedIssuers: _arcblock_validator.Joi.array().items(trustedIssuerSchema).min(1).optional(),
109
- tag: _arcblock_validator.Joi.string().min(1).allow("").default(""),
110
- ownerDid: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional().default([]),
111
- claimUrl: optionalUrlSchema,
112
- acquireUrl: optionalUrlSchema
113
- })).optional()
114
- }).options(options),
115
- asset: _arcblock_validator.Joi.object({
116
- ...createStandardFields("asset", "Please present an on chain asset to continue."),
117
- optional: _arcblock_validator.Joi.boolean().default(false),
118
- address: _arcblock_validator.Joi.DID().optional(),
119
- trustedIssuers: _arcblock_validator.Joi.array().items(trustedIssuerSchema).min(1).optional(),
120
- trustedParents: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().required()).min(1).optional(),
121
- tag: _arcblock_validator.Joi.string().min(1).allow("").default(""),
122
- ownerDid: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional().default([]),
123
- consumed: _arcblock_validator.Joi.boolean().optional(),
124
- acquireUrl: optionalUrlSchema,
125
- filters: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.object({
126
- address: _arcblock_validator.Joi.DID().optional(),
127
- trustedIssuers: _arcblock_validator.Joi.array().items(trustedIssuerSchema).min(1).optional(),
128
- trustedParents: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().required()).min(1).optional(),
129
- tag: _arcblock_validator.Joi.string().min(1).allow("").default(""),
130
- ownerDid: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional().default([]),
131
- consumed: _arcblock_validator.Joi.boolean().optional(),
132
- acquireUrl: optionalUrlSchema
133
- })).optional()
134
- }).options(options),
135
- assetOrVC: _arcblock_validator.Joi.object({
201
+ profile,
202
+ signature,
203
+ prepareTx,
204
+ agreement,
205
+ verifiableCredential,
206
+ asset,
207
+ assetOrVC: require_index.object({
136
208
  ...createStandardFields("assetOrVC", "Please present NFT to continue."),
137
- filters: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.object({
138
- type: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.string().min(1).required()).min(1).optional(),
139
- address: _arcblock_validator.Joi.DID().optional(),
140
- trustedIssuers: _arcblock_validator.Joi.array().items(trustedIssuerSchema).min(1).optional(),
141
- trustedParents: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().required()).min(1).optional(),
142
- tag: _arcblock_validator.Joi.string().min(1).allow("").default(""),
143
- ownerDid: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID()).optional().default([]),
144
- consumed: _arcblock_validator.Joi.boolean().optional(),
145
- claimUrl: optionalUrlSchema,
146
- acquireUrl: optionalUrlSchema
147
- })).required().min(1),
148
- optional: _arcblock_validator.Joi.boolean().default(false)
149
- }).options(options),
209
+ filters: require_index.pipe(require_index.array(assetOrVCFilterSchema), require_index.minLength(1)),
210
+ optional: require_index.optional(require_index.boolean(), false)
211
+ }),
150
212
  keyPair,
151
213
  encryptionKey
152
214
  };
@@ -1,18 +1,16 @@
1
- import { ObjectSchema } from "joi";
2
-
3
1
  //#region src/schema/claims.d.ts
4
2
  interface ClaimsSchema {
5
- authPrincipal: ObjectSchema;
6
- profile: ObjectSchema;
7
- signature: ObjectSchema;
8
- prepareTx: ObjectSchema;
9
- agreement: ObjectSchema;
10
- verifiableCredential: ObjectSchema;
11
- asset: ObjectSchema;
12
- assetOrVC: ObjectSchema;
13
- keyPair: ObjectSchema;
14
- encryptionKey: ObjectSchema;
3
+ authPrincipal: any;
4
+ profile: any;
5
+ signature: any;
6
+ prepareTx: any;
7
+ agreement: any;
8
+ verifiableCredential: any;
9
+ asset: any;
10
+ assetOrVC: any;
11
+ keyPair: any;
12
+ encryptionKey: any;
15
13
  }
16
- declare const _default: (chainInfo: ObjectSchema) => ClaimsSchema;
14
+ declare const _default: (chainInfo: any) => ClaimsSchema;
17
15
  //#endregion
18
16
  export { ClaimsSchema, _default as default };
@@ -1,52 +1,79 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_index = require('../node_modules/valibot/dist/index.cjs');
2
3
  const require_schema_claims = require('./claims.cjs');
3
4
  let _arcblock_validator = require("@arcblock/validator");
4
5
 
5
6
  //#region src/schema/index.ts
6
- const chainInfo = _arcblock_validator.Joi.object({
7
- type: _arcblock_validator.Joi.string().optional().valid("arcblock", "ethereum", "solona").default("arcblock"),
8
- id: _arcblock_validator.Joi.any().when("type", {
9
- is: "arcblock",
10
- then: _arcblock_validator.Joi.string().optional().default("none")
11
- }).when("type", {
12
- is: "ethereum",
13
- then: _arcblock_validator.Joi.string().required().pattern(/^[0-9]+$/, "numbers")
14
- }).when("type", {
15
- is: "solona",
16
- then: _arcblock_validator.Joi.string().required().pattern(/^[0-9]+$/, "numbers")
17
- }),
18
- host: _arcblock_validator.Joi.string().when("type", {
19
- is: "ethereum",
20
- then: _arcblock_validator.Joi.string().optional().allow("")
21
- }).when("type", {
22
- is: "solona",
23
- then: _arcblock_validator.Joi.string().optional().allow("")
24
- }).when("type", {
25
- is: "arcblock",
26
- then: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).allow("none").default("none")
27
- })
28
- }).options({
29
- stripUnknown: true,
30
- noDefaults: false
31
- });
32
- const appInfo = _arcblock_validator.Joi.object({
33
- name: _arcblock_validator.Joi.string().required(),
34
- description: _arcblock_validator.Joi.string().required(),
35
- icon: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).required(),
36
- link: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).optional(),
37
- path: _arcblock_validator.Joi.string().uri({ scheme: ["http", "https"] }).default("https://abtwallet.io/i/"),
38
- publisher: _arcblock_validator.Joi.DID().optional(),
39
- updateSubEndpoint: _arcblock_validator.Joi.boolean().optional(),
40
- subscriptionEndpoint: _arcblock_validator.Joi.string().optional(),
41
- nodeDid: _arcblock_validator.Joi.DID().optional(),
42
- agentDid: _arcblock_validator.Joi.DID().optional()
43
- }).options({
44
- stripUnknown: false,
45
- noDefaults: false
7
+ const isHttpUrl = (s) => {
8
+ try {
9
+ const url = new URL(s);
10
+ return ["http:", "https:"].includes(url.protocol);
11
+ } catch {
12
+ return false;
13
+ }
14
+ };
15
+ const chainInfo = require_index.pipe(require_index.object({
16
+ type: require_index.optional(require_index.picklist([
17
+ "arcblock",
18
+ "ethereum",
19
+ "solona"
20
+ ]), "arcblock"),
21
+ id: require_index.optional(require_index.any()),
22
+ host: require_index.optional(require_index.any())
23
+ }), require_index.rawTransform(({ dataset, addIssue, NEVER }) => {
24
+ const obj = dataset.value;
25
+ let typeSchema;
26
+ switch (obj.type) {
27
+ case "arcblock":
28
+ typeSchema = require_index.object({
29
+ type: require_index.literal("arcblock"),
30
+ id: require_index.optional(require_index.string(), "none"),
31
+ host: require_index.optional(require_index.pipe(require_index.string(), require_index.check((s) => s === "none" || isHttpUrl(s), "must be a valid uri with a scheme matching the http|https pattern")), "none")
32
+ });
33
+ break;
34
+ case "ethereum":
35
+ typeSchema = require_index.object({
36
+ type: require_index.literal("ethereum"),
37
+ id: require_index.pipe(require_index.string(), require_index.regex(/^[0-9]+$/, "fails to match the numbers pattern")),
38
+ host: require_index.optional(require_index.string())
39
+ });
40
+ break;
41
+ case "solona":
42
+ typeSchema = require_index.object({
43
+ type: require_index.literal("solona"),
44
+ id: require_index.pipe(require_index.string(), require_index.regex(/^[0-9]+$/, "fails to match the numbers pattern")),
45
+ host: require_index.optional(require_index.string())
46
+ });
47
+ break;
48
+ }
49
+ const result = require_index.safeParse(typeSchema, obj);
50
+ if (!result.success) {
51
+ for (const issue of result.issues) addIssue({
52
+ message: issue.message,
53
+ path: issue.path
54
+ });
55
+ return NEVER;
56
+ }
57
+ const output = {};
58
+ for (const [k, val] of Object.entries(result.output)) if (val !== void 0) output[k] = val;
59
+ return output;
60
+ }));
61
+ const appInfo = require_index.looseObject({
62
+ name: require_index.string(),
63
+ description: require_index.string(),
64
+ icon: require_index.pipe(require_index.string(), require_index.check(isHttpUrl, "Must be a valid HTTP/HTTPS URL")),
65
+ link: require_index.optional(require_index.pipe(require_index.string(), require_index.check(isHttpUrl, "Must be a valid HTTP/HTTPS URL"))),
66
+ path: require_index.optional(require_index.pipe(require_index.string(), require_index.check(isHttpUrl, "Must be a valid HTTP/HTTPS URL")), "https://abtwallet.io/i/"),
67
+ publisher: require_index.optional((0, _arcblock_validator.vDID)()),
68
+ updateSubEndpoint: require_index.optional(require_index.boolean()),
69
+ subscriptionEndpoint: require_index.optional(require_index.string()),
70
+ nodeDid: require_index.optional((0, _arcblock_validator.vDID)()),
71
+ agentDid: require_index.optional((0, _arcblock_validator.vDID)())
46
72
  });
47
73
  const claims = require_schema_claims.default(chainInfo);
48
74
 
49
75
  //#endregion
50
76
  exports.appInfo = appInfo;
51
77
  exports.chainInfo = chainInfo;
52
- exports.claims = claims;
78
+ exports.claims = claims;
79
+ exports.vValidate = _arcblock_validator.vValidate;
@@ -1,9 +1,29 @@
1
1
  import { ClaimsSchema } from "./claims.cjs";
2
- import * as joi0 from "joi";
2
+ import { vValidate } from "@arcblock/validator";
3
+ import * as v from "valibot";
3
4
 
4
5
  //#region src/schema/index.d.ts
5
- declare const chainInfo: joi0.ObjectSchema<any>;
6
- declare const appInfo: joi0.ObjectSchema<any>;
6
+ declare const chainInfo: v.SchemaWithPipe<readonly [v.ObjectSchema<{
7
+ readonly type: v.OptionalSchema<v.PicklistSchema<["arcblock", "ethereum", "solona"], undefined>, "arcblock">;
8
+ readonly id: v.OptionalSchema<v.AnySchema, undefined>;
9
+ readonly host: v.OptionalSchema<v.AnySchema, undefined>;
10
+ }, undefined>, v.RawTransformAction<{
11
+ type: "arcblock" | "ethereum" | "solona";
12
+ id?: any;
13
+ host?: any;
14
+ }, any>]>;
15
+ declare const appInfo: v.LooseObjectSchema<{
16
+ readonly name: v.StringSchema<undefined>;
17
+ readonly description: v.StringSchema<undefined>;
18
+ readonly icon: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be a valid HTTP/HTTPS URL">]>;
19
+ readonly link: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be a valid HTTP/HTTPS URL">]>, undefined>;
20
+ readonly path: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be a valid HTTP/HTTPS URL">]>, "https://abtwallet.io/i/">;
21
+ readonly publisher: v.OptionalSchema<any, undefined>;
22
+ readonly updateSubEndpoint: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
23
+ readonly subscriptionEndpoint: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
24
+ readonly nodeDid: v.OptionalSchema<any, undefined>;
25
+ readonly agentDid: v.OptionalSchema<any, undefined>;
26
+ }, undefined>;
7
27
  declare const claims: ClaimsSchema;
8
28
  //#endregion
9
- export { appInfo, chainInfo, claims };
29
+ export { appInfo, chainInfo, claims, vValidate };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@arcblock/did-connect-js",
3
3
  "description": "Helper function to setup DID Connect support on a node.js web server",
4
4
  "type": "module",
5
- "version": "1.29.26",
5
+ "version": "1.30.0",
6
6
  "author": {
7
7
  "name": "wangshijun",
8
8
  "email": "shijun@arcblock.io",
@@ -19,13 +19,13 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@arcblock/did": "1.29.26",
23
- "@arcblock/jwt": "1.29.26",
24
- "@arcblock/validator": "1.29.26",
25
- "@ocap/client": "1.29.26",
26
- "@ocap/mcrypto": "1.29.26",
27
- "@ocap/util": "1.29.26",
28
- "@ocap/wallet": "1.29.26",
22
+ "@arcblock/did": "1.30.0",
23
+ "@arcblock/jwt": "1.30.0",
24
+ "@arcblock/validator": "1.30.0",
25
+ "@ocap/client": "1.30.0",
26
+ "@ocap/mcrypto": "1.30.0",
27
+ "@ocap/util": "1.30.0",
28
+ "@ocap/wallet": "1.30.0",
29
29
  "cors": "^2.8.5",
30
30
  "debug": "^4.4.3",
31
31
  "json-stable-stringify": "^1.0.1",
@@ -35,7 +35,7 @@
35
35
  "devDependencies": {
36
36
  "@arcblock/did-agent-storage-memory": "^1.8.0",
37
37
  "@arcblock/did-connect-storage-memory": "^1.8.0",
38
- "@ocap/e2e-test": "1.29.26",
38
+ "@ocap/e2e-test": "1.30.0",
39
39
  "@types/cors": "^2.8.17",
40
40
  "@types/debug": "^4.1.12",
41
41
  "@types/json-stable-stringify": "^1.0.36",