@sphereon/ssi-sdk.resource-resolver 0.30.2-next.373 → 0.30.2-next.390
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/README.md +4 -3
- package/dist/agent/ResourceResolver.d.ts.map +1 -1
- package/dist/agent/ResourceResolver.js +7 -7
- package/dist/agent/ResourceResolver.js.map +1 -1
- package/dist/types/IResourceResolver.d.ts +1 -1
- package/dist/types/IResourceResolver.d.ts.map +1 -1
- package/dist/utils/ResourceResolverUtils.d.ts.map +1 -1
- package/dist/utils/ResourceResolverUtils.js +3 -3
- package/dist/utils/ResourceResolverUtils.js.map +1 -1
- package/package.json +5 -5
- package/src/agent/ResourceResolver.ts +16 -42
- package/src/types/IResourceResolver.ts +4 -4
- package/src/utils/ResourceResolverUtils.ts +11 -16
package/README.md
CHANGED
@@ -21,7 +21,8 @@ A Veramo resource resolver plugin. This plugin has the option to cache resources
|
|
21
21
|
- resourceDefaultStoreId
|
22
22
|
- resourceDefaultNamespace
|
23
23
|
- resourceDefaultTtl
|
24
|
-
-
|
24
|
+
-
|
25
|
+
|
25
26
|
## Usage
|
26
27
|
|
27
28
|
```typescript
|
@@ -42,8 +43,8 @@ const dbConnection = createConnection({
|
|
42
43
|
const agent = createAgent<IResourceResolver>({
|
43
44
|
plugins: [
|
44
45
|
new ResourceResolver({
|
45
|
-
resourceStores: new KeyValueStore({
|
46
|
-
store: new KeyValueTypeORMStoreAdapter({ dbConnection })
|
46
|
+
resourceStores: new KeyValueStore({
|
47
|
+
store: new KeyValueTypeORMStoreAdapter({ dbConnection }),
|
47
48
|
}),
|
48
49
|
}),
|
49
50
|
],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResourceResolver.d.ts","sourceRoot":"","sources":["../../src/agent/ResourceResolver.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"ResourceResolver.d.ts","sourceRoot":"","sources":["../../src/agent/ResourceResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,EAIL,iBAAiB,EAKjB,uBAAuB,EAIxB,MAAM,4BAA4B,CAAA;AAEnC;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,MAAM,MAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAMlC;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;gBAE3D,OAAO,CAAC,EAAE,uBAAuB;IAwB7C,sDAAsD;YACxC,eAAe;YAkDf,gBAAgB;IAc9B,gEAAgE;YAClD,yBAAyB;IAOvC,6DAA6D;YAC/C,sBAAsB;IAIpC,+DAA+D;YACjD,wBAAwB;IAItC,yDAAyD;YAC3C,kBAAkB;YAIlB,WAAW;YAUX,eAAe;IAe7B,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,MAAM;CAIf"}
|
@@ -65,7 +65,7 @@ class ResourceResolver {
|
|
65
65
|
this._resourceStores = new Map().set(this.defaultStoreId, new ssi_sdk_kv_store_temp_1.KeyValueStore({
|
66
66
|
namespace: this.defaultNamespace,
|
67
67
|
store: new Map(),
|
68
|
-
ttl: this.defaultTtl
|
68
|
+
ttl: this.defaultTtl,
|
69
69
|
}));
|
70
70
|
}
|
71
71
|
}
|
@@ -82,7 +82,7 @@ class ResourceResolver {
|
|
82
82
|
return new cross_fetch_1.Response(JSON.stringify({ error: 'Resource not found' }), {
|
83
83
|
status: 404,
|
84
84
|
statusText: 'Not Found',
|
85
|
-
headers: new cross_fetch_1.Headers({ 'Content-Type': 'application/json' })
|
85
|
+
headers: new cross_fetch_1.Headers({ 'Content-Type': 'application/json' }),
|
86
86
|
});
|
87
87
|
}
|
88
88
|
let location;
|
@@ -90,20 +90,20 @@ class ResourceResolver {
|
|
90
90
|
location = yield this.retrieveLocation(input, context);
|
91
91
|
}
|
92
92
|
const response = yield (0, cross_fetch_1.default)(input, init);
|
93
|
-
if (!(resolveOpts === null || resolveOpts === void 0 ? void 0 : resolveOpts.skipPersistence) &&
|
93
|
+
if (!(resolveOpts === null || resolveOpts === void 0 ? void 0 : resolveOpts.skipPersistence) && response.status >= 200 && response.status < 300) {
|
94
94
|
const serializedResponse = yield (0, ResourceResolverUtils_1.serializeResponse)(response);
|
95
95
|
const resource = {
|
96
96
|
location,
|
97
97
|
response: serializedResponse,
|
98
98
|
resourceType,
|
99
99
|
insertedAt: Date.now(),
|
100
|
-
partyCorrelationId
|
100
|
+
partyCorrelationId,
|
101
101
|
};
|
102
102
|
const cachedResource = yield this.persistResource({
|
103
103
|
resource,
|
104
104
|
resourceIdentifier,
|
105
105
|
namespace,
|
106
|
-
storeId
|
106
|
+
storeId,
|
107
107
|
});
|
108
108
|
if (!cachedResource.value) {
|
109
109
|
return Promise.reject(Error('Resource not present in persistence result'));
|
@@ -126,7 +126,7 @@ class ResourceResolver {
|
|
126
126
|
throw Error(`input type is required to be RequestInfo | URL`);
|
127
127
|
}
|
128
128
|
return yield context.agent.anomalyDetectionLookupLocation({
|
129
|
-
ipOrHostname: url.hostname
|
129
|
+
ipOrHostname: url.hostname,
|
130
130
|
});
|
131
131
|
});
|
132
132
|
}
|
@@ -162,7 +162,7 @@ class ResourceResolver {
|
|
162
162
|
const { resourceIdentifier, storeId, namespace } = args;
|
163
163
|
return this.store({ stores: this._resourceStores, storeId }).getAsValueData(this.prefix({
|
164
164
|
namespace,
|
165
|
-
resourceIdentifier
|
165
|
+
resourceIdentifier,
|
166
166
|
}));
|
167
167
|
});
|
168
168
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResourceResolver.js","sourceRoot":"","sources":["../../src/agent/ResourceResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
1
|
+
{"version":3,"file":"ResourceResolver.js","sourceRoot":"","sources":["../../src/agent/ResourceResolver.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { IKeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp';
|
2
2
|
import { IAgentContext, IPluginMethodMap } from '@veramo/core';
|
3
|
-
import { IAnomalyDetection } from
|
3
|
+
import { IAnomalyDetection } from '@sphereon/ssi-sdk.anomaly-detection';
|
4
4
|
export interface IResourceResolver extends IPluginMethodMap {
|
5
5
|
resourceResolve(args: ResolveArgs, context: RequiredContext): Promise<Response>;
|
6
6
|
resourceClearAllResources(args: ClearAllResourcesArgs, context: RequiredContext): Promise<boolean>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"IResourceResolver.d.ts","sourceRoot":"","sources":["../../src/types/IResourceResolver.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"IResourceResolver.d.ts","sourceRoot":"","sources":["../../src/types/IResourceResolver.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResourceResolverUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ResourceResolverUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEzF,eAAO,MAAM,qBAAqB,UAAW,OAAO,GAAG,MAAM,GAAG,GAAG,KAAG,MAUrE,CAAA;AAED,eAAO,MAAM,iBAAiB,aAAoB,QAAQ,KAAG,OAAO,CAAC,kBAAkB,CAUtF,CAAA;AAED,eAAO,MAAM,mBAAmB,SAAgB,kBAAkB,KAAG,OAAO,CAAC,QAAQ,
|
1
|
+
{"version":3,"file":"ResourceResolverUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ResourceResolverUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEzF,eAAO,MAAM,qBAAqB,UAAW,OAAO,GAAG,MAAM,GAAG,GAAG,KAAG,MAUrE,CAAA;AAED,eAAO,MAAM,iBAAiB,aAAoB,QAAQ,KAAG,OAAO,CAAC,kBAAkB,CAUtF,CAAA;AAED,eAAO,MAAM,mBAAmB,SAAgB,kBAAkB,KAAG,OAAO,CAAC,QAAQ,CAWpF,CAAA;AAGD,eAAO,MAAM,mBAAmB,mBAAoB,QAAQ,gBAAgB,cAAc,KAAG,OAE5F,CAAA"}
|
@@ -55,7 +55,7 @@ const serializeResponse = (response) => __awaiter(void 0, void 0, void 0, functi
|
|
55
55
|
status: response.status,
|
56
56
|
statusText: response.statusText,
|
57
57
|
headers: Object.fromEntries(response.headers.entries()),
|
58
|
-
body: base64Url
|
58
|
+
body: base64Url,
|
59
59
|
};
|
60
60
|
});
|
61
61
|
exports.serializeResponse = serializeResponse;
|
@@ -66,13 +66,13 @@ const deserializeResponse = (data) => __awaiter(void 0, void 0, void 0, function
|
|
66
66
|
return new cross_fetch_1.Response(arrayBuffer, {
|
67
67
|
status,
|
68
68
|
statusText,
|
69
|
-
headers: new cross_fetch_1.Headers(headers)
|
69
|
+
headers: new cross_fetch_1.Headers(headers),
|
70
70
|
});
|
71
71
|
});
|
72
72
|
exports.deserializeResponse = deserializeResponse;
|
73
73
|
// Check if the cache is still within the acceptable age
|
74
74
|
const isCacheWithinMaxAge = (cachedResource, resolveOpts) => {
|
75
|
-
return cachedResource && ((resolveOpts === null || resolveOpts === void 0 ? void 0 : resolveOpts.maxAgeMs) === undefined ||
|
75
|
+
return cachedResource && ((resolveOpts === null || resolveOpts === void 0 ? void 0 : resolveOpts.maxAgeMs) === undefined || Date.now() - cachedResource.insertedAt < resolveOpts.maxAgeMs);
|
76
76
|
};
|
77
77
|
exports.isCacheWithinMaxAge = isCacheWithinMaxAge;
|
78
78
|
//# sourceMappingURL=ResourceResolverUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResourceResolverUtils.js","sourceRoot":"","sources":["../../src/utils/ResourceResolverUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AACxD,iDAAkC;AAG3B,MAAM,qBAAqB,GAAG,CAAC,KAA6B,EAAU,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"ResourceResolverUtils.js","sourceRoot":"","sources":["../../src/utils/ResourceResolverUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AACxD,iDAAkC;AAG3B,MAAM,qBAAqB,GAAG,CAAC,KAA6B,EAAU,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;SAAM,IAAI,KAAK,YAAY,qBAAO,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,GAAG,CAAA;IAClB,CAAC;SAAM,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;AAC1E,CAAC,CAAA;AAVY,QAAA,qBAAqB,yBAUjC;AAEM,MAAM,iBAAiB,GAAG,CAAO,QAAkB,EAA+B,EAAE;IACzF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAChD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;IAExE,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,EAAE,SAAS;KAChB,CAAA;AACH,CAAC,CAAA,CAAA;AAVY,QAAA,iBAAiB,qBAU7B;AAEM,MAAM,mBAAmB,GAAG,CAAO,IAAwB,EAAqB,EAAE;IACvF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAElD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAEjH,OAAO,IAAI,sBAAQ,CAAC,WAAW,EAAE;QAC/B,MAAM;QACN,UAAU;QACV,OAAO,EAAE,IAAI,qBAAO,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAXY,QAAA,mBAAmB,uBAW/B;AAED,wDAAwD;AACjD,MAAM,mBAAmB,GAAG,CAAC,cAAwB,EAAE,WAA4B,EAAW,EAAE;IACrG,OAAO,cAAc,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,MAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;AACjI,CAAC,CAAA;AAFY,QAAA,mBAAmB,uBAE/B"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sphereon/ssi-sdk.resource-resolver",
|
3
|
-
"version": "0.30.2-next.
|
3
|
+
"version": "0.30.2-next.390+322aecc9",
|
4
4
|
"source": "src/index.ts",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -14,15 +14,15 @@
|
|
14
14
|
"build:clean": "tsc --build --clean && tsc --build"
|
15
15
|
},
|
16
16
|
"dependencies": {
|
17
|
-
"@sphereon/ssi-sdk.anomaly-detection": "0.30.2-next.
|
18
|
-
"@sphereon/ssi-sdk.kv-store-temp": "0.30.2-next.
|
17
|
+
"@sphereon/ssi-sdk.anomaly-detection": "0.30.2-next.390+322aecc9",
|
18
|
+
"@sphereon/ssi-sdk.kv-store-temp": "0.30.2-next.390+322aecc9",
|
19
19
|
"cross-fetch": "^3.1.8",
|
20
20
|
"debug": "^4.3.5",
|
21
21
|
"typeorm": "^0.3.20",
|
22
22
|
"uint8arrays": "^3.1.1"
|
23
23
|
},
|
24
24
|
"devDependencies": {
|
25
|
-
"@sphereon/ssi-sdk.agent-config": "0.30.2-next.
|
25
|
+
"@sphereon/ssi-sdk.agent-config": "0.30.2-next.390+322aecc9",
|
26
26
|
"@veramo/remote-client": "4.2.0",
|
27
27
|
"@veramo/remote-server": "4.2.0",
|
28
28
|
"nock": "^13.5.4",
|
@@ -49,5 +49,5 @@
|
|
49
49
|
"Resource Management",
|
50
50
|
"Caching"
|
51
51
|
],
|
52
|
-
"gitHead": "
|
52
|
+
"gitHead": "322aecc9245b2f2d962955ddd986c15eace57131"
|
53
53
|
}
|
@@ -1,18 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
IKeyValueStore,
|
3
|
-
IValueData,
|
4
|
-
KeyValueStore,
|
5
|
-
ValueStoreType
|
6
|
-
} from '@sphereon/ssi-sdk.kv-store-temp'
|
1
|
+
import { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'
|
7
2
|
import { IAgentPlugin } from '@veramo/core'
|
8
3
|
import fetch, { Response, Headers } from 'cross-fetch'
|
9
4
|
import { schema } from '../index'
|
10
|
-
import {
|
11
|
-
deserializeResponse,
|
12
|
-
getResourceIdentifier,
|
13
|
-
isCacheWithinMaxAge,
|
14
|
-
serializeResponse
|
15
|
-
} from '../utils/ResourceResolverUtils'
|
5
|
+
import { deserializeResponse, getResourceIdentifier, isCacheWithinMaxAge, serializeResponse } from '../utils/ResourceResolverUtils'
|
16
6
|
import {
|
17
7
|
ClearAllResourcesArgs,
|
18
8
|
ResolveArgs,
|
@@ -25,7 +15,7 @@ import {
|
|
25
15
|
ResourceResolverOptions,
|
26
16
|
StoreArgs,
|
27
17
|
StoreIdStrArgs,
|
28
|
-
Resource
|
18
|
+
Resource,
|
29
19
|
} from '../types/IResourceResolver'
|
30
20
|
|
31
21
|
/**
|
@@ -48,13 +38,7 @@ export class ResourceResolver implements IAgentPlugin {
|
|
48
38
|
private readonly _resourceStores: Map<string, IKeyValueStore<Resource>>
|
49
39
|
|
50
40
|
constructor(options?: ResourceResolverOptions) {
|
51
|
-
const {
|
52
|
-
defaultStore,
|
53
|
-
defaultNamespace,
|
54
|
-
resourceStores,
|
55
|
-
ttl,
|
56
|
-
detectLocation
|
57
|
-
} = options ?? {}
|
41
|
+
const { defaultStore, defaultNamespace, resourceStores, ttl, detectLocation } = options ?? {}
|
58
42
|
|
59
43
|
this.defaultStoreId = defaultStore ?? '_default'
|
60
44
|
this.defaultNamespace = defaultNamespace ?? 'resources'
|
@@ -71,37 +55,29 @@ export class ResourceResolver implements IAgentPlugin {
|
|
71
55
|
new KeyValueStore({
|
72
56
|
namespace: this.defaultNamespace,
|
73
57
|
store: new Map<string, Resource>(),
|
74
|
-
ttl: this.defaultTtl
|
75
|
-
})
|
58
|
+
ttl: this.defaultTtl,
|
59
|
+
}),
|
76
60
|
)
|
77
61
|
}
|
78
62
|
}
|
79
63
|
|
80
64
|
/** {@inheritDoc IResourceResolver.resourceResolve} */
|
81
65
|
private async resourceResolve(args: ResolveArgs, context: RequiredContext): Promise<Response> {
|
82
|
-
const {
|
83
|
-
input,
|
84
|
-
init,
|
85
|
-
resourceType,
|
86
|
-
resolveOpts,
|
87
|
-
partyCorrelationId,
|
88
|
-
storeId,
|
89
|
-
namespace
|
90
|
-
} = args
|
66
|
+
const { input, init, resourceType, resolveOpts, partyCorrelationId, storeId, namespace } = args
|
91
67
|
|
92
68
|
const resourceIdentifier = getResourceIdentifier(input)
|
93
69
|
|
94
70
|
const cachedResource = await this.getResource({ resourceIdentifier, storeId, namespace })
|
95
71
|
if (cachedResource.value && isCacheWithinMaxAge(cachedResource.value, resolveOpts)) {
|
96
|
-
return deserializeResponse(cachedResource.value.response)
|
72
|
+
return deserializeResponse(cachedResource.value.response)
|
97
73
|
}
|
98
74
|
|
99
75
|
if (resolveOpts?.onlyCache) {
|
100
76
|
return new Response(JSON.stringify({ error: 'Resource not found' }), {
|
101
77
|
status: 404,
|
102
78
|
statusText: 'Not Found',
|
103
|
-
headers: new Headers({ 'Content-Type': 'application/json' })
|
104
|
-
})
|
79
|
+
headers: new Headers({ 'Content-Type': 'application/json' }),
|
80
|
+
})
|
105
81
|
}
|
106
82
|
|
107
83
|
let location
|
@@ -110,20 +86,20 @@ export class ResourceResolver implements IAgentPlugin {
|
|
110
86
|
}
|
111
87
|
|
112
88
|
const response = await fetch(input, init)
|
113
|
-
if (!resolveOpts?.skipPersistence &&
|
114
|
-
const serializedResponse = await serializeResponse(response)
|
89
|
+
if (!resolveOpts?.skipPersistence && response.status >= 200 && response.status < 300) {
|
90
|
+
const serializedResponse = await serializeResponse(response)
|
115
91
|
const resource: Resource = {
|
116
92
|
location,
|
117
93
|
response: serializedResponse,
|
118
94
|
resourceType,
|
119
95
|
insertedAt: Date.now(),
|
120
|
-
partyCorrelationId
|
96
|
+
partyCorrelationId,
|
121
97
|
}
|
122
98
|
const cachedResource = await this.persistResource({
|
123
99
|
resource,
|
124
100
|
resourceIdentifier,
|
125
101
|
namespace,
|
126
|
-
storeId
|
102
|
+
storeId,
|
127
103
|
})
|
128
104
|
|
129
105
|
if (!cachedResource.value) {
|
@@ -146,7 +122,7 @@ export class ResourceResolver implements IAgentPlugin {
|
|
146
122
|
throw Error(`input type is required to be RequestInfo | URL`)
|
147
123
|
}
|
148
124
|
return await context.agent.anomalyDetectionLookupLocation({
|
149
|
-
ipOrHostname: url.hostname
|
125
|
+
ipOrHostname: url.hostname,
|
150
126
|
})
|
151
127
|
}
|
152
128
|
|
@@ -178,7 +154,7 @@ export class ResourceResolver implements IAgentPlugin {
|
|
178
154
|
return this.store({ stores: this._resourceStores, storeId }).getAsValueData(
|
179
155
|
this.prefix({
|
180
156
|
namespace,
|
181
|
-
resourceIdentifier
|
157
|
+
resourceIdentifier,
|
182
158
|
}),
|
183
159
|
)
|
184
160
|
}
|
@@ -221,6 +197,4 @@ export class ResourceResolver implements IAgentPlugin {
|
|
221
197
|
const { namespace, resourceIdentifier } = args
|
222
198
|
return `${this.namespaceStr({ namespace })}:${resourceIdentifier}`
|
223
199
|
}
|
224
|
-
|
225
200
|
}
|
226
|
-
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import {IKeyValueStore, ValueStoreType} from '@sphereon/ssi-sdk.kv-store-temp'
|
2
|
-
import {IAgentContext, IPluginMethodMap} from '@veramo/core'
|
3
|
-
import {IAnomalyDetection} from
|
1
|
+
import { IKeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'
|
2
|
+
import { IAgentContext, IPluginMethodMap } from '@veramo/core'
|
3
|
+
import { IAnomalyDetection } from '@sphereon/ssi-sdk.anomaly-detection'
|
4
4
|
|
5
5
|
export interface IResourceResolver extends IPluginMethodMap {
|
6
6
|
resourceResolve(args: ResolveArgs, context: RequiredContext): Promise<Response>
|
@@ -64,7 +64,7 @@ export type NamespaceStrArgs = {
|
|
64
64
|
}
|
65
65
|
|
66
66
|
export type PrefixArgs = {
|
67
|
-
namespace?: string
|
67
|
+
namespace?: string
|
68
68
|
resourceIdentifier: string
|
69
69
|
}
|
70
70
|
|
@@ -4,47 +4,42 @@ import { ResolveOptions, Resource, SerializedResponse } from '../types/IResource
|
|
4
4
|
|
5
5
|
export const getResourceIdentifier = (input: Request | string | URL): string => {
|
6
6
|
if (typeof input === 'string') {
|
7
|
-
return input
|
7
|
+
return input
|
8
8
|
} else if (input instanceof Request) {
|
9
|
-
return input.url
|
9
|
+
return input.url
|
10
10
|
} else if (input instanceof URL) {
|
11
|
-
return input.toString()
|
11
|
+
return input.toString()
|
12
12
|
}
|
13
13
|
|
14
|
-
throw new Error('Invalid input type. Expected Request, string, or URL.')
|
14
|
+
throw new Error('Invalid input type. Expected Request, string, or URL.')
|
15
15
|
}
|
16
16
|
|
17
17
|
export const serializeResponse = async (response: Response): Promise<SerializedResponse> => {
|
18
|
-
const arrayBuffer = await response.arrayBuffer()
|
19
|
-
const base64Url = u8a.toString(new Uint8Array(arrayBuffer), 'base64url')
|
18
|
+
const arrayBuffer = await response.arrayBuffer()
|
19
|
+
const base64Url = u8a.toString(new Uint8Array(arrayBuffer), 'base64url')
|
20
20
|
|
21
21
|
return {
|
22
22
|
status: response.status,
|
23
23
|
statusText: response.statusText,
|
24
24
|
headers: Object.fromEntries(response.headers.entries()),
|
25
|
-
body: base64Url
|
25
|
+
body: base64Url,
|
26
26
|
}
|
27
27
|
}
|
28
28
|
|
29
29
|
export const deserializeResponse = async (data: SerializedResponse): Promise<Response> => {
|
30
|
-
const {
|
31
|
-
status,
|
32
|
-
statusText,
|
33
|
-
headers,
|
34
|
-
body
|
35
|
-
} = data
|
30
|
+
const { status, statusText, headers, body } = data
|
36
31
|
|
37
32
|
const uint8Array = u8a.fromString(body, 'base64url')
|
38
|
-
const arrayBuffer = uint8Array.buffer.slice(uint8Array.byteOffset, uint8Array.byteOffset + uint8Array.byteLength)
|
33
|
+
const arrayBuffer = uint8Array.buffer.slice(uint8Array.byteOffset, uint8Array.byteOffset + uint8Array.byteLength)
|
39
34
|
|
40
35
|
return new Response(arrayBuffer, {
|
41
36
|
status,
|
42
37
|
statusText,
|
43
|
-
headers: new Headers(headers)
|
38
|
+
headers: new Headers(headers),
|
44
39
|
})
|
45
40
|
}
|
46
41
|
|
47
42
|
// Check if the cache is still within the acceptable age
|
48
43
|
export const isCacheWithinMaxAge = (cachedResource: Resource, resolveOpts?: ResolveOptions): boolean => {
|
49
|
-
return cachedResource && (resolveOpts?.maxAgeMs === undefined ||
|
44
|
+
return cachedResource && (resolveOpts?.maxAgeMs === undefined || Date.now() - cachedResource.insertedAt < resolveOpts.maxAgeMs)
|
50
45
|
}
|