@cratis/showrunner.usher 0.0.0-bootstrap.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 (407) hide show
  1. package/Access/AccessDuration.ts +13 -0
  2. package/Access/GrantAccess/GrantAccess.ts +80 -0
  3. package/Access/GrantAccess/index.ts +4 -0
  4. package/Access/RevokeAccess/RevokeAccess.ts +61 -0
  5. package/Access/RevokeAccess/index.ts +4 -0
  6. package/Access/index.ts +4 -0
  7. package/Contracts/Conversation/SupportAuthor.ts +25 -0
  8. package/Contracts/Conversation/SupportAuthorKind.ts +12 -0
  9. package/Contracts/Conversation/index.ts +5 -0
  10. package/Contracts/Reporting/SliceLocation.ts +30 -0
  11. package/Contracts/Reporting/StackFrame.ts +30 -0
  12. package/Contracts/Reporting/index.ts +5 -0
  13. package/Contracts/WorkItems/WorkItem.ts +36 -0
  14. package/Contracts/WorkItems/index.ts +4 -0
  15. package/Conversation/AddDetails/AddDetails.ts +87 -0
  16. package/Conversation/AddDetails/index.ts +4 -0
  17. package/Conversation/AnswerQuestion/AnswerQuestion.ts +105 -0
  18. package/Conversation/AnswerQuestion/index.ts +4 -0
  19. package/Errors/ErrorDetails.ts +41 -0
  20. package/Errors/errorDetailsFromCommandResult.ts +30 -0
  21. package/Errors/errorDetailsFromError.ts +44 -0
  22. package/Errors/errorDetailsFromQueryResult.ts +32 -0
  23. package/Errors/index.ts +9 -0
  24. package/Errors/messageOf.ts +24 -0
  25. package/Errors/parseStackTrace.ts +62 -0
  26. package/Errors/resolveLocation.ts +20 -0
  27. package/Identity/ShareIdentity/ShareIdentity.ts +61 -0
  28. package/Identity/ShareIdentity/index.ts +4 -0
  29. package/Identity/UserIdentity.ts +30 -0
  30. package/Identity/index.ts +4 -0
  31. package/Issues/IssueKind.ts +12 -0
  32. package/Issues/IssueState.ts +17 -0
  33. package/Issues/index.ts +5 -0
  34. package/Lifecycle/ReopenIssue/ReopenIssue.ts +87 -0
  35. package/Lifecycle/ReopenIssue/index.ts +4 -0
  36. package/Lifecycle/WithdrawIssue/WithdrawIssue.ts +61 -0
  37. package/Lifecycle/WithdrawIssue/index.ts +4 -0
  38. package/Listing/Listing.ts +271 -0
  39. package/Listing/index.ts +4 -0
  40. package/README.md +59 -0
  41. package/Reporting/ReportError/ReportError.ts +254 -0
  42. package/Reporting/ReportError/index.ts +4 -0
  43. package/Reporting/ReportIssue/ReportIssue.ts +217 -0
  44. package/Reporting/ReportIssue/index.ts +4 -0
  45. package/Viewing/AccessState.ts +15 -0
  46. package/Viewing/ConversationAuthorKind.ts +14 -0
  47. package/Viewing/ConversationEntryKind.ts +35 -0
  48. package/Viewing/Viewing.ts +472 -0
  49. package/Viewing/index.ts +7 -0
  50. package/dist/cjs/Access/AccessDuration.d.ts +6 -0
  51. package/dist/cjs/Access/AccessDuration.d.ts.map +1 -0
  52. package/dist/cjs/Access/AccessDuration.js +17 -0
  53. package/dist/cjs/Access/AccessDuration.js.map +1 -0
  54. package/dist/cjs/Access/GrantAccess/GrantAccess.d.ts +25 -0
  55. package/dist/cjs/Access/GrantAccess/GrantAccess.d.ts.map +1 -0
  56. package/dist/cjs/Access/GrantAccess/GrantAccess.js +55 -0
  57. package/dist/cjs/Access/GrantAccess/GrantAccess.js.map +1 -0
  58. package/dist/cjs/Access/GrantAccess/index.d.ts +2 -0
  59. package/dist/cjs/Access/GrantAccess/index.d.ts.map +1 -0
  60. package/dist/cjs/Access/RevokeAccess/RevokeAccess.d.ts +21 -0
  61. package/dist/cjs/Access/RevokeAccess/RevokeAccess.d.ts.map +1 -0
  62. package/dist/cjs/Access/RevokeAccess/RevokeAccess.js +44 -0
  63. package/dist/cjs/Access/RevokeAccess/RevokeAccess.js.map +1 -0
  64. package/dist/cjs/Access/RevokeAccess/index.d.ts +2 -0
  65. package/dist/cjs/Access/RevokeAccess/index.d.ts.map +1 -0
  66. package/dist/cjs/Access/index.d.ts +2 -0
  67. package/dist/cjs/Access/index.d.ts.map +1 -0
  68. package/dist/cjs/Contracts/Conversation/SupportAuthor.d.ts +6 -0
  69. package/dist/cjs/Contracts/Conversation/SupportAuthor.d.ts.map +1 -0
  70. package/dist/cjs/Contracts/Conversation/SupportAuthor.js +44 -0
  71. package/dist/cjs/Contracts/Conversation/SupportAuthor.js.map +1 -0
  72. package/dist/cjs/Contracts/Conversation/SupportAuthorKind.d.ts +5 -0
  73. package/dist/cjs/Contracts/Conversation/SupportAuthorKind.d.ts.map +1 -0
  74. package/dist/cjs/Contracts/Conversation/SupportAuthorKind.js +16 -0
  75. package/dist/cjs/Contracts/Conversation/SupportAuthorKind.js.map +1 -0
  76. package/dist/cjs/Contracts/Conversation/index.d.ts +3 -0
  77. package/dist/cjs/Contracts/Conversation/index.d.ts.map +1 -0
  78. package/dist/cjs/Contracts/Reporting/SliceLocation.d.ts +6 -0
  79. package/dist/cjs/Contracts/Reporting/SliceLocation.d.ts.map +1 -0
  80. package/dist/cjs/Contracts/Reporting/SliceLocation.js +50 -0
  81. package/dist/cjs/Contracts/Reporting/SliceLocation.js.map +1 -0
  82. package/dist/cjs/Contracts/Reporting/StackFrame.d.ts +6 -0
  83. package/dist/cjs/Contracts/Reporting/StackFrame.d.ts.map +1 -0
  84. package/dist/cjs/Contracts/Reporting/StackFrame.js +50 -0
  85. package/dist/cjs/Contracts/Reporting/StackFrame.js.map +1 -0
  86. package/dist/cjs/Contracts/Reporting/index.d.ts +3 -0
  87. package/dist/cjs/Contracts/Reporting/index.d.ts.map +1 -0
  88. package/dist/cjs/Contracts/WorkItems/WorkItem.d.ts +7 -0
  89. package/dist/cjs/Contracts/WorkItems/WorkItem.d.ts.map +1 -0
  90. package/dist/cjs/Contracts/WorkItems/WorkItem.js +57 -0
  91. package/dist/cjs/Contracts/WorkItems/WorkItem.js.map +1 -0
  92. package/dist/cjs/Contracts/WorkItems/index.d.ts +2 -0
  93. package/dist/cjs/Contracts/WorkItems/index.d.ts.map +1 -0
  94. package/dist/cjs/Conversation/AddDetails/AddDetails.d.ts +28 -0
  95. package/dist/cjs/Conversation/AddDetails/AddDetails.d.ts.map +1 -0
  96. package/dist/cjs/Conversation/AddDetails/AddDetails.js +64 -0
  97. package/dist/cjs/Conversation/AddDetails/AddDetails.js.map +1 -0
  98. package/dist/cjs/Conversation/AddDetails/index.d.ts +2 -0
  99. package/dist/cjs/Conversation/AddDetails/index.d.ts.map +1 -0
  100. package/dist/cjs/Conversation/AnswerQuestion/AnswerQuestion.d.ts +31 -0
  101. package/dist/cjs/Conversation/AnswerQuestion/AnswerQuestion.d.ts.map +1 -0
  102. package/dist/cjs/Conversation/AnswerQuestion/AnswerQuestion.js +75 -0
  103. package/dist/cjs/Conversation/AnswerQuestion/AnswerQuestion.js.map +1 -0
  104. package/dist/cjs/Conversation/AnswerQuestion/index.d.ts +2 -0
  105. package/dist/cjs/Conversation/AnswerQuestion/index.d.ts.map +1 -0
  106. package/dist/cjs/Errors/ErrorDetails.d.ts +11 -0
  107. package/dist/cjs/Errors/ErrorDetails.d.ts.map +1 -0
  108. package/dist/cjs/Errors/errorDetailsFromCommandResult.d.ts +5 -0
  109. package/dist/cjs/Errors/errorDetailsFromCommandResult.d.ts.map +1 -0
  110. package/dist/cjs/Errors/errorDetailsFromCommandResult.js +32 -0
  111. package/dist/cjs/Errors/errorDetailsFromCommandResult.js.map +1 -0
  112. package/dist/cjs/Errors/errorDetailsFromError.d.ts +4 -0
  113. package/dist/cjs/Errors/errorDetailsFromError.d.ts.map +1 -0
  114. package/dist/cjs/Errors/errorDetailsFromError.js +43 -0
  115. package/dist/cjs/Errors/errorDetailsFromError.js.map +1 -0
  116. package/dist/cjs/Errors/errorDetailsFromQueryResult.d.ts +6 -0
  117. package/dist/cjs/Errors/errorDetailsFromQueryResult.d.ts.map +1 -0
  118. package/dist/cjs/Errors/errorDetailsFromQueryResult.js +33 -0
  119. package/dist/cjs/Errors/errorDetailsFromQueryResult.js.map +1 -0
  120. package/dist/cjs/Errors/index.d.ts +7 -0
  121. package/dist/cjs/Errors/index.d.ts.map +1 -0
  122. package/dist/cjs/Errors/messageOf.d.ts +3 -0
  123. package/dist/cjs/Errors/messageOf.d.ts.map +1 -0
  124. package/dist/cjs/Errors/messageOf.js +23 -0
  125. package/dist/cjs/Errors/messageOf.js.map +1 -0
  126. package/dist/cjs/Errors/parseStackTrace.d.ts +3 -0
  127. package/dist/cjs/Errors/parseStackTrace.d.ts.map +1 -0
  128. package/dist/cjs/Errors/parseStackTrace.js +54 -0
  129. package/dist/cjs/Errors/parseStackTrace.js.map +1 -0
  130. package/dist/cjs/Errors/resolveLocation.d.ts +3 -0
  131. package/dist/cjs/Errors/resolveLocation.d.ts.map +1 -0
  132. package/dist/cjs/Errors/resolveLocation.js +22 -0
  133. package/dist/cjs/Errors/resolveLocation.js.map +1 -0
  134. package/dist/cjs/Identity/ShareIdentity/ShareIdentity.d.ts +21 -0
  135. package/dist/cjs/Identity/ShareIdentity/ShareIdentity.d.ts.map +1 -0
  136. package/dist/cjs/Identity/ShareIdentity/ShareIdentity.js +44 -0
  137. package/dist/cjs/Identity/ShareIdentity/ShareIdentity.js.map +1 -0
  138. package/dist/cjs/Identity/ShareIdentity/index.d.ts +2 -0
  139. package/dist/cjs/Identity/ShareIdentity/index.d.ts.map +1 -0
  140. package/dist/cjs/Identity/UserIdentity.d.ts +6 -0
  141. package/dist/cjs/Identity/UserIdentity.d.ts.map +1 -0
  142. package/dist/cjs/Identity/UserIdentity.js +50 -0
  143. package/dist/cjs/Identity/UserIdentity.js.map +1 -0
  144. package/dist/cjs/Identity/index.d.ts +2 -0
  145. package/dist/cjs/Identity/index.d.ts.map +1 -0
  146. package/dist/cjs/Issues/IssueKind.d.ts +5 -0
  147. package/dist/cjs/Issues/IssueKind.d.ts.map +1 -0
  148. package/dist/cjs/Issues/IssueKind.js +16 -0
  149. package/dist/cjs/Issues/IssueKind.js.map +1 -0
  150. package/dist/cjs/Issues/IssueState.d.ts +10 -0
  151. package/dist/cjs/Issues/IssueState.d.ts.map +1 -0
  152. package/dist/cjs/Issues/IssueState.js +21 -0
  153. package/dist/cjs/Issues/IssueState.js.map +1 -0
  154. package/dist/cjs/Issues/index.d.ts +3 -0
  155. package/dist/cjs/Issues/index.d.ts.map +1 -0
  156. package/dist/cjs/Lifecycle/ReopenIssue/ReopenIssue.d.ts +28 -0
  157. package/dist/cjs/Lifecycle/ReopenIssue/ReopenIssue.d.ts.map +1 -0
  158. package/dist/cjs/Lifecycle/ReopenIssue/ReopenIssue.js +64 -0
  159. package/dist/cjs/Lifecycle/ReopenIssue/ReopenIssue.js.map +1 -0
  160. package/dist/cjs/Lifecycle/ReopenIssue/index.d.ts +2 -0
  161. package/dist/cjs/Lifecycle/ReopenIssue/index.d.ts.map +1 -0
  162. package/dist/cjs/Lifecycle/WithdrawIssue/WithdrawIssue.d.ts +21 -0
  163. package/dist/cjs/Lifecycle/WithdrawIssue/WithdrawIssue.d.ts.map +1 -0
  164. package/dist/cjs/Lifecycle/WithdrawIssue/WithdrawIssue.js +44 -0
  165. package/dist/cjs/Lifecycle/WithdrawIssue/WithdrawIssue.js.map +1 -0
  166. package/dist/cjs/Lifecycle/WithdrawIssue/index.d.ts +2 -0
  167. package/dist/cjs/Lifecycle/WithdrawIssue/index.d.ts.map +1 -0
  168. package/dist/cjs/Listing/Listing.d.ts +99 -0
  169. package/dist/cjs/Listing/Listing.d.ts.map +1 -0
  170. package/dist/cjs/Listing/Listing.js +281 -0
  171. package/dist/cjs/Listing/Listing.js.map +1 -0
  172. package/dist/cjs/Listing/index.d.ts +2 -0
  173. package/dist/cjs/Listing/index.d.ts.map +1 -0
  174. package/dist/cjs/Reporting/ReportError/ReportError.d.ts +58 -0
  175. package/dist/cjs/Reporting/ReportError/ReportError.d.ts.map +1 -0
  176. package/dist/cjs/Reporting/ReportError/ReportError.js +167 -0
  177. package/dist/cjs/Reporting/ReportError/ReportError.js.map +1 -0
  178. package/dist/cjs/Reporting/ReportError/index.d.ts +2 -0
  179. package/dist/cjs/Reporting/ReportError/index.d.ts.map +1 -0
  180. package/dist/cjs/Reporting/ReportIssue/ReportIssue.d.ts +51 -0
  181. package/dist/cjs/Reporting/ReportIssue/ReportIssue.d.ts.map +1 -0
  182. package/dist/cjs/Reporting/ReportIssue/ReportIssue.js +144 -0
  183. package/dist/cjs/Reporting/ReportIssue/ReportIssue.js.map +1 -0
  184. package/dist/cjs/Reporting/ReportIssue/index.d.ts +2 -0
  185. package/dist/cjs/Reporting/ReportIssue/index.d.ts.map +1 -0
  186. package/dist/cjs/Viewing/AccessState.d.ts +8 -0
  187. package/dist/cjs/Viewing/AccessState.d.ts.map +1 -0
  188. package/dist/cjs/Viewing/AccessState.js +19 -0
  189. package/dist/cjs/Viewing/AccessState.js.map +1 -0
  190. package/dist/cjs/Viewing/ConversationAuthorKind.d.ts +7 -0
  191. package/dist/cjs/Viewing/ConversationAuthorKind.d.ts.map +1 -0
  192. package/dist/cjs/Viewing/ConversationAuthorKind.js +18 -0
  193. package/dist/cjs/Viewing/ConversationAuthorKind.js.map +1 -0
  194. package/dist/cjs/Viewing/ConversationEntryKind.d.ts +28 -0
  195. package/dist/cjs/Viewing/ConversationEntryKind.d.ts.map +1 -0
  196. package/dist/cjs/Viewing/ConversationEntryKind.js +39 -0
  197. package/dist/cjs/Viewing/ConversationEntryKind.js.map +1 -0
  198. package/dist/cjs/Viewing/Viewing.d.ts +145 -0
  199. package/dist/cjs/Viewing/Viewing.d.ts.map +1 -0
  200. package/dist/cjs/Viewing/Viewing.js +492 -0
  201. package/dist/cjs/Viewing/Viewing.js.map +1 -0
  202. package/dist/cjs/Viewing/index.d.ts +5 -0
  203. package/dist/cjs/Viewing/index.d.ts.map +1 -0
  204. package/dist/cjs/index.d.ts +19 -0
  205. package/dist/cjs/index.d.ts.map +1 -0
  206. package/dist/cjs/index.js +74 -0
  207. package/dist/cjs/index.js.map +1 -0
  208. package/dist/cjs/package.json +3 -0
  209. package/dist/esm/Access/AccessDuration.d.ts +6 -0
  210. package/dist/esm/Access/AccessDuration.d.ts.map +1 -0
  211. package/dist/esm/Access/AccessDuration.js +15 -0
  212. package/dist/esm/Access/AccessDuration.js.map +1 -0
  213. package/dist/esm/Access/GrantAccess/GrantAccess.d.ts +25 -0
  214. package/dist/esm/Access/GrantAccess/GrantAccess.d.ts.map +1 -0
  215. package/dist/esm/Access/GrantAccess/GrantAccess.js +53 -0
  216. package/dist/esm/Access/GrantAccess/GrantAccess.js.map +1 -0
  217. package/dist/esm/Access/GrantAccess/index.d.ts +2 -0
  218. package/dist/esm/Access/GrantAccess/index.d.ts.map +1 -0
  219. package/dist/esm/Access/GrantAccess/index.js +2 -0
  220. package/dist/esm/Access/GrantAccess/index.js.map +1 -0
  221. package/dist/esm/Access/RevokeAccess/RevokeAccess.d.ts +21 -0
  222. package/dist/esm/Access/RevokeAccess/RevokeAccess.d.ts.map +1 -0
  223. package/dist/esm/Access/RevokeAccess/RevokeAccess.js +42 -0
  224. package/dist/esm/Access/RevokeAccess/RevokeAccess.js.map +1 -0
  225. package/dist/esm/Access/RevokeAccess/index.d.ts +2 -0
  226. package/dist/esm/Access/RevokeAccess/index.d.ts.map +1 -0
  227. package/dist/esm/Access/RevokeAccess/index.js +2 -0
  228. package/dist/esm/Access/RevokeAccess/index.js.map +1 -0
  229. package/dist/esm/Access/index.d.ts +2 -0
  230. package/dist/esm/Access/index.d.ts.map +1 -0
  231. package/dist/esm/Access/index.js +2 -0
  232. package/dist/esm/Access/index.js.map +1 -0
  233. package/dist/esm/Contracts/Conversation/SupportAuthor.d.ts +6 -0
  234. package/dist/esm/Contracts/Conversation/SupportAuthor.d.ts.map +1 -0
  235. package/dist/esm/Contracts/Conversation/SupportAuthor.js +42 -0
  236. package/dist/esm/Contracts/Conversation/SupportAuthor.js.map +1 -0
  237. package/dist/esm/Contracts/Conversation/SupportAuthorKind.d.ts +5 -0
  238. package/dist/esm/Contracts/Conversation/SupportAuthorKind.d.ts.map +1 -0
  239. package/dist/esm/Contracts/Conversation/SupportAuthorKind.js +14 -0
  240. package/dist/esm/Contracts/Conversation/SupportAuthorKind.js.map +1 -0
  241. package/dist/esm/Contracts/Conversation/index.d.ts +3 -0
  242. package/dist/esm/Contracts/Conversation/index.d.ts.map +1 -0
  243. package/dist/esm/Contracts/Conversation/index.js +3 -0
  244. package/dist/esm/Contracts/Conversation/index.js.map +1 -0
  245. package/dist/esm/Contracts/Reporting/SliceLocation.d.ts +6 -0
  246. package/dist/esm/Contracts/Reporting/SliceLocation.d.ts.map +1 -0
  247. package/dist/esm/Contracts/Reporting/SliceLocation.js +48 -0
  248. package/dist/esm/Contracts/Reporting/SliceLocation.js.map +1 -0
  249. package/dist/esm/Contracts/Reporting/StackFrame.d.ts +6 -0
  250. package/dist/esm/Contracts/Reporting/StackFrame.d.ts.map +1 -0
  251. package/dist/esm/Contracts/Reporting/StackFrame.js +48 -0
  252. package/dist/esm/Contracts/Reporting/StackFrame.js.map +1 -0
  253. package/dist/esm/Contracts/Reporting/index.d.ts +3 -0
  254. package/dist/esm/Contracts/Reporting/index.d.ts.map +1 -0
  255. package/dist/esm/Contracts/Reporting/index.js +3 -0
  256. package/dist/esm/Contracts/Reporting/index.js.map +1 -0
  257. package/dist/esm/Contracts/WorkItems/WorkItem.d.ts +7 -0
  258. package/dist/esm/Contracts/WorkItems/WorkItem.d.ts.map +1 -0
  259. package/dist/esm/Contracts/WorkItems/WorkItem.js +55 -0
  260. package/dist/esm/Contracts/WorkItems/WorkItem.js.map +1 -0
  261. package/dist/esm/Contracts/WorkItems/index.d.ts +2 -0
  262. package/dist/esm/Contracts/WorkItems/index.d.ts.map +1 -0
  263. package/dist/esm/Contracts/WorkItems/index.js +2 -0
  264. package/dist/esm/Contracts/WorkItems/index.js.map +1 -0
  265. package/dist/esm/Conversation/AddDetails/AddDetails.d.ts +28 -0
  266. package/dist/esm/Conversation/AddDetails/AddDetails.d.ts.map +1 -0
  267. package/dist/esm/Conversation/AddDetails/AddDetails.js +61 -0
  268. package/dist/esm/Conversation/AddDetails/AddDetails.js.map +1 -0
  269. package/dist/esm/Conversation/AddDetails/index.d.ts +2 -0
  270. package/dist/esm/Conversation/AddDetails/index.d.ts.map +1 -0
  271. package/dist/esm/Conversation/AddDetails/index.js +2 -0
  272. package/dist/esm/Conversation/AddDetails/index.js.map +1 -0
  273. package/dist/esm/Conversation/AnswerQuestion/AnswerQuestion.d.ts +31 -0
  274. package/dist/esm/Conversation/AnswerQuestion/AnswerQuestion.d.ts.map +1 -0
  275. package/dist/esm/Conversation/AnswerQuestion/AnswerQuestion.js +72 -0
  276. package/dist/esm/Conversation/AnswerQuestion/AnswerQuestion.js.map +1 -0
  277. package/dist/esm/Conversation/AnswerQuestion/index.d.ts +2 -0
  278. package/dist/esm/Conversation/AnswerQuestion/index.d.ts.map +1 -0
  279. package/dist/esm/Conversation/AnswerQuestion/index.js +2 -0
  280. package/dist/esm/Conversation/AnswerQuestion/index.js.map +1 -0
  281. package/dist/esm/Errors/ErrorDetails.d.ts +11 -0
  282. package/dist/esm/Errors/ErrorDetails.d.ts.map +1 -0
  283. package/dist/esm/Errors/ErrorDetails.js +2 -0
  284. package/dist/esm/Errors/ErrorDetails.js.map +1 -0
  285. package/dist/esm/Errors/errorDetailsFromCommandResult.d.ts +5 -0
  286. package/dist/esm/Errors/errorDetailsFromCommandResult.d.ts.map +1 -0
  287. package/dist/esm/Errors/errorDetailsFromCommandResult.js +30 -0
  288. package/dist/esm/Errors/errorDetailsFromCommandResult.js.map +1 -0
  289. package/dist/esm/Errors/errorDetailsFromError.d.ts +4 -0
  290. package/dist/esm/Errors/errorDetailsFromError.d.ts.map +1 -0
  291. package/dist/esm/Errors/errorDetailsFromError.js +41 -0
  292. package/dist/esm/Errors/errorDetailsFromError.js.map +1 -0
  293. package/dist/esm/Errors/errorDetailsFromQueryResult.d.ts +6 -0
  294. package/dist/esm/Errors/errorDetailsFromQueryResult.d.ts.map +1 -0
  295. package/dist/esm/Errors/errorDetailsFromQueryResult.js +31 -0
  296. package/dist/esm/Errors/errorDetailsFromQueryResult.js.map +1 -0
  297. package/dist/esm/Errors/index.d.ts +7 -0
  298. package/dist/esm/Errors/index.d.ts.map +1 -0
  299. package/dist/esm/Errors/index.js +7 -0
  300. package/dist/esm/Errors/index.js.map +1 -0
  301. package/dist/esm/Errors/messageOf.d.ts +3 -0
  302. package/dist/esm/Errors/messageOf.d.ts.map +1 -0
  303. package/dist/esm/Errors/messageOf.js +21 -0
  304. package/dist/esm/Errors/messageOf.js.map +1 -0
  305. package/dist/esm/Errors/parseStackTrace.d.ts +3 -0
  306. package/dist/esm/Errors/parseStackTrace.d.ts.map +1 -0
  307. package/dist/esm/Errors/parseStackTrace.js +52 -0
  308. package/dist/esm/Errors/parseStackTrace.js.map +1 -0
  309. package/dist/esm/Errors/resolveLocation.d.ts +3 -0
  310. package/dist/esm/Errors/resolveLocation.d.ts.map +1 -0
  311. package/dist/esm/Errors/resolveLocation.js +20 -0
  312. package/dist/esm/Errors/resolveLocation.js.map +1 -0
  313. package/dist/esm/Identity/ShareIdentity/ShareIdentity.d.ts +21 -0
  314. package/dist/esm/Identity/ShareIdentity/ShareIdentity.d.ts.map +1 -0
  315. package/dist/esm/Identity/ShareIdentity/ShareIdentity.js +42 -0
  316. package/dist/esm/Identity/ShareIdentity/ShareIdentity.js.map +1 -0
  317. package/dist/esm/Identity/ShareIdentity/index.d.ts +2 -0
  318. package/dist/esm/Identity/ShareIdentity/index.d.ts.map +1 -0
  319. package/dist/esm/Identity/ShareIdentity/index.js +2 -0
  320. package/dist/esm/Identity/ShareIdentity/index.js.map +1 -0
  321. package/dist/esm/Identity/UserIdentity.d.ts +6 -0
  322. package/dist/esm/Identity/UserIdentity.d.ts.map +1 -0
  323. package/dist/esm/Identity/UserIdentity.js +48 -0
  324. package/dist/esm/Identity/UserIdentity.js.map +1 -0
  325. package/dist/esm/Identity/index.d.ts +2 -0
  326. package/dist/esm/Identity/index.d.ts.map +1 -0
  327. package/dist/esm/Identity/index.js +2 -0
  328. package/dist/esm/Identity/index.js.map +1 -0
  329. package/dist/esm/Issues/IssueKind.d.ts +5 -0
  330. package/dist/esm/Issues/IssueKind.d.ts.map +1 -0
  331. package/dist/esm/Issues/IssueKind.js +14 -0
  332. package/dist/esm/Issues/IssueKind.js.map +1 -0
  333. package/dist/esm/Issues/IssueState.d.ts +10 -0
  334. package/dist/esm/Issues/IssueState.d.ts.map +1 -0
  335. package/dist/esm/Issues/IssueState.js +19 -0
  336. package/dist/esm/Issues/IssueState.js.map +1 -0
  337. package/dist/esm/Issues/index.d.ts +3 -0
  338. package/dist/esm/Issues/index.d.ts.map +1 -0
  339. package/dist/esm/Issues/index.js +3 -0
  340. package/dist/esm/Issues/index.js.map +1 -0
  341. package/dist/esm/Lifecycle/ReopenIssue/ReopenIssue.d.ts +28 -0
  342. package/dist/esm/Lifecycle/ReopenIssue/ReopenIssue.d.ts.map +1 -0
  343. package/dist/esm/Lifecycle/ReopenIssue/ReopenIssue.js +61 -0
  344. package/dist/esm/Lifecycle/ReopenIssue/ReopenIssue.js.map +1 -0
  345. package/dist/esm/Lifecycle/ReopenIssue/index.d.ts +2 -0
  346. package/dist/esm/Lifecycle/ReopenIssue/index.d.ts.map +1 -0
  347. package/dist/esm/Lifecycle/ReopenIssue/index.js +2 -0
  348. package/dist/esm/Lifecycle/ReopenIssue/index.js.map +1 -0
  349. package/dist/esm/Lifecycle/WithdrawIssue/WithdrawIssue.d.ts +21 -0
  350. package/dist/esm/Lifecycle/WithdrawIssue/WithdrawIssue.d.ts.map +1 -0
  351. package/dist/esm/Lifecycle/WithdrawIssue/WithdrawIssue.js +42 -0
  352. package/dist/esm/Lifecycle/WithdrawIssue/WithdrawIssue.js.map +1 -0
  353. package/dist/esm/Lifecycle/WithdrawIssue/index.d.ts +2 -0
  354. package/dist/esm/Lifecycle/WithdrawIssue/index.d.ts.map +1 -0
  355. package/dist/esm/Lifecycle/WithdrawIssue/index.js +2 -0
  356. package/dist/esm/Lifecycle/WithdrawIssue/index.js.map +1 -0
  357. package/dist/esm/Listing/Listing.d.ts +99 -0
  358. package/dist/esm/Listing/Listing.d.ts.map +1 -0
  359. package/dist/esm/Listing/Listing.js +278 -0
  360. package/dist/esm/Listing/Listing.js.map +1 -0
  361. package/dist/esm/Listing/index.d.ts +2 -0
  362. package/dist/esm/Listing/index.d.ts.map +1 -0
  363. package/dist/esm/Listing/index.js +2 -0
  364. package/dist/esm/Listing/index.js.map +1 -0
  365. package/dist/esm/Reporting/ReportError/ReportError.d.ts +58 -0
  366. package/dist/esm/Reporting/ReportError/ReportError.d.ts.map +1 -0
  367. package/dist/esm/Reporting/ReportError/ReportError.js +164 -0
  368. package/dist/esm/Reporting/ReportError/ReportError.js.map +1 -0
  369. package/dist/esm/Reporting/ReportError/index.d.ts +2 -0
  370. package/dist/esm/Reporting/ReportError/index.d.ts.map +1 -0
  371. package/dist/esm/Reporting/ReportError/index.js +2 -0
  372. package/dist/esm/Reporting/ReportError/index.js.map +1 -0
  373. package/dist/esm/Reporting/ReportIssue/ReportIssue.d.ts +51 -0
  374. package/dist/esm/Reporting/ReportIssue/ReportIssue.d.ts.map +1 -0
  375. package/dist/esm/Reporting/ReportIssue/ReportIssue.js +141 -0
  376. package/dist/esm/Reporting/ReportIssue/ReportIssue.js.map +1 -0
  377. package/dist/esm/Reporting/ReportIssue/index.d.ts +2 -0
  378. package/dist/esm/Reporting/ReportIssue/index.d.ts.map +1 -0
  379. package/dist/esm/Reporting/ReportIssue/index.js +2 -0
  380. package/dist/esm/Reporting/ReportIssue/index.js.map +1 -0
  381. package/dist/esm/Viewing/AccessState.d.ts +8 -0
  382. package/dist/esm/Viewing/AccessState.d.ts.map +1 -0
  383. package/dist/esm/Viewing/AccessState.js +17 -0
  384. package/dist/esm/Viewing/AccessState.js.map +1 -0
  385. package/dist/esm/Viewing/ConversationAuthorKind.d.ts +7 -0
  386. package/dist/esm/Viewing/ConversationAuthorKind.d.ts.map +1 -0
  387. package/dist/esm/Viewing/ConversationAuthorKind.js +16 -0
  388. package/dist/esm/Viewing/ConversationAuthorKind.js.map +1 -0
  389. package/dist/esm/Viewing/ConversationEntryKind.d.ts +28 -0
  390. package/dist/esm/Viewing/ConversationEntryKind.d.ts.map +1 -0
  391. package/dist/esm/Viewing/ConversationEntryKind.js +37 -0
  392. package/dist/esm/Viewing/ConversationEntryKind.js.map +1 -0
  393. package/dist/esm/Viewing/Viewing.d.ts +145 -0
  394. package/dist/esm/Viewing/Viewing.d.ts.map +1 -0
  395. package/dist/esm/Viewing/Viewing.js +484 -0
  396. package/dist/esm/Viewing/Viewing.js.map +1 -0
  397. package/dist/esm/Viewing/index.d.ts +5 -0
  398. package/dist/esm/Viewing/index.d.ts.map +1 -0
  399. package/dist/esm/Viewing/index.js +5 -0
  400. package/dist/esm/Viewing/index.js.map +1 -0
  401. package/dist/esm/index.d.ts +19 -0
  402. package/dist/esm/index.d.ts.map +1 -0
  403. package/dist/esm/index.js +29 -0
  404. package/dist/esm/index.js.map +1 -0
  405. package/dist/esm/package.json +3 -0
  406. package/index.ts +21 -0
  407. package/package.json +71 -0
@@ -0,0 +1,271 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ // **DO NOT EDIT** - This file is an automatically generated file.
5
+ // @generated by Cratis. Source: Cratis.Showrunner.Usher.Listing.ReportedIssue, Cratis.Showrunner.Usher.Listing.ReportedIssue. Time: 2026-10-26T20:48:58.8871950Z. Hash: E94FF103309F27881C5673E44ECED7CEB12718F227E91804FAB86F9B879A7C86
6
+ import { ChangeSet, ObservableQueryFor, Paging, QueryResultWithState, Sorting, SortingActions, SortingActionsForObservableQuery } from '@cratis/arc/queries';
7
+ import { ObservableQueryWhen, SetPage, SetPageSize, SetSorting, useChangeStream, useObservableQuery, useObservableQueryWithPaging, useSuspenseObservableQuery, useSuspenseObservableQueryWithPaging } from '@cratis/arc.react/queries';
8
+ import { SliceLocation as ArcSliceLocation, ParameterDescriptor } from '@cratis/arc/reflection';
9
+ import { Guid, field } from '@cratis/fundamentals';
10
+ import { IssueKind } from '../Issues/IssueKind';
11
+ import { IssueState } from '../Issues/IssueState';
12
+ import { UserIdentity } from '../Identity/UserIdentity';
13
+ import { WorkItem } from '../Contracts/WorkItems/WorkItem';
14
+
15
+ class MyIssuesSortBy {
16
+ private _fixedInVersion: SortingActionsForObservableQuery<ReportedIssue[]>;
17
+ private _id: SortingActionsForObservableQuery<ReportedIssue[]>;
18
+ private _kind: SortingActionsForObservableQuery<ReportedIssue[]>;
19
+ private _knownIssueTitle: SortingActionsForObservableQuery<ReportedIssue[]>;
20
+ private _lastActivityAt: SortingActionsForObservableQuery<ReportedIssue[]>;
21
+ private _openQuestions: SortingActionsForObservableQuery<ReportedIssue[]>;
22
+ private _reportedAt: SortingActionsForObservableQuery<ReportedIssue[]>;
23
+ private _reportedBy: SortingActionsForObservableQuery<ReportedIssue[]>;
24
+ private _state: SortingActionsForObservableQuery<ReportedIssue[]>;
25
+ private _title: SortingActionsForObservableQuery<ReportedIssue[]>;
26
+ private _waitingOnReporter: SortingActionsForObservableQuery<ReportedIssue[]>;
27
+ private _workItem: SortingActionsForObservableQuery<ReportedIssue[]>;
28
+
29
+ constructor(readonly query: MyIssues) {
30
+ this._fixedInVersion = new SortingActionsForObservableQuery<ReportedIssue[]>('fixedInVersion', query);
31
+ this._id = new SortingActionsForObservableQuery<ReportedIssue[]>('id', query);
32
+ this._kind = new SortingActionsForObservableQuery<ReportedIssue[]>('kind', query);
33
+ this._knownIssueTitle = new SortingActionsForObservableQuery<ReportedIssue[]>('knownIssueTitle', query);
34
+ this._lastActivityAt = new SortingActionsForObservableQuery<ReportedIssue[]>('lastActivityAt', query);
35
+ this._openQuestions = new SortingActionsForObservableQuery<ReportedIssue[]>('openQuestions', query);
36
+ this._reportedAt = new SortingActionsForObservableQuery<ReportedIssue[]>('reportedAt', query);
37
+ this._reportedBy = new SortingActionsForObservableQuery<ReportedIssue[]>('reportedBy', query);
38
+ this._state = new SortingActionsForObservableQuery<ReportedIssue[]>('state', query);
39
+ this._title = new SortingActionsForObservableQuery<ReportedIssue[]>('title', query);
40
+ this._waitingOnReporter = new SortingActionsForObservableQuery<ReportedIssue[]>('waitingOnReporter', query);
41
+ this._workItem = new SortingActionsForObservableQuery<ReportedIssue[]>('workItem', query);
42
+ }
43
+
44
+ get fixedInVersion(): SortingActionsForObservableQuery<ReportedIssue[]> {
45
+ return this._fixedInVersion;
46
+ }
47
+ get id(): SortingActionsForObservableQuery<ReportedIssue[]> {
48
+ return this._id;
49
+ }
50
+ get kind(): SortingActionsForObservableQuery<ReportedIssue[]> {
51
+ return this._kind;
52
+ }
53
+ get knownIssueTitle(): SortingActionsForObservableQuery<ReportedIssue[]> {
54
+ return this._knownIssueTitle;
55
+ }
56
+ get lastActivityAt(): SortingActionsForObservableQuery<ReportedIssue[]> {
57
+ return this._lastActivityAt;
58
+ }
59
+ get openQuestions(): SortingActionsForObservableQuery<ReportedIssue[]> {
60
+ return this._openQuestions;
61
+ }
62
+ get reportedAt(): SortingActionsForObservableQuery<ReportedIssue[]> {
63
+ return this._reportedAt;
64
+ }
65
+ get reportedBy(): SortingActionsForObservableQuery<ReportedIssue[]> {
66
+ return this._reportedBy;
67
+ }
68
+ get state(): SortingActionsForObservableQuery<ReportedIssue[]> {
69
+ return this._state;
70
+ }
71
+ get title(): SortingActionsForObservableQuery<ReportedIssue[]> {
72
+ return this._title;
73
+ }
74
+ get waitingOnReporter(): SortingActionsForObservableQuery<ReportedIssue[]> {
75
+ return this._waitingOnReporter;
76
+ }
77
+ get workItem(): SortingActionsForObservableQuery<ReportedIssue[]> {
78
+ return this._workItem;
79
+ }
80
+ }
81
+
82
+ class MyIssuesSortByWithoutQuery {
83
+ private _fixedInVersion: SortingActions = new SortingActions('fixedInVersion');
84
+ private _id: SortingActions = new SortingActions('id');
85
+ private _kind: SortingActions = new SortingActions('kind');
86
+ private _knownIssueTitle: SortingActions = new SortingActions('knownIssueTitle');
87
+ private _lastActivityAt: SortingActions = new SortingActions('lastActivityAt');
88
+ private _openQuestions: SortingActions = new SortingActions('openQuestions');
89
+ private _reportedAt: SortingActions = new SortingActions('reportedAt');
90
+ private _reportedBy: SortingActions = new SortingActions('reportedBy');
91
+ private _state: SortingActions = new SortingActions('state');
92
+ private _title: SortingActions = new SortingActions('title');
93
+ private _waitingOnReporter: SortingActions = new SortingActions('waitingOnReporter');
94
+ private _workItem: SortingActions = new SortingActions('workItem');
95
+
96
+ get fixedInVersion(): SortingActions {
97
+ return this._fixedInVersion;
98
+ }
99
+ get id(): SortingActions {
100
+ return this._id;
101
+ }
102
+ get kind(): SortingActions {
103
+ return this._kind;
104
+ }
105
+ get knownIssueTitle(): SortingActions {
106
+ return this._knownIssueTitle;
107
+ }
108
+ get lastActivityAt(): SortingActions {
109
+ return this._lastActivityAt;
110
+ }
111
+ get openQuestions(): SortingActions {
112
+ return this._openQuestions;
113
+ }
114
+ get reportedAt(): SortingActions {
115
+ return this._reportedAt;
116
+ }
117
+ get reportedBy(): SortingActions {
118
+ return this._reportedBy;
119
+ }
120
+ get state(): SortingActions {
121
+ return this._state;
122
+ }
123
+ get title(): SortingActions {
124
+ return this._title;
125
+ }
126
+ get waitingOnReporter(): SortingActions {
127
+ return this._waitingOnReporter;
128
+ }
129
+ get workItem(): SortingActions {
130
+ return this._workItem;
131
+ }
132
+ }
133
+
134
+
135
+ /**
136
+ * Observes the issues the signed-in reporter reported, in the current tenant, most recent activity first.
137
+ */
138
+ export class MyIssues extends ObservableQueryFor<ReportedIssue[]> {
139
+ static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', '', 'Listing');
140
+ readonly route: string = '/api/listing/my-issues';
141
+ readonly queryName: string = 'Cratis.Showrunner.Usher.Listing.ReportedIssue.MyIssues';
142
+ readonly treatWarningsAsErrors: boolean = false;
143
+ readonly roles: string[] = [];
144
+ readonly defaultValue: ReportedIssue[] = [];
145
+ private readonly _sortBy: MyIssuesSortBy;
146
+ private static readonly _sortBy: MyIssuesSortByWithoutQuery = new MyIssuesSortByWithoutQuery();
147
+
148
+ constructor() {
149
+ super(ReportedIssue, true);
150
+ this._sortBy = new MyIssuesSortBy(this);
151
+ }
152
+
153
+ get requiredRequestParameters(): string[] {
154
+ return [
155
+ ];
156
+ }
157
+
158
+ readonly parameterDescriptors: ParameterDescriptor[] = [
159
+ ];
160
+
161
+
162
+ get sortBy(): MyIssuesSortBy {
163
+ return this._sortBy;
164
+ }
165
+
166
+ static get sortBy(): MyIssuesSortByWithoutQuery {
167
+ return this._sortBy;
168
+ }
169
+
170
+ static use(sorting?: Sorting): [QueryResultWithState<ReportedIssue[]>, SetSorting] {
171
+ return useObservableQuery<ReportedIssue[], MyIssues>(MyIssues, undefined, sorting);
172
+ }
173
+
174
+ static useWithPaging(pageSize: number, sorting?: Sorting): [QueryResultWithState<ReportedIssue[]>, SetSorting, SetPage, SetPageSize] {
175
+ return useObservableQueryWithPaging<ReportedIssue[], MyIssues>(MyIssues, new Paging(0, pageSize), undefined, sorting);
176
+ }
177
+
178
+ static useSuspense(sorting?: Sorting): [QueryResultWithState<ReportedIssue[]>, SetSorting] {
179
+ return useSuspenseObservableQuery<ReportedIssue[], MyIssues>(MyIssues, undefined, sorting);
180
+ }
181
+
182
+ static useSuspenseWithPaging(pageSize: number, sorting?: Sorting): [QueryResultWithState<ReportedIssue[]>, SetSorting, SetPage, SetPageSize] {
183
+ return useSuspenseObservableQueryWithPaging<ReportedIssue[], MyIssues>(MyIssues, new Paging(0, pageSize), undefined, sorting);
184
+ }
185
+
186
+ static useChangeStream(getKey?: (item: ReportedIssue) => unknown, sorting?: Sorting): ChangeSet<ReportedIssue> {
187
+ return useChangeStream<ReportedIssue, MyIssues>(MyIssues, undefined, getKey, sorting);
188
+ }
189
+
190
+ static when(condition: boolean): ObservableQueryWhen<MyIssues, ReportedIssue[]> {
191
+ return new ObservableQueryWhen<MyIssues, ReportedIssue[]>(MyIssues, condition);
192
+ }
193
+ }
194
+
195
+ /**
196
+ * One of the reporter's issues, as the list of their issues shows it.
197
+ */
198
+ export class ReportedIssue {
199
+
200
+ /**
201
+ * The issue.
202
+ */
203
+ @field(Guid)
204
+ id!: Guid;
205
+
206
+ /**
207
+ * How the issue was reported.
208
+ */
209
+ @field(Number)
210
+ kind!: IssueKind;
211
+
212
+ /**
213
+ * The summary of a problem described by hand, or the message of a reported error.
214
+ */
215
+ @field(String)
216
+ title!: string;
217
+
218
+ /**
219
+ * The state the issue is in.
220
+ */
221
+ @field(Number)
222
+ state!: IssueState;
223
+
224
+ /**
225
+ * When the issue was reported.
226
+ */
227
+ @field(Date)
228
+ reportedAt!: Date;
229
+
230
+ /**
231
+ * When anything last happened on the issue.
232
+ */
233
+ @field(Date)
234
+ lastActivityAt!: Date;
235
+
236
+ /**
237
+ * Whether support asked something the reporter has not answered.
238
+ */
239
+ @field(Boolean)
240
+ waitingOnReporter!: boolean;
241
+
242
+ /**
243
+ * The title of the known issue it is linked to; {@link NotSet} when it is not.
244
+ */
245
+ @field(String)
246
+ knownIssueTitle!: string;
247
+
248
+ /**
249
+ * The work item it is linked to; {@link WorkItem} when it is not.
250
+ */
251
+ @field(WorkItem)
252
+ workItem!: WorkItem;
253
+
254
+ /**
255
+ * The version that has the fix; {@link NotSet} until a release ships it.
256
+ */
257
+ @field(String)
258
+ fixedInVersion!: string;
259
+
260
+ /**
261
+ * Who reported the issue, at their identity provider.
262
+ */
263
+ @field(UserIdentity)
264
+ reportedBy!: UserIdentity;
265
+
266
+ /**
267
+ * The questions support asked that the reporter has not answered.
268
+ */
269
+ @field(Guid, true)
270
+ openQuestions!: Guid[];
271
+ }
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ export * from './Listing';
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # Showrunner
2
+
3
+ > Showrunner is a set of ready-made product parts for applications built on [Cratis](https://www.cratis.io) — drop-in backend and frontend packages, built as Arc and Chronicle vertical slices.
4
+
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
+ [![Build](https://github.com/Cratis/Showrunner/actions/workflows/build.yml/badge.svg)](https://github.com/Cratis/Showrunner/actions/workflows/build.yml)
7
+ [![Publish](https://github.com/Cratis/Showrunner/actions/workflows/publish.yml/badge.svg)](https://github.com/Cratis/Showrunner/actions/workflows/publish.yml)
8
+ [![Discord](https://img.shields.io/discord/1182595891576717413?label=Discord&logo=discord&logoColor=white)](https://discord.gg/kt4AMpV8WV)
9
+
10
+ ## Usher
11
+
12
+ **Usher** is the support part: it lets the users of an application report issues and hold support conversations with the people running it. It is a library an application hosts, not a service of its own — the backend package adds Usher's commands, queries and events to the host's Arc application and Chronicle event store, and the frontend packages give the host's React UI the generated proxies and components to drive them.
13
+
14
+ Usher is in its earliest stage: the packages are scaffolded and published, but carry no behavior yet. See [Documentation](./Documentation/index.md).
15
+
16
+ ## Packages
17
+
18
+ | Package | Registry | What it is |
19
+ | --- | --- | --- |
20
+ | `Cratis.Showrunner.Usher.Contracts` | NuGet | Usher's event contracts, for hosts that react to what Usher records |
21
+ | `Cratis.Showrunner.Usher` | NuGet | Usher's backend — Arc commands and queries over Chronicle |
22
+ | `@cratis/showrunner.usher` | npm | The generated TypeScript proxies for Usher's commands and queries; no UI framework dependency |
23
+ | `@cratis/showrunner.usher.react` | npm | React components for Usher, built on `@cratis/arc.react` and `@cratis/components` |
24
+
25
+ ## Building
26
+
27
+ Prerequisites: the .NET SDK from [`global.json`](./global.json) (10.0.400 or later) and Node.js 20 or later with Corepack enabled (`corepack enable`); Yarn itself is checked in under `.yarn/releases`.
28
+
29
+ ```shell
30
+ # Backend: Debug builds compile the inline specs and regenerate the TypeScript proxies
31
+ dotnet build Showrunner.slnx --configuration Debug
32
+ dotnet test Showrunner.slnx --configuration Debug --no-build
33
+
34
+ # Release is warnings-as-errors; clearing CratisProxiesOutputPath skips proxy generation
35
+ dotnet build Showrunner.slnx --configuration Release -p:CratisProxiesOutputPath=
36
+
37
+ # Frontend
38
+ yarn install
39
+ yarn lint:ci
40
+ yarn compile
41
+ yarn test
42
+ yarn build
43
+ ```
44
+
45
+ Specifications live beside the code they specify — `for_*/when_*/` folders compiled into Debug builds only for .NET, and Vitest specs in the same layout for TypeScript.
46
+
47
+ The end-to-end specifications in [`Integration`](./Integration) run Usher and a desk against a real Chronicle kernel in a container, so `dotnet test Showrunner.slnx` needs Docker. Set `USHER_CHRONICLE_IMAGE` to run them against another kernel image, and `USHER_INTEGRATION_LOG` to a file path to keep the application's log.
48
+
49
+ ## Releasing
50
+
51
+ Every pull request carries exactly one of the `major`, `minor`, `patch` or `no-release` labels. Merging a version-labelled pull request to `main` releases all four packages under one semantic version through [`cratis/release-action`](https://github.com/Cratis/release-action) — NuGet packages through NuGet trusted publishing and npm packages through npm trusted publishing with provenance. The packages are built and packed in jobs without publishing rights; separate jobs that run no build or install script hold the short-lived OIDC token and only push what was packed.
52
+
53
+ ## Part of the Cratis ecosystem
54
+
55
+ Showrunner is a [Cratis](https://www.cratis.io) project, built on event sourcing with [Chronicle](https://github.com/Cratis/Chronicle) and CQRS with [Arc](https://github.com/Cratis/Arc), with frontends on [`@cratis/components`](https://github.com/Cratis/Components). Join the community on [Discord](https://discord.gg/kt4AMpV8WV).
56
+
57
+ ## License
58
+
59
+ Showrunner is licensed under the [MIT License](LICENSE) and free to use.
@@ -0,0 +1,254 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ // **DO NOT EDIT** - This file is an automatically generated file.
5
+ // @generated by Cratis. Source: Cratis.Showrunner.Usher.Reporting.ReportError.ReportError. Time: 2026-10-26T21:13:51.1172240Z. Hash: DA734075048BC8A92F219C6B3D979A212428CC1933A9599F3B8E52AE6981D25D
6
+ import { Command, CommandValidator } from '@cratis/arc/commands';
7
+ import { ClearCommandValues, SetCommandValues, useCommand } from '@cratis/arc.react/commands';
8
+ import { SliceLocation as ArcSliceLocation, PropertyDescriptor } from '@cratis/arc/reflection';
9
+ import { AccessDuration } from '../../Access/AccessDuration';
10
+ import { SliceLocation } from '../../Contracts/Reporting/SliceLocation';
11
+ import { StackFrame } from '../../Contracts/Reporting/StackFrame';
12
+ import { Guid } from '@cratis/fundamentals';
13
+
14
+ /**
15
+ * The reporter reports an error they hit, optionally saying what they were doing. They can let support know who they are and let support sign in as them for a while; granting access always shares who they are.
16
+ */
17
+ export interface IReportError {
18
+
19
+ /**
20
+ * How long support may sign in as the reporter, when access is granted.
21
+ */
22
+ accessDuration?: AccessDuration;
23
+
24
+ /**
25
+ * The version of the application the reporter runs.
26
+ */
27
+ applicationVersion?: string;
28
+
29
+ /**
30
+ * The correlation ids of the failing command or query and those run just before it; may be empty.
31
+ */
32
+ correlationIds?: Guid[];
33
+
34
+ /**
35
+ * What the reporter was doing; empty when they wrote nothing.
36
+ */
37
+ details?: string;
38
+
39
+ /**
40
+ * The message of the error.
41
+ */
42
+ errorMessage?: string;
43
+
44
+ /**
45
+ * The type of the error.
46
+ */
47
+ errorType?: string;
48
+
49
+ /**
50
+ * Whether to let support sign in as the reporter.
51
+ */
52
+ grantAccess?: boolean;
53
+
54
+ /**
55
+ * The id of the new issue, chosen by the caller so a retried report does not open a second issue.
56
+ */
57
+ issueId?: Guid;
58
+
59
+ /**
60
+ * Where in the application the error happened.
61
+ */
62
+ location?: SliceLocation;
63
+
64
+ /**
65
+ * Whether to let support know who the reporter is.
66
+ */
67
+ shareIdentity?: boolean;
68
+
69
+ /**
70
+ * The stack trace of the error, top frame first; empty when there is none.
71
+ */
72
+ stackFrames?: StackFrame[];
73
+ }
74
+
75
+ export class ReportErrorValidator extends CommandValidator<IReportError> {
76
+ constructor() {
77
+ super();
78
+ this.ruleFor(c => c.details).maxLength(4000).withMessage('Keep what you were doing within 4000 characters.');
79
+ this.ruleFor(c => c.errorMessage).notEmpty().withMessage('The error to report has no message.');
80
+ this.ruleFor(c => c.errorMessage).maxLength(2000).withMessage('The error message can be at most 2000 characters.');
81
+ this.ruleFor(c => c.errorType).maxLength(500).withMessage('The error type can be at most 500 characters.');
82
+ }
83
+ }
84
+
85
+ /**
86
+ * The reporter reports an error they hit, optionally saying what they were doing. They can let support know who they are and let support sign in as them for a while; granting access always shares who they are.
87
+ */
88
+ export class ReportError extends Command<IReportError> implements IReportError {
89
+ static readonly sliceLocation: ArcSliceLocation = new ArcSliceLocation('', 'Reporting', 'ReportError');
90
+ readonly route: string = '/api/reporting/report-error';
91
+ readonly validation: CommandValidator = new ReportErrorValidator();
92
+ readonly treatWarningsAsErrors: boolean = false;
93
+ readonly roles: string[] = [];
94
+ readonly propertyDescriptors: PropertyDescriptor[] = [
95
+ new PropertyDescriptor('accessDuration', Number, false),
96
+ new PropertyDescriptor('applicationVersion', String, false),
97
+ new PropertyDescriptor('correlationIds', Guid, false),
98
+ new PropertyDescriptor('details', String, false),
99
+ new PropertyDescriptor('errorMessage', String, false),
100
+ new PropertyDescriptor('errorType', String, false),
101
+ new PropertyDescriptor('grantAccess', Boolean, false),
102
+ new PropertyDescriptor('issueId', Guid, false),
103
+ new PropertyDescriptor('location', SliceLocation, false),
104
+ new PropertyDescriptor('shareIdentity', Boolean, false),
105
+ new PropertyDescriptor('stackFrames', StackFrame, false),
106
+ ];
107
+
108
+ #accessDuration!: AccessDuration;
109
+ #applicationVersion!: string;
110
+ #correlationIds!: Guid[];
111
+ #details!: string;
112
+ #errorMessage!: string;
113
+ #errorType!: string;
114
+ #grantAccess!: boolean;
115
+ #issueId!: Guid;
116
+ #location!: SliceLocation;
117
+ #shareIdentity!: boolean;
118
+ #stackFrames!: StackFrame[];
119
+
120
+ constructor() {
121
+ super(Object, false);
122
+ }
123
+
124
+ get requestParameters(): string[] {
125
+ return [
126
+ ];
127
+ }
128
+
129
+ /**
130
+ * How long support may sign in as the reporter, when access is granted.
131
+ */
132
+ get accessDuration(): AccessDuration {
133
+ return this.#accessDuration;
134
+ }
135
+
136
+ set accessDuration(value: AccessDuration) {
137
+ this.#accessDuration = value;
138
+ this.propertyChanged('accessDuration');
139
+ }
140
+ /**
141
+ * The version of the application the reporter runs.
142
+ */
143
+ get applicationVersion(): string {
144
+ return this.#applicationVersion;
145
+ }
146
+
147
+ set applicationVersion(value: string) {
148
+ this.#applicationVersion = value;
149
+ this.propertyChanged('applicationVersion');
150
+ }
151
+ /**
152
+ * The correlation ids of the failing command or query and those run just before it; may be empty.
153
+ */
154
+ get correlationIds(): Guid[] {
155
+ return this.#correlationIds;
156
+ }
157
+
158
+ set correlationIds(value: Guid[]) {
159
+ this.#correlationIds = value;
160
+ this.propertyChanged('correlationIds');
161
+ }
162
+ /**
163
+ * What the reporter was doing; empty when they wrote nothing.
164
+ */
165
+ get details(): string {
166
+ return this.#details;
167
+ }
168
+
169
+ set details(value: string) {
170
+ this.#details = value;
171
+ this.propertyChanged('details');
172
+ }
173
+ /**
174
+ * The message of the error.
175
+ */
176
+ get errorMessage(): string {
177
+ return this.#errorMessage;
178
+ }
179
+
180
+ set errorMessage(value: string) {
181
+ this.#errorMessage = value;
182
+ this.propertyChanged('errorMessage');
183
+ }
184
+ /**
185
+ * The type of the error.
186
+ */
187
+ get errorType(): string {
188
+ return this.#errorType;
189
+ }
190
+
191
+ set errorType(value: string) {
192
+ this.#errorType = value;
193
+ this.propertyChanged('errorType');
194
+ }
195
+ /**
196
+ * Whether to let support sign in as the reporter.
197
+ */
198
+ get grantAccess(): boolean {
199
+ return this.#grantAccess;
200
+ }
201
+
202
+ set grantAccess(value: boolean) {
203
+ this.#grantAccess = value;
204
+ this.propertyChanged('grantAccess');
205
+ }
206
+ /**
207
+ * The id of the new issue, chosen by the caller so a retried report does not open a second issue.
208
+ */
209
+ get issueId(): Guid {
210
+ return this.#issueId;
211
+ }
212
+
213
+ set issueId(value: Guid) {
214
+ this.#issueId = value;
215
+ this.propertyChanged('issueId');
216
+ }
217
+ /**
218
+ * Where in the application the error happened.
219
+ */
220
+ get location(): SliceLocation {
221
+ return this.#location;
222
+ }
223
+
224
+ set location(value: SliceLocation) {
225
+ this.#location = value;
226
+ this.propertyChanged('location');
227
+ }
228
+ /**
229
+ * Whether to let support know who the reporter is.
230
+ */
231
+ get shareIdentity(): boolean {
232
+ return this.#shareIdentity;
233
+ }
234
+
235
+ set shareIdentity(value: boolean) {
236
+ this.#shareIdentity = value;
237
+ this.propertyChanged('shareIdentity');
238
+ }
239
+ /**
240
+ * The stack trace of the error, top frame first; empty when there is none.
241
+ */
242
+ get stackFrames(): StackFrame[] {
243
+ return this.#stackFrames;
244
+ }
245
+
246
+ set stackFrames(value: StackFrame[]) {
247
+ this.#stackFrames = value;
248
+ this.propertyChanged('stackFrames');
249
+ }
250
+
251
+ static use(initialValues?: IReportError): [ReportError, SetCommandValues<IReportError>, ClearCommandValues] {
252
+ return useCommand<ReportError, IReportError>(ReportError, initialValues);
253
+ }
254
+ }
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ export * from './ReportError';