@fc3/mmcadi 0.1.19 → 0.1.22
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/bin/lint +12 -0
- package/bin/test-one +32 -0
- package/dist/.last-compile-time +1 -1
- package/dist/.last-publish-time +1 -1
- package/dist/client.js +11 -1
- package/dist/src/client/enum/page-type.d.ts +2 -1
- package/dist/src/client/enum/page-type.js +1 -0
- package/dist/src/client/enum/page-type.js.map +1 -1
- package/dist/src/client/factory/page.js +3 -1
- package/dist/src/client/factory/page.js.map +1 -1
- package/dist/src/client/page/role.d.ts +5 -0
- package/dist/src/client/page/role.js +12 -0
- package/dist/src/client/page/role.js.map +1 -0
- package/dist/src/common/builder/block/folder.d.ts +2 -1
- package/dist/src/common/builder/block/folder.js.map +1 -1
- package/dist/src/common/builder/block/header.d.ts +5 -1
- package/dist/src/common/builder/block/header.js +16 -2
- package/dist/src/common/builder/block/header.js.map +1 -1
- package/dist/src/common/builder/block/parameter.d.ts +3 -0
- package/dist/src/common/builder/block/parameter.js +19 -0
- package/dist/src/common/builder/block/parameter.js.map +1 -0
- package/dist/src/constant/role/creator.d.ts +3 -0
- package/dist/src/constant/role/creator.js +17 -0
- package/dist/src/constant/role/creator.js.map +1 -0
- package/dist/src/constant/role/public.d.ts +3 -0
- package/dist/src/constant/role/public.js +17 -0
- package/dist/src/constant/role/public.js.map +1 -0
- package/dist/src/constant/role/unknown.d.ts +3 -0
- package/dist/src/constant/role/unknown.js +17 -0
- package/dist/src/constant/role/unknown.js.map +1 -0
- package/dist/src/enum/block-type.d.ts +2 -1
- package/dist/src/enum/block-type.js +1 -0
- package/dist/src/enum/block-type.js.map +1 -1
- package/dist/src/enum/default-role.d.ts +2 -1
- package/dist/src/enum/default-role.js +1 -0
- package/dist/src/enum/default-role.js.map +1 -1
- package/dist/src/enum/emoji.d.ts +1 -0
- package/dist/src/enum/emoji.js +1 -0
- package/dist/src/enum/emoji.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/interface/repository.d.ts +2 -1
- package/dist/src/interface/route.d.ts +7 -0
- package/dist/src/interface/{provider.js → route.js} +1 -1
- package/dist/src/interface/route.js.map +1 -0
- package/dist/src/lib/environment-mocker/index.d.ts +18 -0
- package/dist/src/lib/environment-mocker/index.js +40 -0
- package/dist/src/lib/environment-mocker/index.js.map +1 -0
- package/dist/src/lib/grammar/index.d.ts +3 -0
- package/dist/src/lib/grammar/index.js +7 -1
- package/dist/src/lib/grammar/index.js.map +1 -1
- package/dist/src/lib/grammar/utility/pluralize.d.ts +2 -0
- package/dist/src/lib/grammar/utility/pluralize.js +12 -0
- package/dist/src/lib/grammar/utility/pluralize.js.map +1 -0
- package/dist/src/lib/grammar/utility/singularize-or-pluralize.d.ts +2 -0
- package/dist/src/lib/grammar/utility/singularize-or-pluralize.js +12 -0
- package/dist/src/lib/grammar/utility/singularize-or-pluralize.js.map +1 -0
- package/dist/src/lib/grammar/utility/singularize.d.ts +2 -0
- package/dist/src/lib/grammar/utility/singularize.js +12 -0
- package/dist/src/lib/grammar/utility/singularize.js.map +1 -0
- package/dist/src/lib/log-capturer/index.d.ts +2 -0
- package/dist/src/lib/log-capturer/index.js +8 -0
- package/dist/src/lib/log-capturer/index.js.map +1 -0
- package/dist/src/lib/log-capturer/log-capturer.d.ts +19 -0
- package/dist/src/lib/log-capturer/log-capturer.js +39 -0
- package/dist/src/lib/log-capturer/log-capturer.js.map +1 -0
- package/dist/src/lib/string/create-slug.js +2 -1
- package/dist/src/lib/string/create-slug.js.map +1 -1
- package/dist/src/lib/test/utility/build-config.js +1 -1
- package/dist/src/lib/test/utility/build-config.js.map +1 -1
- package/dist/src/server/endpoint/abstract-page.js +19 -1
- package/dist/src/server/endpoint/abstract-page.js.map +1 -1
- package/dist/src/server/endpoint/account/get.d.ts +14 -0
- package/dist/src/server/endpoint/account/get.js +34 -0
- package/dist/src/server/endpoint/account/get.js.map +1 -0
- package/dist/src/server/endpoint/action/create.js +4 -29
- package/dist/src/server/endpoint/action/create.js.map +1 -1
- package/dist/src/server/endpoint/action/get.js +3 -3
- package/dist/src/server/endpoint/action/get.js.map +1 -1
- package/dist/src/server/endpoint/role/get.d.ts +14 -0
- package/dist/src/server/endpoint/role/get.js +43 -0
- package/dist/src/server/endpoint/role/get.js.map +1 -0
- package/dist/src/server/enum/custom-page-type.d.ts +3 -1
- package/dist/src/server/enum/custom-page-type.js +2 -0
- package/dist/src/server/enum/custom-page-type.js.map +1 -1
- package/dist/src/server/factory/block-result-serializer.js +3 -0
- package/dist/src/server/factory/block-result-serializer.js.map +1 -1
- package/dist/src/server/middleware/error-handler.js +11 -2
- package/dist/src/server/middleware/error-handler.js.map +1 -1
- package/dist/src/server/operation/find-account.d.ts +11 -0
- package/dist/src/server/operation/find-account.js +44 -0
- package/dist/src/server/operation/find-account.js.map +1 -0
- package/dist/src/server/operation/load-account.js +5 -8
- package/dist/src/server/operation/load-account.js.map +1 -1
- package/dist/src/server/operation/load-page.d.ts +6 -3
- package/dist/src/server/operation/load-page.js +218 -47
- package/dist/src/server/operation/load-page.js.map +1 -1
- package/dist/src/server/operation/store-files.d.ts +15 -0
- package/dist/src/server/operation/store-files.js +84 -0
- package/dist/src/server/operation/store-files.js.map +1 -0
- package/dist/src/server/repository/memory.d.ts +1 -0
- package/dist/src/server/repository/memory.js +9 -0
- package/dist/src/server/repository/memory.js.map +1 -1
- package/dist/src/server/result-serializer/account.d.ts +9 -0
- package/dist/src/server/result-serializer/account.js +26 -0
- package/dist/src/server/result-serializer/account.js.map +1 -0
- package/dist/src/server/result-serializer/action.d.ts +3 -2
- package/dist/src/server/result-serializer/action.js +27 -18
- package/dist/src/server/result-serializer/action.js.map +1 -1
- package/dist/src/server/result-serializer/base.js +22 -4
- package/dist/src/server/result-serializer/base.js.map +1 -1
- package/dist/src/server/result-serializer/block/folder.js +25 -9
- package/dist/src/server/result-serializer/block/folder.js.map +1 -1
- package/dist/src/server/result-serializer/block/header.js +6 -2
- package/dist/src/server/result-serializer/block/header.js.map +1 -1
- package/dist/src/server/result-serializer/block/image.js +6 -3
- package/dist/src/server/result-serializer/block/image.js.map +1 -1
- package/dist/src/server/result-serializer/block/parameter.d.ts +6 -0
- package/dist/src/server/result-serializer/block/parameter.js +13 -0
- package/dist/src/server/result-serializer/block/parameter.js.map +1 -0
- package/dist/src/server/result-serializer/block.d.ts +2 -1
- package/dist/src/server/result-serializer/block.js +32 -13
- package/dist/src/server/result-serializer/block.js.map +1 -1
- package/dist/src/server/result-serializer/page.d.ts +3 -1
- package/dist/src/server/result-serializer/page.js +13 -6
- package/dist/src/server/result-serializer/page.js.map +1 -1
- package/dist/src/server/result-serializer/role.d.ts +9 -0
- package/dist/src/server/result-serializer/role.js +26 -0
- package/dist/src/server/result-serializer/role.js.map +1 -0
- package/dist/src/server/type/multipart-file.d.ts +7 -0
- package/dist/src/server/type/multipart-file.js +3 -0
- package/dist/src/server/type/multipart-file.js.map +1 -0
- package/dist/src/server/utility/extract-role.d.ts +3 -0
- package/dist/src/server/utility/extract-role.js +19 -0
- package/dist/src/server/utility/extract-role.js.map +1 -0
- package/dist/src/server/utility/get-custom-page-type-for-path.js +12 -0
- package/dist/src/server/utility/get-custom-page-type-for-path.js.map +1 -1
- package/dist/src/server/utility/get-key-for-role.d.ts +3 -0
- package/dist/src/server/utility/get-key-for-role.js +10 -0
- package/dist/src/server/utility/get-key-for-role.js.map +1 -0
- package/dist/src/server/utility/get-thumbnail-filename.d.ts +2 -0
- package/dist/src/server/utility/get-thumbnail-filename.js +10 -0
- package/dist/src/server/utility/get-thumbnail-filename.js.map +1 -0
- package/dist/src/server/utility/get-url-for-role.d.ts +3 -0
- package/dist/src/server/utility/get-url-for-role.js +13 -0
- package/dist/src/server/utility/get-url-for-role.js.map +1 -0
- package/dist/src/server/utility/role-matches.d.ts +3 -0
- package/dist/src/server/utility/role-matches.js +13 -0
- package/dist/src/server/utility/role-matches.js.map +1 -0
- package/dist/src/server/utility/satisfies-role.d.ts +3 -0
- package/dist/src/server/utility/satisfies-role.js +21 -0
- package/dist/src/server/utility/satisfies-role.js.map +1 -0
- package/dist/src/server/utility/validate-page.js +6 -0
- package/dist/src/server/utility/validate-page.js.map +1 -1
- package/dist/src/server.js +8 -10
- package/dist/src/server.js.map +1 -1
- package/dist/src/type/account.d.ts +1 -1
- package/dist/src/type/block/parameter.d.ts +8 -0
- package/dist/src/type/block/parameter.js +3 -0
- package/dist/src/type/block/parameter.js.map +1 -0
- package/dist/src/type/block-metadata.d.ts +2 -1
- package/dist/src/type/color-value.d.ts +2 -0
- package/dist/src/type/color-value.js +3 -0
- package/dist/src/type/color-value.js.map +1 -0
- package/dist/src/type/request-context.d.ts +7 -0
- package/dist/src/type/request-context.js +3 -0
- package/dist/src/type/request-context.js.map +1 -0
- package/dist/src/type/role.d.ts +8 -0
- package/dist/src/type/role.js +3 -0
- package/dist/src/type/role.js.map +1 -0
- package/dist/src/type/runtime-config.d.ts +4 -3
- package/dist/src/type/server-settings.d.ts +4 -3
- package/dist/test/unit/lib/environment-mocker/environment-mocker.d.ts +1 -0
- package/dist/test/unit/lib/environment-mocker/environment-mocker.js +40 -0
- package/dist/test/unit/lib/environment-mocker/environment-mocker.js.map +1 -0
- package/dist/test/unit/lib/grammar/index.d.ts +1 -0
- package/dist/test/unit/lib/grammar/index.js +60 -0
- package/dist/test/unit/lib/grammar/index.js.map +1 -0
- package/dist/test/unit/lib/grammar/inflector.d.ts +1 -0
- package/dist/test/unit/lib/grammar/inflector.js +72 -0
- package/dist/test/unit/lib/grammar/inflector.js.map +1 -0
- package/dist/test/unit/lib/http/parser/url.d.ts +1 -0
- package/dist/test/unit/lib/http/parser/url.js +27 -0
- package/dist/test/unit/lib/http/parser/url.js.map +1 -0
- package/dist/test/unit/lib/http/response/outgoing.d.ts +1 -0
- package/dist/test/unit/lib/http/response/outgoing.js +38 -0
- package/dist/test/unit/lib/http/response/outgoing.js.map +1 -0
- package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.d.ts +1 -0
- package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js +21 -0
- package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js.map +1 -0
- package/dist/test/unit/lib/key-generator/key-generator.d.ts +1 -0
- package/dist/test/unit/lib/key-generator/key-generator.js +23 -0
- package/dist/test/unit/lib/key-generator/key-generator.js.map +1 -0
- package/dist/test/unit/lib/log-capturer/log-capturer.d.ts +1 -0
- package/dist/test/unit/lib/log-capturer/log-capturer.js +35 -0
- package/dist/test/unit/lib/log-capturer/log-capturer.js.map +1 -0
- package/dist/test/unit/lib/logger/formatter.d.ts +1 -0
- package/dist/test/unit/lib/logger/formatter.js +32 -0
- package/dist/test/unit/lib/logger/formatter.js.map +1 -0
- package/dist/test/unit/lib/logger/logger.d.ts +1 -0
- package/dist/test/unit/lib/logger/logger.js +194 -0
- package/dist/test/unit/lib/logger/logger.js.map +1 -0
- package/dist/test/unit/lib/operation/operation.d.ts +1 -0
- package/dist/test/unit/lib/operation/operation.js +128 -0
- package/dist/test/unit/lib/operation/operation.js.map +1 -0
- package/dist/test/unit/lib/promise-wrapper/promise-wrapper.d.ts +1 -0
- package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js +41 -0
- package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js.map +1 -0
- package/dist/test/unit/lib/string/create-slug.d.ts +1 -0
- package/dist/test/unit/lib/string/create-slug.js +15 -0
- package/dist/test/unit/lib/string/create-slug.js.map +1 -0
- package/dist/test/unit/lib/time/utility/sleep.d.ts +1 -0
- package/dist/test/unit/lib/time/utility/sleep.js +20 -0
- package/dist/test/unit/lib/time/utility/sleep.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -5
- package/dist/src/interface/provider.d.ts +0 -6
- package/dist/src/interface/provider.js.map +0 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import Account from './account';
|
|
2
|
+
import Role from './role';
|
|
2
3
|
type BlockMetadata = {
|
|
3
4
|
readonly page_path: string;
|
|
4
5
|
readonly editing: boolean;
|
|
5
6
|
readonly referrer_url: string | null;
|
|
6
7
|
readonly index_path: string;
|
|
7
8
|
readonly target_index_path: string | null;
|
|
8
|
-
readonly roles:
|
|
9
|
+
readonly roles: Role[];
|
|
9
10
|
readonly account: Account | null;
|
|
10
11
|
readonly creator_username: string;
|
|
11
12
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-value.js","sourceRoot":"","sources":["../../../src/type/color-value.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../../src/type/request-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../src/type/role.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Repository from './../interface/repository';
|
|
2
|
-
import
|
|
2
|
+
import Role from './role';
|
|
3
|
+
import Route from './../interface/route';
|
|
3
4
|
type RuntimeConfig = {
|
|
4
5
|
readonly public_directory: string;
|
|
5
6
|
readonly repository: Repository;
|
|
6
|
-
readonly roles:
|
|
7
|
-
readonly
|
|
7
|
+
readonly roles: Role[];
|
|
8
|
+
readonly routes: Route[];
|
|
8
9
|
};
|
|
9
10
|
export default RuntimeConfig;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import Repository from './../interface/repository';
|
|
2
|
-
import
|
|
2
|
+
import Route from './../interface/route';
|
|
3
|
+
import Role from './role';
|
|
3
4
|
type ServerSettings = {
|
|
4
5
|
readonly key?: string;
|
|
5
6
|
readonly cert?: string;
|
|
6
7
|
readonly hostname?: string;
|
|
7
8
|
readonly port?: number;
|
|
8
9
|
readonly public_directory?: string;
|
|
9
|
-
readonly
|
|
10
|
-
readonly roles?:
|
|
10
|
+
readonly routes?: Route[];
|
|
11
|
+
readonly roles?: Role[];
|
|
11
12
|
readonly repository?: Repository;
|
|
12
13
|
};
|
|
13
14
|
export default ServerSettings;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const environment_1 = require("./../../../../src/lib/environment/index.js");
|
|
9
|
+
const environment_mocker_1 = __importDefault(require("./../../../../src/lib/environment-mocker/index.js"));
|
|
10
|
+
(0, node_test_1.describe)('EnvironmentMocker', () => {
|
|
11
|
+
(0, node_test_1.describe)('mock()', () => {
|
|
12
|
+
(0, node_test_1.it)('overrides default environment type within function', () => {
|
|
13
|
+
environment_mocker_1.default.mock(environment_1.EnvironmentType.PRODUCTION, () => {
|
|
14
|
+
(0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
(0, node_test_1.it)('resets back to default environment type outside of function', () => {
|
|
18
|
+
const original_environment_type = process.env.NODE_ENV;
|
|
19
|
+
environment_mocker_1.default.mock(environment_1.EnvironmentType.PRODUCTION, () => {
|
|
20
|
+
(0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
|
|
21
|
+
});
|
|
22
|
+
(0, node_assert_1.strictEqual)(process.env.NODE_ENV, original_environment_type);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
(0, node_test_1.describe)('mockAsync()', () => {
|
|
26
|
+
(0, node_test_1.it)('overrides default environment type within function', async () => {
|
|
27
|
+
await environment_mocker_1.default.mockAsync(environment_1.EnvironmentType.PRODUCTION, async () => {
|
|
28
|
+
(0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
(0, node_test_1.it)('resets back to default environment type outside of function', async () => {
|
|
32
|
+
const original_environment_type = process.env.NODE_ENV;
|
|
33
|
+
await environment_mocker_1.default.mockAsync(environment_1.EnvironmentType.PRODUCTION, () => {
|
|
34
|
+
return Promise.resolve();
|
|
35
|
+
});
|
|
36
|
+
(0, node_assert_1.strictEqual)(process.env.NODE_ENV, original_environment_type);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=environment-mocker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-mocker.js","sourceRoot":"","sources":["../../../../../test/unit/lib/environment-mocker/environment-mocker.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,iDAAgD;AAChD,gFAAuD;AAEvD,IAAA,oBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,IAAA,oBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBACvD,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,cAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEvD,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBACvD,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,oBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,IAAA,cAAE,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,4BAAiB,CAAC,SAAS,CAChC,6BAAe,CAAC,UAAU,EAC1B,KAAK,IAAI,EAAE;gBACV,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAA,cAAE,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEvD,MAAM,4BAAiB,CAAC,SAAS,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_test_1 = require("node:test");
|
|
4
|
+
const node_assert_1 = require("node:assert");
|
|
5
|
+
const grammar_1 = require("./../../../../src/lib/grammar/index.js");
|
|
6
|
+
(0, node_test_1.describe)('singularize()', () => {
|
|
7
|
+
(0, node_test_1.it)('returns the expected form for a generic noun', () => {
|
|
8
|
+
const result = (0, grammar_1.singularize)('preferences');
|
|
9
|
+
(0, node_assert_1.strictEqual)(result, 'preference');
|
|
10
|
+
});
|
|
11
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ies', () => {
|
|
12
|
+
const result = (0, grammar_1.singularize)('parties');
|
|
13
|
+
(0, node_assert_1.strictEqual)(result, 'party');
|
|
14
|
+
});
|
|
15
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -i', () => {
|
|
16
|
+
const result = (0, grammar_1.singularize)('octopi');
|
|
17
|
+
(0, node_assert_1.strictEqual)(result, 'octopus');
|
|
18
|
+
});
|
|
19
|
+
(0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
|
|
20
|
+
const result = (0, grammar_1.singularize)('loot');
|
|
21
|
+
(0, node_assert_1.strictEqual)(result, 'loot');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
(0, node_test_1.describe)('pluralize()', () => {
|
|
25
|
+
(0, node_test_1.it)('returns the expected form for a generic noun', () => {
|
|
26
|
+
const result = (0, grammar_1.pluralize)('preference');
|
|
27
|
+
(0, node_assert_1.strictEqual)(result, 'preferences');
|
|
28
|
+
});
|
|
29
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -y', () => {
|
|
30
|
+
const result = (0, grammar_1.pluralize)('party');
|
|
31
|
+
(0, node_assert_1.strictEqual)(result, 'parties');
|
|
32
|
+
});
|
|
33
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -us', () => {
|
|
34
|
+
const result = (0, grammar_1.pluralize)('octopus');
|
|
35
|
+
(0, node_assert_1.strictEqual)(result, 'octopi');
|
|
36
|
+
});
|
|
37
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ch', () => {
|
|
38
|
+
const result = (0, grammar_1.pluralize)('church');
|
|
39
|
+
(0, node_assert_1.strictEqual)(result, 'churches');
|
|
40
|
+
});
|
|
41
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ss', () => {
|
|
42
|
+
const result = (0, grammar_1.pluralize)('mass');
|
|
43
|
+
(0, node_assert_1.strictEqual)(result, 'masses');
|
|
44
|
+
});
|
|
45
|
+
(0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
|
|
46
|
+
const result = (0, grammar_1.pluralize)('loot');
|
|
47
|
+
(0, node_assert_1.strictEqual)(result, 'loot');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
(0, node_test_1.describe)('singularizeOrPluralize()', () => {
|
|
51
|
+
(0, node_test_1.it)('returns the expected form for a single instance', () => {
|
|
52
|
+
const result = (0, grammar_1.singularizeOrPluralize)(1, 'account');
|
|
53
|
+
(0, node_assert_1.strictEqual)(result, '1 account');
|
|
54
|
+
});
|
|
55
|
+
(0, node_test_1.it)('returns the expected form for multiple instances', () => {
|
|
56
|
+
const result = (0, grammar_1.singularizeOrPluralize)(2, 'account');
|
|
57
|
+
(0, node_assert_1.strictEqual)(result, '2 accounts');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../test/unit/lib/grammar/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_test_1 = require("node:test");
|
|
4
|
+
const node_assert_1 = require("node:assert");
|
|
5
|
+
const grammar_1 = require("./../../../../src/lib/grammar/index.js");
|
|
6
|
+
function singularize(word) {
|
|
7
|
+
const inflector = new grammar_1.NounInflector();
|
|
8
|
+
return inflector.singularize(word);
|
|
9
|
+
}
|
|
10
|
+
function pluralize(word) {
|
|
11
|
+
const inflector = new grammar_1.NounInflector();
|
|
12
|
+
return inflector.pluralize(word);
|
|
13
|
+
}
|
|
14
|
+
function singularizeOrPluralize(count, word) {
|
|
15
|
+
const inflector = new grammar_1.NounInflector();
|
|
16
|
+
return inflector.singularizeOrPluralize(count, word);
|
|
17
|
+
}
|
|
18
|
+
(0, node_test_1.describe)('singularize()', () => {
|
|
19
|
+
(0, node_test_1.it)('returns the expected form for a generic noun', () => {
|
|
20
|
+
const result = singularize('preferences');
|
|
21
|
+
(0, node_assert_1.strictEqual)(result, 'preference');
|
|
22
|
+
});
|
|
23
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ies', () => {
|
|
24
|
+
const result = singularize('parties');
|
|
25
|
+
(0, node_assert_1.strictEqual)(result, 'party');
|
|
26
|
+
});
|
|
27
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -i', () => {
|
|
28
|
+
const result = singularize('octopi');
|
|
29
|
+
(0, node_assert_1.strictEqual)(result, 'octopus');
|
|
30
|
+
});
|
|
31
|
+
(0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
|
|
32
|
+
const result = singularize('loot');
|
|
33
|
+
(0, node_assert_1.strictEqual)(result, 'loot');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
(0, node_test_1.describe)('pluralize()', () => {
|
|
37
|
+
(0, node_test_1.it)('returns the expected form for a generic noun', () => {
|
|
38
|
+
const result = pluralize('preference');
|
|
39
|
+
(0, node_assert_1.strictEqual)(result, 'preferences');
|
|
40
|
+
});
|
|
41
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -y', () => {
|
|
42
|
+
const result = pluralize('party');
|
|
43
|
+
(0, node_assert_1.strictEqual)(result, 'parties');
|
|
44
|
+
});
|
|
45
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -us', () => {
|
|
46
|
+
const result = pluralize('octopus');
|
|
47
|
+
(0, node_assert_1.strictEqual)(result, 'octopi');
|
|
48
|
+
});
|
|
49
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ch', () => {
|
|
50
|
+
const result = pluralize('church');
|
|
51
|
+
(0, node_assert_1.strictEqual)(result, 'churches');
|
|
52
|
+
});
|
|
53
|
+
(0, node_test_1.it)('returns the expected form for a noun ending in -ss', () => {
|
|
54
|
+
const result = pluralize('mass');
|
|
55
|
+
(0, node_assert_1.strictEqual)(result, 'masses');
|
|
56
|
+
});
|
|
57
|
+
(0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
|
|
58
|
+
const result = pluralize('loot');
|
|
59
|
+
(0, node_assert_1.strictEqual)(result, 'loot');
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
(0, node_test_1.describe)('singularizeOrPluralize()', () => {
|
|
63
|
+
(0, node_test_1.it)('returns the expected form for a single instance', () => {
|
|
64
|
+
const result = singularizeOrPluralize(1, 'account');
|
|
65
|
+
(0, node_assert_1.strictEqual)(result, '1 account');
|
|
66
|
+
});
|
|
67
|
+
(0, node_test_1.it)('returns the expected form for multiple instances', () => {
|
|
68
|
+
const result = singularizeOrPluralize(2, 'account');
|
|
69
|
+
(0, node_assert_1.strictEqual)(result, '2 accounts');
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=inflector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inflector.js","sourceRoot":"","sources":["../../../../../test/unit/lib/grammar/inflector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const network_1 = require("./../../../../../src/lib/network/index.js");
|
|
9
|
+
const url_1 = __importDefault(require("./../../../../../src/lib/http/parser/url.js"));
|
|
10
|
+
(0, node_test_1.describe)('UrlParser', () => {
|
|
11
|
+
(0, node_test_1.describe)('parse()', () => {
|
|
12
|
+
(0, node_test_1.describe)('when given a fully qualified url', () => {
|
|
13
|
+
(0, node_test_1.it)('returns expected url data', () => {
|
|
14
|
+
const url = 'https://foobar.com:1234/baz/wat/?bam=ay&foo=123#blah!';
|
|
15
|
+
const parser = new url_1.default(url);
|
|
16
|
+
const parsed_url = parser.parse();
|
|
17
|
+
(0, node_assert_1.deepEqual)(parsed_url, {
|
|
18
|
+
protocol: network_1.NetworkProtocol.HTTPS,
|
|
19
|
+
hostname: 'foobar.com',
|
|
20
|
+
port: 1234,
|
|
21
|
+
path: '/baz/wat/?bam=ay&foo=123#blah!'
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/parser/url.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAsC;AAEtC,yCAA4C;AAE5C,8DAA4C;AAE5C,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;QACxB,IAAA,oBAAQ,EAAC,kCAAkC,EAAE,GAAG,EAAE;YACjD,IAAA,cAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,uDAAuD,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,aAAS,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;gBAElC,IAAA,uBAAS,EAAC,UAAU,EAAE;oBACrB,QAAQ,EAAE,yBAAe,CAAC,KAAK;oBAC/B,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,gCAAgC;iBACtC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const http_1 = __importDefault(require("http"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
|
+
const node_assert_1 = require("node:assert");
|
|
9
|
+
const errors_1 = require("./../../../../../src/lib/errors/index.js");
|
|
10
|
+
const http_2 = require("./../../../../../src/lib/http/index.js");
|
|
11
|
+
const test_1 = require("./../../../../../src/lib/test/index.js");
|
|
12
|
+
(0, node_test_1.describe)('.error()', () => {
|
|
13
|
+
(0, node_test_1.it)('sets the expected status code and message on the response', async () => {
|
|
14
|
+
const execution_context = (0, test_1.buildExecutionContext)();
|
|
15
|
+
const server = http_1.default.createServer((_native_request, native_response) => {
|
|
16
|
+
const response = new http_2.OutgoingResponse(native_response);
|
|
17
|
+
response.setExecutionContext(execution_context);
|
|
18
|
+
const error = new errors_1.NotFoundError('Unable to find the specified widget');
|
|
19
|
+
response.error(error);
|
|
20
|
+
});
|
|
21
|
+
server.listen(3341);
|
|
22
|
+
const outgoing_request = new http_2.OutgoingRequest('http://localhost:3341', execution_context);
|
|
23
|
+
try {
|
|
24
|
+
await outgoing_request.get();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (!(error instanceof errors_1.NotFoundError)) {
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
(0, node_assert_1.strictEqual)(error.message, 'Unable to find the specified widget');
|
|
31
|
+
}
|
|
32
|
+
const response = outgoing_request.getResponse();
|
|
33
|
+
const status_code = response.getStatusCode();
|
|
34
|
+
(0, node_assert_1.strictEqual)(status_code, http_2.StatusCode.FILE_NOT_FOUND);
|
|
35
|
+
server.close();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=outgoing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outgoing.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/response/outgoing.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,yCAAuC;AACvC,6CAAwC;AAExC,uCAAyC;AAEzC,mCAAuE;AACvE,mCAA+C;AAE/C,IAAA,oBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACzB,IAAA,cAAE,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,GAAE,CAAC;QAElD,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE;YACrE,MAAM,QAAQ,GAAG,IAAI,uBAAgB,CAAC,eAAe,CAAC,CAAC;YAEvD,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAEhD,MAAM,KAAK,GAAG,IAAI,sBAAa,CAAC,qCAAqC,CAAC,CAAC;YAEvE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,gBAAgB,GAAG,IAAI,sBAAe,CAC3C,uBAAuB,EACvB,iBAAiB,CACjB,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,KAAK,YAAY,sBAAa,CAAC,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACb,CAAC;YAED,IAAA,yBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE7C,IAAA,yBAAW,EAAC,WAAW,EAAE,iBAAU,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const errors_1 = require("./../../../../../src/lib/errors/index.js");
|
|
9
|
+
const http_1 = require("./../../../../../src/lib/http/index.js");
|
|
10
|
+
const get_status_code_for_error_type_1 = __importDefault(require("./../../../../../src/lib/http/utility/get-status-code-for-error-type.js"));
|
|
11
|
+
const ALL_STATUS_CODES = Object.values(http_1.StatusCode);
|
|
12
|
+
(0, node_test_1.describe)('getStatusCodeForErrorType()', () => {
|
|
13
|
+
(0, node_test_1.it)('returns status codes for all error types', () => {
|
|
14
|
+
Object.values(errors_1.ErrorType).forEach((error_type) => {
|
|
15
|
+
const status_code = (0, get_status_code_for_error_type_1.default)(error_type);
|
|
16
|
+
const exists = ALL_STATUS_CODES.includes(status_code);
|
|
17
|
+
(0, node_assert_1.strictEqual)(exists, true);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=get-status-code-for-error-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-status-code-for-error-type.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/utility/get-status-code-for-error-type.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,uCAAqC;AAErC,mCAAoC;AACpC,qHAAwF;AAExF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAU,CAAC,CAAC;AAEnD,IAAA,oBAAQ,EAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,IAAA,cAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,MAAM,CAAC,kBAAS,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,MAAM,WAAW,GAAG,IAAA,wCAAyB,EAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEtD,IAAA,yBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const key_generator_1 = __importDefault(require("./../../../../src/lib/key-generator/index.js"));
|
|
9
|
+
(0, node_test_1.describe)('.generateToken()', () => {
|
|
10
|
+
(0, node_test_1.it)('returns a string of the expected length', () => {
|
|
11
|
+
const token = key_generator_1.default.generateToken();
|
|
12
|
+
(0, node_assert_1.strictEqual)(token.length, 13);
|
|
13
|
+
});
|
|
14
|
+
(0, node_test_1.it)('returns different strings every time', () => {
|
|
15
|
+
const seen = [];
|
|
16
|
+
while (seen.length < 1000) {
|
|
17
|
+
const token = key_generator_1.default.generateToken();
|
|
18
|
+
(0, node_assert_1.strictEqual)(seen.includes(token), false);
|
|
19
|
+
seen.push(token);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=key-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-generator.js","sourceRoot":"","sources":["../../../../../test/unit/lib/key-generator/key-generator.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,sEAA6C;AAE7C,IAAA,oBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,uBAAY,CAAC,aAAa,EAAE,CAAC;QAE3C,IAAA,yBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,uBAAY,CAAC,aAAa,EAAE,CAAC;YAE3C,IAAA,yBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const promise_wrapper_1 = __importDefault(require("./../../../../src/lib/promise-wrapper/index.js"));
|
|
9
|
+
const log_capturer_1 = __importDefault(require("./../../../../src/lib/log-capturer/index.js"));
|
|
10
|
+
(0, node_test_1.describe)('LogCapturer', () => {
|
|
11
|
+
(0, node_test_1.describe)('capture()', () => {
|
|
12
|
+
(0, node_test_1.it)('returns expected output', () => {
|
|
13
|
+
const message = 'A user-defined message';
|
|
14
|
+
const output = log_capturer_1.default.capture(() => {
|
|
15
|
+
process.stdout.write(message);
|
|
16
|
+
});
|
|
17
|
+
(0, node_assert_1.match)(output, new RegExp(message));
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
(0, node_test_1.describe)('captureAsync()', () => {
|
|
21
|
+
(0, node_test_1.it)('resolves with expected output', async () => {
|
|
22
|
+
const message = 'A user-defined message';
|
|
23
|
+
const output = await log_capturer_1.default.captureAsync(() => {
|
|
24
|
+
const promise_wrapper = new promise_wrapper_1.default();
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
process.stdout.write(message);
|
|
27
|
+
promise_wrapper.resolve();
|
|
28
|
+
}, 0);
|
|
29
|
+
return promise_wrapper.getPromise();
|
|
30
|
+
});
|
|
31
|
+
(0, node_assert_1.match)(output, new RegExp(message));
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=log-capturer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-capturer.js","sourceRoot":"","sources":["../../../../../test/unit/lib/log-capturer/log-capturer.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAkC;AAElC,0EAAiD;AACjD,oEAA2C;AAE3C,IAAA,oBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;QAC1B,IAAA,cAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YAClC,MAAM,OAAO,GAAG,wBAAwB,CAAC;YAEzC,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAA,mBAAK,EAAC,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,oBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,IAAA,cAAE,EAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,wBAAwB,CAAC;YAEzC,MAAM,MAAM,GAAG,MAAM,sBAAW,CAAC,YAAY,CAAC,GAAG,EAAE;gBAClD,MAAM,eAAe,GAAG,IAAI,yBAAc,EAAE,CAAC;gBAE7C,UAAU,CAAC,GAAG,EAAE;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC9B,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,OAAO,eAAe,CAAC,UAAU,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,IAAA,mBAAK,EAAC,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_test_1 = require("node:test");
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
|
+
const logger_1 = require("./../../../../src/lib/logger/index.js");
|
|
9
|
+
const formatter_1 = __importDefault(require("./../../../../src/lib/logger/formatter.js"));
|
|
10
|
+
(0, node_test_1.describe)('.format()', () => {
|
|
11
|
+
(0, node_test_1.it)('produces expected output for success log level', () => {
|
|
12
|
+
const formatter = new formatter_1.default('winds be at your back', logger_1.LogLevel.SUCCESS);
|
|
13
|
+
const output = formatter.format();
|
|
14
|
+
(0, node_assert_1.strictEqual)(output, '\x1b[32mwinds be at your back\x1b[39;49m');
|
|
15
|
+
});
|
|
16
|
+
(0, node_test_1.it)('produces expected output for error log level', () => {
|
|
17
|
+
const formatter = new formatter_1.default('winds be at your back', logger_1.LogLevel.ERROR);
|
|
18
|
+
const output = formatter.format();
|
|
19
|
+
(0, node_assert_1.strictEqual)(output, '\x1b[31mwinds be at your back\x1b[39;49m');
|
|
20
|
+
});
|
|
21
|
+
(0, node_test_1.it)('produces expected output for warning log level', () => {
|
|
22
|
+
const formatter = new formatter_1.default('winds be at your back', logger_1.LogLevel.WARNING);
|
|
23
|
+
const output = formatter.format();
|
|
24
|
+
(0, node_assert_1.strictEqual)(output, '\x1b[33mwinds be at your back\x1b[39;49m');
|
|
25
|
+
});
|
|
26
|
+
(0, node_test_1.it)('produces expected output for info log level', () => {
|
|
27
|
+
const formatter = new formatter_1.default('winds be at your back', logger_1.LogLevel.INFO);
|
|
28
|
+
const output = formatter.format();
|
|
29
|
+
(0, node_assert_1.strictEqual)(output, 'winds be at your back');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../../../test/unit/lib/logger/formatter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,uCAAoC;AACpC,qEAAgD;AAEhD,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,IAAA,cAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG,IAAI,mBAAY,CACjC,uBAAuB,EACvB,iBAAQ,CAAC,OAAO,CAChB,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAElC,IAAA,yBAAW,EAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACvD,MAAM,SAAS,GAAG,IAAI,mBAAY,CAAC,uBAAuB,EAAE,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAElC,IAAA,yBAAW,EAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG,IAAI,mBAAY,CACjC,uBAAuB,EACvB,iBAAQ,CAAC,OAAO,CAChB,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAElC,IAAA,yBAAW,EAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG,IAAI,mBAAY,CAAC,uBAAuB,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAElC,IAAA,yBAAW,EAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|