@toa.io/extensions.exposition 1.0.0-alpha.3 → 1.0.0-alpha.4
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/components/identity.bans/manifest.toa.yaml +1 -0
- package/components/identity.basic/manifest.toa.yaml +1 -0
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/manifest.toa.yaml +1 -0
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/manifest.toa.yaml +1 -0
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/manifest.toa.yaml +1 -0
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/octets.storage/manifest.toa.yaml +1 -0
- package/components/octets.storage/operations/store.js +1 -1
- package/documentation/components.md +5 -5
- package/documentation/query.md +45 -2
- package/features/body.feature +1 -1
- package/features/errors.feature +1 -1
- package/features/etag.feature +86 -0
- package/features/octets.entries.feature +1 -1
- package/features/steps/Gateway.ts +3 -0
- package/features/steps/components/echo/manifest.toa.yaml +1 -0
- package/features/steps/components/greeter/manifest.toa.yaml +1 -0
- package/features/steps/components/octets.tester/manifest.toa.yaml +1 -0
- package/features/steps/components/pots/manifest.toa.yaml +10 -3
- package/features/steps/components/sequences/manifest.toa.yaml +1 -0
- package/features/timing.feature +43 -0
- package/package.json +7 -10
- package/readme.md +7 -6
- package/schemas/annotation.cos.yaml +1 -0
- package/schemas/querystring.cos.yaml +1 -0
- package/source/Annotation.ts +1 -0
- package/source/Directive.test.ts +3 -3
- package/source/Directive.ts +11 -11
- package/source/Endpoint.ts +18 -4
- package/source/Factory.ts +8 -4
- package/source/Gateway.ts +55 -42
- package/source/HTTP/Context.ts +67 -0
- package/source/HTTP/Server.test.ts +1 -1
- package/source/HTTP/Server.ts +60 -95
- package/source/HTTP/Timing.ts +40 -0
- package/source/HTTP/index.ts +1 -0
- package/source/HTTP/messages.test.ts +27 -8
- package/source/HTTP/messages.ts +32 -48
- package/source/Mapping.ts +7 -8
- package/source/deployment.ts +6 -0
- package/source/directives/auth/Anonymous.ts +3 -2
- package/source/directives/auth/Authorization.ts +5 -3
- package/source/directives/auth/Incept.ts +11 -6
- package/source/directives/auth/Role.ts +5 -3
- package/source/directives/auth/Scheme.ts +2 -2
- package/source/directives/cache/Cache.ts +2 -2
- package/source/directives/cache/Control.ts +5 -5
- package/source/directives/cache/types.ts +1 -1
- package/source/directives/cors/CORS.ts +5 -3
- package/source/directives/octets/Context.ts +1 -1
- package/source/directives/octets/Delete.ts +19 -9
- package/source/directives/octets/Fetch.ts +29 -14
- package/source/directives/octets/List.ts +14 -6
- package/source/directives/octets/Octets.ts +4 -2
- package/source/directives/octets/Permute.ts +12 -6
- package/source/directives/octets/Store.ts +18 -16
- package/source/directives/octets/Workflow.ts +3 -3
- package/source/directives/octets/workflows/Workflow.ts +2 -2
- package/source/directives/vary/Vary.ts +1 -1
- package/source/directives/vary/embeddings/Header.ts +1 -1
- package/source/directives/vary/embeddings/Language.ts +1 -1
- package/source/io.ts +2 -2
- package/transpiled/Annotation.d.ts +1 -0
- package/transpiled/Directive.d.ts +6 -6
- package/transpiled/Directive.js +8 -8
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.d.ts +3 -3
- package/transpiled/Endpoint.js +34 -1
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Factory.js +4 -2
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Gateway.d.ts +5 -6
- package/transpiled/Gateway.js +38 -32
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +24 -0
- package/transpiled/HTTP/Context.js +47 -0
- package/transpiled/HTTP/Context.js.map +1 -0
- package/transpiled/HTTP/Server.d.ts +8 -7
- package/transpiled/HTTP/Server.js +68 -76
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/Timing.d.ts +10 -0
- package/transpiled/HTTP/Timing.js +29 -0
- package/transpiled/HTTP/Timing.js.map +1 -0
- package/transpiled/HTTP/index.d.ts +1 -0
- package/transpiled/HTTP/index.js +1 -0
- package/transpiled/HTTP/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +7 -21
- package/transpiled/HTTP/messages.js +24 -26
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/Mapping.js +7 -7
- package/transpiled/Mapping.js.map +1 -1
- package/transpiled/deployment.js +5 -0
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/auth/Anonymous.js +3 -4
- package/transpiled/directives/auth/Anonymous.js.map +1 -1
- package/transpiled/directives/auth/Authorization.js +1 -1
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/auth/Incept.d.ts +1 -1
- package/transpiled/directives/auth/Incept.js +11 -6
- package/transpiled/directives/auth/Incept.js.map +1 -1
- package/transpiled/directives/auth/Role.js +5 -3
- package/transpiled/directives/auth/Role.js.map +1 -1
- package/transpiled/directives/auth/Scheme.js +2 -2
- package/transpiled/directives/auth/Scheme.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +1 -1
- package/transpiled/directives/cache/Cache.js +2 -2
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/Control.d.ts +3 -3
- package/transpiled/directives/cache/Control.js +3 -3
- package/transpiled/directives/cache/Control.js.map +1 -1
- package/transpiled/directives/cache/types.d.ts +1 -1
- package/transpiled/directives/cors/CORS.js +4 -3
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/octets/Context.d.ts +1 -1
- package/transpiled/directives/octets/Context.js.map +1 -1
- package/transpiled/directives/octets/Delete.d.ts +1 -1
- package/transpiled/directives/octets/Delete.js +19 -9
- package/transpiled/directives/octets/Delete.js.map +1 -1
- package/transpiled/directives/octets/Fetch.d.ts +1 -1
- package/transpiled/directives/octets/Fetch.js +28 -14
- package/transpiled/directives/octets/Fetch.js.map +1 -1
- package/transpiled/directives/octets/List.d.ts +1 -1
- package/transpiled/directives/octets/List.js +13 -6
- package/transpiled/directives/octets/List.js.map +1 -1
- package/transpiled/directives/octets/Octets.js +4 -2
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/directives/octets/Permute.d.ts +1 -1
- package/transpiled/directives/octets/Permute.js +11 -6
- package/transpiled/directives/octets/Permute.js.map +1 -1
- package/transpiled/directives/octets/Store.d.ts +1 -1
- package/transpiled/directives/octets/Store.js +11 -11
- package/transpiled/directives/octets/Store.js.map +1 -1
- package/transpiled/directives/octets/Workflow.d.ts +1 -1
- package/transpiled/directives/octets/Workflow.js +3 -3
- package/transpiled/directives/octets/Workflow.js.map +1 -1
- package/transpiled/directives/octets/workflows/Workflow.d.ts +1 -1
- package/transpiled/directives/octets/workflows/Workflow.js +2 -2
- package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
- package/transpiled/directives/vary/Vary.js +1 -1
- package/transpiled/directives/vary/embeddings/Header.js +1 -1
- package/transpiled/directives/vary/embeddings/Header.js.map +1 -1
- package/transpiled/directives/vary/embeddings/Language.js +1 -1
- package/transpiled/directives/vary/embeddings/Language.js.map +1 -1
- package/transpiled/io.d.ts +2 -2
- package/transpiled/tsconfig.tsbuildinfo +1 -1
- package/source/HTTP/Server.fixtures.ts +0 -40
- package/transpiled/HTTP/Server.fixtures.d.ts +0 -10
- package/transpiled/HTTP/Server.fixtures.js +0 -31
- package/transpiled/HTTP/Server.fixtures.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Timing = void 0;
|
|
4
|
+
const node_perf_hooks_1 = require("node:perf_hooks");
|
|
5
|
+
class Timing {
|
|
6
|
+
skip;
|
|
7
|
+
start = node_perf_hooks_1.performance.now();
|
|
8
|
+
breakpoints = [];
|
|
9
|
+
constructor(enabled) {
|
|
10
|
+
this.skip = !enabled;
|
|
11
|
+
}
|
|
12
|
+
async capture(id, promise) {
|
|
13
|
+
if (this.skip)
|
|
14
|
+
return promise;
|
|
15
|
+
const start = node_perf_hooks_1.performance.now();
|
|
16
|
+
const result = promise instanceof Promise ? await promise : promise;
|
|
17
|
+
this.breakpoints.push({ id, duration: node_perf_hooks_1.performance.now() - start });
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
append(response) {
|
|
21
|
+
if (this.skip)
|
|
22
|
+
return;
|
|
23
|
+
this.breakpoints.push({ id: 'total', duration: node_perf_hooks_1.performance.now() - this.start });
|
|
24
|
+
for (const breakpoint of this.breakpoints)
|
|
25
|
+
response.appendHeader('server-timing', `${breakpoint.id};dur=${breakpoint.duration.toFixed(3)}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Timing = Timing;
|
|
29
|
+
//# sourceMappingURL=Timing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timing.js","sourceRoot":"","sources":["../../source/HTTP/Timing.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAG7C,MAAa,MAAM;IACA,IAAI,CAAS;IACb,KAAK,GAAG,6BAAW,CAAC,GAAG,EAAE,CAAA;IACzB,WAAW,GAAiB,EAAE,CAAA;IAE/C,YAAoB,OAAgB;QAClC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAK,EAAU,EAAE,OAAmB;QACtD,IAAI,IAAI,CAAC,IAAI;YACX,OAAO,OAAO,CAAA;QAEhB,MAAM,KAAK,GAAG,6BAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAG,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QAEnE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,6BAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QAElE,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,MAAM,CAAE,QAAwB;QACrC,IAAI,IAAI,CAAC,IAAI;YACX,OAAM;QAER,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,6BAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAEhF,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW;YACvC,QAAQ,CAAC,YAAY,CAAC,eAAe,EACnC,GAAG,UAAU,CAAC,EAAE,QAAQ,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC/D,CAAC;CACF;AA/BD,wBA+BC"}
|
package/transpiled/HTTP/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./Server"), exports);
|
|
18
18
|
__exportStar(require("./messages"), exports);
|
|
19
19
|
__exportStar(require("./exceptions"), exports);
|
|
20
|
+
__exportStar(require("./Context"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/HTTP/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/HTTP/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB"}
|
|
@@ -1,33 +1,19 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare function write(request: IncomingMessage, response: Response, message: OutgoingMessage): void;
|
|
7
|
-
export declare function read(request: Request): Promise<any>;
|
|
8
|
-
export interface IncomingMessage extends Request {
|
|
9
|
-
method: string;
|
|
10
|
-
path: string;
|
|
11
|
-
url: string;
|
|
12
|
-
headers: IncomingHttpHeaders;
|
|
13
|
-
query: Query;
|
|
14
|
-
parse: <T>() => Promise<T>;
|
|
15
|
-
encoder: Format | null;
|
|
16
|
-
subtype: string | null;
|
|
17
|
-
pipelines: {
|
|
18
|
-
body: Array<(input: unknown) => unknown>;
|
|
19
|
-
response: Array<(output: OutgoingMessage) => void>;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
2
|
+
import type { Context } from './Context';
|
|
3
|
+
import type * as http from 'node:http';
|
|
4
|
+
export declare function write(context: Context, response: http.ServerResponse, message: OutgoingMessage): void;
|
|
5
|
+
export declare function read(context: Context): Promise<any>;
|
|
22
6
|
export interface OutgoingMessage {
|
|
23
7
|
status?: number;
|
|
24
8
|
headers?: Headers;
|
|
25
9
|
body?: any;
|
|
26
10
|
}
|
|
27
|
-
export interface Query
|
|
11
|
+
export interface Query {
|
|
12
|
+
[key: string]: string | number | undefined;
|
|
28
13
|
id?: string;
|
|
29
14
|
criteria?: string;
|
|
30
15
|
sort?: string;
|
|
31
16
|
omit?: string;
|
|
32
17
|
limit?: string;
|
|
18
|
+
version?: number;
|
|
33
19
|
}
|
|
@@ -2,27 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.read = exports.write = void 0;
|
|
4
4
|
const node_stream_1 = require("node:stream");
|
|
5
|
-
const
|
|
5
|
+
const consumers_1 = require("node:stream/consumers");
|
|
6
6
|
const formats_1 = require("./formats");
|
|
7
7
|
const exceptions_1 = require("./exceptions");
|
|
8
|
-
function write(
|
|
9
|
-
for (const transform of
|
|
8
|
+
function write(context, response, message) {
|
|
9
|
+
for (const transform of context.pipelines.response)
|
|
10
10
|
transform(message);
|
|
11
|
-
message.headers?.forEach((value, key) => response.
|
|
11
|
+
message.headers?.forEach((value, key) => response.setHeader(key, value));
|
|
12
|
+
context.timing.append(response);
|
|
12
13
|
if (message.body instanceof node_stream_1.Readable)
|
|
13
|
-
stream(message,
|
|
14
|
+
stream(message, context, response);
|
|
14
15
|
else
|
|
15
|
-
send(message,
|
|
16
|
+
send(message, context, response);
|
|
16
17
|
}
|
|
17
18
|
exports.write = write;
|
|
18
|
-
async function read(
|
|
19
|
-
const type = request.headers['content-type'];
|
|
19
|
+
async function read(context) {
|
|
20
|
+
const type = context.request.headers['content-type'];
|
|
20
21
|
if (type === undefined)
|
|
21
22
|
return undefined;
|
|
22
23
|
if (!(type in formats_1.formats))
|
|
23
24
|
throw new exceptions_1.UnsupportedMediaType();
|
|
24
25
|
const format = formats_1.formats[type];
|
|
25
|
-
const buf = await (0,
|
|
26
|
+
const buf = await context.timing.capture('req:buffer', (0, consumers_1.buffer)(context.request));
|
|
26
27
|
try {
|
|
27
28
|
return format.decode(buf);
|
|
28
29
|
}
|
|
@@ -31,45 +32,42 @@ async function read(request) {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
exports.read = read;
|
|
34
|
-
function send(message,
|
|
35
|
+
function send(message, context, response) {
|
|
35
36
|
if (message.body === undefined || message.body === null) {
|
|
36
37
|
response.end();
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
39
|
-
if (
|
|
40
|
+
if (context.encoder === null)
|
|
40
41
|
throw new exceptions_1.NotAcceptable();
|
|
41
|
-
const buf =
|
|
42
|
+
const buf = context.encoder.encode(message.body);
|
|
42
43
|
response
|
|
43
|
-
.
|
|
44
|
-
.
|
|
44
|
+
.setHeader('content-type', context.encoder.type)
|
|
45
|
+
.appendHeader('vary', 'accept')
|
|
45
46
|
.end(buf);
|
|
46
47
|
}
|
|
47
|
-
function stream(message,
|
|
48
|
+
function stream(message, context, response) {
|
|
48
49
|
const encoded = message.headers !== undefined && message.headers.has('content-type');
|
|
49
50
|
if (encoded)
|
|
50
|
-
pipe(
|
|
51
|
+
message.body.pipe(response);
|
|
51
52
|
else
|
|
52
|
-
multipart(message,
|
|
53
|
+
multipart(message, context, response);
|
|
53
54
|
message.body.on('error', (e) => {
|
|
54
55
|
console.error(e);
|
|
55
56
|
response.end();
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
|
-
function
|
|
59
|
-
|
|
60
|
-
message.body.pipe(response);
|
|
61
|
-
}
|
|
62
|
-
function multipart(message, request, response) {
|
|
63
|
-
if (request.encoder === null)
|
|
59
|
+
function multipart(message, context, response) {
|
|
60
|
+
if (context.encoder === null)
|
|
64
61
|
throw new exceptions_1.NotAcceptable();
|
|
65
|
-
const encoder =
|
|
66
|
-
response.
|
|
62
|
+
const encoder = context.encoder;
|
|
63
|
+
response.setHeader('content-type', `${encoder.multipart}; boundary=${BOUNDARY}`);
|
|
67
64
|
message.body
|
|
68
|
-
.map((part) => Buffer.concat([CUT, encoder.encode(part)]))
|
|
65
|
+
.map((part) => Buffer.concat([CUT, encoder.encode(part), CRLF]))
|
|
69
66
|
.on('end', () => response.end(FINALCUT))
|
|
70
67
|
.pipe(response);
|
|
71
68
|
}
|
|
72
69
|
const BOUNDARY = 'cut';
|
|
73
70
|
const CUT = Buffer.from(`--${BOUNDARY}\r\n`);
|
|
71
|
+
const CRLF = Buffer.from('\r\n');
|
|
74
72
|
const FINALCUT = Buffer.from(`--${BOUNDARY}--`);
|
|
75
73
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"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"}
|
package/transpiled/Mapping.js
CHANGED
|
@@ -19,20 +19,20 @@ class QueryableMapping extends Mapping {
|
|
|
19
19
|
}
|
|
20
20
|
fit(input, qs, parameters) {
|
|
21
21
|
const query = this.query.fit(qs, parameters);
|
|
22
|
-
return {
|
|
22
|
+
return {
|
|
23
|
+
input,
|
|
24
|
+
query
|
|
25
|
+
};
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
class InputMapping extends Mapping {
|
|
26
29
|
fit(input, _, parameters) {
|
|
27
30
|
if (input === undefined && parameters.length > 0)
|
|
28
31
|
input = {};
|
|
29
|
-
if (typeof input === 'object')
|
|
30
|
-
|
|
32
|
+
if (typeof input === 'object' && input !== null)
|
|
33
|
+
for (const parameter of parameters)
|
|
34
|
+
input[parameter.name] = parameter.value;
|
|
31
35
|
return { input };
|
|
32
36
|
}
|
|
33
|
-
assign(input, parameters) {
|
|
34
|
-
for (const parameter of parameters)
|
|
35
|
-
input[parameter.name] = parameter.value;
|
|
36
|
-
}
|
|
37
37
|
}
|
|
38
38
|
//# sourceMappingURL=Mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../source/Mapping.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAK/B,MAAsB,OAAO;IACpB,MAAM,CAAC,MAAM,CAAE,KAAoB;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YACvC,OAAO,IAAI,YAAY,EAAE,CAAA;QAE3B,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAA;QAE1B,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;CAGF;AAXD,0BAWC;AAED,MAAM,gBAAiB,SAAQ,OAAO;IACnB,KAAK,CAAO;IAE7B,YAAoB,KAAY;QAC9B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,KAAU,EAAE,EAAc,EAAE,UAAuB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAE5C,OAAO,
|
|
1
|
+
{"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../source/Mapping.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAK/B,MAAsB,OAAO;IACpB,MAAM,CAAC,MAAM,CAAE,KAAoB;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YACvC,OAAO,IAAI,YAAY,EAAE,CAAA;QAE3B,MAAM,CAAC,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAA;QAE1B,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;CAGF;AAXD,0BAWC;AAED,MAAM,gBAAiB,SAAQ,OAAO;IACnB,KAAK,CAAO;IAE7B,YAAoB,KAAY;QAC9B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,KAAU,EAAE,EAAc,EAAE,UAAuB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAE5C,OAAO;YACL,KAAK;YACL,KAAK;SACN,CAAA;IACH,CAAC;CACF;AAED,MAAM,YAAa,SAAQ,OAAO;IACzB,GAAG,CAAE,KAAU,EAAE,CAAU,EAAE,UAAuB;QACzD,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAC9C,KAAK,GAAG,EAAE,CAAA;QAEZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAC7C,KAAK,MAAM,SAAS,IAAI,UAAU;gBAChC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAA;QAE3C,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;CACF"}
|
package/transpiled/deployment.js
CHANGED
|
@@ -58,6 +58,11 @@ function deployment(_, annotation) {
|
|
|
58
58
|
name: 'TOA_EXPOSITION_DEBUG',
|
|
59
59
|
value: '1'
|
|
60
60
|
});
|
|
61
|
+
if (annotation?.trace === true)
|
|
62
|
+
service.variables.push({
|
|
63
|
+
name: 'TOA_EXPOSITION_TRACE',
|
|
64
|
+
value: '1'
|
|
65
|
+
});
|
|
61
66
|
if (annotation !== undefined)
|
|
62
67
|
schemas.annotaion.validate(annotation);
|
|
63
68
|
return { services: [service] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAwC;AAExC,mDAAoC;AACpC,2CAAuC;AACvC,+CAA0C;AAC1C,yCAAoC;AAEpC,SAAgB,UAAU,CAAE,CAAU,EAAE,UAAkC;IACxE,MAAM,MAAM,GAAG,IAAA,wBAAU,GAAE,CAAC,MAAM,CAAA;IAElC,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,8DAA8D;QAC9D,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QAC3C,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;KACnB,CAAA;IAED,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS;QAChC,OAAO,CAAC,OAAO,GAAG;YAChB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAA;IAEH,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,UAAU,CAAC,GAAG,CAAC,EAAE,qBAAS,CAAC,CAAA;QAE9C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,IAAA,gBAAM,EAAC,IAAI,CAAC;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,KAAK,KAAK,IAAI;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,GAAG;SACX,CAAC,CAAA;IAEJ,IAAI,UAAU,KAAK,SAAS;QAC1B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAExC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAA;AAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAwC;AAExC,mDAAoC;AACpC,2CAAuC;AACvC,+CAA0C;AAC1C,yCAAoC;AAEpC,SAAgB,UAAU,CAAE,CAAU,EAAE,UAAkC;IACxE,MAAM,MAAM,GAAG,IAAA,wBAAU,GAAE,CAAC,MAAM,CAAA;IAElC,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,8DAA8D;QAC9D,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QAC3C,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;KACnB,CAAA;IAED,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS;QAChC,OAAO,CAAC,OAAO,GAAG;YAChB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAA;IAEH,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,UAAU,CAAC,GAAG,CAAC,EAAE,qBAAS,CAAC,CAAA;QAE9C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,IAAA,gBAAM,EAAC,IAAI,CAAC;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,KAAK,KAAK,IAAI;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,GAAG;SACX,CAAC,CAAA;IAEJ,IAAI,UAAU,EAAE,KAAK,KAAK,IAAI;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,GAAG;SACX,CAAC,CAAA;IAEJ,IAAI,UAAU,KAAK,SAAS;QAC1B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAExC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAA;AAChC,CAAC;AA7CD,gCA6CC"}
|
|
@@ -7,10 +7,9 @@ class Anonymous {
|
|
|
7
7
|
this.allow = allow;
|
|
8
8
|
}
|
|
9
9
|
authorize(_, input) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return this.allow;
|
|
10
|
+
return 'authorization' in input.request.headers
|
|
11
|
+
? false
|
|
12
|
+
: this.allow;
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
exports.Anonymous = Anonymous;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anonymous.js","sourceRoot":"","sources":["../../../source/directives/auth/Anonymous.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IACH,KAAK,CAAS;IAE/B,YAAoB,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,SAAS,CAAE,CAAM,EAAE,KAAY;QACpC,
|
|
1
|
+
{"version":3,"file":"Anonymous.js","sourceRoot":"","sources":["../../../source/directives/auth/Anonymous.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IACH,KAAK,CAAS;IAE/B,YAAoB,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,SAAS,CAAE,CAAM,EAAE,KAAY;QACpC,OAAO,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO;YAC7C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;IAChB,CAAC;CACF;AAZD,8BAYC"}
|
|
@@ -55,7 +55,7 @@ class Authorization {
|
|
|
55
55
|
return (0, matchacho_1.match)(Class, Role_1.Role, () => new Role_1.Role(value, this.discovery.roles), Rule_1.Rule, () => new Rule_1.Rule(value, this.create.bind(this)), Incept_1.Incept, () => new Incept_1.Incept(value, this.discovery), () => new Class(value));
|
|
56
56
|
}
|
|
57
57
|
async preflight(directives, input, parameters) {
|
|
58
|
-
const identity = await this.resolve(input.headers.authorization);
|
|
58
|
+
const identity = await this.resolve(input.request.headers.authorization);
|
|
59
59
|
input.identity = identity;
|
|
60
60
|
for (const directive of directives) {
|
|
61
61
|
const allow = await directive.authorize(identity, input, parameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../source/directives/auth/Authorization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAChC,yCAAiC;AACjC,iDAAkC;AAClC,2CAAuC;AACvC,6BAAyB;AACzB,iCAA6B;AAC7B,iCAA6B;AAC7B,qCAAiC;AACjC,iCAA6B;AAC7B,mCAA+B;AAC/B,qCAAiC;AACjC,uCAA8C;AAkB9C,MAAa,aAAa;IACR,OAAO,GAAa,CAAC,MAAM,CAAC,CAAA;IAC5B,IAAI,GAAW,MAAM,CAAA;IACrB,SAAS,GAAY,IAAI,CAAA;IAExB,OAAO,GAAG,EAAwB,CAAA;IAClC,SAAS,GAAG,EAA0B,CAAA;IAC/C,MAAM,GAAqB,IAAI,CAAA;IAC/B,IAAI,GAAqB,IAAI,CAAA;IAE9B,MAAM,CAAE,IAAY,EAAE,KAAU,EAAE,OAAgB;QACvD,qBAAM,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,EACvB,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAE3B,KAAK,MAAM,IAAI,IAAI,OAAO;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAE7D,OAAO,IAAA,iBAAK,EAAC,KAAK,EAChB,WAAI,EAAE,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,KAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACtE,WAAI,EAAE,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,KAA+B,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC7E,eAAM,EAAE,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,KAAe,EAAE,IAAI,CAAC,SAAS,CAAC,EACzD,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,UAAuB,EAC7C,KAAY,EACZ,UAAuB;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../../source/directives/auth/Authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ export declare class Incept implements Directive {
|
|
|
6
6
|
private readonly schemes;
|
|
7
7
|
constructor(property: string, discovery: Discovery);
|
|
8
8
|
authorize(identity: Identity | null, input: Input): boolean;
|
|
9
|
-
settle(
|
|
9
|
+
settle(input: Input, response: http.OutgoingMessage): Promise<void>;
|
|
10
10
|
}
|
|
@@ -36,22 +36,27 @@ class Incept {
|
|
|
36
36
|
this.discovery = discovery;
|
|
37
37
|
}
|
|
38
38
|
authorize(identity, input) {
|
|
39
|
-
return identity === null && 'authorization' in input.headers;
|
|
39
|
+
return identity === null && 'authorization' in input.request.headers;
|
|
40
40
|
}
|
|
41
|
-
async settle(
|
|
41
|
+
async settle(input, response) {
|
|
42
42
|
const id = response.body?.[this.property];
|
|
43
43
|
if (id === undefined)
|
|
44
44
|
throw new http.Conflict('Identity inception has failed as the response body ' +
|
|
45
45
|
` does not contain the '${this.property}' property.`);
|
|
46
|
-
const [scheme, credentials] = (0, split_1.split)(request.headers.authorization);
|
|
46
|
+
const [scheme, credentials] = (0, split_1.split)(input.request.headers.authorization);
|
|
47
47
|
const provider = schemes_1.PROVIDERS[scheme];
|
|
48
48
|
this.schemes[scheme] ??= await this.discovery[provider];
|
|
49
49
|
const identity = await this.schemes[scheme]
|
|
50
|
-
.invoke('create', {
|
|
50
|
+
.invoke('create', {
|
|
51
|
+
input: {
|
|
52
|
+
id,
|
|
53
|
+
credentials
|
|
54
|
+
}
|
|
55
|
+
});
|
|
51
56
|
if (identity instanceof Error)
|
|
52
57
|
throw new http.Conflict(identity);
|
|
53
|
-
|
|
54
|
-
|
|
58
|
+
input.identity = identity;
|
|
59
|
+
input.identity.scheme = scheme;
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
exports.Incept = Incept;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Incept.js","sourceRoot":"","sources":["../../../source/directives/auth/Incept.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAkC;AAElC,mCAA+B;AAC/B,uCAAqC;AAErC,MAAa,MAAM;IACA,QAAQ,CAAQ;IAChB,SAAS,CAAW;IACpB,OAAO,GAAY,EAAwB,CAAA;IAE5D,YAAoB,QAAgB,EAAE,SAAoB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,SAAS,CAAE,QAAyB,EAAE,KAAY;QACvD,OAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Incept.js","sourceRoot":"","sources":["../../../source/directives/auth/Incept.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAkC;AAElC,mCAA+B;AAC/B,uCAAqC;AAErC,MAAa,MAAM;IACA,QAAQ,CAAQ;IAChB,SAAS,CAAW;IACpB,OAAO,GAAY,EAAwB,CAAA;IAE5D,YAAoB,QAAgB,EAAE,SAAoB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,SAAS,CAAE,QAAyB,EAAE,KAAY;QACvD,OAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;IACtE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,KAAY,EAAE,QAA8B;QAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzC,IAAI,EAAE,KAAK,SAAS;YAClB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,qDAAqD;gBAC3E,0BAA0B,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAA;QAEzD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAc,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,mBAAS,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACxC,MAAM,CAAkB,QAAQ,EAAE;YACnC,KAAK,EAAE;gBACL,EAAE;gBACF,WAAW;aACZ;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,YAAY,KAAK;YAC3B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEnC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACzB,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,CAAC;CACF;AAxCD,wBAwCC"}
|
|
@@ -11,9 +11,11 @@ class Role {
|
|
|
11
11
|
}
|
|
12
12
|
static async set(identity, discovery) {
|
|
13
13
|
this.remote ??= await discovery;
|
|
14
|
-
const query = {
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const query = {
|
|
15
|
+
criteria: `identity==${identity.id}`,
|
|
16
|
+
limit: 1024
|
|
17
|
+
};
|
|
18
|
+
identity.roles = await this.remote.invoke('list', { query });
|
|
17
19
|
}
|
|
18
20
|
async authorize(identity) {
|
|
19
21
|
if (identity === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../source/directives/auth/Role.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACR,MAAM,CAAC,MAAM,GAAqB,IAAI,CAAA;IAC5B,KAAK,CAAU;IACf,SAAS,CAAoB;IAE9C,YAAoB,KAAwB,EAAE,SAA6B;QACzE,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,QAAkB,EAAE,SAA6B;QACxE,IAAI,CAAC,MAAM,KAAK,MAAM,SAAS,CAAA;QAE/B,MAAM,KAAK,GAAU,
|
|
1
|
+
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../source/directives/auth/Role.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACR,MAAM,CAAC,MAAM,GAAqB,IAAI,CAAA;IAC5B,KAAK,CAAU;IACf,SAAS,CAAoB;IAE9C,YAAoB,KAAwB,EAAE,SAA6B;QACzE,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,QAAkB,EAAE,SAA6B;QACxE,IAAI,CAAC,MAAM,KAAK,MAAM,SAAS,CAAA;QAE/B,MAAM,KAAK,GAAU;YACnB,QAAQ,EAAE,aAAa,QAAQ,CAAC,EAAE,EAAE;YACpC,KAAK,EAAE,IAAI;SACZ,CAAA;QAED,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,QAAyB;QAC/C,IAAI,QAAQ,KAAK,IAAI;YACnB,OAAO,KAAK,CAAA;QAEd,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAExC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC9B,OAAO,KAAK,CAAA;QAEd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAEO,KAAK,CAAE,KAAe;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAEzE,IAAI,KAAK,KAAK,CAAC,CAAC;gBACd,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;;AA1CH,oBA2CC;AAED,SAAS,OAAO,CAAE,QAAgB,EAAE,MAAc;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QACjC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,KAAK,CAAA;IAEhB,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -34,9 +34,9 @@ class Scheme {
|
|
|
34
34
|
this.Scheme = scheme[0].toUpperCase() + scheme.substring(1);
|
|
35
35
|
}
|
|
36
36
|
authorize(_, input) {
|
|
37
|
-
if (input.headers.authorization === undefined)
|
|
37
|
+
if (input.request.headers.authorization === undefined)
|
|
38
38
|
return false;
|
|
39
|
-
const [scheme] = (0, split_1.split)(input.headers.authorization);
|
|
39
|
+
const [scheme] = (0, split_1.split)(input.request.headers.authorization);
|
|
40
40
|
if (scheme !== this.scheme)
|
|
41
41
|
throw new http.Forbidden(this.Scheme +
|
|
42
42
|
' authentication scheme is required to access this resource.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../source/directives/auth/Scheme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAElC,mCAA+B;AAE/B,MAAa,MAAM;IACA,MAAM,CAAQ;IACd,MAAM,CAAQ;IAE/B,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAEM,SAAS,CAAE,CAAkB,EAAE,KAAY;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;
|
|
1
|
+
{"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../source/directives/auth/Scheme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAElC,mCAA+B;AAE/B,MAAa,MAAM;IACA,MAAM,CAAQ;IACd,MAAM,CAAQ;IAE/B,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAEM,SAAS,CAAE,CAAkB,EAAE,KAAY;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YACnD,OAAO,KAAK,CAAA;QAEd,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE3D,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;YACxB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;gBAClC,6DAA6D,CAAC,CAAA;QAElE,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArBD,wBAqBC"}
|
|
@@ -7,5 +7,5 @@ export declare class Cache implements Family<Directive> {
|
|
|
7
7
|
readonly mandatory: boolean;
|
|
8
8
|
create(name: string, value: any): Directive;
|
|
9
9
|
preflight(): Output;
|
|
10
|
-
settle(directives: Directive[],
|
|
10
|
+
settle(directives: Directive[], input: Input, response: http.OutgoingMessage): Promise<void>;
|
|
11
11
|
}
|
|
@@ -15,9 +15,9 @@ class Cache {
|
|
|
15
15
|
preflight() {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
async settle(directives,
|
|
18
|
+
async settle(directives, input, response) {
|
|
19
19
|
response.headers ??= new Headers();
|
|
20
|
-
directives[0]?.set(
|
|
20
|
+
directives[0]?.set(input, response.headers);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
exports.Cache = Cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,mCAA+B;AAM/B,MAAa,KAAK;IACA,IAAI,GAAW,OAAO,CAAA;IACtB,SAAS,GAAY,KAAK,CAAA;IAEnC,MAAM,CAAE,IAAY,EAAE,KAAU;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtF,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,MAAM,CAClB,UAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,mCAA+B;AAM/B,MAAa,KAAK;IACA,IAAI,GAAW,OAAO,CAAA;IACtB,SAAS,GAAY,KAAK,CAAA;IAEnC,MAAM,CAAE,IAAY,EAAE,KAAU;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtF,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,MAAM,CAClB,UAAuB,EAAE,KAAY,EAAE,QAA8B;QACpE,QAAQ,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;QAClC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;CACF;AAtBD,sBAsBC;AAED,MAAM,YAAY,GAAkD;IAClE,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,aAAK;CACb,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AuthenticatedContext, Directive } from './types';
|
|
2
2
|
export declare class Control implements Directive {
|
|
3
3
|
protected readonly value: string;
|
|
4
4
|
private cache;
|
|
5
5
|
constructor(value: string);
|
|
6
|
-
set(
|
|
7
|
-
protected resolve(request:
|
|
6
|
+
set(context: AuthenticatedContext, headers: Headers): void;
|
|
7
|
+
protected resolve(request: AuthenticatedContext): string;
|
|
8
8
|
private mask;
|
|
9
9
|
}
|
|
@@ -8,10 +8,10 @@ class Control {
|
|
|
8
8
|
constructor(value) {
|
|
9
9
|
this.value = value;
|
|
10
10
|
}
|
|
11
|
-
set(
|
|
12
|
-
if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method))
|
|
11
|
+
set(context, headers) {
|
|
12
|
+
if (!['GET', 'HEAD', 'OPTIONS'].includes(context.request.method))
|
|
13
13
|
return;
|
|
14
|
-
this.cache ??= this.resolve(
|
|
14
|
+
this.cache ??= this.resolve(context);
|
|
15
15
|
headers.set('cache-control', this.cache);
|
|
16
16
|
}
|
|
17
17
|
resolve(request) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Control.js","sourceRoot":"","sources":["../../../source/directives/cache/Control.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,MAAa,OAAO;IACC,KAAK,CAAQ;IACxB,KAAK,GAAkB,IAAI,CAAA;IAEnC,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,OAA6B,EAAE,OAAgB;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Control.js","sourceRoot":"","sources":["../../../source/directives/cache/Control.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,MAAa,OAAO;IACC,KAAK,CAAQ;IACxB,KAAK,GAAkB,IAAI,CAAA;IAEnC,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,OAA6B,EAAE,OAAgB;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,OAAM;QAER,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEpC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAES,OAAO,CAAE,OAA6B;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAA;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,KAAK,MAAM;YAC/C,OAAO,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;QAElC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC;YACzC,OAAO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAA;QAEjC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEO,IAAI;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAElD,IAAI,UAAU,KAAK,IAAI;YACrB,OAAO,CAAC,CAAA;QAEV,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,IAAI,IAAA,iBAAK,EAAS,SAAS,EAC7B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,QAAQ,EACpB,CAAC,CAAC,CAAA;QAEN,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjDD,0BAiDC;AAED,MAAM,aAAa,GAAG,iCAAiC,CAAA;AAEvD,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,QAAQ,GAAG,CAAC,CAAA"}
|
|
@@ -14,16 +14,17 @@ class CORS {
|
|
|
14
14
|
vary: 'origin'
|
|
15
15
|
});
|
|
16
16
|
intercept(input) {
|
|
17
|
-
const origin = input.headers.origin;
|
|
17
|
+
const origin = input.request.headers.origin;
|
|
18
18
|
if (origin === undefined)
|
|
19
19
|
return null;
|
|
20
|
-
if (input.method === 'OPTIONS')
|
|
20
|
+
if (input.request.method === 'OPTIONS')
|
|
21
21
|
return this.preflightResponse(origin);
|
|
22
22
|
input.pipelines.response.push((output) => {
|
|
23
23
|
output.headers ??= new Headers();
|
|
24
24
|
output.headers.set('access-control-allow-origin', origin);
|
|
25
25
|
output.headers.set('access-control-expose-headers', 'authorization, content-type, content-length, etag');
|
|
26
|
-
|
|
26
|
+
const method = input.request.method;
|
|
27
|
+
if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS')
|
|
27
28
|
output.headers.append('vary', 'origin');
|
|
28
29
|
});
|
|
29
30
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CORS.js","sourceRoot":"","sources":["../../../source/directives/cors/CORS.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACC,IAAI,GAAG,MAAM,CAAA;IACb,SAAS,GAAG,IAAI,CAAA;IAEf,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IAE7E,OAAO,GAAG,IAAI,OAAO,CAAC;QACrC,8BAA8B,EAAE,+BAA+B;QAC/D,kCAAkC,EAAE,MAAM;QAC1C,8BAA8B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E,wBAAwB,EAAE,MAAM;QAChC,eAAe,EAAE,sBAAsB;QACvC,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEK,SAAS,CAAE,KAAY;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"CORS.js","sourceRoot":"","sources":["../../../source/directives/cors/CORS.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACC,IAAI,GAAG,MAAM,CAAA;IACb,SAAS,GAAG,IAAI,CAAA;IAEf,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IAE7E,OAAO,GAAG,IAAI,OAAO,CAAC;QACrC,8BAA8B,EAAE,+BAA+B;QAC/D,kCAAkC,EAAE,MAAM;QAC1C,8BAA8B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E,wBAAwB,EAAE,MAAM;QAChC,eAAe,EAAE,sBAAsB;QACvC,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEK,SAAS,CAAE,KAAY;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAE3C,IAAI,MAAM,KAAK,SAAS;YACtB,OAAO,IAAI,CAAA;QAEb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAEvC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;YAChC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAChD,mDAAmD,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;YAEnC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS;gBAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,WAAW,CAAE,MAAc;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9F,CAAC;IAEO,iBAAiB,CAAE,MAAc;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;QAEvD,OAAO;YACL,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;IACH,CAAC;CACF;AApDD,oBAoDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../source/directives/octets/Context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAIpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAChB,OAAO,CAAQ;IAE/B,YAAoB,
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../source/directives/octets/Context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAIpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAChB,OAAO,CAAQ;IAE/B,YAAoB,KAAc;QAChC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAbD,0BAaC"}
|
|
@@ -10,7 +10,7 @@ export declare class Delete implements Directive {
|
|
|
10
10
|
private readonly discovery;
|
|
11
11
|
private storage;
|
|
12
12
|
constructor(options: Options | null, discovery: Promise<Component>, remotes: Remotes);
|
|
13
|
-
apply(storage: string,
|
|
13
|
+
apply(storage: string, input: Input, parameters: Parameter[]): Promise<Output>;
|
|
14
14
|
private delete;
|
|
15
15
|
private execute;
|
|
16
16
|
}
|
|
@@ -39,33 +39,43 @@ class Delete {
|
|
|
39
39
|
this.workflow = new workflows_1.Workflow(options.workflow, remotes);
|
|
40
40
|
this.discovery = discovery;
|
|
41
41
|
}
|
|
42
|
-
async apply(storage,
|
|
42
|
+
async apply(storage, input, parameters) {
|
|
43
43
|
this.storage ??= await this.discovery;
|
|
44
|
-
const entry = await this.storage.invoke('get', {
|
|
44
|
+
const entry = await this.storage.invoke('get', {
|
|
45
|
+
input: {
|
|
46
|
+
storage,
|
|
47
|
+
path: input.request.url
|
|
48
|
+
}
|
|
49
|
+
});
|
|
45
50
|
if (entry instanceof Error)
|
|
46
51
|
throw new HTTP_1.NotFound();
|
|
47
52
|
const output = {};
|
|
48
53
|
if (this.workflow !== undefined) {
|
|
49
54
|
output.status = 202;
|
|
50
|
-
output.body = stream_1.Readable.from(this.execute(
|
|
55
|
+
output.body = stream_1.Readable.from(this.execute(input, storage, entry, parameters));
|
|
51
56
|
}
|
|
52
57
|
else
|
|
53
|
-
await this.delete(storage,
|
|
58
|
+
await this.delete(storage, input);
|
|
54
59
|
return output;
|
|
55
60
|
}
|
|
56
|
-
async delete(storage,
|
|
61
|
+
async delete(storage, input) {
|
|
57
62
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
58
|
-
await this.storage.invoke('delete', {
|
|
63
|
+
await this.storage.invoke('delete', {
|
|
64
|
+
input: {
|
|
65
|
+
storage,
|
|
66
|
+
path: input.request.url
|
|
67
|
+
}
|
|
68
|
+
});
|
|
59
69
|
}
|
|
60
70
|
// eslint-disable-next-line max-params
|
|
61
|
-
async *execute(
|
|
71
|
+
async *execute(input, storage, entry, parameters) {
|
|
62
72
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
63
|
-
for await (const chunk of this.workflow.execute(
|
|
73
|
+
for await (const chunk of this.workflow.execute(input, storage, entry, parameters)) {
|
|
64
74
|
yield chunk;
|
|
65
75
|
if (typeof chunk === 'object' && chunk !== null && 'error' in chunk)
|
|
66
76
|
return;
|
|
67
77
|
}
|
|
68
|
-
await this.delete(storage,
|
|
78
|
+
await this.delete(storage, input);
|
|
69
79
|
}
|
|
70
80
|
}
|
|
71
81
|
exports.Delete = Delete;
|