@sphereon/ssi-sdk.uni-resolver-registrar-api 0.33.1-feature.vcdm2.tsup.32 → 0.33.1-next.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/api-functions.d.ts +30 -0
- package/dist/api-functions.d.ts.map +1 -0
- package/dist/api-functions.js +300 -0
- package/dist/api-functions.js.map +1 -0
- package/dist/did-web-server.d.ts +20 -0
- package/dist/did-web-server.d.ts.map +1 -0
- package/dist/did-web-server.js +51 -0
- package/dist/did-web-server.js.map +1 -0
- package/dist/index.d.ts +5 -143
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -337
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +98 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/uni-resolver-api-server.d.ts +20 -0
- package/dist/uni-resolver-api-server.d.ts.map +1 -0
- package/dist/uni-resolver-api-server.js +49 -0
- package/dist/uni-resolver-api-server.js.map +1 -0
- package/package.json +21 -31
- package/src/types.ts +0 -1
- package/dist/index.cjs +0 -370
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -145
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ISingleEndpointOpts } from '@sphereon/ssi-express-support';
|
|
2
|
+
import { Router } from 'express';
|
|
3
|
+
import { ICreateDidEndpointOpts, IGlobalDidWebEndpointOpts, IRequiredContext, IResolveEndpointOpts } from './types';
|
|
4
|
+
export declare function createDidEndpoint(router: Router, context: IRequiredContext, opts?: ICreateDidEndpointOpts): void;
|
|
5
|
+
export declare function getDidMethodsEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
6
|
+
export declare function resolveDidEndpoint(router: Router, context: IRequiredContext, opts?: IResolveEndpointOpts): void;
|
|
7
|
+
/**
|
|
8
|
+
* @param router
|
|
9
|
+
* @param context
|
|
10
|
+
* @param opts
|
|
11
|
+
*/
|
|
12
|
+
export declare function deleteDidEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
13
|
+
export declare function deactivateDidEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
14
|
+
/**
|
|
15
|
+
* Endpoint that eases DID web resolution, by mapping did-web paths to stored agent DIDs.
|
|
16
|
+
*
|
|
17
|
+
* Typically, you will have a reverse proxy or load balancer in front of this endpoint.
|
|
18
|
+
*
|
|
19
|
+
* Some examples of how did:web behaves:
|
|
20
|
+
* did:web:example.com resolves to https://example.com/.well-known/did.json
|
|
21
|
+
* did:web:example.com:sub:paths resolves to https://example.com/sub/paths/did.json
|
|
22
|
+
*
|
|
23
|
+
* This endpoint translate both forms by looking at the paths that end in /did.json.
|
|
24
|
+
*
|
|
25
|
+
* @param router
|
|
26
|
+
* @param context
|
|
27
|
+
* @param opts
|
|
28
|
+
*/
|
|
29
|
+
export declare function didWebDomainEndpoint(router: Router, context: IRequiredContext, opts?: IGlobalDidWebEndpointOpts): void;
|
|
30
|
+
//# sourceMappingURL=api-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-functions.d.ts","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AAGjG,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAKL,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAKhB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,sBAAsB,QAgFzG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAe1G;AAsBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,oBAAoB,QA2BxG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAsBtG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,mBAAmB,QAiC1G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,yBAAyB,QAoC/G"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createDidEndpoint = createDidEndpoint;
|
|
16
|
+
exports.getDidMethodsEndpoint = getDidMethodsEndpoint;
|
|
17
|
+
exports.resolveDidEndpoint = resolveDidEndpoint;
|
|
18
|
+
exports.deleteDidEndpoint = deleteDidEndpoint;
|
|
19
|
+
exports.deactivateDidEndpoint = deactivateDidEndpoint;
|
|
20
|
+
exports.didWebDomainEndpoint = didWebDomainEndpoint;
|
|
21
|
+
const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
22
|
+
const ssi_sdk_ext_key_utils_1 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
23
|
+
const ssi_express_support_1 = require("@sphereon/ssi-express-support");
|
|
24
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
25
|
+
const uuid_1 = require("uuid");
|
|
26
|
+
const debug_1 = __importDefault(require("debug"));
|
|
27
|
+
const debug = (0, debug_1.default)('sphereon:ssi-sdk:uni-resolver-registrar');
|
|
28
|
+
function createDidEndpoint(router, context, opts) {
|
|
29
|
+
var _a;
|
|
30
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
31
|
+
console.log(`create DID endpoint is disabled`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/identifiers';
|
|
35
|
+
router.post(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
try {
|
|
38
|
+
const createRequest = request.body;
|
|
39
|
+
if (!createRequest) {
|
|
40
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No DID create request present');
|
|
41
|
+
}
|
|
42
|
+
const did = createRequest.did;
|
|
43
|
+
const didMethod = (_a = request.query.method) !== null && _a !== void 0 ? _a : (did ? (0, ssi_types_1.parseDid)(did).method : opts === null || opts === void 0 ? void 0 : opts.defaultMethod);
|
|
44
|
+
const allDidMethods = yield (0, ssi_sdk_ext_did_utils_1.getAgentDIDMethods)(context);
|
|
45
|
+
if (!didMethod) {
|
|
46
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No DID method supplied or deductible');
|
|
47
|
+
}
|
|
48
|
+
else if (did && (0, ssi_types_1.parseDid)(did).method != didMethod) {
|
|
49
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'DID method did not match method param');
|
|
50
|
+
}
|
|
51
|
+
else if (!allDidMethods.includes(didMethod)) {
|
|
52
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'DID method not supported');
|
|
53
|
+
}
|
|
54
|
+
const provider = `did:${didMethod}`;
|
|
55
|
+
const jobId = (_b = createRequest.jobId) !== null && _b !== void 0 ? _b : (0, uuid_1.v4)();
|
|
56
|
+
let alias = undefined;
|
|
57
|
+
if (didMethod === 'web') {
|
|
58
|
+
if (!did) {
|
|
59
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Please provide a value for "did" in the request body when creating a DID web');
|
|
60
|
+
}
|
|
61
|
+
alias = (0, ssi_types_1.parseDid)(did).id;
|
|
62
|
+
if (!alias) {
|
|
63
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Could not determine alias from did:web DID value: ' + did);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
let identifier;
|
|
67
|
+
let state;
|
|
68
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.noErrorOnExistingDid) && did) {
|
|
69
|
+
try {
|
|
70
|
+
identifier = yield context.agent.didManagerGet({ did });
|
|
71
|
+
state = 'exists';
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
// Okay, since we will create a new one
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (identifier === undefined) {
|
|
78
|
+
if (createRequest.options.storeSecrets === false) {
|
|
79
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Only storeSecrets mode is supported currently');
|
|
80
|
+
/*const memoryKMS = new SphereonKeyManager({
|
|
81
|
+
store: new MemoryKeyStore(),
|
|
82
|
+
kms: {'mem': new KeyManagementSystem(new MemoryPrivateKeyStore())}
|
|
83
|
+
})
|
|
84
|
+
identifier = await memoryKMS..didManagerCreate({provider, alias, kms: opts?.kms})*/
|
|
85
|
+
}
|
|
86
|
+
else if (createRequest.options.storeSecrets || (opts === null || opts === void 0 ? void 0 : opts.storeSecrets)) {
|
|
87
|
+
identifier = yield context.agent.didManagerCreate({ provider, alias, kms: opts === null || opts === void 0 ? void 0 : opts.kms });
|
|
88
|
+
state = 'finished';
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Only storeSecrets mode is supported currently');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!identifier || !state) {
|
|
95
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'An identifier and did state should be present at this point');
|
|
96
|
+
}
|
|
97
|
+
const didDocument = (0, ssi_sdk_ext_did_utils_1.toDidDocument)(identifier, { did, use: [ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature, ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption] });
|
|
98
|
+
const createState = {
|
|
99
|
+
jobId,
|
|
100
|
+
didState: {
|
|
101
|
+
did: identifier.did,
|
|
102
|
+
state,
|
|
103
|
+
didDocument,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
response.statusCode = 200;
|
|
107
|
+
return response.send(createState);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
function getDidMethodsEndpoint(router, context, opts) {
|
|
115
|
+
var _a;
|
|
116
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
117
|
+
console.log(`Get DID methods endpoint is disabled`);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/methods';
|
|
121
|
+
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
try {
|
|
123
|
+
const methods = yield (0, ssi_sdk_ext_did_utils_1.getAgentDIDMethods)(context); // these are already without the 'did:' prefix
|
|
124
|
+
response.statusCode = 200;
|
|
125
|
+
return response.send(methods);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
function agentDidToResolutionResult(context, did) {
|
|
133
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
try {
|
|
135
|
+
const identifier = yield context.agent.didManagerGet({ did });
|
|
136
|
+
debug(JSON.stringify(identifier, null, 2));
|
|
137
|
+
return (0, ssi_sdk_ext_did_utils_1.toDidResolutionResult)(identifier, {
|
|
138
|
+
did,
|
|
139
|
+
supportedMethods: yield (0, ssi_sdk_ext_did_utils_1.getAgentDIDMethods)(context),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
console.log(JSON.stringify(error.message));
|
|
144
|
+
return {
|
|
145
|
+
didDocument: null,
|
|
146
|
+
didResolutionMetadata: {
|
|
147
|
+
error: 'notFound',
|
|
148
|
+
},
|
|
149
|
+
didDocumentMetadata: {},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function resolveDidEndpoint(router, context, opts) {
|
|
155
|
+
var _a;
|
|
156
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
157
|
+
console.log(`Resolve DID endpoint is disabled`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/identifiers/:identifier';
|
|
161
|
+
router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
var _a, _b, _c, _d;
|
|
163
|
+
try {
|
|
164
|
+
const did = request.params.identifier;
|
|
165
|
+
if (!did) {
|
|
166
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'no identifier provided');
|
|
167
|
+
}
|
|
168
|
+
const mode = (_d = (_b = (_a = request.query.mode) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase()) !== null && _b !== void 0 ? _b : (_c = opts === null || opts === void 0 ? void 0 : opts.mode) === null || _c === void 0 ? void 0 : _c.toLowerCase()) !== null && _d !== void 0 ? _d : 'hybrid';
|
|
169
|
+
let resolutionResult;
|
|
170
|
+
if (mode === 'local' || mode === 'hybrid') {
|
|
171
|
+
resolutionResult = yield agentDidToResolutionResult(context, did);
|
|
172
|
+
}
|
|
173
|
+
if (mode !== 'local' && !(resolutionResult === null || resolutionResult === void 0 ? void 0 : resolutionResult.didDocument)) {
|
|
174
|
+
resolutionResult = yield context.agent.resolveDid({ didUrl: did });
|
|
175
|
+
}
|
|
176
|
+
response.statusCode = 200;
|
|
177
|
+
return response.send(resolutionResult);
|
|
178
|
+
}
|
|
179
|
+
catch (e) {
|
|
180
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
181
|
+
}
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* @param router
|
|
186
|
+
* @param context
|
|
187
|
+
* @param opts
|
|
188
|
+
*/
|
|
189
|
+
function deleteDidEndpoint(router, context, opts) {
|
|
190
|
+
var _a;
|
|
191
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
192
|
+
console.log(`Deactivate DID endpoint is disabled`);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
router.delete((_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/identifiers/:identifier', (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
try {
|
|
197
|
+
const did = request.params.identifier;
|
|
198
|
+
if (!did) {
|
|
199
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'no DID provided');
|
|
200
|
+
}
|
|
201
|
+
const result = yield context.agent.didManagerDelete({ did });
|
|
202
|
+
if (!result) {
|
|
203
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `id ${did} not found`);
|
|
204
|
+
}
|
|
205
|
+
response.statusCode = 200;
|
|
206
|
+
return response.send();
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
210
|
+
}
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
function deactivateDidEndpoint(router, context, opts) {
|
|
214
|
+
var _a;
|
|
215
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
216
|
+
console.log('Deactivate DID endpoint is disabled');
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
router.post((_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/deactivate', (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
220
|
+
try {
|
|
221
|
+
const deactivateRequest = request.body;
|
|
222
|
+
if (!deactivateRequest) {
|
|
223
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'Invalid request body', { state: 'failed' });
|
|
224
|
+
}
|
|
225
|
+
const { did, jobId = (0, uuid_1.v4)() } = deactivateRequest;
|
|
226
|
+
if (!did) {
|
|
227
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No DID provided', { state: 'failed' });
|
|
228
|
+
}
|
|
229
|
+
const result = yield context.agent.didManagerDelete({ did });
|
|
230
|
+
if (!result) {
|
|
231
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `DID ${did} not found`, { state: 'failed' });
|
|
232
|
+
}
|
|
233
|
+
response.status(200).json({
|
|
234
|
+
state: 'finished',
|
|
235
|
+
did,
|
|
236
|
+
jobId,
|
|
237
|
+
});
|
|
238
|
+
return response.send();
|
|
239
|
+
}
|
|
240
|
+
catch (e) {
|
|
241
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, { state: 'failed', errorDetails: e });
|
|
242
|
+
}
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Endpoint that eases DID web resolution, by mapping did-web paths to stored agent DIDs.
|
|
247
|
+
*
|
|
248
|
+
* Typically, you will have a reverse proxy or load balancer in front of this endpoint.
|
|
249
|
+
*
|
|
250
|
+
* Some examples of how did:web behaves:
|
|
251
|
+
* did:web:example.com resolves to https://example.com/.well-known/did.json
|
|
252
|
+
* did:web:example.com:sub:paths resolves to https://example.com/sub/paths/did.json
|
|
253
|
+
*
|
|
254
|
+
* This endpoint translate both forms by looking at the paths that end in /did.json.
|
|
255
|
+
*
|
|
256
|
+
* @param router
|
|
257
|
+
* @param context
|
|
258
|
+
* @param opts
|
|
259
|
+
*/
|
|
260
|
+
function didWebDomainEndpoint(router, context, opts) {
|
|
261
|
+
var _a;
|
|
262
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
|
|
263
|
+
console.log(`DID Web domain resolution endpoint is disabled`);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
router.get((_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : ':path(*)/did.json', (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
267
|
+
var _a, _b, _c, _d;
|
|
268
|
+
try {
|
|
269
|
+
const path = request.params.path;
|
|
270
|
+
if (!path || path.length === 0) {
|
|
271
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, 'Not found');
|
|
272
|
+
}
|
|
273
|
+
let did;
|
|
274
|
+
did = `did:web:${(_c = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.hostname) === null || _a === void 0 ? void 0 : _a.replace('https://', '')) === null || _b === void 0 ? void 0 : _b.replace('http://', '')) !== null && _c !== void 0 ? _c : request.hostname}`;
|
|
275
|
+
if (path !== '/.well-known') {
|
|
276
|
+
if (opts === null || opts === void 0 ? void 0 : opts.disableSubPaths) {
|
|
277
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, 'Not found');
|
|
278
|
+
}
|
|
279
|
+
const suffix = path.replace(/\//g, ':').replace(/%2F/g, ':');
|
|
280
|
+
if (!suffix.startsWith(':')) {
|
|
281
|
+
did += ':';
|
|
282
|
+
}
|
|
283
|
+
did += suffix;
|
|
284
|
+
}
|
|
285
|
+
else if (opts === null || opts === void 0 ? void 0 : opts.disableWellKnown) {
|
|
286
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, 'Not found');
|
|
287
|
+
}
|
|
288
|
+
const resolutionResult = yield agentDidToResolutionResult(context, did);
|
|
289
|
+
if (!resolutionResult || !resolutionResult.didDocument || ((_d = resolutionResult === null || resolutionResult === void 0 ? void 0 : resolutionResult.didResolutionMetadata) === null || _d === void 0 ? void 0 : _d.error) === 'notFound') {
|
|
290
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 404, 'Not found');
|
|
291
|
+
}
|
|
292
|
+
response.statusCode = 200;
|
|
293
|
+
return response.send(resolutionResult.didDocument);
|
|
294
|
+
}
|
|
295
|
+
catch (e) {
|
|
296
|
+
return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
|
|
297
|
+
}
|
|
298
|
+
}));
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=api-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ExpressSupport } from '@sphereon/ssi-express-support';
|
|
2
|
+
import { TAgent } from '@veramo/core';
|
|
3
|
+
import express, { Express } from 'express';
|
|
4
|
+
import { IDidWebServiceOpts, IRequiredPlugins } from './types';
|
|
5
|
+
export declare class DidWebServer {
|
|
6
|
+
get router(): express.Router | undefined;
|
|
7
|
+
private readonly _express;
|
|
8
|
+
private readonly _agent;
|
|
9
|
+
private readonly _opts?;
|
|
10
|
+
private readonly _router;
|
|
11
|
+
constructor(args: {
|
|
12
|
+
agent: TAgent<IRequiredPlugins>;
|
|
13
|
+
expressSupport: ExpressSupport;
|
|
14
|
+
opts?: IDidWebServiceOpts;
|
|
15
|
+
});
|
|
16
|
+
get agent(): TAgent<IRequiredPlugins> | undefined;
|
|
17
|
+
get opts(): IDidWebServiceOpts | undefined;
|
|
18
|
+
get express(): Express | undefined;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=did-web-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did-web-server.d.ts","sourceRoot":"","sources":["../src/did-web-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,OAAO,EAAE,EAAE,OAAO,EAAU,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE9D,qBAAa,YAAY;IACvB,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAEvC;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAyBhH,IAAI,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAEhD;IAED,IAAI,IAAI,IAAI,kBAAkB,GAAG,SAAS,CAEzC;IAED,IAAI,OAAO,IAAI,OAAO,GAAG,SAAS,CAEjC;CACF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DidWebServer = void 0;
|
|
7
|
+
const ssi_sdk_core_1 = require("@sphereon/ssi-sdk.core");
|
|
8
|
+
const express_1 = __importDefault(require("express"));
|
|
9
|
+
const api_functions_1 = require("./api-functions");
|
|
10
|
+
class DidWebServer {
|
|
11
|
+
get router() {
|
|
12
|
+
return this._router;
|
|
13
|
+
}
|
|
14
|
+
constructor(args) {
|
|
15
|
+
var _a;
|
|
16
|
+
const { agent, opts } = args;
|
|
17
|
+
const features = (_a = opts === null || opts === void 0 ? void 0 : opts.enableFeatures) !== null && _a !== void 0 ? _a : [];
|
|
18
|
+
if (!features.includes('did-web-global-resolution')) {
|
|
19
|
+
console.log('did:web hosting service NOT enabled');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this._agent = agent;
|
|
23
|
+
if (opts === null || opts === void 0 ? void 0 : opts.globalAuth) {
|
|
24
|
+
copyGlobalAuthToEndpoint(opts, 'endpointOpts');
|
|
25
|
+
}
|
|
26
|
+
this._opts = opts;
|
|
27
|
+
this._express = args.expressSupport.express;
|
|
28
|
+
this._router = express_1.default.Router();
|
|
29
|
+
const context = (0, ssi_sdk_core_1.agentContext)(agent);
|
|
30
|
+
console.log(`did:web hosting service enabled`);
|
|
31
|
+
(0, api_functions_1.didWebDomainEndpoint)(this.router, context, opts === null || opts === void 0 ? void 0 : opts.endpointOpts);
|
|
32
|
+
this._express.use(this.router);
|
|
33
|
+
}
|
|
34
|
+
get agent() {
|
|
35
|
+
return this._agent;
|
|
36
|
+
}
|
|
37
|
+
get opts() {
|
|
38
|
+
return this._opts;
|
|
39
|
+
}
|
|
40
|
+
get express() {
|
|
41
|
+
return this._express;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.DidWebServer = DidWebServer;
|
|
45
|
+
function copyGlobalAuthToEndpoint(opts, key) {
|
|
46
|
+
if (opts === null || opts === void 0 ? void 0 : opts.globalAuth) {
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
opts[key] = Object.assign(Object.assign({}, opts === null || opts === void 0 ? void 0 : opts.globalAuth), opts[key]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=did-web-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did-web-server.js","sourceRoot":"","sources":["../src/did-web-server.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAqD;AAIrD,sDAAkD;AAClD,mDAAsD;AAGtD,MAAa,YAAY;IACvB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAOD,YAAY,IAAoG;;QAC9G,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,EAAE,CAAA;QAC3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;YAClD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,CAAC;YACrB,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAE/B,MAAM,OAAO,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAA;QAEnC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAE9C,IAAA,oCAAoB,EAAC,IAAI,CAAC,MAAO,EAAE,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAC,CAAA;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAO,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AA9CD,oCA8CC;AAED,SAAS,wBAAwB,CAAC,IAAwB,EAAE,GAAW;IACrE,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,CAAC;QACrB,aAAa;QACb,IAAI,CAAC,GAAG,CAAC,mCACJ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,GAEhB,IAAI,CAAC,GAAG,CAAC,CACb,CAAA;IACH,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,145 +1,7 @@
|
|
|
1
|
-
import { GenericAuthArgs, ISingleEndpointOpts, ExpressSupport } from '@sphereon/ssi-express-support';
|
|
2
|
-
import { IDataStoreORM, IDIDManager, IKeyManager, IResolver, IAgentContext, TAgent } from '@veramo/core';
|
|
3
|
-
import express, { Express, Router } from 'express';
|
|
4
|
-
import { DIDDocument } from '@sphereon/did-uni-client';
|
|
5
|
-
import { JsonWebKey } from '@sphereon/ssi-types';
|
|
6
|
-
import { VerificationMethod } from 'did-resolver';
|
|
7
|
-
|
|
8
|
-
type IRequiredPlugins = IDataStoreORM & IDIDManager & IKeyManager & IResolver;
|
|
9
|
-
type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
10
|
-
interface DidRegistrationCreateRequest {
|
|
11
|
-
did?: string;
|
|
12
|
-
jobId: string;
|
|
13
|
-
options: DidRegistrationOptions;
|
|
14
|
-
secret: DidRegistrationSecret;
|
|
15
|
-
didDocument?: DIDDocument;
|
|
16
|
-
}
|
|
17
|
-
interface DidRegistrationUpdateRequest {
|
|
18
|
-
did: string;
|
|
19
|
-
jobId: string;
|
|
20
|
-
options: DidRegistrationOptions;
|
|
21
|
-
secret: DidRegistrationSecret;
|
|
22
|
-
didDocumentOperation: DidDocumentOperation[];
|
|
23
|
-
didDocument?: DIDDocument[];
|
|
24
|
-
}
|
|
25
|
-
interface DidRegistrationDeactivateRequest {
|
|
26
|
-
did: string;
|
|
27
|
-
jobId?: string;
|
|
28
|
-
options?: DidRegistrationOptions;
|
|
29
|
-
secret?: DidRegistrationSecret;
|
|
30
|
-
}
|
|
31
|
-
type DidDocumentOperation = 'setDidDocument' | 'addToDidDocument' | 'removeFromDidDocument' | string;
|
|
32
|
-
interface DidRegistrationOptions {
|
|
33
|
-
network?: string;
|
|
34
|
-
storeSecrets?: boolean;
|
|
35
|
-
returnSecrets?: boolean;
|
|
36
|
-
[x: string]: any;
|
|
37
|
-
}
|
|
38
|
-
interface DidRegistrationSecret {
|
|
39
|
-
seed?: string;
|
|
40
|
-
verificationMethod?: CreateVerificationMethod[];
|
|
41
|
-
[x: string]: any;
|
|
42
|
-
}
|
|
43
|
-
interface CreateVerificationMethod extends VerificationMethod {
|
|
44
|
-
privateKeyBase58?: string;
|
|
45
|
-
privateKeyBase64?: string;
|
|
46
|
-
privateKeyJwk?: JsonWebKey;
|
|
47
|
-
privateKeyHex?: string;
|
|
48
|
-
privateKeyMultibase?: string;
|
|
49
|
-
purpose?: ('authentication' | 'assertionMethod' | 'capabilityDelegation' | 'capabilityInvocation')[];
|
|
50
|
-
}
|
|
51
|
-
interface CreateState {
|
|
52
|
-
jobId: string;
|
|
53
|
-
didState: DidState;
|
|
54
|
-
didRegistrationMetadata?: Record<string, any>;
|
|
55
|
-
didDocumentMetadata?: Record<string, any>;
|
|
56
|
-
}
|
|
57
|
-
type DidStateValue = 'finished' | 'failed' | 'action' | 'wait' | 'exists';
|
|
58
|
-
type DidStateAction = 'redirect' | 'getVerificationMethod' | 'signPayload' | 'decryptPayload';
|
|
59
|
-
interface DidState {
|
|
60
|
-
state: DidStateValue;
|
|
61
|
-
action?: DidStateAction;
|
|
62
|
-
wait?: string;
|
|
63
|
-
waitTime?: number;
|
|
64
|
-
did: string;
|
|
65
|
-
secret?: DidRegistrationSecret;
|
|
66
|
-
didDocument?: DIDDocument;
|
|
67
|
-
}
|
|
68
|
-
interface IDidWebServiceOpts {
|
|
69
|
-
globalAuth?: GenericAuthArgs;
|
|
70
|
-
endpointOpts?: IGlobalDidWebEndpointOpts;
|
|
71
|
-
enableFeatures?: DidWebServiceFeatures[];
|
|
72
|
-
}
|
|
73
|
-
interface IDidAPIOpts {
|
|
74
|
-
endpointOpts?: IDidAPIEndpointOpts;
|
|
75
|
-
enableFeatures?: DidApiFeatures[];
|
|
76
|
-
}
|
|
77
|
-
interface IDidAPIEndpointOpts {
|
|
78
|
-
basePath?: string;
|
|
79
|
-
globalAuth?: GenericAuthArgs;
|
|
80
|
-
createDid?: ICreateDidEndpointOpts;
|
|
81
|
-
resolveDid?: IResolveEndpointOpts;
|
|
82
|
-
deactivateDid?: ISingleEndpointOpts;
|
|
83
|
-
getDidMethods?: ISingleEndpointOpts;
|
|
84
|
-
}
|
|
85
|
-
interface IGlobalDidWebEndpointOpts extends ISingleEndpointOpts {
|
|
86
|
-
hostname?: string;
|
|
87
|
-
disableWellKnown?: boolean;
|
|
88
|
-
disableSubPaths?: boolean;
|
|
89
|
-
}
|
|
90
|
-
interface ICreateDidEndpointOpts extends ISingleEndpointOpts {
|
|
91
|
-
kms?: string;
|
|
92
|
-
storeSecrets?: boolean;
|
|
93
|
-
noErrorOnExistingDid?: boolean;
|
|
94
|
-
defaultMethod?: string;
|
|
95
|
-
}
|
|
96
|
-
interface IResolveEndpointOpts extends ISingleEndpointOpts {
|
|
97
|
-
mode?: 'local' | 'hybrid' | 'global';
|
|
98
|
-
}
|
|
99
|
-
type DidWebServiceFeatures = 'did-web-global-resolution';
|
|
100
|
-
type DidApiFeatures = 'did-resolve' | 'did-persist';
|
|
101
|
-
|
|
102
|
-
declare class UniResolverApiServer {
|
|
103
|
-
get router(): express.Router;
|
|
104
|
-
private readonly _express;
|
|
105
|
-
private readonly _agent;
|
|
106
|
-
private readonly _opts?;
|
|
107
|
-
private readonly _router;
|
|
108
|
-
constructor(args: {
|
|
109
|
-
agent: TAgent<IRequiredPlugins>;
|
|
110
|
-
expressSupport: ExpressSupport;
|
|
111
|
-
opts?: IDidAPIOpts;
|
|
112
|
-
});
|
|
113
|
-
get agent(): TAgent<IRequiredPlugins>;
|
|
114
|
-
get opts(): IDidAPIOpts | undefined;
|
|
115
|
-
get express(): Express;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
declare function createDidEndpoint(router: Router, context: IRequiredContext, opts?: ICreateDidEndpointOpts): void;
|
|
119
|
-
declare function getDidMethodsEndpoint(router: Router, context: IRequiredContext, opts?: ISingleEndpointOpts): void;
|
|
120
|
-
declare function resolveDidEndpoint(router: Router, context: IRequiredContext, opts?: IResolveEndpointOpts): void;
|
|
121
1
|
/**
|
|
122
|
-
* @
|
|
123
|
-
* @param context
|
|
124
|
-
* @param opts
|
|
2
|
+
* @public
|
|
125
3
|
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
*
|
|
131
|
-
* Typically, you will have a reverse proxy or load balancer in front of this endpoint.
|
|
132
|
-
*
|
|
133
|
-
* Some examples of how did:web behaves:
|
|
134
|
-
* did:web:example.com resolves to https://example.com/.well-known/did.json
|
|
135
|
-
* did:web:example.com:sub:paths resolves to https://example.com/sub/paths/did.json
|
|
136
|
-
*
|
|
137
|
-
* This endpoint translate both forms by looking at the paths that end in /did.json.
|
|
138
|
-
*
|
|
139
|
-
* @param router
|
|
140
|
-
* @param context
|
|
141
|
-
* @param opts
|
|
142
|
-
*/
|
|
143
|
-
declare function didWebDomainEndpoint(router: Router, context: IRequiredContext, opts?: IGlobalDidWebEndpointOpts): void;
|
|
144
|
-
|
|
145
|
-
export { type CreateState, type CreateVerificationMethod, type DidApiFeatures, type DidDocumentOperation, type DidRegistrationCreateRequest, type DidRegistrationDeactivateRequest, type DidRegistrationOptions, type DidRegistrationSecret, type DidRegistrationUpdateRequest, type DidState, type DidStateAction, type DidStateValue, type DidWebServiceFeatures, type ICreateDidEndpointOpts, type IDidAPIEndpointOpts, type IDidAPIOpts, type IDidWebServiceOpts, type IGlobalDidWebEndpointOpts, type IRequiredContext, type IRequiredPlugins, type IResolveEndpointOpts, UniResolverApiServer, createDidEndpoint, deactivateDidEndpoint, deleteDidEndpoint, didWebDomainEndpoint, getDidMethodsEndpoint, resolveDidEndpoint };
|
|
4
|
+
export * from './uni-resolver-api-server';
|
|
5
|
+
export * from './types';
|
|
6
|
+
export * from './api-functions';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,2BAA2B,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA"}
|