@atcute/identity 0.1.2 → 1.0.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/did.d.ts +1 -6
- package/dist/did.js +0 -7
- package/dist/did.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/methods/plc.d.ts +1 -1
- package/dist/methods/web.d.ts +1 -1
- package/dist/typedefs.js +10 -14
- package/dist/typedefs.js.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/utils.js +4 -6
- package/dist/utils.js.map +1 -1
- package/lib/did.ts +1 -10
- package/lib/index.ts +0 -2
- package/lib/methods/plc.ts +1 -1
- package/lib/methods/web.ts +1 -1
- package/lib/typedefs.ts +13 -15
- package/lib/types.ts +1 -5
- package/lib/utils.ts +4 -7
- package/package.json +4 -3
- package/dist/handle.d.ts +0 -3
- package/dist/handle.js +0 -5
- package/dist/handle.js.map +0 -1
- package/lib/handle.ts +0 -8
package/dist/did.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import type { AtprotoDid, Did } from '
|
|
2
|
-
export declare const DID_RE: RegExp;
|
|
3
|
-
/**
|
|
4
|
-
* checks if it's a DID identifier
|
|
5
|
-
*/
|
|
6
|
-
export declare const isDid: (input: string) => input is Did;
|
|
1
|
+
import type { AtprotoDid, Did } from '@atcute/lexicons/syntax';
|
|
7
2
|
/**
|
|
8
3
|
* checks if it's a DID identifier that is supported by atproto
|
|
9
4
|
*/
|
package/dist/did.js
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { isPlcDid } from './methods/plc.js';
|
|
2
2
|
import { isAtprotoWebDid } from './methods/web.js';
|
|
3
|
-
export const DID_RE = /^(?=.{7,2048}$)did:([a-z]+):([a-zA-Z0-9._:%\-]*[a-zA-Z0-9._\-])$/;
|
|
4
|
-
/**
|
|
5
|
-
* checks if it's a DID identifier
|
|
6
|
-
*/
|
|
7
|
-
export const isDid = (input) => {
|
|
8
|
-
return input.length >= 7 && input.length <= 2048 && DID_RE.test(input);
|
|
9
|
-
};
|
|
10
3
|
/**
|
|
11
4
|
* checks if it's a DID identifier that is supported by atproto
|
|
12
5
|
*/
|
package/dist/did.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did.js","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"did.js","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAuB,EAAE;IAClE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAmB,GAAW,EAAK,EAAE;IACpE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,MAAW,CAAC;AACpB,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
package/dist/methods/plc.d.ts
CHANGED
package/dist/methods/web.d.ts
CHANGED
package/dist/typedefs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from '@badrap/valita';
|
|
2
|
-
import { isDid } from '
|
|
2
|
+
import { isDid } from '@atcute/lexicons/syntax';
|
|
3
3
|
import * as t from './types.js';
|
|
4
4
|
export const FRAGMENT_RE = /^#[^#]+$/;
|
|
5
5
|
export const MULTIBASE_RE = /^z[a-km-zA-HJ-NP-Z1-9]+$/;
|
|
@@ -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":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"typedefs.js","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export type Did<TMethod extends string = string> = `did:${TMethod}:${string}`;
|
|
3
|
-
export type AtprotoDid = Did<'plc' | 'web'>;
|
|
1
|
+
import type { Did } from '@atcute/lexicons';
|
|
4
2
|
export interface VerificationMethod {
|
|
5
3
|
id: string;
|
|
6
4
|
type: string;
|
package/dist/utils.js
CHANGED
|
@@ -45,21 +45,19 @@ export const getAtprotoServiceEndpoint = (doc, predicate) => {
|
|
|
45
45
|
if (!services) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
const expectedId = doc.id + predicate.id;
|
|
49
|
-
const expectedType = predicate.type;
|
|
50
48
|
for (let idx = 0, len = services.length; idx < len; idx++) {
|
|
51
49
|
const { id, type, serviceEndpoint } = services[idx];
|
|
52
|
-
if (id !==
|
|
50
|
+
if (id !== predicate.id && id !== doc.id + predicate.id) {
|
|
53
51
|
continue;
|
|
54
52
|
}
|
|
55
|
-
if (
|
|
53
|
+
if (predicate.type !== undefined) {
|
|
56
54
|
if (Array.isArray(type)) {
|
|
57
|
-
if (!type.includes(
|
|
55
|
+
if (!type.includes(predicate.type)) {
|
|
58
56
|
continue;
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
else {
|
|
62
|
-
if (type !==
|
|
60
|
+
if (type !== predicate.type) {
|
|
63
61
|
continue;
|
|
64
62
|
}
|
|
65
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,mBAAmB,GAAG,OAAO,IAAI,GAAG,CAAC;AAE3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE;IAClE,IAAI,GAAG,GAAe,IAAI,CAAC;IAC3B,IAAI,mBAAmB,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACP,IAAI,CAAC;YACJ,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,OAAO,CACN,GAAG,KAAK,IAAI;QACZ,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;QACvD,GAAG,CAAC,QAAQ,KAAK,GAAG;QACpB,GAAG,CAAC,MAAM,KAAK,EAAE;QACjB,GAAG,CAAC,IAAI,KAAK,EAAE,CACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,GAAkB,EAClB,EAAgB,EACmB,EAAE;IACrC,MAAM,mBAAmB,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACnD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1B,OAAO;IACR,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IAEpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YACvB,SAAS;QACV,CAAC;QAED,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtC,SAAS;QACV,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACrC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAkB,EAAoC,EAAE;IACtG,OAAO,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CACpD,GAAkB,EACiB,EAAE;IACrC,OAAO,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,GAAkB,EAClB,SAA8C,EACzB,EAAE;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO;IACR,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/did.ts
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
import type { AtprotoDid, Did } from '
|
|
1
|
+
import type { AtprotoDid, Did } from '@atcute/lexicons/syntax';
|
|
2
2
|
|
|
3
3
|
import { isPlcDid } from './methods/plc.js';
|
|
4
4
|
import { isAtprotoWebDid } from './methods/web.js';
|
|
5
5
|
|
|
6
|
-
export const DID_RE = /^(?=.{7,2048}$)did:([a-z]+):([a-zA-Z0-9._:%\-]*[a-zA-Z0-9._\-])$/;
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* checks if it's a DID identifier
|
|
10
|
-
*/
|
|
11
|
-
export const isDid = (input: string): input is Did => {
|
|
12
|
-
return input.length >= 7 && input.length <= 2048 && DID_RE.test(input);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
6
|
/**
|
|
16
7
|
* checks if it's a DID identifier that is supported by atproto
|
|
17
8
|
*/
|
package/lib/index.ts
CHANGED
package/lib/methods/plc.ts
CHANGED
package/lib/methods/web.ts
CHANGED
package/lib/typedefs.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as v from '@badrap/valita';
|
|
2
2
|
|
|
3
|
-
import { isDid } from '
|
|
3
|
+
import { isDid } from '@atcute/lexicons/syntax';
|
|
4
|
+
|
|
4
5
|
import * as t from './types.js';
|
|
5
6
|
|
|
6
7
|
export const FRAGMENT_RE = /^#[^#]+$/;
|
|
@@ -114,25 +115,26 @@ export const didDocument: v.Type<t.DidDocument> = v
|
|
|
114
115
|
.chain((input) => {
|
|
115
116
|
const { id: did, service: services } = input;
|
|
116
117
|
|
|
117
|
-
|
|
118
|
+
if (services?.length) {
|
|
119
|
+
const len = services.length;
|
|
120
|
+
const identifiers = new Array(len);
|
|
118
121
|
|
|
119
|
-
|
|
120
|
-
for (let i = 0, len = services.length; i < len; i++) {
|
|
122
|
+
for (let i = 0; i < len; i++) {
|
|
121
123
|
const service = services[i];
|
|
122
124
|
|
|
123
125
|
let id = service.id;
|
|
124
126
|
if (id[0] === '#') {
|
|
125
127
|
id = did + id;
|
|
126
|
-
|
|
127
|
-
if (newServices !== undefined) {
|
|
128
|
-
newServices[i] = { ...service, id };
|
|
129
|
-
} else {
|
|
130
|
-
newServices = services.with(i, { ...service, id });
|
|
131
|
-
}
|
|
132
128
|
}
|
|
133
129
|
|
|
130
|
+
identifiers[i] = id;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
for (let i = 0; i < len; i++) {
|
|
134
|
+
const id = identifiers[i];
|
|
135
|
+
|
|
134
136
|
for (let j = 0; j < i; j++) {
|
|
135
|
-
if (id ===
|
|
137
|
+
if (id === identifiers[j]) {
|
|
136
138
|
return v.err({
|
|
137
139
|
message: `duplicate "${id}" service`,
|
|
138
140
|
path: ['service', i, 'id'],
|
|
@@ -142,9 +144,5 @@ export const didDocument: v.Type<t.DidDocument> = v
|
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
146
|
|
|
145
|
-
if (newServices !== undefined) {
|
|
146
|
-
return v.ok({ ...input, service: newServices });
|
|
147
|
-
}
|
|
148
|
-
|
|
149
147
|
return v.ok(input);
|
|
150
148
|
});
|
package/lib/types.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type Did<TMethod extends string = string> = `did:${TMethod}:${string}`;
|
|
4
|
-
|
|
5
|
-
export type AtprotoDid = Did<'plc' | 'web'>;
|
|
1
|
+
import type { Did } from '@atcute/lexicons';
|
|
6
2
|
|
|
7
3
|
export interface VerificationMethod {
|
|
8
4
|
id: string;
|
package/lib/utils.ts
CHANGED
|
@@ -71,23 +71,20 @@ export const getAtprotoServiceEndpoint = (
|
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
const expectedId = doc.id + predicate.id;
|
|
75
|
-
const expectedType = predicate.type;
|
|
76
|
-
|
|
77
74
|
for (let idx = 0, len = services.length; idx < len; idx++) {
|
|
78
75
|
const { id, type, serviceEndpoint } = services[idx];
|
|
79
76
|
|
|
80
|
-
if (id !==
|
|
77
|
+
if (id !== predicate.id && id !== doc.id + predicate.id) {
|
|
81
78
|
continue;
|
|
82
79
|
}
|
|
83
80
|
|
|
84
|
-
if (
|
|
81
|
+
if (predicate.type !== undefined) {
|
|
85
82
|
if (Array.isArray(type)) {
|
|
86
|
-
if (!type.includes(
|
|
83
|
+
if (!type.includes(predicate.type)) {
|
|
87
84
|
continue;
|
|
88
85
|
}
|
|
89
86
|
} else {
|
|
90
|
-
if (type !==
|
|
87
|
+
if (type !== predicate.type) {
|
|
91
88
|
continue;
|
|
92
89
|
}
|
|
93
90
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@atcute/identity",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"description": "syntax, type definitions and schemas for atproto handles, DIDs and DID documents",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"atproto",
|
|
@@ -23,10 +23,11 @@
|
|
|
23
23
|
},
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@types/bun": "^1.2.
|
|
26
|
+
"@types/bun": "^1.2.13"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@badrap/valita": "^0.4.
|
|
29
|
+
"@badrap/valita": "^0.4.4",
|
|
30
|
+
"@atcute/lexicons": "^1.0.0"
|
|
30
31
|
},
|
|
31
32
|
"scripts": {
|
|
32
33
|
"build": "tsc --project tsconfig.build.json",
|
package/dist/handle.d.ts
DELETED
package/dist/handle.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export const HANDLE_RE = /^(?=.{4,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+([a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/;
|
|
2
|
-
export const isHandle = (str) => {
|
|
3
|
-
return str.length >= 3 && str.length <= 253 && HANDLE_RE.test(str);
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=handle.js.map
|
package/dist/handle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../lib/handle.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GACrB,4GAA4G,CAAC;AAE9G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAiB,EAAE;IACtD,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC,CAAC"}
|
package/lib/handle.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Handle } from './types.js';
|
|
2
|
-
|
|
3
|
-
export const HANDLE_RE =
|
|
4
|
-
/^(?=.{4,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+([a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/;
|
|
5
|
-
|
|
6
|
-
export const isHandle = (str: string): str is Handle => {
|
|
7
|
-
return str.length >= 3 && str.length <= 253 && HANDLE_RE.test(str);
|
|
8
|
-
};
|