@fc3/mmcadi 0.1.23 → 0.1.25

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 (438) hide show
  1. package/bin/compile +2 -2
  2. package/dist/.last-compile-time +1 -1
  3. package/dist/.last-publish-time +1 -1
  4. package/dist/client.js +1343 -266
  5. package/dist/src/client/client.js +1 -1
  6. package/dist/src/client/client.js.map +1 -1
  7. package/dist/src/client/enum/media-ready-state.d.ts +8 -0
  8. package/dist/src/client/enum/media-ready-state.js +12 -0
  9. package/dist/src/client/enum/media-ready-state.js.map +1 -0
  10. package/dist/src/client/enum/page-type.d.ts +3 -1
  11. package/dist/src/client/enum/page-type.js +2 -0
  12. package/dist/src/client/enum/page-type.js.map +1 -1
  13. package/dist/src/client/factory/page.js +5 -1
  14. package/dist/src/client/factory/page.js.map +1 -1
  15. package/dist/src/client/page/add-block-to-playlist.d.ts +5 -0
  16. package/dist/src/client/page/add-block-to-playlist.js +12 -0
  17. package/dist/src/client/page/add-block-to-playlist.js.map +1 -0
  18. package/dist/src/client/page/confirm-delete-block.js +1 -1
  19. package/dist/src/client/page/confirm-delete-block.js.map +1 -1
  20. package/dist/src/client/page/confirm-hide-block.js +1 -1
  21. package/dist/src/client/page/confirm-hide-block.js.map +1 -1
  22. package/dist/src/client/page/cursor.d.ts +45 -0
  23. package/dist/src/client/page/cursor.js +429 -0
  24. package/dist/src/client/page/cursor.js.map +1 -0
  25. package/dist/src/client/page/edit-block.js +1 -1
  26. package/dist/src/client/page/edit-block.js.map +1 -1
  27. package/dist/src/client/page/history.js +1 -1
  28. package/dist/src/client/page/history.js.map +1 -1
  29. package/dist/src/client/page/select-block-type.js +1 -1
  30. package/dist/src/client/page/select-block-type.js.map +1 -1
  31. package/dist/src/client/page/view-custom.d.ts +3 -29
  32. package/dist/src/client/page/view-custom.js +4 -289
  33. package/dist/src/client/page/view-custom.js.map +1 -1
  34. package/dist/src/client/page/view-playlist.d.ts +5 -0
  35. package/dist/src/client/page/view-playlist.js +16 -0
  36. package/dist/src/client/page/view-playlist.js.map +1 -0
  37. package/dist/src/client/page.d.ts +1 -0
  38. package/dist/src/client/page.js +8 -1
  39. package/dist/src/client/page.js.map +1 -1
  40. package/dist/src/client/shim/logger.d.ts +8 -2
  41. package/dist/src/client/shim/logger.js +19 -2
  42. package/dist/src/client/shim/logger.js.map +1 -1
  43. package/dist/src/client/shim/process.d.ts +4 -0
  44. package/dist/src/client/shim/process.js +16 -0
  45. package/dist/src/client/shim/process.js.map +1 -0
  46. package/dist/src/client/utility/get-block-activation-href.js +1 -1
  47. package/dist/src/client/utility/get-block-activation-href.js.map +1 -1
  48. package/dist/src/client/utility/get-meta-value.js +1 -1
  49. package/dist/src/client/utility/get-meta-value.js.map +1 -1
  50. package/dist/src/common/builder/block/background.js +1 -1
  51. package/dist/src/common/builder/block/background.js.map +1 -1
  52. package/dist/src/common/builder/block/folder.js +1 -1
  53. package/dist/src/common/builder/block/folder.js.map +1 -1
  54. package/dist/src/common/builder/block/header.d.ts +4 -1
  55. package/dist/src/common/builder/block/header.js +16 -3
  56. package/dist/src/common/builder/block/header.js.map +1 -1
  57. package/dist/src/common/builder/block/link.js +1 -1
  58. package/dist/src/common/builder/block/link.js.map +1 -1
  59. package/dist/src/constant/role/creator.js +1 -1
  60. package/dist/src/constant/role/creator.js.map +1 -1
  61. package/dist/src/constant/role/public.js +1 -1
  62. package/dist/src/constant/role/public.js.map +1 -1
  63. package/dist/src/constant/role/unknown.js +1 -1
  64. package/dist/src/constant/role/unknown.js.map +1 -1
  65. package/dist/src/enum/action-type.d.ts +2 -1
  66. package/dist/src/enum/action-type.js +1 -0
  67. package/dist/src/enum/action-type.js.map +1 -1
  68. package/dist/src/enum/block-type.d.ts +1 -0
  69. package/dist/src/enum/block-type.js +1 -0
  70. package/dist/src/enum/block-type.js.map +1 -1
  71. package/dist/src/enum/emoji.d.ts +10 -2
  72. package/dist/src/enum/emoji.js +9 -1
  73. package/dist/src/enum/emoji.js.map +1 -1
  74. package/dist/src/index.d.ts +1 -0
  75. package/dist/src/index.js +3 -1
  76. package/dist/src/index.js.map +1 -1
  77. package/dist/src/interface/repository.d.ts +10 -2
  78. package/dist/src/lib/feature/feature.js +2 -2
  79. package/dist/src/lib/feature/feature.js.map +1 -1
  80. package/dist/src/lib/filesystem/enum/file-extension.d.ts +1 -0
  81. package/dist/src/lib/filesystem/enum/file-extension.js +1 -0
  82. package/dist/src/lib/filesystem/enum/file-extension.js.map +1 -1
  83. package/dist/src/lib/http/enum/content-type.d.ts +1 -0
  84. package/dist/src/lib/http/enum/content-type.js +1 -0
  85. package/dist/src/lib/http/enum/content-type.js.map +1 -1
  86. package/dist/src/lib/http/enum/header.d.ts +4 -0
  87. package/dist/src/lib/http/enum/header.js +4 -0
  88. package/dist/src/lib/http/enum/header.js.map +1 -1
  89. package/dist/src/lib/http/utility/get-content-type-for-extension.js +2 -0
  90. package/dist/src/lib/http/utility/get-content-type-for-extension.js.map +1 -1
  91. package/dist/src/lib/random/elements.js +1 -1
  92. package/dist/src/lib/random/elements.js.map +1 -1
  93. package/dist/src/lib/server/http/endpoint/ping.d.ts +2 -3
  94. package/dist/src/lib/server/http/endpoint.js +1 -1
  95. package/dist/src/lib/server/http/endpoint.js.map +1 -1
  96. package/dist/src/operation.d.ts +2 -2
  97. package/dist/src/operation.js +3 -2
  98. package/dist/src/operation.js.map +1 -1
  99. package/dist/src/server/endpoint/abstract-page.d.ts +1 -1
  100. package/dist/src/server/endpoint/abstract-page.js +2 -2
  101. package/dist/src/server/endpoint/abstract-page.js.map +1 -1
  102. package/dist/src/server/endpoint/action/create.d.ts +2 -1
  103. package/dist/src/server/endpoint/action/create.js +65 -3
  104. package/dist/src/server/endpoint/action/create.js.map +1 -1
  105. package/dist/src/server/endpoint/action/get.d.ts +5 -1
  106. package/dist/src/server/endpoint/action/get.js +53 -6
  107. package/dist/src/server/endpoint/action/get.js.map +1 -1
  108. package/dist/src/server/endpoint/base.d.ts +3 -1
  109. package/dist/src/server/endpoint/base.js +8 -3
  110. package/dist/src/server/endpoint/base.js.map +1 -1
  111. package/dist/src/server/endpoint/history.d.ts +1 -1
  112. package/dist/src/server/endpoint/history.js +3 -3
  113. package/dist/src/server/endpoint/history.js.map +1 -1
  114. package/dist/src/server/endpoint/login.d.ts +1 -1
  115. package/dist/src/server/endpoint/login.js +2 -2
  116. package/dist/src/server/endpoint/login.js.map +1 -1
  117. package/dist/src/server/endpoint/logout.d.ts +1 -1
  118. package/dist/src/server/endpoint/logout.js +1 -1
  119. package/dist/src/server/endpoint/logout.js.map +1 -1
  120. package/dist/src/server/endpoint/month.d.ts +1 -1
  121. package/dist/src/server/endpoint/month.js +1 -1
  122. package/dist/src/server/endpoint/month.js.map +1 -1
  123. package/dist/src/server/endpoint/playlist/create.d.ts +14 -0
  124. package/dist/src/server/endpoint/playlist/create.js +38 -0
  125. package/dist/src/server/endpoint/playlist/create.js.map +1 -0
  126. package/dist/src/server/endpoint/playlist/get.d.ts +17 -0
  127. package/dist/src/server/endpoint/playlist/get.js +106 -0
  128. package/dist/src/server/endpoint/playlist/get.js.map +1 -0
  129. package/dist/src/server/endpoint/robots.d.ts +1 -1
  130. package/dist/src/server/endpoint/robots.js +1 -1
  131. package/dist/src/server/endpoint/robots.js.map +1 -1
  132. package/dist/src/server/endpoint/session/create.d.ts +1 -1
  133. package/dist/src/server/endpoint/session/create.js +2 -2
  134. package/dist/src/server/endpoint/session/create.js.map +1 -1
  135. package/dist/src/server/endpoint/settings/get.d.ts +3 -1
  136. package/dist/src/server/endpoint/settings/get.js +28 -9
  137. package/dist/src/server/endpoint/settings/get.js.map +1 -1
  138. package/dist/src/server/endpoint/settings/update.d.ts +1 -1
  139. package/dist/src/server/endpoint/settings/update.js +1 -1
  140. package/dist/src/server/endpoint/settings/update.js.map +1 -1
  141. package/dist/src/server/endpoint/week.d.ts +1 -1
  142. package/dist/src/server/endpoint/week.js +1 -1
  143. package/dist/src/server/endpoint/week.js.map +1 -1
  144. package/dist/src/server/endpoint/year.d.ts +1 -1
  145. package/dist/src/server/endpoint/year.js +1 -1
  146. package/dist/src/server/endpoint/year.js.map +1 -1
  147. package/dist/src/server/factory/block-serializer.d.ts +1 -1
  148. package/dist/src/server/factory/block-serializer.js +4 -1
  149. package/dist/src/server/factory/block-serializer.js.map +1 -1
  150. package/dist/src/server/middleware/base.d.ts +1 -1
  151. package/dist/src/server/middleware/base.js +1 -1
  152. package/dist/src/server/middleware/base.js.map +1 -1
  153. package/dist/src/server/middleware/error-handler.d.ts +1 -1
  154. package/dist/src/server/middleware/error-handler.js +4 -3
  155. package/dist/src/server/middleware/error-handler.js.map +1 -1
  156. package/dist/src/server/middleware/static-file.d.ts +1 -1
  157. package/dist/src/server/middleware/static-file.js +103 -24
  158. package/dist/src/server/middleware/static-file.js.map +1 -1
  159. package/dist/src/server/operation/add-block.d.ts +1 -1
  160. package/dist/src/server/operation/add-block.js +21 -3
  161. package/dist/src/server/operation/add-block.js.map +1 -1
  162. package/dist/src/server/operation/add-entry-to-playlist.d.ts +12 -0
  163. package/dist/src/server/operation/add-entry-to-playlist.js +65 -0
  164. package/dist/src/server/operation/add-entry-to-playlist.js.map +1 -0
  165. package/dist/src/server/operation/create-playlist.d.ts +10 -0
  166. package/dist/src/server/operation/create-playlist.js +35 -0
  167. package/dist/src/server/operation/create-playlist.js.map +1 -0
  168. package/dist/src/server/operation/create-session.d.ts +1 -1
  169. package/dist/src/server/operation/create-session.js +1 -1
  170. package/dist/src/server/operation/create-session.js.map +1 -1
  171. package/dist/src/server/operation/delete-block.d.ts +2 -1
  172. package/dist/src/server/operation/delete-block.js +21 -4
  173. package/dist/src/server/operation/delete-block.js.map +1 -1
  174. package/dist/src/server/operation/demote-block.d.ts +1 -1
  175. package/dist/src/server/operation/demote-block.js +1 -1
  176. package/dist/src/server/operation/demote-block.js.map +1 -1
  177. package/dist/src/server/operation/destroy-session.d.ts +1 -1
  178. package/dist/src/server/operation/destroy-session.js +1 -1
  179. package/dist/src/server/operation/destroy-session.js.map +1 -1
  180. package/dist/src/server/operation/find-account.d.ts +1 -1
  181. package/dist/src/server/operation/find-account.js +2 -6
  182. package/dist/src/server/operation/find-account.js.map +1 -1
  183. package/dist/src/server/operation/find-playlist.d.ts +10 -0
  184. package/dist/src/server/operation/find-playlist.js +22 -0
  185. package/dist/src/server/operation/find-playlist.js.map +1 -0
  186. package/dist/src/server/operation/hide-block.d.ts +1 -1
  187. package/dist/src/server/operation/hide-block.js +1 -1
  188. package/dist/src/server/operation/hide-block.js.map +1 -1
  189. package/dist/src/server/operation/load-account.d.ts +1 -0
  190. package/dist/src/server/operation/load-account.js +7 -0
  191. package/dist/src/server/operation/load-account.js.map +1 -1
  192. package/dist/src/server/operation/load-block.d.ts +1 -1
  193. package/dist/src/server/operation/load-block.js +1 -1
  194. package/dist/src/server/operation/load-block.js.map +1 -1
  195. package/dist/src/server/operation/load-directory-items.d.ts +1 -1
  196. package/dist/src/server/operation/load-directory-items.js +1 -1
  197. package/dist/src/server/operation/load-directory-items.js.map +1 -1
  198. package/dist/src/server/operation/load-page.d.ts +1 -1
  199. package/dist/src/server/operation/load-page.js +7 -9
  200. package/dist/src/server/operation/load-page.js.map +1 -1
  201. package/dist/src/server/operation/load-playlists-for-account.d.ts +11 -0
  202. package/dist/src/server/operation/load-playlists-for-account.js +22 -0
  203. package/dist/src/server/operation/load-playlists-for-account.js.map +1 -0
  204. package/dist/src/server/operation/move-block.d.ts +2 -1
  205. package/dist/src/server/operation/move-block.js +25 -5
  206. package/dist/src/server/operation/move-block.js.map +1 -1
  207. package/dist/src/server/operation/promote-block.d.ts +1 -1
  208. package/dist/src/server/operation/promote-block.js +1 -1
  209. package/dist/src/server/operation/promote-block.js.map +1 -1
  210. package/dist/src/server/operation/save-page.d.ts +1 -1
  211. package/dist/src/server/operation/save-page.js +1 -1
  212. package/dist/src/server/operation/save-page.js.map +1 -1
  213. package/dist/src/server/operation/store-file.d.ts +1 -1
  214. package/dist/src/server/operation/store-file.js +11 -8
  215. package/dist/src/server/operation/store-file.js.map +1 -1
  216. package/dist/src/server/operation/update-account-settings.d.ts +1 -1
  217. package/dist/src/server/operation/update-account-settings.js +2 -2
  218. package/dist/src/server/operation/update-account-settings.js.map +1 -1
  219. package/dist/src/server/operation/update-block.d.ts +1 -1
  220. package/dist/src/server/operation/update-block.js +1 -1
  221. package/dist/src/server/operation/update-block.js.map +1 -1
  222. package/dist/src/server/repository/filesystem.d.ts +30 -0
  223. package/dist/src/server/repository/filesystem.js +179 -0
  224. package/dist/src/server/repository/filesystem.js.map +1 -0
  225. package/dist/src/server/repository/memory.d.ts +11 -2
  226. package/dist/src/server/repository/memory.js +69 -5
  227. package/dist/src/server/repository/memory.js.map +1 -1
  228. package/dist/src/server/serializer/action.d.ts +6 -1
  229. package/dist/src/server/serializer/action.js +223 -10
  230. package/dist/src/server/serializer/action.js.map +1 -1
  231. package/dist/src/server/serializer/base.d.ts +3 -2
  232. package/dist/src/server/serializer/base.js +42 -3
  233. package/dist/src/server/serializer/base.js.map +1 -1
  234. package/dist/src/server/serializer/block/audio.js +11 -2
  235. package/dist/src/server/serializer/block/audio.js.map +1 -1
  236. package/dist/src/server/serializer/block/header.js +3 -2
  237. package/dist/src/server/serializer/block/header.js.map +1 -1
  238. package/dist/src/server/serializer/block/image.js +1 -1
  239. package/dist/src/server/serializer/block/image.js.map +1 -1
  240. package/dist/src/server/serializer/block/list.js +1 -1
  241. package/dist/src/server/serializer/block/list.js.map +1 -1
  242. package/dist/src/server/serializer/block/video.d.ts +6 -0
  243. package/dist/src/server/{result-serializer/block/note.js → serializer/block/video.js} +19 -19
  244. package/dist/src/server/serializer/block/video.js.map +1 -0
  245. package/dist/src/server/serializer/block/whitespace.js +12 -1
  246. package/dist/src/server/serializer/block/whitespace.js.map +1 -1
  247. package/dist/src/server/serializer/block.d.ts +2 -2
  248. package/dist/src/server/serializer/block.js +7 -6
  249. package/dist/src/server/serializer/block.js.map +1 -1
  250. package/dist/src/server/serializer/history.d.ts +1 -1
  251. package/dist/src/server/serializer/page.d.ts +1 -1
  252. package/dist/src/server/serializer/page.js +4 -31
  253. package/dist/src/server/serializer/page.js.map +1 -1
  254. package/dist/src/server/serializer/playlist.d.ts +27 -0
  255. package/dist/src/server/serializer/playlist.js +46 -0
  256. package/dist/src/server/serializer/playlist.js.map +1 -0
  257. package/dist/src/server/serializer/settings.d.ts +9 -0
  258. package/dist/src/server/serializer/settings.js +43 -0
  259. package/dist/src/server/serializer/settings.js.map +1 -1
  260. package/dist/src/server/serializer/week.js +2 -2
  261. package/dist/src/server/serializer/week.js.map +1 -1
  262. package/dist/src/server/serializer/year.js +2 -2
  263. package/dist/src/server/serializer/year.js.map +1 -1
  264. package/dist/src/server/utility/accepts-content-type.d.ts +1 -1
  265. package/dist/src/server/utility/accepts-content-type.js +1 -1
  266. package/dist/src/server/utility/accepts-content-type.js.map +1 -1
  267. package/dist/src/server/utility/accepts-html.d.ts +1 -1
  268. package/dist/src/server/utility/accepts-html.js +1 -1
  269. package/dist/src/server/utility/accepts-html.js.map +1 -1
  270. package/dist/src/server/utility/accepts-json.d.ts +1 -1
  271. package/dist/src/server/utility/accepts-json.js +1 -1
  272. package/dist/src/server/utility/accepts-json.js.map +1 -1
  273. package/dist/src/server/utility/create-date.js +1 -1
  274. package/dist/src/server/utility/create-date.js.map +1 -1
  275. package/dist/src/server/utility/day-to-date.js +1 -1
  276. package/dist/src/server/utility/day-to-date.js.map +1 -1
  277. package/dist/src/server/utility/get-block-at-index-path.js +1 -1
  278. package/dist/src/server/utility/get-block-at-index-path.js.map +1 -1
  279. package/dist/src/server/utility/get-custom-page-type-for-path.js +1 -1
  280. package/dist/src/server/utility/get-custom-page-type-for-path.js.map +1 -1
  281. package/dist/src/server/utility/get-emoji-for-block-type.js +6 -2
  282. package/dist/src/server/utility/get-emoji-for-block-type.js.map +1 -1
  283. package/dist/src/server/utility/get-hex-for-color.js +1 -1
  284. package/dist/src/server/utility/get-hex-for-color.js.map +1 -1
  285. package/dist/src/server/utility/get-key-for-role.js +1 -1
  286. package/dist/src/server/utility/get-key-for-role.js.map +1 -1
  287. package/dist/src/server/utility/get-label-for-time-place-visibility.js +1 -1
  288. package/dist/src/server/utility/get-label-for-time-place-visibility.js.map +1 -1
  289. package/dist/src/server/utility/get-month-name.js +1 -1
  290. package/dist/src/server/utility/get-month-name.js.map +1 -1
  291. package/dist/src/server/utility/get-parent-index-path.js +1 -1
  292. package/dist/src/server/utility/get-parent-index-path.js.map +1 -1
  293. package/dist/src/server/utility/get-random-emoji-for-date.js +2 -2
  294. package/dist/src/server/utility/get-random-emoji-for-date.js.map +1 -1
  295. package/dist/src/server/utility/get-siblings-and-index-for-index-path.js +2 -2
  296. package/dist/src/server/utility/get-siblings-and-index-for-index-path.js.map +1 -1
  297. package/dist/src/server/utility/get-thumbnail-filename.js +1 -1
  298. package/dist/src/server/utility/get-thumbnail-filename.js.map +1 -1
  299. package/dist/src/server/utility/get-weekday-name.js +1 -1
  300. package/dist/src/server/utility/get-weekday-name.js.map +1 -1
  301. package/dist/src/server/utility/key-to-date.js +1 -1
  302. package/dist/src/server/utility/key-to-date.js.map +1 -1
  303. package/dist/src/server/utility/month-to-date.js +1 -1
  304. package/dist/src/server/utility/month-to-date.js.map +1 -1
  305. package/dist/src/server/utility/parse-index-path.js +1 -1
  306. package/dist/src/server/utility/parse-index-path.js.map +1 -1
  307. package/dist/src/server/utility/path-to-date.js +1 -1
  308. package/dist/src/server/utility/path-to-date.js.map +1 -1
  309. package/dist/src/server/utility/supports-thumbnail.d.ts +2 -0
  310. package/dist/src/server/utility/supports-thumbnail.js +14 -0
  311. package/dist/src/server/utility/supports-thumbnail.js.map +1 -0
  312. package/dist/src/server/utility/validate-page.js +1 -1
  313. package/dist/src/server/utility/validate-page.js.map +1 -1
  314. package/dist/src/server/utility/validate-path.js +1 -1
  315. package/dist/src/server/utility/validate-path.js.map +1 -1
  316. package/dist/src/server/utility/validate-url.js +1 -1
  317. package/dist/src/server/utility/validate-url.js.map +1 -1
  318. package/dist/src/server/utility/year-to-date.js +1 -1
  319. package/dist/src/server/utility/year-to-date.js.map +1 -1
  320. package/dist/src/server.d.ts +6 -1
  321. package/dist/src/server.js +43 -11
  322. package/dist/src/server.js.map +1 -1
  323. package/dist/src/type/action/add-block-to-playlist.d.ts +11 -0
  324. package/dist/src/type/action/add-block-to-playlist.js +3 -0
  325. package/dist/src/type/action/add-block-to-playlist.js.map +1 -0
  326. package/dist/src/type/action/add-block.d.ts +10 -2
  327. package/dist/src/type/block/audio.d.ts +2 -0
  328. package/dist/src/type/block/header.d.ts +2 -0
  329. package/dist/src/type/block/video.d.ts +8 -0
  330. package/dist/src/type/{history-item.js → block/video.js} +1 -1
  331. package/dist/src/type/block/video.js.map +1 -0
  332. package/dist/src/type/playlist.d.ts +11 -0
  333. package/dist/src/type/playlist.js +3 -0
  334. package/dist/src/type/playlist.js.map +1 -0
  335. package/dist/src/type/unpersisted.d.ts +2 -0
  336. package/dist/src/type/unpersisted.js +3 -0
  337. package/dist/src/type/unpersisted.js.map +1 -0
  338. package/dist/test/unit/server/operation/promote-block.js +2 -2
  339. package/dist/test/unit/server/operation/promote-block.js.map +1 -1
  340. package/dist/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +18 -3
  342. package/dist/src/server/endpoint/account/get.d.ts +0 -14
  343. package/dist/src/server/endpoint/account/get.js +0 -34
  344. package/dist/src/server/endpoint/account/get.js.map +0 -1
  345. package/dist/src/server/endpoint/role/get.d.ts +0 -14
  346. package/dist/src/server/endpoint/role/get.js +0 -43
  347. package/dist/src/server/endpoint/role/get.js.map +0 -1
  348. package/dist/src/server/factory/block-result-serializer.d.ts +0 -15
  349. package/dist/src/server/factory/block-result-serializer.js +0 -80
  350. package/dist/src/server/factory/block-result-serializer.js.map +0 -1
  351. package/dist/src/server/operation/store-files.d.ts +0 -15
  352. package/dist/src/server/operation/store-files.js +0 -84
  353. package/dist/src/server/operation/store-files.js.map +0 -1
  354. package/dist/src/server/result-serializer/account.d.ts +0 -9
  355. package/dist/src/server/result-serializer/account.js +0 -26
  356. package/dist/src/server/result-serializer/account.js.map +0 -1
  357. package/dist/src/server/result-serializer/action.d.ts +0 -38
  358. package/dist/src/server/result-serializer/action.js +0 -794
  359. package/dist/src/server/result-serializer/action.js.map +0 -1
  360. package/dist/src/server/result-serializer/base.d.ts +0 -31
  361. package/dist/src/server/result-serializer/base.js +0 -1224
  362. package/dist/src/server/result-serializer/base.js.map +0 -1
  363. package/dist/src/server/result-serializer/block/audio.d.ts +0 -6
  364. package/dist/src/server/result-serializer/block/audio.js +0 -31
  365. package/dist/src/server/result-serializer/block/audio.js.map +0 -1
  366. package/dist/src/server/result-serializer/block/background.d.ts +0 -6
  367. package/dist/src/server/result-serializer/block/background.js +0 -22
  368. package/dist/src/server/result-serializer/block/background.js.map +0 -1
  369. package/dist/src/server/result-serializer/block/calendar.d.ts +0 -7
  370. package/dist/src/server/result-serializer/block/calendar.js +0 -140
  371. package/dist/src/server/result-serializer/block/calendar.js.map +0 -1
  372. package/dist/src/server/result-serializer/block/directory.d.ts +0 -7
  373. package/dist/src/server/result-serializer/block/directory.js +0 -53
  374. package/dist/src/server/result-serializer/block/directory.js.map +0 -1
  375. package/dist/src/server/result-serializer/block/ephemeral.d.ts +0 -6
  376. package/dist/src/server/result-serializer/block/ephemeral.js +0 -16
  377. package/dist/src/server/result-serializer/block/ephemeral.js.map +0 -1
  378. package/dist/src/server/result-serializer/block/folder.d.ts +0 -14
  379. package/dist/src/server/result-serializer/block/folder.js +0 -140
  380. package/dist/src/server/result-serializer/block/folder.js.map +0 -1
  381. package/dist/src/server/result-serializer/block/header.d.ts +0 -6
  382. package/dist/src/server/result-serializer/block/header.js +0 -35
  383. package/dist/src/server/result-serializer/block/header.js.map +0 -1
  384. package/dist/src/server/result-serializer/block/image.d.ts +0 -6
  385. package/dist/src/server/result-serializer/block/image.js +0 -46
  386. package/dist/src/server/result-serializer/block/image.js.map +0 -1
  387. package/dist/src/server/result-serializer/block/link.d.ts +0 -6
  388. package/dist/src/server/result-serializer/block/link.js +0 -39
  389. package/dist/src/server/result-serializer/block/link.js.map +0 -1
  390. package/dist/src/server/result-serializer/block/list.d.ts +0 -13
  391. package/dist/src/server/result-serializer/block/list.js +0 -113
  392. package/dist/src/server/result-serializer/block/list.js.map +0 -1
  393. package/dist/src/server/result-serializer/block/multi-column.d.ts +0 -6
  394. package/dist/src/server/result-serializer/block/multi-column.js +0 -78
  395. package/dist/src/server/result-serializer/block/multi-column.js.map +0 -1
  396. package/dist/src/server/result-serializer/block/note.d.ts +0 -6
  397. package/dist/src/server/result-serializer/block/note.js.map +0 -1
  398. package/dist/src/server/result-serializer/block/parameter.d.ts +0 -6
  399. package/dist/src/server/result-serializer/block/parameter.js +0 -13
  400. package/dist/src/server/result-serializer/block/parameter.js.map +0 -1
  401. package/dist/src/server/result-serializer/block/todo.d.ts +0 -6
  402. package/dist/src/server/result-serializer/block/todo.js +0 -76
  403. package/dist/src/server/result-serializer/block/todo.js.map +0 -1
  404. package/dist/src/server/result-serializer/block/whitespace.d.ts +0 -6
  405. package/dist/src/server/result-serializer/block/whitespace.js +0 -17
  406. package/dist/src/server/result-serializer/block/whitespace.js.map +0 -1
  407. package/dist/src/server/result-serializer/block.d.ts +0 -27
  408. package/dist/src/server/result-serializer/block.js +0 -224
  409. package/dist/src/server/result-serializer/block.js.map +0 -1
  410. package/dist/src/server/result-serializer/common/time-place-options.d.ts +0 -2
  411. package/dist/src/server/result-serializer/common/time-place-options.js +0 -34
  412. package/dist/src/server/result-serializer/common/time-place-options.js.map +0 -1
  413. package/dist/src/server/result-serializer/login.d.ts +0 -12
  414. package/dist/src/server/result-serializer/login.js +0 -54
  415. package/dist/src/server/result-serializer/login.js.map +0 -1
  416. package/dist/src/server/result-serializer/month.d.ts +0 -10
  417. package/dist/src/server/result-serializer/month.js +0 -160
  418. package/dist/src/server/result-serializer/month.js.map +0 -1
  419. package/dist/src/server/result-serializer/page.d.ts +0 -46
  420. package/dist/src/server/result-serializer/page.js +0 -442
  421. package/dist/src/server/result-serializer/page.js.map +0 -1
  422. package/dist/src/server/result-serializer/role.d.ts +0 -9
  423. package/dist/src/server/result-serializer/role.js +0 -26
  424. package/dist/src/server/result-serializer/role.js.map +0 -1
  425. package/dist/src/server/result-serializer/settings.d.ts +0 -9
  426. package/dist/src/server/result-serializer/settings.js +0 -80
  427. package/dist/src/server/result-serializer/settings.js.map +0 -1
  428. package/dist/src/server/result-serializer/week.d.ts +0 -10
  429. package/dist/src/server/result-serializer/week.js +0 -175
  430. package/dist/src/server/result-serializer/week.js.map +0 -1
  431. package/dist/src/server/result-serializer/year.d.ts +0 -10
  432. package/dist/src/server/result-serializer/year.js +0 -142
  433. package/dist/src/server/result-serializer/year.js.map +0 -1
  434. package/dist/src/type/history-item.d.ts +0 -5
  435. package/dist/src/type/history-item.js.map +0 -1
  436. package/dist/test/unit/lib/grammar/inflector.d.ts +0 -1
  437. package/dist/test/unit/lib/grammar/inflector.js +0 -72
  438. package/dist/test/unit/lib/grammar/inflector.js.map +0 -1
package/dist/client.js CHANGED
@@ -1,76 +1,970 @@
1
1
  "use strict";
2
2
  (() => {
3
- // src/lib/errors/error/base.ts
4
- var BaseError = class extends Error {
5
- constructor(message, code) {
6
- message = message.replace(/\s+/g, " ").trim();
7
- super(message);
8
- this.code = code || null;
9
- }
10
- getMessage() {
11
- return this.message;
12
- }
13
- getCode() {
14
- return this.code;
15
- }
16
- getData() {
17
- const error_type = this.getType();
18
- const code = this.getCode();
19
- const message = this.getMessage();
20
- return {
21
- error_type,
22
- code,
23
- message
24
- };
25
- }
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __esm = (fn, res) => function __init() {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ };
12
+ var __commonJS = (cb, mod) => function __require() {
13
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
14
+ };
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
26
18
  };
27
- var base_default = BaseError;
28
-
29
- // src/lib/errors/enum/error-type.ts
30
- var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
31
- ErrorType2["CONFLICT"] = "conflict";
32
- ErrorType2["GENERIC"] = "generic";
33
- ErrorType2["OMITTED"] = "omitted";
34
- ErrorType2["INVALID"] = "invalid";
35
- ErrorType2["NOT_ALLOWED"] = "not_allowed";
36
- ErrorType2["NOT_FOUND"] = "not_found";
37
- ErrorType2["NOT_IMPLEMENTED"] = "not_implemented";
38
- ErrorType2["TIMEOUT"] = "timeout";
39
- ErrorType2["UNAUTHORIZED"] = "unauthorized";
40
- return ErrorType2;
41
- })(ErrorType || {});
42
- var error_type_default = ErrorType;
43
-
44
- // src/lib/errors/error/generic.ts
45
- var GenericError = class _GenericError extends base_default {
46
- static fromNativeError(error) {
47
- const coded_error = error;
48
- return new _GenericError(coded_error.message, coded_error.code);
49
- }
50
- constructor(message, code) {
51
- super(message || "Something went wrong.", code);
52
- }
53
- getType() {
54
- return error_type_default.GENERIC;
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
55
24
  }
25
+ return to;
56
26
  };
57
- var generic_default = GenericError;
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
36
 
59
- // src/lib/errors/error/invalid.ts
60
- var InvalidError = class extends base_default {
61
- constructor(message) {
62
- super(message || "The specified data is invalid.");
37
+ // node_modules/@fc3/errors/dist/src/error/base.js
38
+ var require_base = __commonJS({
39
+ "node_modules/@fc3/errors/dist/src/error/base.js"(exports) {
40
+ "use strict";
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var BaseError = class extends Error {
43
+ constructor(message, code) {
44
+ message = message.replace(/\s+/g, " ").trim();
45
+ super(message);
46
+ this.code = code || null;
47
+ }
48
+ getMessage() {
49
+ return this.message;
50
+ }
51
+ getCode() {
52
+ return this.code;
53
+ }
54
+ getData() {
55
+ const error_type = this.getType();
56
+ const code = this.getCode();
57
+ const message = this.getMessage();
58
+ return {
59
+ error_type,
60
+ code,
61
+ message
62
+ };
63
+ }
64
+ };
65
+ exports.default = BaseError;
63
66
  }
64
- getType() {
65
- return error_type_default.INVALID;
67
+ });
68
+
69
+ // node_modules/@fc3/errors/dist/src/enum/error-type.js
70
+ var require_error_type = __commonJS({
71
+ "node_modules/@fc3/errors/dist/src/enum/error-type.js"(exports) {
72
+ "use strict";
73
+ Object.defineProperty(exports, "__esModule", { value: true });
74
+ var ErrorType;
75
+ (function(ErrorType2) {
76
+ ErrorType2["CONFLICT"] = "conflict";
77
+ ErrorType2["GENERIC"] = "generic";
78
+ ErrorType2["OMITTED"] = "omitted";
79
+ ErrorType2["INVALID"] = "invalid";
80
+ ErrorType2["NOT_ALLOWED"] = "not_allowed";
81
+ ErrorType2["NOT_FOUND"] = "not_found";
82
+ ErrorType2["NOT_IMPLEMENTED"] = "not_implemented";
83
+ ErrorType2["TIMEOUT"] = "timeout";
84
+ ErrorType2["UNAUTHORIZED"] = "unauthorized";
85
+ })(ErrorType || (ErrorType = {}));
86
+ exports.default = ErrorType;
87
+ }
88
+ });
89
+
90
+ // node_modules/@fc3/errors/dist/src/error/conflict.js
91
+ var require_conflict = __commonJS({
92
+ "node_modules/@fc3/errors/dist/src/error/conflict.js"(exports) {
93
+ "use strict";
94
+ var __importDefault = exports && exports.__importDefault || function(mod) {
95
+ return mod && mod.__esModule ? mod : { "default": mod };
96
+ };
97
+ Object.defineProperty(exports, "__esModule", { value: true });
98
+ var base_1 = __importDefault(require_base());
99
+ var error_type_1 = __importDefault(require_error_type());
100
+ var ConflictError = class extends base_1.default {
101
+ constructor(message, code) {
102
+ super(message || "Something went wrong", code);
103
+ }
104
+ getType() {
105
+ return error_type_1.default.CONFLICT;
106
+ }
107
+ };
108
+ exports.default = ConflictError;
66
109
  }
67
- };
68
- var invalid_default = InvalidError;
110
+ });
69
111
 
70
- // src/lib/errors/error/invariant-violation.ts
71
- var InvariantViolation = class extends generic_default {
72
- };
73
- var invariant_violation_default = InvariantViolation;
112
+ // node_modules/@fc3/errors/dist/src/error/generic.js
113
+ var require_generic = __commonJS({
114
+ "node_modules/@fc3/errors/dist/src/error/generic.js"(exports) {
115
+ "use strict";
116
+ var __importDefault = exports && exports.__importDefault || function(mod) {
117
+ return mod && mod.__esModule ? mod : { "default": mod };
118
+ };
119
+ Object.defineProperty(exports, "__esModule", { value: true });
120
+ var base_1 = __importDefault(require_base());
121
+ var error_type_1 = __importDefault(require_error_type());
122
+ var GenericError = class _GenericError extends base_1.default {
123
+ static fromNativeError(error) {
124
+ const coded_error = error;
125
+ return new _GenericError(coded_error.message, coded_error.code);
126
+ }
127
+ constructor(message, code) {
128
+ super(message || "Something went wrong.", code);
129
+ }
130
+ getType() {
131
+ return error_type_1.default.GENERIC;
132
+ }
133
+ };
134
+ exports.default = GenericError;
135
+ }
136
+ });
137
+
138
+ // node_modules/@fc3/errors/dist/src/error/invalid.js
139
+ var require_invalid = __commonJS({
140
+ "node_modules/@fc3/errors/dist/src/error/invalid.js"(exports) {
141
+ "use strict";
142
+ var __importDefault = exports && exports.__importDefault || function(mod) {
143
+ return mod && mod.__esModule ? mod : { "default": mod };
144
+ };
145
+ Object.defineProperty(exports, "__esModule", { value: true });
146
+ var base_1 = __importDefault(require_base());
147
+ var error_type_1 = __importDefault(require_error_type());
148
+ var InvalidError2 = class extends base_1.default {
149
+ constructor(message) {
150
+ super(message || "The specified data is invalid.");
151
+ }
152
+ getType() {
153
+ return error_type_1.default.INVALID;
154
+ }
155
+ };
156
+ exports.default = InvalidError2;
157
+ }
158
+ });
159
+
160
+ // node_modules/@fc3/errors/dist/src/error/not-found.js
161
+ var require_not_found = __commonJS({
162
+ "node_modules/@fc3/errors/dist/src/error/not-found.js"(exports) {
163
+ "use strict";
164
+ var __importDefault = exports && exports.__importDefault || function(mod) {
165
+ return mod && mod.__esModule ? mod : { "default": mod };
166
+ };
167
+ Object.defineProperty(exports, "__esModule", { value: true });
168
+ var base_1 = __importDefault(require_base());
169
+ var error_type_1 = __importDefault(require_error_type());
170
+ var NotFoundError = class extends base_1.default {
171
+ constructor(message, code) {
172
+ super(message || "The desired file or resource was not found", code);
173
+ }
174
+ getType() {
175
+ return error_type_1.default.NOT_FOUND;
176
+ }
177
+ };
178
+ exports.default = NotFoundError;
179
+ }
180
+ });
181
+
182
+ // node_modules/@fc3/errors/dist/src/error/not-implemented.js
183
+ var require_not_implemented = __commonJS({
184
+ "node_modules/@fc3/errors/dist/src/error/not-implemented.js"(exports) {
185
+ "use strict";
186
+ var __importDefault = exports && exports.__importDefault || function(mod) {
187
+ return mod && mod.__esModule ? mod : { "default": mod };
188
+ };
189
+ Object.defineProperty(exports, "__esModule", { value: true });
190
+ var base_1 = __importDefault(require_base());
191
+ var error_type_1 = __importDefault(require_error_type());
192
+ var NotImplementedError = class extends base_1.default {
193
+ constructor(message) {
194
+ if (message === void 0) {
195
+ message = "Not implemented";
196
+ } else {
197
+ message = `Not implemented: ${message}`;
198
+ }
199
+ super(message);
200
+ }
201
+ getType() {
202
+ return error_type_1.default.NOT_IMPLEMENTED;
203
+ }
204
+ };
205
+ exports.default = NotImplementedError;
206
+ }
207
+ });
208
+
209
+ // node_modules/@fc3/errors/dist/src/error/timeout.js
210
+ var require_timeout = __commonJS({
211
+ "node_modules/@fc3/errors/dist/src/error/timeout.js"(exports) {
212
+ "use strict";
213
+ var __importDefault = exports && exports.__importDefault || function(mod) {
214
+ return mod && mod.__esModule ? mod : { "default": mod };
215
+ };
216
+ Object.defineProperty(exports, "__esModule", { value: true });
217
+ var base_1 = __importDefault(require_base());
218
+ var error_type_1 = __importDefault(require_error_type());
219
+ var TimeoutError = class extends base_1.default {
220
+ constructor(message) {
221
+ super(message || "Operation timed out");
222
+ }
223
+ getType() {
224
+ return error_type_1.default.TIMEOUT;
225
+ }
226
+ };
227
+ exports.default = TimeoutError;
228
+ }
229
+ });
230
+
231
+ // node_modules/@fc3/errors/dist/src/error/unauthorized.js
232
+ var require_unauthorized = __commonJS({
233
+ "node_modules/@fc3/errors/dist/src/error/unauthorized.js"(exports) {
234
+ "use strict";
235
+ var __importDefault = exports && exports.__importDefault || function(mod) {
236
+ return mod && mod.__esModule ? mod : { "default": mod };
237
+ };
238
+ Object.defineProperty(exports, "__esModule", { value: true });
239
+ var base_1 = __importDefault(require_base());
240
+ var error_type_1 = __importDefault(require_error_type());
241
+ var UnauthorizedError = class extends base_1.default {
242
+ constructor(message) {
243
+ super(message || "Permission denied");
244
+ }
245
+ getType() {
246
+ return error_type_1.default.UNAUTHORIZED;
247
+ }
248
+ };
249
+ exports.default = UnauthorizedError;
250
+ }
251
+ });
252
+
253
+ // node_modules/@fc3/errors/dist/src/error/invariant-violation.js
254
+ var require_invariant_violation = __commonJS({
255
+ "node_modules/@fc3/errors/dist/src/error/invariant-violation.js"(exports) {
256
+ "use strict";
257
+ var __importDefault = exports && exports.__importDefault || function(mod) {
258
+ return mod && mod.__esModule ? mod : { "default": mod };
259
+ };
260
+ Object.defineProperty(exports, "__esModule", { value: true });
261
+ var generic_1 = __importDefault(require_generic());
262
+ var InvariantViolation12 = class extends generic_1.default {
263
+ };
264
+ exports.default = InvariantViolation12;
265
+ }
266
+ });
267
+
268
+ // node_modules/@fc3/errors/dist/src/error/omitted.js
269
+ var require_omitted = __commonJS({
270
+ "node_modules/@fc3/errors/dist/src/error/omitted.js"(exports) {
271
+ "use strict";
272
+ var __importDefault = exports && exports.__importDefault || function(mod) {
273
+ return mod && mod.__esModule ? mod : { "default": mod };
274
+ };
275
+ Object.defineProperty(exports, "__esModule", { value: true });
276
+ var error_type_1 = __importDefault(require_error_type());
277
+ var invalid_1 = __importDefault(require_invalid());
278
+ var OmittedError = class extends invalid_1.default {
279
+ constructor(message) {
280
+ super(message || "Must specify a value");
281
+ }
282
+ getType() {
283
+ return error_type_1.default.OMITTED;
284
+ }
285
+ };
286
+ exports.default = OmittedError;
287
+ }
288
+ });
289
+
290
+ // node_modules/@fc3/errors/dist/src/error/not-allowed.js
291
+ var require_not_allowed = __commonJS({
292
+ "node_modules/@fc3/errors/dist/src/error/not-allowed.js"(exports) {
293
+ "use strict";
294
+ var __importDefault = exports && exports.__importDefault || function(mod) {
295
+ return mod && mod.__esModule ? mod : { "default": mod };
296
+ };
297
+ Object.defineProperty(exports, "__esModule", { value: true });
298
+ var base_1 = __importDefault(require_base());
299
+ var error_type_1 = __importDefault(require_error_type());
300
+ var NotAllowedError = class extends base_1.default {
301
+ constructor(message) {
302
+ super(message || "Not allowed");
303
+ }
304
+ getType() {
305
+ return error_type_1.default.NOT_ALLOWED;
306
+ }
307
+ };
308
+ exports.default = NotAllowedError;
309
+ }
310
+ });
311
+
312
+ // node_modules/@fc3/errors/dist/src/utility/create-error-for-error-type.js
313
+ var require_create_error_for_error_type = __commonJS({
314
+ "node_modules/@fc3/errors/dist/src/utility/create-error-for-error-type.js"(exports) {
315
+ "use strict";
316
+ var __importDefault = exports && exports.__importDefault || function(mod) {
317
+ return mod && mod.__esModule ? mod : { "default": mod };
318
+ };
319
+ Object.defineProperty(exports, "__esModule", { value: true });
320
+ var error_type_1 = __importDefault(require_error_type());
321
+ var omitted_1 = __importDefault(require_omitted());
322
+ var invalid_1 = __importDefault(require_invalid());
323
+ var timeout_1 = __importDefault(require_timeout());
324
+ var generic_1 = __importDefault(require_generic());
325
+ var conflict_1 = __importDefault(require_conflict());
326
+ var not_found_1 = __importDefault(require_not_found());
327
+ var not_allowed_1 = __importDefault(require_not_allowed());
328
+ var unauthorized_1 = __importDefault(require_unauthorized());
329
+ var not_implemented_1 = __importDefault(require_not_implemented());
330
+ function createErrorForErrorType(error_type, error_code, message) {
331
+ const error_constructor = getConstructorForErrorType(error_type);
332
+ return new error_constructor(message, error_code);
333
+ }
334
+ function getConstructorForErrorType(error_type) {
335
+ switch (error_type) {
336
+ case error_type_1.default.CONFLICT:
337
+ return conflict_1.default;
338
+ case error_type_1.default.INVALID:
339
+ return invalid_1.default;
340
+ case error_type_1.default.NOT_ALLOWED:
341
+ return not_allowed_1.default;
342
+ case error_type_1.default.NOT_FOUND:
343
+ return not_found_1.default;
344
+ case error_type_1.default.NOT_IMPLEMENTED:
345
+ return not_implemented_1.default;
346
+ case error_type_1.default.OMITTED:
347
+ return omitted_1.default;
348
+ case error_type_1.default.TIMEOUT:
349
+ return timeout_1.default;
350
+ case error_type_1.default.UNAUTHORIZED:
351
+ return unauthorized_1.default;
352
+ default:
353
+ return generic_1.default;
354
+ }
355
+ }
356
+ exports.default = createErrorForErrorType;
357
+ }
358
+ });
359
+
360
+ // src/client/shim/process.ts
361
+ var process_exports = {};
362
+ __export(process_exports, {
363
+ bindProcessLifespanTo: () => bindProcessLifespanTo,
364
+ execute: () => execute
365
+ });
366
+ function execute(command) {
367
+ throw new import_errors.InvariantViolation(`
368
+ Tried to call process.execute() in client context
369
+ `);
370
+ }
371
+ function bindProcessLifespanTo(promise) {
372
+ throw new import_errors.InvariantViolation(`
373
+ Tried to call process.bindProcessLifespanTo in client context
374
+ `);
375
+ }
376
+ var import_errors;
377
+ var init_process = __esm({
378
+ "src/client/shim/process.ts"() {
379
+ "use strict";
380
+ import_errors = __toESM(require_src2());
381
+ }
382
+ });
383
+
384
+ // node_modules/@fc3/errors/dist/src/utility/get-error-type-for-posix-error-code.js
385
+ var require_get_error_type_for_posix_error_code = __commonJS({
386
+ "node_modules/@fc3/errors/dist/src/utility/get-error-type-for-posix-error-code.js"(exports) {
387
+ "use strict";
388
+ var __importDefault = exports && exports.__importDefault || function(mod) {
389
+ return mod && mod.__esModule ? mod : { "default": mod };
390
+ };
391
+ Object.defineProperty(exports, "__esModule", { value: true });
392
+ var process_1 = (init_process(), __toCommonJS(process_exports));
393
+ var error_type_1 = __importDefault(require_error_type());
394
+ function getErrorTypeForPosixErrorCode(error_code) {
395
+ switch (error_code) {
396
+ case process_1.PosixErrorCode.EPERM:
397
+ case process_1.PosixErrorCode.EACCES:
398
+ return error_type_1.default.UNAUTHORIZED;
399
+ case process_1.PosixErrorCode.ENOENT:
400
+ return error_type_1.default.NOT_FOUND;
401
+ case process_1.PosixErrorCode.EEXIST:
402
+ return error_type_1.default.CONFLICT;
403
+ case process_1.PosixErrorCode.ENOTDIR:
404
+ case process_1.PosixErrorCode.EISDIR:
405
+ case process_1.PosixErrorCode.EINVAL:
406
+ return error_type_1.default.INVALID;
407
+ case process_1.PosixErrorCode.EADDRINUSE:
408
+ return error_type_1.default.CONFLICT;
409
+ case process_1.PosixErrorCode.ETIMEDOUT:
410
+ return error_type_1.default.TIMEOUT;
411
+ case process_1.PosixErrorCode.ECONNREFUSED:
412
+ case process_1.PosixErrorCode.EHOSTDOWN:
413
+ case process_1.PosixErrorCode.EHOSTUNREACH:
414
+ // TODO: Add error type for these; they are common enough to warrant it.
415
+ default:
416
+ return error_type_1.default.GENERIC;
417
+ }
418
+ }
419
+ exports.default = getErrorTypeForPosixErrorCode;
420
+ }
421
+ });
422
+
423
+ // node_modules/@fc3/errors/dist/src/utility/wrap-error.js
424
+ var require_wrap_error = __commonJS({
425
+ "node_modules/@fc3/errors/dist/src/utility/wrap-error.js"(exports) {
426
+ "use strict";
427
+ var __importDefault = exports && exports.__importDefault || function(mod) {
428
+ return mod && mod.__esModule ? mod : { "default": mod };
429
+ };
430
+ Object.defineProperty(exports, "__esModule", { value: true });
431
+ var base_1 = __importDefault(require_base());
432
+ var generic_1 = __importDefault(require_generic());
433
+ var create_error_for_error_type_1 = __importDefault(require_create_error_for_error_type());
434
+ var get_error_type_for_posix_error_code_1 = __importDefault(require_get_error_type_for_posix_error_code());
435
+ function wrapError(error) {
436
+ if (error instanceof base_1.default) {
437
+ return error;
438
+ }
439
+ if (typeof error === "string") {
440
+ return new generic_1.default(error);
441
+ }
442
+ const potential_base_error = error;
443
+ if (potential_base_error.getType !== void 0) {
444
+ return potential_base_error;
445
+ }
446
+ const coded_error = error;
447
+ if (coded_error.code) {
448
+ const error_type = (0, get_error_type_for_posix_error_code_1.default)(coded_error.code);
449
+ return (0, create_error_for_error_type_1.default)(error_type, coded_error.code, coded_error.message);
450
+ }
451
+ return generic_1.default.fromNativeError(coded_error);
452
+ }
453
+ exports.default = wrapError;
454
+ }
455
+ });
456
+
457
+ // node_modules/@fc3/errors/dist/src/utility/error-matches.js
458
+ var require_error_matches = __commonJS({
459
+ "node_modules/@fc3/errors/dist/src/utility/error-matches.js"(exports) {
460
+ "use strict";
461
+ var __importDefault = exports && exports.__importDefault || function(mod) {
462
+ return mod && mod.__esModule ? mod : { "default": mod };
463
+ };
464
+ Object.defineProperty(exports, "__esModule", { value: true });
465
+ var wrap_error_1 = __importDefault(require_wrap_error());
466
+ function errorMatches(error, error_constructor) {
467
+ if (!(error instanceof Error)) {
468
+ return false;
469
+ }
470
+ if (error.constructor.name === error_constructor.name) {
471
+ return true;
472
+ }
473
+ if (error instanceof error_constructor) {
474
+ return true;
475
+ }
476
+ const wrapped_error = (0, wrap_error_1.default)(error);
477
+ return wrapped_error.constructor.name === error_constructor.name;
478
+ }
479
+ exports.default = errorMatches;
480
+ }
481
+ });
482
+
483
+ // node_modules/@fc3/network/dist/src/enum/network-protocol.js
484
+ var require_network_protocol = __commonJS({
485
+ "node_modules/@fc3/network/dist/src/enum/network-protocol.js"(exports) {
486
+ "use strict";
487
+ Object.defineProperty(exports, "__esModule", { value: true });
488
+ var NetworkProtocol;
489
+ (function(NetworkProtocol2) {
490
+ NetworkProtocol2["SSH"] = "ssh";
491
+ NetworkProtocol2["TCP"] = "tcp";
492
+ NetworkProtocol2["HTTP"] = "http";
493
+ NetworkProtocol2["HTTPS"] = "https";
494
+ NetworkProtocol2["SECURE_WEBSOCKET"] = "wss";
495
+ NetworkProtocol2["WEBSOCKET"] = "ws";
496
+ })(NetworkProtocol || (NetworkProtocol = {}));
497
+ exports.default = NetworkProtocol;
498
+ }
499
+ });
500
+
501
+ // node_modules/@fc3/network/dist/src/enum/http-status-code.js
502
+ var require_http_status_code = __commonJS({
503
+ "node_modules/@fc3/network/dist/src/enum/http-status-code.js"(exports) {
504
+ "use strict";
505
+ Object.defineProperty(exports, "__esModule", { value: true });
506
+ var HttpStatusCode;
507
+ (function(HttpStatusCode2) {
508
+ HttpStatusCode2[HttpStatusCode2["SUCCESS"] = 200] = "SUCCESS";
509
+ HttpStatusCode2[HttpStatusCode2["CREATED"] = 201] = "CREATED";
510
+ HttpStatusCode2[HttpStatusCode2["ACCEPTED"] = 202] = "ACCEPTED";
511
+ HttpStatusCode2[HttpStatusCode2["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION";
512
+ HttpStatusCode2[HttpStatusCode2["NO_CONTENT"] = 204] = "NO_CONTENT";
513
+ HttpStatusCode2[HttpStatusCode2["RESET_CONTENT"] = 205] = "RESET_CONTENT";
514
+ HttpStatusCode2[HttpStatusCode2["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
515
+ HttpStatusCode2[HttpStatusCode2["MULTI_STATUS"] = 207] = "MULTI_STATUS";
516
+ HttpStatusCode2[HttpStatusCode2["ALREADY_REPORTED"] = 208] = "ALREADY_REPORTED";
517
+ HttpStatusCode2[HttpStatusCode2["IM_USED"] = 226] = "IM_USED";
518
+ HttpStatusCode2[HttpStatusCode2["MULTIPLE_CHOICES"] = 300] = "MULTIPLE_CHOICES";
519
+ HttpStatusCode2[HttpStatusCode2["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
520
+ HttpStatusCode2[HttpStatusCode2["REDIRECT"] = 302] = "REDIRECT";
521
+ HttpStatusCode2[HttpStatusCode2["SEE_OTHER"] = 303] = "SEE_OTHER";
522
+ HttpStatusCode2[HttpStatusCode2["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
523
+ HttpStatusCode2[HttpStatusCode2["USE_PROXY"] = 305] = "USE_PROXY";
524
+ HttpStatusCode2[HttpStatusCode2["SWITCH_PROXY"] = 306] = "SWITCH_PROXY";
525
+ HttpStatusCode2[HttpStatusCode2["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
526
+ HttpStatusCode2[HttpStatusCode2["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
527
+ HttpStatusCode2[HttpStatusCode2["BAD_REQUEST"] = 400] = "BAD_REQUEST";
528
+ HttpStatusCode2[HttpStatusCode2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
529
+ HttpStatusCode2[HttpStatusCode2["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
530
+ HttpStatusCode2[HttpStatusCode2["FORBIDDEN"] = 403] = "FORBIDDEN";
531
+ HttpStatusCode2[HttpStatusCode2["FILE_NOT_FOUND"] = 404] = "FILE_NOT_FOUND";
532
+ HttpStatusCode2[HttpStatusCode2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
533
+ HttpStatusCode2[HttpStatusCode2["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
534
+ HttpStatusCode2[HttpStatusCode2["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED";
535
+ HttpStatusCode2[HttpStatusCode2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
536
+ HttpStatusCode2[HttpStatusCode2["CONFLICT"] = 409] = "CONFLICT";
537
+ HttpStatusCode2[HttpStatusCode2["GONE"] = 410] = "GONE";
538
+ HttpStatusCode2[HttpStatusCode2["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED";
539
+ HttpStatusCode2[HttpStatusCode2["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
540
+ HttpStatusCode2[HttpStatusCode2["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
541
+ HttpStatusCode2[HttpStatusCode2["URI_TOO_LONG"] = 414] = "URI_TOO_LONG";
542
+ HttpStatusCode2[HttpStatusCode2["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
543
+ HttpStatusCode2[HttpStatusCode2["RANGE_NOT_SATISFIABLE"] = 416] = "RANGE_NOT_SATISFIABLE";
544
+ HttpStatusCode2[HttpStatusCode2["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED";
545
+ HttpStatusCode2[HttpStatusCode2["MISDIRECTED_REQUEST"] = 421] = "MISDIRECTED_REQUEST";
546
+ HttpStatusCode2[HttpStatusCode2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
547
+ HttpStatusCode2[HttpStatusCode2["LOCKED"] = 423] = "LOCKED";
548
+ HttpStatusCode2[HttpStatusCode2["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY";
549
+ HttpStatusCode2[HttpStatusCode2["UPGRADE_REQUIRED"] = 426] = "UPGRADE_REQUIRED";
550
+ HttpStatusCode2[HttpStatusCode2["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED";
551
+ HttpStatusCode2[HttpStatusCode2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
552
+ HttpStatusCode2[HttpStatusCode2["HEADER_FIELDS_TOO_LARGE"] = 431] = "HEADER_FIELDS_TOO_LARGE";
553
+ HttpStatusCode2[HttpStatusCode2["LEGALLY_UNAVAILABLE"] = 451] = "LEGALLY_UNAVAILABLE";
554
+ HttpStatusCode2[HttpStatusCode2["SERVER_ERROR"] = 500] = "SERVER_ERROR";
555
+ HttpStatusCode2[HttpStatusCode2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
556
+ HttpStatusCode2[HttpStatusCode2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
557
+ HttpStatusCode2[HttpStatusCode2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
558
+ HttpStatusCode2[HttpStatusCode2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
559
+ HttpStatusCode2[HttpStatusCode2["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED";
560
+ HttpStatusCode2[HttpStatusCode2["VARIANT_ALSO_NEGOTIATES"] = 506] = "VARIANT_ALSO_NEGOTIATES";
561
+ HttpStatusCode2[HttpStatusCode2["INSUFFICIENT_STORAGE"] = 507] = "INSUFFICIENT_STORAGE";
562
+ HttpStatusCode2[HttpStatusCode2["LOOP_DETECTED"] = 508] = "LOOP_DETECTED";
563
+ HttpStatusCode2[HttpStatusCode2["NOT_EXTENDED"] = 510] = "NOT_EXTENDED";
564
+ HttpStatusCode2[HttpStatusCode2["NETWORK_AUTHENTICATION_REQUIRED"] = 511] = "NETWORK_AUTHENTICATION_REQUIRED";
565
+ })(HttpStatusCode || (HttpStatusCode = {}));
566
+ exports.default = HttpStatusCode;
567
+ }
568
+ });
569
+
570
+ // node_modules/@fc3/network/dist/src/enum/connection-status.js
571
+ var require_connection_status = __commonJS({
572
+ "node_modules/@fc3/network/dist/src/enum/connection-status.js"(exports) {
573
+ "use strict";
574
+ Object.defineProperty(exports, "__esModule", { value: true });
575
+ var ConnectionStatus;
576
+ (function(ConnectionStatus2) {
577
+ ConnectionStatus2["NOT_CONNECTED"] = "not_connected";
578
+ ConnectionStatus2["SEARCHING"] = "searching";
579
+ ConnectionStatus2["CONNECTING"] = "connecting";
580
+ ConnectionStatus2["CONNECTED"] = "connected";
581
+ ConnectionStatus2["NOT_AUTHENTICATED"] = "not_authenticated";
582
+ ConnectionStatus2["AUTHENTICATING"] = "authenticating";
583
+ ConnectionStatus2["AUTHENTICATED"] = "authenticated";
584
+ ConnectionStatus2["DISCONNECTING"] = "disconnecting";
585
+ ConnectionStatus2["DISCONNECTED"] = "disconnected";
586
+ ConnectionStatus2["FAILED_TO_CONNECT"] = "failed_to_connect";
587
+ })(ConnectionStatus || (ConnectionStatus = {}));
588
+ exports.default = ConnectionStatus;
589
+ }
590
+ });
591
+
592
+ // node_modules/@fc3/network/dist/src/utility/get-protocol-from-url.js
593
+ var require_get_protocol_from_url = __commonJS({
594
+ "node_modules/@fc3/network/dist/src/utility/get-protocol-from-url.js"(exports) {
595
+ "use strict";
596
+ Object.defineProperty(exports, "__esModule", { value: true });
597
+ function getProtocolFromUrl(url) {
598
+ const match = url.match(/^([^:]+):/);
599
+ if (match === null) {
600
+ throw new Error(`No protocol found on URL: ${url}`);
601
+ }
602
+ const protocol = match[1];
603
+ return protocol;
604
+ }
605
+ exports.default = getProtocolFromUrl;
606
+ }
607
+ });
608
+
609
+ // node_modules/@fc3/network/dist/src/event-emitter.js
610
+ var require_event_emitter = __commonJS({
611
+ "node_modules/@fc3/network/dist/src/event-emitter.js"(exports) {
612
+ "use strict";
613
+ Object.defineProperty(exports, "__esModule", { value: true });
614
+ var EventEmitter = class {
615
+ constructor() {
616
+ this.listener_map = {};
617
+ }
618
+ on(event, listener) {
619
+ const listeners = this.getListenersForEvent(event);
620
+ listeners.push(listener);
621
+ }
622
+ removeListener(event, listener) {
623
+ const listeners = this.getListenersForEvent(event);
624
+ const index = listeners.indexOf(listener);
625
+ if (index === -1) {
626
+ throw new Error(`Could not find listener in list of listeners for event: ${event}`);
627
+ }
628
+ listeners.splice(index, 1);
629
+ }
630
+ removeAllListeners(event) {
631
+ delete this.listener_map[event];
632
+ }
633
+ emit(event, value) {
634
+ const listeners = this.getListenersForEvent(event);
635
+ listeners.forEach((listener) => {
636
+ listener(value);
637
+ });
638
+ }
639
+ getListenersForEvent(event) {
640
+ const listener_map = this.getListenerMap();
641
+ if (listener_map[event] === void 0) {
642
+ listener_map[event] = [];
643
+ }
644
+ return listener_map[event];
645
+ }
646
+ getListenerMap() {
647
+ return this.listener_map;
648
+ }
649
+ };
650
+ exports.default = EventEmitter;
651
+ }
652
+ });
653
+
654
+ // node_modules/@fc3/network/dist/src/index.js
655
+ var require_src = __commonJS({
656
+ "node_modules/@fc3/network/dist/src/index.js"(exports) {
657
+ "use strict";
658
+ var __importDefault = exports && exports.__importDefault || function(mod) {
659
+ return mod && mod.__esModule ? mod : { "default": mod };
660
+ };
661
+ Object.defineProperty(exports, "__esModule", { value: true });
662
+ exports.EventEmitter = exports.getProtocolFromUrl = exports.ConnectionStatus = exports.HttpStatusCode = exports.NetworkProtocol = void 0;
663
+ var network_protocol_1 = require_network_protocol();
664
+ Object.defineProperty(exports, "NetworkProtocol", { enumerable: true, get: function() {
665
+ return __importDefault(network_protocol_1).default;
666
+ } });
667
+ var http_status_code_1 = require_http_status_code();
668
+ Object.defineProperty(exports, "HttpStatusCode", { enumerable: true, get: function() {
669
+ return __importDefault(http_status_code_1).default;
670
+ } });
671
+ var connection_status_1 = require_connection_status();
672
+ Object.defineProperty(exports, "ConnectionStatus", { enumerable: true, get: function() {
673
+ return __importDefault(connection_status_1).default;
674
+ } });
675
+ var get_protocol_from_url_1 = require_get_protocol_from_url();
676
+ Object.defineProperty(exports, "getProtocolFromUrl", { enumerable: true, get: function() {
677
+ return __importDefault(get_protocol_from_url_1).default;
678
+ } });
679
+ var event_emitter_1 = require_event_emitter();
680
+ Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function() {
681
+ return __importDefault(event_emitter_1).default;
682
+ } });
683
+ }
684
+ });
685
+
686
+ // node_modules/@fc3/errors/dist/src/utility/get-error-type-for-status-code.js
687
+ var require_get_error_type_for_status_code = __commonJS({
688
+ "node_modules/@fc3/errors/dist/src/utility/get-error-type-for-status-code.js"(exports) {
689
+ "use strict";
690
+ var __importDefault = exports && exports.__importDefault || function(mod) {
691
+ return mod && mod.__esModule ? mod : { "default": mod };
692
+ };
693
+ Object.defineProperty(exports, "__esModule", { value: true });
694
+ var network_1 = require_src();
695
+ var error_type_1 = __importDefault(require_error_type());
696
+ function getErrorTypeForStatusCode(status_code) {
697
+ switch (status_code) {
698
+ case network_1.HttpStatusCode.CONFLICT:
699
+ return error_type_1.default.CONFLICT;
700
+ case network_1.HttpStatusCode.BAD_REQUEST:
701
+ return error_type_1.default.INVALID;
702
+ case network_1.HttpStatusCode.FORBIDDEN:
703
+ return error_type_1.default.NOT_ALLOWED;
704
+ case network_1.HttpStatusCode.FILE_NOT_FOUND:
705
+ return error_type_1.default.NOT_FOUND;
706
+ case network_1.HttpStatusCode.NOT_IMPLEMENTED:
707
+ return error_type_1.default.NOT_IMPLEMENTED;
708
+ case network_1.HttpStatusCode.REQUEST_TIMEOUT:
709
+ case network_1.HttpStatusCode.GATEWAY_TIMEOUT:
710
+ return error_type_1.default.TIMEOUT;
711
+ case network_1.HttpStatusCode.UNAUTHORIZED:
712
+ return error_type_1.default.UNAUTHORIZED;
713
+ default:
714
+ if (status_code >= network_1.HttpStatusCode.SERVER_ERROR) {
715
+ return error_type_1.default.GENERIC;
716
+ }
717
+ return error_type_1.default.INVALID;
718
+ }
719
+ }
720
+ exports.default = getErrorTypeForStatusCode;
721
+ }
722
+ });
723
+
724
+ // node_modules/@fc3/errors/dist/src/utility/create-error-from-ambiguous-json-data.js
725
+ var require_create_error_from_ambiguous_json_data = __commonJS({
726
+ "node_modules/@fc3/errors/dist/src/utility/create-error-from-ambiguous-json-data.js"(exports) {
727
+ "use strict";
728
+ var __importDefault = exports && exports.__importDefault || function(mod) {
729
+ return mod && mod.__esModule ? mod : { "default": mod };
730
+ };
731
+ Object.defineProperty(exports, "__esModule", { value: true });
732
+ var error_type_1 = __importDefault(require_error_type());
733
+ var create_error_for_error_type_1 = __importDefault(require_create_error_for_error_type());
734
+ var get_error_type_for_status_code_1 = __importDefault(require_get_error_type_for_status_code());
735
+ function createErrorFromAmbiguousJsonData(data, status_code) {
736
+ const error_data = data;
737
+ let error_type;
738
+ if (Object.values(error_type_1.default).includes(error_data.error_type)) {
739
+ error_type = error_data.error_type;
740
+ } else {
741
+ error_type = (0, get_error_type_for_status_code_1.default)(status_code);
742
+ }
743
+ return (0, create_error_for_error_type_1.default)(error_type, null, error_data.message);
744
+ }
745
+ exports.default = createErrorFromAmbiguousJsonData;
746
+ }
747
+ });
748
+
749
+ // node_modules/@fc3/errors/dist/src/utility/matches-posix-error-code.js
750
+ var require_matches_posix_error_code = __commonJS({
751
+ "node_modules/@fc3/errors/dist/src/utility/matches-posix-error-code.js"(exports) {
752
+ "use strict";
753
+ var __importDefault = exports && exports.__importDefault || function(mod) {
754
+ return mod && mod.__esModule ? mod : { "default": mod };
755
+ };
756
+ Object.defineProperty(exports, "__esModule", { value: true });
757
+ var wrap_error_1 = __importDefault(require_wrap_error());
758
+ function matchesPosixErrorCode(error, posix_error_code) {
759
+ const wrapped_error = (0, wrap_error_1.default)(error);
760
+ return wrapped_error.code === posix_error_code;
761
+ }
762
+ exports.default = matchesPosixErrorCode;
763
+ }
764
+ });
765
+
766
+ // node_modules/@fc3/errors/dist/src/sugar/invariant.js
767
+ var require_invariant = __commonJS({
768
+ "node_modules/@fc3/errors/dist/src/sugar/invariant.js"(exports) {
769
+ "use strict";
770
+ var __importDefault = exports && exports.__importDefault || function(mod) {
771
+ return mod && mod.__esModule ? mod : { "default": mod };
772
+ };
773
+ Object.defineProperty(exports, "__esModule", { value: true });
774
+ var invariant_violation_1 = __importDefault(require_invariant_violation());
775
+ function invariant(message) {
776
+ throw new invariant_violation_1.default(message);
777
+ }
778
+ exports.default = invariant;
779
+ }
780
+ });
781
+
782
+ // node_modules/@fc3/errors/dist/src/index.js
783
+ var require_src2 = __commonJS({
784
+ "node_modules/@fc3/errors/dist/src/index.js"(exports) {
785
+ "use strict";
786
+ var __importDefault = exports && exports.__importDefault || function(mod) {
787
+ return mod && mod.__esModule ? mod : { "default": mod };
788
+ };
789
+ Object.defineProperty(exports, "__esModule", { value: true });
790
+ exports.invariant = exports.createErrorForErrorType = exports.getErrorTypeForStatusCode = exports.matchesPosixErrorCode = exports.createErrorFromAmbiguousJsonData = exports.ErrorType = exports.errorMatches = exports.wrapError = exports.InvariantViolation = exports.UnauthorizedError = exports.TimeoutError = exports.NotImplementedError = exports.NotFoundError = exports.InvalidError = exports.GenericError = exports.ConflictError = exports.BaseError = void 0;
791
+ var base_1 = require_base();
792
+ Object.defineProperty(exports, "BaseError", { enumerable: true, get: function() {
793
+ return __importDefault(base_1).default;
794
+ } });
795
+ var conflict_1 = require_conflict();
796
+ Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function() {
797
+ return __importDefault(conflict_1).default;
798
+ } });
799
+ var generic_1 = require_generic();
800
+ Object.defineProperty(exports, "GenericError", { enumerable: true, get: function() {
801
+ return __importDefault(generic_1).default;
802
+ } });
803
+ var invalid_1 = require_invalid();
804
+ Object.defineProperty(exports, "InvalidError", { enumerable: true, get: function() {
805
+ return __importDefault(invalid_1).default;
806
+ } });
807
+ var not_found_1 = require_not_found();
808
+ Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function() {
809
+ return __importDefault(not_found_1).default;
810
+ } });
811
+ var not_implemented_1 = require_not_implemented();
812
+ Object.defineProperty(exports, "NotImplementedError", { enumerable: true, get: function() {
813
+ return __importDefault(not_implemented_1).default;
814
+ } });
815
+ var timeout_1 = require_timeout();
816
+ Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function() {
817
+ return __importDefault(timeout_1).default;
818
+ } });
819
+ var unauthorized_1 = require_unauthorized();
820
+ Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: function() {
821
+ return __importDefault(unauthorized_1).default;
822
+ } });
823
+ var invariant_violation_1 = require_invariant_violation();
824
+ Object.defineProperty(exports, "InvariantViolation", { enumerable: true, get: function() {
825
+ return __importDefault(invariant_violation_1).default;
826
+ } });
827
+ var wrap_error_1 = require_wrap_error();
828
+ Object.defineProperty(exports, "wrapError", { enumerable: true, get: function() {
829
+ return __importDefault(wrap_error_1).default;
830
+ } });
831
+ var error_matches_1 = require_error_matches();
832
+ Object.defineProperty(exports, "errorMatches", { enumerable: true, get: function() {
833
+ return __importDefault(error_matches_1).default;
834
+ } });
835
+ var error_type_1 = require_error_type();
836
+ Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function() {
837
+ return __importDefault(error_type_1).default;
838
+ } });
839
+ var create_error_from_ambiguous_json_data_1 = require_create_error_from_ambiguous_json_data();
840
+ Object.defineProperty(exports, "createErrorFromAmbiguousJsonData", { enumerable: true, get: function() {
841
+ return __importDefault(create_error_from_ambiguous_json_data_1).default;
842
+ } });
843
+ var matches_posix_error_code_1 = require_matches_posix_error_code();
844
+ Object.defineProperty(exports, "matchesPosixErrorCode", { enumerable: true, get: function() {
845
+ return __importDefault(matches_posix_error_code_1).default;
846
+ } });
847
+ var get_error_type_for_status_code_1 = require_get_error_type_for_status_code();
848
+ Object.defineProperty(exports, "getErrorTypeForStatusCode", { enumerable: true, get: function() {
849
+ return __importDefault(get_error_type_for_status_code_1).default;
850
+ } });
851
+ var create_error_for_error_type_1 = require_create_error_for_error_type();
852
+ Object.defineProperty(exports, "createErrorForErrorType", { enumerable: true, get: function() {
853
+ return __importDefault(create_error_for_error_type_1).default;
854
+ } });
855
+ var invariant_1 = require_invariant();
856
+ Object.defineProperty(exports, "invariant", { enumerable: true, get: function() {
857
+ return __importDefault(invariant_1).default;
858
+ } });
859
+ }
860
+ });
861
+
862
+ // node_modules/@fc3/array/dist/src/clone.js
863
+ var require_clone = __commonJS({
864
+ "node_modules/@fc3/array/dist/src/clone.js"(exports) {
865
+ "use strict";
866
+ Object.defineProperty(exports, "__esModule", { value: true });
867
+ function clone(array) {
868
+ return Array.prototype.slice.call(array);
869
+ }
870
+ exports.default = clone;
871
+ }
872
+ });
873
+
874
+ // node_modules/@fc3/array/dist/src/get-last-value.js
875
+ var require_get_last_value = __commonJS({
876
+ "node_modules/@fc3/array/dist/src/get-last-value.js"(exports) {
877
+ "use strict";
878
+ Object.defineProperty(exports, "__esModule", { value: true });
879
+ function getLastValue2(array) {
880
+ return array[array.length - 1];
881
+ }
882
+ exports.default = getLastValue2;
883
+ }
884
+ });
885
+
886
+ // node_modules/@fc3/array/dist/src/get-first-value.js
887
+ var require_get_first_value = __commonJS({
888
+ "node_modules/@fc3/array/dist/src/get-first-value.js"(exports) {
889
+ "use strict";
890
+ Object.defineProperty(exports, "__esModule", { value: true });
891
+ function getFirstValue3(array) {
892
+ return array[0];
893
+ }
894
+ exports.default = getFirstValue3;
895
+ }
896
+ });
897
+
898
+ // node_modules/@fc3/array/dist/src/get-max-value.js
899
+ var require_get_max_value = __commonJS({
900
+ "node_modules/@fc3/array/dist/src/get-max-value.js"(exports) {
901
+ "use strict";
902
+ Object.defineProperty(exports, "__esModule", { value: true });
903
+ function getMaxValue(values) {
904
+ return Math.max.apply(Math, values);
905
+ }
906
+ exports.default = getMaxValue;
907
+ }
908
+ });
909
+
910
+ // node_modules/@fc3/array/dist/src/equal.js
911
+ var require_equal = __commonJS({
912
+ "node_modules/@fc3/array/dist/src/equal.js"(exports) {
913
+ "use strict";
914
+ Object.defineProperty(exports, "__esModule", { value: true });
915
+ function equal(array_a, array_b) {
916
+ if (array_a.length !== array_b.length) {
917
+ return false;
918
+ }
919
+ let index = 0;
920
+ while (index < array_a.length) {
921
+ const array_a_value = array_a[index];
922
+ const array_b_value = array_b[index];
923
+ if (array_a_value !== array_b_value) {
924
+ return false;
925
+ }
926
+ index++;
927
+ }
928
+ return true;
929
+ }
930
+ exports.default = equal;
931
+ }
932
+ });
933
+
934
+ // node_modules/@fc3/array/dist/src/index.js
935
+ var require_src3 = __commonJS({
936
+ "node_modules/@fc3/array/dist/src/index.js"(exports) {
937
+ "use strict";
938
+ var __importDefault = exports && exports.__importDefault || function(mod) {
939
+ return mod && mod.__esModule ? mod : { "default": mod };
940
+ };
941
+ Object.defineProperty(exports, "__esModule", { value: true });
942
+ exports.equal = exports.getMaxValue = exports.getFirstValue = exports.getLastValue = exports.clone = void 0;
943
+ var clone_1 = require_clone();
944
+ Object.defineProperty(exports, "clone", { enumerable: true, get: function() {
945
+ return __importDefault(clone_1).default;
946
+ } });
947
+ var get_last_value_1 = require_get_last_value();
948
+ Object.defineProperty(exports, "getLastValue", { enumerable: true, get: function() {
949
+ return __importDefault(get_last_value_1).default;
950
+ } });
951
+ var get_first_value_1 = require_get_first_value();
952
+ Object.defineProperty(exports, "getFirstValue", { enumerable: true, get: function() {
953
+ return __importDefault(get_first_value_1).default;
954
+ } });
955
+ var get_max_value_1 = require_get_max_value();
956
+ Object.defineProperty(exports, "getMaxValue", { enumerable: true, get: function() {
957
+ return __importDefault(get_max_value_1).default;
958
+ } });
959
+ var equal_1 = require_equal();
960
+ Object.defineProperty(exports, "equal", { enumerable: true, get: function() {
961
+ return __importDefault(equal_1).default;
962
+ } });
963
+ }
964
+ });
965
+
966
+ // src/client/client.ts
967
+ var import_errors12 = __toESM(require_src2());
74
968
 
75
969
  // src/client/enum/page-type.ts
76
970
  var PageType = /* @__PURE__ */ ((PageType2) => {
@@ -93,21 +987,14 @@
93
987
  PageType2["MOVE_BLOCK"] = "move_block";
94
988
  PageType2["SETTINGS"] = "settings";
95
989
  PageType2["ROLE"] = "role";
990
+ PageType2["ADD_BLOCK_TO_PLAYLIST"] = "add_block_to_playlist";
991
+ PageType2["VIEW_PLAYLIST"] = "view_playlist";
96
992
  return PageType2;
97
993
  })(PageType || {});
98
994
  var page_type_default = PageType;
99
995
 
100
- // src/lib/array/get-last-value.ts
101
- function getLastValue(array) {
102
- return array[array.length - 1];
103
- }
104
- var get_last_value_default = getLastValue;
105
-
106
- // src/lib/array/get-first-value.ts
107
- function getFirstValue(array) {
108
- return array[0];
109
- }
110
- var get_first_value_default = getFirstValue;
996
+ // src/client/page.ts
997
+ var import_array = __toESM(require_src3());
111
998
 
112
999
  // src/client/enum/key-code.ts
113
1000
  var KeyCode = /* @__PURE__ */ ((KeyCode2) => {
@@ -154,6 +1041,7 @@
154
1041
  start() {
155
1042
  this.logStarting();
156
1043
  this.initEvents();
1044
+ this.clearToast();
157
1045
  this.bindLoadEvent();
158
1046
  this.logStarted();
159
1047
  }
@@ -185,7 +1073,7 @@
185
1073
  focusElement(element) {
186
1074
  const rectangle = element.getBoundingClientRect();
187
1075
  const headers = Array.from(document.getElementsByTagName("header"));
188
- const header = get_first_value_default(headers);
1076
+ const header = (0, import_array.getFirstValue)(headers);
189
1077
  const header_offset = header === void 0 ? 0 : header.clientHeight;
190
1078
  if (rectangle.top < header_offset) {
191
1079
  if (header_offset === 0) {
@@ -225,6 +1113,12 @@
225
1113
  url.searchParams.delete("toast_color");
226
1114
  window.location.href = url.toString();
227
1115
  }
1116
+ clearToast() {
1117
+ const url = new URL(window.location.href);
1118
+ url.searchParams.delete("toast_message");
1119
+ url.searchParams.delete("toast_color");
1120
+ history.replaceState(null, "", url);
1121
+ }
228
1122
  logStarting() {
229
1123
  const name = this.getName();
230
1124
  console.log(`[${name}] starting...`);
@@ -246,11 +1140,15 @@
246
1140
  };
247
1141
  var home_default = HomePage;
248
1142
 
1143
+ // src/client/page/history.ts
1144
+ var import_errors3 = __toESM(require_src2());
1145
+
249
1146
  // src/enum/block-type.ts
250
1147
  var BlockType = /* @__PURE__ */ ((BlockType2) => {
251
1148
  BlockType2["HEADER"] = "header";
252
1149
  BlockType2["NOTE"] = "note";
253
1150
  BlockType2["IMAGE"] = "image";
1151
+ BlockType2["VIDEO"] = "video";
254
1152
  BlockType2["AUDIO"] = "audio";
255
1153
  BlockType2["EPHEMERAL"] = "ephemeral";
256
1154
  BlockType2["CALENDAR"] = "calendar";
@@ -268,6 +1166,7 @@
268
1166
  var block_type_default = BlockType;
269
1167
 
270
1168
  // src/client/utility/get-block-activation-href.ts
1169
+ var import_errors2 = __toESM(require_src2());
271
1170
  function getBlockActivationHref(block_element) {
272
1171
  const link_nodes = block_element.getElementsByTagName("a");
273
1172
  const links = Array.from(link_nodes);
@@ -276,13 +1175,13 @@
276
1175
  return role === "block_activation";
277
1176
  });
278
1177
  if (matching_link === void 0) {
279
- throw new invariant_violation_default(`
1178
+ throw new import_errors2.InvariantViolation(`
280
1179
  Tried to activate link for folder block, but it was not set
281
1180
  `);
282
1181
  }
283
1182
  const href = matching_link.getAttribute("href");
284
1183
  if (href === null) {
285
- throw new invariant_violation_default(`
1184
+ throw new import_errors2.InvariantViolation(`
286
1185
  Tried to activate link for folder block, but its href was not set
287
1186
  `);
288
1187
  }
@@ -312,14 +1211,14 @@
312
1211
  }
313
1212
  const attribute = block_element.getAttribute("data-block-type");
314
1213
  if (attribute === null) {
315
- throw new invariant_violation_default(`
1214
+ throw new import_errors3.InvariantViolation(`
316
1215
  Tried to activate current block, but it did not have a block type
317
1216
  `);
318
1217
  }
319
1218
  const block_type = attribute;
320
1219
  const block_types = Object.values(block_type_default);
321
1220
  if (!block_types.includes(block_type)) {
322
- throw new invariant_violation_default(`
1221
+ throw new import_errors3.InvariantViolation(`
323
1222
  Invalid block type: ${block_type}
324
1223
  `);
325
1224
  }
@@ -457,6 +1356,7 @@
457
1356
  var year_default = YearPage;
458
1357
 
459
1358
  // src/client/page/select-block-type.ts
1359
+ var import_errors4 = __toESM(require_src2());
460
1360
  var SelectBlockTypePage = class extends page_default {
461
1361
  handleKey(key_code) {
462
1362
  switch (key_code) {
@@ -484,14 +1384,14 @@
484
1384
  const id = `add-block-${block_type}`;
485
1385
  const element = document.getElementById(id);
486
1386
  if (element === null) {
487
- throw new invariant_violation_default(`
1387
+ throw new import_errors4.InvariantViolation(`
488
1388
  Tried to create block of type ${block_type},
489
1389
  but the creation link was not found
490
1390
  `);
491
1391
  }
492
1392
  const href = element.getAttribute("href");
493
1393
  if (href === null) {
494
- throw new invariant_violation_default(`
1394
+ throw new import_errors4.InvariantViolation(`
495
1395
  Tried to create block of type ${block_type},
496
1396
  but the creation href was not present on the link element
497
1397
  `);
@@ -501,60 +1401,21 @@
501
1401
  };
502
1402
  var select_block_type_default = SelectBlockTypePage;
503
1403
 
504
- // src/client/page/select-block-destination.ts
505
- var SelectBlockDestinationPage = class extends page_default {
506
- initEvents() {
507
- }
508
- };
509
- var select_block_destination_default = SelectBlockDestinationPage;
510
-
511
- // src/client/page/create-block.ts
512
- var CreateBlockPage = class extends page_default {
513
- };
514
- var create_block_default = CreateBlockPage;
515
-
516
- // src/client/page/edit-block.ts
517
- var EditBlockPage = class extends page_default {
518
- initEvents() {
519
- super.initEvents();
520
- const textarea_nodes = document.getElementsByTagName("textarea");
521
- const textareas = Array.from(textarea_nodes);
522
- textareas.forEach((textarea) => {
523
- let form;
524
- let current_node = textarea;
525
- while (current_node) {
526
- current_node = current_node.parentNode;
527
- if (current_node instanceof HTMLFormElement) {
528
- form = current_node;
529
- break;
530
- }
531
- }
532
- if (form === void 0) {
533
- throw new invariant_violation_default(`
534
- Tried to read form for textarea, but it was not set
535
- `);
536
- }
537
- textarea.addEventListener("keydown", (event) => {
538
- const key_code = event.keyCode || event.charCode;
539
- if (key_code === key_code_default.ENTER && event.shiftKey) {
540
- event.preventDefault();
541
- }
542
- });
543
- });
544
- }
545
- };
546
- var edit_block_default = EditBlockPage;
1404
+ // src/client/page/cursor.ts
1405
+ var import_errors7 = __toESM(require_src2());
1406
+ var import_array2 = __toESM(require_src3());
547
1407
 
548
1408
  // src/client/utility/get-meta-value.ts
1409
+ var import_errors5 = __toESM(require_src2());
549
1410
  function getMetaValue(name) {
550
1411
  const element = document.querySelector(`meta[name="${name}"]`);
551
1412
  if (element === null) {
552
- throw new invariant_violation_default(`
1413
+ throw new import_errors5.InvariantViolation(`
553
1414
  Tried to read ${name} meta tag, but it was not set
554
1415
  `);
555
1416
  }
556
1417
  if (!(element instanceof HTMLMetaElement)) {
557
- throw new invariant_violation_default(`
1418
+ throw new import_errors5.InvariantViolation(`
558
1419
  Got wrong element for ${name} meta tag: ${element.tagName}
559
1420
  `);
560
1421
  }
@@ -564,9 +1425,10 @@
564
1425
  var get_meta_value_default = getMetaValue;
565
1426
 
566
1427
  // src/server/utility/validate-path.ts
1428
+ var import_errors6 = __toESM(require_src2());
567
1429
  function validatePath(path) {
568
1430
  if (!path.startsWith("/")) {
569
- throw new invalid_default(`Invalid path: ${path}`);
1431
+ throw new import_errors6.InvalidError(`Invalid path: ${path}`);
570
1432
  }
571
1433
  }
572
1434
  var validate_path_default = validatePath;
@@ -592,11 +1454,22 @@
592
1454
  }
593
1455
  var get_parent_path_default = getParentPath;
594
1456
 
595
- // src/client/page/view-custom.ts
1457
+ // src/client/enum/media-ready-state.ts
1458
+ var MediaReadyState = /* @__PURE__ */ ((MediaReadyState2) => {
1459
+ MediaReadyState2[MediaReadyState2["HAVE_NOTHING"] = 0] = "HAVE_NOTHING";
1460
+ MediaReadyState2[MediaReadyState2["HAVE_METADATA"] = 1] = "HAVE_METADATA";
1461
+ MediaReadyState2[MediaReadyState2["HAVE_CURRENT_DATA"] = 2] = "HAVE_CURRENT_DATA";
1462
+ MediaReadyState2[MediaReadyState2["HAVE_FUTURE_DATA"] = 3] = "HAVE_FUTURE_DATA";
1463
+ MediaReadyState2[MediaReadyState2["HAVE_ENOUGH_DATA"] = 4] = "HAVE_ENOUGH_DATA";
1464
+ return MediaReadyState2;
1465
+ })(MediaReadyState || {});
1466
+ var media_ready_state_default = MediaReadyState;
1467
+
1468
+ // src/client/page/cursor.ts
596
1469
  function getAttributeForElement(element, attribute) {
597
1470
  const value = element.getAttribute(attribute);
598
1471
  if (value === null) {
599
- throw new invariant_violation_default(`
1472
+ throw new import_errors7.InvariantViolation(`
600
1473
  Tried to read ${attribute} for element, but it was not set
601
1474
  `);
602
1475
  }
@@ -605,16 +1478,27 @@
605
1478
  function getIndexPathForElement(element) {
606
1479
  return getAttributeForElement(element, "data-index-path");
607
1480
  }
608
- var ViewCustomPage = class extends page_default {
1481
+ var CursorPage = class extends page_default {
609
1482
  constructor() {
610
- super(...arguments);
1483
+ super();
611
1484
  this.logged_in = false;
1485
+ this.queued_media = null;
1486
+ this.ready_media = [];
612
1487
  }
613
1488
  initView() {
614
1489
  this.focusCurrentBlockElement();
615
1490
  const meta_value = get_meta_value_default("logged_in");
616
1491
  this.logged_in = meta_value === "true";
617
1492
  }
1493
+ initEvents() {
1494
+ super.initEvents();
1495
+ document.addEventListener("canplay", (event) => {
1496
+ this.handleMediaCanPlay(event);
1497
+ }, true);
1498
+ document.addEventListener("ended", (event) => {
1499
+ this.handleMediaPlaybackEnded(event);
1500
+ }, true);
1501
+ }
618
1502
  focusCurrentBlockElement() {
619
1503
  const element = this.getCurrentBlockElement();
620
1504
  if (element === null) {
@@ -627,8 +1511,6 @@
627
1511
  case key_code_default.ENTER:
628
1512
  case key_code_default.O:
629
1513
  return this.activateBlock();
630
- case key_code_default.L:
631
- return this.toggleEditMode();
632
1514
  case key_code_default.G:
633
1515
  return this.performPageJump();
634
1516
  case key_code_default.J:
@@ -639,21 +1521,15 @@
639
1521
  return this.navigateToParentPage();
640
1522
  case key_code_default.D:
641
1523
  return this.deleteCurrentBlock();
642
- case key_code_default.M:
643
- return this.moveCurrentBlock();
644
- case key_code_default.A:
645
- return this.addBlock();
646
- case key_code_default.E:
647
- return this.beginEditingBlock();
648
1524
  case key_code_default.H:
649
1525
  return this.navigateToHistory();
650
- case key_code_default.I:
651
- return this.hideCurrentBlock();
1526
+ case key_code_default.P:
1527
+ return this.addBlockToPlaylist();
652
1528
  default:
653
1529
  return super.handleKey(key_code);
654
1530
  }
655
1531
  }
656
- beginEditingBlock() {
1532
+ addBlockToPlaylist() {
657
1533
  if (!this.isLoggedIn()) {
658
1534
  return;
659
1535
  }
@@ -662,125 +1538,30 @@
662
1538
  return;
663
1539
  }
664
1540
  const block_id = block_element.id;
665
- const link_id = `${block_id}-edit`;
1541
+ const link_id = `${block_id}-add-to-playlist`;
666
1542
  const link_element = document.getElementById(link_id);
667
1543
  if (link_element === null) {
668
- throw new invariant_violation_default(`
669
- Unable to find edit link element for block: ${block_id}
1544
+ throw new import_errors7.InvariantViolation(`
1545
+ Unable to find playlist link element for block: ${block_id}
670
1546
  `);
671
1547
  }
672
1548
  const href = link_element.getAttribute("href");
673
1549
  if (href === null) {
674
- throw new invariant_violation_default(`
675
- Unable to find edit link href for block: ${block_id}
1550
+ throw new import_errors7.InvariantViolation(`
1551
+ Unable to find playlist link href for block: ${block_id}
676
1552
  `);
677
1553
  }
678
1554
  window.location.href = href;
679
1555
  }
680
- addBlock() {
1556
+ deleteCurrentBlock() {
681
1557
  if (!this.isLoggedIn()) {
682
1558
  return;
683
1559
  }
684
- const current_path = this.getCurrentBlockIndex();
685
- const top_level_index = parseInt(current_path, 10);
686
- if (isNaN(top_level_index)) {
687
- throw new invariant_violation_default(`Invalid index path: ${current_path}`);
1560
+ const block_element = this.getCurrentBlockElement();
1561
+ if (block_element === null) {
1562
+ return;
688
1563
  }
689
- const add_block_links = document.querySelectorAll('[data-role="add_block_link"]');
690
- const link_index = (() => {
691
- if (this.shiftIsPressed()) {
692
- return top_level_index;
693
- } else {
694
- return top_level_index + 1;
695
- }
696
- })();
697
- const link = add_block_links[link_index];
698
- if (link === void 0) {
699
- throw new invariant_violation_default(`
700
- Tried to read link at index ${link_index},
701
- but it was not found
702
- `);
703
- }
704
- const href = link.getAttribute("href");
705
- if (href === null) {
706
- throw new invariant_violation_default(`
707
- Tried to read href for link at index ${link_index},
708
- but it was not set
709
- `);
710
- }
711
- window.location.href = href;
712
- }
713
- moveCurrentBlock() {
714
- if (!this.isLoggedIn()) {
715
- return;
716
- }
717
- const block_element = this.getCurrentBlockElement();
718
- if (block_element === null) {
719
- return;
720
- }
721
- const block_id = block_element.id;
722
- const link_id = `${block_id}-move`;
723
- const link_element = document.getElementById(link_id);
724
- if (link_element === null) {
725
- throw new invariant_violation_default(`
726
- Unable to find move link element for block: ${block_id}
727
- `);
728
- }
729
- const href = link_element.getAttribute("href");
730
- if (href === null) {
731
- throw new invariant_violation_default(`
732
- Unable to find move link href for block: ${block_id}
733
- `);
734
- }
735
- window.location.href = href;
736
- }
737
- hideCurrentBlock() {
738
- if (!this.isLoggedIn()) {
739
- return;
740
- }
741
- const block_element = this.getCurrentBlockElement();
742
- if (block_element === null) {
743
- return;
744
- }
745
- const block_id = block_element.id;
746
- const link_id = `${block_id}-hide`;
747
- const link_element = document.getElementById(link_id);
748
- if (link_element === null) {
749
- throw new invariant_violation_default(`
750
- Unable to find hide link element for block: ${block_id}
751
- `);
752
- }
753
- const href = link_element.getAttribute("href");
754
- if (href === null) {
755
- throw new invariant_violation_default(`
756
- Unable to find hide link href for block: ${block_id}
757
- `);
758
- }
759
- window.location.href = href;
760
- }
761
- deleteCurrentBlock() {
762
- if (!this.isLoggedIn()) {
763
- return;
764
- }
765
- const block_element = this.getCurrentBlockElement();
766
- if (block_element === null) {
767
- return;
768
- }
769
- const block_id = block_element.id;
770
- const link_id = `${block_id}-delete`;
771
- const link_element = document.getElementById(link_id);
772
- if (link_element === null) {
773
- throw new invariant_violation_default(`
774
- Unable to find deletion link element for block: ${block_id}
775
- `);
776
- }
777
- const href = link_element.getAttribute("href");
778
- if (href === null) {
779
- throw new invariant_violation_default(`
780
- Unable to find deletion link href for block: ${block_id}
781
- `);
782
- }
783
- window.location.href = href;
1564
+ this.deleteBlockElement(block_element);
784
1565
  }
785
1566
  promoteCurrentBlock() {
786
1567
  if (!this.isLoggedIn()) {
@@ -794,7 +1575,7 @@
794
1575
  const form_id = `${block_id}-promote`;
795
1576
  const form_element = document.getElementById(form_id);
796
1577
  if (form_element === null) {
797
- throw new invariant_violation_default(`
1578
+ throw new import_errors7.InvariantViolation(`
798
1579
  Unable to find promotion form element for block: ${block_id}
799
1580
  `);
800
1581
  }
@@ -812,7 +1593,7 @@
812
1593
  const form_id = `${block_id}-demote`;
813
1594
  const form_element = document.getElementById(form_id);
814
1595
  if (form_element === null) {
815
- throw new invariant_violation_default(`
1596
+ throw new import_errors7.InvariantViolation(`
816
1597
  Unable to find demotion form element for block: ${block_id}
817
1598
  `);
818
1599
  }
@@ -859,7 +1640,7 @@
859
1640
  }
860
1641
  });
861
1642
  if (!found) {
862
- throw new invariant_violation_default(`
1643
+ throw new import_errors7.InvariantViolation(`
863
1644
  Tried to navigate to element at index path ${index_path},
864
1645
  but matching element was not found
865
1646
  `);
@@ -884,12 +1665,6 @@
884
1665
  this.focusCurrentBlockElement();
885
1666
  }
886
1667
  }
887
- toggleEditMode() {
888
- const editing_flag = this.getQueryParameter("editing");
889
- const editing = editing_flag === "true";
890
- const new_value = editing ? "false" : "true";
891
- this.setQueryParameter("editing", new_value);
892
- }
893
1668
  getCurrentBlockIndex() {
894
1669
  const element = this.getCurrentBlockElement();
895
1670
  if (element === null) {
@@ -931,7 +1706,7 @@
931
1706
  }
932
1707
  getFirstBlockIndex() {
933
1708
  const blocks = this.getBlockElements();
934
- const first_block = get_first_value_default(blocks);
1709
+ const first_block = (0, import_array2.getFirstValue)(blocks);
935
1710
  if (first_block === void 0) {
936
1711
  return null;
937
1712
  }
@@ -939,7 +1714,7 @@
939
1714
  }
940
1715
  getLastBlockIndex() {
941
1716
  const blocks = this.getBlockElements();
942
- const last_block = get_last_value_default(blocks);
1717
+ const last_block = (0, import_array2.getLastValue)(blocks);
943
1718
  if (last_block === void 0) {
944
1719
  return null;
945
1720
  }
@@ -972,14 +1747,14 @@
972
1747
  }
973
1748
  const attribute = block_element.getAttribute("data-block-type");
974
1749
  if (attribute === null) {
975
- throw new invariant_violation_default(`
1750
+ throw new import_errors7.InvariantViolation(`
976
1751
  Tried to activate current block, but it did not have a block type
977
1752
  `);
978
1753
  }
979
1754
  const block_type = attribute;
980
1755
  const block_types = Object.values(block_type_default);
981
1756
  if (!block_types.includes(block_type)) {
982
- throw new invariant_violation_default(`
1757
+ throw new import_errors7.InvariantViolation(`
983
1758
  Invalid block type: ${block_type}
984
1759
  `);
985
1760
  }
@@ -990,6 +1765,8 @@
990
1765
  return this.activateTodoBlock(block_element);
991
1766
  case block_type_default.IMAGE:
992
1767
  return this.activateImageBlock(block_element);
1768
+ case block_type_default.AUDIO:
1769
+ return this.activateAudioBlock(block_element);
993
1770
  default:
994
1771
  return console.warn(`no-op activation for block of type ${block_type}`);
995
1772
  }
@@ -998,7 +1775,7 @@
998
1775
  const forms = block_element.getElementsByTagName("form");
999
1776
  const form = forms[0];
1000
1777
  if (form === void 0) {
1001
- throw new invariant_violation_default(`
1778
+ throw new import_errors7.InvariantViolation(`
1002
1779
  Tried to activate form for todo block, but it was not set
1003
1780
  `);
1004
1781
  }
@@ -1012,10 +1789,306 @@
1012
1789
  const href = get_block_activation_href_default(block_element);
1013
1790
  window.location.href = href;
1014
1791
  }
1792
+ activateAudioBlock(block_element) {
1793
+ const audio_element = block_element.querySelectorAll("audio")[0];
1794
+ if (audio_element === void 0) {
1795
+ throw new import_errors7.InvariantViolation(`
1796
+ Tried to read audio element for block, but it was not present
1797
+ `);
1798
+ }
1799
+ this.enqueueMedia(audio_element);
1800
+ }
1801
+ enqueueMedia(element) {
1802
+ this.pauseActiveMedia();
1803
+ this.setQueuedMedia(element);
1804
+ }
1805
+ setQueuedMedia(element) {
1806
+ this.queued_media = element;
1807
+ if (element === null) {
1808
+ return;
1809
+ }
1810
+ const media_block = element.closest("section.block");
1811
+ if (media_block !== null) {
1812
+ const index_path = getIndexPathForElement(media_block);
1813
+ this.navigateToIndex(index_path);
1814
+ this.focusCurrentBlockElement();
1815
+ }
1816
+ if (element.readyState >= media_ready_state_default.HAVE_CURRENT_DATA) {
1817
+ element.currentTime = 0;
1818
+ element.play();
1819
+ return;
1820
+ }
1821
+ }
1822
+ handleMediaCanPlay(event) {
1823
+ const target = event.target;
1824
+ if (!(target instanceof HTMLMediaElement)) {
1825
+ return;
1826
+ }
1827
+ const media_target = target;
1828
+ if (this.queued_media !== media_target) {
1829
+ return;
1830
+ }
1831
+ if (this.ready_media.includes(media_target)) {
1832
+ return;
1833
+ }
1834
+ this.ready_media.push(media_target);
1835
+ media_target.currentTime = 0;
1836
+ media_target.play();
1837
+ }
1838
+ handleMediaPlaybackEnded(event) {
1839
+ const target = event.target;
1840
+ if (!(target instanceof HTMLMediaElement)) {
1841
+ return;
1842
+ }
1843
+ const media_target = target;
1844
+ if (this.queued_media !== null && this.queued_media !== media_target) {
1845
+ return;
1846
+ }
1847
+ this.setQueuedMedia(null);
1848
+ media_target.currentTime = 0;
1849
+ const media_elements = document.querySelectorAll("audio,video");
1850
+ let index = 0;
1851
+ while (index < media_elements.length) {
1852
+ const element = media_elements[index++];
1853
+ if (element === media_target) {
1854
+ const next_element = media_elements[index];
1855
+ if (next_element) {
1856
+ return this.setQueuedMedia(next_element);
1857
+ }
1858
+ }
1859
+ }
1860
+ }
1861
+ pauseActiveMedia() {
1862
+ this.setQueuedMedia(null);
1863
+ const elements = document.querySelectorAll("audio,video");
1864
+ const media_elements = Array.from(elements);
1865
+ media_elements.forEach((media_element) => {
1866
+ if (media_element.paused || media_element.ended) {
1867
+ return;
1868
+ }
1869
+ if (media_element.readyState < media_ready_state_default.HAVE_CURRENT_DATA) {
1870
+ return;
1871
+ }
1872
+ media_element.pause();
1873
+ });
1874
+ }
1015
1875
  isLoggedIn() {
1016
1876
  return this.logged_in;
1017
1877
  }
1018
1878
  };
1879
+ var cursor_default = CursorPage;
1880
+
1881
+ // src/client/page/view-playlist.ts
1882
+ var ViewPlaylistPage = class extends cursor_default {
1883
+ deleteBlockElement(block_element) {
1884
+ if (!this.isLoggedIn()) {
1885
+ return;
1886
+ }
1887
+ alert("implement: playlist deletions");
1888
+ }
1889
+ };
1890
+ var view_playlist_default = ViewPlaylistPage;
1891
+
1892
+ // src/client/page/add-block-to-playlist.ts
1893
+ var AddBlockToPlaylistPage = class extends page_default {
1894
+ initEvents() {
1895
+ }
1896
+ };
1897
+ var add_block_to_playlist_default = AddBlockToPlaylistPage;
1898
+
1899
+ // src/client/page/select-block-destination.ts
1900
+ var SelectBlockDestinationPage = class extends page_default {
1901
+ initEvents() {
1902
+ }
1903
+ };
1904
+ var select_block_destination_default = SelectBlockDestinationPage;
1905
+
1906
+ // src/client/page/create-block.ts
1907
+ var CreateBlockPage = class extends page_default {
1908
+ };
1909
+ var create_block_default = CreateBlockPage;
1910
+
1911
+ // src/client/page/edit-block.ts
1912
+ var import_errors8 = __toESM(require_src2());
1913
+ var EditBlockPage = class extends page_default {
1914
+ initEvents() {
1915
+ super.initEvents();
1916
+ const textarea_nodes = document.getElementsByTagName("textarea");
1917
+ const textareas = Array.from(textarea_nodes);
1918
+ textareas.forEach((textarea) => {
1919
+ let form;
1920
+ let current_node = textarea;
1921
+ while (current_node) {
1922
+ current_node = current_node.parentNode;
1923
+ if (current_node instanceof HTMLFormElement) {
1924
+ form = current_node;
1925
+ break;
1926
+ }
1927
+ }
1928
+ if (form === void 0) {
1929
+ throw new import_errors8.InvariantViolation(`
1930
+ Tried to read form for textarea, but it was not set
1931
+ `);
1932
+ }
1933
+ textarea.addEventListener("keydown", (event) => {
1934
+ const key_code = event.keyCode || event.charCode;
1935
+ if (key_code === key_code_default.ENTER && event.shiftKey) {
1936
+ event.preventDefault();
1937
+ }
1938
+ });
1939
+ });
1940
+ }
1941
+ };
1942
+ var edit_block_default = EditBlockPage;
1943
+
1944
+ // src/client/page/view-custom.ts
1945
+ var import_errors9 = __toESM(require_src2());
1946
+ var ViewCustomPage = class extends cursor_default {
1947
+ handleKey(key_code) {
1948
+ switch (key_code) {
1949
+ case key_code_default.L:
1950
+ return this.toggleEditMode();
1951
+ case key_code_default.M:
1952
+ return this.moveCurrentBlock();
1953
+ case key_code_default.A:
1954
+ return this.addBlock();
1955
+ case key_code_default.E:
1956
+ return this.beginEditingBlock();
1957
+ case key_code_default.I:
1958
+ return this.hideCurrentBlock();
1959
+ default:
1960
+ return super.handleKey(key_code);
1961
+ }
1962
+ }
1963
+ beginEditingBlock() {
1964
+ if (!this.isLoggedIn()) {
1965
+ return;
1966
+ }
1967
+ const block_element = this.getCurrentBlockElement();
1968
+ if (block_element === null) {
1969
+ return;
1970
+ }
1971
+ const block_id = block_element.id;
1972
+ const link_id = `${block_id}-edit`;
1973
+ const link_element = document.getElementById(link_id);
1974
+ if (link_element === null) {
1975
+ throw new import_errors9.InvariantViolation(`
1976
+ Unable to find edit link element for block: ${block_id}
1977
+ `);
1978
+ }
1979
+ const href = link_element.getAttribute("href");
1980
+ if (href === null) {
1981
+ throw new import_errors9.InvariantViolation(`
1982
+ Unable to find edit link href for block: ${block_id}
1983
+ `);
1984
+ }
1985
+ window.location.href = href;
1986
+ }
1987
+ addBlock() {
1988
+ if (!this.isLoggedIn()) {
1989
+ return;
1990
+ }
1991
+ const current_path = this.getCurrentBlockIndex();
1992
+ const top_level_index = parseInt(current_path, 10);
1993
+ if (isNaN(top_level_index)) {
1994
+ throw new import_errors9.InvariantViolation(`Invalid index path: ${current_path}`);
1995
+ }
1996
+ const add_block_links = document.querySelectorAll('[data-role="add_block_link"]');
1997
+ const link_index = (() => {
1998
+ if (this.shiftIsPressed()) {
1999
+ return top_level_index;
2000
+ } else {
2001
+ return top_level_index + 1;
2002
+ }
2003
+ })();
2004
+ const link = add_block_links[link_index];
2005
+ if (link === void 0) {
2006
+ throw new import_errors9.InvariantViolation(`
2007
+ Tried to read link at index ${link_index},
2008
+ but it was not found
2009
+ `);
2010
+ }
2011
+ const href = link.getAttribute("href");
2012
+ if (href === null) {
2013
+ throw new import_errors9.InvariantViolation(`
2014
+ Tried to read href for link at index ${link_index},
2015
+ but it was not set
2016
+ `);
2017
+ }
2018
+ window.location.href = href;
2019
+ }
2020
+ moveCurrentBlock() {
2021
+ if (!this.isLoggedIn()) {
2022
+ return;
2023
+ }
2024
+ const block_element = this.getCurrentBlockElement();
2025
+ if (block_element === null) {
2026
+ return;
2027
+ }
2028
+ const block_id = block_element.id;
2029
+ const link_id = `${block_id}-move`;
2030
+ const link_element = document.getElementById(link_id);
2031
+ if (link_element === null) {
2032
+ throw new import_errors9.InvariantViolation(`
2033
+ Unable to find move link element for block: ${block_id}
2034
+ `);
2035
+ }
2036
+ const href = link_element.getAttribute("href");
2037
+ if (href === null) {
2038
+ throw new import_errors9.InvariantViolation(`
2039
+ Unable to find move link href for block: ${block_id}
2040
+ `);
2041
+ }
2042
+ window.location.href = href;
2043
+ }
2044
+ hideCurrentBlock() {
2045
+ if (!this.isLoggedIn()) {
2046
+ return;
2047
+ }
2048
+ const block_element = this.getCurrentBlockElement();
2049
+ if (block_element === null) {
2050
+ return;
2051
+ }
2052
+ const block_id = block_element.id;
2053
+ const link_id = `${block_id}-hide`;
2054
+ const link_element = document.getElementById(link_id);
2055
+ if (link_element === null) {
2056
+ throw new import_errors9.InvariantViolation(`
2057
+ Unable to find hide link element for block: ${block_id}
2058
+ `);
2059
+ }
2060
+ const href = link_element.getAttribute("href");
2061
+ if (href === null) {
2062
+ throw new import_errors9.InvariantViolation(`
2063
+ Unable to find hide link href for block: ${block_id}
2064
+ `);
2065
+ }
2066
+ window.location.href = href;
2067
+ }
2068
+ deleteBlockElement(block_element) {
2069
+ const block_id = block_element.id;
2070
+ const link_id = `${block_id}-delete`;
2071
+ const link_element = document.getElementById(link_id);
2072
+ if (link_element === null) {
2073
+ throw new import_errors9.InvariantViolation(`
2074
+ Unable to find deletion link element for block: ${block_id}
2075
+ `);
2076
+ }
2077
+ const href = link_element.getAttribute("href");
2078
+ if (href === null) {
2079
+ throw new import_errors9.InvariantViolation(`
2080
+ Unable to find deletion link href for block: ${block_id}
2081
+ `);
2082
+ }
2083
+ window.location.href = href;
2084
+ }
2085
+ toggleEditMode() {
2086
+ const editing_flag = this.getQueryParameter("editing");
2087
+ const editing = editing_flag === "true";
2088
+ const new_value = editing ? "false" : "true";
2089
+ this.setQueryParameter("editing", new_value);
2090
+ }
2091
+ };
1019
2092
  var view_custom_default = ViewCustomPage;
1020
2093
 
1021
2094
  // src/client/page/edit-custom.ts
@@ -1032,6 +2105,7 @@
1032
2105
  var edit_custom_default = EditCustomPage;
1033
2106
 
1034
2107
  // src/client/page/confirm-delete-block.ts
2108
+ var import_errors10 = __toESM(require_src2());
1035
2109
  var ConfirmDeleteBlockPage = class extends page_default {
1036
2110
  handleKey(key_code) {
1037
2111
  switch (key_code) {
@@ -1044,7 +2118,7 @@
1044
2118
  submitDeletionForm() {
1045
2119
  const element = document.getElementById("deletion-form");
1046
2120
  if (element === null) {
1047
- throw new invariant_violation_default("Could not find deletion form element");
2121
+ throw new import_errors10.InvariantViolation("Could not find deletion form element");
1048
2122
  }
1049
2123
  const form = element;
1050
2124
  form.submit();
@@ -1053,6 +2127,7 @@
1053
2127
  var confirm_delete_block_default = ConfirmDeleteBlockPage;
1054
2128
 
1055
2129
  // src/client/page/confirm-hide-block.ts
2130
+ var import_errors11 = __toESM(require_src2());
1056
2131
  var ConfirmHideBlockPage = class extends page_default {
1057
2132
  handleKey(key_code) {
1058
2133
  switch (key_code) {
@@ -1065,7 +2140,7 @@
1065
2140
  submitHideForm() {
1066
2141
  const element = document.getElementById("hide-form");
1067
2142
  if (element === null) {
1068
- throw new invariant_violation_default("Could not find hide form element");
2143
+ throw new import_errors11.InvariantViolation("Could not find hide form element");
1069
2144
  }
1070
2145
  const form = element;
1071
2146
  form.submit();
@@ -1107,7 +2182,9 @@
1107
2182
  [page_type_default.CONFIRM_HIDE_BLOCK]: confirm_hide_block_default,
1108
2183
  [page_type_default.MOVE_BLOCK]: move_block_default,
1109
2184
  [page_type_default.SETTINGS]: settings_default,
1110
- [page_type_default.ROLE]: role_default
2185
+ [page_type_default.ROLE]: role_default,
2186
+ [page_type_default.ADD_BLOCK_TO_PLAYLIST]: add_block_to_playlist_default,
2187
+ [page_type_default.VIEW_PLAYLIST]: view_playlist_default
1111
2188
  };
1112
2189
  var PageFactory = class {
1113
2190
  constructor(page_type) {
@@ -1156,7 +2233,7 @@
1156
2233
  const page_type = meta_value;
1157
2234
  const page_types = Object.values(page_type_default);
1158
2235
  if (!page_types.includes(page_type)) {
1159
- throw new invariant_violation_default(`
2236
+ throw new import_errors12.InvariantViolation(`
1160
2237
  Invalid page type: ${page_type}
1161
2238
  `);
1162
2239
  }