@openrails/contentkit-ui 0.71.0 → 0.72.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 (120) hide show
  1. package/README.md +98 -10
  2. package/dist/client/content/bans.d.ts +2 -0
  3. package/dist/client/content/bans.js +24 -12
  4. package/dist/client/content/bans.js.map +1 -1
  5. package/dist/client/content/comments.d.ts +2 -0
  6. package/dist/client/content/comments.js.map +1 -1
  7. package/dist/client/content/polls.d.ts +9 -2
  8. package/dist/client/content/polls.js.map +1 -1
  9. package/dist/client/generated/routes.d.ts +28 -2
  10. package/dist/client/generated/routes.js +40 -0
  11. package/dist/client/generated/routes.js.map +1 -1
  12. package/dist/client/generated/wire.d.ts +4 -0
  13. package/dist/client/generated/wire.js.map +1 -1
  14. package/dist/client/index.d.ts +2 -2
  15. package/dist/client/taxonomy.d.ts +5 -1
  16. package/dist/client/taxonomy.js +7 -0
  17. package/dist/client/taxonomy.js.map +1 -1
  18. package/dist/components/admin/poll-manager.d.ts +28 -0
  19. package/dist/components/admin/poll-manager.js +297 -0
  20. package/dist/components/admin/poll-manager.js.map +1 -0
  21. package/dist/components/admin/post-manager.d.ts +45 -0
  22. package/dist/components/admin/post-manager.js +602 -0
  23. package/dist/components/admin/post-manager.js.map +1 -0
  24. package/dist/components/admin/shell.d.ts +73 -0
  25. package/dist/components/admin/shell.js +148 -0
  26. package/dist/components/admin/shell.js.map +1 -0
  27. package/dist/components/admin/taxonomy-manager.d.ts +54 -0
  28. package/dist/components/admin/taxonomy-manager.js +976 -0
  29. package/dist/components/admin/taxonomy-manager.js.map +1 -0
  30. package/dist/components/admin/user-comment-standing.d.ts +25 -0
  31. package/dist/components/admin/user-comment-standing.js +229 -0
  32. package/dist/components/admin/user-comment-standing.js.map +1 -0
  33. package/dist/components/social/bans.d.ts +5 -2
  34. package/dist/components/social/bans.js +132 -134
  35. package/dist/components/social/bans.js.map +1 -1
  36. package/dist/components/social/index.d.ts +1 -1
  37. package/dist/components/social/moderation.d.ts +11 -13
  38. package/dist/components/social/moderation.js +299 -218
  39. package/dist/components/social/moderation.js.map +1 -1
  40. package/dist/components/social/parts.d.ts +3 -2
  41. package/dist/components/social/parts.js +74 -48
  42. package/dist/components/social/parts.js.map +1 -1
  43. package/dist/components/social/poll-editor.js +1 -0
  44. package/dist/components/social/poll-editor.js.map +1 -1
  45. package/dist/editor/index.d.ts +1 -0
  46. package/dist/editor/rich-text-editor.d.ts +13 -0
  47. package/dist/editor/rich-text-editor.js +228 -0
  48. package/dist/editor/rich-text-editor.js.map +1 -0
  49. package/dist/editor.js +2 -0
  50. package/dist/index.d.ts +6 -0
  51. package/dist/index.js +13 -8
  52. package/dist/locales/admin/de.d.ts +2 -0
  53. package/dist/locales/admin/de.js +176 -0
  54. package/dist/locales/admin/de.js.map +1 -0
  55. package/dist/locales/admin/en.d.ts +171 -0
  56. package/dist/locales/admin/en.js +176 -0
  57. package/dist/locales/admin/en.js.map +1 -0
  58. package/dist/locales/admin/es.d.ts +2 -0
  59. package/dist/locales/admin/es.js +176 -0
  60. package/dist/locales/admin/es.js.map +1 -0
  61. package/dist/locales/admin/ja.d.ts +2 -0
  62. package/dist/locales/admin/ja.js +176 -0
  63. package/dist/locales/admin/ja.js.map +1 -0
  64. package/dist/locales/admin/ko.d.ts +2 -0
  65. package/dist/locales/admin/ko.js +176 -0
  66. package/dist/locales/admin/ko.js.map +1 -0
  67. package/dist/locales/admin/zh.d.ts +2 -0
  68. package/dist/locales/admin/zh.js +176 -0
  69. package/dist/locales/admin/zh.js.map +1 -0
  70. package/dist/locales/de.js +5 -3
  71. package/dist/locales/de.js.map +1 -1
  72. package/dist/locales/en.d.ts +176 -0
  73. package/dist/locales/en.js +5 -3
  74. package/dist/locales/en.js.map +1 -1
  75. package/dist/locales/es.js +5 -3
  76. package/dist/locales/es.js.map +1 -1
  77. package/dist/locales/ja.js +5 -3
  78. package/dist/locales/ja.js.map +1 -1
  79. package/dist/locales/ko.js +5 -3
  80. package/dist/locales/ko.js.map +1 -1
  81. package/dist/locales/social/de.js +8 -1
  82. package/dist/locales/social/de.js.map +1 -1
  83. package/dist/locales/social/en.d.ts +7 -0
  84. package/dist/locales/social/en.js +8 -1
  85. package/dist/locales/social/en.js.map +1 -1
  86. package/dist/locales/social/es.js +8 -1
  87. package/dist/locales/social/es.js.map +1 -1
  88. package/dist/locales/social/ja.js +8 -1
  89. package/dist/locales/social/ja.js.map +1 -1
  90. package/dist/locales/social/ko.js +8 -1
  91. package/dist/locales/social/ko.js.map +1 -1
  92. package/dist/locales/social/zh.js +8 -1
  93. package/dist/locales/social/zh.js.map +1 -1
  94. package/dist/locales/zh.js +5 -3
  95. package/dist/locales/zh.js.map +1 -1
  96. package/dist/provider.d.ts +2 -0
  97. package/dist/provider.js +23 -19
  98. package/dist/provider.js.map +1 -1
  99. package/dist/react/admin.d.ts +55 -0
  100. package/dist/react/admin.js +97 -0
  101. package/dist/react/admin.js.map +1 -0
  102. package/dist/react/comments.d.ts +18 -2
  103. package/dist/react/comments.js +24 -8
  104. package/dist/react/comments.js.map +1 -1
  105. package/dist/react/context.d.ts +7 -1
  106. package/dist/react/context.js +6 -1
  107. package/dist/react/context.js.map +1 -1
  108. package/dist/react/index.d.ts +4 -3
  109. package/dist/react/polls.js +88 -87
  110. package/dist/react/polls.js.map +1 -1
  111. package/dist/react/posts.js +123 -122
  112. package/dist/react/posts.js.map +1 -1
  113. package/dist/react/resources.js +3 -0
  114. package/dist/react/resources.js.map +1 -1
  115. package/dist/react/use-resource.d.ts +16 -0
  116. package/dist/react/use-resource.js +20 -1
  117. package/dist/react/use-resource.js.map +1 -1
  118. package/dist/react.js +21 -20
  119. package/dist/styles.css +1 -1
  120. package/package.json +37 -2
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","names":[],"sources":["../../../src/client/generated/routes.ts"],"sourcesContent":["// Generated by `go generate ./internal/contract` from ContentKit's route catalog. Do not edit.\n\nexport type ContentKitModule = \"content\" | \"upload\" | \"media\" | \"codes\" | \"taxonomy\";\n\n// Each module's sub-path under the one mount (contentkit.Runtime.Handler).\nexport const CONTENTKIT_MODULES: Readonly<Record<ContentKitModule, string>> = {\n content: \"\",\n upload: \"/media/upload\",\n media: \"/media\",\n codes: \"/codes\",\n taxonomy: \"/taxonomy\",\n};\n\nexport type ContentKitRoute = {\n method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n module: ContentKitModule;\n // The path from the module's mount: CONTENTKIT_MODULES[module] + path under the one mount.\n path: string;\n // open: never authenticates; public: the actor is optional; user: a signed-in person;\n // staff: a person or an application holding the host permission.\n auth: \"open\" | \"public\" | \"user\" | \"staff\";\n // A staff route's permission: root:<resource>:<action>.\n permission: string | null;\n query: readonly string[];\n // wire.ts type names (or a content type): the JSON body, and each success by status.\n request: string | null;\n responses: Readonly<Record<number, string | null>>;\n // The route's own codes, and the shared sets (CONTENTKIT_ERROR_SETS) it also answers.\n errors: readonly string[];\n errorSets: readonly string[];\n};\n\nexport const CONTENTKIT_ROUTES = [\n { method: \"GET\", module: \"content\", path: \"/config\", auth: \"open\", permission: null, query: [], request: null, responses: { 200: \"Config\" }, errors: [], errorSets: [\"module:content\"] },\n { method: \"GET\", module: \"content\", path: \"/posts\", auth: \"public\", permission: null, query: [\"language\", \"sort\", \"limit\", \"offset\"], request: null, responses: { 200: \"Post[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/posts/admin\", auth: \"staff\", permission: \"root:posts:write\", query: [\"language\", \"draft\", \"deleted\", \"q\", \"limit\", \"offset\"], request: null, responses: { 200: \"Post[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/posts/{id}\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"Post\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"PostInput\", responses: { 201: \"Post\", 202: \"Post\" }, errors: [\"conflict\", \"forbidden\", \"moderation_rejected\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/posts/{id}\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"PostInput\", responses: { 200: \"Post\", 202: \"Post\" }, errors: [\"conflict\", \"forbidden\", \"moderation_rejected\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/posts/{id}\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: null, responses: { 204: null }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts/{id}/restore\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: null, responses: { 200: \"Post\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/posts/{id}/cover\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"ImageInput\", responses: { 200: \"PostCover\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts/{id}/images\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"ImageInput\", responses: { 200: \"InlineImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/comments\", auth: \"public\", permission: null, query: [\"sort\", \"limit\", \"offset\"], request: null, responses: { 200: \"Comment[]\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/comments\", auth: \"public\", permission: null, query: [], request: \"CommentInput\", responses: { 201: \"Comment\", 202: \"Comment\" }, errors: [\"comment_banned\", \"comment_too_long\", \"forbidden\", \"moderation_rejected\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/latest\", auth: \"public\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"FeedItem[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/admin\", auth: \"staff\", permission: \"root:comments:moderate\", query: [\"content_kind\", \"limit\", \"offset\"], request: null, responses: { 200: \"AdminComment[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/restore\", auth: \"staff\", permission: \"root:comments:moderate\", query: [], request: null, responses: { 200: \"Restored\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/{cid}/replies\", auth: \"public\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"Comment[]\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/comments/{cid}\", auth: \"public\", permission: null, query: [], request: \"CommentEdit\", responses: { 200: \"Comment\", 202: \"Comment\" }, errors: [\"comment_banned\", \"comment_too_long\", \"conflict\", \"forbidden\", \"moderation_rejected\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comments/{cid}\", auth: \"public\", permission: null, query: [], request: null, responses: { 204: null }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/like\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/dislike\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comments/{cid}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/like\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/dislike\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/{kind}/{id}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/favorites\", auth: \"user\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"FavoriteItem[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"user\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"user\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"forbidden\", \"invalid_request\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"invalid_request\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls\", auth: \"public\", permission: null, query: [\"language\", \"month\", \"date\", \"limit\", \"offset\"], request: null, responses: { 200: \"Poll[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls/admin\", auth: \"staff\", permission: \"root:polls:write\", query: [\"language\", \"month\", \"date\", \"limit\", \"offset\"], request: null, responses: { 200: \"Poll[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls/{id}\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"Poll\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollInput\", responses: { 201: \"Poll\" }, errors: [\"not_configured\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/polls/{id}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollUpdate\", responses: { 200: \"Poll\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/polls/{id}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: null, responses: { 204: null }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/vote\", auth: \"public\", permission: null, query: [], request: \"PollVote\", responses: { 200: \"Poll\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/answer\", auth: \"user\", permission: null, query: [], request: \"PollAnswerInput\", responses: { 200: \"Poll\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/polls/{id}/image\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"ImageInput\", responses: { 200: \"PollImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/options\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollOptionPatch\", responses: { 201: \"PollOption\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/polls/{id}/options/{oid}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollOptionPatch\", responses: { 200: \"PollOption\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/polls/{id}/options/{oid}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: null, responses: { 204: null }, errors: [\"invalid_request\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/polls/{id}/options/{oid}/image\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"ImageInput\", responses: { 200: \"PollImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comment-bans\", auth: \"user\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"CommentBan[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/comment-bans/{user}\", auth: \"user\", permission: null, query: [], request: \"BanInput\", responses: { 200: \"CommentBan\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comment-bans/{user}\", auth: \"user\", permission: null, query: [], request: null, responses: { 204: null }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/global-comment-bans\", auth: \"staff\", permission: \"root:comments:ban\", query: [\"limit\", \"offset\"], request: null, responses: { 200: \"CommentBan[]\" }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/global-comment-bans/{user}\", auth: \"staff\", permission: \"root:comments:ban\", query: [], request: \"BanInput\", responses: { 200: \"CommentBan\" }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/global-comment-bans/{user}\", auth: \"staff\", permission: \"root:comments:ban\", query: [], request: null, responses: { 204: null }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/can-comment\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"CommentStanding\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/moderation/held\", auth: \"staff\", permission: \"root:moderation:review\", query: [\"kind\", \"cursor\", \"limit\"], request: null, responses: { 200: \"HeldPage\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/moderation/{kind}/{id}/resolve\", auth: \"staff\", permission: \"root:moderation:review\", query: [], request: \"ResolveInput\", responses: { 200: \"ReviewOutcome\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/presign\", auth: \"user\", permission: null, query: [], request: \"PresignBody\", responses: { 200: \"PresignReply\" }, errors: [\"conflict\", \"forbidden\", \"not_found\", \"quota_exceeded\", \"rate_limited\", \"too_large\", \"too_many_files\", \"type_not_allowed\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/parts\", auth: \"user\", permission: null, query: [], request: \"PartsBody\", responses: { 200: \"PartsReply\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/parts/list\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 200: \"PartsReply\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/complete\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 200: \"CompleteReply\" }, errors: [\"checksum_mismatch\", \"forbidden\", \"incomplete\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/abort\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 204: null }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/commit\", auth: \"user\", permission: null, query: [], request: \"CommitBody\", responses: { 200: \"CommitReply\" }, errors: [\"conflict\", \"forbidden\", \"image_too_small\", \"not_found\", \"not_uploaded\", \"quota_exceeded\", \"rate_limited\", \"too_large\", \"too_many_files\", \"type_not_allowed\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"upload\", path: \"/frame\", auth: \"user\", permission: null, query: [\"kind\", \"id\", \"path\", \"t\", \"w\"], request: null, responses: { 200: \"image/jpeg\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"media\", path: \"/presets\", auth: \"open\", permission: null, query: [], request: null, responses: { 200: \"PresetRule[]\" }, errors: [], errorSets: [\"module:media\"] },\n { method: \"GET\", module: \"media\", path: \"/{kind}/{id}\", auth: \"public\", permission: null, query: [\"prefix\", \"offset\", \"limit\", \"download\", \"editor\"], request: null, responses: { 200: \"ReadResult\" }, errors: [], errorSets: [\"module:media\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"media\", path: \"/{kind}/{id}/hls/{path...}\", auth: \"public\", permission: null, query: [\"audio\", \"subs\"], request: null, responses: { 200: \"application/vnd.apple.mpegurl\" }, errors: [], errorSets: [\"module:media\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"codes\", path: \"/{code}\", auth: \"open\", permission: null, query: [\"lang\"], request: null, responses: { 200: \"Resolved\" }, errors: [\"gone\", \"not_found\"], errorSets: [\"module:codes\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/nodes\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"kind\", \"state\", \"id\", \"slug\", \"language\", \"language_mode\", \"name_prefix\", \"q\", \"content_kind\", \"min_count\", \"sort\", \"cursor\", \"offset\", \"limit\"], request: null, responses: { 200: \"NodePage\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"NodeInput[]\", responses: { 201: \"Node[]\" }, errors: [\"conflict\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"NodeDetail\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"NodeUpdate\", responses: { 200: \"Node\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"Node\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes/{id}/merge\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"MergeInput\", responses: { 200: \"MergeReport\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/edges\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Edge[]\", responses: { 200: \"EdgesWritten\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/edges\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Edge[]\", responses: { 200: \"EdgesWritten\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/assignments\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"suppress_counts\"], request: \"Assignment[]\", responses: { 200: \"AssignmentsWritten\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/assignments\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"suppress_counts\"], request: \"Assignment[]\", responses: { 200: \"AssignmentsWritten\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/effective\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"ContentRef[]\", responses: { 200: \"EffectiveTagsOf[]\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/counts\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"taxonomy_id\"], request: null, responses: { 200: \"Record<string, Count[]>\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/counts/rebuild\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"CountsRebuilt\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\"] },\n] as const satisfies readonly ContentKitRoute[];\n\n// The codes every route of a kind answers, by set name.\nexport const CONTENTKIT_ERROR_SETS: Readonly<Record<string, readonly string[]>> = {\n \"auth\": [\"forbidden\", \"unauthorized\", \"unavailable\"],\n \"module:codes\": [\"internal_error\"],\n \"module:content\": [\"internal_error\", \"tenant_mismatch\"],\n \"module:media\": [\"internal_error\", \"not_found\", \"rate_limited\", \"unavailable\", \"upgrade_required\"],\n \"module:taxonomy\": [\"internal_error\"],\n \"module:upload\": [\"internal_error\", \"unavailable\", \"upgrade_required\"],\n \"request\": [\"invalid_request\"],\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","names":[],"sources":["../../../src/client/generated/routes.ts"],"sourcesContent":["// Generated by `go generate ./internal/contract` from ContentKit's route catalog. Do not edit.\n\nexport type ContentKitModule = \"content\" | \"upload\" | \"media\" | \"codes\" | \"taxonomy\";\n\n// Each module's sub-path under the one mount (contentkit.Runtime.Handler).\nexport const CONTENTKIT_MODULES: Readonly<Record<ContentKitModule, string>> = {\n content: \"\",\n upload: \"/media/upload\",\n media: \"/media\",\n codes: \"/codes\",\n taxonomy: \"/taxonomy\",\n};\n\nexport type ContentKitRoute = {\n method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n module: ContentKitModule;\n // The path from the module's mount: CONTENTKIT_MODULES[module] + path under the one mount.\n path: string;\n // open: never authenticates; public: the actor is optional; user: a signed-in person;\n // staff: a person or an application holding the host permission.\n auth: \"open\" | \"public\" | \"user\" | \"staff\";\n // A staff route's permission: root:<resource>:<action>.\n permission: string | null;\n query: readonly string[];\n // wire.ts type names (or a content type): the JSON body, and each success by status.\n request: string | null;\n responses: Readonly<Record<number, string | null>>;\n // The route's own codes, and the shared sets (CONTENTKIT_ERROR_SETS) it also answers.\n errors: readonly string[];\n errorSets: readonly string[];\n};\n\nexport const CONTENTKIT_ROUTES = [\n { method: \"GET\", module: \"content\", path: \"/config\", auth: \"open\", permission: null, query: [], request: null, responses: { 200: \"Config\" }, errors: [], errorSets: [\"module:content\"] },\n { method: \"GET\", module: \"content\", path: \"/posts\", auth: \"public\", permission: null, query: [\"language\", \"sort\", \"limit\", \"offset\"], request: null, responses: { 200: \"Post[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/posts/admin\", auth: \"staff\", permission: \"root:posts:write\", query: [\"language\", \"draft\", \"deleted\", \"q\", \"limit\", \"offset\"], request: null, responses: { 200: \"Post[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/posts/{id}\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"Post\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"PostInput\", responses: { 201: \"Post\", 202: \"Post\" }, errors: [\"conflict\", \"forbidden\", \"moderation_rejected\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/posts/{id}\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"PostInput\", responses: { 200: \"Post\", 202: \"Post\" }, errors: [\"conflict\", \"forbidden\", \"moderation_rejected\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/posts/{id}\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: null, responses: { 204: null }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts/{id}/restore\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: null, responses: { 200: \"Post\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/posts/{id}/cover\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"ImageInput\", responses: { 200: \"PostCover\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/posts/{id}/images\", auth: \"staff\", permission: \"root:posts:write\", query: [], request: \"ImageInput\", responses: { 200: \"InlineImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/comments\", auth: \"public\", permission: null, query: [\"sort\", \"limit\", \"offset\"], request: null, responses: { 200: \"Comment[]\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/comments\", auth: \"public\", permission: null, query: [], request: \"CommentInput\", responses: { 201: \"Comment\", 202: \"Comment\" }, errors: [\"comment_banned\", \"comment_too_long\", \"forbidden\", \"moderation_rejected\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/latest\", auth: \"public\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"FeedItem[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/admin\", auth: \"staff\", permission: \"root:comments:moderate\", query: [\"content_kind\", \"author\", \"limit\", \"offset\"], request: null, responses: { 200: \"AdminComment[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/restore\", auth: \"staff\", permission: \"root:comments:moderate\", query: [], request: null, responses: { 200: \"Restored\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comments/{cid}/replies\", auth: \"public\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"Comment[]\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/comments/{cid}\", auth: \"public\", permission: null, query: [], request: \"CommentEdit\", responses: { 200: \"Comment\", 202: \"Comment\" }, errors: [\"comment_banned\", \"comment_too_long\", \"conflict\", \"forbidden\", \"moderation_rejected\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comments/{cid}\", auth: \"public\", permission: null, query: [], request: null, responses: { 204: null }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/like\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/comments/{cid}/dislike\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comments/{cid}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/like\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/dislike\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/{kind}/{id}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"forbidden\", \"invalid_request\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/reaction\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"ReactionCounts\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/favorites\", auth: \"user\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"FavoriteItem[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"user\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"user\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"forbidden\", \"invalid_request\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/favorite\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"FavoriteState\" }, errors: [\"invalid_request\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls\", auth: \"public\", permission: null, query: [\"language\", \"month\", \"date\", \"limit\", \"offset\"], request: null, responses: { 200: \"Poll[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls/admin\", auth: \"staff\", permission: \"root:polls:write\", query: [\"language\", \"month\", \"date\", \"state\", \"q\", \"limit\", \"offset\"], request: null, responses: { 200: \"Poll[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/polls/{id}\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"Poll\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollInput\", responses: { 201: \"Poll\" }, errors: [\"not_configured\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/polls/{id}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollUpdate\", responses: { 200: \"Poll\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/polls/{id}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: null, responses: { 204: null }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/vote\", auth: \"public\", permission: null, query: [], request: \"PollVote\", responses: { 200: \"Poll\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/answer\", auth: \"user\", permission: null, query: [], request: \"PollAnswerInput\", responses: { 200: \"Poll\" }, errors: [\"forbidden\", \"not_found\", \"rate_limited\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/polls/{id}/image\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"ImageInput\", responses: { 200: \"PollImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/polls/{id}/options\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollOptionPatch\", responses: { 201: \"PollOption\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"content\", path: \"/polls/{id}/options/{oid}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"PollOptionPatch\", responses: { 200: \"PollOption\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/polls/{id}/options/{oid}\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: null, responses: { 204: null }, errors: [\"invalid_request\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/polls/{id}/options/{oid}/image\", auth: \"staff\", permission: \"root:polls:write\", query: [], request: \"ImageInput\", responses: { 200: \"PollImage\" }, errors: [\"not_configured\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/comment-bans\", auth: \"user\", permission: null, query: [\"limit\", \"offset\"], request: null, responses: { 200: \"CommentBan[]\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/comment-bans/{user}\", auth: \"user\", permission: null, query: [], request: \"BanInput\", responses: { 200: \"CommentBan\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/comment-bans/{user}\", auth: \"user\", permission: null, query: [], request: null, responses: { 204: null }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/global-comment-bans\", auth: \"staff\", permission: \"root:comments:ban\", query: [\"limit\", \"offset\"], request: null, responses: { 200: \"CommentBan[]\" }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/global-comment-bans/{user}\", auth: \"staff\", permission: \"root:comments:ban\", query: [], request: null, responses: { 200: \"CommentBan\" }, errors: [\"not_found\", \"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"content\", path: \"/global-comment-bans/{user}\", auth: \"staff\", permission: \"root:comments:ban\", query: [], request: \"BanInput\", responses: { 200: \"CommentBan\" }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"content\", path: \"/global-comment-bans/{user}\", auth: \"staff\", permission: \"root:comments:ban\", query: [], request: null, responses: { 204: null }, errors: [\"unauthorized\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/{kind}/{id}/can-comment\", auth: \"public\", permission: null, query: [], request: null, responses: { 200: \"CommentStanding\" }, errors: [\"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"content\", path: \"/moderation/held\", auth: \"staff\", permission: \"root:moderation:review\", query: [\"kind\", \"cursor\", \"limit\"], request: null, responses: { 200: \"HeldPage\" }, errors: [], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"content\", path: \"/moderation/{kind}/{id}/resolve\", auth: \"staff\", permission: \"root:moderation:review\", query: [], request: \"ResolveInput\", responses: { 200: \"ReviewOutcome\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:content\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/presign\", auth: \"user\", permission: null, query: [], request: \"PresignBody\", responses: { 200: \"PresignReply\" }, errors: [\"conflict\", \"forbidden\", \"not_found\", \"quota_exceeded\", \"rate_limited\", \"too_large\", \"too_many_files\", \"type_not_allowed\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/parts\", auth: \"user\", permission: null, query: [], request: \"PartsBody\", responses: { 200: \"PartsReply\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/parts/list\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 200: \"PartsReply\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/complete\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 200: \"CompleteReply\" }, errors: [\"checksum_mismatch\", \"forbidden\", \"incomplete\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/abort\", auth: \"user\", permission: null, query: [], request: \"TicketBody\", responses: { 204: null }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"upload\", path: \"/commit\", auth: \"user\", permission: null, query: [], request: \"CommitBody\", responses: { 200: \"CommitReply\" }, errors: [\"conflict\", \"forbidden\", \"image_too_small\", \"not_found\", \"not_uploaded\", \"quota_exceeded\", \"rate_limited\", \"too_large\", \"too_many_files\", \"type_not_allowed\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"upload\", path: \"/frame\", auth: \"user\", permission: null, query: [\"kind\", \"id\", \"path\", \"t\", \"w\"], request: null, responses: { 200: \"image/jpeg\" }, errors: [\"forbidden\", \"not_found\"], errorSets: [\"module:upload\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"media\", path: \"/presets\", auth: \"open\", permission: null, query: [], request: null, responses: { 200: \"PresetRule[]\" }, errors: [], errorSets: [\"module:media\"] },\n { method: \"GET\", module: \"media\", path: \"/{kind}/{id}\", auth: \"public\", permission: null, query: [\"prefix\", \"offset\", \"limit\", \"download\", \"editor\"], request: null, responses: { 200: \"ReadResult\" }, errors: [], errorSets: [\"module:media\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"media\", path: \"/{kind}/{id}/hls/{path...}\", auth: \"public\", permission: null, query: [\"audio\", \"subs\"], request: null, responses: { 200: \"application/vnd.apple.mpegurl\" }, errors: [], errorSets: [\"module:media\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"codes\", path: \"/{code}\", auth: \"open\", permission: null, query: [\"lang\"], request: null, responses: { 200: \"Resolved\" }, errors: [\"gone\", \"not_found\"], errorSets: [\"module:codes\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/nodes\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"kind\", \"state\", \"id\", \"slug\", \"language\", \"language_mode\", \"name_prefix\", \"q\", \"content_kind\", \"min_count\", \"sort\", \"cursor\", \"offset\", \"limit\"], request: null, responses: { 200: \"NodePage\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"NodeInput[]\", responses: { 201: \"Node[]\" }, errors: [\"conflict\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"NodeDetail\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"PATCH\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"NodeUpdate\", responses: { 200: \"Node\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/nodes/{id}\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"Node\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"PUT\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/nodes/{id}/names\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Name[]\", responses: { 200: \"NodeDetail\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/nodes/{id}/assignments\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"content_kind\", \"relation\", \"cursor\", \"limit\"], request: null, responses: { 200: \"AssignmentPage\" }, errors: [\"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/nodes/{id}/merge\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"MergeInput\", responses: { 200: \"MergeReport\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/edges\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Edge[]\", responses: { 200: \"EdgesWritten\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/edges\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"Edge[]\", responses: { 200: \"EdgesWritten\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/assignments\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"suppress_counts\"], request: \"Assignment[]\", responses: { 200: \"AssignmentsWritten\" }, errors: [\"conflict\", \"not_found\"], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"DELETE\", module: \"taxonomy\", path: \"/assignments\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"suppress_counts\"], request: \"Assignment[]\", responses: { 200: \"AssignmentsWritten\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/effective\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: \"ContentRef[]\", responses: { 200: \"EffectiveTagsOf[]\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"GET\", module: \"taxonomy\", path: \"/counts\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [\"taxonomy_id\"], request: null, responses: { 200: \"Record<string, Count[]>\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\", \"request\"] },\n { method: \"POST\", module: \"taxonomy\", path: \"/counts/rebuild\", auth: \"staff\", permission: \"root:taxonomy:write\", query: [], request: null, responses: { 200: \"CountsRebuilt\" }, errors: [], errorSets: [\"module:taxonomy\", \"auth\"] },\n] as const satisfies readonly ContentKitRoute[];\n\n// The codes every route of a kind answers, by set name.\nexport const CONTENTKIT_ERROR_SETS: Readonly<Record<string, readonly string[]>> = {\n \"auth\": [\"forbidden\", \"unauthorized\", \"unavailable\"],\n \"module:codes\": [\"internal_error\"],\n \"module:content\": [\"internal_error\", \"tenant_mismatch\"],\n \"module:media\": [\"internal_error\", \"not_found\", \"rate_limited\", \"unavailable\", \"upgrade_required\"],\n \"module:taxonomy\": [\"internal_error\"],\n \"module:upload\": [\"internal_error\", \"unavailable\", \"upgrade_required\"],\n \"request\": [\"invalid_request\"],\n};\n"],"mappings":"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"}
@@ -46,6 +46,10 @@ export interface Assignment {
46
46
  state?: "active" | "proposed";
47
47
  source_revision: number;
48
48
  }
49
+ export interface AssignmentPage {
50
+ assignments: Assignment[];
51
+ next_cursor?: string;
52
+ }
49
53
  export interface AssignmentsWritten {
50
54
  assignments: number;
51
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","names":[],"sources":["../../../src/client/generated/wire.ts"],"sourcesContent":["// Generated by `go generate ./internal/contract` from ContentKit's route catalog. Do not edit.\n\nimport type { ErrorCode } from \"./error-codes.js\";\n\nexport type { ErrorCode };\n\n// Upload sizes: one PUT up to MAX_SINGLE_PUT bytes, else multipart parts.\nexport const MAX_SINGLE_PUT = 67108864;\nexport const MIN_PART_SIZE = 8388608;\nexport const MAX_PART_SIZE = 16777216;\n\nexport type OpName = \"put\" | \"edit\" | \"move\" | \"rename\" | \"remove\" | \"attach\" | \"copy\" | \"frame\" | \"meta\" | \"regenerate\";\nexport type Access = \"full\" | \"none\";\nexport type ItemState = \"ready\" | \"processing\" | \"failed\";\nexport type EncodePhase = \"queued\" | \"downloading\" | \"probing\" | \"encoding\" | \"muxing\" | \"uploading\" | \"publishing\" | \"images\";\nexport type PollKind = \"multiple_choice\" | \"free_text\";\nexport type ModerationState = \"approved\" | \"held\" | \"rejected\";\n\nexport interface AdminComment {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n deleted_at?: string;\n}\n\nexport interface Anonymous {\n comments: boolean;\n reactions: boolean;\n votes: boolean;\n}\n\nexport interface Assignment {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n taxonomy_id: string;\n relation: string;\n state?: \"active\" | \"proposed\";\n source_revision: number;\n}\n\nexport interface AssignmentsWritten {\n assignments: number;\n}\n\nexport interface BanInput {\n reason?: string;\n until?: string;\n}\n\nexport interface BanNotice {\n scope: string;\n reason?: string;\n until?: string;\n}\n\nexport interface Comment {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CommentBan {\n user_id: string;\n user?: PublicUser;\n scope: string;\n reason?: string;\n until?: string;\n banned_by: string;\n banned_at: string;\n expired: boolean;\n}\n\nexport interface CommentEdit {\n body: string;\n}\n\nexport interface CommentInput {\n body: string;\n reply_to_id?: string;\n anon_name?: string;\n}\n\nexport interface CommentStanding {\n can_comment: boolean;\n ban?: BanNotice;\n anonymous: boolean;\n max_length: number;\n user_id?: string;\n moderate: boolean;\n ban_scopes: (\"global\" | \"owner\")[];\n}\n\nexport interface CommitBody {\n ref: RefBody;\n operation_id: string;\n ops: Op[];\n}\n\nexport interface CommitReply {\n files: FileInfo[];\n}\n\nexport interface CompleteReply {\n blob: string;\n type: string;\n size: number;\n}\n\nexport interface Config {\n anonymous: Anonymous;\n comment_max_length: number;\n}\n\nexport interface ContentRef {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n}\n\nexport interface CopyFrom {\n id: string;\n path: string;\n}\n\nexport interface Count {\n content_kind: string;\n language: string;\n count: number;\n}\n\nexport interface CountsRebuilt {\n nodes: number;\n}\n\nexport interface Crop {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nexport interface Edge {\n from_taxonomy_id: string;\n relation: \"alias_of\" | \"artist_of\" | \"child\" | \"member_of\" | \"parent\" | \"synonym\" | \"voice_of\";\n to_taxonomy_id: string;\n source_revision: number;\n}\n\nexport interface EdgesWritten {\n edges: number;\n}\n\nexport interface Edit {\n crop?: Crop;\n rotate?: number;\n}\n\nexport interface EffectiveTag {\n taxonomy_id: string;\n kind: string;\n slug: string;\n relation: string;\n scope: \"content\" | \"version\";\n}\n\nexport interface EffectiveTagsOf {\n content: ContentRef;\n tags: EffectiveTag[];\n}\n\nexport interface EncodeProgress {\n phase: EncodePhase;\n queue_position?: number;\n segments_done?: number;\n segments_total?: number;\n percent: number;\n speed?: number;\n eta?: number;\n at: number;\n stalled?: boolean;\n stage?: number;\n stages?: number;\n}\n\nexport interface ErrorDetails {\n width?: number;\n height?: number;\n min_width?: number;\n max_pixels?: number;\n type?: string;\n allowed?: string[];\n size?: number;\n max_bytes?: number;\n frames?: number;\n max_frames?: number;\n seconds?: number;\n max_seconds?: number;\n min_aspect?: number;\n max_aspect?: number;\n max?: number;\n}\n\nexport interface ErrorReply {\n error: string;\n code: ErrorCode;\n retry_after?: number;\n action?: \"comment\" | \"comment_reaction\" | \"favorite\" | \"poll_vote\" | \"post_reaction\" | \"reaction\";\n ban?: BanNotice;\n blobs?: string[];\n details?: ErrorDetails;\n}\n\nexport interface Failure {\n of: string;\n message: string;\n code?: ErrorCode;\n details?: ErrorDetails;\n}\n\nexport interface FavoriteItem {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n created_at: string;\n}\n\nexport interface FavoriteState {\n favorited: boolean;\n count: number;\n}\n\nexport interface FeedItem {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n}\n\nexport interface FileInfo {\n path: string;\n type: string;\n size?: number;\n w?: number;\n h?: number;\n dur?: number;\n download?: string;\n url?: string;\n locked?: boolean;\n upload?: boolean;\n staged?: boolean;\n from?: string;\n edit?: Edit;\n frame?: Frame;\n meta?: Record<string, unknown>;\n unattached?: boolean;\n pending?: string[];\n failed?: Failure;\n editor_url?: string;\n progress?: EncodeProgress;\n}\n\nexport interface Frame {\n t?: number;\n auto?: boolean;\n of?: string;\n}\n\nexport interface Group {\n id: string;\n label: string;\n count: number;\n}\n\nexport interface HeldItem {\n kind: string;\n revision: number;\n id: string;\n ref: ContentRef;\n author_id?: string;\n author?: PublicUser;\n anon_name?: string;\n title?: string;\n body: string;\n reason: string;\n model?: string;\n prompt_version?: string;\n confidence?: number;\n error?: string;\n held_at: string;\n created_at: string;\n}\n\nexport interface HeldPage {\n items: HeldItem[];\n next?: string;\n}\n\nexport interface ImageInput {\n image?: string;\n}\n\nexport interface InlineImage {\n ref: string;\n url: string | null;\n}\n\nexport interface MergeInput {\n into_taxonomy_id: string;\n}\n\nexport interface MergeReport {\n from_taxonomy_id: string;\n into_taxonomy_id: string;\n assignments_moved: number;\n names_moved: number;\n edges_rewritten: number;\n assignments_merged: number;\n}\n\nexport interface MultipartReply {\n ticket: string;\n min_part_size: number;\n max_part_size: number;\n max_parts: number;\n}\n\nexport interface Name {\n language: string;\n kind: \"alias\" | \"name\";\n name: string;\n normalized?: string;\n source_revision: number;\n}\n\nexport interface Node {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n}\n\nexport interface NodeDetail {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n names: Name[];\n edges: Edge[];\n counts: Count[];\n}\n\nexport interface NodeInput {\n taxonomy_id?: string;\n kind: string;\n slug: string;\n names?: Name[];\n source_revision: number;\n}\n\nexport interface NodePage {\n nodes: NodeRow[];\n next_cursor?: string;\n total: number;\n}\n\nexport interface NodeRow {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n name?: string;\n name_language?: string;\n count: number;\n}\n\nexport interface NodeUpdate {\n slug?: string;\n state?: \"active\" | \"deleted\" | \"merged\";\n source_revision?: number;\n}\n\nexport interface Op {\n op: OpName;\n path?: string;\n blob?: string;\n create_id?: string;\n index?: number;\n meta?: Record<string, unknown>;\n edit?: Edit;\n unattached?: boolean;\n to?: string;\n from?: CopyFrom;\n t?: number;\n auto?: boolean;\n preset?: string;\n force?: boolean;\n takedown?: boolean;\n}\n\nexport interface PartBody {\n number: number;\n size: number;\n sha256: string;\n}\n\nexport interface PartReply {\n number: number;\n size?: number;\n sha256?: string;\n request?: RequestReply;\n}\n\nexport interface PartsBody {\n ticket: string;\n parts: PartBody[];\n}\n\nexport interface PartsReply {\n parts: PartReply[];\n}\n\nexport interface Poll {\n id: string;\n kind: PollKind;\n question: string;\n language: string;\n is_active: boolean;\n image_url?: string;\n live_at: string;\n closes_at?: string;\n closed: boolean;\n total_votes: number;\n options: PollOption[];\n voted: boolean;\n my_option?: string;\n answer_count?: number;\n groups?: Group[];\n my_answer?: PollAnswer;\n}\n\nexport interface PollAnswer {\n id: string;\n text: string;\n classified: boolean;\n updated_at: string;\n}\n\nexport interface PollAnswerInput {\n text: string;\n}\n\nexport interface PollImage {\n image_url: string | null;\n}\n\nexport interface PollInput {\n kind?: PollKind;\n question: string;\n language: string;\n live_at?: string;\n closes_at?: string;\n options?: PollOptionInput[];\n}\n\nexport interface PollOption {\n id: string;\n label: string;\n image_url?: string;\n position: number;\n vote_count: number;\n}\n\nexport interface PollOptionInput {\n label: string;\n position: number;\n}\n\nexport interface PollOptionPatch {\n label?: string;\n position?: number;\n}\n\nexport interface PollUpdate {\n question?: string;\n is_active?: boolean;\n live_at?: string;\n closes_at?: string | null;\n}\n\nexport interface PollVote {\n option_id: string;\n}\n\nexport interface Post {\n id: string;\n author_id: string;\n title: string;\n slug?: string;\n body: string;\n excerpt?: string;\n cover?: string;\n cover_url?: string;\n images?: Record<string, string>;\n language: string;\n is_draft: boolean;\n live_at?: string;\n total_likes: number;\n total_dislikes: number;\n comment_count: number;\n moderation?: ModerationState;\n moderation_reason?: string;\n code: string;\n url_slug: string;\n created_at: string;\n updated_at: string;\n deleted_at?: string;\n}\n\nexport interface PostCover {\n cover_url: string | null;\n}\n\nexport interface PostInput {\n title?: string;\n body?: string;\n excerpt?: string;\n language?: string;\n slug?: string;\n is_draft?: boolean;\n live_at?: string;\n}\n\nexport interface PresetRule {\n kind: string;\n name: string;\n from: string;\n base: string;\n namespace: string;\n to: string;\n widths: number[];\n aspect?: string;\n min_width?: number;\n first?: number;\n default: boolean;\n}\n\nexport interface PresignBody {\n ref: RefBody;\n path: string;\n type: string;\n size: number;\n sha256: string;\n}\n\nexport interface PresignReply {\n path: string;\n blob: string;\n exists?: boolean;\n put?: RequestReply;\n multipart?: MultipartReply;\n process_on_upload?: boolean;\n}\n\nexport interface PublicImage {\n from: string;\n preset: string;\n renditions: PublicRendition[];\n}\n\nexport interface PublicRendition {\n url: string;\n w: number;\n h: number;\n}\n\nexport interface PublicUser {\n id: string;\n name?: string;\n username: string;\n avatar?: string;\n avatar_srcset?: string;\n}\n\nexport interface ReactionCounts {\n likes: number;\n dislikes: number;\n mine: number;\n}\n\nexport interface ReadResult {\n access: Access;\n expires: number;\n meta?: Record<string, unknown>;\n previews?: string[];\n public?: PublicImage[];\n total: number;\n offset: number;\n limit: number;\n hls?: string[];\n state?: ItemState;\n full?: boolean;\n uploads?: UploadRule[];\n files: FileInfo[];\n}\n\nexport interface RefBody {\n kind: string;\n id: string;\n}\n\nexport interface RequestReply {\n method: string;\n url: string;\n headers: Record<string, string>;\n expires: string;\n}\n\nexport interface ResolveInput {\n decision: \"approve\" | \"reject\" | \"review\";\n revision: number;\n reason?: string;\n}\n\nexport interface Resolved {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n code: string;\n slug: string;\n slugs?: Record<string, string>;\n path: string;\n}\n\nexport interface Restored {\n restored: boolean;\n}\n\nexport interface ReviewOutcome {\n decision: \"approve\" | \"reject\" | \"review\";\n}\n\nexport interface TicketBody {\n ticket: string;\n}\n\nexport interface UploadRule {\n path: string;\n types: string[];\n max_bytes: number;\n max?: number;\n named?: boolean;\n frames?: string;\n aspect?: string;\n min_width?: number;\n video?: VideoLimits;\n min_aspect?: number;\n max_aspect?: number;\n}\n\nexport interface VideoLimits {\n max_seconds?: number;\n max_fps?: number;\n max_pixels?: number;\n max_work?: number;\n}\n"],"mappings":";AAOA,IAAa,IAAiB,UACjB,IAAgB,SAChB,IAAgB"}
1
+ {"version":3,"file":"wire.js","names":[],"sources":["../../../src/client/generated/wire.ts"],"sourcesContent":["// Generated by `go generate ./internal/contract` from ContentKit's route catalog. Do not edit.\n\nimport type { ErrorCode } from \"./error-codes.js\";\n\nexport type { ErrorCode };\n\n// Upload sizes: one PUT up to MAX_SINGLE_PUT bytes, else multipart parts.\nexport const MAX_SINGLE_PUT = 67108864;\nexport const MIN_PART_SIZE = 8388608;\nexport const MAX_PART_SIZE = 16777216;\n\nexport type OpName = \"put\" | \"edit\" | \"move\" | \"rename\" | \"remove\" | \"attach\" | \"copy\" | \"frame\" | \"meta\" | \"regenerate\";\nexport type Access = \"full\" | \"none\";\nexport type ItemState = \"ready\" | \"processing\" | \"failed\";\nexport type EncodePhase = \"queued\" | \"downloading\" | \"probing\" | \"encoding\" | \"muxing\" | \"uploading\" | \"publishing\" | \"images\";\nexport type PollKind = \"multiple_choice\" | \"free_text\";\nexport type ModerationState = \"approved\" | \"held\" | \"rejected\";\n\nexport interface AdminComment {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n deleted_at?: string;\n}\n\nexport interface Anonymous {\n comments: boolean;\n reactions: boolean;\n votes: boolean;\n}\n\nexport interface Assignment {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n taxonomy_id: string;\n relation: string;\n state?: \"active\" | \"proposed\";\n source_revision: number;\n}\n\nexport interface AssignmentPage {\n assignments: Assignment[];\n next_cursor?: string;\n}\n\nexport interface AssignmentsWritten {\n assignments: number;\n}\n\nexport interface BanInput {\n reason?: string;\n until?: string;\n}\n\nexport interface BanNotice {\n scope: string;\n reason?: string;\n until?: string;\n}\n\nexport interface Comment {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CommentBan {\n user_id: string;\n user?: PublicUser;\n scope: string;\n reason?: string;\n until?: string;\n banned_by: string;\n banned_at: string;\n expired: boolean;\n}\n\nexport interface CommentEdit {\n body: string;\n}\n\nexport interface CommentInput {\n body: string;\n reply_to_id?: string;\n anon_name?: string;\n}\n\nexport interface CommentStanding {\n can_comment: boolean;\n ban?: BanNotice;\n anonymous: boolean;\n max_length: number;\n user_id?: string;\n moderate: boolean;\n ban_scopes: (\"global\" | \"owner\")[];\n}\n\nexport interface CommitBody {\n ref: RefBody;\n operation_id: string;\n ops: Op[];\n}\n\nexport interface CommitReply {\n files: FileInfo[];\n}\n\nexport interface CompleteReply {\n blob: string;\n type: string;\n size: number;\n}\n\nexport interface Config {\n anonymous: Anonymous;\n comment_max_length: number;\n}\n\nexport interface ContentRef {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n}\n\nexport interface CopyFrom {\n id: string;\n path: string;\n}\n\nexport interface Count {\n content_kind: string;\n language: string;\n count: number;\n}\n\nexport interface CountsRebuilt {\n nodes: number;\n}\n\nexport interface Crop {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nexport interface Edge {\n from_taxonomy_id: string;\n relation: \"alias_of\" | \"artist_of\" | \"child\" | \"member_of\" | \"parent\" | \"synonym\" | \"voice_of\";\n to_taxonomy_id: string;\n source_revision: number;\n}\n\nexport interface EdgesWritten {\n edges: number;\n}\n\nexport interface Edit {\n crop?: Crop;\n rotate?: number;\n}\n\nexport interface EffectiveTag {\n taxonomy_id: string;\n kind: string;\n slug: string;\n relation: string;\n scope: \"content\" | \"version\";\n}\n\nexport interface EffectiveTagsOf {\n content: ContentRef;\n tags: EffectiveTag[];\n}\n\nexport interface EncodeProgress {\n phase: EncodePhase;\n queue_position?: number;\n segments_done?: number;\n segments_total?: number;\n percent: number;\n speed?: number;\n eta?: number;\n at: number;\n stalled?: boolean;\n stage?: number;\n stages?: number;\n}\n\nexport interface ErrorDetails {\n width?: number;\n height?: number;\n min_width?: number;\n max_pixels?: number;\n type?: string;\n allowed?: string[];\n size?: number;\n max_bytes?: number;\n frames?: number;\n max_frames?: number;\n seconds?: number;\n max_seconds?: number;\n min_aspect?: number;\n max_aspect?: number;\n max?: number;\n}\n\nexport interface ErrorReply {\n error: string;\n code: ErrorCode;\n retry_after?: number;\n action?: \"comment\" | \"comment_reaction\" | \"favorite\" | \"poll_vote\" | \"post_reaction\" | \"reaction\";\n ban?: BanNotice;\n blobs?: string[];\n details?: ErrorDetails;\n}\n\nexport interface Failure {\n of: string;\n message: string;\n code?: ErrorCode;\n details?: ErrorDetails;\n}\n\nexport interface FavoriteItem {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n created_at: string;\n}\n\nexport interface FavoriteState {\n favorited: boolean;\n count: number;\n}\n\nexport interface FeedItem {\n id: string;\n reply_to_id?: string;\n user_id?: string;\n anon_name?: string;\n body: string;\n deleted: boolean;\n likes: number;\n dislikes: number;\n mine: number;\n reply_count: number;\n author?: PublicUser;\n moderation?: ModerationState;\n moderation_reason?: string;\n created_at: string;\n updated_at: string;\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n}\n\nexport interface FileInfo {\n path: string;\n type: string;\n size?: number;\n w?: number;\n h?: number;\n dur?: number;\n download?: string;\n url?: string;\n locked?: boolean;\n upload?: boolean;\n staged?: boolean;\n from?: string;\n edit?: Edit;\n frame?: Frame;\n meta?: Record<string, unknown>;\n unattached?: boolean;\n pending?: string[];\n failed?: Failure;\n editor_url?: string;\n progress?: EncodeProgress;\n}\n\nexport interface Frame {\n t?: number;\n auto?: boolean;\n of?: string;\n}\n\nexport interface Group {\n id: string;\n label: string;\n count: number;\n}\n\nexport interface HeldItem {\n kind: string;\n revision: number;\n id: string;\n ref: ContentRef;\n author_id?: string;\n author?: PublicUser;\n anon_name?: string;\n title?: string;\n body: string;\n reason: string;\n model?: string;\n prompt_version?: string;\n confidence?: number;\n error?: string;\n held_at: string;\n created_at: string;\n}\n\nexport interface HeldPage {\n items: HeldItem[];\n next?: string;\n}\n\nexport interface ImageInput {\n image?: string;\n}\n\nexport interface InlineImage {\n ref: string;\n url: string | null;\n}\n\nexport interface MergeInput {\n into_taxonomy_id: string;\n}\n\nexport interface MergeReport {\n from_taxonomy_id: string;\n into_taxonomy_id: string;\n assignments_moved: number;\n names_moved: number;\n edges_rewritten: number;\n assignments_merged: number;\n}\n\nexport interface MultipartReply {\n ticket: string;\n min_part_size: number;\n max_part_size: number;\n max_parts: number;\n}\n\nexport interface Name {\n language: string;\n kind: \"alias\" | \"name\";\n name: string;\n normalized?: string;\n source_revision: number;\n}\n\nexport interface Node {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n}\n\nexport interface NodeDetail {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n names: Name[];\n edges: Edge[];\n counts: Count[];\n}\n\nexport interface NodeInput {\n taxonomy_id?: string;\n kind: string;\n slug: string;\n names?: Name[];\n source_revision: number;\n}\n\nexport interface NodePage {\n nodes: NodeRow[];\n next_cursor?: string;\n total: number;\n}\n\nexport interface NodeRow {\n taxonomy_id: string;\n tenant_id: string;\n kind: string;\n slug: string;\n state: \"active\" | \"deleted\" | \"merged\";\n source_revision: number;\n created_at: string;\n updated_at: string;\n name?: string;\n name_language?: string;\n count: number;\n}\n\nexport interface NodeUpdate {\n slug?: string;\n state?: \"active\" | \"deleted\" | \"merged\";\n source_revision?: number;\n}\n\nexport interface Op {\n op: OpName;\n path?: string;\n blob?: string;\n create_id?: string;\n index?: number;\n meta?: Record<string, unknown>;\n edit?: Edit;\n unattached?: boolean;\n to?: string;\n from?: CopyFrom;\n t?: number;\n auto?: boolean;\n preset?: string;\n force?: boolean;\n takedown?: boolean;\n}\n\nexport interface PartBody {\n number: number;\n size: number;\n sha256: string;\n}\n\nexport interface PartReply {\n number: number;\n size?: number;\n sha256?: string;\n request?: RequestReply;\n}\n\nexport interface PartsBody {\n ticket: string;\n parts: PartBody[];\n}\n\nexport interface PartsReply {\n parts: PartReply[];\n}\n\nexport interface Poll {\n id: string;\n kind: PollKind;\n question: string;\n language: string;\n is_active: boolean;\n image_url?: string;\n live_at: string;\n closes_at?: string;\n closed: boolean;\n total_votes: number;\n options: PollOption[];\n voted: boolean;\n my_option?: string;\n answer_count?: number;\n groups?: Group[];\n my_answer?: PollAnswer;\n}\n\nexport interface PollAnswer {\n id: string;\n text: string;\n classified: boolean;\n updated_at: string;\n}\n\nexport interface PollAnswerInput {\n text: string;\n}\n\nexport interface PollImage {\n image_url: string | null;\n}\n\nexport interface PollInput {\n kind?: PollKind;\n question: string;\n language: string;\n live_at?: string;\n closes_at?: string;\n options?: PollOptionInput[];\n}\n\nexport interface PollOption {\n id: string;\n label: string;\n image_url?: string;\n position: number;\n vote_count: number;\n}\n\nexport interface PollOptionInput {\n label: string;\n position: number;\n}\n\nexport interface PollOptionPatch {\n label?: string;\n position?: number;\n}\n\nexport interface PollUpdate {\n question?: string;\n is_active?: boolean;\n live_at?: string;\n closes_at?: string | null;\n}\n\nexport interface PollVote {\n option_id: string;\n}\n\nexport interface Post {\n id: string;\n author_id: string;\n title: string;\n slug?: string;\n body: string;\n excerpt?: string;\n cover?: string;\n cover_url?: string;\n images?: Record<string, string>;\n language: string;\n is_draft: boolean;\n live_at?: string;\n total_likes: number;\n total_dislikes: number;\n comment_count: number;\n moderation?: ModerationState;\n moderation_reason?: string;\n code: string;\n url_slug: string;\n created_at: string;\n updated_at: string;\n deleted_at?: string;\n}\n\nexport interface PostCover {\n cover_url: string | null;\n}\n\nexport interface PostInput {\n title?: string;\n body?: string;\n excerpt?: string;\n language?: string;\n slug?: string;\n is_draft?: boolean;\n live_at?: string;\n}\n\nexport interface PresetRule {\n kind: string;\n name: string;\n from: string;\n base: string;\n namespace: string;\n to: string;\n widths: number[];\n aspect?: string;\n min_width?: number;\n first?: number;\n default: boolean;\n}\n\nexport interface PresignBody {\n ref: RefBody;\n path: string;\n type: string;\n size: number;\n sha256: string;\n}\n\nexport interface PresignReply {\n path: string;\n blob: string;\n exists?: boolean;\n put?: RequestReply;\n multipart?: MultipartReply;\n process_on_upload?: boolean;\n}\n\nexport interface PublicImage {\n from: string;\n preset: string;\n renditions: PublicRendition[];\n}\n\nexport interface PublicRendition {\n url: string;\n w: number;\n h: number;\n}\n\nexport interface PublicUser {\n id: string;\n name?: string;\n username: string;\n avatar?: string;\n avatar_srcset?: string;\n}\n\nexport interface ReactionCounts {\n likes: number;\n dislikes: number;\n mine: number;\n}\n\nexport interface ReadResult {\n access: Access;\n expires: number;\n meta?: Record<string, unknown>;\n previews?: string[];\n public?: PublicImage[];\n total: number;\n offset: number;\n limit: number;\n hls?: string[];\n state?: ItemState;\n full?: boolean;\n uploads?: UploadRule[];\n files: FileInfo[];\n}\n\nexport interface RefBody {\n kind: string;\n id: string;\n}\n\nexport interface RequestReply {\n method: string;\n url: string;\n headers: Record<string, string>;\n expires: string;\n}\n\nexport interface ResolveInput {\n decision: \"approve\" | \"reject\" | \"review\";\n revision: number;\n reason?: string;\n}\n\nexport interface Resolved {\n tenant_id: string;\n content_kind: string;\n content_id: string;\n content_version_id?: string;\n code: string;\n slug: string;\n slugs?: Record<string, string>;\n path: string;\n}\n\nexport interface Restored {\n restored: boolean;\n}\n\nexport interface ReviewOutcome {\n decision: \"approve\" | \"reject\" | \"review\";\n}\n\nexport interface TicketBody {\n ticket: string;\n}\n\nexport interface UploadRule {\n path: string;\n types: string[];\n max_bytes: number;\n max?: number;\n named?: boolean;\n frames?: string;\n aspect?: string;\n min_width?: number;\n video?: VideoLimits;\n min_aspect?: number;\n max_aspect?: number;\n}\n\nexport interface VideoLimits {\n max_seconds?: number;\n max_fps?: number;\n max_pixels?: number;\n max_work?: number;\n}\n"],"mappings":";AAOA,IAAa,IAAiB,UACjB,IAAgB,SAChB,IAAgB"}
@@ -5,11 +5,11 @@ export { IMAGE_SCHEME, imageRef, imageRefs, PostsClient, type PostAdminQuery, ty
5
5
  export { CommentsClient, type AdminCommentQuery, type CommentQuery } from './content/comments.js';
6
6
  export { ReactionsClient } from './content/reactions.js';
7
7
  export { FavoritesClient } from './content/favorites.js';
8
- export { PollsClient, type PollQuery } from './content/polls.js';
8
+ export { PollsClient, type PollAdminQuery, type PollQuery, type PollState } from './content/polls.js';
9
9
  export { BansClient } from './content/bans.js';
10
10
  export { ModerationClient, type HeldQuery } from './content/moderation.js';
11
11
  export { reactionVerb, type BanScope, type ContentChange, type Decision, type HeldKind, type Reaction, type Sort } from './content/types.js';
12
- export { TaxonomyClient, type NodeQuery } from './taxonomy.js';
12
+ export { TaxonomyClient, type NodeAssignmentQuery, type NodeQuery } from './taxonomy.js';
13
13
  export { CodesClient } from './codes.js';
14
14
  export { call, routeURL, type CallOptions, type Method, type PageQuery, type PathParams, type RouteQuery, type RoutePath } from './route.js';
15
15
  export { MediaApi, type ReadOptions } from './media/api.js';
@@ -1,14 +1,18 @@
1
- import { Assignment, AssignmentsWritten, ContentRef, Count, CountsRebuilt, Edge, EdgesWritten, EffectiveTagsOf, MergeReport, Name, Node, NodeDetail, NodeInput, NodePage, NodeUpdate } from './generated/wire.js';
1
+ import { Assignment, AssignmentPage, AssignmentsWritten, ContentRef, Count, CountsRebuilt, Edge, EdgesWritten, EffectiveTagsOf, MergeReport, Name, Node, NodeDetail, NodeInput, NodePage, NodeUpdate } from './generated/wire.js';
2
2
  import { Http } from './http.js';
3
3
  import { RouteQuery } from './route.js';
4
4
  /** GET /taxonomy/nodes filters, as the route names them. */
5
5
  export type NodeQuery = RouteQuery<"GET", "/nodes">;
6
+ /** GET /taxonomy/nodes/{id}/assignments filters. */
7
+ export type NodeAssignmentQuery = RouteQuery<"GET", "/nodes/{id}/assignments">;
6
8
  /** The taxonomy admin API (root:taxonomy:write). */
7
9
  export declare class TaxonomyClient {
8
10
  private readonly http;
9
11
  constructor(http: Http);
10
12
  nodes(q?: NodeQuery, signal?: AbortSignal): Promise<NodePage>;
11
13
  node(id: string, signal?: AbortSignal): Promise<NodeDetail>;
14
+ /** The contents assigned to a node, a cursor page at a time. */
15
+ nodeAssignments(id: string, q?: NodeAssignmentQuery, signal?: AbortSignal): Promise<AssignmentPage>;
12
16
  createNodes(nodes: NodeInput[]): Promise<Node[]>;
13
17
  updateNode(id: string, patch: NodeUpdate): Promise<Node>;
14
18
  /** Marks the node deleted. */
@@ -17,6 +17,13 @@ var t = class {
17
17
  signal: n
18
18
  });
19
19
  }
20
+ nodeAssignments(t, n = {}, r) {
21
+ return e(this.http, "GET", "/nodes/{id}/assignments", {
22
+ params: { id: t },
23
+ query: n,
24
+ signal: r
25
+ });
26
+ }
20
27
  createNodes(t) {
21
28
  return this.write(e(this.http, "POST", "/nodes", { body: t }));
22
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taxonomy.js","names":[],"sources":["../../src/client/taxonomy.ts"],"sourcesContent":["import type {\n Assignment,\n AssignmentsWritten,\n ContentRef,\n Count,\n CountsRebuilt,\n Edge,\n EdgesWritten,\n EffectiveTagsOf,\n MergeReport,\n Name,\n Node,\n NodeDetail,\n NodeInput,\n NodePage,\n NodeUpdate,\n} from \"./generated/wire.js\";\nimport type { Http } from \"./http.js\";\nimport { call, type RouteQuery } from \"./route.js\";\n\n/** GET /taxonomy/nodes filters, as the route names them. */\nexport type NodeQuery = RouteQuery<\"GET\", \"/nodes\">;\n\n/** The taxonomy admin API (root:taxonomy:write). */\nexport class TaxonomyClient {\n constructor(private readonly http: Http) {}\n\n nodes(q: NodeQuery = {}, signal?: AbortSignal): Promise<NodePage> {\n return call(this.http, \"GET\", \"/nodes\", { query: q, signal });\n }\n node(id: string, signal?: AbortSignal): Promise<NodeDetail> {\n return call(this.http, \"GET\", \"/nodes/{id}\", { params: { id }, signal });\n }\n createNodes(nodes: NodeInput[]): Promise<Node[]> {\n return this.write(call(this.http, \"POST\", \"/nodes\", { body: nodes }));\n }\n updateNode(id: string, patch: NodeUpdate): Promise<Node> {\n return this.write(call(this.http, \"PATCH\", \"/nodes/{id}\", { params: { id }, body: patch }));\n }\n /** Marks the node deleted. */\n deleteNode(id: string): Promise<Node> {\n return this.write(call(this.http, \"DELETE\", \"/nodes/{id}\", { params: { id } }));\n }\n /** Replaces, adds or removes names. */\n names(id: string, op: \"set\" | \"add\" | \"remove\", names: Name[]): Promise<NodeDetail> {\n const method = op === \"set\" ? \"PUT\" : op === \"add\" ? \"POST\" : \"DELETE\";\n return this.write(call(this.http, method, \"/nodes/{id}/names\", { params: { id }, body: names }));\n }\n merge(id: string, into: string): Promise<MergeReport> {\n return this.write(call(this.http, \"POST\", \"/nodes/{id}/merge\", { params: { id }, body: { into_taxonomy_id: into } }));\n }\n edges(op: \"add\" | \"remove\", edges: Edge[]): Promise<EdgesWritten> {\n return this.write(call(this.http, op === \"add\" ? \"POST\" : \"DELETE\", \"/edges\", { body: edges }));\n }\n /** Assigns or unassigns nodes; suppressCounts skips count upkeep (rebuildCounts afterwards). */\n assignments(op: \"add\" | \"remove\", assignments: Assignment[], o: { suppressCounts?: boolean } = {}): Promise<AssignmentsWritten> {\n return this.write(call(this.http, op === \"add\" ? \"POST\" : \"DELETE\", \"/assignments\", { body: assignments, query: { suppress_counts: o.suppressCounts } }));\n }\n /** The effective tags (work and version) of each content. */\n effective(refs: ContentRef[], signal?: AbortSignal): Promise<EffectiveTagsOf[]> {\n return call(this.http, \"POST\", \"/effective\", { body: refs, signal });\n }\n /** Content counts of nodes, by taxonomy id. */\n counts(ids: readonly string[], signal?: AbortSignal): Promise<Record<string, Count[]>> {\n return call(this.http, \"GET\", \"/counts\", { query: { taxonomy_id: ids }, signal });\n }\n rebuildCounts(): Promise<CountsRebuilt> {\n return this.write(call(this.http, \"POST\", \"/counts/rebuild\"));\n }\n\n private async write<T>(p: Promise<T>): Promise<T> {\n const emit = this.http.captureChanges();\n const out = await p;\n emit({ type: \"taxonomy.changed\" });\n return out;\n }\n}\n"],"mappings":";;AAwBA,IAAa,IAAb,MAA4B;CACG;CAA7B,YAAY,GAA6B;EAAZ,KAAA,OAAA;CAAa;CAE1C,MAAM,IAAe,CAAC,GAAG,GAAyC;EAChE,OAAO,EAAK,KAAK,MAAM,OAAO,UAAU;GAAE,OAAO;GAAG;EAAO,CAAC;CAC9D;CACA,KAAK,GAAY,GAA2C;EAC1D,OAAO,EAAK,KAAK,MAAM,OAAO,eAAe;GAAE,QAAQ,EAAE,MAAG;GAAG;EAAO,CAAC;CACzE;CACA,YAAY,GAAqC;EAC/C,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,UAAU,EAAE,MAAM,EAAM,CAAC,CAAC;CACtE;CACA,WAAW,GAAY,GAAkC;EACvD,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,SAAS,eAAe;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM;EAAM,CAAC,CAAC;CAC5F;CAEA,WAAW,GAA2B;EACpC,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,UAAU,eAAe,EAAE,QAAQ,EAAE,MAAG,EAAE,CAAC,CAAC;CAChF;CAEA,MAAM,GAAY,GAA8B,GAAoC;EAClF,IAAM,IAAS,MAAO,QAAQ,QAAQ,MAAO,QAAQ,SAAS;EAC9D,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,GAAQ,qBAAqB;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM;EAAM,CAAC,CAAC;CACjG;CACA,MAAM,GAAY,GAAoC;EACpD,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,qBAAqB;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM,EAAE,kBAAkB,EAAK;EAAE,CAAC,CAAC;CACtH;CACA,MAAM,GAAsB,GAAsC;EAChE,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,MAAO,QAAQ,SAAS,UAAU,UAAU,EAAE,MAAM,EAAM,CAAC,CAAC;CAChG;CAEA,YAAY,GAAsB,GAA2B,IAAkC,CAAC,GAAgC;EAC9H,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,MAAO,QAAQ,SAAS,UAAU,gBAAgB;GAAE,MAAM;GAAa,OAAO,EAAE,iBAAiB,EAAE,eAAe;EAAE,CAAC,CAAC;CAC1J;CAEA,UAAU,GAAoB,GAAkD;EAC9E,OAAO,EAAK,KAAK,MAAM,QAAQ,cAAc;GAAE,MAAM;GAAM;EAAO,CAAC;CACrE;CAEA,OAAO,GAAwB,GAAwD;EACrF,OAAO,EAAK,KAAK,MAAM,OAAO,WAAW;GAAE,OAAO,EAAE,aAAa,EAAI;GAAG;EAAO,CAAC;CAClF;CACA,gBAAwC;EACtC,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,iBAAiB,CAAC;CAC9D;CAEA,MAAc,MAAS,GAA2B;EAChD,IAAM,IAAO,KAAK,KAAK,eAAe,GAChC,IAAM,MAAM;EAElB,OADA,EAAK,EAAE,MAAM,mBAAmB,CAAC,GAC1B;CACT;AACF"}
1
+ {"version":3,"file":"taxonomy.js","names":[],"sources":["../../src/client/taxonomy.ts"],"sourcesContent":["import type {\n Assignment,\n AssignmentPage,\n AssignmentsWritten,\n ContentRef,\n Count,\n CountsRebuilt,\n Edge,\n EdgesWritten,\n EffectiveTagsOf,\n MergeReport,\n Name,\n Node,\n NodeDetail,\n NodeInput,\n NodePage,\n NodeUpdate,\n} from \"./generated/wire.js\";\nimport type { Http } from \"./http.js\";\nimport { call, type RouteQuery } from \"./route.js\";\n\n/** GET /taxonomy/nodes filters, as the route names them. */\nexport type NodeQuery = RouteQuery<\"GET\", \"/nodes\">;\n/** GET /taxonomy/nodes/{id}/assignments filters. */\nexport type NodeAssignmentQuery = RouteQuery<\"GET\", \"/nodes/{id}/assignments\">;\n\n/** The taxonomy admin API (root:taxonomy:write). */\nexport class TaxonomyClient {\n constructor(private readonly http: Http) {}\n\n nodes(q: NodeQuery = {}, signal?: AbortSignal): Promise<NodePage> {\n return call(this.http, \"GET\", \"/nodes\", { query: q, signal });\n }\n node(id: string, signal?: AbortSignal): Promise<NodeDetail> {\n return call(this.http, \"GET\", \"/nodes/{id}\", { params: { id }, signal });\n }\n /** The contents assigned to a node, a cursor page at a time. */\n nodeAssignments(id: string, q: NodeAssignmentQuery = {}, signal?: AbortSignal): Promise<AssignmentPage> {\n return call(this.http, \"GET\", \"/nodes/{id}/assignments\", { params: { id }, query: q, signal });\n }\n createNodes(nodes: NodeInput[]): Promise<Node[]> {\n return this.write(call(this.http, \"POST\", \"/nodes\", { body: nodes }));\n }\n updateNode(id: string, patch: NodeUpdate): Promise<Node> {\n return this.write(call(this.http, \"PATCH\", \"/nodes/{id}\", { params: { id }, body: patch }));\n }\n /** Marks the node deleted. */\n deleteNode(id: string): Promise<Node> {\n return this.write(call(this.http, \"DELETE\", \"/nodes/{id}\", { params: { id } }));\n }\n /** Replaces, adds or removes names. */\n names(id: string, op: \"set\" | \"add\" | \"remove\", names: Name[]): Promise<NodeDetail> {\n const method = op === \"set\" ? \"PUT\" : op === \"add\" ? \"POST\" : \"DELETE\";\n return this.write(call(this.http, method, \"/nodes/{id}/names\", { params: { id }, body: names }));\n }\n merge(id: string, into: string): Promise<MergeReport> {\n return this.write(call(this.http, \"POST\", \"/nodes/{id}/merge\", { params: { id }, body: { into_taxonomy_id: into } }));\n }\n edges(op: \"add\" | \"remove\", edges: Edge[]): Promise<EdgesWritten> {\n return this.write(call(this.http, op === \"add\" ? \"POST\" : \"DELETE\", \"/edges\", { body: edges }));\n }\n /** Assigns or unassigns nodes; suppressCounts skips count upkeep (rebuildCounts afterwards). */\n assignments(op: \"add\" | \"remove\", assignments: Assignment[], o: { suppressCounts?: boolean } = {}): Promise<AssignmentsWritten> {\n return this.write(call(this.http, op === \"add\" ? \"POST\" : \"DELETE\", \"/assignments\", { body: assignments, query: { suppress_counts: o.suppressCounts } }));\n }\n /** The effective tags (work and version) of each content. */\n effective(refs: ContentRef[], signal?: AbortSignal): Promise<EffectiveTagsOf[]> {\n return call(this.http, \"POST\", \"/effective\", { body: refs, signal });\n }\n /** Content counts of nodes, by taxonomy id. */\n counts(ids: readonly string[], signal?: AbortSignal): Promise<Record<string, Count[]>> {\n return call(this.http, \"GET\", \"/counts\", { query: { taxonomy_id: ids }, signal });\n }\n rebuildCounts(): Promise<CountsRebuilt> {\n return this.write(call(this.http, \"POST\", \"/counts/rebuild\"));\n }\n\n private async write<T>(p: Promise<T>): Promise<T> {\n const emit = this.http.captureChanges();\n const out = await p;\n emit({ type: \"taxonomy.changed\" });\n return out;\n }\n}\n"],"mappings":";;AA2BA,IAAa,IAAb,MAA4B;CACG;CAA7B,YAAY,GAA6B;EAAZ,KAAA,OAAA;CAAa;CAE1C,MAAM,IAAe,CAAC,GAAG,GAAyC;EAChE,OAAO,EAAK,KAAK,MAAM,OAAO,UAAU;GAAE,OAAO;GAAG;EAAO,CAAC;CAC9D;CACA,KAAK,GAAY,GAA2C;EAC1D,OAAO,EAAK,KAAK,MAAM,OAAO,eAAe;GAAE,QAAQ,EAAE,MAAG;GAAG;EAAO,CAAC;CACzE;CAEA,gBAAgB,GAAY,IAAyB,CAAC,GAAG,GAA+C;EACtG,OAAO,EAAK,KAAK,MAAM,OAAO,2BAA2B;GAAE,QAAQ,EAAE,MAAG;GAAG,OAAO;GAAG;EAAO,CAAC;CAC/F;CACA,YAAY,GAAqC;EAC/C,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,UAAU,EAAE,MAAM,EAAM,CAAC,CAAC;CACtE;CACA,WAAW,GAAY,GAAkC;EACvD,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,SAAS,eAAe;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM;EAAM,CAAC,CAAC;CAC5F;CAEA,WAAW,GAA2B;EACpC,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,UAAU,eAAe,EAAE,QAAQ,EAAE,MAAG,EAAE,CAAC,CAAC;CAChF;CAEA,MAAM,GAAY,GAA8B,GAAoC;EAClF,IAAM,IAAS,MAAO,QAAQ,QAAQ,MAAO,QAAQ,SAAS;EAC9D,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,GAAQ,qBAAqB;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM;EAAM,CAAC,CAAC;CACjG;CACA,MAAM,GAAY,GAAoC;EACpD,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,qBAAqB;GAAE,QAAQ,EAAE,MAAG;GAAG,MAAM,EAAE,kBAAkB,EAAK;EAAE,CAAC,CAAC;CACtH;CACA,MAAM,GAAsB,GAAsC;EAChE,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,MAAO,QAAQ,SAAS,UAAU,UAAU,EAAE,MAAM,EAAM,CAAC,CAAC;CAChG;CAEA,YAAY,GAAsB,GAA2B,IAAkC,CAAC,GAAgC;EAC9H,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,MAAO,QAAQ,SAAS,UAAU,gBAAgB;GAAE,MAAM;GAAa,OAAO,EAAE,iBAAiB,EAAE,eAAe;EAAE,CAAC,CAAC;CAC1J;CAEA,UAAU,GAAoB,GAAkD;EAC9E,OAAO,EAAK,KAAK,MAAM,QAAQ,cAAc;GAAE,MAAM;GAAM;EAAO,CAAC;CACrE;CAEA,OAAO,GAAwB,GAAwD;EACrF,OAAO,EAAK,KAAK,MAAM,OAAO,WAAW;GAAE,OAAO,EAAE,aAAa,EAAI;GAAG;EAAO,CAAC;CAClF;CACA,gBAAwC;EACtC,OAAO,KAAK,MAAM,EAAK,KAAK,MAAM,QAAQ,iBAAiB,CAAC;CAC9D;CAEA,MAAc,MAAS,GAA2B;EAChD,IAAM,IAAO,KAAK,KAAK,eAAe,GAChC,IAAM,MAAM;EAElB,OADA,EAAK,EAAE,MAAM,mBAAmB,CAAC,GAC1B;CACT;AACF"}
@@ -0,0 +1,28 @@
1
+ import { PollState } from '../../client/content/polls.js';
2
+ import { Poll } from '../../client/generated/wire.js';
3
+ import { FlowClientOptions, StaffAccess } from '../../react/admin.js';
4
+ import { AdminFlowProps, AdminRouteProps } from './shell.js';
5
+ type Choice = string | {
6
+ value: string;
7
+ label: string;
8
+ };
9
+ export interface PollManagerProps extends AdminFlowProps, AdminRouteProps {
10
+ /** Languages to filter by and write in: codes, or codes with labels; the first is a new poll's. */
11
+ languages?: readonly Choice[];
12
+ /** Offer free-text polls (the host registered an answer classifier). */
13
+ freeText?: boolean;
14
+ /** Most options per poll. Default 10. */
15
+ maxOptions?: number;
16
+ pageSize?: number;
17
+ }
18
+ /** Whether the caller may manage polls (root:polls:write). */
19
+ export declare function usePollManagerAccess(o?: FlowClientOptions): StaffAccess<"polls">;
20
+ /** A poll's state as the staff list names it. */
21
+ export declare function pollState(p: Poll, now?: number): PollState;
22
+ /**
23
+ * Staff: every poll, by language, month or day, state and question, to
24
+ * create, edit (PollEditor) and delete. The list is at basePath, a new poll
25
+ * at basePath/new and each poll at basePath/{id}, filters in the query.
26
+ */
27
+ export declare function PollManager({ client: own, baseUrl, auth, guard, appearance, className, language, messages, ...p }: PollManagerProps): import('react').JSX.Element;
28
+ export {};