@fc3/mmcadi 0.1.0

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 (460) hide show
  1. package/LICENSE +673 -0
  2. package/README.md +5 -0
  3. package/bin/compile +63 -0
  4. package/bin/copy-static-files +13 -0
  5. package/bin/install +5 -0
  6. package/bin/precompile +55 -0
  7. package/bin/prepublish +7 -0
  8. package/bin/remap-paths +113 -0
  9. package/bin/test +9 -0
  10. package/config/tsconfig.json +37 -0
  11. package/package.json +33 -0
  12. package/src/bootstrap/start.ts +12 -0
  13. package/src/client/bootstrap.ts +5 -0
  14. package/src/client/client.ts +54 -0
  15. package/src/client/enum/key-code.ts +34 -0
  16. package/src/client/enum/page-type.ts +19 -0
  17. package/src/client/factory/page.ts +61 -0
  18. package/src/client/page/confirm-delete-block.ts +30 -0
  19. package/src/client/page/create-block.ts +6 -0
  20. package/src/client/page/day.ts +8 -0
  21. package/src/client/page/edit-block.ts +43 -0
  22. package/src/client/page/edit-custom.ts +16 -0
  23. package/src/client/page/home.ts +8 -0
  24. package/src/client/page/login.ts +8 -0
  25. package/src/client/page/logout.ts +8 -0
  26. package/src/client/page/month.ts +8 -0
  27. package/src/client/page/move-block.ts +8 -0
  28. package/src/client/page/select-block-type.ts +56 -0
  29. package/src/client/page/settings.ts +8 -0
  30. package/src/client/page/view-custom.ts +665 -0
  31. package/src/client/page/week.ts +8 -0
  32. package/src/client/page/year.ts +8 -0
  33. package/src/client/page.ts +128 -0
  34. package/src/client/shim/execute.ts +5 -0
  35. package/src/client/shim/logger.ts +44 -0
  36. package/src/client/utility/get-meta-value.ts +23 -0
  37. package/src/common/builder/block/background.ts +25 -0
  38. package/src/common/builder/block/folder.ts +43 -0
  39. package/src/common/builder/block/header.ts +15 -0
  40. package/src/common/builder/block/link.ts +32 -0
  41. package/src/common/builder/block/multicolumn.ts +16 -0
  42. package/src/common/builder/block/note.ts +13 -0
  43. package/src/common/builder/block/whitespace.ts +13 -0
  44. package/src/common/utility/get-parent-path.ts +29 -0
  45. package/src/constant/month-names.ts +16 -0
  46. package/src/enum/action-type.ts +11 -0
  47. package/src/enum/block-type.ts +18 -0
  48. package/src/enum/calendar-view-mode.ts +9 -0
  49. package/src/enum/color.ts +15 -0
  50. package/src/enum/default-role.ts +6 -0
  51. package/src/enum/directory-item-type.ts +6 -0
  52. package/src/enum/emoji.ts +94 -0
  53. package/src/enum/field-type.ts +8 -0
  54. package/src/enum/header-size.ts +7 -0
  55. package/src/enum/permission-type.ts +8 -0
  56. package/src/enum/time-place-visibility.ts +8 -0
  57. package/src/enum/tool-type.ts +14 -0
  58. package/src/index.ts +8 -0
  59. package/src/interface/hydration-callback.ts +7 -0
  60. package/src/interface/provider.ts +8 -0
  61. package/src/interface/repository.ts +12 -0
  62. package/src/lib/array/add.ts +10 -0
  63. package/src/lib/array/assert-is-empty.ts +23 -0
  64. package/src/lib/array/clone.ts +5 -0
  65. package/src/lib/array/difference.ts +8 -0
  66. package/src/lib/array/empty.ts +6 -0
  67. package/src/lib/array/equal.ts +24 -0
  68. package/src/lib/array/get-first-value.ts +5 -0
  69. package/src/lib/array/get-last-value.ts +5 -0
  70. package/src/lib/array/get-max-value.ts +5 -0
  71. package/src/lib/array/get-value-after.ts +23 -0
  72. package/src/lib/array/get-value-before.ts +23 -0
  73. package/src/lib/array/get-values-between.ts +18 -0
  74. package/src/lib/array/index.ts +5 -0
  75. package/src/lib/array/is-empty.ts +6 -0
  76. package/src/lib/array/remove.ts +19 -0
  77. package/src/lib/array/sum.ts +11 -0
  78. package/src/lib/array/unique.ts +13 -0
  79. package/src/lib/environment/bootstrap.ts +1 -0
  80. package/src/lib/environment/enum/environment-type.ts +8 -0
  81. package/src/lib/environment/enum/service-type.ts +5 -0
  82. package/src/lib/environment/index.ts +7 -0
  83. package/src/lib/environment/utility/get-environment-type.ts +28 -0
  84. package/src/lib/environment/utility/is-browser.ts +5 -0
  85. package/src/lib/environment/utility/is-development.ts +10 -0
  86. package/src/lib/environment/utility/is-production-or-staging.ts +8 -0
  87. package/src/lib/environment/utility/is-production.ts +10 -0
  88. package/src/lib/environment/utility/is-staging.ts +10 -0
  89. package/src/lib/errors/enum/error-type.ts +13 -0
  90. package/src/lib/errors/error/base.ts +40 -0
  91. package/src/lib/errors/error/conflict.ts +16 -0
  92. package/src/lib/errors/error/generic.ts +23 -0
  93. package/src/lib/errors/error/invalid.ts +14 -0
  94. package/src/lib/errors/error/invariant-violation.ts +5 -0
  95. package/src/lib/errors/error/not-allowed.ts +14 -0
  96. package/src/lib/errors/error/not-found.ts +16 -0
  97. package/src/lib/errors/error/not-implemented.ts +20 -0
  98. package/src/lib/errors/error/omitted.ts +14 -0
  99. package/src/lib/errors/error/timeout.ts +14 -0
  100. package/src/lib/errors/error/unauthorized.ts +14 -0
  101. package/src/lib/errors/index.ts +18 -0
  102. package/src/lib/errors/sugar/invariant.ts +7 -0
  103. package/src/lib/errors/type/coded-error.ts +7 -0
  104. package/src/lib/errors/type/error-data.ts +11 -0
  105. package/src/lib/errors/utility/create-error-for-error-type.ts +60 -0
  106. package/src/lib/errors/utility/create-error-from-ambiguous-json-data.ts +26 -0
  107. package/src/lib/errors/utility/error-matches.ts +28 -0
  108. package/src/lib/errors/utility/get-error-type-for-posix-error-code.ts +37 -0
  109. package/src/lib/errors/utility/get-error-type-for-status-code.ts +38 -0
  110. package/src/lib/errors/utility/get-message-for-error-type.ts +29 -0
  111. package/src/lib/errors/utility/matches-posix-error-code.ts +11 -0
  112. package/src/lib/errors/utility/wrap-error.ts +39 -0
  113. package/src/lib/event-emitter/index.ts +63 -0
  114. package/src/lib/execution-context/execution-context.ts +90 -0
  115. package/src/lib/execution-context/index.ts +8 -0
  116. package/src/lib/execution-context/type/session.ts +7 -0
  117. package/src/lib/feature/feature.ts +108 -0
  118. package/src/lib/feature/index.ts +3 -0
  119. package/src/lib/filesystem/bootstrap.ts +1 -0
  120. package/src/lib/filesystem/enum/file-extension.ts +19 -0
  121. package/src/lib/filesystem/index.ts +4 -0
  122. package/src/lib/filesystem/utility/exists.ts +21 -0
  123. package/src/lib/filesystem/utility/get-extension-for-filepath.ts +20 -0
  124. package/src/lib/filesystem/utility/strip-extension.ts +26 -0
  125. package/src/lib/grammar/index.ts +3 -0
  126. package/src/lib/grammar/noun-inflector.ts +104 -0
  127. package/src/lib/grammar/utility/get-words-from-identifier.ts +9 -0
  128. package/src/lib/grammar/verb-inflector.ts +344 -0
  129. package/src/lib/http/buffer-stream.ts +76 -0
  130. package/src/lib/http/enum/content-type.ts +19 -0
  131. package/src/lib/http/enum/cookie-attribute.ts +11 -0
  132. package/src/lib/http/enum/header.ts +29 -0
  133. package/src/lib/http/enum/method.ts +11 -0
  134. package/src/lib/http/enum/same-site-policy.ts +7 -0
  135. package/src/lib/http/enum/status-code.ts +9 -0
  136. package/src/lib/http/factory/body-parser.ts +55 -0
  137. package/src/lib/http/index.ts +24 -0
  138. package/src/lib/http/interface/client-request.ts +15 -0
  139. package/src/lib/http/interface/incoming-message.ts +24 -0
  140. package/src/lib/http/interface/network-library.ts +9 -0
  141. package/src/lib/http/interface/request-callback.ts +7 -0
  142. package/src/lib/http/isomorphic/request.ts +77 -0
  143. package/src/lib/http/isomorphic/response.ts +77 -0
  144. package/src/lib/http/isomorphic.ts +20 -0
  145. package/src/lib/http/parser/accept-header.ts +35 -0
  146. package/src/lib/http/parser/basic-auth-header.ts +48 -0
  147. package/src/lib/http/parser/body/json.ts +14 -0
  148. package/src/lib/http/parser/body/multipart.ts +89 -0
  149. package/src/lib/http/parser/body/url-encoded.ts +16 -0
  150. package/src/lib/http/parser/body.ts +44 -0
  151. package/src/lib/http/parser/cookie.ts +114 -0
  152. package/src/lib/http/parser/querystring.ts +92 -0
  153. package/src/lib/http/parser/url.ts +76 -0
  154. package/src/lib/http/request/incoming.ts +299 -0
  155. package/src/lib/http/request/outgoing.ts +276 -0
  156. package/src/lib/http/request.ts +26 -0
  157. package/src/lib/http/response/incoming.ts +243 -0
  158. package/src/lib/http/response/outgoing.ts +160 -0
  159. package/src/lib/http/response.ts +74 -0
  160. package/src/lib/http/serializer/basic-auth-header.ts +27 -0
  161. package/src/lib/http/serializer/cookie.ts +90 -0
  162. package/src/lib/http/serializer/query-data.ts +54 -0
  163. package/src/lib/http/transaction.ts +320 -0
  164. package/src/lib/http/type/basic-auth-credentials.ts +6 -0
  165. package/src/lib/http/type/header-map.ts +5 -0
  166. package/src/lib/http/type/log-attributes.ts +12 -0
  167. package/src/lib/http/type/path-parameters.ts +5 -0
  168. package/src/lib/http/type/query-data.ts +7 -0
  169. package/src/lib/http/type/query-value.ts +11 -0
  170. package/src/lib/http/type/request-options.ts +16 -0
  171. package/src/lib/http/type/transaction-data.ts +4 -0
  172. package/src/lib/http/utility/get-content-type-for-extension.ts +47 -0
  173. package/src/lib/http/utility/get-library-for-protocol.ts +25 -0
  174. package/src/lib/http/utility/get-status-code-for-error-type.ts +37 -0
  175. package/src/lib/http/utility/get-status-code-for-error.ts +13 -0
  176. package/src/lib/http/utility/is-client-error-status.ts +15 -0
  177. package/src/lib/http/utility/is-error-status.ts +9 -0
  178. package/src/lib/http/utility/is-server-error-status.ts +7 -0
  179. package/src/lib/http/utility/is-success-status.ts +7 -0
  180. package/src/lib/http/utility/proxy-request.ts +58 -0
  181. package/src/lib/http/utility/serialize-request-options.ts +9 -0
  182. package/src/lib/http/utility/slug-generator.ts +20 -0
  183. package/src/lib/key-generator/index.ts +3 -0
  184. package/src/lib/key-generator/key-generator.ts +7 -0
  185. package/src/lib/logger/enum/ansi-escape-code.ts +14 -0
  186. package/src/lib/logger/enum/log-level.ts +8 -0
  187. package/src/lib/logger/formatter.ts +59 -0
  188. package/src/lib/logger/index.ts +7 -0
  189. package/src/lib/logger/interface/error-reporter.ts +7 -0
  190. package/src/lib/logger/interface/logger.ts +13 -0
  191. package/src/lib/logger/logger.ts +239 -0
  192. package/src/lib/logger/type/error-parameters.ts +9 -0
  193. package/src/lib/logger/type/loggable-data.ts +5 -0
  194. package/src/lib/logger/type/loggable-value.ts +1 -0
  195. package/src/lib/metrics/dispatcher.ts +264 -0
  196. package/src/lib/metrics/enum/dispatch-mode.ts +6 -0
  197. package/src/lib/metrics/index.ts +2 -0
  198. package/src/lib/metrics/settings-hydrator.ts +51 -0
  199. package/src/lib/metrics/type/dispatcher-settings.ts +12 -0
  200. package/src/lib/metrics/type/tag-map.ts +5 -0
  201. package/src/lib/network/bootstrap.ts +1 -0
  202. package/src/lib/network/enum/connection-status.ts +14 -0
  203. package/src/lib/network/enum/http-status-code.ts +75 -0
  204. package/src/lib/network/enum/network-protocol.ts +10 -0
  205. package/src/lib/network/event-emitter.ts +63 -0
  206. package/src/lib/network/index.ts +7 -0
  207. package/src/lib/network/interface/socket.ts +42 -0
  208. package/src/lib/network/type/socket-options.ts +6 -0
  209. package/src/lib/network/utility/get-protocol-from-url.ts +15 -0
  210. package/src/lib/operation/index.ts +6 -0
  211. package/src/lib/operation/operation/auto-logging.ts +94 -0
  212. package/src/lib/operation/operation/silent.ts +17 -0
  213. package/src/lib/operation/operation.ts +80 -0
  214. package/src/lib/process/bootstrap.ts +1 -0
  215. package/src/lib/process/enum/posix-error-code.ts +138 -0
  216. package/src/lib/process/enum/process-signal.ts +68 -0
  217. package/src/lib/process/error.ts +6 -0
  218. package/src/lib/process/execute.ts +77 -0
  219. package/src/lib/process/index.ts +4 -0
  220. package/src/lib/process/type/command-options.ts +9 -0
  221. package/src/lib/process/utility/bind-process-lifespan-to.ts +10 -0
  222. package/src/lib/promise-wrapper/index.ts +3 -0
  223. package/src/lib/promise-wrapper/promise-wrapper.ts +51 -0
  224. package/src/lib/random/chance.ts +5 -0
  225. package/src/lib/random/element.ts +7 -0
  226. package/src/lib/random/elements.ts +12 -0
  227. package/src/lib/random/enum.ts +34 -0
  228. package/src/lib/random/enums.ts +11 -0
  229. package/src/lib/random/index.ts +3 -0
  230. package/src/lib/random/number.ts +8 -0
  231. package/src/lib/server/base.ts +194 -0
  232. package/src/lib/server/enum/server-event.ts +5 -0
  233. package/src/lib/server/enum/server-status.ts +10 -0
  234. package/src/lib/server/http/endpoint/ping.ts +21 -0
  235. package/src/lib/server/http/endpoint.ts +345 -0
  236. package/src/lib/server/http/interface/endpoint-constructor.ts +12 -0
  237. package/src/lib/server/http/interface/result-serializer.ts +5 -0
  238. package/src/lib/server/http/middleware.ts +18 -0
  239. package/src/lib/server/http/result-serializer/html.ts +92 -0
  240. package/src/lib/server/http/result-serializer/json.ts +23 -0
  241. package/src/lib/server/http/route.ts +104 -0
  242. package/src/lib/server/http/router.ts +125 -0
  243. package/src/lib/server/http/type/session-resolver.ts +8 -0
  244. package/src/lib/server/http/utility/create-server.ts +34 -0
  245. package/src/lib/server/http/utility/path-parser.ts +49 -0
  246. package/src/lib/server/http/utility/standardize-html-indentation.ts +54 -0
  247. package/src/lib/server/http/websocket-wrapper.ts +83 -0
  248. package/src/lib/server/http.ts +301 -0
  249. package/src/lib/server/index.ts +5 -0
  250. package/src/lib/server/tcp.ts +53 -0
  251. package/src/lib/server/type/server-options.ts +10 -0
  252. package/src/lib/string/calculate-length.ts +17 -0
  253. package/src/lib/string/capitalize.ts +8 -0
  254. package/src/lib/string/create-slug.ts +14 -0
  255. package/src/lib/string/enum/ansi-escape-code.ts +14 -0
  256. package/src/lib/string/enum/string-encoding.ts +9 -0
  257. package/src/lib/string/hyphenate.ts +5 -0
  258. package/src/lib/string/index.ts +3 -0
  259. package/src/lib/string/pad.ts +14 -0
  260. package/src/lib/string/trim-multiline.ts +21 -0
  261. package/src/lib/string/trim.ts +8 -0
  262. package/src/lib/tcp/channel.ts +13 -0
  263. package/src/lib/tcp/connection/incoming.ts +72 -0
  264. package/src/lib/tcp/connection/outgoing.ts +219 -0
  265. package/src/lib/tcp/connection.ts +360 -0
  266. package/src/lib/tcp/enum/connection-event.ts +12 -0
  267. package/src/lib/tcp/enum/message-type.ts +9 -0
  268. package/src/lib/tcp/index.ts +1 -0
  269. package/src/lib/tcp/type/connection-parameters.ts +6 -0
  270. package/src/lib/tcp/type/message/channel-close.ts +9 -0
  271. package/src/lib/tcp/type/message/channel-open.ts +9 -0
  272. package/src/lib/tcp/type/message.ts +10 -0
  273. package/src/lib/test/index.ts +2 -0
  274. package/src/lib/test/utility/build-config.ts +17 -0
  275. package/src/lib/test/utility/build-execution-context.ts +11 -0
  276. package/src/lib/time/bootstrap.ts +1 -0
  277. package/src/lib/time/enum/time-interval.ts +12 -0
  278. package/src/lib/time/index.ts +4 -0
  279. package/src/lib/time/utility/format-duration.ts +139 -0
  280. package/src/lib/time/utility/format-relative-duration.ts +22 -0
  281. package/src/lib/time/utility/sleep.ts +9 -0
  282. package/src/operation.ts +18 -0
  283. package/src/server/endpoint/abstract-page.ts +126 -0
  284. package/src/server/endpoint/action/create.ts +545 -0
  285. package/src/server/endpoint/action/get.ts +231 -0
  286. package/src/server/endpoint/base.ts +51 -0
  287. package/src/server/endpoint/day.ts +13 -0
  288. package/src/server/endpoint/generic-page.ts +14 -0
  289. package/src/server/endpoint/index.ts +11 -0
  290. package/src/server/endpoint/login.ts +45 -0
  291. package/src/server/endpoint/logout.ts +38 -0
  292. package/src/server/endpoint/month.ts +35 -0
  293. package/src/server/endpoint/robots.ts +18 -0
  294. package/src/server/endpoint/session/create.ts +62 -0
  295. package/src/server/endpoint/settings/get.ts +40 -0
  296. package/src/server/endpoint/settings/update.ts +44 -0
  297. package/src/server/endpoint/today.ts +15 -0
  298. package/src/server/endpoint/week.ts +34 -0
  299. package/src/server/endpoint/year.ts +34 -0
  300. package/src/server/enum/custom-page-type.ts +10 -0
  301. package/src/server/factory/block-result-serializer.ts +115 -0
  302. package/src/server/middleware/base.ts +6 -0
  303. package/src/server/middleware/error-handler.ts +177 -0
  304. package/src/server/middleware/static-file.ts +83 -0
  305. package/src/server/operation/add-block.ts +110 -0
  306. package/src/server/operation/create-session.ts +43 -0
  307. package/src/server/operation/delete-block.ts +96 -0
  308. package/src/server/operation/demote-block.ts +108 -0
  309. package/src/server/operation/destroy-session.ts +26 -0
  310. package/src/server/operation/load-account.ts +30 -0
  311. package/src/server/operation/load-block.ts +48 -0
  312. package/src/server/operation/load-directory-items.ts +75 -0
  313. package/src/server/operation/load-page.ts +368 -0
  314. package/src/server/operation/promote-block.ts +104 -0
  315. package/src/server/operation/save-page.ts +60 -0
  316. package/src/server/operation/update-account-settings.ts +52 -0
  317. package/src/server/operation/update-block.ts +124 -0
  318. package/src/server/repository/memory.ts +112 -0
  319. package/src/server/result-serializer/action.ts +939 -0
  320. package/src/server/result-serializer/base.ts +1267 -0
  321. package/src/server/result-serializer/block/audio.ts +33 -0
  322. package/src/server/result-serializer/block/background.ts +20 -0
  323. package/src/server/result-serializer/block/calendar.ts +148 -0
  324. package/src/server/result-serializer/block/directory.ts +57 -0
  325. package/src/server/result-serializer/block/ephemeral.ts +14 -0
  326. package/src/server/result-serializer/block/folder.ts +106 -0
  327. package/src/server/result-serializer/block/header.ts +31 -0
  328. package/src/server/result-serializer/block/image.ts +46 -0
  329. package/src/server/result-serializer/block/link.ts +40 -0
  330. package/src/server/result-serializer/block/list.ts +140 -0
  331. package/src/server/result-serializer/block/multi-column.ts +97 -0
  332. package/src/server/result-serializer/block/note.ts +44 -0
  333. package/src/server/result-serializer/block/todo.ts +78 -0
  334. package/src/server/result-serializer/block/whitespace.ts +15 -0
  335. package/src/server/result-serializer/block.ts +248 -0
  336. package/src/server/result-serializer/common/time-place-options.ts +33 -0
  337. package/src/server/result-serializer/login.ts +58 -0
  338. package/src/server/result-serializer/month.ts +170 -0
  339. package/src/server/result-serializer/page.ts +548 -0
  340. package/src/server/result-serializer/settings.ts +85 -0
  341. package/src/server/result-serializer/week.ts +195 -0
  342. package/src/server/result-serializer/year.ts +160 -0
  343. package/src/server/utility/accepts-content-type.ts +16 -0
  344. package/src/server/utility/accepts-html.ts +9 -0
  345. package/src/server/utility/accepts-json.ts +9 -0
  346. package/src/server/utility/add-days.ts +11 -0
  347. package/src/server/utility/create-date.ts +23 -0
  348. package/src/server/utility/create-index-path.ts +5 -0
  349. package/src/server/utility/create-slug.ts +9 -0
  350. package/src/server/utility/create-toast-path.ts +19 -0
  351. package/src/server/utility/date-less-than.ts +5 -0
  352. package/src/server/utility/date-occurs-before.ts +22 -0
  353. package/src/server/utility/date-to-key.ts +7 -0
  354. package/src/server/utility/date-to-label.ts +5 -0
  355. package/src/server/utility/date-to-path.ts +9 -0
  356. package/src/server/utility/dates-are-equal.ts +22 -0
  357. package/src/server/utility/dates-are-in-order.ts +9 -0
  358. package/src/server/utility/dates-are-on-the-same-day.ts +9 -0
  359. package/src/server/utility/dates-in-same-month.ts +8 -0
  360. package/src/server/utility/day-to-date.ts +40 -0
  361. package/src/server/utility/decrement-date.ts +11 -0
  362. package/src/server/utility/get-block-at-index-path.ts +32 -0
  363. package/src/server/utility/get-block-permissions.ts +15 -0
  364. package/src/server/utility/get-compact-label-for-date.ts +8 -0
  365. package/src/server/utility/get-custom-page-type-for-path.ts +37 -0
  366. package/src/server/utility/get-element-id-for-block.ts +15 -0
  367. package/src/server/utility/get-emoji-for-block-type.ts +39 -0
  368. package/src/server/utility/get-emoji-for-tool-type.ts +20 -0
  369. package/src/server/utility/get-end-of-month.ts +13 -0
  370. package/src/server/utility/get-end-of-week.ts +13 -0
  371. package/src/server/utility/get-filepath-for-folder-block.ts +23 -0
  372. package/src/server/utility/get-hex-for-color.ts +31 -0
  373. package/src/server/utility/get-label-for-time-place-visibility.ts +23 -0
  374. package/src/server/utility/get-month-name.ts +18 -0
  375. package/src/server/utility/get-next-day.ts +7 -0
  376. package/src/server/utility/get-next-month.ts +12 -0
  377. package/src/server/utility/get-next-week.ts +12 -0
  378. package/src/server/utility/get-next-year.ts +13 -0
  379. package/src/server/utility/get-ordinal-label-for-week.ts +11 -0
  380. package/src/server/utility/get-ordinal-of-week-within-month.ts +15 -0
  381. package/src/server/utility/get-padded-date.ts +11 -0
  382. package/src/server/utility/get-parent-index-path.ts +18 -0
  383. package/src/server/utility/get-path-for-folder-block.ts +25 -0
  384. package/src/server/utility/get-path-from-url.ts +13 -0
  385. package/src/server/utility/get-previous-index-path.ts +27 -0
  386. package/src/server/utility/get-previous-month.ts +12 -0
  387. package/src/server/utility/get-previous-week.ts +11 -0
  388. package/src/server/utility/get-previous-year.ts +13 -0
  389. package/src/server/utility/get-random-emoji-for-date.ts +109 -0
  390. package/src/server/utility/get-short-label-for-date.ts +11 -0
  391. package/src/server/utility/get-short-month-name.ts +9 -0
  392. package/src/server/utility/get-short-ordinal.ts +26 -0
  393. package/src/server/utility/get-siblings-and-index-for-index-path.ts +67 -0
  394. package/src/server/utility/get-start-of-month.ts +11 -0
  395. package/src/server/utility/get-start-of-week.ts +12 -0
  396. package/src/server/utility/get-start-of-year.ts +12 -0
  397. package/src/server/utility/get-weekday-name.ts +24 -0
  398. package/src/server/utility/increment-date.ts +15 -0
  399. package/src/server/utility/is-index-path.ts +5 -0
  400. package/src/server/utility/key-to-date.ts +25 -0
  401. package/src/server/utility/month-has-week-containing-date.ts +13 -0
  402. package/src/server/utility/month-to-date.ts +28 -0
  403. package/src/server/utility/month-to-path.ts +10 -0
  404. package/src/server/utility/months-are-equal.ts +8 -0
  405. package/src/server/utility/parse-index-path.ts +23 -0
  406. package/src/server/utility/path-is-date.ts +13 -0
  407. package/src/server/utility/path-to-date.ts +24 -0
  408. package/src/server/utility/subtract-days.ts +7 -0
  409. package/src/server/utility/validate-month.ts +10 -0
  410. package/src/server/utility/validate-page.ts +46 -0
  411. package/src/server/utility/validate-path.ts +9 -0
  412. package/src/server/utility/validate-url.ts +12 -0
  413. package/src/server/utility/week-greater-than.ts +10 -0
  414. package/src/server/utility/week-to-date.ts +8 -0
  415. package/src/server/utility/week-to-path.ts +12 -0
  416. package/src/server/utility/weeks-are-equal.ts +8 -0
  417. package/src/server/utility/year-to-date.ts +26 -0
  418. package/src/server/utility/year-to-path.ts +7 -0
  419. package/src/server/utility/years-are-equal.ts +8 -0
  420. package/src/server.ts +140 -0
  421. package/src/test.ts +195 -0
  422. package/src/type/account-settings.ts +9 -0
  423. package/src/type/account.ts +11 -0
  424. package/src/type/action/add-block.ts +74 -0
  425. package/src/type/action/complete-block.ts +10 -0
  426. package/src/type/action/delete-block.ts +11 -0
  427. package/src/type/action/demote-block.ts +9 -0
  428. package/src/type/action/edit-block.ts +11 -0
  429. package/src/type/action/promote-block.ts +9 -0
  430. package/src/type/action.ts +9 -0
  431. package/src/type/block/audio.ts +8 -0
  432. package/src/type/block/background.ts +10 -0
  433. package/src/type/block/directory.ts +18 -0
  434. package/src/type/block/ephemeral.ts +9 -0
  435. package/src/type/block/folder.ts +14 -0
  436. package/src/type/block/header.ts +11 -0
  437. package/src/type/block/image.ts +8 -0
  438. package/src/type/block/link.ts +12 -0
  439. package/src/type/block/list.ts +24 -0
  440. package/src/type/block/multi-column.ts +10 -0
  441. package/src/type/block/note.ts +9 -0
  442. package/src/type/block/todo.ts +10 -0
  443. package/src/type/block/whitespace.ts +9 -0
  444. package/src/type/block-metadata.ts +14 -0
  445. package/src/type/block.ts +18 -0
  446. package/src/type/day.ts +5 -0
  447. package/src/type/field-definition.ts +8 -0
  448. package/src/type/field-value.ts +5 -0
  449. package/src/type/file.ts +6 -0
  450. package/src/type/month.ts +5 -0
  451. package/src/type/page.ts +8 -0
  452. package/src/type/price.ts +11 -0
  453. package/src/type/resource.ts +5 -0
  454. package/src/type/runtime-config.ts +13 -0
  455. package/src/type/server-settings.ts +17 -0
  456. package/src/type/toast.ts +8 -0
  457. package/src/type/week.ts +5 -0
  458. package/src/type/year.ts +5 -0
  459. package/test/unit/index.ts +11 -0
  460. package/test/unit/server/operation/promote-block.ts +84 -0
@@ -0,0 +1,14 @@
1
+ enum ConnectionStatus {
2
+ NOT_CONNECTED = 'not_connected',
3
+ SEARCHING = 'searching',
4
+ CONNECTING = 'connecting',
5
+ CONNECTED = 'connected',
6
+ NOT_AUTHENTICATED = 'not_authenticated',
7
+ AUTHENTICATING = 'authenticating',
8
+ AUTHENTICATED = 'authenticated',
9
+ DISCONNECTING = 'disconnecting',
10
+ DISCONNECTED = 'disconnected',
11
+ FAILED_TO_CONNECT = 'failed_to_connect'
12
+ }
13
+
14
+ export default ConnectionStatus;
@@ -0,0 +1,75 @@
1
+ // Wondering why this is here instead of in lib/http?
2
+ // That module has some dependencies that rely on these status codes.
3
+ // This way, those dependencies can import lib/network instead.
4
+
5
+ enum HttpStatusCode {
6
+ SUCCESS = 200,
7
+ CREATED = 201,
8
+ ACCEPTED = 202,
9
+ NON_AUTHORITATIVE_INFORMATION = 203,
10
+ NO_CONTENT = 204,
11
+ RESET_CONTENT = 205,
12
+ PARTIAL_CONTENT = 206,
13
+ MULTI_STATUS = 207,
14
+ ALREADY_REPORTED = 208,
15
+
16
+ IM_USED = 226,
17
+
18
+ MULTIPLE_CHOICES = 300,
19
+ MOVED_PERMANENTLY = 301,
20
+ REDIRECT = 302,
21
+ SEE_OTHER = 303,
22
+ NOT_MODIFIED = 304,
23
+ USE_PROXY = 305,
24
+ SWITCH_PROXY = 306,
25
+ TEMPORARY_REDIRECT = 307,
26
+ PERMANENT_REDIRECT = 308,
27
+
28
+ BAD_REQUEST = 400,
29
+ UNAUTHORIZED = 401,
30
+ PAYMENT_REQUIRED = 402,
31
+ FORBIDDEN = 403,
32
+ FILE_NOT_FOUND = 404,
33
+ METHOD_NOT_ALLOWED = 405,
34
+ NOT_ACCEPTABLE = 406,
35
+ PROXY_AUTHENTICATION_REQUIRED = 407,
36
+ REQUEST_TIMEOUT = 408,
37
+ CONFLICT = 409,
38
+ GONE = 410,
39
+ LENGTH_REQUIRED = 411,
40
+ PRECONDITION_FAILED = 412,
41
+ PAYLOAD_TOO_LARGE = 413,
42
+ URI_TOO_LONG = 414,
43
+ UNSUPPORTED_MEDIA_TYPE = 415,
44
+ RANGE_NOT_SATISFIABLE = 416,
45
+ EXPECTATION_FAILED = 417,
46
+
47
+ MISDIRECTED_REQUEST = 421,
48
+ UNPROCESSABLE_ENTITY = 422,
49
+ LOCKED = 423,
50
+ FAILED_DEPENDENCY = 424,
51
+
52
+ UPGRADE_REQUIRED = 426,
53
+
54
+ PRECONDITION_REQUIRED = 428,
55
+ TOO_MANY_REQUESTS = 429,
56
+
57
+ HEADER_FIELDS_TOO_LARGE = 431,
58
+
59
+ LEGALLY_UNAVAILABLE = 451,
60
+
61
+ SERVER_ERROR = 500,
62
+ NOT_IMPLEMENTED = 501,
63
+ BAD_GATEWAY = 502,
64
+ SERVICE_UNAVAILABLE = 503,
65
+ GATEWAY_TIMEOUT = 504,
66
+ HTTP_VERSION_NOT_SUPPORTED = 505,
67
+ VARIANT_ALSO_NEGOTIATES = 506,
68
+ INSUFFICIENT_STORAGE = 507,
69
+ LOOP_DETECTED = 508,
70
+
71
+ NOT_EXTENDED = 510,
72
+ NETWORK_AUTHENTICATION_REQUIRED = 511
73
+ }
74
+
75
+ export default HttpStatusCode;
@@ -0,0 +1,10 @@
1
+ enum NetworkProtocol {
2
+ SSH = 'ssh',
3
+ TCP = 'tcp',
4
+ HTTP = 'http',
5
+ HTTPS = 'https',
6
+ SECURE_WEBSOCKET = 'wss',
7
+ WEBSOCKET = 'ws'
8
+ }
9
+
10
+ export default NetworkProtocol;
@@ -0,0 +1,63 @@
1
+ interface Listener {
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ (...args: any[]): void;
4
+ }
5
+
6
+ interface ListenerMap {
7
+ [event: string]: Listener[];
8
+ }
9
+
10
+ abstract class EventEmitter {
11
+ private listener_map: ListenerMap;
12
+
13
+ public constructor() {
14
+ this.listener_map = {};
15
+ }
16
+
17
+ public on(event: string, listener: Listener): void {
18
+ const listeners = this.getListenersForEvent(event);
19
+
20
+ listeners.push(listener);
21
+ }
22
+
23
+ public removeListener(event: string, listener: Listener): void {
24
+ const listeners = this.getListenersForEvent(event);
25
+ const index = listeners.indexOf(listener);
26
+
27
+ if (index === -1) {
28
+ throw new Error(
29
+ `Could not find listener in list of listeners for event: ${event}`
30
+ );
31
+ }
32
+
33
+ listeners.splice(index, 1);
34
+ }
35
+
36
+ public removeAllListeners(event: string): void {
37
+ delete this.listener_map[event];
38
+ }
39
+
40
+ protected emit(event: string, value?: unknown): void {
41
+ const listeners = this.getListenersForEvent(event);
42
+
43
+ listeners.forEach((listener) => {
44
+ listener(value);
45
+ });
46
+ }
47
+
48
+ private getListenersForEvent(event: string): Listener[] {
49
+ const listener_map = this.getListenerMap();
50
+
51
+ if (listener_map[event] === undefined) {
52
+ listener_map[event] = [];
53
+ }
54
+
55
+ return listener_map[event];
56
+ }
57
+
58
+ private getListenerMap(): ListenerMap {
59
+ return this.listener_map;
60
+ }
61
+ }
62
+
63
+ export default EventEmitter;
@@ -0,0 +1,7 @@
1
+ export {default as NetworkProtocol} from 'lib/network/enum/network-protocol';
2
+ export {default as HttpStatusCode} from 'lib/network/enum/http-status-code';
3
+ export {default as ConnectionStatus} from 'lib/network/enum/connection-status';
4
+ export {default as getProtocolFromUrl} from 'lib/network/utility/get-protocol-from-url';
5
+ export {default as EventEmitter} from 'lib/network/event-emitter';
6
+ export {default as Socket} from 'lib/network/interface/socket';
7
+ export {default as SocketOptions} from 'lib/network/type/socket-options';
@@ -0,0 +1,42 @@
1
+ import SocketOptions from 'lib/network/type/socket-options';
2
+
3
+ interface DataHandler {
4
+ (data: Buffer): void;
5
+ }
6
+
7
+ interface ErrorHandler {
8
+ (error: Error): void;
9
+ }
10
+
11
+ interface EndHandler {
12
+ (): void;
13
+ }
14
+
15
+ interface ConnectHandler {
16
+ (): void;
17
+ }
18
+
19
+ interface Socket {
20
+ // eslint-disable-next-line @typescript-eslint/naming-convention
21
+ remoteAddress?: string;
22
+ // eslint-disable-next-line @typescript-eslint/naming-convention
23
+ readyState?: 'closed' | 'opening' | 'open' | 'readOnly' | 'writeOnly';
24
+ connecting: boolean;
25
+ pending?: boolean;
26
+
27
+ on(event: 'data', handler: DataHandler): void;
28
+ on(event: 'error', handler: ErrorHandler): void;
29
+ on(event: 'end', handler: EndHandler): void;
30
+ on(event: 'connect', handler: ConnectHandler): void;
31
+
32
+ removeListener(event: 'data', handler: DataHandler): void;
33
+ removeListener(event: 'error', handler: ErrorHandler): void;
34
+ removeListener(event: 'end', handler: EndHandler): void;
35
+
36
+ write(message: string): void;
37
+ end(): void;
38
+ destroy(): void;
39
+ connect(options: SocketOptions): void;
40
+ }
41
+
42
+ export default Socket;
@@ -0,0 +1,6 @@
1
+ interface SocketOptions {
2
+ readonly port: number;
3
+ readonly host: string;
4
+ }
5
+
6
+ export default SocketOptions;
@@ -0,0 +1,15 @@
1
+ import NetworkProtocol from 'lib/network/enum/network-protocol';
2
+
3
+ function getProtocolFromUrl(url: string): NetworkProtocol {
4
+ const match = url.match(/^([^:]+):/);
5
+
6
+ if (match === null) {
7
+ throw new Error(`No protocol found on URL: ${url}`);
8
+ }
9
+
10
+ const protocol = match[1];
11
+
12
+ return protocol as NetworkProtocol;
13
+ }
14
+
15
+ export default getProtocolFromUrl;
@@ -0,0 +1,6 @@
1
+ import Operation from 'lib/operation/operation';
2
+
3
+ export default Operation;
4
+
5
+ export {default as AutoLoggingOperation} from 'lib/operation/operation/auto-logging';
6
+ export {default as SilentOperation} from 'lib/operation/operation/silent';
@@ -0,0 +1,94 @@
1
+ import {VerbInflector, getWordsFromIdentifier} from 'lib/grammar';
2
+
3
+ import Operation from 'lib/operation/operation';
4
+
5
+ abstract class AutoLoggingOperation<T> extends Operation<T> {
6
+ protected logRunning(): void {
7
+ const prefix = this.getLogPrefix();
8
+ const verb = this.getRunningVerb();
9
+ const suffix = this.getLogSuffix();
10
+ const logger = this.getLogger();
11
+
12
+ logger.info(`${prefix} ${verb} ${suffix}...`);
13
+ }
14
+
15
+ protected logSuccess(result: T): void {
16
+ const prefix = this.getLogPrefix();
17
+ const verb = this.getSuccessVerb();
18
+ const suffix = this.getLogSuffix();
19
+ const logger = this.getLogger();
20
+
21
+ if (result === undefined) {
22
+ logger.success(`${prefix} ${verb} ${suffix}`);
23
+ return;
24
+ }
25
+
26
+ const formatted_result = this.formatResult(result);
27
+
28
+ logger.success(`${prefix} ${verb} ${suffix}: ${formatted_result}`);
29
+ }
30
+
31
+ protected logFailure(error: Error): void {
32
+ const prefix = this.getLogPrefix();
33
+ const verb = this.getFailureVerb();
34
+ const suffix = this.getLogSuffix();
35
+ const logger = this.getLogger();
36
+
37
+ logger.error(`${prefix} ${verb} ${suffix}: ${error.message}`);
38
+ }
39
+
40
+ protected formatResult(result: T): string {
41
+ if (typeof result === 'string') {
42
+ return result;
43
+ }
44
+
45
+ return JSON.stringify(result);
46
+ }
47
+
48
+ protected getLogPrefix(): string {
49
+ return '';
50
+ }
51
+
52
+ private getRunningVerb(): string {
53
+ const verb = this.getVerb();
54
+ const inflector = new VerbInflector(verb);
55
+
56
+ return inflector.toPresentParticiple();
57
+ }
58
+
59
+ private getSuccessVerb(): string {
60
+ const verb = this.getVerb();
61
+ const inflector = new VerbInflector(verb);
62
+
63
+ return inflector.toPastTense();
64
+ }
65
+
66
+ private getFailureVerb(): string {
67
+ const verb = this.getVerb();
68
+ const lowercase_verb = verb.toLowerCase();
69
+
70
+ return `Unable to ${lowercase_verb}`;
71
+ }
72
+
73
+ private getVerb(): string {
74
+ const words = getWordsFromIdentifier(this.constructor.name);
75
+ const verb = words[0];
76
+
77
+ const first_letter = verb[0];
78
+ const remainder = verb.slice(1);
79
+ const uppercase_letter = first_letter.toUpperCase();
80
+
81
+ return `${uppercase_letter}${remainder}`;
82
+ }
83
+
84
+ private getLogSuffix(): string {
85
+ const identifier = this.constructor.name.replace('Operation', '');
86
+ const words = getWordsFromIdentifier(identifier);
87
+
88
+ words.shift();
89
+
90
+ return words.join(' ').toLowerCase();
91
+ }
92
+ }
93
+
94
+ export default AutoLoggingOperation;
@@ -0,0 +1,17 @@
1
+ import Operation from 'lib/operation/operation';
2
+
3
+ abstract class SilentOperation<T> extends Operation<T> {
4
+ protected logRunning(): void {
5
+ // Noop.
6
+ }
7
+
8
+ protected logSuccess(_result: T): void {
9
+ // Noop.
10
+ }
11
+
12
+ protected logFailure(_error: Error): void {
13
+ // Noop.
14
+ }
15
+ }
16
+
17
+ export default SilentOperation;
@@ -0,0 +1,80 @@
1
+ import Logger from 'lib/logger';
2
+ import ExecutionContext, {Session} from 'lib/execution-context';
3
+
4
+ abstract class BaseOperation<T> {
5
+ protected logger: Logger | undefined;
6
+ private execution_context: ExecutionContext | undefined;
7
+
8
+ public constructor(execution_context?: ExecutionContext) {
9
+ this.execution_context = execution_context;
10
+ }
11
+
12
+ public async perform(): Promise<T> {
13
+ this.logRunning();
14
+
15
+ try {
16
+ const result = await this.performInternal();
17
+
18
+ this.logSuccess(result);
19
+
20
+ return result;
21
+ } catch (error) {
22
+ this.logFailure(error as Error);
23
+
24
+ throw error;
25
+ }
26
+ }
27
+
28
+ public hasExecutionContext(): boolean {
29
+ return this.execution_context !== undefined;
30
+ }
31
+
32
+ protected getSession(): Session {
33
+ const execution_context = this.getExecutionContext();
34
+ const session = execution_context.getSession();
35
+
36
+ if (session === undefined) {
37
+ throw new Error('Tried to read session, but it was not set');
38
+ }
39
+
40
+ return session;
41
+ }
42
+
43
+ protected hasSession(): boolean {
44
+ if (!this.hasExecutionContext()) {
45
+ return false;
46
+ }
47
+
48
+ const execution_context = this.getExecutionContext();
49
+ const session = execution_context.getSession();
50
+
51
+ return session !== undefined;
52
+ }
53
+
54
+ protected getExecutionContext(): ExecutionContext {
55
+ if (this.execution_context === undefined) {
56
+ throw new Error('Tried to read request context, but it was not set');
57
+ }
58
+
59
+ return this.execution_context;
60
+ }
61
+
62
+ protected getLogger(): Logger {
63
+ if (this.hasExecutionContext()) {
64
+ return this.getExecutionContext().getLogger();
65
+ }
66
+
67
+ if (this.logger === undefined) {
68
+ this.logger = new Logger();
69
+ }
70
+
71
+ return this.logger;
72
+ }
73
+
74
+ protected abstract performInternal(): Promise<T>;
75
+ protected abstract logRunning(): void;
76
+ protected abstract logSuccess(result: T): void;
77
+ protected abstract logFailure(error: Error): void;
78
+ }
79
+
80
+ export default BaseOperation;
@@ -0,0 +1 @@
1
+ throw new Error('Not implemented');
@@ -0,0 +1,138 @@
1
+ enum PosixErrorCode {
2
+ EPERM = 'EPERM', // Operation not permitted
3
+ ENOENT = 'ENOENT', // No such file or directory
4
+ ESRCH = 'ESRCH', // No such process
5
+ EINTR = 'EINTR', // Interrupted system call
6
+ EIO = 'EIO', // I/O error
7
+ ENXIO = 'ENXIO', // No such device or address
8
+ E2BIG = 'E2BIG', // Arg list too long
9
+ ENOEXEC = 'ENOEXEC', // Exec format error
10
+ EBADF = 'EBADF', // Bad file number
11
+ ECHILD = 'ECHILD', // No child processes
12
+ EAGAIN = 'EAGAIN', // Try again
13
+ ENOMEM = 'ENOMEM', // Out of memory
14
+ EACCES = 'EACCES', // Permission denied
15
+ EFAULT = 'EFAULT', // Bad address
16
+ ENOTBLK = 'ENOTBLK', // Block device required
17
+ EBUSY = 'EBUSY', // Device or resource busy
18
+ EEXIST = 'EEXIST', // File exists
19
+ EXDEV = 'EXDEV', // Cross-device link
20
+ ENODEV = 'ENODEV', // No such device
21
+ ENOTDIR = 'ENOTDIR', // Not a directory
22
+ EISDIR = 'EISDIR', // Is a directory
23
+ EINVAL = 'EINVAL', // Invalid argument
24
+ ENFILE = 'ENFILE', // File table overflow
25
+ EMFILE = 'EMFILE', // Too many open files
26
+ ENOTTY = 'ENOTTY', // Inappropriate I/O control operation
27
+ ETXTBSY = 'ETXTBSY', // Text file busy
28
+ EFBIG = 'EFBIG', // File too large
29
+ ENOSPC = 'ENOSPC', // No space left on device
30
+ ESPIPE = 'ESPIPE', // Illegal seek
31
+ EROFS = 'EROFS', // Read-only file system
32
+ EMLINK = 'EMLINK', // Too many links
33
+ EPIPE = 'EPIPE', // Broken pipe
34
+ EDOM = 'EDOM', // Math argument out of domain of function
35
+ ERANGE = 'ERANGE', // Math result not representable
36
+ EDEADLK = 'EDEADLK', // Deadlock occurred
37
+ ENAMETOOLONG = 'ENAMETOOLONG', // File / directory name too long
38
+ ENOLCK = 'ENOLCK', // No record locks available
39
+ ENOSYS = 'ENOSYS', // System function not implemented
40
+ ENOTEMPTY = 'ENOTEMPTY', // The specified directory is not empty
41
+ ELOOP = 'ELOOP', // Too many symbolic links encountered
42
+ EWOULDBLOCK = 'EWOULDBLOCK', // Operation would block
43
+ ENOMSG = 'ENOMSG', // No message of desired type found
44
+ EIDRM = 'EIDRM', // Identifier was removed
45
+ ECHRNG = 'ECHRNG', // Channel number out of range
46
+ EL2NSYNC = 'EL2NSYNC', // Level 2 not synchronized
47
+ EL3HLT = 'EL3HLT', // Level 3 halted
48
+ EL3RST = 'EL3RST', // Level 3 reset
49
+ ELNRNG = 'ELNRNG', // Link number out of range
50
+ EUNATCH = 'EUNATCH', // Protocol driver not attached
51
+ ENOCSI = 'ENOCSI', // No CSI structure available
52
+ EL2HLT = 'EL2HLT', // Level 2 halted
53
+ EBADE = 'EBADE', // Invalid exchange
54
+ EBADR = 'EBADR', // Invalid request descriptor
55
+ EXFULL = 'EXFULL', // Exchange full
56
+ ENOANO = 'ENOANO', // No anode
57
+ EBADRQC = 'EBADRQC', // Invalid request code
58
+ EBADSLT = 'EBADSLT', // Invalid slot
59
+ EDEADLOCK = 'EDEADLOCK', // It's a deadlock, amigo
60
+ EBFONT = 'EBFONT', // Bad font file format
61
+ ENOSTR = 'ENOSTR', // Device is not a stream
62
+ ENODATA = 'ENODATA', // No data available
63
+ ETIME = 'ETIME', // Timer expired
64
+ ENOSR = 'ENOSR', // Out of stream resources
65
+ ENONET = 'ENONET', // Machine is not on the network
66
+ ENOPKG = 'ENOPKG', // Package is not installed
67
+ EREMOTE = 'EREMOTE', // Object is remote
68
+ ENOLINK = 'ENOLINK', // Link has been severed
69
+ EADV = 'EADV', // Advertise error
70
+ ESRMNT = 'ESRMNT', // Srmount error
71
+ ECOMM = 'ECOMM', // Communication error on send
72
+ EPROTO = 'EPROTO', // Protocol error
73
+ EMULTIHOP = 'EMULTIHOP', // Multihop attempted
74
+ EDOTDOT = 'EDOTDOT', // RFS-specific error
75
+ EBADMSG = 'EBADMSG', // Not a data message
76
+ EOVERFLOW = 'EOVERFLOW', // Valu etoo large for defined data type
77
+ ENOTUNIQ = 'ENOTUNIQ', // Name not unique on network
78
+ EBADFD = 'EBADFD', // File descriptor in bad state
79
+ EREMCHG = 'EREMCHG', // Remote address changed
80
+ ELIBACC = 'ELIBACC', // Cannot access a needed shared library
81
+ ELIBBAD = 'ELIBBAD', // Accessing a corrupted shared library
82
+ ELIBSCN = 'ELIBSCN', // .lib section in a.out corrupted
83
+ ELIBMAX = 'ELIBMAX', // Attempting to link in too many shared libraries
84
+ ELIBEXEC = 'ELIBEXEC', // Cannot exec a shared library directly
85
+ EILSEQ = 'EILSEQ', // Illegal byte sequence
86
+ ERESTART = 'ERESTART', // Interrupted system call should be restarted
87
+ ESTRPIPE = 'ESTRPIPE', // Streams pipe error
88
+ EUSERS = 'EUSERS', // Too many users
89
+ ENOTSOCK = 'ENOTSOCK', // Socket operation on non-socket
90
+ EDESTADDRREQ = 'EDESTADDRREQ', // Destination address required
91
+ EMSGSIZE = 'EMSGSIZE', // Message too long
92
+ EPROTOTYPE = 'EPROTOTYPE', // Protocol wrong type for socket
93
+ ENOPROTOOPT = 'ENOPROTOOPT', // Protocol not available
94
+ EPROTONOSUPPORT = 'EPROTONOSUPPORT', // Protocol not supported
95
+ ESOCKTNOSUPPORT = 'ESOCKTNOSUPPORT', // Socket type not supported
96
+ EOPNOTSUPP = 'EOPNOTSUPP', // Operation not supported on transport endpoint
97
+ EPFNOSUPPORT = 'EPFNOSUPPORT', // Protocol family not supported
98
+ EAFNOSUPPORT = 'EAFNOSUPPORT', // Address family not supported by protocol
99
+ EADDRINUSE = 'EADDRINUSE', // Address (or port) already in use
100
+ EADDRNOTAVAIL = 'EADDRNOTAVAIL', // Unable to assign the specified network address
101
+ ENETDOWN = 'ENETDOWN', // Network is down
102
+ ENETUNREACH = 'ENETUNREACH', // Network is unreachable
103
+ ENETRESET = 'ENETRESET', // Network dropped connection because of reset
104
+ ECONNABORTED = 'ECONNABORTED', // Software caused connection abort
105
+ ECONNRESET = 'ECONNRESET', // Connection reset by peer
106
+ ENOBUFS = 'ENOBUFS', // No buffer space available
107
+ EISCONN = 'EISCONN', // Transport endpoint is already connected
108
+ ENOTCONN = 'ENOTCONN', // Transport endpoint is not connected
109
+ ESHUTDOWN = 'ESHUTDOWN', // Cannot send after transport endpoint shutdown
110
+ ETOOMANYREFS = 'ETOOMANYREFS', // Too many references; cannot splice
111
+ ETIMEDOUT = 'ETIMEDOUT', // Connection timed out
112
+ ECONNREFUSED = 'ECONNREFUSED', // Connection refused
113
+ EHOSTDOWN = 'EHOSTDOWN', // Host is down
114
+ EHOSTUNREACH = 'EHOSTUNREACH', // No route to host
115
+ EALREADY = 'EALREADY', // Operation already in progress
116
+ EINPROGRESS = 'EINPROGRESS', // Operation now in progress
117
+ ESTALE = 'ESTALE', // Stale file handle
118
+ EUCLEAN = 'EUCLEAN', // Structure needs cleaning
119
+ ENOTNAM = 'ENOTNAM', // Not a XENIX named type file
120
+ ENAVAIL = 'ENAVAIL', // No XENIX semaphores available
121
+ EISNAM = 'EISNAM', // Is a named type file
122
+ EREMOTEIO = 'EREMOTEIO', // Remote I/O error
123
+ EDQUOT = 'EDQUOT', // Quota exceeded
124
+ ENOMEDIUM = 'ENOMEDIUM', // No medium found
125
+ EMEDIUMTYPE = 'EMEDIUMTYPE', // Wrong medium type
126
+ ECANCELED = 'ECANCELED', // Operation canceled
127
+ ENOKEY = 'ENOKEY', // Required key not available
128
+ EKEYEXPIRED = 'EKEYEXPIRED', // Key has expired
129
+ EKEYREVOKED = 'EKEYREVOKED', // Key has been revoked
130
+ EKEYREJECTED = 'EKEYREJECTED', // Key was rejected by service
131
+ EOWNERDEAD = 'EOWNERDEAD', // Owner died
132
+ ENOTRECOVERABLE = 'ENOTRECOVERABLE', // State not recoverable
133
+ ERFKILL = 'ERFKILL', // Operation not possible due to RF-kill
134
+ EHWPOISON = 'EHWPOISON', // Memory page has hardware error
135
+ ENOTSUP = 'ENOTSUP' // Not supported
136
+ }
137
+
138
+ export default PosixErrorCode;
@@ -0,0 +1,68 @@
1
+ // From `kill -l`.
2
+
3
+ enum ProcessSignal {
4
+ // Abort signal from abort command:
5
+ SIGABRT = 'SIGABRT',
6
+ // Timer signal from alarm command:
7
+ SIGALRM = 'SIGALRM',
8
+ // Bus error (bad memory access):
9
+ SIGBUS = 'SIGBUS',
10
+ // Child stopped or terminated:
11
+ SIGCHLD = 'SIGCHLD',
12
+ // Continue if stopped:
13
+ SIGCONT = 'SIGCONT',
14
+ // Floating-point exception:
15
+ SIGFPE = 'SIGFPE',
16
+ // Hangup detected on controlling terminal or death of controlling process:
17
+ SIGHUP = 'SIGHUP',
18
+ // Illegal Instruction:
19
+ SIGILL = 'SIGILL',
20
+ // A synonym for SIGPWR:
21
+ SIGINFO = 'SIGINFO',
22
+ // Interrupt from keyboard:
23
+ SIGINT = 'SIGINT',
24
+ // I/O now possible:
25
+ SIGIO = 'SIGIO',
26
+ // IOT trap. A synonym for SIGABRT:
27
+ SIGIOT = 'SIGIOT',
28
+ // Kill signal:
29
+ SIGKILL = 'SIGKILL',
30
+ // Broken pipe; write to pipe with no readers:
31
+ SIGPIPE = 'SIGPIPE',
32
+ // Pollable event:
33
+ SIGPOLL = 'SIGPOLL',
34
+ // Profiling timer expired:
35
+ SIGPROF = 'SIGPROF',
36
+ // Power failure:
37
+ SIGPWR = 'SIGPWR',
38
+ // Quit from keyboard:
39
+ SIGQUIT = 'SIGQUIT',
40
+ // Invalid memory reference:
41
+ SIGSEGV = 'SIGSEGV',
42
+ // Stop process:
43
+ SIGSTOP = 'SIGSTOP',
44
+ // Stop typed at terminal:
45
+ SIGTSTP = 'SIGTSTP',
46
+ // Bad spell:
47
+ SIGSYS = 'SIGSYS',
48
+ // Termination signal:
49
+ SIGTERM = 'SIGTERM',
50
+ // Trace/breakpoint trap:
51
+ SIGTRAP = 'SIGTRAP',
52
+ // Terminal input for background process:
53
+ SIGTTIN = 'SIGTTIN',
54
+ // Terminal output for background process:
55
+ SIGTTOU = 'SIGTTOU',
56
+ // Synonymous with SIGSYS:
57
+ SIGUNUSED = 'SIGUNUSED',
58
+ // Urgent condition on socket:
59
+ SIGURG = 'SIGURG',
60
+ // Virtual alarm clock:
61
+ SIGVTALRM = 'SIGVTALRM',
62
+ // CPU time limit exceeded:
63
+ SIGXCPU = 'SIGXCPU',
64
+ // File size limit exceeded:
65
+ SIGXFSZ = 'SIGXFSZ'
66
+ }
67
+
68
+ export default ProcessSignal;
@@ -0,0 +1,6 @@
1
+ import {GenericError} from 'lib/errors';
2
+
3
+ // Ah, instanceof checks... sweetest of the transition metals
4
+ class ProcessError extends GenericError {}
5
+
6
+ export default ProcessError;