@mojojs/core 0.17.2 → 0.19.1
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 +1 -1
- package/lib/app.d.ts +114 -4
- package/lib/app.js +107 -16
- package/lib/app.js.map +1 -1
- package/lib/body/params.d.ts +6 -0
- package/lib/body/params.js +6 -0
- package/lib/body/params.js.map +1 -1
- package/lib/body.d.ts +48 -0
- package/lib/body.js +45 -0
- package/lib/body.js.map +1 -1
- package/lib/cli/create-full-app.d.ts +3 -0
- package/lib/cli/create-full-app.js +3 -0
- package/lib/cli/create-full-app.js.map +1 -1
- package/lib/cli/create-lite-app.d.ts +3 -0
- package/lib/cli/create-lite-app.js +3 -0
- package/lib/cli/create-lite-app.js.map +1 -1
- package/lib/cli/eval.d.ts +3 -0
- package/lib/cli/eval.js +3 -0
- package/lib/cli/eval.js.map +1 -1
- package/lib/cli/get.d.ts +3 -0
- package/lib/cli/get.js +3 -0
- package/lib/cli/get.js.map +1 -1
- package/lib/cli/repl.d.ts +3 -0
- package/lib/cli/repl.js +3 -0
- package/lib/cli/repl.js.map +1 -1
- package/lib/cli/routes.d.ts +3 -0
- package/lib/cli/routes.js +3 -0
- package/lib/cli/routes.js.map +1 -1
- package/lib/cli/server.d.ts +3 -0
- package/lib/cli/server.js +3 -0
- package/lib/cli/server.js.map +1 -1
- package/lib/cli/version.d.ts +3 -0
- package/lib/cli/version.js +3 -0
- package/lib/cli/version.js.map +1 -1
- package/lib/cli.d.ts +15 -0
- package/lib/cli.js +20 -4
- package/lib/cli.js.map +1 -1
- package/lib/context.d.ts +99 -0
- package/lib/context.js +88 -3
- package/lib/context.js.map +1 -1
- package/lib/core.d.ts +3 -0
- package/lib/core.js +3 -0
- package/lib/core.js.map +1 -1
- package/lib/hooks.d.ts +9 -0
- package/lib/hooks.js +9 -0
- package/lib/hooks.js.map +1 -1
- package/lib/mime.d.ts +14 -0
- package/lib/mime.js +39 -9
- package/lib/mime.js.map +1 -1
- package/lib/mock/request.d.ts +3 -0
- package/lib/mock/request.js +3 -0
- package/lib/mock/request.js.map +1 -1
- package/lib/mock/response.d.ts +3 -0
- package/lib/mock/response.js +3 -0
- package/lib/mock/response.js.map +1 -1
- package/lib/plugins/default-helpers.d.ts +5 -0
- package/lib/plugins/default-helpers.js +18 -0
- package/lib/plugins/default-helpers.js.map +1 -0
- package/lib/plugins/exception-helpers.d.ts +3 -0
- package/lib/plugins/exception-helpers.js +3 -0
- package/lib/plugins/exception-helpers.js.map +1 -1
- package/lib/plugins/header-conditions.d.ts +3 -0
- package/lib/plugins/header-conditions.js +3 -0
- package/lib/plugins/header-conditions.js.map +1 -1
- package/lib/plugins/json-config.d.ts +3 -0
- package/lib/plugins/json-config.js +3 -0
- package/lib/plugins/json-config.js.map +1 -1
- package/lib/plugins/mt-engine.d.ts +3 -0
- package/lib/plugins/mt-engine.js +3 -0
- package/lib/plugins/mt-engine.js.map +1 -1
- package/lib/plugins/view-helpers.d.ts +3 -0
- package/lib/plugins/view-helpers.js +3 -12
- package/lib/plugins/view-helpers.js.map +1 -1
- package/lib/plugins/yaml-config.d.ts +3 -0
- package/lib/plugins/yaml-config.js +3 -0
- package/lib/plugins/yaml-config.js.map +1 -1
- package/lib/router/plan.d.ts +15 -0
- package/lib/router/plan.js +15 -0
- package/lib/router/plan.js.map +1 -1
- package/lib/router.d.ts +3 -3
- package/lib/router.js +11 -10
- package/lib/router.js.map +1 -1
- package/lib/server/cookie.d.ts +6 -0
- package/lib/server/cookie.js +6 -0
- package/lib/server/cookie.js.map +1 -1
- package/lib/server/request.d.ts +3 -5
- package/lib/server/request.js +10 -14
- package/lib/server/request.js.map +1 -1
- package/lib/server/response.js +1 -1
- package/lib/server/response.js.map +1 -1
- package/lib/server.d.ts +21 -0
- package/lib/server.js +17 -3
- package/lib/server.js.map +1 -1
- package/lib/static.js +1 -1
- package/lib/static.js.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/user-agent/cookie-jar.d.ts +12 -0
- package/lib/user-agent/cookie-jar.js +12 -0
- package/lib/user-agent/cookie-jar.js.map +1 -1
- package/lib/user-agent/mock.d.ts +15 -0
- package/lib/user-agent/mock.js +18 -2
- package/lib/user-agent/mock.js.map +1 -1
- package/lib/user-agent/response.d.ts +27 -0
- package/lib/user-agent/response.js +27 -0
- package/lib/user-agent/response.js.map +1 -1
- package/lib/user-agent/transport/http.d.ts +12 -0
- package/lib/user-agent/transport/http.js +12 -0
- package/lib/user-agent/transport/http.js.map +1 -1
- package/lib/user-agent/transport/https.d.ts +3 -0
- package/lib/user-agent/transport/https.js +3 -0
- package/lib/user-agent/transport/https.js.map +1 -1
- package/lib/user-agent/transport/ws.d.ts +6 -0
- package/lib/user-agent/transport/ws.js +6 -0
- package/lib/user-agent/transport/ws.js.map +1 -1
- package/lib/user-agent.d.ts +1 -1
- package/lib/user-agent.js +10 -2
- package/lib/user-agent.js.map +1 -1
- package/lib/util.d.ts +31 -1
- package/lib/util.js +30 -0
- package/lib/util.js.map +1 -1
- package/lib/validator/result.d.ts +9 -0
- package/lib/validator/result.js +3 -0
- package/lib/validator/result.js.map +1 -1
- package/lib/validator.d.ts +9 -0
- package/lib/validator.js +9 -0
- package/lib/validator.js.map +1 -1
- package/lib/websocket.d.ts +18 -0
- package/lib/websocket.js +12 -0
- package/lib/websocket.js.map +1 -1
- package/package.json +2 -2
- package/vendor/views/mojo/debug.html.mt +1 -1
- package/vendor/views/mojo/not-found.html.mt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-jar.js","sourceRoot":"","sources":["../../src/user-agent/cookie-jar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,MAAM,OAAO,SAAS;IAAtB;QACE,YAAO,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cookie-jar.js","sourceRoot":"","sources":["../../src/user-agent/cookie-jar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC;;GAEG;AACH,MAAM,OAAO,SAAS;IAAtB;QACE;;WAEG;QACH,YAAO,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IA2BlC,CAAC;IAzBC;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAQ;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,GAAQ,EAAE,MAAiB;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE;YACzE,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjD;IACH,CAAC;IAED,UAAU,CAAC,UAAe;QACxB,OAAO,MAAM,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
package/lib/user-agent/mock.d.ts
CHANGED
|
@@ -2,10 +2,25 @@ import type { App } from '../app.js';
|
|
|
2
2
|
import type { UserAgentOptions } from '../types.js';
|
|
3
3
|
import { Server } from '../server.js';
|
|
4
4
|
import { UserAgent } from '../user-agent.js';
|
|
5
|
+
/**
|
|
6
|
+
* Mock user agent class.
|
|
7
|
+
*/
|
|
5
8
|
export declare class MockUserAgent extends UserAgent {
|
|
9
|
+
/**
|
|
10
|
+
* Server to use for mock requests.
|
|
11
|
+
*/
|
|
6
12
|
server: Server | undefined;
|
|
7
13
|
constructor(options?: UserAgentOptions);
|
|
14
|
+
/**
|
|
15
|
+
* Create a new mock user agent.
|
|
16
|
+
*/
|
|
8
17
|
static newMockUserAgent(app: App, options?: UserAgentOptions): Promise<MockUserAgent>;
|
|
18
|
+
/**
|
|
19
|
+
* Start mock server.
|
|
20
|
+
*/
|
|
9
21
|
start(app: App): Promise<this>;
|
|
22
|
+
/**
|
|
23
|
+
* Stop mock server.
|
|
24
|
+
*/
|
|
10
25
|
stop(): Promise<void>;
|
|
11
26
|
}
|
package/lib/user-agent/mock.js
CHANGED
|
@@ -1,20 +1,36 @@
|
|
|
1
1
|
import { Server } from '../server.js';
|
|
2
2
|
import { UserAgent } from '../user-agent.js';
|
|
3
|
+
/**
|
|
4
|
+
* Mock user agent class.
|
|
5
|
+
*/
|
|
3
6
|
export class MockUserAgent extends UserAgent {
|
|
4
7
|
constructor(options) {
|
|
5
8
|
super(options);
|
|
9
|
+
/**
|
|
10
|
+
* Server to use for mock requests.
|
|
11
|
+
*/
|
|
12
|
+
this.server = undefined;
|
|
6
13
|
this.server = undefined;
|
|
7
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a new mock user agent.
|
|
17
|
+
*/
|
|
8
18
|
static async newMockUserAgent(app, options) {
|
|
9
19
|
return await new MockUserAgent(options).start(app);
|
|
10
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Start mock server.
|
|
23
|
+
*/
|
|
11
24
|
async start(app) {
|
|
12
25
|
const server = (this.server = new Server(app, { listen: ['http://*'], quiet: true }));
|
|
13
26
|
await server.start();
|
|
14
|
-
if (this.
|
|
15
|
-
this.
|
|
27
|
+
if (this.baseURL === undefined)
|
|
28
|
+
this.baseURL = server.urls[0];
|
|
16
29
|
return this;
|
|
17
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Stop mock server.
|
|
33
|
+
*/
|
|
18
34
|
async stop() {
|
|
19
35
|
this.destroy();
|
|
20
36
|
if (this.server === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/user-agent/mock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3C,MAAM,OAAO,aAAc,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/user-agent/mock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAM1C,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QANjB;;WAEG;QACH,WAAM,GAAuB,SAAS,CAAC;QAKrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAQ,EAAE,OAA0B;QAChE,OAAO,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACtC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
import { Body } from '../body.js';
|
|
2
|
+
/**
|
|
3
|
+
* User agent response class.
|
|
4
|
+
*/
|
|
2
5
|
export declare class UserAgentResponse extends Body {
|
|
6
|
+
/**
|
|
7
|
+
* Check if response has a `4xx` response status code.
|
|
8
|
+
*/
|
|
3
9
|
get isClientError(): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Check if response has a `4xx` or `5xx` response status code.
|
|
12
|
+
*/
|
|
4
13
|
get isError(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Check if response has a `3xx` response status code.
|
|
16
|
+
*/
|
|
5
17
|
get isRedirect(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if response has a `5xx` response status code.
|
|
20
|
+
*/
|
|
6
21
|
get isServerError(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if response has a `2xx` response status code.
|
|
24
|
+
*/
|
|
7
25
|
get isSuccess(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Response status code.
|
|
28
|
+
*/
|
|
8
29
|
get status(): number;
|
|
30
|
+
/**
|
|
31
|
+
* Get response message.
|
|
32
|
+
*/
|
|
9
33
|
get statusMessage(): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Get `Content-Type` header value.
|
|
36
|
+
*/
|
|
10
37
|
get type(): string | undefined;
|
|
11
38
|
}
|
|
@@ -1,30 +1,57 @@
|
|
|
1
1
|
import { Body } from '../body.js';
|
|
2
|
+
/**
|
|
3
|
+
* User agent response class.
|
|
4
|
+
*/
|
|
2
5
|
export class UserAgentResponse extends Body {
|
|
6
|
+
/**
|
|
7
|
+
* Check if response has a `4xx` response status code.
|
|
8
|
+
*/
|
|
3
9
|
get isClientError() {
|
|
4
10
|
const statusCode = this.status;
|
|
5
11
|
return statusCode >= 400 && statusCode <= 499;
|
|
6
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Check if response has a `4xx` or `5xx` response status code.
|
|
15
|
+
*/
|
|
7
16
|
get isError() {
|
|
8
17
|
return this.isClientError || this.isServerError;
|
|
9
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if response has a `3xx` response status code.
|
|
21
|
+
*/
|
|
10
22
|
get isRedirect() {
|
|
11
23
|
const statusCode = this.status;
|
|
12
24
|
return statusCode >= 300 && statusCode <= 399;
|
|
13
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Check if response has a `5xx` response status code.
|
|
28
|
+
*/
|
|
14
29
|
get isServerError() {
|
|
15
30
|
const statusCode = this.status;
|
|
16
31
|
return statusCode >= 500 && statusCode <= 599;
|
|
17
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if response has a `2xx` response status code.
|
|
35
|
+
*/
|
|
18
36
|
get isSuccess() {
|
|
19
37
|
const statusCode = this.status;
|
|
20
38
|
return statusCode >= 200 && statusCode <= 299;
|
|
21
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Response status code.
|
|
42
|
+
*/
|
|
22
43
|
get status() {
|
|
23
44
|
return this.raw.statusCode;
|
|
24
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Get response message.
|
|
48
|
+
*/
|
|
25
49
|
get statusMessage() {
|
|
26
50
|
return this.raw.statusMessage;
|
|
27
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Get `Content-Type` header value.
|
|
54
|
+
*/
|
|
28
55
|
get type() {
|
|
29
56
|
return this.headers['content-type'];
|
|
30
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/user-agent/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC,MAAM,OAAO,iBAAkB,SAAQ,IAAI;IACzC,IAAI,aAAa;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED,IAAI,aAAa;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;IACvC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/user-agent/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,IAAI;IACzC;;OAEG;IACH,IAAI,aAAa;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -3,9 +3,21 @@ import type { UserAgentRequestOptions } from '../../types.js';
|
|
|
3
3
|
import type { URL } from 'url';
|
|
4
4
|
import http from 'http';
|
|
5
5
|
import { UserAgentResponse } from '../response.js';
|
|
6
|
+
/**
|
|
7
|
+
* HTTP transport class.
|
|
8
|
+
*/
|
|
6
9
|
export declare class HTTPTransport {
|
|
10
|
+
/**
|
|
11
|
+
* HTTP agent.
|
|
12
|
+
*/
|
|
7
13
|
agent: http.Agent;
|
|
14
|
+
/**
|
|
15
|
+
* Destroy active keep-alive connections.
|
|
16
|
+
*/
|
|
8
17
|
destroy(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Perform HTTP request.
|
|
20
|
+
*/
|
|
9
21
|
request(config: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
10
22
|
_prepareOptions(config: UserAgentRequestOptions): http.RequestOptions;
|
|
11
23
|
_sendRequest(url: URL, options: http.RequestOptions, cb: (res: http.IncomingMessage) => void): http.ClientRequest;
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
import Stream from 'stream';
|
|
3
3
|
import { UserAgentResponse } from '../response.js';
|
|
4
|
+
/**
|
|
5
|
+
* HTTP transport class.
|
|
6
|
+
*/
|
|
4
7
|
export class HTTPTransport {
|
|
5
8
|
constructor() {
|
|
9
|
+
/**
|
|
10
|
+
* HTTP agent.
|
|
11
|
+
*/
|
|
6
12
|
this.agent = new http.Agent();
|
|
7
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Destroy active keep-alive connections.
|
|
16
|
+
*/
|
|
8
17
|
destroy() {
|
|
9
18
|
this.agent.destroy();
|
|
10
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Perform HTTP request.
|
|
22
|
+
*/
|
|
11
23
|
async request(config) {
|
|
12
24
|
const options = this._prepareOptions(config);
|
|
13
25
|
return await new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/user-agent/transport/http.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD,MAAM,OAAO,aAAa;IAA1B;QACE,UAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/user-agent/transport/http.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,aAAa;IAA1B;QACE;;WAEG;QACH,UAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAyC3B,CAAC;IAvCC;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAA+B;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAU,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE1B,IAAI,MAAM,CAAC,IAAI,YAAY,MAAM,EAAE;gBACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACtB;iBAAM,IAAI,MAAM,CAAC,IAAI,YAAY,MAAM,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;iBAAM;gBACL,GAAG,CAAC,GAAG,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,MAA+B;QAC7C,MAAM,OAAO,GAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC;QAC5G,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAQ,EAAE,OAA4B,EAAE,EAAuC;QAC1F,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -4,6 +4,9 @@ import type http from 'http';
|
|
|
4
4
|
import type { URL } from 'url';
|
|
5
5
|
import https from 'https';
|
|
6
6
|
import { HTTPTransport } from './http.js';
|
|
7
|
+
/**
|
|
8
|
+
* HTTPS transport class.
|
|
9
|
+
*/
|
|
7
10
|
export declare class HTTPSTransport extends HTTPTransport {
|
|
8
11
|
agent: https.Agent;
|
|
9
12
|
_prepareOptions(config: UserAgentRequestOptions): https.RequestOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"https.js","sourceRoot":"","sources":["../../../src/user-agent/transport/https.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,cAAe,SAAQ,aAAa;IAAjD;;QACE,UAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAa5B,CAAC;IAXC,eAAe,CAAC,MAA+B;QAC7C,MAAM,OAAO,GAAyB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAQ,EAAE,OAA6B,EAAE,EAAuC;QAC3F,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"https.js","sourceRoot":"","sources":["../../../src/user-agent/transport/https.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAAjD;;QACE,UAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAa5B,CAAC;IAXC,eAAe,CAAC,MAA+B;QAC7C,MAAM,OAAO,GAAyB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAQ,EAAE,OAA6B,EAAE,EAAuC;QAC3F,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { UserAgentWebSocketOptions } from '../../types.js';
|
|
2
2
|
import { WebSocket } from '../../websocket.js';
|
|
3
|
+
/**
|
|
4
|
+
* WebSocket transport class.
|
|
5
|
+
*/
|
|
3
6
|
export declare class WSTransport {
|
|
7
|
+
/**
|
|
8
|
+
* Establish WebSocket connection.
|
|
9
|
+
*/
|
|
4
10
|
connect(config: UserAgentWebSocketOptions): Promise<WebSocket>;
|
|
5
11
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { WebSocket } from '../../websocket.js';
|
|
2
2
|
import { UserAgentResponse } from '../response.js';
|
|
3
3
|
import WS from 'ws';
|
|
4
|
+
/**
|
|
5
|
+
* WebSocket transport class.
|
|
6
|
+
*/
|
|
4
7
|
export class WSTransport {
|
|
8
|
+
/**
|
|
9
|
+
* Establish WebSocket connection.
|
|
10
|
+
*/
|
|
5
11
|
async connect(config) {
|
|
6
12
|
const ws = new WS(config.url ?? '', config.protocols, { headers: config.headers });
|
|
7
13
|
return await new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/user-agent/transport/ws.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,OAAO,CAAC,MAAiC;QAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QACjF,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,SAA4B,CAAC;YACjC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEvB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,8FAA8F;gBAC9F,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,EAAC,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/user-agent/transport/ws.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAiC;QAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QACjF,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,SAA4B,CAAC;YACjC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEvB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,8FAA8F;gBAC9F,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,EAAC,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/lib/user-agent.d.ts
CHANGED
package/lib/user-agent.js
CHANGED
|
@@ -12,6 +12,10 @@ import yaml from 'js-yaml';
|
|
|
12
12
|
class UserAgent extends EventEmitter {
|
|
13
13
|
constructor(options = {}) {
|
|
14
14
|
super();
|
|
15
|
+
/**
|
|
16
|
+
* Base URL to be used to resolve all relative request URLs with.
|
|
17
|
+
*/
|
|
18
|
+
this.baseURL = undefined;
|
|
15
19
|
/**
|
|
16
20
|
* Cookie jar to use.
|
|
17
21
|
*/
|
|
@@ -24,11 +28,15 @@ class UserAgent extends EventEmitter {
|
|
|
24
28
|
* Transport backend to perform HTTPS requests with.
|
|
25
29
|
*/
|
|
26
30
|
this.httpsTransport = new HTTPSTransport();
|
|
31
|
+
/**
|
|
32
|
+
* Name of user agent to send with `User-Agent` header.
|
|
33
|
+
*/
|
|
34
|
+
this.name = undefined;
|
|
27
35
|
/**
|
|
28
36
|
* Transport backend to use for WebSocket connections.
|
|
29
37
|
*/
|
|
30
38
|
this.wsTransport = new WSTransport();
|
|
31
|
-
this.
|
|
39
|
+
this.baseURL = options.baseURL;
|
|
32
40
|
this.maxRedirects = options.maxRedirects ?? 0;
|
|
33
41
|
this.name = options.name;
|
|
34
42
|
}
|
|
@@ -139,7 +147,7 @@ class UserAgent extends EventEmitter {
|
|
|
139
147
|
}
|
|
140
148
|
async _filterSharedConfig(config) {
|
|
141
149
|
if (!(config.url instanceof URL))
|
|
142
|
-
config.url = new URL(config.url ?? '', this.
|
|
150
|
+
config.url = new URL(config.url ?? '', this.baseURL);
|
|
143
151
|
// Auth
|
|
144
152
|
const url = config.url;
|
|
145
153
|
if ((url.username !== '' || url.password !== '') && config.auth === undefined) {
|
package/lib/user-agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-agent.js","sourceRoot":"","sources":["../src/user-agent.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAC,SAAS,EAAC,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AACzD,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,SAAS,CAAC;AAkB3B;;GAEG;AACH,MAAM,SAAU,SAAQ,YAAY;IA8BlC,YAAY,UAA4B,EAAE;QACxC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"user-agent.js","sourceRoot":"","sources":["../src/user-agent.ts"],"names":[],"mappings":"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"}
|
package/lib/util.d.ts
CHANGED
|
@@ -2,16 +2,34 @@
|
|
|
2
2
|
import type { JSONValue } from './types.js';
|
|
3
3
|
import type { Mode } from 'fs';
|
|
4
4
|
import { setTimeout } from 'timers/promises';
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Capture STDOUT/STDERR output.
|
|
7
|
+
*/
|
|
8
|
+
export declare function captureOutput(fn: () => Promise<void> | void, options?: {
|
|
6
9
|
stderr?: boolean;
|
|
7
10
|
stdout?: boolean;
|
|
8
11
|
}): Promise<string | Buffer>;
|
|
12
|
+
/**
|
|
13
|
+
* Create directory for generator commands.
|
|
14
|
+
*/
|
|
9
15
|
export declare function cliCreateDir(path: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Create file for generator commands.
|
|
18
|
+
*/
|
|
10
19
|
export declare function cliCreateFile(path: string, template: string, values?: Record<string, any>, options?: {
|
|
11
20
|
chmod?: Mode;
|
|
12
21
|
}): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Fix package.json file for generator commands.
|
|
24
|
+
*/
|
|
13
25
|
export declare function cliFixPackage(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Decode URI component, but do not throw an exception if it fails.
|
|
28
|
+
*/
|
|
14
29
|
export declare function decodeURIComponentSafe(value: string): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Generate exception context.
|
|
32
|
+
*/
|
|
15
33
|
export declare function exceptionContext(error: Error, options?: {
|
|
16
34
|
lines?: number;
|
|
17
35
|
}): Promise<{
|
|
@@ -23,7 +41,19 @@ export declare function exceptionContext(error: Error, options?: {
|
|
|
23
41
|
code: string;
|
|
24
42
|
}>;
|
|
25
43
|
} | null>;
|
|
44
|
+
/**
|
|
45
|
+
* JSON pointers.
|
|
46
|
+
*/
|
|
26
47
|
export declare function jsonPointer(value: JSONValue, pointer: string): JSONValue | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Load modules.
|
|
50
|
+
*/
|
|
27
51
|
export declare function loadModules(dirs: string[]): Promise<Record<string, any>>;
|
|
52
|
+
/**
|
|
53
|
+
* Sleep asynchronously.
|
|
54
|
+
*/
|
|
28
55
|
export declare const sleep: typeof setTimeout;
|
|
56
|
+
/**
|
|
57
|
+
* Tablify data structure.
|
|
58
|
+
*/
|
|
29
59
|
export declare function tablify(rows?: string[][]): string;
|
package/lib/util.js
CHANGED
|
@@ -2,6 +2,9 @@ import { setTimeout } from 'timers/promises';
|
|
|
2
2
|
import Path from '@mojojs/path';
|
|
3
3
|
import Template from '@mojojs/template';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
|
+
/**
|
|
6
|
+
* Capture STDOUT/STDERR output.
|
|
7
|
+
*/
|
|
5
8
|
export async function captureOutput(fn, options = {}) {
|
|
6
9
|
if (options.stdout === undefined)
|
|
7
10
|
options.stdout = true;
|
|
@@ -31,6 +34,9 @@ export async function captureOutput(fn, options = {}) {
|
|
|
31
34
|
}
|
|
32
35
|
return output.length > 0 && Buffer.isBuffer(output[0]) ? Buffer.concat(output) : output.join('');
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Create directory for generator commands.
|
|
39
|
+
*/
|
|
34
40
|
export async function cliCreateDir(path) {
|
|
35
41
|
const dir = new Path(process.cwd(), ...path.split('/'));
|
|
36
42
|
const stdout = process.stdout;
|
|
@@ -41,6 +47,9 @@ export async function cliCreateDir(path) {
|
|
|
41
47
|
stdout.write(chalk.green(' [mkdir]') + ` ${dir.toString()}\n`);
|
|
42
48
|
await dir.mkdir({ recursive: true });
|
|
43
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Create file for generator commands.
|
|
52
|
+
*/
|
|
44
53
|
export async function cliCreateFile(path, template, values = {}, options = {}) {
|
|
45
54
|
const file = new Path(process.cwd(), ...path.split('/'));
|
|
46
55
|
const stdout = process.stdout;
|
|
@@ -55,6 +64,9 @@ export async function cliCreateFile(path, template, values = {}, options = {}) {
|
|
|
55
64
|
await file.chmod(options.chmod);
|
|
56
65
|
}
|
|
57
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Fix package.json file for generator commands.
|
|
69
|
+
*/
|
|
58
70
|
export async function cliFixPackage() {
|
|
59
71
|
const file = new Path(process.cwd(), 'package.json');
|
|
60
72
|
const stdout = process.stdout;
|
|
@@ -72,6 +84,9 @@ export async function cliFixPackage() {
|
|
|
72
84
|
stdout.write(chalk.green(' [fixed]') + ` ${file.toString()}\n`);
|
|
73
85
|
await file.writeFile(JSON.stringify(json, null, 2));
|
|
74
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Decode URI component, but do not throw an exception if it fails.
|
|
89
|
+
*/
|
|
75
90
|
export function decodeURIComponentSafe(value) {
|
|
76
91
|
try {
|
|
77
92
|
return decodeURIComponent(value);
|
|
@@ -80,6 +95,9 @@ export function decodeURIComponentSafe(value) {
|
|
|
80
95
|
return null;
|
|
81
96
|
}
|
|
82
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Generate exception context.
|
|
100
|
+
*/
|
|
83
101
|
export async function exceptionContext(error, options = {}) {
|
|
84
102
|
const stack = error.stack ?? '';
|
|
85
103
|
const match = stack.split('\n')[1].match(/^\s*at .+ \(([^)]+):(\d+):(\d+)\)\s*$/);
|
|
@@ -104,6 +122,9 @@ export async function exceptionContext(error, options = {}) {
|
|
|
104
122
|
}
|
|
105
123
|
return context;
|
|
106
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* JSON pointers.
|
|
127
|
+
*/
|
|
107
128
|
export function jsonPointer(value, pointer) {
|
|
108
129
|
if (pointer.startsWith('/') === false)
|
|
109
130
|
return pointer.length > 0 ? null : value;
|
|
@@ -122,6 +143,9 @@ export function jsonPointer(value, pointer) {
|
|
|
122
143
|
}
|
|
123
144
|
return data;
|
|
124
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Load modules.
|
|
148
|
+
*/
|
|
125
149
|
export async function loadModules(dirs) {
|
|
126
150
|
const modules = {};
|
|
127
151
|
for (const dir of dirs.map(path => new Path(path))) {
|
|
@@ -141,7 +165,13 @@ export async function loadModules(dirs) {
|
|
|
141
165
|
}
|
|
142
166
|
return modules;
|
|
143
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Sleep asynchronously.
|
|
170
|
+
*/
|
|
144
171
|
export const sleep = setTimeout;
|
|
172
|
+
/**
|
|
173
|
+
* Tablify data structure.
|
|
174
|
+
*/
|
|
145
175
|
export function tablify(rows = []) {
|
|
146
176
|
const spec = [];
|
|
147
177
|
const table = rows.map(row => {
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAA8B,EAC9B,UAAgD,EAAE;IAElD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAExD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH;IAED,IAAI;QACF,MAAM,EAAE,EAAE,CAAC;KACZ;YAAS;QACR,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO;KACR;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,QAAgB,EAChB,SAA8B,EAAE,EAChC,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO;KACR;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/F,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACjC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,EAAE;QACnC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO;KACR;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO;KACR;IAED,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI;QACF,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAY,EACZ,UAA4B,EAAE;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAClF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;IAEnC,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;IAC1E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,EAAE;QACvD,WAAW,EAAE,CAAC;QACd,IAAI,WAAW,GAAG,SAAS;YAAE,SAAS;QACtC,IAAI,WAAW,GAAG,OAAO;YAAE,MAAM;QAEjC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7C;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,OAAe;IAC3D,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhF,IAAI,IAAI,GAAQ,KAAK,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEnE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;YAC9E,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SACxB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAClE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;YAAE,SAAS;QAC7C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,EAAE;YACpD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK;gBAAE,SAAS;YACxD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,GAAG;iBACb,QAAQ,CAAC,IAAI,CAAC;iBACd,OAAO,EAAE;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;SACzC;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAmB,EAAE;IAC3C,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACxB,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YACvD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { ValidationError } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validation result class.
|
|
4
|
+
*/
|
|
2
5
|
export declare class ValidatorResult {
|
|
6
|
+
/**
|
|
7
|
+
* Validation errors.
|
|
8
|
+
*/
|
|
3
9
|
errors: ValidationError[];
|
|
10
|
+
/**
|
|
11
|
+
* Validation result.
|
|
12
|
+
*/
|
|
4
13
|
isValid: boolean;
|
|
5
14
|
constructor(isValid: boolean, errors: ValidationError[]);
|
|
6
15
|
}
|
package/lib/validator/result.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/validator/result.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/validator/result.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,eAAe;IAU1B,YAAY,OAAgB,EAAE,MAAyB;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
|
package/lib/validator.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import type { JSONObject, ValidatorFunction } from './types.js';
|
|
2
2
|
import Ajv from 'ajv';
|
|
3
|
+
/**
|
|
4
|
+
* JSON schema validator class.
|
|
5
|
+
*/
|
|
3
6
|
export declare class Validator {
|
|
4
7
|
_ajv: Ajv;
|
|
8
|
+
/**
|
|
9
|
+
* Add JSON schema.
|
|
10
|
+
*/
|
|
5
11
|
addSchema(schema: JSONObject, name?: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get JSON schema validation function.
|
|
14
|
+
*/
|
|
6
15
|
schema(schema: JSONObject | string): ValidatorFunction | null;
|
|
7
16
|
}
|
package/lib/validator.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { ValidatorResult } from './validator/result.js';
|
|
2
2
|
import Ajv from 'ajv';
|
|
3
|
+
/**
|
|
4
|
+
* JSON schema validator class.
|
|
5
|
+
*/
|
|
3
6
|
export class Validator {
|
|
4
7
|
constructor() {
|
|
5
8
|
this._ajv = new Ajv();
|
|
6
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Add JSON schema.
|
|
12
|
+
*/
|
|
7
13
|
addSchema(schema, name) {
|
|
8
14
|
this._ajv.addSchema(schema, name);
|
|
9
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Get JSON schema validation function.
|
|
18
|
+
*/
|
|
10
19
|
schema(schema) {
|
|
11
20
|
const ajv = this._ajv;
|
|
12
21
|
let validate;
|