@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
@@ -1,6 +1,7 @@
1
- type ToolType = 'lock' | 'home' | 'today' | 'settings' | 'folder' | 'todo' | 'note' | 'audio' | 'image';
1
+ type ToolType = 'lock' | 'home' | 'today' | 'history' | 'settings' | 'folder' | 'todo' | 'note' | 'audio' | 'image';
2
2
  type AccountSettings = {
3
- readonly tool_types: ToolType[];
3
+ readonly tools: ToolType[];
4
4
  readonly default_time_place_visibility: 'none' | 'time' | 'place' | 'both';
5
+ readonly history: string[];
5
6
  };
6
7
  export default AccountSettings;
@@ -4,6 +4,6 @@ type Account = {
4
4
  readonly username: string;
5
5
  readonly password: string;
6
6
  readonly settings: AccountSettings;
7
- readonly role: string;
7
+ readonly role_key: string;
8
8
  };
9
9
  export default Account;
@@ -0,0 +1,9 @@
1
+ import Action from './../action';
2
+ import Block from './../block';
3
+ import ActionType from './../../enum/action-type';
4
+ interface HideBlockAction extends Action {
5
+ readonly action_type: ActionType.HIDE_BLOCK;
6
+ readonly index_path: string;
7
+ readonly block: Block;
8
+ }
9
+ export default HideBlockAction;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=hide-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hide-block.js","sourceRoot":"","sources":["../../../../src/type/action/hide-block.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import Action from './../action';
2
+ import Block from './../block';
3
+ import ActionType from './../../enum/action-type';
4
+ interface MoveBlockAction extends Action {
5
+ readonly action_type: ActionType.MOVE_BLOCK;
6
+ readonly index_path: string;
7
+ readonly block: Block;
8
+ readonly target_path: string;
9
+ }
10
+ export default MoveBlockAction;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=move-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-block.js","sourceRoot":"","sources":["../../../../src/type/action/move-block.ts"],"names":[],"mappings":""}
@@ -1,6 +1,8 @@
1
1
  import Block from './../block';
2
2
  import BlockType from './../../enum/block-type';
3
+ import File from './../file';
3
4
  interface AudioBlock extends Block {
4
5
  readonly block_type: BlockType.AUDIO;
6
+ readonly file: File | null;
5
7
  }
6
8
  export default AudioBlock;
@@ -1,6 +1,8 @@
1
1
  import Block from './../block';
2
+ import File from './../file';
2
3
  import BlockType from './../../enum/block-type';
3
4
  interface ImageBlock extends Block {
4
5
  readonly block_type: BlockType.IMAGE;
6
+ readonly file: File | null;
5
7
  }
6
8
  export default ImageBlock;
@@ -0,0 +1,8 @@
1
+ import Block from './../block';
2
+ import BlockType from './../../enum/block-type';
3
+ interface ParameterBlock extends Block {
4
+ readonly block_type: BlockType.PARAMETER;
5
+ readonly key: string;
6
+ readonly value: string;
7
+ }
8
+ export default ParameterBlock;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../../src/type/block/parameter.ts"],"names":[],"mappings":""}
@@ -1,11 +1,12 @@
1
1
  import Account from './account';
2
+ import Role from './role';
2
3
  type BlockMetadata = {
3
4
  readonly page_path: string;
4
5
  readonly editing: boolean;
5
6
  readonly referrer_url: string | null;
6
7
  readonly index_path: string;
7
8
  readonly target_index_path: string | null;
8
- readonly roles: string[];
9
+ readonly roles: Role[];
9
10
  readonly account: Account | null;
10
11
  readonly creator_username: string;
11
12
  };
@@ -1,7 +1,7 @@
1
1
  import BlockType from './../enum/block-type';
2
2
  import Color from './../enum/color';
3
- import PermissionType from './../enum/permission-type';
4
3
  import File from './file';
4
+ import PermissionType from './../enum/permission-type';
5
5
  type Block = {
6
6
  readonly block_type: BlockType;
7
7
  readonly permissions?: Partial<Record<PermissionType, string>>;
@@ -11,7 +11,7 @@ type Block = {
11
11
  readonly show_time?: boolean;
12
12
  readonly show_place?: boolean;
13
13
  readonly color?: Color;
14
- readonly files?: File[];
15
14
  readonly children?: Block[];
15
+ readonly file?: File | null;
16
16
  };
17
17
  export default Block;
@@ -0,0 +1,2 @@
1
+ type ColorValue = 'blue' | 'yellow' | 'fuschia' | 'red' | 'maroon' | 'orange' | 'purple' | 'black' | 'white' | 'grey' | 'green';
2
+ export default ColorValue;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=color-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-value.js","sourceRoot":"","sources":["../../../src/type/color-value.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ type HistoryItem = {
2
+ readonly path: string;
3
+ readonly timestamp: number;
4
+ };
5
+ export default HistoryItem;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=history-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-item.js","sourceRoot":"","sources":["../../../src/type/history-item.ts"],"names":[],"mappings":""}
@@ -1,6 +1,8 @@
1
1
  import Block from './block';
2
+ import FolderBlock from './block/folder';
2
3
  interface Page {
3
4
  readonly path: string;
4
5
  readonly blocks: Block[];
6
+ readonly folder: FolderBlock;
5
7
  }
6
8
  export default Page;
@@ -0,0 +1,7 @@
1
+ import Role from './role';
2
+ type RequestContext = {
3
+ readonly path: string;
4
+ readonly username: string;
5
+ readonly role: Role;
6
+ };
7
+ export default RequestContext;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=request-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../../src/type/request-context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import ColorValue from './color-value';
2
+ type Role = {
3
+ readonly name: string;
4
+ readonly description: string;
5
+ readonly color: ColorValue;
6
+ readonly emoji: string;
7
+ };
8
+ export default Role;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=provider.js.map
3
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../../src/type/role.ts"],"names":[],"mappings":""}
@@ -1,9 +1,10 @@
1
1
  import Repository from './../interface/repository';
2
+ import Role from './role';
2
3
  import Route from './../interface/route';
3
4
  type RuntimeConfig = {
4
5
  readonly public_directory: string;
5
6
  readonly repository: Repository;
6
- readonly roles: string[];
7
+ readonly roles: Role[];
7
8
  readonly routes: Route[];
8
9
  };
9
10
  export default RuntimeConfig;
@@ -1,5 +1,6 @@
1
1
  import Repository from './../interface/repository';
2
2
  import Route from './../interface/route';
3
+ import Role from './role';
3
4
  type ServerSettings = {
4
5
  readonly key?: string;
5
6
  readonly cert?: string;
@@ -7,7 +8,7 @@ type ServerSettings = {
7
8
  readonly port?: number;
8
9
  readonly public_directory?: string;
9
10
  readonly routes?: Route[];
10
- readonly roles?: string[];
11
+ readonly roles?: Role[];
11
12
  readonly repository?: Repository;
12
13
  };
13
14
  export default ServerSettings;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = require("node:assert");
8
+ const environment_1 = require("./../../../../src/lib/environment/index.js");
9
+ const environment_mocker_1 = __importDefault(require("./../../../../src/lib/environment-mocker/index.js"));
10
+ (0, node_test_1.describe)('EnvironmentMocker', () => {
11
+ (0, node_test_1.describe)('mock()', () => {
12
+ (0, node_test_1.it)('overrides default environment type within function', () => {
13
+ environment_mocker_1.default.mock(environment_1.EnvironmentType.PRODUCTION, () => {
14
+ (0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
15
+ });
16
+ });
17
+ (0, node_test_1.it)('resets back to default environment type outside of function', () => {
18
+ const original_environment_type = process.env.NODE_ENV;
19
+ environment_mocker_1.default.mock(environment_1.EnvironmentType.PRODUCTION, () => {
20
+ (0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
21
+ });
22
+ (0, node_assert_1.strictEqual)(process.env.NODE_ENV, original_environment_type);
23
+ });
24
+ });
25
+ (0, node_test_1.describe)('mockAsync()', () => {
26
+ (0, node_test_1.it)('overrides default environment type within function', async () => {
27
+ await environment_mocker_1.default.mockAsync(environment_1.EnvironmentType.PRODUCTION, async () => {
28
+ (0, node_assert_1.strictEqual)(process.env.NODE_ENV, environment_1.EnvironmentType.PRODUCTION);
29
+ });
30
+ });
31
+ (0, node_test_1.it)('resets back to default environment type outside of function', async () => {
32
+ const original_environment_type = process.env.NODE_ENV;
33
+ await environment_mocker_1.default.mockAsync(environment_1.EnvironmentType.PRODUCTION, () => {
34
+ return Promise.resolve();
35
+ });
36
+ (0, node_assert_1.strictEqual)(process.env.NODE_ENV, original_environment_type);
37
+ });
38
+ });
39
+ });
40
+ //# sourceMappingURL=environment-mocker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-mocker.js","sourceRoot":"","sources":["../../../../../test/unit/lib/environment-mocker/environment-mocker.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,iDAAgD;AAChD,gFAAuD;AAEvD,IAAA,oBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,IAAA,oBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBACvD,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,cAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEvD,4BAAiB,CAAC,IAAI,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBACvD,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,oBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,IAAA,cAAE,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,4BAAiB,CAAC,SAAS,CAChC,6BAAe,CAAC,UAAU,EAC1B,KAAK,IAAI,EAAE;gBACV,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,6BAAe,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAA,cAAE,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAEvD,MAAM,4BAAiB,CAAC,SAAS,CAAC,6BAAe,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_test_1 = require("node:test");
4
+ const node_assert_1 = require("node:assert");
5
+ const grammar_1 = require("./../../../../src/lib/grammar/index.js");
6
+ (0, node_test_1.describe)('singularize()', () => {
7
+ (0, node_test_1.it)('returns the expected form for a generic noun', () => {
8
+ const result = (0, grammar_1.singularize)('preferences');
9
+ (0, node_assert_1.strictEqual)(result, 'preference');
10
+ });
11
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ies', () => {
12
+ const result = (0, grammar_1.singularize)('parties');
13
+ (0, node_assert_1.strictEqual)(result, 'party');
14
+ });
15
+ (0, node_test_1.it)('returns the expected form for a noun ending in -i', () => {
16
+ const result = (0, grammar_1.singularize)('octopi');
17
+ (0, node_assert_1.strictEqual)(result, 'octopus');
18
+ });
19
+ (0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
20
+ const result = (0, grammar_1.singularize)('loot');
21
+ (0, node_assert_1.strictEqual)(result, 'loot');
22
+ });
23
+ });
24
+ (0, node_test_1.describe)('pluralize()', () => {
25
+ (0, node_test_1.it)('returns the expected form for a generic noun', () => {
26
+ const result = (0, grammar_1.pluralize)('preference');
27
+ (0, node_assert_1.strictEqual)(result, 'preferences');
28
+ });
29
+ (0, node_test_1.it)('returns the expected form for a noun ending in -y', () => {
30
+ const result = (0, grammar_1.pluralize)('party');
31
+ (0, node_assert_1.strictEqual)(result, 'parties');
32
+ });
33
+ (0, node_test_1.it)('returns the expected form for a noun ending in -us', () => {
34
+ const result = (0, grammar_1.pluralize)('octopus');
35
+ (0, node_assert_1.strictEqual)(result, 'octopi');
36
+ });
37
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ch', () => {
38
+ const result = (0, grammar_1.pluralize)('church');
39
+ (0, node_assert_1.strictEqual)(result, 'churches');
40
+ });
41
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ss', () => {
42
+ const result = (0, grammar_1.pluralize)('mass');
43
+ (0, node_assert_1.strictEqual)(result, 'masses');
44
+ });
45
+ (0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
46
+ const result = (0, grammar_1.pluralize)('loot');
47
+ (0, node_assert_1.strictEqual)(result, 'loot');
48
+ });
49
+ });
50
+ (0, node_test_1.describe)('singularizeOrPluralize()', () => {
51
+ (0, node_test_1.it)('returns the expected form for a single instance', () => {
52
+ const result = (0, grammar_1.singularizeOrPluralize)(1, 'account');
53
+ (0, node_assert_1.strictEqual)(result, '1 account');
54
+ });
55
+ (0, node_test_1.it)('returns the expected form for multiple instances', () => {
56
+ const result = (0, grammar_1.singularizeOrPluralize)(2, 'account');
57
+ (0, node_assert_1.strictEqual)(result, '2 accounts');
58
+ });
59
+ });
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../test/unit/lib/grammar/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_test_1 = require("node:test");
4
+ const node_assert_1 = require("node:assert");
5
+ const grammar_1 = require("./../../../../src/lib/grammar/index.js");
6
+ function singularize(word) {
7
+ const inflector = new grammar_1.NounInflector();
8
+ return inflector.singularize(word);
9
+ }
10
+ function pluralize(word) {
11
+ const inflector = new grammar_1.NounInflector();
12
+ return inflector.pluralize(word);
13
+ }
14
+ function singularizeOrPluralize(count, word) {
15
+ const inflector = new grammar_1.NounInflector();
16
+ return inflector.singularizeOrPluralize(count, word);
17
+ }
18
+ (0, node_test_1.describe)('singularize()', () => {
19
+ (0, node_test_1.it)('returns the expected form for a generic noun', () => {
20
+ const result = singularize('preferences');
21
+ (0, node_assert_1.strictEqual)(result, 'preference');
22
+ });
23
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ies', () => {
24
+ const result = singularize('parties');
25
+ (0, node_assert_1.strictEqual)(result, 'party');
26
+ });
27
+ (0, node_test_1.it)('returns the expected form for a noun ending in -i', () => {
28
+ const result = singularize('octopi');
29
+ (0, node_assert_1.strictEqual)(result, 'octopus');
30
+ });
31
+ (0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
32
+ const result = singularize('loot');
33
+ (0, node_assert_1.strictEqual)(result, 'loot');
34
+ });
35
+ });
36
+ (0, node_test_1.describe)('pluralize()', () => {
37
+ (0, node_test_1.it)('returns the expected form for a generic noun', () => {
38
+ const result = pluralize('preference');
39
+ (0, node_assert_1.strictEqual)(result, 'preferences');
40
+ });
41
+ (0, node_test_1.it)('returns the expected form for a noun ending in -y', () => {
42
+ const result = pluralize('party');
43
+ (0, node_assert_1.strictEqual)(result, 'parties');
44
+ });
45
+ (0, node_test_1.it)('returns the expected form for a noun ending in -us', () => {
46
+ const result = pluralize('octopus');
47
+ (0, node_assert_1.strictEqual)(result, 'octopi');
48
+ });
49
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ch', () => {
50
+ const result = pluralize('church');
51
+ (0, node_assert_1.strictEqual)(result, 'churches');
52
+ });
53
+ (0, node_test_1.it)('returns the expected form for a noun ending in -ss', () => {
54
+ const result = pluralize('mass');
55
+ (0, node_assert_1.strictEqual)(result, 'masses');
56
+ });
57
+ (0, node_test_1.it)('returns the expected form for a noun that is explicitly mapped', () => {
58
+ const result = pluralize('loot');
59
+ (0, node_assert_1.strictEqual)(result, 'loot');
60
+ });
61
+ });
62
+ (0, node_test_1.describe)('singularizeOrPluralize()', () => {
63
+ (0, node_test_1.it)('returns the expected form for a single instance', () => {
64
+ const result = singularizeOrPluralize(1, 'account');
65
+ (0, node_assert_1.strictEqual)(result, '1 account');
66
+ });
67
+ (0, node_test_1.it)('returns the expected form for multiple instances', () => {
68
+ const result = singularizeOrPluralize(2, 'account');
69
+ (0, node_assert_1.strictEqual)(result, '2 accounts');
70
+ });
71
+ });
72
+ //# sourceMappingURL=inflector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflector.js","sourceRoot":"","sources":["../../../../../test/unit/lib/grammar/inflector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = require("node:assert");
8
+ const network_1 = require("./../../../../../src/lib/network/index.js");
9
+ const url_1 = __importDefault(require("./../../../../../src/lib/http/parser/url.js"));
10
+ (0, node_test_1.describe)('UrlParser', () => {
11
+ (0, node_test_1.describe)('parse()', () => {
12
+ (0, node_test_1.describe)('when given a fully qualified url', () => {
13
+ (0, node_test_1.it)('returns expected url data', () => {
14
+ const url = 'https://foobar.com:1234/baz/wat/?bam=ay&foo=123#blah!';
15
+ const parser = new url_1.default(url);
16
+ const parsed_url = parser.parse();
17
+ (0, node_assert_1.deepEqual)(parsed_url, {
18
+ protocol: network_1.NetworkProtocol.HTTPS,
19
+ hostname: 'foobar.com',
20
+ port: 1234,
21
+ path: '/baz/wat/?bam=ay&foo=123#blah!'
22
+ });
23
+ });
24
+ });
25
+ });
26
+ });
27
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/parser/url.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAsC;AAEtC,yCAA4C;AAE5C,8DAA4C;AAE5C,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;QACxB,IAAA,oBAAQ,EAAC,kCAAkC,EAAE,GAAG,EAAE;YACjD,IAAA,cAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,uDAAuD,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,aAAS,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;gBAElC,IAAA,uBAAS,EAAC,UAAU,EAAE;oBACrB,QAAQ,EAAE,yBAAe,CAAC,KAAK;oBAC/B,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,gCAAgC;iBACtC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const http_1 = __importDefault(require("http"));
7
+ const node_test_1 = require("node:test");
8
+ const node_assert_1 = require("node:assert");
9
+ const errors_1 = require("./../../../../../src/lib/errors/index.js");
10
+ const http_2 = require("./../../../../../src/lib/http/index.js");
11
+ const test_1 = require("./../../../../../src/lib/test/index.js");
12
+ (0, node_test_1.describe)('.error()', () => {
13
+ (0, node_test_1.it)('sets the expected status code and message on the response', async () => {
14
+ const execution_context = (0, test_1.buildExecutionContext)();
15
+ const server = http_1.default.createServer((_native_request, native_response) => {
16
+ const response = new http_2.OutgoingResponse(native_response);
17
+ response.setExecutionContext(execution_context);
18
+ const error = new errors_1.NotFoundError('Unable to find the specified widget');
19
+ response.error(error);
20
+ });
21
+ server.listen(3341);
22
+ const outgoing_request = new http_2.OutgoingRequest('http://localhost:3341', execution_context);
23
+ try {
24
+ await outgoing_request.get();
25
+ }
26
+ catch (error) {
27
+ if (!(error instanceof errors_1.NotFoundError)) {
28
+ throw error;
29
+ }
30
+ (0, node_assert_1.strictEqual)(error.message, 'Unable to find the specified widget');
31
+ }
32
+ const response = outgoing_request.getResponse();
33
+ const status_code = response.getStatusCode();
34
+ (0, node_assert_1.strictEqual)(status_code, http_2.StatusCode.FILE_NOT_FOUND);
35
+ server.close();
36
+ });
37
+ });
38
+ //# sourceMappingURL=outgoing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outgoing.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/response/outgoing.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,yCAAuC;AACvC,6CAAwC;AAExC,uCAAyC;AAEzC,mCAAuE;AACvE,mCAA+C;AAE/C,IAAA,oBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACzB,IAAA,cAAE,EAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,GAAE,CAAC;QAElD,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE;YACrE,MAAM,QAAQ,GAAG,IAAI,uBAAgB,CAAC,eAAe,CAAC,CAAC;YAEvD,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAEhD,MAAM,KAAK,GAAG,IAAI,sBAAa,CAAC,qCAAqC,CAAC,CAAC;YAEvE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,gBAAgB,GAAG,IAAI,sBAAe,CAC3C,uBAAuB,EACvB,iBAAiB,CACjB,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,KAAK,YAAY,sBAAa,CAAC,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACb,CAAC;YAED,IAAA,yBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE7C,IAAA,yBAAW,EAAC,WAAW,EAAE,iBAAU,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = require("node:assert");
8
+ const errors_1 = require("./../../../../../src/lib/errors/index.js");
9
+ const http_1 = require("./../../../../../src/lib/http/index.js");
10
+ const get_status_code_for_error_type_1 = __importDefault(require("./../../../../../src/lib/http/utility/get-status-code-for-error-type.js"));
11
+ const ALL_STATUS_CODES = Object.values(http_1.StatusCode);
12
+ (0, node_test_1.describe)('getStatusCodeForErrorType()', () => {
13
+ (0, node_test_1.it)('returns status codes for all error types', () => {
14
+ Object.values(errors_1.ErrorType).forEach((error_type) => {
15
+ const status_code = (0, get_status_code_for_error_type_1.default)(error_type);
16
+ const exists = ALL_STATUS_CODES.includes(status_code);
17
+ (0, node_assert_1.strictEqual)(exists, true);
18
+ });
19
+ });
20
+ });
21
+ //# sourceMappingURL=get-status-code-for-error-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-status-code-for-error-type.js","sourceRoot":"","sources":["../../../../../../test/unit/lib/http/utility/get-status-code-for-error-type.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,uCAAqC;AAErC,mCAAoC;AACpC,qHAAwF;AAExF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAU,CAAC,CAAC;AAEnD,IAAA,oBAAQ,EAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,IAAA,cAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,MAAM,CAAC,kBAAS,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,MAAM,WAAW,GAAG,IAAA,wCAAyB,EAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEtD,IAAA,yBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = require("node:assert");
8
+ const key_generator_1 = __importDefault(require("./../../../../src/lib/key-generator/index.js"));
9
+ (0, node_test_1.describe)('.generateToken()', () => {
10
+ (0, node_test_1.it)('returns a string of the expected length', () => {
11
+ const token = key_generator_1.default.generateToken();
12
+ (0, node_assert_1.strictEqual)(token.length, 13);
13
+ });
14
+ (0, node_test_1.it)('returns different strings every time', () => {
15
+ const seen = [];
16
+ while (seen.length < 1000) {
17
+ const token = key_generator_1.default.generateToken();
18
+ (0, node_assert_1.strictEqual)(seen.includes(token), false);
19
+ seen.push(token);
20
+ }
21
+ });
22
+ });
23
+ //# sourceMappingURL=key-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-generator.js","sourceRoot":"","sources":["../../../../../test/unit/lib/key-generator/key-generator.ts"],"names":[],"mappings":";;;;;AAAA,yCAAuC;AACvC,6CAAwC;AAExC,sEAA6C;AAE7C,IAAA,oBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,uBAAY,CAAC,aAAa,EAAE,CAAC;QAE3C,IAAA,yBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,uBAAY,CAAC,aAAa,EAAE,CAAC;YAE3C,IAAA,yBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};