@byline/cli 4.0.0 → 4.2.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 (28) hide show
  1. package/dist/manifest/deps.d.ts.map +1 -1
  2. package/dist/manifest/deps.js +6 -0
  3. package/dist/manifest/deps.js.map +1 -1
  4. package/dist/phases/scaffold-smoke.test.js +10 -3
  5. package/dist/phases/scaffold-smoke.test.js.map +1 -1
  6. package/dist/templates/byline/collection-types.contract.ts +1 -1
  7. package/dist/templates/byline/collections/index.ts +1 -1
  8. package/dist/templates/byline/generated/collection-types.ts +14 -6
  9. package/dist/templates/byline/server.config.ts +8 -1
  10. package/dist/templates/byline-examples/collection-types.contract.ts +1 -1
  11. package/dist/templates/byline-examples/collections/docs/hooks.ts +2 -2
  12. package/dist/templates/byline-examples/collections/docs/schema.ts +1 -1
  13. package/dist/templates/byline-examples/collections/index.ts +1 -1
  14. package/dist/templates/byline-examples/generated/collection-types.ts +138 -130
  15. package/dist/templates/byline-examples/scripts/import-docs.ts +4 -4
  16. package/dist/templates/byline-examples/scripts/regenerate-media-operation.ts +112 -0
  17. package/dist/templates/byline-examples/scripts/regenerate-media.ts +126 -90
  18. package/dist/templates/byline-examples/server.config.ts +11 -4
  19. package/dist/templates/ui-byline/blocks/richtext-block/index.tsx +1 -1
  20. package/dist/templates/ui-byline/components/link/link-lexical.tsx +1 -1
  21. package/dist/templates/ui-byline/types/content.ts +1 -1
  22. package/dist/ui-template-contract.test.js +27 -7
  23. package/dist/ui-template-contract.test.js.map +1 -1
  24. package/dist/workspace-root.test.js +5 -1
  25. package/dist/workspace-root.test.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/templates/byline/clients.server.ts +0 -77
  28. package/dist/templates/byline-examples/clients.server.ts +0 -77
@@ -1 +1 @@
1
- {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAA;AAE1C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,CAAA;IACf,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B;AAKD,eAAO,MAAM,cAAc,QAAwC,CAAA;AAEnE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAoL9B,CAAA"}
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAA;AAE1C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,CAAA;IACf,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B;AAKD,eAAO,MAAM,cAAc,QAAwC,CAAA;AAEnE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EA0L9B,CAAA"}
@@ -51,6 +51,12 @@ export const DEP_SPECS = [
51
51
  group: 'byline',
52
52
  note: 'types, config, patches, workflow, Zod schema builder',
53
53
  },
54
+ {
55
+ name: '@byline/generated-types',
56
+ version: BYLINE_VERSION,
57
+ group: 'byline',
58
+ note: 'declaration-merge target for the app-generated collection types',
59
+ },
54
60
  {
55
61
  name: '@byline/db-postgres',
56
62
  version: BYLINE_VERSION,
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"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"}
@@ -51,8 +51,15 @@ describe('temporary host scaffold smoke contracts', () => {
51
51
  expect(inventory.includes('byline/scripts/import-docs.ts')).toBe(answers.importDocs);
52
52
  expect(inventory.some((path) => path.startsWith('byline/scripts/lib/'))).toBe(answers.importDocs);
53
53
  expect(inventory.includes('src/ui/byline/render-blocks.tsx')).toBe(answers.examples);
54
- if (!answers.examples)
55
- expect(generatedImports).toEqual([]);
54
+ // Without examples, the only generated imports are the structural
55
+ // registry aliases used by collections/index.ts and the contract file —
56
+ // no collection field shapes.
57
+ if (!answers.examples) {
58
+ expect([...new Set(generatedImports)].sort()).toEqual([
59
+ 'CollectionFieldsAllLocalesByPath',
60
+ 'CollectionFieldsByPath',
61
+ ]);
62
+ }
56
63
  });
57
64
  it('assembles a custom nested sign-in route fixture with matching config and route ID', async () => {
58
65
  const ctx = createTestContext({
@@ -144,7 +151,7 @@ function packageBoundary(specifier) {
144
151
  }
145
152
  function importedGeneratedNames(source) {
146
153
  const names = [];
147
- for (const match of source.matchAll(/import type \{([^}]+)\} from ['"]~\/generated\/collection-types\.js['"]/g)) {
154
+ for (const match of source.matchAll(/import type \{([^}]+)\} from ['"]@byline\/generated-types['"]/g)) {
148
155
  for (const item of match[1]?.split(',') ?? []) {
149
156
  const name = item.trim().split(/\s+as\s+/)[0];
150
157
  if (name)
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold-smoke.test.js","sourceRoot":"","sources":["../../src/phases/scaffold-smoke.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold-smoke.test.js","sourceRoot":"","sources":["../../src/phases/scaffold-smoke.test.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ import type { collections } from './collections/index.js'
29
29
  import type {
30
30
  CollectionFieldsAllLocalesByPath,
31
31
  CollectionFieldsByPath,
32
- } from './generated/collection-types.js'
32
+ } from '@byline/generated-types'
33
33
 
34
34
  type InferredFieldsByPath = {
35
35
  [Definition in (typeof collections)[number] as Definition['path']]: CollectionFieldData<Definition>
@@ -8,7 +8,7 @@
8
8
 
9
9
  import type { InferCollectionRegistry } from '@byline/core'
10
10
 
11
- import type { CollectionFieldsByPath } from '../generated/collection-types.js'
11
+ import type { CollectionFieldsByPath } from '@byline/generated-types'
12
12
 
13
13
  /** Add schema-only collection imports here; keep admin presentation separate. */
14
14
  export const collections = [] as const
@@ -1,11 +1,19 @@
1
1
  // Generated by @byline/core/codegen
2
- // Format version: 1
3
- // Hash: 4ef42b796dc35fceb394f97eaef885c5795c52031ba91f9ca6ca7e0fd2f20608
2
+ // Format version: 2
3
+ // Hash: 32dbd34eba8597c598229b7b278d5c1ef1bebb005b57986331bc2f393c49e673
4
4
 
5
- export type CollectionFieldsByPath = {
6
- }
5
+ declare module '@byline/generated-types' {
6
+ export type CollectionFieldsByPath = {
7
+ }
8
+
9
+ export type CollectionFieldsAllLocalesByPath = {
10
+ }
7
11
 
8
- export type CollectionFieldsAllLocalesByPath = {
12
+ export type CollectionPath = keyof CollectionFieldsByPath
9
13
  }
10
14
 
11
- export type CollectionPath = keyof CollectionFieldsByPath
15
+ declare module '@byline/client' {
16
+ interface Register {
17
+ collections: import('@byline/generated-types').CollectionFieldsByPath
18
+ }
19
+ }
@@ -29,7 +29,8 @@ import {
29
29
  } from '@byline/richtext-lexical/server'
30
30
  import { localStorageProvider } from '@byline/storage-local'
31
31
 
32
- import { getAdminBylineClient } from './clients.server.js'
32
+ import { getAdminBylineClient } from '@byline/client/server'
33
+ import { registerTanstackStartHostBridge } from '@byline/host-tanstack-start/integrations/host-bridge'
33
34
  import { collections } from './collections/index.js'
34
35
  import { serverHooks } from './collections/server-hooks.js'
35
36
  import { i18n } from './i18n.js'
@@ -87,6 +88,12 @@ async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
87
88
  signingSecret,
88
89
  })
89
90
 
91
+ // Register the TanStack Start `HostRequestBridge` before any
92
+ // request-bound client getter (`@byline/client/server`) can run —
93
+ // structural at server boot rather than dependent on which host
94
+ // module happens to load first.
95
+ registerTanstackStartHostBridge()
96
+
90
97
  const core = await initBylineCore<AdminStore>({
91
98
  serverURL,
92
99
  i18n,
@@ -29,7 +29,7 @@ import type { collections } from './collections/index.js'
29
29
  import type {
30
30
  CollectionFieldsAllLocalesByPath,
31
31
  CollectionFieldsByPath,
32
- } from './generated/collection-types.js'
32
+ } from '@byline/generated-types'
33
33
 
34
34
  type InferredFieldsByPath = {
35
35
  [Definition in (typeof collections)[number] as Definition['path']]: CollectionFieldData<Definition>
@@ -18,7 +18,7 @@
18
18
  * the client. Hook *bodies*, however, only ever run server-side.
19
19
  *
20
20
  * Search indexing is the canonical reason this matters: it imports the
21
- * server-only app client boundary from `byline/clients.server.ts`. Importing
21
+ * server-only client getters from `@byline/client/server`. Importing
22
22
  * that from the schema would drag server code into the browser bundle (fatal
23
23
  * in dev). The server bootstrap avoids it by registering these hooks from a
24
24
  * server-only module:
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  import { defineHooks } from '@byline/core'
53
- import { getSystemBylineClient } from '../../clients.server.js'
53
+ import { getSystemBylineClient } from '@byline/client/server'
54
54
 
55
55
  export default defineHooks({
56
56
  beforeCreate: async ({ data, collectionPath }) => {
@@ -33,7 +33,7 @@ export const Docs = defineCollection({
33
33
  customStatuses: [{ name: 'needs_review', label: 'Needs Review', verb: 'Request Review' }],
34
34
  }),
35
35
  showStats: true,
36
- // Document tree (docs/04-collections/03-document-trees.md): the docs collection is a
36
+ // Document tree (docs/04-collections/04-document-trees.md): the docs collection is a
37
37
  // single-parent ordered hierarchy. Mutually exclusive with `orderable` —
38
38
  // the tree owns ordering (per-parent, on the edge), so `order_key` on
39
39
  // `byline_documents` is inert here. Sibling order and nesting are edited via
@@ -8,7 +8,7 @@
8
8
 
9
9
  import type { InferCollectionRegistry } from '@byline/core'
10
10
 
11
- import type { CollectionFieldsByPath } from '../generated/collection-types.js'
11
+ import type { CollectionFieldsByPath } from '@byline/generated-types'
12
12
 
13
13
  import { Docs } from './docs/schema.js'
14
14
  import { Media } from './media/schema.js'
@@ -1,6 +1,6 @@
1
1
  // Generated by @byline/core/codegen
2
- // Format version: 1
3
- // Hash: a32bba417302b4e2c90703e47a1f326d4db64cabd11194f8eed816e78442178e
2
+ // Format version: 2
3
+ // Hash: 7c42f9892f94559081c07b01952f1149e7c4cc112569bbed5861c0a32d735448
4
4
 
5
5
  import type {
6
6
  JsonValue,
@@ -8,132 +8,140 @@ import type {
8
8
  StoredFileValue,
9
9
  } from '@byline/core'
10
10
 
11
- export type PhotoBlockData = {
12
- _id: string
13
- _type: 'photoBlock'
14
- display?: 'default' | 'wide' | 'full_width' | undefined
15
- photo?: RelatedDocumentValue | undefined
16
- alt: string
17
- caption?: JsonValue | undefined
11
+ declare module '@byline/generated-types' {
12
+ export type PhotoBlockData = {
13
+ _id: string
14
+ _type: 'photoBlock'
15
+ display?: 'default' | 'wide' | 'full_width' | undefined
16
+ photo?: RelatedDocumentValue | undefined
17
+ alt: string
18
+ caption?: JsonValue | undefined
19
+ }
20
+
21
+ export type PhotoBlockDataAllLocales = {
22
+ _id: string
23
+ _type: 'photoBlock'
24
+ display?: 'default' | 'wide' | 'full_width' | undefined
25
+ photo?: RelatedDocumentValue | undefined
26
+ alt: string
27
+ caption?: { [locale: string]: JsonValue } | undefined
28
+ }
29
+
30
+ export type RichTextBlockData = {
31
+ _id: string
32
+ _type: 'richTextBlock'
33
+ richText: JsonValue
34
+ constrainedWidth?: boolean | undefined
35
+ }
36
+
37
+ export type RichTextBlockDataAllLocales = {
38
+ _id: string
39
+ _type: 'richTextBlock'
40
+ richText: { [locale: string]: JsonValue }
41
+ constrainedWidth?: boolean | undefined
42
+ }
43
+
44
+ export type DocsFields = {
45
+ title: string
46
+ summary: string
47
+ featureImage?: RelatedDocumentValue | undefined
48
+ publishedOn: Date
49
+ content?: Array<RichTextBlockData | PhotoBlockData> | undefined
50
+ }
51
+
52
+ export type DocsFieldsAllLocales = {
53
+ title: { [locale: string]: string }
54
+ summary: { [locale: string]: string }
55
+ featureImage?: RelatedDocumentValue | undefined
56
+ publishedOn: Date
57
+ content?: Array<RichTextBlockDataAllLocales | PhotoBlockDataAllLocales> | undefined
58
+ }
59
+
60
+ export type MediaFields = {
61
+ image: StoredFileValue
62
+ title: string
63
+ altText: string
64
+ caption?: string | undefined
65
+ credit?: string | undefined
66
+ }
67
+
68
+ export type MediaFieldsAllLocales = {
69
+ image: StoredFileValue
70
+ title: string
71
+ altText: string
72
+ caption?: string | undefined
73
+ credit?: string | undefined
74
+ }
75
+
76
+ export type NewsCategoriesFields = {
77
+ name: string
78
+ description: string
79
+ }
80
+
81
+ export type NewsCategoriesFieldsAllLocales = {
82
+ name: { [locale: string]: string }
83
+ description: { [locale: string]: string }
84
+ }
85
+
86
+ export type NewsFields = {
87
+ title: string
88
+ summary: string
89
+ category: RelatedDocumentValue
90
+ featureImage?: RelatedDocumentValue | undefined
91
+ featured?: boolean | undefined
92
+ content: JsonValue
93
+ publishedOn: Date
94
+ }
95
+
96
+ export type NewsFieldsAllLocales = {
97
+ title: { [locale: string]: string }
98
+ summary: { [locale: string]: string }
99
+ category: RelatedDocumentValue
100
+ featureImage?: RelatedDocumentValue | undefined
101
+ featured?: boolean | undefined
102
+ content: { [locale: string]: JsonValue }
103
+ publishedOn: Date
104
+ }
105
+
106
+ export type PagesFields = {
107
+ title: string
108
+ summary: string
109
+ featureImage?: RelatedDocumentValue | undefined
110
+ area: 'root' | 'about' | 'legal'
111
+ content?: Array<RichTextBlockData | PhotoBlockData> | undefined
112
+ publishedOn: Date
113
+ }
114
+
115
+ export type PagesFieldsAllLocales = {
116
+ title: { [locale: string]: string }
117
+ summary: { [locale: string]: string }
118
+ featureImage?: RelatedDocumentValue | undefined
119
+ area: 'root' | 'about' | 'legal'
120
+ content?: Array<RichTextBlockDataAllLocales | PhotoBlockDataAllLocales> | undefined
121
+ publishedOn: Date
122
+ }
123
+
124
+ export type CollectionFieldsByPath = {
125
+ docs: DocsFields
126
+ media: MediaFields
127
+ news: NewsFields
128
+ 'news-categories': NewsCategoriesFields
129
+ pages: PagesFields
130
+ }
131
+
132
+ export type CollectionFieldsAllLocalesByPath = {
133
+ docs: DocsFieldsAllLocales
134
+ media: MediaFieldsAllLocales
135
+ news: NewsFieldsAllLocales
136
+ 'news-categories': NewsCategoriesFieldsAllLocales
137
+ pages: PagesFieldsAllLocales
138
+ }
139
+
140
+ export type CollectionPath = keyof CollectionFieldsByPath
141
+ }
142
+
143
+ declare module '@byline/client' {
144
+ interface Register {
145
+ collections: import('@byline/generated-types').CollectionFieldsByPath
146
+ }
18
147
  }
19
-
20
- export type PhotoBlockDataAllLocales = {
21
- _id: string
22
- _type: 'photoBlock'
23
- display?: 'default' | 'wide' | 'full_width' | undefined
24
- photo?: RelatedDocumentValue | undefined
25
- alt: string
26
- caption?: { [locale: string]: JsonValue } | undefined
27
- }
28
-
29
- export type RichTextBlockData = {
30
- _id: string
31
- _type: 'richTextBlock'
32
- richText: JsonValue
33
- constrainedWidth?: boolean | undefined
34
- }
35
-
36
- export type RichTextBlockDataAllLocales = {
37
- _id: string
38
- _type: 'richTextBlock'
39
- richText: { [locale: string]: JsonValue }
40
- constrainedWidth?: boolean | undefined
41
- }
42
-
43
- export type DocsFields = {
44
- title: string
45
- summary: string
46
- featureImage?: RelatedDocumentValue | undefined
47
- publishedOn: Date
48
- content?: Array<RichTextBlockData | PhotoBlockData> | undefined
49
- }
50
-
51
- export type DocsFieldsAllLocales = {
52
- title: { [locale: string]: string }
53
- summary: { [locale: string]: string }
54
- featureImage?: RelatedDocumentValue | undefined
55
- publishedOn: Date
56
- content?: Array<RichTextBlockDataAllLocales | PhotoBlockDataAllLocales> | undefined
57
- }
58
-
59
- export type MediaFields = {
60
- image: StoredFileValue
61
- title: string
62
- altText: string
63
- caption?: string | undefined
64
- credit?: string | undefined
65
- }
66
-
67
- export type MediaFieldsAllLocales = {
68
- image: StoredFileValue
69
- title: string
70
- altText: string
71
- caption?: string | undefined
72
- credit?: string | undefined
73
- }
74
-
75
- export type NewsCategoriesFields = {
76
- name: string
77
- description: string
78
- }
79
-
80
- export type NewsCategoriesFieldsAllLocales = {
81
- name: { [locale: string]: string }
82
- description: { [locale: string]: string }
83
- }
84
-
85
- export type NewsFields = {
86
- title: string
87
- summary: string
88
- category: RelatedDocumentValue
89
- featureImage?: RelatedDocumentValue | undefined
90
- featured?: boolean | undefined
91
- content: JsonValue
92
- publishedOn: Date
93
- }
94
-
95
- export type NewsFieldsAllLocales = {
96
- title: { [locale: string]: string }
97
- summary: { [locale: string]: string }
98
- category: RelatedDocumentValue
99
- featureImage?: RelatedDocumentValue | undefined
100
- featured?: boolean | undefined
101
- content: { [locale: string]: JsonValue }
102
- publishedOn: Date
103
- }
104
-
105
- export type PagesFields = {
106
- title: string
107
- summary: string
108
- featureImage?: RelatedDocumentValue | undefined
109
- area: 'root' | 'about' | 'legal'
110
- content?: Array<RichTextBlockData | PhotoBlockData> | undefined
111
- publishedOn: Date
112
- }
113
-
114
- export type PagesFieldsAllLocales = {
115
- title: { [locale: string]: string }
116
- summary: { [locale: string]: string }
117
- featureImage?: RelatedDocumentValue | undefined
118
- area: 'root' | 'about' | 'legal'
119
- content?: Array<RichTextBlockDataAllLocales | PhotoBlockDataAllLocales> | undefined
120
- publishedOn: Date
121
- }
122
-
123
- export type CollectionFieldsByPath = {
124
- docs: DocsFields
125
- media: MediaFields
126
- news: NewsFields
127
- 'news-categories': NewsCategoriesFields
128
- pages: PagesFields
129
- }
130
-
131
- export type CollectionFieldsAllLocalesByPath = {
132
- docs: DocsFieldsAllLocales
133
- media: MediaFieldsAllLocales
134
- news: NewsFieldsAllLocales
135
- 'news-categories': NewsCategoriesFieldsAllLocales
136
- pages: PagesFieldsAllLocales
137
- }
138
-
139
- export type CollectionPath = keyof CollectionFieldsByPath
@@ -43,7 +43,7 @@
43
43
  * number directories/files with `NN-` prefixes to curate the
44
44
  * TOC — prefixes never reach the slug (paths come from
45
45
  * frontmatter). The `docs` collection must be `tree: true`.
46
- * See docs/04-collections/03-document-trees.md.
46
+ * See docs/04-collections/04-document-trees.md.
47
47
  */
48
48
 
49
49
  import '../load-env.js'
@@ -62,14 +62,14 @@ import { type MdastToLexicalWarning, mdastToLexical } from './lib/mdast-to-lexic
62
62
  import { parseBodyToMdast } from './lib/parse-markdown.js'
63
63
  import { type DocLinkRewriteWarning, rewriteDocLinks } from './lib/rewrite-doc-links.js'
64
64
  import { stripLeadingH1IfMatches } from './lib/strip-leading-h1.js'
65
- import type { CollectionFieldsByPath, DocsFields } from '../generated/collection-types.js'
65
+ import type { DocsFields } from '@byline/generated-types'
66
66
 
67
67
  const DOCS_COLLECTION = 'docs'
68
68
  const MEDIA_COLLECTION = 'media'
69
69
  const DOCS_URL_PREFIX = '/docs'
70
70
  const DEFAULT_IMPORT_STATUS = 'published'
71
71
 
72
- type AppBylineClient = BylineClient<CollectionFieldsByPath>
72
+ type AppBylineClient = BylineClient
73
73
  type DocsHandle = CollectionHandle<DocsFields>
74
74
 
75
75
  interface Flags {
@@ -391,7 +391,7 @@ async function run(): Promise<void> {
391
391
 
392
392
  const config = getServerConfig()
393
393
  const requestContext = createSuperAdminContext({ id: 'import-docs-script' })
394
- const client = createBylineClient<CollectionFieldsByPath>({ config, requestContext })
394
+ const client = createBylineClient({ config, requestContext })
395
395
  const handle = client.collection(DOCS_COLLECTION)
396
396
 
397
397
  // Pre-pass: map each source file to the path its imported doc will
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Maintenance helpers for `regenerate-media.ts`.
3
+ *
4
+ * Kept separate from the executable so the safety-critical behaviour can be
5
+ * unit tested without loading the application server config or touching real
6
+ * storage.
7
+ */
8
+
9
+ import type { CollectionHandle } from '@byline/client'
10
+ import {
11
+ getDefaultStatus,
12
+ getWorkflowStatuses,
13
+ type CollectionDefinition,
14
+ type IDbAdapter,
15
+ type StoredFileValue,
16
+ } from '@byline/core'
17
+
18
+ export function storedFilePaths(value: StoredFileValue): Set<string> {
19
+ return new Set([
20
+ value.storagePath,
21
+ ...(value.variants ?? [])
22
+ .map((variant) => variant.storagePath)
23
+ .filter((storagePath): storagePath is string => Boolean(storagePath)),
24
+ ])
25
+ }
26
+
27
+ /**
28
+ * Reject a partial image-processor result before it replaces a complete
29
+ * persisted value. Core uploads deliberately tolerate an individual variant
30
+ * failure for interactive requests; this maintenance operation must be
31
+ * stricter because it is about bringing every stored asset up to the schema.
32
+ */
33
+ export function assertCompleteVariantSet(
34
+ storedFile: StoredFileValue,
35
+ expectedVariantNames: readonly string[]
36
+ ): void {
37
+ const expected = [...expectedVariantNames].sort()
38
+ const actual = (storedFile.variants ?? []).map((variant) => variant.name).sort()
39
+ if (
40
+ expected.length !== actual.length ||
41
+ expected.some((variantName, index) => variantName !== actual[index])
42
+ ) {
43
+ throw new Error(
44
+ `regenerate-media: incomplete variant set for '${storedFile.storagePath}' ` +
45
+ `(expected: ${expected.join(', ') || 'none'}; generated: ${actual.join(', ') || 'none'}).`
46
+ )
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Write the regenerated fields and restore the captured workflow status as
52
+ * one transaction.
53
+ *
54
+ * `CollectionHandle.update()` creates a new immutable version at the
55
+ * collection's default status. For this maintenance operation, changing that
56
+ * newly-created row to the captured status inside the same transaction is not
57
+ * an editorial transition: no caller can observe the intermediate draft, and
58
+ * an archived item never passes through published. The final version row and
59
+ * its normal `document.updated` activity entry retain the resulting status;
60
+ * the explicit status mutation is additionally audited as a system action.
61
+ *
62
+ * Direct adapter commands are intentional here and should not be copied into
63
+ * ordinary application writes. Scripts are the supported escape hatch for
64
+ * migrations that must preserve metadata while still using the lifecycle for
65
+ * the content update itself.
66
+ */
67
+ export async function replaceMediaVersionPreservingStatus(params: {
68
+ db: IDbAdapter
69
+ definition: CollectionDefinition
70
+ collectionId: string
71
+ handle: Pick<CollectionHandle, 'update'>
72
+ documentId: string
73
+ fields: Record<string, any>
74
+ targetStatus: string
75
+ }): Promise<{ documentVersionId: string }> {
76
+ const statuses = getWorkflowStatuses(params.definition).map((status) => status.name)
77
+ if (!statuses.includes(params.targetStatus)) {
78
+ throw new Error(
79
+ `regenerate-media: status '${params.targetStatus}' is not declared on collection ` +
80
+ `'${params.definition.path}' (declared: ${statuses.join(', ')}).`
81
+ )
82
+ }
83
+
84
+ const defaultStatus = getDefaultStatus(params.definition)
85
+ return params.db.withTransaction(async () => {
86
+ const result = await params.handle.update(params.documentId, params.fields)
87
+ if (params.targetStatus === defaultStatus) return result
88
+
89
+ await params.db.commands.documents.setDocumentStatus({
90
+ document_version_id: result.documentVersionId,
91
+ status: params.targetStatus,
92
+ })
93
+ if (params.targetStatus === 'published') {
94
+ await params.db.commands.documents.archivePublishedVersions({
95
+ document_id: params.documentId,
96
+ excludeVersionId: result.documentVersionId,
97
+ })
98
+ }
99
+ await params.db.commands.audit.append({
100
+ documentId: params.documentId,
101
+ collectionId: params.collectionId,
102
+ actorId: null,
103
+ actorRealm: 'system',
104
+ action: 'document.status.changed',
105
+ field: 'status',
106
+ before: defaultStatus,
107
+ after: params.targetStatus,
108
+ })
109
+
110
+ return result
111
+ })
112
+ }