@fc3/mmcadi 0.1.20 → 0.1.23
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 +264 -47
- package/dist/src/client/enum/page-type.d.ts +5 -1
- package/dist/src/client/enum/page-type.js +4 -0
- package/dist/src/client/enum/page-type.js.map +1 -1
- package/dist/src/client/factory/page.js +9 -1
- package/dist/src/client/factory/page.js.map +1 -1
- package/dist/src/client/page/confirm-hide-block.d.ts +7 -0
- package/dist/src/client/page/confirm-hide-block.js +28 -0
- package/dist/src/client/page/confirm-hide-block.js.map +1 -0
- package/dist/src/client/page/history.d.ts +16 -0
- package/dist/src/client/page/history.js +126 -0
- package/dist/src/client/page/history.js.map +1 -0
- 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/client/page/select-block-destination.d.ts +5 -0
- package/dist/src/client/page/select-block-destination.js +12 -0
- package/dist/src/client/page/select-block-destination.js.map +1 -0
- package/dist/src/client/page/view-custom.d.ts +3 -1
- package/dist/src/client/page/view-custom.js +60 -26
- package/dist/src/client/page/view-custom.js.map +1 -1
- package/dist/src/client/utility/get-block-activation-href.d.ts +2 -0
- package/dist/src/client/utility/get-block-activation-href.js +25 -0
- package/dist/src/client/utility/get-block-activation-href.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/action-type.d.ts +2 -0
- package/dist/src/enum/action-type.js +2 -0
- package/dist/src/enum/action-type.js.map +1 -1
- 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 +2 -0
- package/dist/src/enum/emoji.js +2 -0
- package/dist/src/enum/emoji.js.map +1 -1
- package/dist/src/enum/tool-type.d.ts +1 -0
- package/dist/src/enum/tool-type.js +1 -0
- package/dist/src/enum/tool-type.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/interface/route.d.ts +2 -1
- 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/server/http/endpoint.js +1 -1
- package/dist/src/lib/server/http/endpoint.js.map +1 -1
- package/dist/src/lib/string/create-slug.js +2 -1
- package/dist/src/lib/string/create-slug.js.map +1 -1
- package/dist/src/server/endpoint/abstract-page.d.ts +1 -1
- package/dist/src/server/endpoint/abstract-page.js +21 -3
- 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.d.ts +3 -1
- package/dist/src/server/endpoint/action/create.js +63 -52
- package/dist/src/server/endpoint/action/create.js.map +1 -1
- package/dist/src/server/endpoint/action/get.d.ts +3 -1
- package/dist/src/server/endpoint/action/get.js +47 -1
- package/dist/src/server/endpoint/action/get.js.map +1 -1
- package/dist/src/server/endpoint/history.d.ts +13 -0
- package/dist/src/server/endpoint/history.js +61 -0
- package/dist/src/server/endpoint/history.js.map +1 -0
- package/dist/src/server/endpoint/login.d.ts +1 -1
- package/dist/src/server/endpoint/login.js +1 -1
- package/dist/src/server/endpoint/login.js.map +1 -1
- package/dist/src/server/endpoint/logout.js +7 -2
- package/dist/src/server/endpoint/logout.js.map +1 -1
- package/dist/src/server/endpoint/month.d.ts +1 -1
- package/dist/src/server/endpoint/month.js +1 -1
- package/dist/src/server/endpoint/month.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/endpoint/settings/get.d.ts +1 -1
- package/dist/src/server/endpoint/settings/get.js +1 -1
- package/dist/src/server/endpoint/settings/get.js.map +1 -1
- package/dist/src/server/endpoint/week.d.ts +1 -1
- package/dist/src/server/endpoint/week.js +1 -1
- package/dist/src/server/endpoint/week.js.map +1 -1
- package/dist/src/server/endpoint/year.d.ts +1 -1
- package/dist/src/server/endpoint/year.js +1 -1
- package/dist/src/server/endpoint/year.js.map +1 -1
- 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.d.ts +1 -1
- package/dist/src/server/factory/block-result-serializer.js +16 -13
- package/dist/src/server/factory/block-result-serializer.js.map +1 -1
- package/dist/src/server/factory/block-serializer.d.ts +15 -0
- package/dist/src/server/factory/block-serializer.js +80 -0
- package/dist/src/server/factory/block-serializer.js.map +1 -0
- package/dist/src/server/middleware/error-handler.js +21 -6
- package/dist/src/server/middleware/error-handler.js.map +1 -1
- package/dist/src/server/operation/add-block.js +1 -0
- package/dist/src/server/operation/add-block.js.map +1 -1
- package/dist/src/server/operation/delete-block.d.ts +5 -3
- package/dist/src/server/operation/delete-block.js +30 -9
- package/dist/src/server/operation/delete-block.js.map +1 -1
- package/dist/src/server/operation/destroy-session.js +13 -1
- package/dist/src/server/operation/destroy-session.js.map +1 -1
- package/dist/src/server/operation/find-account.d.ts +1 -0
- package/dist/src/server/operation/find-account.js +12 -3
- package/dist/src/server/operation/find-account.js.map +1 -1
- package/dist/src/server/operation/hide-block.d.ts +14 -0
- package/dist/src/server/operation/hide-block.js +55 -0
- package/dist/src/server/operation/hide-block.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 +7 -4
- package/dist/src/server/operation/load-page.js +251 -74
- package/dist/src/server/operation/load-page.js.map +1 -1
- package/dist/src/server/operation/move-block.d.ts +16 -0
- package/dist/src/server/operation/move-block.js +101 -0
- package/dist/src/server/operation/move-block.js.map +1 -0
- package/dist/src/server/operation/store-file.d.ts +14 -0
- package/dist/src/server/operation/store-file.js +83 -0
- package/dist/src/server/operation/store-file.js.map +1 -0
- 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/operation/update-block.js +4 -4
- package/dist/src/server/operation/update-block.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 +2 -1
- 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 +2 -1
- package/dist/src/server/result-serializer/page.js +4 -4
- 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/serializer/action.d.ts +40 -0
- package/dist/src/server/serializer/action.js +940 -0
- package/dist/src/server/serializer/action.js.map +1 -0
- package/dist/src/server/serializer/base.d.ts +31 -0
- package/dist/src/server/serializer/base.js +1222 -0
- package/dist/src/server/serializer/base.js.map +1 -0
- package/dist/src/server/serializer/block/audio.d.ts +6 -0
- package/dist/src/server/serializer/block/audio.js +26 -0
- package/dist/src/server/serializer/block/audio.js.map +1 -0
- package/dist/src/server/serializer/block/background.d.ts +6 -0
- package/dist/src/server/serializer/block/background.js +22 -0
- package/dist/src/server/serializer/block/background.js.map +1 -0
- package/dist/src/server/serializer/block/calendar.d.ts +7 -0
- package/dist/src/server/serializer/block/calendar.js +140 -0
- package/dist/src/server/serializer/block/calendar.js.map +1 -0
- package/dist/src/server/serializer/block/directory.d.ts +7 -0
- package/dist/src/server/serializer/block/directory.js +53 -0
- package/dist/src/server/serializer/block/directory.js.map +1 -0
- package/dist/src/server/serializer/block/ephemeral.d.ts +6 -0
- package/dist/src/server/serializer/block/ephemeral.js +16 -0
- package/dist/src/server/serializer/block/ephemeral.js.map +1 -0
- package/dist/src/server/serializer/block/folder.d.ts +14 -0
- package/dist/src/server/serializer/block/folder.js +145 -0
- package/dist/src/server/serializer/block/folder.js.map +1 -0
- package/dist/src/server/serializer/block/header.d.ts +6 -0
- package/dist/src/server/serializer/block/header.js +35 -0
- package/dist/src/server/serializer/block/header.js.map +1 -0
- package/dist/src/server/serializer/block/image.d.ts +6 -0
- package/dist/src/server/serializer/block/image.js +45 -0
- package/dist/src/server/serializer/block/image.js.map +1 -0
- package/dist/src/server/serializer/block/link.d.ts +6 -0
- package/dist/src/server/serializer/block/link.js +39 -0
- package/dist/src/server/serializer/block/link.js.map +1 -0
- package/dist/src/server/serializer/block/list.d.ts +13 -0
- package/dist/src/server/serializer/block/list.js +113 -0
- package/dist/src/server/serializer/block/list.js.map +1 -0
- package/dist/src/server/serializer/block/multi-column.d.ts +6 -0
- package/dist/src/server/serializer/block/multi-column.js +78 -0
- package/dist/src/server/serializer/block/multi-column.js.map +1 -0
- package/dist/src/server/serializer/block/note.d.ts +6 -0
- package/dist/src/server/serializer/block/note.js +40 -0
- package/dist/src/server/serializer/block/note.js.map +1 -0
- package/dist/src/server/serializer/block/parameter.d.ts +6 -0
- package/dist/src/server/serializer/block/parameter.js +13 -0
- package/dist/src/server/serializer/block/parameter.js.map +1 -0
- package/dist/src/server/serializer/block/todo.d.ts +6 -0
- package/dist/src/server/serializer/block/todo.js +76 -0
- package/dist/src/server/serializer/block/todo.js.map +1 -0
- package/dist/src/server/serializer/block/whitespace.d.ts +6 -0
- package/dist/src/server/serializer/block/whitespace.js +17 -0
- package/dist/src/server/serializer/block/whitespace.js.map +1 -0
- package/dist/src/server/serializer/block.d.ts +27 -0
- package/dist/src/server/serializer/block.js +226 -0
- package/dist/src/server/serializer/block.js.map +1 -0
- package/dist/src/server/serializer/common/time-place-options.d.ts +2 -0
- package/dist/src/server/serializer/common/time-place-options.js +34 -0
- package/dist/src/server/serializer/common/time-place-options.js.map +1 -0
- package/dist/src/server/serializer/history.d.ts +19 -0
- package/dist/src/server/serializer/history.js +77 -0
- package/dist/src/server/serializer/history.js.map +1 -0
- package/dist/src/server/serializer/login.d.ts +12 -0
- package/dist/src/server/serializer/login.js +54 -0
- package/dist/src/server/serializer/login.js.map +1 -0
- package/dist/src/server/serializer/month.d.ts +10 -0
- package/dist/src/server/serializer/month.js +160 -0
- package/dist/src/server/serializer/month.js.map +1 -0
- package/dist/src/server/serializer/page.d.ts +47 -0
- package/dist/src/server/serializer/page.js +454 -0
- package/dist/src/server/serializer/page.js.map +1 -0
- package/dist/src/server/serializer/settings.d.ts +9 -0
- package/dist/src/server/serializer/settings.js +80 -0
- package/dist/src/server/serializer/settings.js.map +1 -0
- package/dist/src/server/serializer/week.d.ts +10 -0
- package/dist/src/server/serializer/week.js +175 -0
- package/dist/src/server/serializer/week.js.map +1 -0
- package/dist/src/server/serializer/year.d.ts +10 -0
- package/dist/src/server/serializer/year.js +142 -0
- package/dist/src/server/serializer/year.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-emoji-for-tool-type.js +1 -0
- package/dist/src/server/utility/get-emoji-for-tool-type.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.js +8 -8
- package/dist/src/server.js.map +1 -1
- package/dist/src/type/account-settings.d.ts +3 -2
- package/dist/src/type/account.d.ts +1 -1
- package/dist/src/type/action/hide-block.d.ts +9 -0
- package/dist/src/type/action/hide-block.js +3 -0
- package/dist/src/type/action/hide-block.js.map +1 -0
- package/dist/src/type/action/move-block.d.ts +10 -0
- package/dist/src/type/action/move-block.js +3 -0
- package/dist/src/type/action/move-block.js.map +1 -0
- package/dist/src/type/block/audio.d.ts +2 -0
- package/dist/src/type/block/image.d.ts +2 -0
- 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/block.d.ts +2 -2
- 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/history-item.d.ts +5 -0
- package/dist/src/type/history-item.js +3 -0
- package/dist/src/type/history-item.js.map +1 -0
- package/dist/src/type/page.d.ts +2 -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/{interface/provider.js → type/role.js} +1 -1
- package/dist/src/type/role.js.map +1 -0
- package/dist/src/type/runtime-config.d.ts +2 -1
- package/dist/src/type/server-settings.d.ts +2 -1
- 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/test/unit/server/operation/promote-block.js +11 -0
- package/dist/test/unit/server/operation/promote-block.js.map +1 -1
- 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
|
@@ -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 {};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const node_test_1 = require("node:test");
|
|
40
|
+
const node_assert_1 = require("node:assert");
|
|
41
|
+
const log_capturer_1 = __importDefault(require("./../../../../src/lib/log-capturer/index.js"));
|
|
42
|
+
const environment_1 = require("./../../../../src/lib/environment/index.js");
|
|
43
|
+
const environment_mocker_1 = __importDefault(require("./../../../../src/lib/environment-mocker/index.js"));
|
|
44
|
+
const logger_1 = __importStar(require("./../../../../src/lib/logger/index.js"));
|
|
45
|
+
function buildMockReporter() {
|
|
46
|
+
return {
|
|
47
|
+
notify(_key, _parameters) {
|
|
48
|
+
// Noop.
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
(0, node_test_1.describe)('.info()', () => {
|
|
53
|
+
(0, node_test_1.it)('logs to stdout with no coloration', () => {
|
|
54
|
+
const output = log_capturer_1.default.capture(() => {
|
|
55
|
+
new logger_1.default().info('Some message');
|
|
56
|
+
});
|
|
57
|
+
const expected_regex = /^\[[0-9]+\] Some message\n$/;
|
|
58
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, node_test_1.describe)('.warn()', () => {
|
|
62
|
+
(0, node_test_1.it)('logs to stdout with expected coloration', () => {
|
|
63
|
+
const output = log_capturer_1.default.capture(() => {
|
|
64
|
+
new logger_1.default().warn('Some message');
|
|
65
|
+
});
|
|
66
|
+
const expected_regex = /^\x1b\[33m\[[0-9]+\] Some message\u001b\[39;49m\n$/;
|
|
67
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
(0, node_test_1.describe)('.error()', () => {
|
|
71
|
+
(0, node_test_1.it)('logs to stdout with expected coloration', () => {
|
|
72
|
+
const output = log_capturer_1.default.capture(() => {
|
|
73
|
+
new logger_1.default().error('Some message');
|
|
74
|
+
});
|
|
75
|
+
const expected_regex = /^\x1b\[31m\[[0-9]+\] Some message\x1b\[39;49m\n$/;
|
|
76
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
(0, node_test_1.describe)('.success()', () => {
|
|
80
|
+
(0, node_test_1.it)('logs to stdout with expected coloration', () => {
|
|
81
|
+
const output = log_capturer_1.default.capture(() => {
|
|
82
|
+
new logger_1.default().success('Some message');
|
|
83
|
+
});
|
|
84
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] Some message\x1b\[39;49m\n$/;
|
|
85
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
(0, node_test_1.describe)('.writeMessage()', () => {
|
|
89
|
+
(0, node_test_1.it)('logs to stdout with expected coloration', () => {
|
|
90
|
+
const output = log_capturer_1.default.capture(() => {
|
|
91
|
+
new logger_1.default().success('Some message');
|
|
92
|
+
});
|
|
93
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] Some message\x1b\[39;49m\n$/;
|
|
94
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
95
|
+
});
|
|
96
|
+
(0, node_test_1.it)('trims surrounding whitespace from messages', () => {
|
|
97
|
+
const output = log_capturer_1.default.capture(() => {
|
|
98
|
+
new logger_1.default().success(`
|
|
99
|
+
Some message
|
|
100
|
+
`);
|
|
101
|
+
});
|
|
102
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] Some message\x1b\[39;49m\n$/;
|
|
103
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
104
|
+
});
|
|
105
|
+
(0, node_test_1.it)('includes unique id when present', () => {
|
|
106
|
+
const logger = new logger_1.default().setUniqueId('abcd1234');
|
|
107
|
+
const output = log_capturer_1.default.capture(() => {
|
|
108
|
+
logger.success('Some message');
|
|
109
|
+
});
|
|
110
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] \[abcd1234\] Some message\x1b\[39;49m\n$/;
|
|
111
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
112
|
+
});
|
|
113
|
+
(0, node_test_1.it)('includes remote address when present', () => {
|
|
114
|
+
const logger = new logger_1.default().setRemoteAddress('192.168.1.123');
|
|
115
|
+
const output = log_capturer_1.default.capture(() => {
|
|
116
|
+
logger.success('Some message');
|
|
117
|
+
});
|
|
118
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] \[192\.168\.1\.123\] Some message\x1b\[39;49m\n$/;
|
|
119
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
120
|
+
});
|
|
121
|
+
(0, node_test_1.it)('includes unique id when both unique id and remote address are present', () => {
|
|
122
|
+
const logger = new logger_1.default()
|
|
123
|
+
.setUniqueId('abcd1234')
|
|
124
|
+
.setRemoteAddress('192.168.1.123');
|
|
125
|
+
const output = log_capturer_1.default.capture(() => {
|
|
126
|
+
logger.success('Some message');
|
|
127
|
+
});
|
|
128
|
+
const expected_regex = /^\x1b\[32m\[[0-9]+\] \[abcd1234] Some message\x1b\[39;49m\n$/;
|
|
129
|
+
(0, node_assert_1.match)(output, expected_regex);
|
|
130
|
+
});
|
|
131
|
+
// Temporarily marking these as skipped. The reason these were logging as
|
|
132
|
+
// JSON was in order to feed them to auto-indexing platforms like Splunk.
|
|
133
|
+
// But we're not using any of those right now, so I just disabled the JSON
|
|
134
|
+
// style formatting in staging/production; the messages in prod look the
|
|
135
|
+
// same as they do in dev. At least for now.
|
|
136
|
+
node_test_1.it.skip('logs expected metadata in production', () => {
|
|
137
|
+
const unique_id = 'abcd1234';
|
|
138
|
+
const remote_address = '192.168.0.11';
|
|
139
|
+
const output = log_capturer_1.default.capture(() => {
|
|
140
|
+
environment_mocker_1.default.mock(environment_1.EnvironmentType.PRODUCTION, () => {
|
|
141
|
+
const logger = new logger_1.default()
|
|
142
|
+
.setUniqueId(unique_id)
|
|
143
|
+
.setRemoteAddress(remote_address)
|
|
144
|
+
.setOrigin('saffron.gg');
|
|
145
|
+
logger.writeMessage('This is a test message', logger_1.LogLevel.INFO);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
const message = JSON.parse(output.trim());
|
|
149
|
+
(0, node_assert_1.strictEqual)(message.body, 'This is a test message');
|
|
150
|
+
(0, node_assert_1.strictEqual)(message.unique_id, unique_id);
|
|
151
|
+
(0, node_assert_1.strictEqual)(message.remote_address, remote_address);
|
|
152
|
+
(0, node_assert_1.strictEqual)(message.log_level, logger_1.LogLevel.INFO);
|
|
153
|
+
(0, node_assert_1.strictEqual)(message.origin, 'saffron.gg');
|
|
154
|
+
});
|
|
155
|
+
node_test_1.it.skip('logs expected metadata in staging', () => {
|
|
156
|
+
const unique_id = 'abcd1234';
|
|
157
|
+
const remote_address = '192.168.0.11';
|
|
158
|
+
const output = log_capturer_1.default.capture(() => {
|
|
159
|
+
environment_mocker_1.default.mock(environment_1.EnvironmentType.STAGING, () => {
|
|
160
|
+
const logger = new logger_1.default()
|
|
161
|
+
.setUniqueId(unique_id)
|
|
162
|
+
.setRemoteAddress(remote_address)
|
|
163
|
+
.setOrigin('saffron.gg');
|
|
164
|
+
logger.writeMessage('This is a test message', logger_1.LogLevel.INFO);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
const message = JSON.parse(output.trim());
|
|
168
|
+
(0, node_assert_1.strictEqual)(message.body, 'This is a test message');
|
|
169
|
+
(0, node_assert_1.strictEqual)(message.unique_id, unique_id);
|
|
170
|
+
(0, node_assert_1.strictEqual)(message.remote_address, remote_address);
|
|
171
|
+
(0, node_assert_1.strictEqual)(message.log_level, logger_1.LogLevel.INFO);
|
|
172
|
+
(0, node_assert_1.strictEqual)(message.origin, 'saffron.gg');
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
(0, node_test_1.describe)('.setErrorReporter()', () => {
|
|
176
|
+
(0, node_test_1.it)('sets memoized error reporter instance', () => {
|
|
177
|
+
const reporter = buildMockReporter();
|
|
178
|
+
logger_1.default.setErrorReporter(reporter);
|
|
179
|
+
(0, node_assert_1.strictEqual)(logger_1.default.getErrorReporter(), reporter);
|
|
180
|
+
logger_1.default.setErrorReporter(undefined);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
(0, node_test_1.describe)('.hasErrorReporter()', () => {
|
|
184
|
+
(0, node_test_1.it)('returns true when error reporter has been set', () => {
|
|
185
|
+
const reporter = buildMockReporter();
|
|
186
|
+
logger_1.default.setErrorReporter(reporter);
|
|
187
|
+
(0, node_assert_1.strictEqual)(logger_1.default.hasErrorReporter(), true);
|
|
188
|
+
logger_1.default.setErrorReporter(undefined);
|
|
189
|
+
});
|
|
190
|
+
(0, node_test_1.it)('returns false when error reporter has not been set', () => {
|
|
191
|
+
(0, node_assert_1.strictEqual)(logger_1.default.hasErrorReporter(), false);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../test/unit/lib/logger/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAuC;AACvC,6CAA+C;AAE/C,oEAA2C;AAC3C,iDAAgD;AAChD,gFAAuD;AAEvD,qDAA4C;AAI5C,SAAS,iBAAiB;IACzB,OAAO;QACN,MAAM,CAAC,IAAY,EAAE,WAA4B;YAChD,QAAQ;QACT,CAAC;KACD,CAAC;AACH,CAAC;AAED,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACxB,IAAA,cAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,6BAA6B,CAAC;QAErD,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACxB,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,oDAAoD,CAAC;QAE5E,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACzB,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,kDAAkD,CAAC;QAE1E,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,kDAAkD,CAAC;QAE1E,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,kDAAkD,CAAC;QAE1E,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,gBAAM,EAAE,CAAC,OAAO,CAAC;;IAEpB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,kDAAkD,CAAC;QAE1E,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GACnB,+DAA+D,CAAC;QAEjE,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GACnB,uEAAuE,CAAC;QAEzE,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,uEAAuE,EAAE,GAAG,EAAE;QAChF,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE;aACzB,WAAW,CAAC,UAAU,CAAC;aACvB,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GACnB,8DAA8D,CAAC;QAEhE,IAAA,mBAAK,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,4CAA4C;IAC5C,cAAE,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,cAAc,GAAG,cAAc,CAAC;QAEtC,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBACvD,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE;qBACzB,WAAW,CAAC,SAAS,CAAC;qBACtB,gBAAgB,CAAC,cAAc,CAAC;qBAChC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAE1B,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1C,IAAA,yBAAW,EAAC,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACpD,IAAA,yBAAW,EAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAA,yBAAW,EAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACpD,IAAA,yBAAW,EAAC,OAAO,CAAC,SAAS,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,yBAAW,EAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,cAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,cAAc,GAAG,cAAc,CAAC;QAEtC,MAAM,MAAM,GAAG,sBAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpD,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE;qBACzB,WAAW,CAAC,SAAS,CAAC;qBACtB,gBAAgB,CAAC,cAAc,CAAC;qBAChC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAE1B,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1C,IAAA,yBAAW,EAAC,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACpD,IAAA,yBAAW,EAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAA,yBAAW,EAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACpD,IAAA,yBAAW,EAAC,OAAO,CAAC,SAAS,EAAE,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,yBAAW,EAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,IAAA,cAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAChD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QAErC,gBAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAA,yBAAW,EAAC,gBAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEjD,gBAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,IAAA,cAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACxD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QAErC,gBAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAA,yBAAW,EAAC,gBAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7C,gBAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,IAAA,yBAAW,EAAC,gBAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,128 @@
|
|
|
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 = __importDefault(require("node:assert"));
|
|
8
|
+
const log_capturer_1 = __importDefault(require("./../../../../src/lib/log-capturer/index.js"));
|
|
9
|
+
const operation_1 = __importDefault(require("./../../../../src/lib/operation/index.js"));
|
|
10
|
+
const test_1 = require("./../../../../src/lib/test/index.js");
|
|
11
|
+
(0, node_test_1.describe)('Operation', () => {
|
|
12
|
+
class MockOperation extends operation_1.default {
|
|
13
|
+
constructor(value, request_context) {
|
|
14
|
+
super(request_context);
|
|
15
|
+
this.value = value;
|
|
16
|
+
}
|
|
17
|
+
privilegedGetExecutionContext() {
|
|
18
|
+
return this.getExecutionContext();
|
|
19
|
+
}
|
|
20
|
+
privilegedGetSession() {
|
|
21
|
+
return this.getSession();
|
|
22
|
+
}
|
|
23
|
+
privilegedHasSession() {
|
|
24
|
+
return this.hasSession();
|
|
25
|
+
}
|
|
26
|
+
async performInternal() {
|
|
27
|
+
if (this.value) {
|
|
28
|
+
return this.value;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
throw new Error('Something strange happened');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
logRunning() {
|
|
35
|
+
this.getLogger().info(`
|
|
36
|
+
Started!
|
|
37
|
+
`);
|
|
38
|
+
}
|
|
39
|
+
logSuccess(result) {
|
|
40
|
+
this.getLogger().success(`
|
|
41
|
+
Success! (${result})
|
|
42
|
+
`);
|
|
43
|
+
}
|
|
44
|
+
logFailure(error) {
|
|
45
|
+
this.getLogger().error(`
|
|
46
|
+
Failure! (${error.message})
|
|
47
|
+
`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
(0, node_test_1.it)('logs expected start message', async () => {
|
|
51
|
+
const operation = new MockOperation(true);
|
|
52
|
+
const output = await log_capturer_1.default.captureAsync(() => {
|
|
53
|
+
return operation.perform();
|
|
54
|
+
});
|
|
55
|
+
node_assert_1.default.match(output, /Started!/);
|
|
56
|
+
});
|
|
57
|
+
(0, node_test_1.it)('logs expected success message', async () => {
|
|
58
|
+
const operation = new MockOperation(true);
|
|
59
|
+
const output = await log_capturer_1.default.captureAsync(() => {
|
|
60
|
+
return operation.perform();
|
|
61
|
+
});
|
|
62
|
+
node_assert_1.default.match(output, /Success! \(true\)/);
|
|
63
|
+
});
|
|
64
|
+
(0, node_test_1.it)('logs expected failure message', async () => {
|
|
65
|
+
const operation = new MockOperation(false);
|
|
66
|
+
const output = await log_capturer_1.default.captureAsync(async () => {
|
|
67
|
+
try {
|
|
68
|
+
await operation.perform();
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const cast_error = error;
|
|
72
|
+
node_assert_1.default.strictEqual(cast_error.message, 'Something strange happened');
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
node_assert_1.default.match(output, /Failure! \(Something strange happened\)/);
|
|
76
|
+
});
|
|
77
|
+
(0, node_test_1.describe)('passing request context to constructor', () => {
|
|
78
|
+
const request_context = (0, test_1.buildExecutionContext)();
|
|
79
|
+
(0, node_test_1.it)('sets expected request context', () => {
|
|
80
|
+
const operation = new MockOperation(true, request_context);
|
|
81
|
+
const actual_request_context = operation.privilegedGetExecutionContext();
|
|
82
|
+
node_assert_1.default.strictEqual(actual_request_context, request_context);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
(0, node_test_1.describe)('.getSession()', () => {
|
|
86
|
+
(0, node_test_1.it)('throws error if no request context is set', () => {
|
|
87
|
+
const operation = new MockOperation(true);
|
|
88
|
+
node_assert_1.default.throws(() => {
|
|
89
|
+
operation.privilegedGetSession();
|
|
90
|
+
}, /Tried to read request context, but it was not set/);
|
|
91
|
+
});
|
|
92
|
+
(0, node_test_1.it)('returns expected session instance', () => {
|
|
93
|
+
const session = {
|
|
94
|
+
id: 'abcd1234',
|
|
95
|
+
account_id: 'xxx',
|
|
96
|
+
username: 'xxx'
|
|
97
|
+
};
|
|
98
|
+
const request_context = (0, test_1.buildExecutionContext)();
|
|
99
|
+
request_context.setSession(session);
|
|
100
|
+
const operation = new MockOperation(true, request_context);
|
|
101
|
+
const actual_session = operation.privilegedGetSession();
|
|
102
|
+
node_assert_1.default.strictEqual(actual_session, session);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
(0, node_test_1.describe)('.hasSession()', () => {
|
|
106
|
+
(0, node_test_1.it)('returns false if no request context is set', () => {
|
|
107
|
+
const operation = new MockOperation(true);
|
|
108
|
+
node_assert_1.default.strictEqual(operation.privilegedHasSession(), false);
|
|
109
|
+
});
|
|
110
|
+
(0, node_test_1.it)('returns false if request context has no session', () => {
|
|
111
|
+
const request_context = (0, test_1.buildExecutionContext)();
|
|
112
|
+
const operation = new MockOperation(true, request_context);
|
|
113
|
+
node_assert_1.default.strictEqual(operation.privilegedHasSession(), false);
|
|
114
|
+
});
|
|
115
|
+
(0, node_test_1.it)('returns true if request context has session', () => {
|
|
116
|
+
const session = {
|
|
117
|
+
id: 'abcd1234',
|
|
118
|
+
account_id: 'xxx',
|
|
119
|
+
username: 'xxx'
|
|
120
|
+
};
|
|
121
|
+
const request_context = (0, test_1.buildExecutionContext)();
|
|
122
|
+
request_context.setSession(session);
|
|
123
|
+
const operation = new MockOperation(true, request_context);
|
|
124
|
+
node_assert_1.default.strictEqual(operation.privilegedHasSession(), true);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../../../test/unit/lib/operation/operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
(0, node_test_1.describe)('PromiseWrapper', () => {
|
|
10
|
+
(0, node_test_1.describe)('.getPromise()', () => {
|
|
11
|
+
(0, node_test_1.it)('returns the same promise when called multiple times', () => {
|
|
12
|
+
const promise_wrapper = new promise_wrapper_1.default();
|
|
13
|
+
const first_promise = promise_wrapper.getPromise();
|
|
14
|
+
const second_promise = promise_wrapper.getPromise();
|
|
15
|
+
(0, node_assert_1.strictEqual)(first_promise, second_promise);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
(0, node_test_1.describe)('.resolve()', () => {
|
|
19
|
+
(0, node_test_1.it)('fulfills inner promise', async () => {
|
|
20
|
+
const promise_wrapper = new promise_wrapper_1.default();
|
|
21
|
+
promise_wrapper.getPromise().then((result) => {
|
|
22
|
+
(0, node_assert_1.strictEqual)(result, 'gandalf');
|
|
23
|
+
});
|
|
24
|
+
promise_wrapper.resolve('gandalf');
|
|
25
|
+
await promise_wrapper.getPromise();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
(0, node_test_1.describe)('.reject()', () => {
|
|
29
|
+
(0, node_test_1.it)('rejects inner promise', async () => {
|
|
30
|
+
const promise_wrapper = new promise_wrapper_1.default();
|
|
31
|
+
const test_wrapper = new promise_wrapper_1.default();
|
|
32
|
+
promise_wrapper.getPromise().catch((error) => {
|
|
33
|
+
(0, node_assert_1.strictEqual)(error.message, 'some error');
|
|
34
|
+
test_wrapper.resolve();
|
|
35
|
+
});
|
|
36
|
+
promise_wrapper.reject(new Error('some error'));
|
|
37
|
+
await test_wrapper.getPromise();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=promise-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-wrapper.js","sourceRoot":"","sources":["../../../../../test/unit/lib/promise-wrapper/promise-wrapper.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,0EAAiD;AAEjD,IAAA,oBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,IAAA,oBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,IAAA,cAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,eAAe,GAAG,IAAI,yBAAc,EAAU,CAAC;YACrD,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YAEpD,IAAA,yBAAW,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,oBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,IAAA,cAAE,EAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,eAAe,GAAG,IAAI,yBAAc,EAAU,CAAC;YAErD,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC5C,IAAA,yBAAW,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnC,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;QAC1B,IAAA,cAAE,EAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,eAAe,GAAG,IAAI,yBAAc,EAAU,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,yBAAc,EAAQ,CAAC;YAEhD,eAAe,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,IAAA,yBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzC,YAAY,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,eAAe,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAEhD,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
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 string_1 = require("./../../../../src/lib/string/index.js");
|
|
6
|
+
(0, node_test_1.describe)('createSlug()', () => {
|
|
7
|
+
(0, node_test_1.describe)('when given a string containing an emoji', () => {
|
|
8
|
+
(0, node_test_1.it)('produces the expected output', () => {
|
|
9
|
+
const input = '🗡️ sword of damocles';
|
|
10
|
+
const output = (0, string_1.createSlug)(input);
|
|
11
|
+
(0, node_assert_1.strictEqual)(output, 'sword-of-damocles');
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=create-slug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-slug.js","sourceRoot":"","sources":["../../../../../test/unit/lib/string/create-slug.ts"],"names":[],"mappings":";;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,uCAAsC;AAEtC,IAAA,oBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,IAAA,oBAAQ,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACxD,IAAA,cAAE,EAAC,8BAA8B,EAAE,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACtC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC;YAEjC,IAAA,yBAAW,EAAC,MAAM,EAAG,mBAAmB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
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 = __importDefault(require("node:assert"));
|
|
8
|
+
const time_1 = require("./../../../../../src/lib/time/index.js");
|
|
9
|
+
(0, node_test_1.describe)('sleep()', () => {
|
|
10
|
+
(0, node_test_1.it)('returns a promise that resolves after the specified interval', async () => {
|
|
11
|
+
const start = Date.now();
|
|
12
|
+
const duration = 50;
|
|
13
|
+
await (0, time_1.sleep)(duration);
|
|
14
|
+
const end = Date.now();
|
|
15
|
+
const delta = end - start;
|
|
16
|
+
// Give it 5ms or so of wiggle room to prevent test flakiness.
|
|
17
|
+
(0, node_assert_1.default)(delta >= duration - 5, 'sleep() waits the specified duration');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=sleep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/time/utility/sleep.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,8DAAiC;AAEjC,mCAA+B;AAE/B,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACxB,IAAA,cAAE,EAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,MAAM,IAAA,YAAK,EAAC,QAAQ,CAAC,CAAC;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;QAE1B,8DAA8D;QAC9D,IAAA,qBAAM,EAAC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -7,6 +7,8 @@ const node_test_1 = require("node:test");
|
|
|
7
7
|
const node_assert_1 = require("node:assert");
|
|
8
8
|
const test_1 = require("./../../../../src/lib/test/index.js");
|
|
9
9
|
const block_type_1 = __importDefault(require("./../../../../src/enum/block-type.js"));
|
|
10
|
+
const emoji_1 = __importDefault(require("./../../../../src/enum/emoji.js"));
|
|
11
|
+
const color_1 = __importDefault(require("./../../../../src/enum/color.js"));
|
|
10
12
|
const promote_block_1 = __importDefault(require("./../../../../src/server/operation/promote-block.js"));
|
|
11
13
|
const save_page_1 = __importDefault(require("./../../../../src/server/operation/save-page.js"));
|
|
12
14
|
const load_page_1 = __importDefault(require("./../../../../src/server/operation/load-page.js"));
|
|
@@ -17,6 +19,15 @@ const load_page_1 = __importDefault(require("./../../../../src/server/operation/
|
|
|
17
19
|
const now = Date.now();
|
|
18
20
|
const page = {
|
|
19
21
|
path,
|
|
22
|
+
folder: {
|
|
23
|
+
color: color_1.default.GREEN,
|
|
24
|
+
title: 'Test',
|
|
25
|
+
subtitle: 'just a test',
|
|
26
|
+
emoji: emoji_1.default.GEAR,
|
|
27
|
+
block_type: block_type_1.default.FOLDER,
|
|
28
|
+
creator_id: 'system',
|
|
29
|
+
created_at: now
|
|
30
|
+
},
|
|
20
31
|
blocks: [
|
|
21
32
|
{
|
|
22
33
|
block_type: block_type_1.default.MULTI_COLUMN,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote-block.js","sourceRoot":"","sources":["../../../../../test/unit/server/operation/promote-block.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAmD;AACnD,mCAA+C;AAE/C,iEAAwC;AACxC,mFAAmE;AACnE,2EAA2D;AAC3D,2EAA2D;AAE3D,IAAA,oBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,IAAA,cAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,IAAI,GAAG;YACZ,IAAI;YACJ,MAAM,EAAE;gBACP;oBACC,UAAU,EAAE,oBAAS,CAAC,YAAY;oBAClC,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE;wBACT;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,UAAU,EAAE,GAAG;yBACf;wBACD;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,UAAU,EAAE,GAAG;yBACf;qBACD;iBACD;aACD;SACD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,GAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,mBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAEtE,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,IAAI,uBAAqB,CAChD,IAAI,EACJ,UAAU,EACV,iBAAiB,CACjB,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;QAErD,IAAA,yBAAW,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAE/B,MAAM,cAAc,GAAG,IAAI,mBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QAEpD,IAAA,uBAAS,EAAC,YAAY,EAAE;YACvB,IAAI;YACJ,MAAM,EAAE;gBACP;oBACC,UAAU,EAAE,oBAAS,CAAC,IAAI;oBAC1B,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE,EAAE;iBACT;gBACD;oBACC,UAAU,EAAE,oBAAS,CAAC,YAAY;oBAClC,QAAQ,EAAE;wBACT;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,EAAE;yBACT;qBACD;oBACD,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE,EAAE;iBACT;aACD;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"promote-block.js","sourceRoot":"","sources":["../../../../../test/unit/server/operation/promote-block.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAmD;AACnD,mCAA+C;AAE/C,iEAAwC;AACxC,uDAA+B;AAE/B,uDAA+B;AAC/B,mFAAmE;AACnE,2EAA2D;AAC3D,2EAA2D;AAE3D,IAAA,oBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,IAAA,cAAE,EAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,IAAI,GAAG;YACZ,IAAI;YACJ,MAAM,EAAE;gBACP,KAAK,EAAE,eAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,eAAK,CAAC,IAAI;gBACjB,UAAU,EAAE,oBAAS,CAAC,MAAM;gBAC5B,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,GAAG;aACA;YAChB,MAAM,EAAE;gBACP;oBACC,UAAU,EAAE,oBAAS,CAAC,YAAY;oBAClC,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE;wBACT;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,UAAU,EAAE,GAAG;yBACf;wBACD;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,UAAU,EAAE,GAAG;yBACf;qBACD;iBACD;aACD;SACD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,GAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,mBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAEtE,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QAE/B,MAAM,eAAe,GAAG,IAAI,uBAAqB,CAChD,IAAI,EACJ,UAAU,EACV,iBAAiB,CACjB,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;QAErD,IAAA,yBAAW,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAE/B,MAAM,cAAc,GAAG,IAAI,mBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QAEpD,IAAA,uBAAS,EAAC,YAAY,EAAE;YACvB,IAAI;YACJ,MAAM,EAAE;gBACP;oBACC,UAAU,EAAE,oBAAS,CAAC,IAAI;oBAC1B,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE,EAAE;iBACT;gBACD;oBACC,UAAU,EAAE,oBAAS,CAAC,YAAY;oBAClC,QAAQ,EAAE;wBACT;4BACC,UAAU,EAAE,oBAAS,CAAC,IAAI;4BAC1B,IAAI,EAAE,KAAK;4BACX,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,EAAE;yBACT;qBACD;oBACD,UAAU,EAAE,GAAG;oBACf,KAAK,EAAE,EAAE;iBACT;aACD;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|