@heavybit/shared-lib 1.3.2 → 2.7.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 (366) hide show
  1. package/README.md +261 -0
  2. package/dist/cjs/access/index.js +9 -1
  3. package/dist/cjs/access/index.js.map +1 -1
  4. package/dist/cjs/approvals/index.js +137 -0
  5. package/dist/cjs/approvals/index.js.map +1 -0
  6. package/dist/cjs/audit/index.js +74 -0
  7. package/dist/cjs/audit/index.js.map +1 -0
  8. package/dist/cjs/cache/index.js +90 -16
  9. package/dist/cjs/cache/index.js.map +1 -1
  10. package/dist/cjs/cache/keyspace.js +101 -0
  11. package/dist/cjs/cache/keyspace.js.map +1 -0
  12. package/dist/cjs/common/circuit-breaker.js +74 -0
  13. package/dist/cjs/common/circuit-breaker.js.map +1 -0
  14. package/dist/cjs/common/errors.js +44 -5
  15. package/dist/cjs/common/errors.js.map +1 -1
  16. package/dist/cjs/common/index.js +4 -0
  17. package/dist/cjs/common/index.js.map +1 -1
  18. package/dist/cjs/common/internal-client.js +177 -0
  19. package/dist/cjs/common/internal-client.js.map +1 -0
  20. package/dist/cjs/common/internal-constants.js +12 -0
  21. package/dist/cjs/common/internal-constants.js.map +1 -0
  22. package/dist/cjs/common/internal-service-auth.js +160 -0
  23. package/dist/cjs/common/internal-service-auth.js.map +1 -0
  24. package/dist/cjs/common/money.js +215 -0
  25. package/dist/cjs/common/money.js.map +1 -0
  26. package/dist/cjs/common/phone.js +63 -11
  27. package/dist/cjs/common/phone.js.map +1 -1
  28. package/dist/cjs/common/response.js +78 -5
  29. package/dist/cjs/common/response.js.map +1 -1
  30. package/dist/cjs/common/time.js +28 -2
  31. package/dist/cjs/common/time.js.map +1 -1
  32. package/dist/cjs/config/index.js +140 -20
  33. package/dist/cjs/config/index.js.map +1 -1
  34. package/dist/cjs/context/index.js +49 -0
  35. package/dist/cjs/context/index.js.map +1 -0
  36. package/dist/cjs/contracts/index.js +0 -2
  37. package/dist/cjs/contracts/index.js.map +1 -1
  38. package/dist/cjs/contracts/notification-dispatch.js +87 -63
  39. package/dist/cjs/contracts/notification-dispatch.js.map +1 -1
  40. package/dist/cjs/database/db.js +37 -0
  41. package/dist/cjs/database/db.js.map +1 -0
  42. package/dist/cjs/database/index.js +22 -51
  43. package/dist/cjs/database/index.js.map +1 -1
  44. package/dist/cjs/database/pagination.js +88 -0
  45. package/dist/cjs/database/pagination.js.map +1 -0
  46. package/dist/cjs/database/pool.js +60 -0
  47. package/dist/cjs/database/pool.js.map +1 -0
  48. package/dist/cjs/database/scoped-repository.js +132 -0
  49. package/dist/cjs/database/scoped-repository.js.map +1 -0
  50. package/dist/cjs/database/scopes.js +166 -0
  51. package/dist/cjs/database/scopes.js.map +1 -0
  52. package/dist/cjs/database/table-names.js +14 -0
  53. package/dist/cjs/database/table-names.js.map +1 -0
  54. package/dist/cjs/database/tables.js +71 -0
  55. package/dist/cjs/database/tables.js.map +1 -0
  56. package/dist/cjs/express/auth.js +88 -41
  57. package/dist/cjs/express/auth.js.map +1 -1
  58. package/dist/cjs/express/index.js +3 -0
  59. package/dist/cjs/express/index.js.map +1 -1
  60. package/dist/cjs/express/internal-caller.js +52 -0
  61. package/dist/cjs/express/internal-caller.js.map +1 -0
  62. package/dist/cjs/express/middleware.js +154 -34
  63. package/dist/cjs/express/middleware.js.map +1 -1
  64. package/dist/cjs/express/respond.js +47 -0
  65. package/dist/cjs/express/respond.js.map +1 -0
  66. package/dist/cjs/express/step-up.js +41 -0
  67. package/dist/cjs/express/step-up.js.map +1 -0
  68. package/dist/cjs/http/index.js +3 -71
  69. package/dist/cjs/http/index.js.map +1 -1
  70. package/dist/cjs/identity/index.js +269 -67
  71. package/dist/cjs/identity/index.js.map +1 -1
  72. package/dist/cjs/identity/step-up.js +52 -0
  73. package/dist/cjs/identity/step-up.js.map +1 -0
  74. package/dist/cjs/index.js +7 -0
  75. package/dist/cjs/index.js.map +1 -1
  76. package/dist/cjs/knex/columns.js +36 -0
  77. package/dist/cjs/knex/columns.js.map +1 -0
  78. package/dist/cjs/knex/index.js +26 -43
  79. package/dist/cjs/knex/index.js.map +1 -1
  80. package/dist/cjs/knex/migration-helpers.js +57 -0
  81. package/dist/cjs/knex/migration-helpers.js.map +1 -0
  82. package/dist/cjs/logging/index.js +76 -40
  83. package/dist/cjs/logging/index.js.map +1 -1
  84. package/dist/cjs/logging/redact.js +112 -0
  85. package/dist/cjs/logging/redact.js.map +1 -0
  86. package/dist/cjs/messaging/base-consumer.js +36 -0
  87. package/dist/cjs/messaging/base-consumer.js.map +1 -0
  88. package/dist/cjs/messaging/consumer.js +142 -73
  89. package/dist/cjs/messaging/consumer.js.map +1 -1
  90. package/dist/cjs/messaging/envelope.js +53 -10
  91. package/dist/cjs/messaging/envelope.js.map +1 -1
  92. package/dist/cjs/messaging/idempotency.js +95 -8
  93. package/dist/cjs/messaging/idempotency.js.map +1 -1
  94. package/dist/cjs/messaging/index.js +3 -1
  95. package/dist/cjs/messaging/index.js.map +1 -1
  96. package/dist/cjs/messaging/outbox.js +97 -55
  97. package/dist/cjs/messaging/outbox.js.map +1 -1
  98. package/dist/cjs/messaging/publisher.js +86 -38
  99. package/dist/cjs/messaging/publisher.js.map +1 -1
  100. package/dist/cjs/messaging/staff-notifier.js +36 -44
  101. package/dist/cjs/messaging/staff-notifier.js.map +1 -1
  102. package/dist/cjs/messaging/staff-recipients.js +57 -0
  103. package/dist/cjs/messaging/staff-recipients.js.map +1 -0
  104. package/dist/cjs/messaging/topology.js +41 -5
  105. package/dist/cjs/messaging/topology.js.map +1 -1
  106. package/dist/cjs/rate-limit/index.js +57 -6
  107. package/dist/cjs/rate-limit/index.js.map +1 -1
  108. package/dist/cjs/rate-limit/keys.js +47 -0
  109. package/dist/cjs/rate-limit/keys.js.map +1 -0
  110. package/dist/cjs/socket/index.js +127 -16
  111. package/dist/cjs/socket/index.js.map +1 -1
  112. package/dist/cjs/socket/ticket.js +124 -0
  113. package/dist/cjs/socket/ticket.js.map +1 -0
  114. package/dist/cjs/testing/index.js +23 -14
  115. package/dist/cjs/testing/index.js.map +1 -1
  116. package/dist/cjs/validation/index.js +27 -3
  117. package/dist/cjs/validation/index.js.map +1 -1
  118. package/dist/esm/access/index.js +9 -1
  119. package/dist/esm/access/index.js.map +1 -1
  120. package/dist/esm/approvals/index.js +127 -0
  121. package/dist/esm/approvals/index.js.map +1 -0
  122. package/dist/esm/audit/index.js +70 -0
  123. package/dist/esm/audit/index.js.map +1 -0
  124. package/dist/esm/cache/index.js +70 -13
  125. package/dist/esm/cache/index.js.map +1 -1
  126. package/dist/esm/cache/keyspace.js +95 -0
  127. package/dist/esm/cache/keyspace.js.map +1 -0
  128. package/dist/esm/common/circuit-breaker.js +70 -0
  129. package/dist/esm/common/circuit-breaker.js.map +1 -0
  130. package/dist/esm/common/errors.js +42 -4
  131. package/dist/esm/common/errors.js.map +1 -1
  132. package/dist/esm/common/index.js +4 -0
  133. package/dist/esm/common/index.js.map +1 -1
  134. package/dist/esm/common/internal-client.js +173 -0
  135. package/dist/esm/common/internal-client.js.map +1 -0
  136. package/dist/esm/common/internal-constants.js +9 -0
  137. package/dist/esm/common/internal-constants.js.map +1 -0
  138. package/dist/esm/common/internal-service-auth.js +150 -0
  139. package/dist/esm/common/internal-service-auth.js.map +1 -0
  140. package/dist/esm/common/money.js +207 -0
  141. package/dist/esm/common/money.js.map +1 -0
  142. package/dist/esm/common/phone.js +63 -11
  143. package/dist/esm/common/phone.js.map +1 -1
  144. package/dist/esm/common/response.js +75 -5
  145. package/dist/esm/common/response.js.map +1 -1
  146. package/dist/esm/common/time.js +27 -2
  147. package/dist/esm/common/time.js.map +1 -1
  148. package/dist/esm/config/index.js +136 -19
  149. package/dist/esm/config/index.js.map +1 -1
  150. package/dist/esm/context/index.js +44 -0
  151. package/dist/esm/context/index.js.map +1 -0
  152. package/dist/esm/contracts/index.js +0 -2
  153. package/dist/esm/contracts/index.js.map +1 -1
  154. package/dist/esm/contracts/notification-dispatch.js +85 -62
  155. package/dist/esm/contracts/notification-dispatch.js.map +1 -1
  156. package/dist/esm/database/db.js +32 -0
  157. package/dist/esm/database/db.js.map +1 -0
  158. package/dist/esm/database/index.js +9 -45
  159. package/dist/esm/database/index.js.map +1 -1
  160. package/dist/esm/database/pagination.js +81 -0
  161. package/dist/esm/database/pagination.js.map +1 -0
  162. package/dist/esm/database/pool.js +51 -0
  163. package/dist/esm/database/pool.js.map +1 -0
  164. package/dist/esm/database/scoped-repository.js +128 -0
  165. package/dist/esm/database/scoped-repository.js.map +1 -0
  166. package/dist/esm/database/scopes.js +157 -0
  167. package/dist/esm/database/scopes.js.map +1 -0
  168. package/dist/esm/database/table-names.js +11 -0
  169. package/dist/esm/database/table-names.js.map +1 -0
  170. package/dist/esm/database/tables.js +61 -0
  171. package/dist/esm/database/tables.js.map +1 -0
  172. package/dist/esm/express/auth.js +87 -40
  173. package/dist/esm/express/auth.js.map +1 -1
  174. package/dist/esm/express/index.js +3 -0
  175. package/dist/esm/express/index.js.map +1 -1
  176. package/dist/esm/express/internal-caller.js +49 -0
  177. package/dist/esm/express/internal-caller.js.map +1 -0
  178. package/dist/esm/express/middleware.js +146 -27
  179. package/dist/esm/express/middleware.js.map +1 -1
  180. package/dist/esm/express/respond.js +42 -0
  181. package/dist/esm/express/respond.js.map +1 -0
  182. package/dist/esm/express/step-up.js +38 -0
  183. package/dist/esm/express/step-up.js.map +1 -0
  184. package/dist/esm/http/index.js +3 -70
  185. package/dist/esm/http/index.js.map +1 -1
  186. package/dist/esm/identity/index.js +246 -64
  187. package/dist/esm/identity/index.js.map +1 -1
  188. package/dist/esm/identity/step-up.js +47 -0
  189. package/dist/esm/identity/step-up.js.map +1 -0
  190. package/dist/esm/index.js +7 -0
  191. package/dist/esm/index.js.map +1 -1
  192. package/dist/esm/knex/columns.js +28 -0
  193. package/dist/esm/knex/columns.js.map +1 -0
  194. package/dist/esm/knex/index.js +8 -34
  195. package/dist/esm/knex/index.js.map +1 -1
  196. package/dist/esm/knex/migration-helpers.js +51 -0
  197. package/dist/esm/knex/migration-helpers.js.map +1 -0
  198. package/dist/esm/logging/index.js +68 -39
  199. package/dist/esm/logging/index.js.map +1 -1
  200. package/dist/esm/logging/redact.js +106 -0
  201. package/dist/esm/logging/redact.js.map +1 -0
  202. package/dist/esm/messaging/base-consumer.js +32 -0
  203. package/dist/esm/messaging/base-consumer.js.map +1 -0
  204. package/dist/esm/messaging/consumer.js +139 -71
  205. package/dist/esm/messaging/consumer.js.map +1 -1
  206. package/dist/esm/messaging/envelope.js +50 -10
  207. package/dist/esm/messaging/envelope.js.map +1 -1
  208. package/dist/esm/messaging/idempotency.js +91 -7
  209. package/dist/esm/messaging/idempotency.js.map +1 -1
  210. package/dist/esm/messaging/index.js +3 -1
  211. package/dist/esm/messaging/index.js.map +1 -1
  212. package/dist/esm/messaging/outbox.js +97 -54
  213. package/dist/esm/messaging/outbox.js.map +1 -1
  214. package/dist/esm/messaging/publisher.js +86 -38
  215. package/dist/esm/messaging/publisher.js.map +1 -1
  216. package/dist/esm/messaging/staff-notifier.js +36 -43
  217. package/dist/esm/messaging/staff-notifier.js.map +1 -1
  218. package/dist/esm/messaging/staff-recipients.js +53 -0
  219. package/dist/esm/messaging/staff-recipients.js.map +1 -0
  220. package/dist/esm/messaging/topology.js +39 -4
  221. package/dist/esm/messaging/topology.js.map +1 -1
  222. package/dist/esm/rate-limit/index.js +41 -6
  223. package/dist/esm/rate-limit/index.js.map +1 -1
  224. package/dist/esm/rate-limit/keys.js +43 -0
  225. package/dist/esm/rate-limit/keys.js.map +1 -0
  226. package/dist/esm/socket/index.js +112 -17
  227. package/dist/esm/socket/index.js.map +1 -1
  228. package/dist/esm/socket/ticket.js +117 -0
  229. package/dist/esm/socket/ticket.js.map +1 -0
  230. package/dist/esm/testing/index.js +24 -15
  231. package/dist/esm/testing/index.js.map +1 -1
  232. package/dist/esm/validation/index.js +27 -2
  233. package/dist/esm/validation/index.js.map +1 -1
  234. package/dist/types/access/index.d.ts +9 -3
  235. package/dist/types/access/index.d.ts.map +1 -1
  236. package/dist/types/alerting/index.d.ts +1 -1
  237. package/dist/types/alerting/index.d.ts.map +1 -1
  238. package/dist/types/approvals/index.d.ts +99 -0
  239. package/dist/types/approvals/index.d.ts.map +1 -0
  240. package/dist/types/audit/index.d.ts +82 -0
  241. package/dist/types/audit/index.d.ts.map +1 -0
  242. package/dist/types/cache/index.d.ts +64 -14
  243. package/dist/types/cache/index.d.ts.map +1 -1
  244. package/dist/types/cache/keyspace.d.ts +84 -0
  245. package/dist/types/cache/keyspace.d.ts.map +1 -0
  246. package/dist/types/common/circuit-breaker.d.ts +51 -0
  247. package/dist/types/common/circuit-breaker.d.ts.map +1 -0
  248. package/dist/types/common/errors.d.ts +48 -7
  249. package/dist/types/common/errors.d.ts.map +1 -1
  250. package/dist/types/common/index.d.ts +4 -0
  251. package/dist/types/common/index.d.ts.map +1 -1
  252. package/dist/types/common/internal-client.d.ts +116 -0
  253. package/dist/types/common/internal-client.d.ts.map +1 -0
  254. package/dist/types/common/internal-constants.d.ts +9 -0
  255. package/dist/types/common/internal-constants.d.ts.map +1 -0
  256. package/dist/types/common/internal-service-auth.d.ts +102 -0
  257. package/dist/types/common/internal-service-auth.d.ts.map +1 -0
  258. package/dist/types/common/money.d.ts +104 -0
  259. package/dist/types/common/money.d.ts.map +1 -0
  260. package/dist/types/common/phone.d.ts +45 -6
  261. package/dist/types/common/phone.d.ts.map +1 -1
  262. package/dist/types/common/response.d.ts +66 -5
  263. package/dist/types/common/response.d.ts.map +1 -1
  264. package/dist/types/common/time.d.ts +20 -2
  265. package/dist/types/common/time.d.ts.map +1 -1
  266. package/dist/types/config/index.d.ts +252 -28
  267. package/dist/types/config/index.d.ts.map +1 -1
  268. package/dist/types/context/index.d.ts +39 -0
  269. package/dist/types/context/index.d.ts.map +1 -0
  270. package/dist/types/contracts/index.d.ts +0 -2
  271. package/dist/types/contracts/index.d.ts.map +1 -1
  272. package/dist/types/contracts/notification-dispatch.d.ts +204 -86
  273. package/dist/types/contracts/notification-dispatch.d.ts.map +1 -1
  274. package/dist/types/database/db.d.ts +46 -0
  275. package/dist/types/database/db.d.ts.map +1 -0
  276. package/dist/types/database/index.d.ts +9 -22
  277. package/dist/types/database/index.d.ts.map +1 -1
  278. package/dist/types/database/pagination.d.ts +68 -0
  279. package/dist/types/database/pagination.d.ts.map +1 -0
  280. package/dist/types/database/pool.d.ts +39 -0
  281. package/dist/types/database/pool.d.ts.map +1 -0
  282. package/dist/types/database/scoped-repository.d.ts +92 -0
  283. package/dist/types/database/scoped-repository.d.ts.map +1 -0
  284. package/dist/types/database/scopes.d.ts +159 -0
  285. package/dist/types/database/scopes.d.ts.map +1 -0
  286. package/dist/types/database/table-names.d.ts +13 -0
  287. package/dist/types/database/table-names.d.ts.map +1 -0
  288. package/dist/types/database/tables.d.ts +748 -0
  289. package/dist/types/database/tables.d.ts.map +1 -0
  290. package/dist/types/express/auth.d.ts +63 -11
  291. package/dist/types/express/auth.d.ts.map +1 -1
  292. package/dist/types/express/index.d.ts +3 -0
  293. package/dist/types/express/index.d.ts.map +1 -1
  294. package/dist/types/express/internal-caller.d.ts +53 -0
  295. package/dist/types/express/internal-caller.d.ts.map +1 -0
  296. package/dist/types/express/middleware.d.ts +86 -7
  297. package/dist/types/express/middleware.d.ts.map +1 -1
  298. package/dist/types/express/respond.d.ts +41 -0
  299. package/dist/types/express/respond.d.ts.map +1 -0
  300. package/dist/types/express/step-up.d.ts +38 -0
  301. package/dist/types/express/step-up.d.ts.map +1 -0
  302. package/dist/types/http/index.d.ts +3 -31
  303. package/dist/types/http/index.d.ts.map +1 -1
  304. package/dist/types/identity/index.d.ts +159 -21
  305. package/dist/types/identity/index.d.ts.map +1 -1
  306. package/dist/types/identity/step-up.d.ts +41 -0
  307. package/dist/types/identity/step-up.d.ts.map +1 -0
  308. package/dist/types/index.d.ts +7 -0
  309. package/dist/types/index.d.ts.map +1 -1
  310. package/dist/types/knex/columns.d.ts +15 -0
  311. package/dist/types/knex/columns.d.ts.map +1 -0
  312. package/dist/types/knex/index.d.ts +3 -11
  313. package/dist/types/knex/index.d.ts.map +1 -1
  314. package/dist/types/knex/migration-helpers.d.ts +28 -0
  315. package/dist/types/knex/migration-helpers.d.ts.map +1 -0
  316. package/dist/types/logging/index.d.ts +30 -4
  317. package/dist/types/logging/index.d.ts.map +1 -1
  318. package/dist/types/logging/redact.d.ts +54 -0
  319. package/dist/types/logging/redact.d.ts.map +1 -0
  320. package/dist/types/messaging/base-consumer.d.ts +33 -0
  321. package/dist/types/messaging/base-consumer.d.ts.map +1 -0
  322. package/dist/types/messaging/consumer.d.ts +59 -21
  323. package/dist/types/messaging/consumer.d.ts.map +1 -1
  324. package/dist/types/messaging/envelope.d.ts +50 -11
  325. package/dist/types/messaging/envelope.d.ts.map +1 -1
  326. package/dist/types/messaging/idempotency.d.ts +60 -3
  327. package/dist/types/messaging/idempotency.d.ts.map +1 -1
  328. package/dist/types/messaging/index.d.ts +8 -0
  329. package/dist/types/messaging/index.d.ts.map +1 -1
  330. package/dist/types/messaging/outbox.d.ts +62 -22
  331. package/dist/types/messaging/outbox.d.ts.map +1 -1
  332. package/dist/types/messaging/publisher.d.ts +54 -21
  333. package/dist/types/messaging/publisher.d.ts.map +1 -1
  334. package/dist/types/messaging/staff-notifier.d.ts +69 -38
  335. package/dist/types/messaging/staff-notifier.d.ts.map +1 -1
  336. package/dist/types/messaging/staff-recipients.d.ts +50 -0
  337. package/dist/types/messaging/staff-recipients.d.ts.map +1 -0
  338. package/dist/types/messaging/topology.d.ts +40 -8
  339. package/dist/types/messaging/topology.d.ts.map +1 -1
  340. package/dist/types/rate-limit/index.d.ts +40 -4
  341. package/dist/types/rate-limit/index.d.ts.map +1 -1
  342. package/dist/types/rate-limit/keys.d.ts +52 -0
  343. package/dist/types/rate-limit/keys.d.ts.map +1 -0
  344. package/dist/types/socket/index.d.ts +86 -2
  345. package/dist/types/socket/index.d.ts.map +1 -1
  346. package/dist/types/socket/ticket.d.ts +90 -0
  347. package/dist/types/socket/ticket.d.ts.map +1 -0
  348. package/dist/types/testing/index.d.ts +31 -10
  349. package/dist/types/testing/index.d.ts.map +1 -1
  350. package/dist/types/types/index.d.ts +62 -15
  351. package/dist/types/types/index.d.ts.map +1 -1
  352. package/dist/types/validation/index.d.ts +33 -2
  353. package/dist/types/validation/index.d.ts.map +1 -1
  354. package/package.json +3 -1
  355. package/dist/cjs/contracts/editorial-draft.js +0 -120
  356. package/dist/cjs/contracts/editorial-draft.js.map +0 -1
  357. package/dist/cjs/contracts/upload-import.js +0 -54
  358. package/dist/cjs/contracts/upload-import.js.map +0 -1
  359. package/dist/esm/contracts/editorial-draft.js +0 -117
  360. package/dist/esm/contracts/editorial-draft.js.map +0 -1
  361. package/dist/esm/contracts/upload-import.js +0 -51
  362. package/dist/esm/contracts/upload-import.js.map +0 -1
  363. package/dist/types/contracts/editorial-draft.d.ts +0 -610
  364. package/dist/types/contracts/editorial-draft.d.ts.map +0 -1
  365. package/dist/types/contracts/upload-import.d.ts +0 -96
  366. package/dist/types/contracts/upload-import.d.ts.map +0 -1
@@ -1,51 +0,0 @@
1
- import { z } from 'zod';
2
- import { idSchema } from '../validation/index.js';
3
- /**
4
- * Licensed image import by URL (Newswire R5, decision R39). newswire-service (and later
5
- * editorial-service) sends `upload:import`; upload-service fetches the file and answers with an
6
- * `upload.import.completed` or `upload.import.failed` event. One contract for both sides.
7
- */
8
- export const UPLOAD_IMPORT = 'upload:import';
9
- export const UPLOAD_IMPORT_EVENTS = {
10
- COMPLETED: 'upload.import.completed',
11
- FAILED: 'upload.import.failed',
12
- };
13
- /** Upload policies an import may use. */
14
- export const UPLOAD_IMPORT_POLICIES = ['news_image'];
15
- /** Field limits of the contract (upload-service's `uploads` columns). */
16
- export const UPLOAD_IMPORT_LIMITS = {
17
- url: 2048,
18
- ownerType: 50,
19
- licenceHolder: 160,
20
- licenceBasis: 255,
21
- reason: 255,
22
- };
23
- /**
24
- * `upload:import` data. The URL is only length-checked here: upload-service rejects a non-https or
25
- * unsafe URL itself, so the sender hears about it through a `failed` event instead of a dead letter.
26
- */
27
- export const uploadImportCommandSchema = z.object({
28
- /** ULID the outcome event echoes back; upload-service is idempotent on it. */
29
- importId: idSchema,
30
- url: z.string().min(1).max(UPLOAD_IMPORT_LIMITS.url),
31
- policy: z.enum(UPLOAD_IMPORT_POLICIES),
32
- /** Echoed in the outcome only; the imported upload is a system row with no owner. */
33
- ownerType: z.string().min(1).max(UPLOAD_IMPORT_LIMITS.ownerType),
34
- ownerId: idSchema,
35
- licence: z.object({
36
- holder: z.string().trim().min(1).max(UPLOAD_IMPORT_LIMITS.licenceHolder),
37
- basis: z.string().trim().min(1).max(UPLOAD_IMPORT_LIMITS.licenceBasis),
38
- }),
39
- });
40
- export const uploadImportCompletedSchema = z.object({
41
- importId: idSchema,
42
- uploadId: idSchema,
43
- ownerType: z.string().min(1).max(UPLOAD_IMPORT_LIMITS.ownerType),
44
- ownerId: idSchema,
45
- });
46
- /** `reason` is a machine code (`too_large`, `http_404`, …; see upload-service `ImportFailureReason`). */
47
- export const uploadImportFailedSchema = z.object({
48
- importId: idSchema,
49
- reason: z.string().min(1).max(UPLOAD_IMPORT_LIMITS.reason),
50
- });
51
- //# sourceMappingURL=upload-import.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-import.js","sourceRoot":"","sources":["../../../src/contracts/upload-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,sBAAsB;CACtB,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAY,CAAU,CAAC;AAG9D,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,GAAG;CACH,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,8EAA8E;IAC9E,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtC,qFAAqF;IACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACxE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,YAAY,CAAC;KACvE,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC;CAC3D,CAAC,CAAC"}
@@ -1,610 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * The newswire → editorial draft hand-off (design Appendix A.4 plus `paragraphFactIds` and
4
- * `image.uploadId`, decision R14). newswire-service stages it through its outbox; editorial-service
5
- * validates it with the same schema before creating the story. One contract for both sides.
6
- */
7
- export declare const EDITORIAL_DRAFT_SUBMIT = "editorial:draft.submit";
8
- /** Field limits of the contract (editorial's story columns). */
9
- export declare const EDITORIAL_DRAFT_LIMITS: {
10
- readonly headline: 200;
11
- readonly excerpt: 400;
12
- readonly tags: 6;
13
- readonly seoTitle: 70;
14
- readonly seoDescription: 170;
15
- /** Reader-facing update note ("Updated with …"), shown under the article byline. */
16
- readonly updateNote: 300;
17
- };
18
- export declare const DRAFT_SOURCE_ROLES: readonly ["primary", "corroborating"];
19
- export declare const DRAFT_RISKS: readonly ["low", "medium", "high"];
20
- export declare const GATE_VERDICTS: readonly ["pass", "review", "block"];
21
- /**
22
- * Every quality gate newswire runs on a draft, in design order. A submitted draft carries one result per
23
- * gate; editorial treats a missing one as not passed (auto-publish never runs on an unchecked draft).
24
- */
25
- export declare const QUALITY_GATE_NAMES: readonly ["originality", "grounding", "quote_limits", "corroboration", "conflicts", "sensitivity", "category", "freshness", "duplicate_of_published", "length_format"];
26
- export type QualityGateName = (typeof QUALITY_GATE_NAMES)[number];
27
- export declare const FACT_KINDS: readonly ["event", "person", "date", "place", "number", "quote", "context"];
28
- export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
29
- draftId: z.ZodString;
30
- clusterId: z.ZodString;
31
- headline: z.ZodString;
32
- excerpt: z.ZodString;
33
- paragraphs: z.ZodArray<z.ZodString, "many">;
34
- /** The fact-sheet fact ids each paragraph asserts (same length as `paragraphs`). */
35
- paragraphFactIds: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
36
- category: z.ZodString;
37
- tags: z.ZodArray<z.ZodString, "many">;
38
- seo: z.ZodObject<{
39
- title: z.ZodString;
40
- description: z.ZodString;
41
- }, "strip", z.ZodTypeAny, {
42
- description: string;
43
- title: string;
44
- }, {
45
- description: string;
46
- title: string;
47
- }>;
48
- social: z.ZodObject<{
49
- facebook: z.ZodString;
50
- x: z.ZodString;
51
- whatsapp: z.ZodString;
52
- instagram: z.ZodString;
53
- }, "strip", z.ZodTypeAny, {
54
- facebook: string;
55
- x: string;
56
- whatsapp: string;
57
- instagram: string;
58
- }, {
59
- facebook: string;
60
- x: string;
61
- whatsapp: string;
62
- instagram: string;
63
- }>;
64
- sources: z.ZodArray<z.ZodObject<{
65
- name: z.ZodString;
66
- url: z.ZodEffects<z.ZodString, string, string>;
67
- publishedAt: z.ZodOptional<z.ZodString>;
68
- role: z.ZodEnum<["primary", "corroborating"]>;
69
- }, "strip", z.ZodTypeAny, {
70
- name: string;
71
- url: string;
72
- role: "primary" | "corroborating";
73
- publishedAt?: string | undefined;
74
- }, {
75
- name: string;
76
- url: string;
77
- role: "primary" | "corroborating";
78
- publishedAt?: string | undefined;
79
- }>, "many">;
80
- /** An imported or profile cover (upload-service id), or null when the draft has none. */
81
- image: z.ZodNullable<z.ZodObject<{
82
- uploadId: z.ZodString;
83
- credit: z.ZodString;
84
- alt: z.ZodString;
85
- }, "strip", z.ZodTypeAny, {
86
- uploadId: string;
87
- credit: string;
88
- alt: string;
89
- }, {
90
- uploadId: string;
91
- credit: string;
92
- alt: string;
93
- }>>;
94
- relatedProfileIds: z.ZodArray<z.ZodString, "many">;
95
- suggestedProfileIds: z.ZodArray<z.ZodString, "many">;
96
- review: z.ZodObject<{
97
- confidence: z.ZodNumber;
98
- risk: z.ZodEnum<["low", "medium", "high"]>;
99
- riskReasons: z.ZodArray<z.ZodString, "many">;
100
- gates: z.ZodArray<z.ZodObject<{
101
- gate: z.ZodString;
102
- verdict: z.ZodEnum<["pass", "review", "block"]>;
103
- reasons: z.ZodArray<z.ZodString, "many">;
104
- metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
105
- }, "strip", z.ZodTypeAny, {
106
- gate: string;
107
- verdict: "pass" | "review" | "block";
108
- reasons: string[];
109
- metrics?: Record<string, number> | undefined;
110
- }, {
111
- gate: string;
112
- verdict: "pass" | "review" | "block";
113
- reasons: string[];
114
- metrics?: Record<string, number> | undefined;
115
- }>, "many">;
116
- factSheet: z.ZodObject<{
117
- facts: z.ZodArray<z.ZodObject<{
118
- id: z.ZodString;
119
- statement: z.ZodString;
120
- kind: z.ZodEnum<["event", "person", "date", "place", "number", "quote", "context"]>;
121
- entities: z.ZodArray<z.ZodString, "many">;
122
- supportedBy: z.ZodArray<z.ZodObject<{
123
- itemId: z.ZodString;
124
- paragraph: z.ZodNumber;
125
- }, "strip", z.ZodTypeAny, {
126
- itemId: string;
127
- paragraph: number;
128
- }, {
129
- itemId: string;
130
- paragraph: number;
131
- }>, "many">;
132
- conflictsWith: z.ZodArray<z.ZodString, "many">;
133
- independentSources: z.ZodNumber;
134
- }, "strip", z.ZodTypeAny, {
135
- id: string;
136
- statement: string;
137
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
138
- entities: string[];
139
- supportedBy: {
140
- itemId: string;
141
- paragraph: number;
142
- }[];
143
- conflictsWith: string[];
144
- independentSources: number;
145
- }, {
146
- id: string;
147
- statement: string;
148
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
149
- entities: string[];
150
- supportedBy: {
151
- itemId: string;
152
- paragraph: number;
153
- }[];
154
- conflictsWith: string[];
155
- independentSources: number;
156
- }>, "many">;
157
- quotes: z.ZodArray<z.ZodObject<{
158
- itemId: z.ZodString;
159
- paragraph: z.ZodNumber;
160
- } & {
161
- text: z.ZodString;
162
- speaker: z.ZodString;
163
- }, "strip", z.ZodTypeAny, {
164
- itemId: string;
165
- paragraph: number;
166
- text: string;
167
- speaker: string;
168
- }, {
169
- itemId: string;
170
- paragraph: number;
171
- text: string;
172
- speaker: string;
173
- }>, "many">;
174
- conflicts: z.ZodArray<z.ZodObject<{
175
- description: z.ZodString;
176
- factIds: z.ZodArray<z.ZodString, "many">;
177
- }, "strip", z.ZodTypeAny, {
178
- description: string;
179
- factIds: string[];
180
- }, {
181
- description: string;
182
- factIds: string[];
183
- }>, "many">;
184
- }, "strip", z.ZodTypeAny, {
185
- conflicts: {
186
- description: string;
187
- factIds: string[];
188
- }[];
189
- facts: {
190
- id: string;
191
- statement: string;
192
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
193
- entities: string[];
194
- supportedBy: {
195
- itemId: string;
196
- paragraph: number;
197
- }[];
198
- conflictsWith: string[];
199
- independentSources: number;
200
- }[];
201
- quotes: {
202
- itemId: string;
203
- paragraph: number;
204
- text: string;
205
- speaker: string;
206
- }[];
207
- }, {
208
- conflicts: {
209
- description: string;
210
- factIds: string[];
211
- }[];
212
- facts: {
213
- id: string;
214
- statement: string;
215
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
216
- entities: string[];
217
- supportedBy: {
218
- itemId: string;
219
- paragraph: number;
220
- }[];
221
- conflictsWith: string[];
222
- independentSources: number;
223
- }[];
224
- quotes: {
225
- itemId: string;
226
- paragraph: number;
227
- text: string;
228
- speaker: string;
229
- }[];
230
- }>;
231
- /** Prompt slug → version used to produce the draft. */
232
- promptVersions: z.ZodRecord<z.ZodString, z.ZodNumber>;
233
- }, "strip", z.ZodTypeAny, {
234
- confidence: number;
235
- risk: "low" | "medium" | "high";
236
- riskReasons: string[];
237
- gates: {
238
- gate: string;
239
- verdict: "pass" | "review" | "block";
240
- reasons: string[];
241
- metrics?: Record<string, number> | undefined;
242
- }[];
243
- factSheet: {
244
- conflicts: {
245
- description: string;
246
- factIds: string[];
247
- }[];
248
- facts: {
249
- id: string;
250
- statement: string;
251
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
252
- entities: string[];
253
- supportedBy: {
254
- itemId: string;
255
- paragraph: number;
256
- }[];
257
- conflictsWith: string[];
258
- independentSources: number;
259
- }[];
260
- quotes: {
261
- itemId: string;
262
- paragraph: number;
263
- text: string;
264
- speaker: string;
265
- }[];
266
- };
267
- promptVersions: Record<string, number>;
268
- }, {
269
- confidence: number;
270
- risk: "low" | "medium" | "high";
271
- riskReasons: string[];
272
- gates: {
273
- gate: string;
274
- verdict: "pass" | "review" | "block";
275
- reasons: string[];
276
- metrics?: Record<string, number> | undefined;
277
- }[];
278
- factSheet: {
279
- conflicts: {
280
- description: string;
281
- factIds: string[];
282
- }[];
283
- facts: {
284
- id: string;
285
- statement: string;
286
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
287
- entities: string[];
288
- supportedBy: {
289
- itemId: string;
290
- paragraph: number;
291
- }[];
292
- conflictsWith: string[];
293
- independentSources: number;
294
- }[];
295
- quotes: {
296
- itemId: string;
297
- paragraph: number;
298
- text: string;
299
- speaker: string;
300
- }[];
301
- };
302
- promptVersions: Record<string, number>;
303
- }>;
304
- /**
305
- * Present when the draft updates a story editorial has already published (Phase 21.2): editorial
306
- * stores it as a pending update on that story instead of creating a new one. Additive and optional.
307
- */
308
- updateOf: z.ZodOptional<z.ZodObject<{
309
- storyId: z.ZodString;
310
- note: z.ZodString;
311
- }, "strip", z.ZodTypeAny, {
312
- storyId: string;
313
- note: string;
314
- }, {
315
- storyId: string;
316
- note: string;
317
- }>>;
318
- }, "strip", z.ZodTypeAny, {
319
- review: {
320
- confidence: number;
321
- risk: "low" | "medium" | "high";
322
- riskReasons: string[];
323
- gates: {
324
- gate: string;
325
- verdict: "pass" | "review" | "block";
326
- reasons: string[];
327
- metrics?: Record<string, number> | undefined;
328
- }[];
329
- factSheet: {
330
- conflicts: {
331
- description: string;
332
- factIds: string[];
333
- }[];
334
- facts: {
335
- id: string;
336
- statement: string;
337
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
338
- entities: string[];
339
- supportedBy: {
340
- itemId: string;
341
- paragraph: number;
342
- }[];
343
- conflictsWith: string[];
344
- independentSources: number;
345
- }[];
346
- quotes: {
347
- itemId: string;
348
- paragraph: number;
349
- text: string;
350
- speaker: string;
351
- }[];
352
- };
353
- promptVersions: Record<string, number>;
354
- };
355
- category: string;
356
- draftId: string;
357
- clusterId: string;
358
- headline: string;
359
- excerpt: string;
360
- paragraphs: string[];
361
- paragraphFactIds: string[][];
362
- tags: string[];
363
- seo: {
364
- description: string;
365
- title: string;
366
- };
367
- social: {
368
- facebook: string;
369
- x: string;
370
- whatsapp: string;
371
- instagram: string;
372
- };
373
- sources: {
374
- name: string;
375
- url: string;
376
- role: "primary" | "corroborating";
377
- publishedAt?: string | undefined;
378
- }[];
379
- image: {
380
- uploadId: string;
381
- credit: string;
382
- alt: string;
383
- } | null;
384
- relatedProfileIds: string[];
385
- suggestedProfileIds: string[];
386
- updateOf?: {
387
- storyId: string;
388
- note: string;
389
- } | undefined;
390
- }, {
391
- review: {
392
- confidence: number;
393
- risk: "low" | "medium" | "high";
394
- riskReasons: string[];
395
- gates: {
396
- gate: string;
397
- verdict: "pass" | "review" | "block";
398
- reasons: string[];
399
- metrics?: Record<string, number> | undefined;
400
- }[];
401
- factSheet: {
402
- conflicts: {
403
- description: string;
404
- factIds: string[];
405
- }[];
406
- facts: {
407
- id: string;
408
- statement: string;
409
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
410
- entities: string[];
411
- supportedBy: {
412
- itemId: string;
413
- paragraph: number;
414
- }[];
415
- conflictsWith: string[];
416
- independentSources: number;
417
- }[];
418
- quotes: {
419
- itemId: string;
420
- paragraph: number;
421
- text: string;
422
- speaker: string;
423
- }[];
424
- };
425
- promptVersions: Record<string, number>;
426
- };
427
- category: string;
428
- draftId: string;
429
- clusterId: string;
430
- headline: string;
431
- excerpt: string;
432
- paragraphs: string[];
433
- paragraphFactIds: string[][];
434
- tags: string[];
435
- seo: {
436
- description: string;
437
- title: string;
438
- };
439
- social: {
440
- facebook: string;
441
- x: string;
442
- whatsapp: string;
443
- instagram: string;
444
- };
445
- sources: {
446
- name: string;
447
- url: string;
448
- role: "primary" | "corroborating";
449
- publishedAt?: string | undefined;
450
- }[];
451
- image: {
452
- uploadId: string;
453
- credit: string;
454
- alt: string;
455
- } | null;
456
- relatedProfileIds: string[];
457
- suggestedProfileIds: string[];
458
- updateOf?: {
459
- storyId: string;
460
- note: string;
461
- } | undefined;
462
- }>, {
463
- review: {
464
- confidence: number;
465
- risk: "low" | "medium" | "high";
466
- riskReasons: string[];
467
- gates: {
468
- gate: string;
469
- verdict: "pass" | "review" | "block";
470
- reasons: string[];
471
- metrics?: Record<string, number> | undefined;
472
- }[];
473
- factSheet: {
474
- conflicts: {
475
- description: string;
476
- factIds: string[];
477
- }[];
478
- facts: {
479
- id: string;
480
- statement: string;
481
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
482
- entities: string[];
483
- supportedBy: {
484
- itemId: string;
485
- paragraph: number;
486
- }[];
487
- conflictsWith: string[];
488
- independentSources: number;
489
- }[];
490
- quotes: {
491
- itemId: string;
492
- paragraph: number;
493
- text: string;
494
- speaker: string;
495
- }[];
496
- };
497
- promptVersions: Record<string, number>;
498
- };
499
- category: string;
500
- draftId: string;
501
- clusterId: string;
502
- headline: string;
503
- excerpt: string;
504
- paragraphs: string[];
505
- paragraphFactIds: string[][];
506
- tags: string[];
507
- seo: {
508
- description: string;
509
- title: string;
510
- };
511
- social: {
512
- facebook: string;
513
- x: string;
514
- whatsapp: string;
515
- instagram: string;
516
- };
517
- sources: {
518
- name: string;
519
- url: string;
520
- role: "primary" | "corroborating";
521
- publishedAt?: string | undefined;
522
- }[];
523
- image: {
524
- uploadId: string;
525
- credit: string;
526
- alt: string;
527
- } | null;
528
- relatedProfileIds: string[];
529
- suggestedProfileIds: string[];
530
- updateOf?: {
531
- storyId: string;
532
- note: string;
533
- } | undefined;
534
- }, {
535
- review: {
536
- confidence: number;
537
- risk: "low" | "medium" | "high";
538
- riskReasons: string[];
539
- gates: {
540
- gate: string;
541
- verdict: "pass" | "review" | "block";
542
- reasons: string[];
543
- metrics?: Record<string, number> | undefined;
544
- }[];
545
- factSheet: {
546
- conflicts: {
547
- description: string;
548
- factIds: string[];
549
- }[];
550
- facts: {
551
- id: string;
552
- statement: string;
553
- kind: "number" | "date" | "event" | "person" | "place" | "quote" | "context";
554
- entities: string[];
555
- supportedBy: {
556
- itemId: string;
557
- paragraph: number;
558
- }[];
559
- conflictsWith: string[];
560
- independentSources: number;
561
- }[];
562
- quotes: {
563
- itemId: string;
564
- paragraph: number;
565
- text: string;
566
- speaker: string;
567
- }[];
568
- };
569
- promptVersions: Record<string, number>;
570
- };
571
- category: string;
572
- draftId: string;
573
- clusterId: string;
574
- headline: string;
575
- excerpt: string;
576
- paragraphs: string[];
577
- paragraphFactIds: string[][];
578
- tags: string[];
579
- seo: {
580
- description: string;
581
- title: string;
582
- };
583
- social: {
584
- facebook: string;
585
- x: string;
586
- whatsapp: string;
587
- instagram: string;
588
- };
589
- sources: {
590
- name: string;
591
- url: string;
592
- role: "primary" | "corroborating";
593
- publishedAt?: string | undefined;
594
- }[];
595
- image: {
596
- uploadId: string;
597
- credit: string;
598
- alt: string;
599
- } | null;
600
- relatedProfileIds: string[];
601
- suggestedProfileIds: string[];
602
- updateOf?: {
603
- storyId: string;
604
- note: string;
605
- } | undefined;
606
- }>;
607
- export type EditorialDraftSubmit = z.infer<typeof editorialDraftSubmitSchema>;
608
- export type EditorialDraftSource = EditorialDraftSubmit['sources'][number];
609
- export type EditorialDraftUpdateOf = NonNullable<EditorialDraftSubmit['updateOf']>;
610
- //# sourceMappingURL=editorial-draft.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editorial-draft.d.ts","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,gEAAgE;AAChE,eAAO,MAAM,sBAAsB;;;;;;IAMjC,oFAAoF;;CAE5E,CAAC;AAEX,eAAO,MAAM,kBAAkB,uCAAwC,CAAC;AACxE,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAClE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wKAGrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,eAAO,MAAM,UAAU,6EAA8E,CAAC;AAuCtG,eAAO,MAAM,0BAA0B;;;;;;IAOnC,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUpF,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcvF,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGzD;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBH,CAAC;AAEL,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC"}