@growth-labs/cms 0.8.19 → 0.8.23

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 (182) hide show
  1. package/dist/cli/foundry-emit.d.ts +14 -0
  2. package/dist/cli/foundry-emit.d.ts.map +1 -0
  3. package/dist/cli/foundry-emit.js +69 -0
  4. package/dist/cli/foundry-emit.js.map +1 -0
  5. package/dist/engine/fronts-publish-intent.d.ts +1 -1
  6. package/dist/engine/fronts-publish-intent.d.ts.map +1 -1
  7. package/dist/engine/fronts-publish-intent.js +12 -1
  8. package/dist/engine/fronts-publish-intent.js.map +1 -1
  9. package/dist/engine/publication-receipt/receipt.d.ts +20 -20
  10. package/dist/engine/publisher.d.ts +16 -1
  11. package/dist/engine/publisher.d.ts.map +1 -1
  12. package/dist/engine/publisher.js +55 -4
  13. package/dist/engine/publisher.js.map +1 -1
  14. package/dist/engine/tags.d.ts.map +1 -1
  15. package/dist/engine/tags.js +18 -1
  16. package/dist/engine/tags.js.map +1 -1
  17. package/dist/engine/topics.d.ts.map +1 -1
  18. package/dist/engine/topics.js +4 -1
  19. package/dist/engine/topics.js.map +1 -1
  20. package/dist/engine/video-source.d.ts +21 -0
  21. package/dist/engine/video-source.d.ts.map +1 -1
  22. package/dist/engine/video-source.js +40 -0
  23. package/dist/engine/video-source.js.map +1 -1
  24. package/dist/foundry-emit.d.ts +146 -0
  25. package/dist/foundry-emit.d.ts.map +1 -0
  26. package/dist/foundry-emit.js +189 -0
  27. package/dist/foundry-emit.js.map +1 -0
  28. package/dist/integration/index.d.ts.map +1 -1
  29. package/dist/integration/index.js +9 -0
  30. package/dist/integration/index.js.map +1 -1
  31. package/dist/integration/options.d.ts +24 -0
  32. package/dist/integration/options.d.ts.map +1 -1
  33. package/dist/integration/options.js +22 -0
  34. package/dist/integration/options.js.map +1 -1
  35. package/dist/lib/publish-timezone.d.ts +38 -0
  36. package/dist/lib/publish-timezone.d.ts.map +1 -0
  37. package/dist/lib/publish-timezone.js +135 -0
  38. package/dist/lib/publish-timezone.js.map +1 -0
  39. package/dist/providers/null.d.ts.map +1 -1
  40. package/dist/providers/null.js +6 -0
  41. package/dist/providers/null.js.map +1 -1
  42. package/dist/providers/types.d.ts +56 -0
  43. package/dist/providers/types.d.ts.map +1 -1
  44. package/dist/providers/types.js.map +1 -1
  45. package/dist/routes/ai.d.ts.map +1 -1
  46. package/dist/routes/ai.js +21 -13
  47. package/dist/routes/ai.js.map +1 -1
  48. package/dist/routes/analytics.d.ts +1 -0
  49. package/dist/routes/analytics.d.ts.map +1 -1
  50. package/dist/routes/analytics.js +20 -0
  51. package/dist/routes/analytics.js.map +1 -1
  52. package/dist/routes/content.d.ts +27 -0
  53. package/dist/routes/content.d.ts.map +1 -1
  54. package/dist/routes/content.js +60 -114
  55. package/dist/routes/content.js.map +1 -1
  56. package/dist/routes/foundry-publish.d.ts +50 -0
  57. package/dist/routes/foundry-publish.d.ts.map +1 -1
  58. package/dist/routes/foundry-publish.js +540 -27
  59. package/dist/routes/foundry-publish.js.map +1 -1
  60. package/dist/routes/machine-context.d.ts +6 -0
  61. package/dist/routes/machine-context.d.ts.map +1 -0
  62. package/dist/routes/machine-context.js +20 -0
  63. package/dist/routes/machine-context.js.map +1 -0
  64. package/dist/routes/surveys.d.ts +14 -1
  65. package/dist/routes/surveys.d.ts.map +1 -1
  66. package/dist/routes/surveys.js +515 -10
  67. package/dist/routes/surveys.js.map +1 -1
  68. package/dist/schema/insights-ingest.d.ts +8 -8
  69. package/dist/schema/migrations.d.ts.map +1 -1
  70. package/dist/schema/migrations.js +15 -0
  71. package/dist/schema/migrations.js.map +1 -1
  72. package/dist/schema/tables.d.ts +1 -1
  73. package/dist/schema/tables.d.ts.map +1 -1
  74. package/dist/schema/tables.js +2 -0
  75. package/dist/schema/tables.js.map +1 -1
  76. package/dist/surveys/access.d.ts +1 -0
  77. package/dist/surveys/access.d.ts.map +1 -1
  78. package/dist/surveys/access.js +13 -4
  79. package/dist/surveys/access.js.map +1 -1
  80. package/dist/surveys/auto-label.d.ts +100 -0
  81. package/dist/surveys/auto-label.d.ts.map +1 -0
  82. package/dist/surveys/auto-label.js +325 -0
  83. package/dist/surveys/auto-label.js.map +1 -0
  84. package/dist/surveys/schema.d.ts +38 -12
  85. package/dist/surveys/schema.d.ts.map +1 -1
  86. package/dist/surveys/schema.js +18 -1
  87. package/dist/surveys/schema.js.map +1 -1
  88. package/dist/ui/api/_content-config.d.ts.map +1 -1
  89. package/dist/ui/api/_content-config.js +4 -0
  90. package/dist/ui/api/_content-config.js.map +1 -1
  91. package/dist/ui/api/analytics.d.ts.map +1 -1
  92. package/dist/ui/api/analytics.js +5 -2
  93. package/dist/ui/api/analytics.js.map +1 -1
  94. package/dist/ui/api/foundry/articles/[external_id]/publish.d.ts +3 -0
  95. package/dist/ui/api/foundry/articles/[external_id]/publish.d.ts.map +1 -0
  96. package/dist/ui/api/foundry/articles/[external_id]/publish.js +14 -0
  97. package/dist/ui/api/foundry/articles/[external_id]/publish.js.map +1 -0
  98. package/dist/ui/api/surveys/[surveyId]/answers/label.d.ts +3 -0
  99. package/dist/ui/api/surveys/[surveyId]/answers/label.d.ts.map +1 -0
  100. package/dist/ui/api/surveys/[surveyId]/answers/label.js +17 -0
  101. package/dist/ui/api/surveys/[surveyId]/answers/label.js.map +1 -0
  102. package/dist/ui/api/surveys/[surveyId].d.ts.map +1 -1
  103. package/dist/ui/api/surveys/[surveyId].js +28 -1
  104. package/dist/ui/api/surveys/[surveyId].js.map +1 -1
  105. package/dist/ui/commands.d.ts.map +1 -1
  106. package/dist/ui/commands.js +2 -0
  107. package/dist/ui/commands.js.map +1 -1
  108. package/dist/ui/hash-router.d.ts +1 -1
  109. package/dist/ui/hash-router.d.ts.map +1 -1
  110. package/dist/ui/hash-router.js +1 -0
  111. package/dist/ui/hash-router.js.map +1 -1
  112. package/dist/ui/inspector/PublishTab.d.ts +7 -1
  113. package/dist/ui/inspector/PublishTab.d.ts.map +1 -1
  114. package/dist/ui/inspector/PublishTab.js +24 -26
  115. package/dist/ui/inspector/PublishTab.js.map +1 -1
  116. package/dist/ui/nav.d.ts.map +1 -1
  117. package/dist/ui/nav.js +1 -0
  118. package/dist/ui/nav.js.map +1 -1
  119. package/dist/ui/screens/AnalyticsScreen.d.ts +6 -1
  120. package/dist/ui/screens/AnalyticsScreen.d.ts.map +1 -1
  121. package/dist/ui/screens/AnalyticsScreen.js +13 -8
  122. package/dist/ui/screens/AnalyticsScreen.js.map +1 -1
  123. package/dist/ui/screens/PodcastListeningScreen.d.ts +6 -0
  124. package/dist/ui/screens/PodcastListeningScreen.d.ts.map +1 -0
  125. package/dist/ui/screens/PodcastListeningScreen.js +244 -0
  126. package/dist/ui/screens/PodcastListeningScreen.js.map +1 -0
  127. package/dist/ui/screens/SurveyResponsesScreen.d.ts +4 -2
  128. package/dist/ui/screens/SurveyResponsesScreen.d.ts.map +1 -1
  129. package/dist/ui/screens/SurveyResponsesScreen.js +71 -12
  130. package/dist/ui/screens/SurveyResponsesScreen.js.map +1 -1
  131. package/dist/ui/screens/analytics-data.d.ts +14 -0
  132. package/dist/ui/screens/analytics-data.d.ts.map +1 -1
  133. package/dist/ui/screens/analytics-data.js +16 -0
  134. package/dist/ui/screens/analytics-data.js.map +1 -1
  135. package/dist/ui/screens/podcast-listening-data.d.ts +19 -0
  136. package/dist/ui/screens/podcast-listening-data.d.ts.map +1 -0
  137. package/dist/ui/screens/podcast-listening-data.js +98 -0
  138. package/dist/ui/screens/podcast-listening-data.js.map +1 -0
  139. package/dist/ui/screens/registry.d.ts.map +1 -1
  140. package/dist/ui/screens/registry.js +2 -0
  141. package/dist/ui/screens/registry.js.map +1 -1
  142. package/docs/foundry-publish.md +208 -0
  143. package/migrations/0033_survey_answer_labels.sql +15 -0
  144. package/package.json +9 -3
  145. package/src/cli/foundry-emit.ts +85 -0
  146. package/src/engine/fronts-publish-intent.ts +23 -1
  147. package/src/engine/publisher.ts +80 -4
  148. package/src/engine/tags.ts +21 -1
  149. package/src/engine/topics.ts +4 -1
  150. package/src/engine/video-source.ts +44 -0
  151. package/src/foundry-emit.ts +255 -0
  152. package/src/integration/index.ts +9 -0
  153. package/src/integration/options.ts +23 -0
  154. package/src/lib/publish-timezone.ts +154 -0
  155. package/src/providers/null.ts +6 -0
  156. package/src/providers/types.ts +52 -0
  157. package/src/routes/ai.ts +29 -17
  158. package/src/routes/analytics.ts +21 -0
  159. package/src/routes/content.ts +86 -131
  160. package/src/routes/foundry-publish.ts +746 -29
  161. package/src/routes/machine-context.ts +24 -0
  162. package/src/routes/surveys.ts +587 -12
  163. package/src/schema/migrations.ts +15 -0
  164. package/src/schema/tables.ts +2 -0
  165. package/src/surveys/access.ts +14 -4
  166. package/src/surveys/auto-label.ts +420 -0
  167. package/src/surveys/schema.ts +25 -1
  168. package/src/ui/api/_content-config.ts +6 -0
  169. package/src/ui/api/analytics.ts +5 -2
  170. package/src/ui/api/foundry/articles/[external_id]/publish.ts +18 -0
  171. package/src/ui/api/surveys/[surveyId]/answers/label.ts +23 -0
  172. package/src/ui/api/surveys/[surveyId].ts +37 -3
  173. package/src/ui/commands.ts +2 -0
  174. package/src/ui/hash-router.ts +1 -0
  175. package/src/ui/inspector/PublishTab.tsx +33 -25
  176. package/src/ui/nav.ts +1 -0
  177. package/src/ui/screens/AnalyticsScreen.tsx +34 -6
  178. package/src/ui/screens/PodcastListeningScreen.tsx +529 -0
  179. package/src/ui/screens/SurveyResponsesScreen.tsx +179 -13
  180. package/src/ui/screens/analytics-data.ts +18 -0
  181. package/src/ui/screens/podcast-listening-data.ts +114 -0
  182. package/src/ui/screens/registry.tsx +2 -0
@@ -0,0 +1,189 @@
1
+ // @growth-labs/cms/foundry-emit — the one v2 schema for the Foundry machine
2
+ // article route, shared by the route (routes/foundry-publish.ts) and by every
3
+ // producer that emits into it, plus a pure mapper from the archive-import item
4
+ // shape (ContentArchiveItem, as the channel repos' compiler.mjs builds it) to a
5
+ // v2 body.
6
+ //
7
+ // This module must stay importable in pure Node: zod, the pure slug helpers and
8
+ // type-only imports. Nothing here touches D1, the network or `cloudflare:*`.
9
+ import { sha256Hex } from '@growth-labs/foundry-signing';
10
+ import { z } from 'zod';
11
+ import { slugify } from './engine/slug.js';
12
+ export const FOUNDRY_ARTICLE_SCHEMA_VERSION = 2;
13
+ /** The machine route's own source namespace; an adoption never targets it. */
14
+ export const FOUNDRY_SOURCE_PREFIX = 'foundry:';
15
+ /** Upper bound the publication kernel accepts for a revision's slug. */
16
+ export const FOUNDRY_SLUG_MAX_LENGTH = 512;
17
+ /**
18
+ * The engine's slug rule, applied verbatim: a v2 slug is accepted only when it
19
+ * is already canonical (`slugify(slug) === slug`), because the route never
20
+ * derives, rewrites or suffixes a v2 slug.
21
+ */
22
+ export function isCanonicalSlug(value) {
23
+ return value.length >= 3 && value.length <= FOUNDRY_SLUG_MAX_LENGTH && slugify(value) === value;
24
+ }
25
+ const HERO_IMAGE_KEY = /^[A-Za-z0-9][A-Za-z0-9._\-/]*$/;
26
+ export const FoundryArticleV2Schema = z
27
+ .object({
28
+ schemaVersion: z.literal(FOUNDRY_ARTICLE_SCHEMA_VERSION),
29
+ slug: z.string().refine(isCanonicalSlug, {
30
+ message: 'slug must already be canonical: lowercase a-z, 0-9 and single hyphens, 3-512 chars',
31
+ }),
32
+ title: z.string().trim().min(3),
33
+ body_html: z.string().min(1),
34
+ hero_image_key: z
35
+ .string()
36
+ .min(1)
37
+ .max(1024)
38
+ .refine((key) => HERO_IMAGE_KEY.test(key) && !key.split('/').includes('..'), {
39
+ message: 'hero_image_key must be a relative object key',
40
+ })
41
+ .optional(),
42
+ hero_image_url: z
43
+ .string()
44
+ .url()
45
+ .refine((url) => url.startsWith('https://'), { message: 'hero_image_url must be https' })
46
+ .optional(),
47
+ publishAt: z.string().datetime({ offset: true }).optional(),
48
+ author: z.string().trim().min(1).max(200).optional(),
49
+ desk: z.string().trim().min(1).max(100).optional(),
50
+ tags: z.array(z.string().trim().min(1).max(100)).max(50).optional(),
51
+ description: z.string().trim().min(1).optional(),
52
+ visibility: z.enum(['free', 'premium']).optional(),
53
+ adoptSourceId: z
54
+ .string()
55
+ .min(1)
56
+ .max(256)
57
+ .refine((value) => value === value.trim() && !value.startsWith(FOUNDRY_SOURCE_PREFIX), {
58
+ message: 'adoptSourceId must be a trimmed bridge source id, never a foundry: id',
59
+ })
60
+ .optional(),
61
+ })
62
+ .strict()
63
+ .refine((body) => !(body.hero_image_key && body.hero_image_url), {
64
+ message: 'send hero_image_key or hero_image_url, not both',
65
+ path: ['hero_image_key'],
66
+ });
67
+ export class FoundryEmitError extends Error {
68
+ code;
69
+ constructor(code, message) {
70
+ super(message);
71
+ this.name = 'FoundryEmitError';
72
+ this.code = code;
73
+ }
74
+ }
75
+ function present(value) {
76
+ return typeof value === 'string' && value.trim().length > 0;
77
+ }
78
+ /**
79
+ * Map one archive-import item to a v2 route body. Pure: the same item always
80
+ * yields the same body, and the result is parsed by the route's own schema, so
81
+ * a body this function returns is one the route accepts.
82
+ */
83
+ export function toFoundryArticleV2(item, options = {}) {
84
+ if (item.type !== undefined && item.type !== 'article') {
85
+ throw new FoundryEmitError('unsupported_type', `only articles are emitted, got ${item.type}`);
86
+ }
87
+ if (!present(item.slug))
88
+ throw new FoundryEmitError('slug_missing', 'archive item has no slug');
89
+ if (!present(item.title))
90
+ throw new FoundryEmitError('title_missing', 'archive item has no title');
91
+ if (!present(item.bodyHtml)) {
92
+ throw new FoundryEmitError('body_html_missing', 'archive item has no rendered bodyHtml');
93
+ }
94
+ let publishAt;
95
+ if (options.publishAt !== undefined) {
96
+ publishAt = options.publishAt ?? undefined;
97
+ }
98
+ else if (typeof item.publishedAt === 'number' && Number.isFinite(item.publishedAt)) {
99
+ publishAt = new Date(item.publishedAt * 1_000).toISOString();
100
+ }
101
+ const hero = present(item.heroImageId) ? item.heroImageId.trim() : null;
102
+ const author = present(item.byline) ? item.byline : present(item.authorId) ? item.authorId : null;
103
+ const description = present(item.description)
104
+ ? item.description
105
+ : present(item.excerpt)
106
+ ? item.excerpt
107
+ : null;
108
+ const body = {
109
+ schemaVersion: FOUNDRY_ARTICLE_SCHEMA_VERSION,
110
+ slug: item.slug,
111
+ title: item.title,
112
+ body_html: item.bodyHtml,
113
+ ...(hero
114
+ ? /^https?:\/\//i.test(hero)
115
+ ? { hero_image_url: hero }
116
+ : { hero_image_key: hero }
117
+ : {}),
118
+ ...(publishAt ? { publishAt } : {}),
119
+ ...(author ? { author } : {}),
120
+ ...(present(item.primaryCategory) ? { desk: item.primaryCategory } : {}),
121
+ ...(item.tags && item.tags.length > 0 ? { tags: [...item.tags] } : {}),
122
+ ...(description ? { description } : {}),
123
+ ...(item.visibility ? { visibility: item.visibility } : {}),
124
+ ...(present(item.sourceId) ? { adoptSourceId: item.sourceId } : {}),
125
+ };
126
+ return FoundryArticleV2Schema.parse(body);
127
+ }
128
+ // --- content-emit.json: the whole archive as the exact PUT bodies foundryd sends ---
129
+ export const CONTENT_EMIT_SCHEMA_VERSION = 1;
130
+ const APP_ID = /^[a-z0-9][a-z0-9-]{0,63}$/;
131
+ const SOURCE_SHA = /^[0-9a-f]{7,64}$/;
132
+ /** Lowercase hex SHA-256 of a string's UTF-8 bytes (the shared implementation). */
133
+ export { sha256Hex };
134
+ function archivePath(item, index) {
135
+ const sourceId = item.sourceId;
136
+ const separator = typeof sourceId === 'string' ? sourceId.indexOf(':') : -1;
137
+ if (!sourceId || separator < 1 || separator === sourceId.length - 1) {
138
+ throw new FoundryEmitError('source_id_missing', `archive item ${index} has no "<ns>:<relpath>" sourceId`);
139
+ }
140
+ return sourceId.slice(separator + 1);
141
+ }
142
+ /**
143
+ * Build content-emit.json for a WHOLE archive. Every item is either retired
144
+ * (`metadata.originalStatus === 'archived'`, the compiler's carry of frontmatter
145
+ * `status: archived`) or carries its exact v2 PUT body. Any item that cannot be
146
+ * emitted fails the whole build: a partial emit would silently drop articles.
147
+ */
148
+ export async function buildContentEmit(archive, options) {
149
+ if (!APP_ID.test(options.app)) {
150
+ throw new FoundryEmitError('app_invalid', 'app must be a lowercase id (a-z, 0-9, -)');
151
+ }
152
+ if (!SOURCE_SHA.test(options.sourceSha)) {
153
+ throw new FoundryEmitError('source_sha_invalid', 'sourceSha must be a lowercase hex commit');
154
+ }
155
+ if (!Array.isArray(archive.items)) {
156
+ throw new FoundryEmitError('archive_invalid', 'archive has no items array');
157
+ }
158
+ const seen = new Set();
159
+ const items = [];
160
+ for (const [index, item] of archive.items.entries()) {
161
+ const path = archivePath(item, index);
162
+ if (seen.has(path))
163
+ throw new FoundryEmitError('path_duplicate', `duplicate path ${path}`);
164
+ seen.add(path);
165
+ const videoId = typeof item.metadata?.videoId === 'string' && item.metadata.videoId
166
+ ? item.metadata.videoId
167
+ : null;
168
+ if (item.metadata?.originalStatus === 'archived') {
169
+ items.push({ path, videoId, retire: true });
170
+ continue;
171
+ }
172
+ let request;
173
+ try {
174
+ request = JSON.stringify(toFoundryArticleV2(item));
175
+ }
176
+ catch (error) {
177
+ const detail = error instanceof Error ? error.message : String(error);
178
+ throw new FoundryEmitError('item_invalid', `${path}: ${detail}`);
179
+ }
180
+ items.push({ path, videoId, retire: false, requestSha256: await sha256Hex(request), request });
181
+ }
182
+ return {
183
+ schemaVersion: CONTENT_EMIT_SCHEMA_VERSION,
184
+ app: options.app,
185
+ sourceSha: options.sourceSha,
186
+ items,
187
+ };
188
+ }
189
+ //# sourceMappingURL=foundry-emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundry-emit.js","sourceRoot":"","sources":["../src/foundry-emit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,KAAK,qBAAqB,EAA+B,MAAM,cAAc,CAAA;AActF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,WAAW,EAAE,qBAAqB,GAAG,gBAAgB,CA+T1F;AAED,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,KAAK,qBAAqB,EAA+B,MAAM,cAAc,CAAA;AActF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,WAAW,EAAE,qBAAqB,GAAG,gBAAgB,CAwU1F;AAED,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA"}
@@ -31,6 +31,10 @@ export default function growthLabsCms(userOptions) {
31
31
  pattern: '/api/cms/foundry/articles/[external_id]/unpublish',
32
32
  entrypoint: resolveEntrypoint('../ui/api/foundry/articles/[external_id]/unpublish'),
33
33
  });
34
+ injectRoute({
35
+ pattern: '/api/cms/foundry/articles/[external_id]/publish',
36
+ entrypoint: resolveEntrypoint('../ui/api/foundry/articles/[external_id]/publish'),
37
+ });
34
38
  // the SPA shell index (SSR, prerender=false)
35
39
  injectRoute({ pattern: base, entrypoint: resolveAstro('../ui/pages/admin.astro') });
36
40
  // the /admin/api/* JSON routes
@@ -268,6 +272,11 @@ export default function growthLabsCms(userOptions) {
268
272
  pattern: `${base}/api/surveys/[surveyId]/responses.csv`,
269
273
  entrypoint: resolveEntrypoint('../ui/api/surveys/[surveyId]/responses.csv'),
270
274
  });
275
+ // Owner-only classification of a written answer (technical/general).
276
+ injectRoute({
277
+ pattern: `${base}/api/surveys/[surveyId]/answers/label`,
278
+ entrypoint: resolveEntrypoint('../ui/api/surveys/[surveyId]/answers/label'),
279
+ });
271
280
  // Calendar
272
281
  injectRoute({
273
282
  pattern: `${base}/api/calendar`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"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"}
@@ -292,6 +292,14 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
292
292
  }, {
293
293
  surveyId: string;
294
294
  }>>;
295
+ surveys: z.ZodDefault<z.ZodObject<{
296
+ autoLabel: z.ZodDefault<z.ZodBoolean>;
297
+ }, "strip", z.ZodTypeAny, {
298
+ autoLabel: boolean;
299
+ }, {
300
+ autoLabel?: boolean | undefined;
301
+ }>>;
302
+ foundryCanonicalHost: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
295
303
  }, "strip", z.ZodTypeAny, {
296
304
  workspaces: {
297
305
  id: string;
@@ -327,6 +335,9 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
327
335
  socialSharing: {
328
336
  allowInlineAuthorCreation: boolean;
329
337
  };
338
+ surveys: {
339
+ autoLabel: boolean;
340
+ };
330
341
  primaryTopic?: {
331
342
  options: {
332
343
  slug: string;
@@ -339,6 +350,7 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
339
350
  surveyResults?: {
340
351
  surveyId: string;
341
352
  } | undefined;
353
+ foundryCanonicalHost?: string | undefined;
342
354
  }, {
343
355
  workspaces: {
344
356
  id: string;
@@ -386,6 +398,10 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
386
398
  surveyResults?: {
387
399
  surveyId: string;
388
400
  } | undefined;
401
+ surveys?: {
402
+ autoLabel?: boolean | undefined;
403
+ } | undefined;
404
+ foundryCanonicalHost?: string | undefined;
389
405
  }>, {
390
406
  activeWorkspaceId: string;
391
407
  workspaces: {
@@ -422,6 +438,9 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
422
438
  socialSharing: {
423
439
  allowInlineAuthorCreation: boolean;
424
440
  };
441
+ surveys: {
442
+ autoLabel: boolean;
443
+ };
425
444
  primaryTopic?: {
426
445
  options: {
427
446
  slug: string;
@@ -433,6 +452,7 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
433
452
  surveyResults?: {
434
453
  surveyId: string;
435
454
  } | undefined;
455
+ foundryCanonicalHost?: string | undefined;
436
456
  }, {
437
457
  workspaces: {
438
458
  id: string;
@@ -480,6 +500,10 @@ export declare const cmsIntegrationOptionsSchema: z.ZodEffects<z.ZodObject<{
480
500
  surveyResults?: {
481
501
  surveyId: string;
482
502
  } | undefined;
503
+ surveys?: {
504
+ autoLabel?: boolean | undefined;
505
+ } | undefined;
506
+ foundryCanonicalHost?: string | undefined;
483
507
  }>;
484
508
  export type CmsIntegrationOptions = z.input<typeof cmsIntegrationOptionsSchema>;
485
509
  export type ResolvedCmsIntegrationOptions = z.output<typeof cmsIntegrationOptionsSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/integration/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiBvB,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAA;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAM5E,QAAA,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CnC,CAAA;AAmBH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAuB1F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBoD,CAAA;AAE5F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/integration/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiBvB,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAA;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAM5E,QAAA,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CnC,CAAA;AAmBH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAkC1F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BoD,CAAA;AAE5F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { isCanonicalHost } from '@growth-labs/foundry-signing';
1
2
  import { z } from 'zod';
2
3
  import { SurveyIdSchema } from '../surveys/schema.js';
3
4
  const workspaceSchema = z.object({
@@ -107,6 +108,16 @@ const surveyResultsSchema = z
107
108
  surveyId: SurveyIdSchema,
108
109
  })
109
110
  .strict();
111
+ const surveysOptionsSchema = z
112
+ .object({
113
+ // Automatic technical/general labeling of new written survey answers
114
+ // through the host's LlmDispatch (2026-10-02, packet 08), scheduled off
115
+ // the survey results request via waitUntil. Off by default: a site
116
+ // opts in, and only a site that wired the LlmDispatch seam pays for
117
+ // the background dispatches.
118
+ autoLabel: z.boolean().default(false),
119
+ })
120
+ .default({});
110
121
  export const cmsIntegrationOptionsSchema = z
111
122
  .object({
112
123
  workspaces: z.array(workspaceSchema).min(1, 'at least one workspace is required'),
@@ -126,6 +137,17 @@ export const cmsIntegrationOptionsSchema = z
126
137
  theme: themeSchema,
127
138
  socialSharing: socialSharingSchema,
128
139
  surveyResults: surveyResultsSchema.optional(),
140
+ surveys: surveysOptionsSchema,
141
+ // This publication's canonical host for the Foundry machine route
142
+ // (/api/cms/foundry/*), e.g. `warfronts.pub`. Declared, the route verifies
143
+ // only the host-bound foundry-cms-v2 signature on every request and never
144
+ // the legacy form, whatever the per-request hooks set.
145
+ foundryCanonicalHost: z
146
+ .string()
147
+ .refine(isCanonicalHost, {
148
+ message: 'foundryCanonicalHost must be a lowercase host with no scheme or port',
149
+ })
150
+ .optional(),
129
151
  })
130
152
  .transform((o) => ({ ...o, activeWorkspaceId: o.activeWorkspaceId ?? o.workspaces[0].id }));
131
153
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/integration/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/integration/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Publication-timezone helpers — ONE implementation, shared by the schedule
3
+ * route and the Publish tab.
4
+ *
5
+ * Why this module exists: the editor types a wall-clock time and expects the
6
+ * post to go out at that time in the publication's timezone. That only holds
7
+ * if the digits the UI DISPLAYS and the zone it SAVES agree. When they
8
+ * disagreed, every resave shifted `publish_at` by the zone offset — including
9
+ * an incidental resave that never touched the field (the 2026-09-08 P0). So
10
+ * display and entry must use the same converter as the server, not a second
11
+ * copy of the arithmetic.
12
+ */
13
+ /** Fronts default; the server falls back to this when no zone is configured. */
14
+ export declare const PUBLISH_TIMEZONE_FALLBACK = "Europe/Paris";
15
+ type LocalDateTimeParts = {
16
+ year: number;
17
+ month: number;
18
+ day: number;
19
+ hour: number;
20
+ minute: number;
21
+ };
22
+ export declare function parseLocalDateTime(value: string): LocalDateTimeParts | null;
23
+ export declare function getZonedParts(instantMs: number, timeZone: string): LocalDateTimeParts | null;
24
+ export declare function isValidTimeZone(timeZone: string): boolean;
25
+ export declare function getTimeZoneOffsetMs(instantMs: number, timeZone: string): number | null;
26
+ export declare function parseLocalDateTimeInZoneToUnixSeconds(value: string, timeZone: string): number | null;
27
+ /**
28
+ * Inverse of `parseLocalDateTimeInZoneToUnixSeconds`: render an instant as the
29
+ * wall-clock digits an editor in `timeZone` would read, split for the date and
30
+ * time inputs. Returns null when the zone is unusable, so callers can fall back
31
+ * rather than silently display a wrong hour.
32
+ */
33
+ export declare function formatInstantInZone(instantMs: number, timeZone: string): {
34
+ date: string;
35
+ time: string;
36
+ } | null;
37
+ export {};
38
+ //# sourceMappingURL=publish-timezone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-timezone.d.ts","sourceRoot":"","sources":["../../src/lib/publish-timezone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAKvD,KAAK,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAiC3E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAuB5F;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAkCf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvC"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Publication-timezone helpers — ONE implementation, shared by the schedule
3
+ * route and the Publish tab.
4
+ *
5
+ * Why this module exists: the editor types a wall-clock time and expects the
6
+ * post to go out at that time in the publication's timezone. That only holds
7
+ * if the digits the UI DISPLAYS and the zone it SAVES agree. When they
8
+ * disagreed, every resave shifted `publish_at` by the zone offset — including
9
+ * an incidental resave that never touched the field (the 2026-09-08 P0). So
10
+ * display and entry must use the same converter as the server, not a second
11
+ * copy of the arithmetic.
12
+ */
13
+ /** Fronts default; the server falls back to this when no zone is configured. */
14
+ export const PUBLISH_TIMEZONE_FALLBACK = 'Europe/Paris';
15
+ /** `YYYY-MM-DDTHH:MM` exactly — the shape the date and time inputs produce. */
16
+ const LOCAL_DATE_TIME_RE = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/;
17
+ export function parseLocalDateTime(value) {
18
+ const match = LOCAL_DATE_TIME_RE.exec(value);
19
+ if (!match)
20
+ return null;
21
+ const [, y, m, d, h, min] = match;
22
+ const parts = {
23
+ year: Number.parseInt(y, 10),
24
+ month: Number.parseInt(m, 10),
25
+ day: Number.parseInt(d, 10),
26
+ hour: Number.parseInt(h, 10),
27
+ minute: Number.parseInt(min, 10),
28
+ };
29
+ if (!Number.isInteger(parts.year) ||
30
+ parts.month < 1 ||
31
+ parts.month > 12 ||
32
+ parts.day < 1 ||
33
+ parts.day > 31 ||
34
+ parts.hour < 0 ||
35
+ parts.hour > 23 ||
36
+ parts.minute < 0 ||
37
+ parts.minute > 59) {
38
+ return null;
39
+ }
40
+ const dateCheck = new Date(Date.UTC(parts.year, parts.month - 1, parts.day));
41
+ if (dateCheck.getUTCFullYear() !== parts.year ||
42
+ dateCheck.getUTCMonth() + 1 !== parts.month ||
43
+ dateCheck.getUTCDate() !== parts.day) {
44
+ return null;
45
+ }
46
+ return parts;
47
+ }
48
+ export function getZonedParts(instantMs, timeZone) {
49
+ if (!isValidTimeZone(timeZone))
50
+ return null;
51
+ const formatter = new Intl.DateTimeFormat('en-US', {
52
+ timeZone,
53
+ hour12: false,
54
+ year: 'numeric',
55
+ month: '2-digit',
56
+ day: '2-digit',
57
+ hour: '2-digit',
58
+ minute: '2-digit',
59
+ second: '2-digit',
60
+ });
61
+ const values = { year: '', month: '', day: '', hour: '', minute: '', second: '' };
62
+ for (const part of formatter.formatToParts(new Date(instantMs))) {
63
+ if (part.type in values)
64
+ values[part.type] = part.value;
65
+ }
66
+ const year = Number.parseInt(values.year, 10);
67
+ const month = Number.parseInt(values.month, 10);
68
+ const day = Number.parseInt(values.day, 10);
69
+ const hour = Number.parseInt(values.hour, 10);
70
+ const minute = Number.parseInt(values.minute, 10);
71
+ if (![year, month, day, hour, minute].every(Number.isFinite))
72
+ return null;
73
+ return { year, month, day, hour, minute };
74
+ }
75
+ export function isValidTimeZone(timeZone) {
76
+ try {
77
+ new Intl.DateTimeFormat('en-US', { timeZone }).format(new Date());
78
+ return true;
79
+ }
80
+ catch {
81
+ return false;
82
+ }
83
+ }
84
+ export function getTimeZoneOffsetMs(instantMs, timeZone) {
85
+ const zoned = getZonedParts(instantMs, timeZone);
86
+ if (!zoned)
87
+ return null;
88
+ const asUtc = Date.UTC(zoned.year, zoned.month - 1, zoned.day, zoned.hour, zoned.minute, 0);
89
+ return asUtc - instantMs;
90
+ }
91
+ export function parseLocalDateTimeInZoneToUnixSeconds(value, timeZone) {
92
+ const target = parseLocalDateTime(value);
93
+ if (!target)
94
+ return null;
95
+ const targetUtcMs = Date.UTC(target.year, target.month - 1, target.day, target.hour, target.minute, 0);
96
+ let candidateMs = targetUtcMs;
97
+ for (let i = 0; i < 5; i += 1) {
98
+ const offsetMs = getTimeZoneOffsetMs(candidateMs, timeZone);
99
+ if (offsetMs === null)
100
+ return null;
101
+ const next = targetUtcMs - offsetMs;
102
+ if (Math.abs(next - candidateMs) < 1000) {
103
+ candidateMs = next;
104
+ break;
105
+ }
106
+ candidateMs = next;
107
+ }
108
+ const resolved = getZonedParts(candidateMs, timeZone);
109
+ if (!resolved ||
110
+ resolved.year !== target.year ||
111
+ resolved.month !== target.month ||
112
+ resolved.day !== target.day ||
113
+ resolved.hour !== target.hour ||
114
+ resolved.minute !== target.minute) {
115
+ return null;
116
+ }
117
+ return Math.floor(candidateMs / 1000);
118
+ }
119
+ /**
120
+ * Inverse of `parseLocalDateTimeInZoneToUnixSeconds`: render an instant as the
121
+ * wall-clock digits an editor in `timeZone` would read, split for the date and
122
+ * time inputs. Returns null when the zone is unusable, so callers can fall back
123
+ * rather than silently display a wrong hour.
124
+ */
125
+ export function formatInstantInZone(instantMs, timeZone) {
126
+ const parts = getZonedParts(instantMs, timeZone);
127
+ if (!parts)
128
+ return null;
129
+ const pad = (n, width = 2) => String(n).padStart(width, '0');
130
+ return {
131
+ date: `${pad(parts.year, 4)}-${pad(parts.month)}-${pad(parts.day)}`,
132
+ time: `${pad(parts.hour)}:${pad(parts.minute)}`,
133
+ };
134
+ }
135
+ //# sourceMappingURL=publish-timezone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-timezone.js","sourceRoot":"","sources":["../../src/lib/publish-timezone.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../src/providers/null.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,MAAM,YAAY,CAAA;AAKnB,eAAO,MAAM,aAAa,EAAE,iBAwD3B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,qBA8E/B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAO1B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAIxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,cAIxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAc1B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cAezB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,YAQ3B,CAAA"}
1
+ {"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../src/providers/null.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,MAAM,YAAY,CAAA;AAKnB,eAAO,MAAM,aAAa,EAAE,iBA8D3B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,qBA8E/B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAO1B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,WAIxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,cAIxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAc1B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cAezB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,YAQ3B,CAAA"}
@@ -57,6 +57,12 @@ export const nullAnalytics = {
57
57
  },
58
58
  });
59
59
  },
60
+ // Podcast listening analytics is a host opt-in: null (not an empty
61
+ // envelope) so the route 404s and the panel reports "not available"
62
+ // instead of rendering silent zeros for a site that has none.
63
+ async getPodcastListening() {
64
+ return null;
65
+ },
60
66
  };
61
67
  export const nullSubscriptions = {
62
68
  async listMembers() {