@atcute/identity 0.1.1 → 0.1.3
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/typedefs.js +9 -13
- package/dist/typedefs.js.map +1 -1
- package/dist/utils.js +15 -7
- package/dist/utils.js.map +1 -1
- package/lib/typedefs.ts +11 -14
- package/lib/utils.ts +14 -8
- package/package.json +1 -1
package/dist/typedefs.js
CHANGED
|
@@ -90,22 +90,21 @@ export const didDocument = v
|
|
|
90
90
|
})
|
|
91
91
|
.chain((input) => {
|
|
92
92
|
const { id: did, service: services } = input;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
if (services?.length) {
|
|
94
|
+
const len = services.length;
|
|
95
|
+
const identifiers = new Array(len);
|
|
96
|
+
for (let i = 0; i < len; i++) {
|
|
96
97
|
const service = services[i];
|
|
97
98
|
let id = service.id;
|
|
98
99
|
if (id[0] === '#') {
|
|
99
100
|
id = did + id;
|
|
100
|
-
if (newServices !== undefined) {
|
|
101
|
-
newServices[i] = { ...service, id };
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
newServices = services.with(i, { ...service, id });
|
|
105
|
-
}
|
|
106
101
|
}
|
|
102
|
+
identifiers[i] = id;
|
|
103
|
+
}
|
|
104
|
+
for (let i = 0; i < len; i++) {
|
|
105
|
+
const id = identifiers[i];
|
|
107
106
|
for (let j = 0; j < i; j++) {
|
|
108
|
-
if (id ===
|
|
107
|
+
if (id === identifiers[j]) {
|
|
109
108
|
return v.err({
|
|
110
109
|
message: `duplicate "${id}" service`,
|
|
111
110
|
path: ['service', i, 'id'],
|
|
@@ -114,9 +113,6 @@ export const didDocument = v
|
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
|
-
if (newServices !== undefined) {
|
|
118
|
-
return v.ok({ ...input, service: newServices });
|
|
119
|
-
}
|
|
120
116
|
return v.ok(input);
|
|
121
117
|
});
|
|
122
118
|
//# sourceMappingURL=typedefs.js.map
|
package/dist/typedefs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedefs.js","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"typedefs.js","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import * as t from './types.js';
|
|
2
|
+
const isUrlParseSupported = 'parse' in URL;
|
|
2
3
|
export const isAtprotoServiceEndpoint = (input) => {
|
|
3
|
-
|
|
4
|
+
let url = null;
|
|
5
|
+
if (isUrlParseSupported) {
|
|
6
|
+
url = URL.parse(input);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
try {
|
|
10
|
+
url = new URL(input);
|
|
11
|
+
}
|
|
12
|
+
catch { }
|
|
13
|
+
}
|
|
4
14
|
return (url !== null &&
|
|
5
15
|
(url.protocol === 'https:' || url.protocol === 'http:') &&
|
|
6
16
|
url.pathname === '/' &&
|
|
@@ -35,21 +45,19 @@ export const getAtprotoServiceEndpoint = (doc, predicate) => {
|
|
|
35
45
|
if (!services) {
|
|
36
46
|
return;
|
|
37
47
|
}
|
|
38
|
-
const expectedId = doc.id + predicate.id;
|
|
39
|
-
const expectedType = predicate.type;
|
|
40
48
|
for (let idx = 0, len = services.length; idx < len; idx++) {
|
|
41
49
|
const { id, type, serviceEndpoint } = services[idx];
|
|
42
|
-
if (id !==
|
|
50
|
+
if (id !== predicate.id && id !== doc.id + predicate.id) {
|
|
43
51
|
continue;
|
|
44
52
|
}
|
|
45
|
-
if (
|
|
53
|
+
if (predicate.type !== undefined) {
|
|
46
54
|
if (Array.isArray(type)) {
|
|
47
|
-
if (!type.includes(
|
|
55
|
+
if (!type.includes(predicate.type)) {
|
|
48
56
|
continue;
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
59
|
else {
|
|
52
|
-
if (type !==
|
|
60
|
+
if (type !== predicate.type) {
|
|
53
61
|
continue;
|
|
54
62
|
}
|
|
55
63
|
}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAOhC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE;IAClE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/typedefs.ts
CHANGED
|
@@ -114,25 +114,26 @@ export const didDocument: v.Type<t.DidDocument> = v
|
|
|
114
114
|
.chain((input) => {
|
|
115
115
|
const { id: did, service: services } = input;
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
if (services?.length) {
|
|
118
|
+
const len = services.length;
|
|
119
|
+
const identifiers = new Array(len);
|
|
118
120
|
|
|
119
|
-
|
|
120
|
-
for (let i = 0, len = services.length; i < len; i++) {
|
|
121
|
+
for (let i = 0; i < len; i++) {
|
|
121
122
|
const service = services[i];
|
|
122
123
|
|
|
123
124
|
let id = service.id;
|
|
124
125
|
if (id[0] === '#') {
|
|
125
126
|
id = did + id;
|
|
126
|
-
|
|
127
|
-
if (newServices !== undefined) {
|
|
128
|
-
newServices[i] = { ...service, id };
|
|
129
|
-
} else {
|
|
130
|
-
newServices = services.with(i, { ...service, id });
|
|
131
|
-
}
|
|
132
127
|
}
|
|
133
128
|
|
|
129
|
+
identifiers[i] = id;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
for (let i = 0; i < len; i++) {
|
|
133
|
+
const id = identifiers[i];
|
|
134
|
+
|
|
134
135
|
for (let j = 0; j < i; j++) {
|
|
135
|
-
if (id ===
|
|
136
|
+
if (id === identifiers[j]) {
|
|
136
137
|
return v.err({
|
|
137
138
|
message: `duplicate "${id}" service`,
|
|
138
139
|
path: ['service', i, 'id'],
|
|
@@ -142,9 +143,5 @@ export const didDocument: v.Type<t.DidDocument> = v
|
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
if (newServices !== undefined) {
|
|
146
|
-
return v.ok({ ...input, service: newServices });
|
|
147
|
-
}
|
|
148
|
-
|
|
149
146
|
return v.ok(input);
|
|
150
147
|
});
|
package/lib/utils.ts
CHANGED
|
@@ -5,8 +5,17 @@ export interface VerificationMaterial {
|
|
|
5
5
|
publicKeyMultibase: string;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
const isUrlParseSupported = 'parse' in URL;
|
|
9
|
+
|
|
8
10
|
export const isAtprotoServiceEndpoint = (input: string): boolean => {
|
|
9
|
-
|
|
11
|
+
let url: URL | null = null;
|
|
12
|
+
if (isUrlParseSupported) {
|
|
13
|
+
url = URL.parse(input);
|
|
14
|
+
} else {
|
|
15
|
+
try {
|
|
16
|
+
url = new URL(input);
|
|
17
|
+
} catch {}
|
|
18
|
+
}
|
|
10
19
|
|
|
11
20
|
return (
|
|
12
21
|
url !== null &&
|
|
@@ -62,23 +71,20 @@ export const getAtprotoServiceEndpoint = (
|
|
|
62
71
|
return;
|
|
63
72
|
}
|
|
64
73
|
|
|
65
|
-
const expectedId = doc.id + predicate.id;
|
|
66
|
-
const expectedType = predicate.type;
|
|
67
|
-
|
|
68
74
|
for (let idx = 0, len = services.length; idx < len; idx++) {
|
|
69
75
|
const { id, type, serviceEndpoint } = services[idx];
|
|
70
76
|
|
|
71
|
-
if (id !==
|
|
77
|
+
if (id !== predicate.id && id !== doc.id + predicate.id) {
|
|
72
78
|
continue;
|
|
73
79
|
}
|
|
74
80
|
|
|
75
|
-
if (
|
|
81
|
+
if (predicate.type !== undefined) {
|
|
76
82
|
if (Array.isArray(type)) {
|
|
77
|
-
if (!type.includes(
|
|
83
|
+
if (!type.includes(predicate.type)) {
|
|
78
84
|
continue;
|
|
79
85
|
}
|
|
80
86
|
} else {
|
|
81
|
-
if (type !==
|
|
87
|
+
if (type !== predicate.type) {
|
|
82
88
|
continue;
|
|
83
89
|
}
|
|
84
90
|
}
|