@sphereon/ssi-sdk.oidf-metatdata-server 0.30.2-feature.FIDES.integration.235 → 0.30.2-feature.SPRIND.93.oidf.support.245
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/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/oidf-metadata-server.d.ts +9 -7
- package/dist/oidf-metadata-server.d.ts.map +1 -1
- package/dist/oidf-metadata-server.js +62 -24
- package/dist/oidf-metadata-server.js.map +1 -1
- package/dist/oidf-metadata-store.d.ts +21 -0
- package/dist/oidf-metadata-store.d.ts.map +1 -0
- package/dist/oidf-metadata-store.js +127 -0
- package/dist/oidf-metadata-store.js.map +1 -0
- package/dist/ssi-sdk.oidf-metatdata-server.d.ts +126 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/metadata-server.d.ts +12 -0
- package/dist/types/metadata-server.d.ts.map +1 -0
- package/dist/{types.js → types/metadata-server.js} +1 -1
- package/dist/types/metadata-server.js.map +1 -0
- package/dist/types/metadata-store.d.ts +49 -0
- package/dist/types/metadata-store.d.ts.map +1 -0
- package/dist/types/metadata-store.js +3 -0
- package/dist/types/metadata-store.js.map +1 -0
- package/package.json +16 -7
- package/plugin.schema.json +197 -0
- package/src/index.ts +15 -1
- package/src/oidf-metadata-server.ts +68 -30
- package/src/oidf-metadata-store.ts +136 -0
- package/src/types/metadata-server.ts +15 -0
- package/src/types/metadata-store.ts +63 -0
- package/dist/types.d.ts +0 -17
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/types.ts +0 -21
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const logger: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
declare const schema: any;
|
|
6
|
+
export { schema };
|
|
7
|
+
export * from './oidf-metadata-store';
|
|
8
|
+
export * from './types/metadata-store';
|
|
2
9
|
export * from './oidf-metadata-server';
|
|
3
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,sDAGoB,CAAA;AAEvC;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
17
|
+
exports.schema = exports.logger = void 0;
|
|
18
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
19
|
+
exports.logger = ssi_types_1.Loggers.DEFAULT.options('sphereon:oidf-metadata-server', {
|
|
20
|
+
defaultLogLevel: ssi_types_1.LogLevel.DEBUG,
|
|
21
|
+
methods: [ssi_types_1.LogMethod.CONSOLE, ssi_types_1.LogMethod.DEBUG_PKG],
|
|
22
|
+
}).get('sphereon:oidf-metadata-server');
|
|
23
|
+
/**
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
const schema = require('../plugin.schema.json');
|
|
27
|
+
exports.schema = schema;
|
|
28
|
+
__exportStar(require("./oidf-metadata-store"), exports);
|
|
29
|
+
__exportStar(require("./types/metadata-store"), exports);
|
|
18
30
|
__exportStar(require("./oidf-metadata-server"), exports);
|
|
19
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAkE;AAErD,QAAA,MAAM,GAAG,mBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE;IAC7E,eAAe,EAAE,oBAAQ,CAAC,KAAK;IAC/B,OAAO,EAAE,CAAC,qBAAS,CAAC,OAAO,EAAE,qBAAS,CAAC,SAAS,CAAC;CAClD,CAAC,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;AAEvC;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AAEf,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC"}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FederationMetadataServerOpts, IRequiredContext } from './types/metadata-server';
|
|
2
2
|
import { ExpressSupport } from '@sphereon/ssi-express-support';
|
|
3
|
-
export
|
|
4
|
-
private readonly _routers;
|
|
3
|
+
export declare class OIDFMetadataServer {
|
|
5
4
|
private readonly _context;
|
|
6
|
-
private readonly
|
|
5
|
+
private readonly _routers;
|
|
7
6
|
private readonly _app;
|
|
7
|
+
private readonly _opts?;
|
|
8
|
+
private _routerMiddleware;
|
|
8
9
|
constructor(args: {
|
|
9
10
|
context: IRequiredContext;
|
|
10
11
|
expressSupport: ExpressSupport;
|
|
11
|
-
opts?:
|
|
12
|
+
opts?: FederationMetadataServerOpts;
|
|
12
13
|
});
|
|
13
|
-
up(): Promise<void>;
|
|
14
14
|
private getHostAndPath;
|
|
15
|
+
down(): Promise<void>;
|
|
16
|
+
up(): Promise<void>;
|
|
15
17
|
private hostEndpoints;
|
|
16
18
|
static init(args: {
|
|
17
19
|
context: IRequiredContext;
|
|
18
20
|
expressSupport: ExpressSupport;
|
|
19
|
-
opts?:
|
|
21
|
+
opts?: FederationMetadataServerOpts;
|
|
20
22
|
}): Promise<OIDFMetadataServer>;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=oidf-metadata-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidf-metadata-server.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,
|
|
1
|
+
{"version":3,"file":"oidf-metadata-server.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC7G,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAM9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA8B;IACrD,OAAO,CAAC,iBAAiB,CAA+B;gBAE5C,IAAI,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,4BAA4B,CAAA;KAAE;IASpH,OAAO,CAAC,cAAc;IAaT,IAAI;IAcJ,EAAE;IAYf,OAAO,CAAC,aAAa,CAkDpB;WAEY,IAAI,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,gBAAgB,CAAA;QACzB,cAAc,EAAE,cAAc,CAAA;QAC9B,IAAI,CAAC,EAAE,4BAA4B,CAAA;KACpC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAMhC"}
|
|
@@ -12,11 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
|
|
15
|
+
exports.OIDFMetadataServer = void 0;
|
|
16
|
+
const metadata_server_1 = require("./types/metadata-server");
|
|
16
17
|
const express_1 = __importDefault(require("express"));
|
|
18
|
+
const index_1 = require("./index");
|
|
17
19
|
class OIDFMetadataServer {
|
|
18
20
|
constructor(args) {
|
|
19
21
|
this.hostEndpoints = (metadataEndpoints) => {
|
|
22
|
+
index_1.logger.debug('metadataEndpoints', metadataEndpoints);
|
|
20
23
|
// Group endpoints by hostname
|
|
21
24
|
const endpointsByHost = new Map();
|
|
22
25
|
metadataEndpoints.forEach((endpoint) => {
|
|
@@ -30,59 +33,94 @@ class OIDFMetadataServer {
|
|
|
30
33
|
// Create and configure routers for each hostname
|
|
31
34
|
endpointsByHost.forEach((endpoints, hostname) => {
|
|
32
35
|
const router = express_1.default.Router();
|
|
36
|
+
index_1.logger.debug('assigning OIDF metadata router to', hostname);
|
|
33
37
|
this._routers.set(hostname, router);
|
|
34
38
|
endpoints.forEach(({ basePath, endpoint }) => {
|
|
35
|
-
const federationPath = basePath +
|
|
39
|
+
const federationPath = basePath + metadata_server_1.FederationEndpoints.WELL_KNOWN_OPENID_FEDERATION;
|
|
40
|
+
index_1.logger.debug('mapping OIDF metadata HTTP GET to', federationPath);
|
|
36
41
|
router.get(federationPath, (request, response) => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
try {
|
|
43
|
+
const asciiData = Buffer.from(endpoint.jwt, 'ascii');
|
|
44
|
+
response.setHeader('Content-Type', 'application/entity-statement+jwt');
|
|
45
|
+
return response.send(asciiData);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
index_1.logger.error('Error processing federation metadata request:', error);
|
|
49
|
+
return response.status(500).send('Internal server error');
|
|
50
|
+
}
|
|
40
51
|
}));
|
|
41
52
|
});
|
|
42
|
-
// Mount the router for this hostname
|
|
43
|
-
|
|
44
|
-
|
|
53
|
+
// Mount the router for this hostname and keep track of the middleware
|
|
54
|
+
const middleware = (request, response, next) => {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
const forwardedHost = (_b = (_a = request.headers['x-forwarded-host']) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.split(':')[0];
|
|
57
|
+
const reqHostname = forwardedHost !== null && forwardedHost !== void 0 ? forwardedHost : request.hostname;
|
|
58
|
+
if (reqHostname === hostname) {
|
|
45
59
|
router(request, response, next);
|
|
46
60
|
}
|
|
47
61
|
else {
|
|
48
62
|
next();
|
|
49
63
|
}
|
|
50
|
-
}
|
|
64
|
+
};
|
|
65
|
+
this._routerMiddleware.push(middleware);
|
|
66
|
+
this._app.use(middleware);
|
|
51
67
|
});
|
|
52
68
|
};
|
|
53
|
-
const {
|
|
69
|
+
const { expressSupport, context, opts } = args;
|
|
54
70
|
this._context = context;
|
|
55
|
-
this._opts = opts;
|
|
56
71
|
this._app = expressSupport.express;
|
|
72
|
+
this._opts = opts;
|
|
57
73
|
this._routers = new Map();
|
|
74
|
+
this._routerMiddleware = [];
|
|
75
|
+
}
|
|
76
|
+
getHostAndPath(url) {
|
|
77
|
+
try {
|
|
78
|
+
const urlObj = new URL(url);
|
|
79
|
+
return {
|
|
80
|
+
hostname: urlObj.hostname,
|
|
81
|
+
basePath: urlObj.pathname.replace(/\/+$/, ''), // Remove trailing slashes
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
index_1.logger.error(`Invalid URL provided: ${url}`, error);
|
|
86
|
+
throw new Error(`Invalid URL provided: ${url}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
down() {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
// Remove all mounted middleware
|
|
92
|
+
this._routerMiddleware.forEach((middleware) => {
|
|
93
|
+
const index = this._app._router.stack.findIndex((layer) => layer.handle === middleware);
|
|
94
|
+
if (index !== -1) {
|
|
95
|
+
this._app._router.stack.splice(index, 1);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
// Clear the collections
|
|
99
|
+
this._routerMiddleware = [];
|
|
100
|
+
this._routers.clear();
|
|
101
|
+
});
|
|
58
102
|
}
|
|
59
103
|
up() {
|
|
60
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
105
|
var _a, _b;
|
|
62
|
-
|
|
63
|
-
|
|
106
|
+
// Clean up existing routes first
|
|
107
|
+
yield this.down();
|
|
108
|
+
const metadataEndpoints = yield this._context.agent.oidfStoreListMetadata({
|
|
64
109
|
storeId: (_a = this._opts) === null || _a === void 0 ? void 0 : _a.storeId,
|
|
65
110
|
namespace: (_b = this._opts) === null || _b === void 0 ? void 0 : _b.namespace,
|
|
66
|
-
})
|
|
67
|
-
const filteredEndpoints = metadataEndpoints.filter((endpoint) => endpoint !==
|
|
111
|
+
});
|
|
112
|
+
const filteredEndpoints = metadataEndpoints.filter((endpoint) => endpoint.enabled !== false);
|
|
68
113
|
this.hostEndpoints(filteredEndpoints);
|
|
69
114
|
});
|
|
70
115
|
}
|
|
71
|
-
getHostAndPath(url) {
|
|
72
|
-
const urlObj = new URL(url);
|
|
73
|
-
return {
|
|
74
|
-
hostname: urlObj.hostname,
|
|
75
|
-
basePath: urlObj.pathname.replace(/\/+$/, ''), // Remove trailing slashes
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
116
|
static init(args) {
|
|
79
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
const {
|
|
118
|
+
const { expressSupport, context, opts } = args;
|
|
81
119
|
const oidfMetadataServer = new OIDFMetadataServer({ context, expressSupport, opts });
|
|
82
120
|
yield oidfMetadataServer.up();
|
|
83
121
|
return oidfMetadataServer;
|
|
84
122
|
});
|
|
85
123
|
}
|
|
86
124
|
}
|
|
87
|
-
exports.
|
|
125
|
+
exports.OIDFMetadataServer = OIDFMetadataServer;
|
|
88
126
|
//# sourceMappingURL=oidf-metadata-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidf-metadata-server.js","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oidf-metadata-server.js","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FederationMetadataClearArgs, FederationMetadataExistsArgs, FederationMetadataGetArgs, FederationMetadataListArgs, FederationMetadataPersistArgs, FederationMetadataRemoveArgs, FederationMetadataStoreOpts, IOIDFMetadataStore, OpenidFederationMetadata, OptionalOpenidFederationMetadata, OptionalOpenidFederationValueData } from './types/metadata-store';
|
|
2
|
+
import { IAgentPlugin } from '@veramo/core';
|
|
3
|
+
export declare class OIDFMetadataStore implements IAgentPlugin {
|
|
4
|
+
private readonly defaultStoreId;
|
|
5
|
+
private readonly defaultNamespace;
|
|
6
|
+
private readonly _openidFederationMetadataStores;
|
|
7
|
+
readonly schema: any;
|
|
8
|
+
readonly methods: IOIDFMetadataStore;
|
|
9
|
+
constructor(options?: FederationMetadataStoreOpts);
|
|
10
|
+
private store;
|
|
11
|
+
oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
|
|
12
|
+
oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
|
|
13
|
+
oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
|
|
14
|
+
oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OptionalOpenidFederationValueData>;
|
|
15
|
+
oidfStoreRemoveMetadata(args: FederationMetadataRemoveArgs): Promise<boolean>;
|
|
16
|
+
oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
|
|
17
|
+
private storeIdStr;
|
|
18
|
+
private namespaceStr;
|
|
19
|
+
private prefix;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=oidf-metadata-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidf-metadata-store.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAuD;IAEvG,QAAQ,CAAC,MAAM,MAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAOnC;gBAEW,OAAO,CAAC,EAAE,2BAA2B;IAmBjD,OAAO,CAAC,KAAK;IASP,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAOjI,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAQnH,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3G,wBAAwB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAsBzG,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7E,yBAAyB,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3F,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -0,0 +1,127 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OIDFMetadataStore = void 0;
|
|
13
|
+
const ssi_sdk_kv_store_temp_1 = require("@sphereon/ssi-sdk.kv-store-temp");
|
|
14
|
+
const index_1 = require("./index");
|
|
15
|
+
class OIDFMetadataStore {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
this.schema = index_1.schema.IOIDFMetadataStore;
|
|
19
|
+
this.methods = {
|
|
20
|
+
oidfStoreGetMetadata: this.oidfStoreGetMetadata.bind(this),
|
|
21
|
+
oidfStoreListMetadata: this.oidfStoreListMetadata.bind(this),
|
|
22
|
+
oidfStoreHasMetadata: this.oidfStoreHasMetadata.bind(this),
|
|
23
|
+
oidfStorePersistMetadata: this.oidfStorePersistMetadata.bind(this),
|
|
24
|
+
oidfStoreRemoveMetadata: this.oidfStoreRemoveMetadata.bind(this),
|
|
25
|
+
oidfStoreClearAllMetadata: this.oidfStoreClearAllMetadata.bind(this),
|
|
26
|
+
};
|
|
27
|
+
this.defaultStoreId = (_a = options === null || options === void 0 ? void 0 : options.defaultStoreId) !== null && _a !== void 0 ? _a : '_default';
|
|
28
|
+
this.defaultNamespace = (_b = options === null || options === void 0 ? void 0 : options.defaultNamespace) !== null && _b !== void 0 ? _b : 'oidFederation';
|
|
29
|
+
if ((options === null || options === void 0 ? void 0 : options.openidFederationMetadataStores) && options.openidFederationMetadataStores instanceof Map) {
|
|
30
|
+
this._openidFederationMetadataStores = options.openidFederationMetadataStores;
|
|
31
|
+
}
|
|
32
|
+
else if (options === null || options === void 0 ? void 0 : options.openidFederationMetadataStores) {
|
|
33
|
+
this._openidFederationMetadataStores = new Map().set(this.defaultStoreId, options.openidFederationMetadataStores);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this._openidFederationMetadataStores = new Map().set(this.defaultStoreId, new ssi_sdk_kv_store_temp_1.KeyValueStore({
|
|
37
|
+
namespace: this.defaultNamespace,
|
|
38
|
+
store: new Map(),
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
store(args) {
|
|
43
|
+
const storeId = this.storeIdStr({ storeId: args.storeId });
|
|
44
|
+
const store = args.stores.get(storeId);
|
|
45
|
+
if (!store) {
|
|
46
|
+
throw Error(`Could not get federation metadata store: ${storeId}`);
|
|
47
|
+
}
|
|
48
|
+
return store;
|
|
49
|
+
}
|
|
50
|
+
oidfStoreGetMetadata(_a) {
|
|
51
|
+
return __awaiter(this, arguments, void 0, function* ({ correlationId, storeId, namespace }) {
|
|
52
|
+
return this.store({
|
|
53
|
+
stores: this._openidFederationMetadataStores,
|
|
54
|
+
storeId,
|
|
55
|
+
}).get(this.prefix({ namespace, correlationId }));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
oidfStoreListMetadata(_a) {
|
|
59
|
+
return __awaiter(this, arguments, void 0, function* ({ storeId, namespace }) {
|
|
60
|
+
const result = yield this.store({
|
|
61
|
+
stores: this._openidFederationMetadataStores,
|
|
62
|
+
storeId,
|
|
63
|
+
}).getMany([`${this.namespaceStr({ namespace })}`]);
|
|
64
|
+
return result.filter((value) => !!value);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
oidfStoreHasMetadata(_a) {
|
|
68
|
+
return __awaiter(this, arguments, void 0, function* ({ correlationId, storeId, namespace }) {
|
|
69
|
+
return this.store({
|
|
70
|
+
stores: this._openidFederationMetadataStores,
|
|
71
|
+
storeId,
|
|
72
|
+
}).has(this.prefix({ namespace, correlationId }));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
oidfStorePersistMetadata(args) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const namespace = this.namespaceStr(args);
|
|
78
|
+
const storeId = this.storeIdStr(args);
|
|
79
|
+
const { metadataType, correlationId, metadata, ttl } = args;
|
|
80
|
+
if (metadataType !== 'openidFederation') {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const existingOpenIdFederation = yield this.store({
|
|
84
|
+
stores: this._openidFederationMetadataStores,
|
|
85
|
+
storeId,
|
|
86
|
+
}).getAsValueData(this.prefix({ namespace, correlationId }));
|
|
87
|
+
if (!existingOpenIdFederation.value || (existingOpenIdFederation.value && args.overwriteExisting !== false)) {
|
|
88
|
+
return yield this.store({
|
|
89
|
+
stores: this._openidFederationMetadataStores,
|
|
90
|
+
storeId,
|
|
91
|
+
}).set(this.prefix({ namespace, correlationId }), metadata, ttl);
|
|
92
|
+
}
|
|
93
|
+
return existingOpenIdFederation;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
oidfStoreRemoveMetadata(args) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const namespace = this.namespaceStr(args);
|
|
99
|
+
const storeId = this.storeIdStr(args);
|
|
100
|
+
return this.store({
|
|
101
|
+
stores: this._openidFederationMetadataStores,
|
|
102
|
+
storeId,
|
|
103
|
+
}).delete(this.prefix({ namespace, correlationId: args.correlationId }));
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
oidfStoreClearAllMetadata(_a) {
|
|
107
|
+
return __awaiter(this, arguments, void 0, function* ({ storeId }) {
|
|
108
|
+
return yield this.store({
|
|
109
|
+
stores: this._openidFederationMetadataStores,
|
|
110
|
+
storeId,
|
|
111
|
+
})
|
|
112
|
+
.clear()
|
|
113
|
+
.then(() => true);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
storeIdStr({ storeId }) {
|
|
117
|
+
return storeId !== null && storeId !== void 0 ? storeId : this.defaultStoreId;
|
|
118
|
+
}
|
|
119
|
+
namespaceStr({ namespace }) {
|
|
120
|
+
return namespace !== null && namespace !== void 0 ? namespace : this.defaultNamespace;
|
|
121
|
+
}
|
|
122
|
+
prefix({ namespace, correlationId }) {
|
|
123
|
+
return `${this.namespaceStr({ namespace })}:${correlationId}`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.OIDFMetadataStore = OIDFMetadataStore;
|
|
127
|
+
//# sourceMappingURL=oidf-metadata-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidf-metadata-store.js","sourceRoot":"","sources":["../src/oidf-metadata-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { ExpressSupport } from '@sphereon/ssi-express-support';
|
|
2
|
+
import { IAgentContext } from '@veramo/core';
|
|
3
|
+
import { IAgentPlugin } from '@veramo/core';
|
|
4
|
+
import { IKeyValueStore } from '@sphereon/ssi-sdk.kv-store-temp';
|
|
5
|
+
import { IPluginMethodMap } from '@veramo/core';
|
|
6
|
+
import { ISimpleLogger } from '@sphereon/ssi-types';
|
|
7
|
+
import { IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
|
|
8
|
+
|
|
9
|
+
export declare interface FederationMetadataClearArgs {
|
|
10
|
+
storeId?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export declare type FederationMetadataExistsArgs = FederationMetadataGetArgs;
|
|
14
|
+
|
|
15
|
+
export declare interface FederationMetadataGetArgs extends FederationMetadataListArgs {
|
|
16
|
+
correlationId: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export declare type FederationMetadataImportArgs = FederationMetadataPersistArgs;
|
|
20
|
+
|
|
21
|
+
export declare interface FederationMetadataListArgs {
|
|
22
|
+
storeId?: string;
|
|
23
|
+
namespace?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export declare interface FederationMetadataPersistArgs {
|
|
27
|
+
metadataType: OpenidFederationMetadataType;
|
|
28
|
+
correlationId: string;
|
|
29
|
+
metadata: OpenidFederationMetadata;
|
|
30
|
+
overwriteExisting?: boolean;
|
|
31
|
+
validation?: boolean;
|
|
32
|
+
ttl?: number;
|
|
33
|
+
storeId?: string;
|
|
34
|
+
namespace?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export declare type FederationMetadataRemoveArgs = FederationMetadataGetArgs;
|
|
38
|
+
|
|
39
|
+
declare interface FederationMetadataServerOpts {
|
|
40
|
+
storeId?: string;
|
|
41
|
+
namespace?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export declare interface FederationMetadataStoreOpts {
|
|
45
|
+
defaultStoreId?: string;
|
|
46
|
+
defaultNamespace?: string;
|
|
47
|
+
importMetadatas?: FederationMetadataImportArgs[];
|
|
48
|
+
openidFederationMetadataStores?: Map<string, IKeyValueStore<OpenidFederationMetadata>> | IKeyValueStore<OpenidFederationMetadata>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export declare interface IOIDFMetadataStore extends IPluginMethodMap {
|
|
52
|
+
oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
|
|
53
|
+
oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
|
|
54
|
+
oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
|
|
55
|
+
oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OptionalOpenidFederationValueData>;
|
|
56
|
+
oidfStoreRemoveMetadata({ storeId, correlationId, namespace }: FederationMetadataRemoveArgs): Promise<boolean>;
|
|
57
|
+
oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
declare type IPlugins = IOIDFMetadataStore;
|
|
61
|
+
|
|
62
|
+
declare type IRequiredContext = IAgentContext<IPlugins>;
|
|
63
|
+
|
|
64
|
+
export declare const logger: ISimpleLogger<unknown>;
|
|
65
|
+
|
|
66
|
+
export declare class OIDFMetadataServer {
|
|
67
|
+
private readonly _context;
|
|
68
|
+
private readonly _routers;
|
|
69
|
+
private readonly _app;
|
|
70
|
+
private readonly _opts?;
|
|
71
|
+
private _routerMiddleware;
|
|
72
|
+
constructor(args: {
|
|
73
|
+
context: IRequiredContext;
|
|
74
|
+
expressSupport: ExpressSupport;
|
|
75
|
+
opts?: FederationMetadataServerOpts;
|
|
76
|
+
});
|
|
77
|
+
private getHostAndPath;
|
|
78
|
+
down(): Promise<void>;
|
|
79
|
+
up(): Promise<void>;
|
|
80
|
+
private hostEndpoints;
|
|
81
|
+
static init(args: {
|
|
82
|
+
context: IRequiredContext;
|
|
83
|
+
expressSupport: ExpressSupport;
|
|
84
|
+
opts?: FederationMetadataServerOpts;
|
|
85
|
+
}): Promise<OIDFMetadataServer>;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export declare class OIDFMetadataStore implements IAgentPlugin {
|
|
89
|
+
private readonly defaultStoreId;
|
|
90
|
+
private readonly defaultNamespace;
|
|
91
|
+
private readonly _openidFederationMetadataStores;
|
|
92
|
+
readonly schema: any;
|
|
93
|
+
readonly methods: IOIDFMetadataStore;
|
|
94
|
+
constructor(options?: FederationMetadataStoreOpts);
|
|
95
|
+
private store;
|
|
96
|
+
oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
|
|
97
|
+
oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
|
|
98
|
+
oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
|
|
99
|
+
oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OptionalOpenidFederationValueData>;
|
|
100
|
+
oidfStoreRemoveMetadata(args: FederationMetadataRemoveArgs): Promise<boolean>;
|
|
101
|
+
oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
|
|
102
|
+
private storeIdStr;
|
|
103
|
+
private namespaceStr;
|
|
104
|
+
private prefix;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export declare type OpenidFederationMetadata = {
|
|
108
|
+
subjectBaseUrl: string;
|
|
109
|
+
jwt: string;
|
|
110
|
+
enabled: boolean | undefined;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export declare type OpenidFederationMetadataType = 'openidFederation';
|
|
114
|
+
|
|
115
|
+
export declare type OpenidFederationValueData = IValueData<OpenidFederationMetadata>;
|
|
116
|
+
|
|
117
|
+
export declare type OptionalOpenidFederationMetadata = OpenidFederationMetadata | undefined;
|
|
118
|
+
|
|
119
|
+
export declare type OptionalOpenidFederationValueData = IValueData<OpenidFederationMetadata> | undefined;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @public
|
|
123
|
+
*/
|
|
124
|
+
export declare const schema: any;
|
|
125
|
+
|
|
126
|
+
export { }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
+
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
+
{
|
|
4
|
+
"tsdocVersion": "0.12",
|
|
5
|
+
"toolPackages": [
|
|
6
|
+
{
|
|
7
|
+
"packageName": "@microsoft/api-extractor",
|
|
8
|
+
"packageVersion": "7.47.7"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IAgentContext } from '@veramo/core';
|
|
2
|
+
import { IOIDFMetadataStore } from './metadata-store';
|
|
3
|
+
export declare enum FederationEndpoints {
|
|
4
|
+
WELL_KNOWN_OPENID_FEDERATION = "/.well-known/openid-federation"
|
|
5
|
+
}
|
|
6
|
+
export type IRequiredContext = IAgentContext<IPlugins>;
|
|
7
|
+
export type IPlugins = IOIDFMetadataStore;
|
|
8
|
+
export interface FederationMetadataServerOpts {
|
|
9
|
+
storeId?: string;
|
|
10
|
+
namespace?: string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=metadata-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-server.d.ts","sourceRoot":"","sources":["../../src/types/metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,oBAAY,mBAAmB;IAC7B,4BAA4B,mCAAmC;CAChE;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AAEtD,MAAM,MAAM,QAAQ,GAAG,kBAAkB,CAAA;AAEzC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
|
|
@@ -5,4 +5,4 @@ var FederationEndpoints;
|
|
|
5
5
|
(function (FederationEndpoints) {
|
|
6
6
|
FederationEndpoints["WELL_KNOWN_OPENID_FEDERATION"] = "/.well-known/openid-federation";
|
|
7
7
|
})(FederationEndpoints || (exports.FederationEndpoints = FederationEndpoints = {}));
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=metadata-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-server.js","sourceRoot":"","sources":["../../src/types/metadata-server.ts"],"names":[],"mappings":";;;AAGA,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,sFAA+D,CAAA;AACjE,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IPluginMethodMap } from '@veramo/core';
|
|
2
|
+
import { IKeyValueStore, IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
|
|
3
|
+
export type OpenidFederationMetadata = {
|
|
4
|
+
subjectBaseUrl: string;
|
|
5
|
+
jwt: string;
|
|
6
|
+
enabled: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type OptionalOpenidFederationMetadata = OpenidFederationMetadata | undefined;
|
|
9
|
+
export type OpenidFederationValueData = IValueData<OpenidFederationMetadata>;
|
|
10
|
+
export type OptionalOpenidFederationValueData = IValueData<OpenidFederationMetadata> | undefined;
|
|
11
|
+
export type OpenidFederationMetadataType = 'openidFederation';
|
|
12
|
+
export interface IOIDFMetadataStore extends IPluginMethodMap {
|
|
13
|
+
oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
|
|
14
|
+
oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
|
|
15
|
+
oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
|
|
16
|
+
oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OptionalOpenidFederationValueData>;
|
|
17
|
+
oidfStoreRemoveMetadata({ storeId, correlationId, namespace }: FederationMetadataRemoveArgs): Promise<boolean>;
|
|
18
|
+
oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
|
|
19
|
+
}
|
|
20
|
+
export interface FederationMetadataStoreOpts {
|
|
21
|
+
defaultStoreId?: string;
|
|
22
|
+
defaultNamespace?: string;
|
|
23
|
+
importMetadatas?: FederationMetadataImportArgs[];
|
|
24
|
+
openidFederationMetadataStores?: Map<string, IKeyValueStore<OpenidFederationMetadata>> | IKeyValueStore<OpenidFederationMetadata>;
|
|
25
|
+
}
|
|
26
|
+
export interface FederationMetadataPersistArgs {
|
|
27
|
+
metadataType: OpenidFederationMetadataType;
|
|
28
|
+
correlationId: string;
|
|
29
|
+
metadata: OpenidFederationMetadata;
|
|
30
|
+
overwriteExisting?: boolean;
|
|
31
|
+
validation?: boolean;
|
|
32
|
+
ttl?: number;
|
|
33
|
+
storeId?: string;
|
|
34
|
+
namespace?: string;
|
|
35
|
+
}
|
|
36
|
+
export type FederationMetadataImportArgs = FederationMetadataPersistArgs;
|
|
37
|
+
export interface FederationMetadataListArgs {
|
|
38
|
+
storeId?: string;
|
|
39
|
+
namespace?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface FederationMetadataGetArgs extends FederationMetadataListArgs {
|
|
42
|
+
correlationId: string;
|
|
43
|
+
}
|
|
44
|
+
export type FederationMetadataExistsArgs = FederationMetadataGetArgs;
|
|
45
|
+
export type FederationMetadataRemoveArgs = FederationMetadataGetArgs;
|
|
46
|
+
export interface FederationMetadataClearArgs {
|
|
47
|
+
storeId?: string;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=metadata-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../src/types/metadata-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,GAAG,SAAS,CAAA;AACnF,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAC5E,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAA;AAChG,MAAM,MAAM,4BAA4B,GAAG,kBAAkB,CAAA;AAE7D,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;IAEjI,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAEnH,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE3G,wBAAwB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;IAEzG,uBAAuB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE9G,yBAAyB,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtF;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,4BAA4B,EAAE,CAAA;IAChD,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAA;CAClI;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,4BAA4B,CAAA;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,wBAAwB,CAAA;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,CAAA;AAExE,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AACpE,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAEpE,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-store.js","sourceRoot":"","sources":["../../src/types/metadata-store.ts"],"names":[],"mappings":""}
|