@growth-labs/cms 0.5.4 → 0.5.6

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 (166) hide show
  1. package/README.md +55 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/integration/index.d.ts.map +1 -1
  7. package/dist/integration/index.js +9 -0
  8. package/dist/integration/index.js.map +1 -1
  9. package/dist/integration/options.d.ts +38 -0
  10. package/dist/integration/options.d.ts.map +1 -1
  11. package/dist/integration/options.js +13 -0
  12. package/dist/integration/options.js.map +1 -1
  13. package/dist/providers/null.d.ts +2 -1
  14. package/dist/providers/null.d.ts.map +1 -1
  15. package/dist/providers/null.js +9 -0
  16. package/dist/providers/null.js.map +1 -1
  17. package/dist/providers/types.d.ts +10 -0
  18. package/dist/providers/types.d.ts.map +1 -1
  19. package/dist/providers/types.js.map +1 -1
  20. package/dist/routes/authors.d.ts.map +1 -1
  21. package/dist/routes/authors.js +33 -8
  22. package/dist/routes/authors.js.map +1 -1
  23. package/dist/routes/authz-matrix.d.ts.map +1 -1
  24. package/dist/routes/authz-matrix.js +2 -0
  25. package/dist/routes/authz-matrix.js.map +1 -1
  26. package/dist/routes/context.d.ts +1 -1
  27. package/dist/routes/context.d.ts.map +1 -1
  28. package/dist/routes/context.js.map +1 -1
  29. package/dist/routes/index.d.ts +1 -0
  30. package/dist/routes/index.d.ts.map +1 -1
  31. package/dist/routes/index.js +2 -0
  32. package/dist/routes/index.js.map +1 -1
  33. package/dist/routes/recovery-errors.d.ts +21 -0
  34. package/dist/routes/recovery-errors.d.ts.map +1 -0
  35. package/dist/routes/recovery-errors.js +53 -0
  36. package/dist/routes/recovery-errors.js.map +1 -0
  37. package/dist/routes/surveys.d.ts +12 -0
  38. package/dist/routes/surveys.d.ts.map +1 -0
  39. package/dist/routes/surveys.js +109 -0
  40. package/dist/routes/surveys.js.map +1 -0
  41. package/dist/schema/insights-ingest.d.ts +46 -46
  42. package/dist/surveys/access.d.ts +4 -0
  43. package/dist/surveys/access.d.ts.map +1 -0
  44. package/dist/surveys/access.js +9 -0
  45. package/dist/surveys/access.js.map +1 -0
  46. package/dist/surveys/errors.d.ts +43 -0
  47. package/dist/surveys/errors.d.ts.map +1 -0
  48. package/dist/surveys/errors.js +42 -0
  49. package/dist/surveys/errors.js.map +1 -0
  50. package/dist/surveys/schema.d.ts +939 -0
  51. package/dist/surveys/schema.d.ts.map +1 -0
  52. package/dist/surveys/schema.js +385 -0
  53. package/dist/surveys/schema.js.map +1 -0
  54. package/dist/ui/api/surveys/[surveyId]/responses.csv.d.ts +3 -0
  55. package/dist/ui/api/surveys/[surveyId]/responses.csv.d.ts.map +1 -0
  56. package/dist/ui/api/surveys/[surveyId]/responses.csv.js +17 -0
  57. package/dist/ui/api/surveys/[surveyId]/responses.csv.js.map +1 -0
  58. package/dist/ui/api/surveys/[surveyId].d.ts +3 -0
  59. package/dist/ui/api/surveys/[surveyId].d.ts.map +1 -0
  60. package/dist/ui/api/surveys/[surveyId].js +17 -0
  61. package/dist/ui/api/surveys/[surveyId].js.map +1 -0
  62. package/dist/ui/client/mount.d.ts.map +1 -1
  63. package/dist/ui/client/mount.js +6 -2
  64. package/dist/ui/client/mount.js.map +1 -1
  65. package/dist/ui/commands.d.ts +5 -1
  66. package/dist/ui/commands.d.ts.map +1 -1
  67. package/dist/ui/commands.js +7 -0
  68. package/dist/ui/commands.js.map +1 -1
  69. package/dist/ui/components/CmsApp.d.ts +2 -0
  70. package/dist/ui/components/CmsApp.d.ts.map +1 -1
  71. package/dist/ui/components/CmsApp.js +14 -3
  72. package/dist/ui/components/CmsApp.js.map +1 -1
  73. package/dist/ui/components/CommandPalette.d.ts +2 -0
  74. package/dist/ui/components/CommandPalette.d.ts.map +1 -1
  75. package/dist/ui/components/CommandPalette.js +1 -1
  76. package/dist/ui/components/CommandPalette.js.map +1 -1
  77. package/dist/ui/components/ShareModal.d.ts +4 -1
  78. package/dist/ui/components/ShareModal.d.ts.map +1 -1
  79. package/dist/ui/components/ShareModal.js +39 -9
  80. package/dist/ui/components/ShareModal.js.map +1 -1
  81. package/dist/ui/components/SharePickers.d.ts +29 -2
  82. package/dist/ui/components/SharePickers.d.ts.map +1 -1
  83. package/dist/ui/components/SharePickers.js +33 -8
  84. package/dist/ui/components/SharePickers.js.map +1 -1
  85. package/dist/ui/components/Sidebar.d.ts +1 -0
  86. package/dist/ui/components/Sidebar.d.ts.map +1 -1
  87. package/dist/ui/components/Sidebar.js +1 -1
  88. package/dist/ui/components/Sidebar.js.map +1 -1
  89. package/dist/ui/hash-router.d.ts +1 -1
  90. package/dist/ui/hash-router.d.ts.map +1 -1
  91. package/dist/ui/hash-router.js +1 -0
  92. package/dist/ui/hash-router.js.map +1 -1
  93. package/dist/ui/nav.d.ts +5 -1
  94. package/dist/ui/nav.d.ts.map +1 -1
  95. package/dist/ui/nav.js +10 -2
  96. package/dist/ui/nav.js.map +1 -1
  97. package/dist/ui/screens/AuthorsScreen.d.ts.map +1 -1
  98. package/dist/ui/screens/AuthorsScreen.js +2 -1
  99. package/dist/ui/screens/AuthorsScreen.js.map +1 -1
  100. package/dist/ui/screens/ContentRoute.d.ts +3 -1
  101. package/dist/ui/screens/ContentRoute.d.ts.map +1 -1
  102. package/dist/ui/screens/ContentRoute.js +3 -3
  103. package/dist/ui/screens/ContentRoute.js.map +1 -1
  104. package/dist/ui/screens/EditorScreen.d.ts +2 -1
  105. package/dist/ui/screens/EditorScreen.d.ts.map +1 -1
  106. package/dist/ui/screens/EditorScreen.js +2 -2
  107. package/dist/ui/screens/EditorScreen.js.map +1 -1
  108. package/dist/ui/screens/LibraryScreen.d.ts +2 -1
  109. package/dist/ui/screens/LibraryScreen.d.ts.map +1 -1
  110. package/dist/ui/screens/LibraryScreen.js +2 -2
  111. package/dist/ui/screens/LibraryScreen.js.map +1 -1
  112. package/dist/ui/screens/SocialShareScreen.d.ts +3 -1
  113. package/dist/ui/screens/SocialShareScreen.d.ts.map +1 -1
  114. package/dist/ui/screens/SocialShareScreen.js +20 -8
  115. package/dist/ui/screens/SocialShareScreen.js.map +1 -1
  116. package/dist/ui/screens/SurveyResponsesScreen.d.ts +28 -0
  117. package/dist/ui/screens/SurveyResponsesScreen.d.ts.map +1 -0
  118. package/dist/ui/screens/SurveyResponsesScreen.js +110 -0
  119. package/dist/ui/screens/SurveyResponsesScreen.js.map +1 -0
  120. package/dist/ui/screens/author-recovery.d.ts +11 -0
  121. package/dist/ui/screens/author-recovery.d.ts.map +1 -0
  122. package/dist/ui/screens/author-recovery.js +18 -0
  123. package/dist/ui/screens/author-recovery.js.map +1 -0
  124. package/dist/ui/screens/registry.d.ts +4 -0
  125. package/dist/ui/screens/registry.d.ts.map +1 -1
  126. package/dist/ui/screens/registry.js +20 -13
  127. package/dist/ui/screens/registry.js.map +1 -1
  128. package/dist/ui/screens/social-share-data.d.ts +23 -2
  129. package/dist/ui/screens/social-share-data.d.ts.map +1 -1
  130. package/dist/ui/screens/social-share-data.js +57 -11
  131. package/dist/ui/screens/social-share-data.js.map +1 -1
  132. package/package.json +1 -1
  133. package/src/index.ts +2 -2
  134. package/src/integration/index.ts +9 -0
  135. package/src/integration/options.ts +15 -0
  136. package/src/providers/null.ts +19 -0
  137. package/src/providers/types.ts +7 -0
  138. package/src/routes/authors.ts +41 -20
  139. package/src/routes/authz-matrix.ts +2 -0
  140. package/src/routes/context.ts +2 -0
  141. package/src/routes/index.ts +6 -0
  142. package/src/routes/recovery-errors.ts +70 -0
  143. package/src/routes/surveys.ts +130 -0
  144. package/src/surveys/access.ts +11 -0
  145. package/src/surveys/errors.ts +51 -0
  146. package/src/surveys/schema.ts +435 -0
  147. package/src/ui/api/surveys/[surveyId]/responses.csv.ts +23 -0
  148. package/src/ui/api/surveys/[surveyId].ts +23 -0
  149. package/src/ui/client/mount.tsx +6 -2
  150. package/src/ui/commands.ts +14 -1
  151. package/src/ui/components/CmsApp.tsx +25 -3
  152. package/src/ui/components/CommandPalette.tsx +2 -1
  153. package/src/ui/components/ShareModal.tsx +102 -19
  154. package/src/ui/components/SharePickers.tsx +76 -27
  155. package/src/ui/components/Sidebar.tsx +10 -2
  156. package/src/ui/hash-router.ts +1 -0
  157. package/src/ui/nav.ts +15 -2
  158. package/src/ui/screens/AuthorsScreen.tsx +7 -2
  159. package/src/ui/screens/ContentRoute.tsx +13 -3
  160. package/src/ui/screens/EditorScreen.tsx +7 -1
  161. package/src/ui/screens/LibraryScreen.tsx +3 -1
  162. package/src/ui/screens/SocialShareScreen.tsx +53 -6
  163. package/src/ui/screens/SurveyResponsesScreen.tsx +271 -0
  164. package/src/ui/screens/author-recovery.ts +32 -0
  165. package/src/ui/screens/registry.tsx +28 -12
  166. package/src/ui/screens/social-share-data.ts +92 -13
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/routes/context.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,YAAY,EAAE,OAAO,EAAE,CAAA;AAEvB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GACnB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GAGjB,oBAAoB,GAGpB,6BAA6B,CAAA;AAEhC,MAAM,WAAW,OAAO;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,CACF,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI,EACrE,OAAO,CAAC,EAAE;QACT,YAAY,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACvC,GACC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAChD,qBAAqB,CAAC,CACrB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QACT,YAAY,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACvC,GACC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC7B,qBAAqB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;CACxE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACrB,mEAAmE;IACnE,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC3E,oEAAoE;IACpE,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC/E,oFAAoF;IACpF,OAAO,CAAC,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAA;IACrE,gGAAgG;IAChG,WAAW,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;CAC5F;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAA;IAChB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC1C,6BAA6B;IAC7B,EAAE,EAAE,UAAU,CAAA;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,QAAQ,CAK1D;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAIjF"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/routes/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/routes/context.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wDAAwD;AACxD,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,6EAA6E;AAC7E,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,kFAAkF;AAClF,sDAAsD;AA8HtD,MAAM,UAAU,IAAI,CAAC,IAAa,EAAE,MAAM,GAAG,GAAG;IAC/C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAC/C,CAAC,CAAA;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,GAAiB;IAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,CAAA;IAC7D,OAAO,EAAE,EAAE,EAAE,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/routes/context.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wDAAwD;AACxD,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,6EAA6E;AAC7E,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,kFAAkF;AAClF,sDAAsD;AAgItD,MAAM,UAAU,IAAI,CAAC,IAAa,EAAE,MAAM,GAAG,GAAG;IAC/C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAC/C,CAAC,CAAA;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,GAAiB;IAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,CAAA;IAC7D,OAAO,EAAE,EAAE,EAAE,CAAA;AACd,CAAC"}
@@ -19,6 +19,7 @@ export { createRbacRoutes, type RbacRouteConfig, type RbacRouteHandlers, } from
19
19
  export { createInviteRoutes, type InviteRouteConfig, type InviteRouteHandlers, } from './rbac-invites.js';
20
20
  export { createShellRoutes, type ShellRouteConfig, type ShellRouteHandlers, type ShellWorkspaceDescriptor, } from './shell.js';
21
21
  export { createSubscriptionsRoutes, type SubscriptionsRouteConfig, type SubscriptionsRouteHandlers, } from './subscriptions.js';
22
+ export { createSurveyRoutes, type SurveyRouteConfig, type SurveyRouteHandlers, } from './surveys.js';
22
23
  export { createTagRoutes, type TagRouteHandlers } from './tags.js';
23
24
  export { createTopicRoutes, type TopicRouteHandlers } from './topics.js';
24
25
  export { createWebhookRoutes, type DispatchWebhookHook, type WebhookRouteConfig, type WebhookRouteHandlers, } from './webhooks.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,8 @@ export { createInviteRoutes, } from './rbac-invites.js';
53
53
  export { createShellRoutes, } from './shell.js';
54
54
  // Subscriptions routes — SubscriptionsProvider passthrough (P5 Task 6).
55
55
  export { createSubscriptionsRoutes, } from './subscriptions.js';
56
+ // Survey reporting routes — optional storage-neutral provider, protected by role capability.
57
+ export { createSurveyRoutes, } from './surveys.js';
56
58
  // Tag management routes — GET /tags, GET /tags?q=, DELETE /tags/:id (P3 Task 9).
57
59
  export { createTagRoutes } from './tags.js';
58
60
  // Topic management over content_items.primary_topic.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare const AUTHOR_RECOVERY_CLASSES: readonly ["AUTHOR_SYNC_IDENTITY_CONFLICT", "AUTHOR_SYNC_NON_CANONICAL", "AUTHOR_SYNC_IMMUTABLE_ID", "AUTHOR_SHARE_CAMPAIGN_INVARIANT"];
2
+ export type AuthorRecoveryClass = (typeof AUTHOR_RECOVERY_CLASSES)[number];
3
+ export interface AuthorRecoveryIdentity {
4
+ id: string;
5
+ slug: string;
6
+ }
7
+ export interface AuthorRecoveryBody {
8
+ error: string;
9
+ errorClass: AuthorRecoveryClass;
10
+ author: AuthorRecoveryIdentity;
11
+ }
12
+ export declare function classifyAuthorRecoveryError(error: unknown): AuthorRecoveryClass | null;
13
+ export declare function translateAuthorWriteError(input: {
14
+ error: unknown;
15
+ operation: 'create' | 'update';
16
+ author: AuthorRecoveryIdentity;
17
+ }): {
18
+ status: number;
19
+ body: AuthorRecoveryBody;
20
+ } | null;
21
+ //# sourceMappingURL=recovery-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-errors.d.ts","sourceRoot":"","sources":["../../src/routes/recovery-errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,wIAK1B,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1E,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,mBAAmB,CAAA;IAC/B,MAAM,EAAE,sBAAsB,CAAA;CAC9B;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAMtF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,MAAM,EAAE,sBAAsB,CAAA;CAC9B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAAG,IAAI,CAoBtD"}
@@ -0,0 +1,53 @@
1
+ export const AUTHOR_RECOVERY_CLASSES = [
2
+ 'AUTHOR_SYNC_IDENTITY_CONFLICT',
3
+ 'AUTHOR_SYNC_NON_CANONICAL',
4
+ 'AUTHOR_SYNC_IMMUTABLE_ID',
5
+ 'AUTHOR_SHARE_CAMPAIGN_INVARIANT',
6
+ ];
7
+ export function classifyAuthorRecoveryError(error) {
8
+ const messages = collectErrorMessages(error);
9
+ for (const errorClass of AUTHOR_RECOVERY_CLASSES) {
10
+ if (messages.some((message) => message.includes(errorClass)))
11
+ return errorClass;
12
+ }
13
+ return null;
14
+ }
15
+ export function translateAuthorWriteError(input) {
16
+ const errorClass = classifyAuthorRecoveryError(input.error);
17
+ if (!errorClass)
18
+ return null;
19
+ const body = {
20
+ error: `${errorClass}: canonical author synchronization failed (author id: ${input.author.id}; slug: ${input.author.slug})`,
21
+ errorClass,
22
+ author: input.author,
23
+ };
24
+ console.error('GL_CMS_AUTHOR_SYNC_FAILURE', {
25
+ event: 'author_sync_failure',
26
+ errorClass,
27
+ operation: input.operation,
28
+ authorId: input.author.id,
29
+ authorSlug: input.author.slug,
30
+ });
31
+ return {
32
+ status: errorClass === 'AUTHOR_SYNC_NON_CANONICAL' ? 422 : 409,
33
+ body,
34
+ };
35
+ }
36
+ function collectErrorMessages(error) {
37
+ const messages = [];
38
+ let current = error;
39
+ const seen = new Set();
40
+ while (current && !seen.has(current)) {
41
+ seen.add(current);
42
+ if (current instanceof Error) {
43
+ messages.push(current.message);
44
+ current = current.cause;
45
+ }
46
+ else {
47
+ messages.push(String(current));
48
+ break;
49
+ }
50
+ }
51
+ return messages;
52
+ }
53
+ //# sourceMappingURL=recovery-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-errors.js","sourceRoot":"","sources":["../../src/routes/recovery-errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC,+BAA+B;IAC/B,2BAA2B;IAC3B,0BAA0B;IAC1B,iCAAiC;CACxB,CAAA;AAeV,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACzD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC5C,KAAK,MAAM,UAAU,IAAI,uBAAuB,EAAE,CAAC;QAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAAE,OAAO,UAAU,CAAA;IAChF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAIzC;IACA,MAAM,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,MAAM,IAAI,GAAuB;QAChC,KAAK,EAAE,GAAG,UAAU,yDAAyD,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG;QAC3H,UAAU;QACV,MAAM,EAAE,KAAK,CAAC,MAAM;KACpB,CAAA;IACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE;QAC3C,KAAK,EAAE,qBAAqB;QAC5B,UAAU;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACzB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;KAC7B,CAAC,CAAA;IACF,OAAO;QACN,MAAM,EAAE,UAAU,KAAK,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAC9D,IAAI;KACJ,CAAA;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,OAAO,GAAY,KAAK,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAA;IAC/B,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjB,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAA;QACxB,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;YAC9B,MAAK;QACN,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type CmsProviders } from '../providers/types.js';
2
+ import type { Authz, RouteContext } from './context.js';
3
+ export interface SurveyRouteConfig {
4
+ authz: Authz;
5
+ providers?: Partial<CmsProviders>;
6
+ }
7
+ export interface SurveyRouteHandlers {
8
+ results(ctx: RouteContext): Promise<Response>;
9
+ csv(ctx: RouteContext): Promise<Response>;
10
+ }
11
+ export declare function createSurveyRoutes(config: SurveyRouteConfig): SurveyRouteHandlers;
12
+ //# sourceMappingURL=surveys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surveys.d.ts","sourceRoot":"","sources":["../../src/routes/surveys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,uBAAuB,CAAA;AAQ5E,OAAO,KAAK,EAAE,KAAK,EAAc,YAAY,EAAE,MAAM,cAAc,CAAA;AAEnE,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7C,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CA4CjF"}
@@ -0,0 +1,109 @@
1
+ import { nullProviders } from '../providers/null.js';
2
+ import { ProviderHttpError } from '../providers/types.js';
3
+ import { SURVEY_ERROR_CODE_HEADER, SURVEY_ERROR_DEFINITIONS, surveyErrorBody, } from '../surveys/errors.js';
4
+ import { SurveyCsvResultSchema, SurveyIdSchema, SurveyResultsSchema } from '../surveys/schema.js';
5
+ export function createSurveyRoutes(config) {
6
+ const providers = { ...nullProviders, ...(config.providers ?? {}) };
7
+ return {
8
+ async results(ctx) {
9
+ const denied = await requireSurveyAccess(config.authz, ctx);
10
+ if (denied)
11
+ return withNoStoreAuthFailure(denied);
12
+ const surveyId = parseSurveyId(ctx);
13
+ if (!surveyId)
14
+ return surveyErrorResponse('survey_invalid_request');
15
+ try {
16
+ const parsed = SurveyResultsSchema.safeParse(await providers.surveys?.getResults({ surveyId }));
17
+ if (!parsed.success || parsed.data.survey.id !== surveyId) {
18
+ return surveyErrorResponse('survey_provider_malformed');
19
+ }
20
+ return responseJson(parsed.data);
21
+ }
22
+ catch (error) {
23
+ return providerFailure(error);
24
+ }
25
+ },
26
+ async csv(ctx) {
27
+ const denied = await requireSurveyAccess(config.authz, ctx);
28
+ if (denied)
29
+ return withNoStoreAuthFailure(denied);
30
+ const surveyId = parseSurveyId(ctx);
31
+ if (!surveyId)
32
+ return surveyErrorResponse('survey_invalid_request');
33
+ try {
34
+ const parsed = SurveyCsvResultSchema.safeParse(await providers.surveys?.getCsv({ surveyId }));
35
+ if (!parsed.success)
36
+ return surveyErrorResponse('survey_provider_malformed');
37
+ return new Response(parsed.data.content, {
38
+ headers: {
39
+ 'Cache-Control': 'no-store',
40
+ 'Content-Disposition': `attachment; filename="${safeCsvFilename(parsed.data.filename)}"`,
41
+ 'Content-Type': 'text/csv; charset=utf-8',
42
+ },
43
+ });
44
+ }
45
+ catch (error) {
46
+ return providerFailure(error);
47
+ }
48
+ },
49
+ };
50
+ }
51
+ async function requireSurveyAccess(authz, ctx) {
52
+ if (!authz.requireRole)
53
+ return surveyErrorResponse('survey_internal_failure');
54
+ return authz.requireRole('view_survey_responses', ctx);
55
+ }
56
+ function parseSurveyId(ctx) {
57
+ const value = ctx.params.surveyId ?? ctx.params.id;
58
+ const parsed = SurveyIdSchema.safeParse(value);
59
+ return parsed.success ? parsed.data : null;
60
+ }
61
+ function safeCsvFilename(value) {
62
+ const basename = value
63
+ .split(/[\\/]/)
64
+ .at(-1)
65
+ ?.replace(/[\r\n]/g, '') ?? '';
66
+ const safe = basename
67
+ .replace(/[^A-Za-z0-9._-]+/g, '-')
68
+ .replace(/^\.+/, '')
69
+ .replace(/-+/g, '-')
70
+ .slice(0, 180);
71
+ return safe.endsWith('.csv') ? safe : `${safe || 'survey-responses'}.csv`;
72
+ }
73
+ function providerFailure(error) {
74
+ if (error instanceof ProviderHttpError) {
75
+ const mapped = ProviderFailureAllowlist.get(`${error.status}:${error.code}`);
76
+ if (mapped)
77
+ return surveyErrorResponse(mapped);
78
+ }
79
+ return surveyErrorResponse('survey_upstream_failure');
80
+ }
81
+ const ProviderFailureAllowlist = new Map([
82
+ ['403:survey_forbidden', 'survey_forbidden'],
83
+ ['404:survey_not_found', 'survey_not_found'],
84
+ ['500:survey_internal_failure', 'survey_internal_failure'],
85
+ ['502:survey_upstream_failure', 'survey_upstream_failure'],
86
+ ['503:survey_provider_unavailable', 'survey_provider_unavailable'],
87
+ ['503:survey_upstream_unavailable', 'survey_upstream_unavailable'],
88
+ ]);
89
+ function surveyErrorResponse(code) {
90
+ return responseJson(surveyErrorBody(code), SURVEY_ERROR_DEFINITIONS[code].status, code);
91
+ }
92
+ function withNoStoreAuthFailure(response) {
93
+ const cloned = response.clone();
94
+ cloned.headers.set('Cache-Control', 'no-store');
95
+ if (cloned.status === 401 || cloned.status === 403) {
96
+ cloned.headers.set(SURVEY_ERROR_CODE_HEADER, 'survey_forbidden');
97
+ }
98
+ return cloned;
99
+ }
100
+ function responseJson(body, status = 200, code) {
101
+ const headers = new Headers({ 'Cache-Control': 'no-store', 'Content-Type': 'application/json' });
102
+ if (code)
103
+ headers.set(SURVEY_ERROR_CODE_HEADER, code);
104
+ return new Response(JSON.stringify(body), {
105
+ status,
106
+ headers,
107
+ });
108
+ }
109
+ //# sourceMappingURL=surveys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surveys.js","sourceRoot":"","sources":["../../src/routes/surveys.ts"],"names":[],"mappings":"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"}
@@ -7,18 +7,18 @@ export declare const InsightEvidenceDemandSchema: z.ZodObject<{
7
7
  position: z.ZodNumber;
8
8
  trend: z.ZodNumber;
9
9
  }, "strip", z.ZodTypeAny, {
10
+ position: number;
10
11
  query: string;
11
12
  impressions: number;
12
13
  clicks: number;
13
14
  ctr: number;
14
- position: number;
15
15
  trend: number;
16
16
  }, {
17
+ position: number;
17
18
  query: string;
18
19
  impressions: number;
19
20
  clicks: number;
20
21
  ctr: number;
21
- position: number;
22
22
  trend: number;
23
23
  }>;
24
24
  export declare const InsightEvidenceOpportunitySchema: z.ZodObject<{
@@ -39,18 +39,18 @@ export declare const InsightEvidenceSchema: z.ZodUnion<[z.ZodObject<{
39
39
  position: z.ZodNumber;
40
40
  trend: z.ZodNumber;
41
41
  }, "strip", z.ZodTypeAny, {
42
+ position: number;
42
43
  query: string;
43
44
  impressions: number;
44
45
  clicks: number;
45
46
  ctr: number;
46
- position: number;
47
47
  trend: number;
48
48
  }, {
49
+ position: number;
49
50
  query: string;
50
51
  impressions: number;
51
52
  clicks: number;
52
53
  ctr: number;
53
- position: number;
54
54
  trend: number;
55
55
  }>, z.ZodObject<{
56
56
  basis: z.ZodString;
@@ -191,18 +191,18 @@ export declare const InsightSuggestionRowSchema: z.ZodObject<{
191
191
  position: z.ZodNumber;
192
192
  trend: z.ZodNumber;
193
193
  }, "strip", z.ZodTypeAny, {
194
+ position: number;
194
195
  query: string;
195
196
  impressions: number;
196
197
  clicks: number;
197
198
  ctr: number;
198
- position: number;
199
199
  trend: number;
200
200
  }, {
201
+ position: number;
201
202
  query: string;
202
203
  impressions: number;
203
204
  clicks: number;
204
205
  ctr: number;
205
- position: number;
206
206
  trend: number;
207
207
  }>, z.ZodObject<{
208
208
  basis: z.ZodString;
@@ -317,11 +317,11 @@ export declare const InsightSuggestionRowSchema: z.ZodObject<{
317
317
  desk_rank: number;
318
318
  headline: string;
319
319
  evidence: {
320
+ position: number;
320
321
  query: string;
321
322
  impressions: number;
322
323
  clicks: number;
323
324
  ctr: number;
324
- position: number;
325
325
  trend: number;
326
326
  } | {
327
327
  basis: string;
@@ -360,11 +360,11 @@ export declare const InsightSuggestionRowSchema: z.ZodObject<{
360
360
  desk_rank: number;
361
361
  headline: string;
362
362
  evidence: {
363
+ position: number;
363
364
  query: string;
364
365
  impressions: number;
365
366
  clicks: number;
366
367
  ctr: number;
367
- position: number;
368
368
  trend: number;
369
369
  } | {
370
370
  basis: string;
@@ -415,6 +415,10 @@ export declare const InsightsIngestMetaSchema: z.ZodObject<{
415
415
  error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
416
416
  }, "strip", z.ZodTypeAny, {
417
417
  status: "failed" | "running" | "completed" | "partial";
418
+ counts: {
419
+ demand_count: number;
420
+ opportunity_count: number;
421
+ };
418
422
  site_id: string;
419
423
  run_date: string;
420
424
  event_id: string;
@@ -422,13 +426,13 @@ export declare const InsightsIngestMetaSchema: z.ZodObject<{
422
426
  run_attempt: number;
423
427
  generated_at: number;
424
428
  content_hash: string;
429
+ error?: string | null | undefined;
430
+ }, {
431
+ status: "failed" | "running" | "completed" | "partial";
425
432
  counts: {
426
433
  demand_count: number;
427
434
  opportunity_count: number;
428
435
  };
429
- error?: string | null | undefined;
430
- }, {
431
- status: "failed" | "running" | "completed" | "partial";
432
436
  site_id: string;
433
437
  run_date: string;
434
438
  event_id: string;
@@ -436,10 +440,6 @@ export declare const InsightsIngestMetaSchema: z.ZodObject<{
436
440
  run_attempt: number;
437
441
  generated_at: number;
438
442
  content_hash: string;
439
- counts: {
440
- demand_count: number;
441
- opportunity_count: number;
442
- };
443
443
  error?: string | null | undefined;
444
444
  }>;
445
445
  export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
@@ -465,6 +465,10 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
465
465
  error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
466
466
  }, "strip", z.ZodTypeAny, {
467
467
  status: "failed" | "running" | "completed" | "partial";
468
+ counts: {
469
+ demand_count: number;
470
+ opportunity_count: number;
471
+ };
468
472
  site_id: string;
469
473
  run_date: string;
470
474
  event_id: string;
@@ -472,13 +476,13 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
472
476
  run_attempt: number;
473
477
  generated_at: number;
474
478
  content_hash: string;
479
+ error?: string | null | undefined;
480
+ }, {
481
+ status: "failed" | "running" | "completed" | "partial";
475
482
  counts: {
476
483
  demand_count: number;
477
484
  opportunity_count: number;
478
485
  };
479
- error?: string | null | undefined;
480
- }, {
481
- status: "failed" | "running" | "completed" | "partial";
482
486
  site_id: string;
483
487
  run_date: string;
484
488
  event_id: string;
@@ -486,10 +490,6 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
486
490
  run_attempt: number;
487
491
  generated_at: number;
488
492
  content_hash: string;
489
- counts: {
490
- demand_count: number;
491
- opportunity_count: number;
492
- };
493
493
  error?: string | null | undefined;
494
494
  }>;
495
495
  rows: z.ZodArray<z.ZodObject<{
@@ -510,18 +510,18 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
510
510
  position: z.ZodNumber;
511
511
  trend: z.ZodNumber;
512
512
  }, "strip", z.ZodTypeAny, {
513
+ position: number;
513
514
  query: string;
514
515
  impressions: number;
515
516
  clicks: number;
516
517
  ctr: number;
517
- position: number;
518
518
  trend: number;
519
519
  }, {
520
+ position: number;
520
521
  query: string;
521
522
  impressions: number;
522
523
  clicks: number;
523
524
  ctr: number;
524
- position: number;
525
525
  trend: number;
526
526
  }>, z.ZodObject<{
527
527
  basis: z.ZodString;
@@ -636,11 +636,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
636
636
  desk_rank: number;
637
637
  headline: string;
638
638
  evidence: {
639
+ position: number;
639
640
  query: string;
640
641
  impressions: number;
641
642
  clicks: number;
642
643
  ctr: number;
643
- position: number;
644
644
  trend: number;
645
645
  } | {
646
646
  basis: string;
@@ -679,11 +679,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
679
679
  desk_rank: number;
680
680
  headline: string;
681
681
  evidence: {
682
+ position: number;
682
683
  query: string;
683
684
  impressions: number;
684
685
  clicks: number;
685
686
  ctr: number;
686
- position: number;
687
687
  trend: number;
688
688
  } | {
689
689
  basis: string;
@@ -715,6 +715,10 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
715
715
  }, "strip", z.ZodTypeAny, {
716
716
  meta: {
717
717
  status: "failed" | "running" | "completed" | "partial";
718
+ counts: {
719
+ demand_count: number;
720
+ opportunity_count: number;
721
+ };
718
722
  site_id: string;
719
723
  run_date: string;
720
724
  event_id: string;
@@ -722,10 +726,6 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
722
726
  run_attempt: number;
723
727
  generated_at: number;
724
728
  content_hash: string;
725
- counts: {
726
- demand_count: number;
727
- opportunity_count: number;
728
- };
729
729
  error?: string | null | undefined;
730
730
  };
731
731
  rows: {
@@ -739,11 +739,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
739
739
  desk_rank: number;
740
740
  headline: string;
741
741
  evidence: {
742
+ position: number;
742
743
  query: string;
743
744
  impressions: number;
744
745
  clicks: number;
745
746
  ctr: number;
746
- position: number;
747
747
  trend: number;
748
748
  } | {
749
749
  basis: string;
@@ -775,6 +775,10 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
775
775
  }, {
776
776
  meta: {
777
777
  status: "failed" | "running" | "completed" | "partial";
778
+ counts: {
779
+ demand_count: number;
780
+ opportunity_count: number;
781
+ };
778
782
  site_id: string;
779
783
  run_date: string;
780
784
  event_id: string;
@@ -782,10 +786,6 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
782
786
  run_attempt: number;
783
787
  generated_at: number;
784
788
  content_hash: string;
785
- counts: {
786
- demand_count: number;
787
- opportunity_count: number;
788
- };
789
789
  error?: string | null | undefined;
790
790
  };
791
791
  rows: {
@@ -799,11 +799,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
799
799
  desk_rank: number;
800
800
  headline: string;
801
801
  evidence: {
802
+ position: number;
802
803
  query: string;
803
804
  impressions: number;
804
805
  clicks: number;
805
806
  ctr: number;
806
- position: number;
807
807
  trend: number;
808
808
  } | {
809
809
  basis: string;
@@ -835,6 +835,10 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
835
835
  }>, {
836
836
  meta: {
837
837
  status: "failed" | "running" | "completed" | "partial";
838
+ counts: {
839
+ demand_count: number;
840
+ opportunity_count: number;
841
+ };
838
842
  site_id: string;
839
843
  run_date: string;
840
844
  event_id: string;
@@ -842,10 +846,6 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
842
846
  run_attempt: number;
843
847
  generated_at: number;
844
848
  content_hash: string;
845
- counts: {
846
- demand_count: number;
847
- opportunity_count: number;
848
- };
849
849
  error?: string | null | undefined;
850
850
  };
851
851
  rows: {
@@ -859,11 +859,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
859
859
  desk_rank: number;
860
860
  headline: string;
861
861
  evidence: {
862
+ position: number;
862
863
  query: string;
863
864
  impressions: number;
864
865
  clicks: number;
865
866
  ctr: number;
866
- position: number;
867
867
  trend: number;
868
868
  } | {
869
869
  basis: string;
@@ -895,6 +895,10 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
895
895
  }, {
896
896
  meta: {
897
897
  status: "failed" | "running" | "completed" | "partial";
898
+ counts: {
899
+ demand_count: number;
900
+ opportunity_count: number;
901
+ };
898
902
  site_id: string;
899
903
  run_date: string;
900
904
  event_id: string;
@@ -902,10 +906,6 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
902
906
  run_attempt: number;
903
907
  generated_at: number;
904
908
  content_hash: string;
905
- counts: {
906
- demand_count: number;
907
- opportunity_count: number;
908
- };
909
909
  error?: string | null | undefined;
910
910
  };
911
911
  rows: {
@@ -919,11 +919,11 @@ export declare const InsightsIngestPayloadSchema: z.ZodEffects<z.ZodObject<{
919
919
  desk_rank: number;
920
920
  headline: string;
921
921
  evidence: {
922
+ position: number;
922
923
  query: string;
923
924
  impressions: number;
924
925
  clicks: number;
925
926
  ctr: number;
926
- position: number;
927
927
  trend: number;
928
928
  } | {
929
929
  basis: string;
@@ -0,0 +1,4 @@
1
+ import type { CmsRole } from '../schema/types.js';
2
+ export declare const SURVEY_RESPONSE_ROLES: ReadonlySet<CmsRole>;
3
+ export declare function canViewSurveyResponses(role: CmsRole | null | undefined): boolean;
4
+ //# sourceMappingURL=access.d.ts.map