@fc3/mmcadi 0.1.20 → 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.
Files changed (205) hide show
  1. package/bin/lint +12 -0
  2. package/bin/test-one +32 -0
  3. package/dist/.last-compile-time +1 -1
  4. package/dist/.last-publish-time +1 -1
  5. package/dist/client.js +11 -1
  6. package/dist/src/client/enum/page-type.d.ts +2 -1
  7. package/dist/src/client/enum/page-type.js +1 -0
  8. package/dist/src/client/enum/page-type.js.map +1 -1
  9. package/dist/src/client/factory/page.js +3 -1
  10. package/dist/src/client/factory/page.js.map +1 -1
  11. package/dist/src/client/page/role.d.ts +5 -0
  12. package/dist/src/client/page/role.js +12 -0
  13. package/dist/src/client/page/role.js.map +1 -0
  14. package/dist/src/common/builder/block/folder.d.ts +2 -1
  15. package/dist/src/common/builder/block/folder.js.map +1 -1
  16. package/dist/src/common/builder/block/header.d.ts +5 -1
  17. package/dist/src/common/builder/block/header.js +16 -2
  18. package/dist/src/common/builder/block/header.js.map +1 -1
  19. package/dist/src/common/builder/block/parameter.d.ts +3 -0
  20. package/dist/src/common/builder/block/parameter.js +19 -0
  21. package/dist/src/common/builder/block/parameter.js.map +1 -0
  22. package/dist/src/constant/role/creator.d.ts +3 -0
  23. package/dist/src/constant/role/creator.js +17 -0
  24. package/dist/src/constant/role/creator.js.map +1 -0
  25. package/dist/src/constant/role/public.d.ts +3 -0
  26. package/dist/src/constant/role/public.js +17 -0
  27. package/dist/src/constant/role/public.js.map +1 -0
  28. package/dist/src/constant/role/unknown.d.ts +3 -0
  29. package/dist/src/constant/role/unknown.js +17 -0
  30. package/dist/src/constant/role/unknown.js.map +1 -0
  31. package/dist/src/enum/block-type.d.ts +2 -1
  32. package/dist/src/enum/block-type.js +1 -0
  33. package/dist/src/enum/block-type.js.map +1 -1
  34. package/dist/src/enum/default-role.d.ts +2 -1
  35. package/dist/src/enum/default-role.js +1 -0
  36. package/dist/src/enum/default-role.js.map +1 -1
  37. package/dist/src/enum/emoji.d.ts +1 -0
  38. package/dist/src/enum/emoji.js +1 -0
  39. package/dist/src/enum/emoji.js.map +1 -1
  40. package/dist/src/index.d.ts +2 -0
  41. package/dist/src/index.js +3 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/interface/route.d.ts +2 -1
  44. package/dist/src/lib/environment-mocker/index.d.ts +18 -0
  45. package/dist/src/lib/environment-mocker/index.js +40 -0
  46. package/dist/src/lib/environment-mocker/index.js.map +1 -0
  47. package/dist/src/lib/grammar/index.d.ts +3 -0
  48. package/dist/src/lib/grammar/index.js +7 -1
  49. package/dist/src/lib/grammar/index.js.map +1 -1
  50. package/dist/src/lib/grammar/utility/pluralize.d.ts +2 -0
  51. package/dist/src/lib/grammar/utility/pluralize.js +12 -0
  52. package/dist/src/lib/grammar/utility/pluralize.js.map +1 -0
  53. package/dist/src/lib/grammar/utility/singularize-or-pluralize.d.ts +2 -0
  54. package/dist/src/lib/grammar/utility/singularize-or-pluralize.js +12 -0
  55. package/dist/src/lib/grammar/utility/singularize-or-pluralize.js.map +1 -0
  56. package/dist/src/lib/grammar/utility/singularize.d.ts +2 -0
  57. package/dist/src/lib/grammar/utility/singularize.js +12 -0
  58. package/dist/src/lib/grammar/utility/singularize.js.map +1 -0
  59. package/dist/src/lib/log-capturer/index.d.ts +2 -0
  60. package/dist/src/lib/log-capturer/index.js +8 -0
  61. package/dist/src/lib/log-capturer/index.js.map +1 -0
  62. package/dist/src/lib/log-capturer/log-capturer.d.ts +19 -0
  63. package/dist/src/lib/log-capturer/log-capturer.js +39 -0
  64. package/dist/src/lib/log-capturer/log-capturer.js.map +1 -0
  65. package/dist/src/lib/string/create-slug.js +2 -1
  66. package/dist/src/lib/string/create-slug.js.map +1 -1
  67. package/dist/src/server/endpoint/account/get.d.ts +14 -0
  68. package/dist/src/server/endpoint/account/get.js +34 -0
  69. package/dist/src/server/endpoint/account/get.js.map +1 -0
  70. package/dist/src/server/endpoint/action/create.js +4 -29
  71. package/dist/src/server/endpoint/action/create.js.map +1 -1
  72. package/dist/src/server/endpoint/role/get.d.ts +14 -0
  73. package/dist/src/server/endpoint/role/get.js +43 -0
  74. package/dist/src/server/endpoint/role/get.js.map +1 -0
  75. package/dist/src/server/enum/custom-page-type.d.ts +3 -1
  76. package/dist/src/server/enum/custom-page-type.js +2 -0
  77. package/dist/src/server/enum/custom-page-type.js.map +1 -1
  78. package/dist/src/server/factory/block-result-serializer.js +3 -0
  79. package/dist/src/server/factory/block-result-serializer.js.map +1 -1
  80. package/dist/src/server/middleware/error-handler.js +7 -2
  81. package/dist/src/server/middleware/error-handler.js.map +1 -1
  82. package/dist/src/server/operation/find-account.d.ts +1 -0
  83. package/dist/src/server/operation/find-account.js +9 -1
  84. package/dist/src/server/operation/find-account.js.map +1 -1
  85. package/dist/src/server/operation/load-account.js +5 -8
  86. package/dist/src/server/operation/load-account.js.map +1 -1
  87. package/dist/src/server/operation/load-page.d.ts +5 -4
  88. package/dist/src/server/operation/load-page.js +176 -59
  89. package/dist/src/server/operation/load-page.js.map +1 -1
  90. package/dist/src/server/operation/store-files.d.ts +15 -0
  91. package/dist/src/server/operation/store-files.js +84 -0
  92. package/dist/src/server/operation/store-files.js.map +1 -0
  93. package/dist/src/server/result-serializer/account.d.ts +9 -0
  94. package/dist/src/server/result-serializer/account.js +26 -0
  95. package/dist/src/server/result-serializer/account.js.map +1 -0
  96. package/dist/src/server/result-serializer/action.d.ts +2 -1
  97. package/dist/src/server/result-serializer/action.js +27 -18
  98. package/dist/src/server/result-serializer/action.js.map +1 -1
  99. package/dist/src/server/result-serializer/base.js +22 -4
  100. package/dist/src/server/result-serializer/base.js.map +1 -1
  101. package/dist/src/server/result-serializer/block/folder.js +25 -9
  102. package/dist/src/server/result-serializer/block/folder.js.map +1 -1
  103. package/dist/src/server/result-serializer/block/header.js +6 -2
  104. package/dist/src/server/result-serializer/block/header.js.map +1 -1
  105. package/dist/src/server/result-serializer/block/image.js +6 -3
  106. package/dist/src/server/result-serializer/block/image.js.map +1 -1
  107. package/dist/src/server/result-serializer/block/parameter.d.ts +6 -0
  108. package/dist/src/server/result-serializer/block/parameter.js +13 -0
  109. package/dist/src/server/result-serializer/block/parameter.js.map +1 -0
  110. package/dist/src/server/result-serializer/block.d.ts +2 -1
  111. package/dist/src/server/result-serializer/block.js +32 -13
  112. package/dist/src/server/result-serializer/block.js.map +1 -1
  113. package/dist/src/server/result-serializer/page.d.ts +2 -1
  114. package/dist/src/server/result-serializer/page.js +4 -4
  115. package/dist/src/server/result-serializer/page.js.map +1 -1
  116. package/dist/src/server/result-serializer/role.d.ts +9 -0
  117. package/dist/src/server/result-serializer/role.js +26 -0
  118. package/dist/src/server/result-serializer/role.js.map +1 -0
  119. package/dist/src/server/type/multipart-file.d.ts +7 -0
  120. package/dist/src/server/type/multipart-file.js +3 -0
  121. package/dist/src/server/type/multipart-file.js.map +1 -0
  122. package/dist/src/server/utility/extract-role.d.ts +3 -0
  123. package/dist/src/server/utility/extract-role.js +19 -0
  124. package/dist/src/server/utility/extract-role.js.map +1 -0
  125. package/dist/src/server/utility/get-custom-page-type-for-path.js +12 -0
  126. package/dist/src/server/utility/get-custom-page-type-for-path.js.map +1 -1
  127. package/dist/src/server/utility/get-key-for-role.d.ts +3 -0
  128. package/dist/src/server/utility/get-key-for-role.js +10 -0
  129. package/dist/src/server/utility/get-key-for-role.js.map +1 -0
  130. package/dist/src/server/utility/get-thumbnail-filename.d.ts +2 -0
  131. package/dist/src/server/utility/get-thumbnail-filename.js +10 -0
  132. package/dist/src/server/utility/get-thumbnail-filename.js.map +1 -0
  133. package/dist/src/server/utility/get-url-for-role.d.ts +3 -0
  134. package/dist/src/server/utility/get-url-for-role.js +13 -0
  135. package/dist/src/server/utility/get-url-for-role.js.map +1 -0
  136. package/dist/src/server/utility/role-matches.d.ts +3 -0
  137. package/dist/src/server/utility/role-matches.js +13 -0
  138. package/dist/src/server/utility/role-matches.js.map +1 -0
  139. package/dist/src/server/utility/satisfies-role.d.ts +3 -0
  140. package/dist/src/server/utility/satisfies-role.js +21 -0
  141. package/dist/src/server/utility/satisfies-role.js.map +1 -0
  142. package/dist/src/server.js +6 -8
  143. package/dist/src/server.js.map +1 -1
  144. package/dist/src/type/account.d.ts +1 -1
  145. package/dist/src/type/block/parameter.d.ts +8 -0
  146. package/dist/src/type/block/parameter.js +3 -0
  147. package/dist/src/type/block/parameter.js.map +1 -0
  148. package/dist/src/type/block-metadata.d.ts +2 -1
  149. package/dist/src/type/color-value.d.ts +2 -0
  150. package/dist/src/type/color-value.js +3 -0
  151. package/dist/src/type/color-value.js.map +1 -0
  152. package/dist/src/type/request-context.d.ts +7 -0
  153. package/dist/src/type/request-context.js +3 -0
  154. package/dist/src/type/request-context.js.map +1 -0
  155. package/dist/src/type/role.d.ts +8 -0
  156. package/dist/src/{interface/provider.js → type/role.js} +1 -1
  157. package/dist/src/type/role.js.map +1 -0
  158. package/dist/src/type/runtime-config.d.ts +2 -1
  159. package/dist/src/type/server-settings.d.ts +2 -1
  160. package/dist/test/unit/lib/environment-mocker/environment-mocker.d.ts +1 -0
  161. package/dist/test/unit/lib/environment-mocker/environment-mocker.js +40 -0
  162. package/dist/test/unit/lib/environment-mocker/environment-mocker.js.map +1 -0
  163. package/dist/test/unit/lib/grammar/index.d.ts +1 -0
  164. package/dist/test/unit/lib/grammar/index.js +60 -0
  165. package/dist/test/unit/lib/grammar/index.js.map +1 -0
  166. package/dist/test/unit/lib/grammar/inflector.d.ts +1 -0
  167. package/dist/test/unit/lib/grammar/inflector.js +72 -0
  168. package/dist/test/unit/lib/grammar/inflector.js.map +1 -0
  169. package/dist/test/unit/lib/http/parser/url.d.ts +1 -0
  170. package/dist/test/unit/lib/http/parser/url.js +27 -0
  171. package/dist/test/unit/lib/http/parser/url.js.map +1 -0
  172. package/dist/test/unit/lib/http/response/outgoing.d.ts +1 -0
  173. package/dist/test/unit/lib/http/response/outgoing.js +38 -0
  174. package/dist/test/unit/lib/http/response/outgoing.js.map +1 -0
  175. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.d.ts +1 -0
  176. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js +21 -0
  177. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js.map +1 -0
  178. package/dist/test/unit/lib/key-generator/key-generator.d.ts +1 -0
  179. package/dist/test/unit/lib/key-generator/key-generator.js +23 -0
  180. package/dist/test/unit/lib/key-generator/key-generator.js.map +1 -0
  181. package/dist/test/unit/lib/log-capturer/log-capturer.d.ts +1 -0
  182. package/dist/test/unit/lib/log-capturer/log-capturer.js +35 -0
  183. package/dist/test/unit/lib/log-capturer/log-capturer.js.map +1 -0
  184. package/dist/test/unit/lib/logger/formatter.d.ts +1 -0
  185. package/dist/test/unit/lib/logger/formatter.js +32 -0
  186. package/dist/test/unit/lib/logger/formatter.js.map +1 -0
  187. package/dist/test/unit/lib/logger/logger.d.ts +1 -0
  188. package/dist/test/unit/lib/logger/logger.js +194 -0
  189. package/dist/test/unit/lib/logger/logger.js.map +1 -0
  190. package/dist/test/unit/lib/operation/operation.d.ts +1 -0
  191. package/dist/test/unit/lib/operation/operation.js +128 -0
  192. package/dist/test/unit/lib/operation/operation.js.map +1 -0
  193. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.d.ts +1 -0
  194. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js +41 -0
  195. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js.map +1 -0
  196. package/dist/test/unit/lib/string/create-slug.d.ts +1 -0
  197. package/dist/test/unit/lib/string/create-slug.js +15 -0
  198. package/dist/test/unit/lib/string/create-slug.js.map +1 -0
  199. package/dist/test/unit/lib/time/utility/sleep.d.ts +1 -0
  200. package/dist/test/unit/lib/time/utility/sleep.js +20 -0
  201. package/dist/test/unit/lib/time/utility/sleep.js.map +1 -0
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +11 -5
  204. package/dist/src/interface/provider.d.ts +0 -6
  205. package/dist/src/interface/provider.js.map +0 -1
@@ -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,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"}