@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.
Files changed (373) 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 +264 -47
  6. package/dist/src/client/enum/page-type.d.ts +5 -1
  7. package/dist/src/client/enum/page-type.js +4 -0
  8. package/dist/src/client/enum/page-type.js.map +1 -1
  9. package/dist/src/client/factory/page.js +9 -1
  10. package/dist/src/client/factory/page.js.map +1 -1
  11. package/dist/src/client/page/confirm-hide-block.d.ts +7 -0
  12. package/dist/src/client/page/confirm-hide-block.js +28 -0
  13. package/dist/src/client/page/confirm-hide-block.js.map +1 -0
  14. package/dist/src/client/page/history.d.ts +16 -0
  15. package/dist/src/client/page/history.js +126 -0
  16. package/dist/src/client/page/history.js.map +1 -0
  17. package/dist/src/client/page/role.d.ts +5 -0
  18. package/dist/src/client/page/role.js +12 -0
  19. package/dist/src/client/page/role.js.map +1 -0
  20. package/dist/src/client/page/select-block-destination.d.ts +5 -0
  21. package/dist/src/client/page/select-block-destination.js +12 -0
  22. package/dist/src/client/page/select-block-destination.js.map +1 -0
  23. package/dist/src/client/page/view-custom.d.ts +3 -1
  24. package/dist/src/client/page/view-custom.js +60 -26
  25. package/dist/src/client/page/view-custom.js.map +1 -1
  26. package/dist/src/client/utility/get-block-activation-href.d.ts +2 -0
  27. package/dist/src/client/utility/get-block-activation-href.js +25 -0
  28. package/dist/src/client/utility/get-block-activation-href.js.map +1 -0
  29. package/dist/src/common/builder/block/folder.d.ts +2 -1
  30. package/dist/src/common/builder/block/folder.js.map +1 -1
  31. package/dist/src/common/builder/block/header.d.ts +5 -1
  32. package/dist/src/common/builder/block/header.js +16 -2
  33. package/dist/src/common/builder/block/header.js.map +1 -1
  34. package/dist/src/common/builder/block/parameter.d.ts +3 -0
  35. package/dist/src/common/builder/block/parameter.js +19 -0
  36. package/dist/src/common/builder/block/parameter.js.map +1 -0
  37. package/dist/src/constant/role/creator.d.ts +3 -0
  38. package/dist/src/constant/role/creator.js +17 -0
  39. package/dist/src/constant/role/creator.js.map +1 -0
  40. package/dist/src/constant/role/public.d.ts +3 -0
  41. package/dist/src/constant/role/public.js +17 -0
  42. package/dist/src/constant/role/public.js.map +1 -0
  43. package/dist/src/constant/role/unknown.d.ts +3 -0
  44. package/dist/src/constant/role/unknown.js +17 -0
  45. package/dist/src/constant/role/unknown.js.map +1 -0
  46. package/dist/src/enum/action-type.d.ts +2 -0
  47. package/dist/src/enum/action-type.js +2 -0
  48. package/dist/src/enum/action-type.js.map +1 -1
  49. package/dist/src/enum/block-type.d.ts +2 -1
  50. package/dist/src/enum/block-type.js +1 -0
  51. package/dist/src/enum/block-type.js.map +1 -1
  52. package/dist/src/enum/default-role.d.ts +2 -1
  53. package/dist/src/enum/default-role.js +1 -0
  54. package/dist/src/enum/default-role.js.map +1 -1
  55. package/dist/src/enum/emoji.d.ts +2 -0
  56. package/dist/src/enum/emoji.js +2 -0
  57. package/dist/src/enum/emoji.js.map +1 -1
  58. package/dist/src/enum/tool-type.d.ts +1 -0
  59. package/dist/src/enum/tool-type.js +1 -0
  60. package/dist/src/enum/tool-type.js.map +1 -1
  61. package/dist/src/index.d.ts +2 -0
  62. package/dist/src/index.js +3 -1
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/interface/route.d.ts +2 -1
  65. package/dist/src/lib/environment-mocker/index.d.ts +18 -0
  66. package/dist/src/lib/environment-mocker/index.js +40 -0
  67. package/dist/src/lib/environment-mocker/index.js.map +1 -0
  68. package/dist/src/lib/grammar/index.d.ts +3 -0
  69. package/dist/src/lib/grammar/index.js +7 -1
  70. package/dist/src/lib/grammar/index.js.map +1 -1
  71. package/dist/src/lib/grammar/utility/pluralize.d.ts +2 -0
  72. package/dist/src/lib/grammar/utility/pluralize.js +12 -0
  73. package/dist/src/lib/grammar/utility/pluralize.js.map +1 -0
  74. package/dist/src/lib/grammar/utility/singularize-or-pluralize.d.ts +2 -0
  75. package/dist/src/lib/grammar/utility/singularize-or-pluralize.js +12 -0
  76. package/dist/src/lib/grammar/utility/singularize-or-pluralize.js.map +1 -0
  77. package/dist/src/lib/grammar/utility/singularize.d.ts +2 -0
  78. package/dist/src/lib/grammar/utility/singularize.js +12 -0
  79. package/dist/src/lib/grammar/utility/singularize.js.map +1 -0
  80. package/dist/src/lib/log-capturer/index.d.ts +2 -0
  81. package/dist/src/lib/log-capturer/index.js +8 -0
  82. package/dist/src/lib/log-capturer/index.js.map +1 -0
  83. package/dist/src/lib/log-capturer/log-capturer.d.ts +19 -0
  84. package/dist/src/lib/log-capturer/log-capturer.js +39 -0
  85. package/dist/src/lib/log-capturer/log-capturer.js.map +1 -0
  86. package/dist/src/lib/server/http/endpoint.js +1 -1
  87. package/dist/src/lib/server/http/endpoint.js.map +1 -1
  88. package/dist/src/lib/string/create-slug.js +2 -1
  89. package/dist/src/lib/string/create-slug.js.map +1 -1
  90. package/dist/src/server/endpoint/abstract-page.d.ts +1 -1
  91. package/dist/src/server/endpoint/abstract-page.js +21 -3
  92. package/dist/src/server/endpoint/abstract-page.js.map +1 -1
  93. package/dist/src/server/endpoint/account/get.d.ts +14 -0
  94. package/dist/src/server/endpoint/account/get.js +34 -0
  95. package/dist/src/server/endpoint/account/get.js.map +1 -0
  96. package/dist/src/server/endpoint/action/create.d.ts +3 -1
  97. package/dist/src/server/endpoint/action/create.js +63 -52
  98. package/dist/src/server/endpoint/action/create.js.map +1 -1
  99. package/dist/src/server/endpoint/action/get.d.ts +3 -1
  100. package/dist/src/server/endpoint/action/get.js +47 -1
  101. package/dist/src/server/endpoint/action/get.js.map +1 -1
  102. package/dist/src/server/endpoint/history.d.ts +13 -0
  103. package/dist/src/server/endpoint/history.js +61 -0
  104. package/dist/src/server/endpoint/history.js.map +1 -0
  105. package/dist/src/server/endpoint/login.d.ts +1 -1
  106. package/dist/src/server/endpoint/login.js +1 -1
  107. package/dist/src/server/endpoint/login.js.map +1 -1
  108. package/dist/src/server/endpoint/logout.js +7 -2
  109. package/dist/src/server/endpoint/logout.js.map +1 -1
  110. package/dist/src/server/endpoint/month.d.ts +1 -1
  111. package/dist/src/server/endpoint/month.js +1 -1
  112. package/dist/src/server/endpoint/month.js.map +1 -1
  113. package/dist/src/server/endpoint/role/get.d.ts +14 -0
  114. package/dist/src/server/endpoint/role/get.js +43 -0
  115. package/dist/src/server/endpoint/role/get.js.map +1 -0
  116. package/dist/src/server/endpoint/settings/get.d.ts +1 -1
  117. package/dist/src/server/endpoint/settings/get.js +1 -1
  118. package/dist/src/server/endpoint/settings/get.js.map +1 -1
  119. package/dist/src/server/endpoint/week.d.ts +1 -1
  120. package/dist/src/server/endpoint/week.js +1 -1
  121. package/dist/src/server/endpoint/week.js.map +1 -1
  122. package/dist/src/server/endpoint/year.d.ts +1 -1
  123. package/dist/src/server/endpoint/year.js +1 -1
  124. package/dist/src/server/endpoint/year.js.map +1 -1
  125. package/dist/src/server/enum/custom-page-type.d.ts +3 -1
  126. package/dist/src/server/enum/custom-page-type.js +2 -0
  127. package/dist/src/server/enum/custom-page-type.js.map +1 -1
  128. package/dist/src/server/factory/block-result-serializer.d.ts +1 -1
  129. package/dist/src/server/factory/block-result-serializer.js +16 -13
  130. package/dist/src/server/factory/block-result-serializer.js.map +1 -1
  131. package/dist/src/server/factory/block-serializer.d.ts +15 -0
  132. package/dist/src/server/factory/block-serializer.js +80 -0
  133. package/dist/src/server/factory/block-serializer.js.map +1 -0
  134. package/dist/src/server/middleware/error-handler.js +21 -6
  135. package/dist/src/server/middleware/error-handler.js.map +1 -1
  136. package/dist/src/server/operation/add-block.js +1 -0
  137. package/dist/src/server/operation/add-block.js.map +1 -1
  138. package/dist/src/server/operation/delete-block.d.ts +5 -3
  139. package/dist/src/server/operation/delete-block.js +30 -9
  140. package/dist/src/server/operation/delete-block.js.map +1 -1
  141. package/dist/src/server/operation/destroy-session.js +13 -1
  142. package/dist/src/server/operation/destroy-session.js.map +1 -1
  143. package/dist/src/server/operation/find-account.d.ts +1 -0
  144. package/dist/src/server/operation/find-account.js +12 -3
  145. package/dist/src/server/operation/find-account.js.map +1 -1
  146. package/dist/src/server/operation/hide-block.d.ts +14 -0
  147. package/dist/src/server/operation/hide-block.js +55 -0
  148. package/dist/src/server/operation/hide-block.js.map +1 -0
  149. package/dist/src/server/operation/load-account.js +5 -8
  150. package/dist/src/server/operation/load-account.js.map +1 -1
  151. package/dist/src/server/operation/load-page.d.ts +7 -4
  152. package/dist/src/server/operation/load-page.js +251 -74
  153. package/dist/src/server/operation/load-page.js.map +1 -1
  154. package/dist/src/server/operation/move-block.d.ts +16 -0
  155. package/dist/src/server/operation/move-block.js +101 -0
  156. package/dist/src/server/operation/move-block.js.map +1 -0
  157. package/dist/src/server/operation/store-file.d.ts +14 -0
  158. package/dist/src/server/operation/store-file.js +83 -0
  159. package/dist/src/server/operation/store-file.js.map +1 -0
  160. package/dist/src/server/operation/store-files.d.ts +15 -0
  161. package/dist/src/server/operation/store-files.js +84 -0
  162. package/dist/src/server/operation/store-files.js.map +1 -0
  163. package/dist/src/server/operation/update-block.js +4 -4
  164. package/dist/src/server/operation/update-block.js.map +1 -1
  165. package/dist/src/server/result-serializer/account.d.ts +9 -0
  166. package/dist/src/server/result-serializer/account.js +26 -0
  167. package/dist/src/server/result-serializer/account.js.map +1 -0
  168. package/dist/src/server/result-serializer/action.d.ts +2 -1
  169. package/dist/src/server/result-serializer/action.js +27 -18
  170. package/dist/src/server/result-serializer/action.js.map +1 -1
  171. package/dist/src/server/result-serializer/base.js +22 -4
  172. package/dist/src/server/result-serializer/base.js.map +1 -1
  173. package/dist/src/server/result-serializer/block/folder.js +25 -9
  174. package/dist/src/server/result-serializer/block/folder.js.map +1 -1
  175. package/dist/src/server/result-serializer/block/header.js +6 -2
  176. package/dist/src/server/result-serializer/block/header.js.map +1 -1
  177. package/dist/src/server/result-serializer/block/image.js +6 -3
  178. package/dist/src/server/result-serializer/block/image.js.map +1 -1
  179. package/dist/src/server/result-serializer/block/parameter.d.ts +6 -0
  180. package/dist/src/server/result-serializer/block/parameter.js +13 -0
  181. package/dist/src/server/result-serializer/block/parameter.js.map +1 -0
  182. package/dist/src/server/result-serializer/block.d.ts +2 -1
  183. package/dist/src/server/result-serializer/block.js +32 -13
  184. package/dist/src/server/result-serializer/block.js.map +1 -1
  185. package/dist/src/server/result-serializer/page.d.ts +2 -1
  186. package/dist/src/server/result-serializer/page.js +4 -4
  187. package/dist/src/server/result-serializer/page.js.map +1 -1
  188. package/dist/src/server/result-serializer/role.d.ts +9 -0
  189. package/dist/src/server/result-serializer/role.js +26 -0
  190. package/dist/src/server/result-serializer/role.js.map +1 -0
  191. package/dist/src/server/serializer/action.d.ts +40 -0
  192. package/dist/src/server/serializer/action.js +940 -0
  193. package/dist/src/server/serializer/action.js.map +1 -0
  194. package/dist/src/server/serializer/base.d.ts +31 -0
  195. package/dist/src/server/serializer/base.js +1222 -0
  196. package/dist/src/server/serializer/base.js.map +1 -0
  197. package/dist/src/server/serializer/block/audio.d.ts +6 -0
  198. package/dist/src/server/serializer/block/audio.js +26 -0
  199. package/dist/src/server/serializer/block/audio.js.map +1 -0
  200. package/dist/src/server/serializer/block/background.d.ts +6 -0
  201. package/dist/src/server/serializer/block/background.js +22 -0
  202. package/dist/src/server/serializer/block/background.js.map +1 -0
  203. package/dist/src/server/serializer/block/calendar.d.ts +7 -0
  204. package/dist/src/server/serializer/block/calendar.js +140 -0
  205. package/dist/src/server/serializer/block/calendar.js.map +1 -0
  206. package/dist/src/server/serializer/block/directory.d.ts +7 -0
  207. package/dist/src/server/serializer/block/directory.js +53 -0
  208. package/dist/src/server/serializer/block/directory.js.map +1 -0
  209. package/dist/src/server/serializer/block/ephemeral.d.ts +6 -0
  210. package/dist/src/server/serializer/block/ephemeral.js +16 -0
  211. package/dist/src/server/serializer/block/ephemeral.js.map +1 -0
  212. package/dist/src/server/serializer/block/folder.d.ts +14 -0
  213. package/dist/src/server/serializer/block/folder.js +145 -0
  214. package/dist/src/server/serializer/block/folder.js.map +1 -0
  215. package/dist/src/server/serializer/block/header.d.ts +6 -0
  216. package/dist/src/server/serializer/block/header.js +35 -0
  217. package/dist/src/server/serializer/block/header.js.map +1 -0
  218. package/dist/src/server/serializer/block/image.d.ts +6 -0
  219. package/dist/src/server/serializer/block/image.js +45 -0
  220. package/dist/src/server/serializer/block/image.js.map +1 -0
  221. package/dist/src/server/serializer/block/link.d.ts +6 -0
  222. package/dist/src/server/serializer/block/link.js +39 -0
  223. package/dist/src/server/serializer/block/link.js.map +1 -0
  224. package/dist/src/server/serializer/block/list.d.ts +13 -0
  225. package/dist/src/server/serializer/block/list.js +113 -0
  226. package/dist/src/server/serializer/block/list.js.map +1 -0
  227. package/dist/src/server/serializer/block/multi-column.d.ts +6 -0
  228. package/dist/src/server/serializer/block/multi-column.js +78 -0
  229. package/dist/src/server/serializer/block/multi-column.js.map +1 -0
  230. package/dist/src/server/serializer/block/note.d.ts +6 -0
  231. package/dist/src/server/serializer/block/note.js +40 -0
  232. package/dist/src/server/serializer/block/note.js.map +1 -0
  233. package/dist/src/server/serializer/block/parameter.d.ts +6 -0
  234. package/dist/src/server/serializer/block/parameter.js +13 -0
  235. package/dist/src/server/serializer/block/parameter.js.map +1 -0
  236. package/dist/src/server/serializer/block/todo.d.ts +6 -0
  237. package/dist/src/server/serializer/block/todo.js +76 -0
  238. package/dist/src/server/serializer/block/todo.js.map +1 -0
  239. package/dist/src/server/serializer/block/whitespace.d.ts +6 -0
  240. package/dist/src/server/serializer/block/whitespace.js +17 -0
  241. package/dist/src/server/serializer/block/whitespace.js.map +1 -0
  242. package/dist/src/server/serializer/block.d.ts +27 -0
  243. package/dist/src/server/serializer/block.js +226 -0
  244. package/dist/src/server/serializer/block.js.map +1 -0
  245. package/dist/src/server/serializer/common/time-place-options.d.ts +2 -0
  246. package/dist/src/server/serializer/common/time-place-options.js +34 -0
  247. package/dist/src/server/serializer/common/time-place-options.js.map +1 -0
  248. package/dist/src/server/serializer/history.d.ts +19 -0
  249. package/dist/src/server/serializer/history.js +77 -0
  250. package/dist/src/server/serializer/history.js.map +1 -0
  251. package/dist/src/server/serializer/login.d.ts +12 -0
  252. package/dist/src/server/serializer/login.js +54 -0
  253. package/dist/src/server/serializer/login.js.map +1 -0
  254. package/dist/src/server/serializer/month.d.ts +10 -0
  255. package/dist/src/server/serializer/month.js +160 -0
  256. package/dist/src/server/serializer/month.js.map +1 -0
  257. package/dist/src/server/serializer/page.d.ts +47 -0
  258. package/dist/src/server/serializer/page.js +454 -0
  259. package/dist/src/server/serializer/page.js.map +1 -0
  260. package/dist/src/server/serializer/settings.d.ts +9 -0
  261. package/dist/src/server/serializer/settings.js +80 -0
  262. package/dist/src/server/serializer/settings.js.map +1 -0
  263. package/dist/src/server/serializer/week.d.ts +10 -0
  264. package/dist/src/server/serializer/week.js +175 -0
  265. package/dist/src/server/serializer/week.js.map +1 -0
  266. package/dist/src/server/serializer/year.d.ts +10 -0
  267. package/dist/src/server/serializer/year.js +142 -0
  268. package/dist/src/server/serializer/year.js.map +1 -0
  269. package/dist/src/server/type/multipart-file.d.ts +7 -0
  270. package/dist/src/server/type/multipart-file.js +3 -0
  271. package/dist/src/server/type/multipart-file.js.map +1 -0
  272. package/dist/src/server/utility/extract-role.d.ts +3 -0
  273. package/dist/src/server/utility/extract-role.js +19 -0
  274. package/dist/src/server/utility/extract-role.js.map +1 -0
  275. package/dist/src/server/utility/get-custom-page-type-for-path.js +12 -0
  276. package/dist/src/server/utility/get-custom-page-type-for-path.js.map +1 -1
  277. package/dist/src/server/utility/get-emoji-for-tool-type.js +1 -0
  278. package/dist/src/server/utility/get-emoji-for-tool-type.js.map +1 -1
  279. package/dist/src/server/utility/get-key-for-role.d.ts +3 -0
  280. package/dist/src/server/utility/get-key-for-role.js +10 -0
  281. package/dist/src/server/utility/get-key-for-role.js.map +1 -0
  282. package/dist/src/server/utility/get-thumbnail-filename.d.ts +2 -0
  283. package/dist/src/server/utility/get-thumbnail-filename.js +10 -0
  284. package/dist/src/server/utility/get-thumbnail-filename.js.map +1 -0
  285. package/dist/src/server/utility/get-url-for-role.d.ts +3 -0
  286. package/dist/src/server/utility/get-url-for-role.js +13 -0
  287. package/dist/src/server/utility/get-url-for-role.js.map +1 -0
  288. package/dist/src/server/utility/role-matches.d.ts +3 -0
  289. package/dist/src/server/utility/role-matches.js +13 -0
  290. package/dist/src/server/utility/role-matches.js.map +1 -0
  291. package/dist/src/server/utility/satisfies-role.d.ts +3 -0
  292. package/dist/src/server/utility/satisfies-role.js +21 -0
  293. package/dist/src/server/utility/satisfies-role.js.map +1 -0
  294. package/dist/src/server.js +8 -8
  295. package/dist/src/server.js.map +1 -1
  296. package/dist/src/type/account-settings.d.ts +3 -2
  297. package/dist/src/type/account.d.ts +1 -1
  298. package/dist/src/type/action/hide-block.d.ts +9 -0
  299. package/dist/src/type/action/hide-block.js +3 -0
  300. package/dist/src/type/action/hide-block.js.map +1 -0
  301. package/dist/src/type/action/move-block.d.ts +10 -0
  302. package/dist/src/type/action/move-block.js +3 -0
  303. package/dist/src/type/action/move-block.js.map +1 -0
  304. package/dist/src/type/block/audio.d.ts +2 -0
  305. package/dist/src/type/block/image.d.ts +2 -0
  306. package/dist/src/type/block/parameter.d.ts +8 -0
  307. package/dist/src/type/block/parameter.js +3 -0
  308. package/dist/src/type/block/parameter.js.map +1 -0
  309. package/dist/src/type/block-metadata.d.ts +2 -1
  310. package/dist/src/type/block.d.ts +2 -2
  311. package/dist/src/type/color-value.d.ts +2 -0
  312. package/dist/src/type/color-value.js +3 -0
  313. package/dist/src/type/color-value.js.map +1 -0
  314. package/dist/src/type/history-item.d.ts +5 -0
  315. package/dist/src/type/history-item.js +3 -0
  316. package/dist/src/type/history-item.js.map +1 -0
  317. package/dist/src/type/page.d.ts +2 -0
  318. package/dist/src/type/request-context.d.ts +7 -0
  319. package/dist/src/type/request-context.js +3 -0
  320. package/dist/src/type/request-context.js.map +1 -0
  321. package/dist/src/type/role.d.ts +8 -0
  322. package/dist/src/{interface/provider.js → type/role.js} +1 -1
  323. package/dist/src/type/role.js.map +1 -0
  324. package/dist/src/type/runtime-config.d.ts +2 -1
  325. package/dist/src/type/server-settings.d.ts +2 -1
  326. package/dist/test/unit/lib/environment-mocker/environment-mocker.d.ts +1 -0
  327. package/dist/test/unit/lib/environment-mocker/environment-mocker.js +40 -0
  328. package/dist/test/unit/lib/environment-mocker/environment-mocker.js.map +1 -0
  329. package/dist/test/unit/lib/grammar/index.d.ts +1 -0
  330. package/dist/test/unit/lib/grammar/index.js +60 -0
  331. package/dist/test/unit/lib/grammar/index.js.map +1 -0
  332. package/dist/test/unit/lib/grammar/inflector.d.ts +1 -0
  333. package/dist/test/unit/lib/grammar/inflector.js +72 -0
  334. package/dist/test/unit/lib/grammar/inflector.js.map +1 -0
  335. package/dist/test/unit/lib/http/parser/url.d.ts +1 -0
  336. package/dist/test/unit/lib/http/parser/url.js +27 -0
  337. package/dist/test/unit/lib/http/parser/url.js.map +1 -0
  338. package/dist/test/unit/lib/http/response/outgoing.d.ts +1 -0
  339. package/dist/test/unit/lib/http/response/outgoing.js +38 -0
  340. package/dist/test/unit/lib/http/response/outgoing.js.map +1 -0
  341. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.d.ts +1 -0
  342. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js +21 -0
  343. package/dist/test/unit/lib/http/utility/get-status-code-for-error-type.js.map +1 -0
  344. package/dist/test/unit/lib/key-generator/key-generator.d.ts +1 -0
  345. package/dist/test/unit/lib/key-generator/key-generator.js +23 -0
  346. package/dist/test/unit/lib/key-generator/key-generator.js.map +1 -0
  347. package/dist/test/unit/lib/log-capturer/log-capturer.d.ts +1 -0
  348. package/dist/test/unit/lib/log-capturer/log-capturer.js +35 -0
  349. package/dist/test/unit/lib/log-capturer/log-capturer.js.map +1 -0
  350. package/dist/test/unit/lib/logger/formatter.d.ts +1 -0
  351. package/dist/test/unit/lib/logger/formatter.js +32 -0
  352. package/dist/test/unit/lib/logger/formatter.js.map +1 -0
  353. package/dist/test/unit/lib/logger/logger.d.ts +1 -0
  354. package/dist/test/unit/lib/logger/logger.js +194 -0
  355. package/dist/test/unit/lib/logger/logger.js.map +1 -0
  356. package/dist/test/unit/lib/operation/operation.d.ts +1 -0
  357. package/dist/test/unit/lib/operation/operation.js +128 -0
  358. package/dist/test/unit/lib/operation/operation.js.map +1 -0
  359. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.d.ts +1 -0
  360. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js +41 -0
  361. package/dist/test/unit/lib/promise-wrapper/promise-wrapper.js.map +1 -0
  362. package/dist/test/unit/lib/string/create-slug.d.ts +1 -0
  363. package/dist/test/unit/lib/string/create-slug.js +15 -0
  364. package/dist/test/unit/lib/string/create-slug.js.map +1 -0
  365. package/dist/test/unit/lib/time/utility/sleep.d.ts +1 -0
  366. package/dist/test/unit/lib/time/utility/sleep.js +20 -0
  367. package/dist/test/unit/lib/time/utility/sleep.js.map +1 -0
  368. package/dist/test/unit/server/operation/promote-block.js +11 -0
  369. package/dist/test/unit/server/operation/promote-block.js.map +1 -1
  370. package/dist/tsconfig.tsbuildinfo +1 -1
  371. package/package.json +11 -5
  372. package/dist/src/interface/provider.d.ts +0 -6
  373. 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":"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"}
@@ -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,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"}