@byline/cli 3.15.1 → 3.16.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.
package/dist/runner.d.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import type { Context } from './context.js';
2
- import type { Phase, PhaseState, Plan } from './types.js';
2
+ import type { Phase, PhaseState } from './types.js';
3
3
  /**
4
4
  * Returned phase state — caller decides whether to continue. `'blocked'`
5
5
  * means the next phase should NOT run; `'partial'` is a soft warning
6
6
  * (e.g. wire phase had a manual sub-edit) and the caller may continue.
7
7
  */
8
8
  export declare function runPhase(phase: Phase, ctx: Context): Promise<PhaseState>;
9
- export declare function executePlan(plan: Plan, ctx: Context): Promise<void>;
10
9
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEzD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA+C9E;AAuCD,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAQ,MAAM,YAAY,CAAA;AAEzD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA+C9E"}
package/dist/runner.js CHANGED
@@ -1,6 +1,4 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { dirname } from 'node:path';
3
- import { execa } from 'execa';
1
+ import { existsSync, readFileSync } from 'node:fs';
4
2
  import { renderDiff } from './ui/diff.js';
5
3
  /**
6
4
  * Returned phase state — caller decides whether to continue. `'blocked'`
@@ -90,13 +88,4 @@ async function decideApply(phase, ctx) {
90
88
  function readIfExists(path) {
91
89
  return existsSync(path) ? readFileSync(path, 'utf8') : '';
92
90
  }
93
- export async function executePlan(plan, ctx) {
94
- for (const w of plan.writes) {
95
- mkdirSync(dirname(w.path), { recursive: true });
96
- writeFileSync(w.path, w.contents, 'utf8');
97
- }
98
- for (const c of plan.commands) {
99
- await execa(c.command, c.args, { cwd: c.cwd ?? ctx.cwd, stdio: 'inherit' });
100
- }
101
- }
102
91
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -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/DOCUMENT-TREE.md): the docs collection is a
36
+ // Document tree (docs/04-collections/03-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
@@ -48,7 +48,10 @@ export const Docs = defineCollection({
48
48
  // `filters`, and `zones` round out the surface. Opting in here is what
49
49
  // makes the lifecycle hooks in ./hooks.ts index this collection — and it
50
50
  // requires a `search` provider registered in byline/server.config.ts.
51
- search: { body: [{ field: 'title', boost: 2 }, 'summary'] },
51
+ // `content` is a container (blocks) field: naming it walks every text-bearing
52
+ // child (richtext body, image alt + caption) into the searchable body —
53
+ // omit it and document bodies are silently absent from the index.
54
+ search: { body: [{ field: 'title', boost: 2 }, 'summary', 'content'] },
52
55
  useAsTitle: 'title',
53
56
  useAsPath: 'title',
54
57
  advertiseLocales: true, // Renders the available-locales sidebar widget.
@@ -50,7 +50,7 @@ export const Media = defineCollection({
50
50
  archived: { label: 'Archived', verb: 'Archive' },
51
51
  }),
52
52
  showStats: true,
53
- search: { fields: ['title', 'caption'] },
53
+ search: { body: ['title', 'caption'] },
54
54
  fields: [
55
55
  {
56
56
  name: 'image',
@@ -30,7 +30,7 @@ export const News = defineCollection({
30
30
  archived: { label: 'Archived', verb: 'Archive' },
31
31
  }),
32
32
  showStats: true,
33
- search: { fields: ['title'] },
33
+ search: { body: ['title'] },
34
34
  useAsTitle: 'title',
35
35
  useAsPath: 'title',
36
36
  advertiseLocales: true, // Renders the available-locales sidebar widget.
@@ -21,13 +21,13 @@ export const NewsCategories = defineCollection({
21
21
  // `published` and the form shows only Save / Close.
22
22
  workflow: SINGLE_STATUS_WORKFLOW,
23
23
  showStats: true,
24
- search: { fields: ['name'] },
24
+ search: { body: ['name'] },
25
25
  useAsTitle: 'name',
26
26
  useAsPath: 'name',
27
27
  // Demonstration of `orderable: true` — short, finite, naturally ordered.
28
28
  // Editors can drag rows in the list view to set a canonical order; the
29
29
  // value persists on `byline_documents.order_key` without bumping the
30
- // document version. See docs/COLLECTIONS.md (Orderable collections).
30
+ // document version. See docs/04-collections/index.md (Orderable collections).
31
31
  orderable: true,
32
32
  fields: [
33
33
  { name: 'name', label: 'Name', type: 'text', localized: true },
@@ -32,7 +32,7 @@ export const Pages = defineCollection({
32
32
  archived: { label: 'Archived', verb: 'Archive' },
33
33
  }),
34
34
  showStats: true,
35
- search: { fields: ['title'] },
35
+ search: { body: ['title'] },
36
36
  useAsTitle: 'title',
37
37
  useAsPath: 'title',
38
38
  advertiseLocales: true, // Renders the available-locales sidebar widget.
@@ -12,7 +12,7 @@
12
12
  * schema field's name. Pairs with a plain `{ type: 'text' }` entry on
13
13
  * the schema side; this file owns the React (label icon + AI panel).
14
14
  *
15
- * See `docs/FIELDS.md` for the schema-vs-admin model.
15
+ * See `docs/04-collections/01-fields.md` for the schema-vs-admin model.
16
16
  */
17
17
 
18
18
  import type { FieldAdminConfig, FieldComponentSlots } from '@byline/core'
@@ -12,7 +12,7 @@
12
12
  * schema field's name. Pairs with a plain `{ type: 'textArea' }` entry
13
13
  * on the schema side; this file owns the React (label icon + AI panel).
14
14
  *
15
- * See `docs/FIELDS.md` for the schema-vs-admin model.
15
+ * See `docs/04-collections/01-fields.md` for the schema-vs-admin model.
16
16
  */
17
17
 
18
18
  import type { FieldAdminConfig, FieldComponentSlots } from '@byline/core'
@@ -22,7 +22,7 @@
22
22
  * Pairs with a plain `{ type: 'richText' }` entry on the schema side —
23
23
  * schema files must stay React-free and tsx-loadable.
24
24
  *
25
- * See `docs/FIELDS.md` for the schema-vs-admin model.
25
+ * See `docs/04-collections/01-fields.md` for the schema-vs-admin model.
26
26
  */
27
27
 
28
28
  import { AiLexicalExtension } from '@byline/ai/plugins/lexical'
@@ -23,7 +23,7 @@
23
23
  * To AI-enable the resulting field, pair this with `aiRichTextAdmin()`
24
24
  * on the admin side — see `lexical-richtext-ai.tsx`.
25
25
  *
26
- * See `docs/FIELDS.md` for the full schema-vs-admin model.
26
+ * See `docs/04-collections/01-fields.md` for the full schema-vs-admin model.
27
27
  */
28
28
 
29
29
  import type { RichTextField } from '@byline/core'
@@ -12,7 +12,7 @@
12
12
  * collection's `fields` array in `<collection>/schema.ts`. Pure data;
13
13
  * safe to import from any schema file.
14
14
  *
15
- * See `docs/FIELDS.md` for the schema-vs-admin model.
15
+ * See `docs/04-collections/01-fields.md` for the schema-vs-admin model.
16
16
  */
17
17
 
18
18
  import { defineField, type FieldData } from '@byline/core'
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * cd apps/webapp && pnpm tsx byline/scripts/backfill-version-locales.ts
20
20
  *
21
- * See docs/I18N.md.
21
+ * See docs/07-internationalization/index.md.
22
22
  */
23
23
 
24
24
  import '../load-env.js'
@@ -48,7 +48,7 @@
48
48
  * number directories/files with `NN-` prefixes to curate the
49
49
  * TOC — prefixes never reach the slug (paths come from
50
50
  * frontmatter). The `docs` collection must be `tree: true`.
51
- * See docs/DOCUMENT-TREE.md.
51
+ * See docs/04-collections/03-document-trees.md.
52
52
  */
53
53
 
54
54
  import '../load-env.js'
@@ -295,7 +295,7 @@ async function processFile(
295
295
  // Advertise the imported locale (editorial available-locales set), merged
296
296
  // with whatever is already advertised so a later-locale re-import doesn't
297
297
  // clobber an earlier one. The public set is still gated by the version
298
- // completeness ledger (intersection). See docs/I18N.md.
298
+ // completeness ledger (intersection). See docs/07-internationalization/index.md.
299
299
  availableLocales: [...new Set([...(existing.availableLocales ?? []), locale])],
300
300
  })
301
301
  await walkToStatus(handle, result.documentId, workflowStatuses, defaultStatus, desiredStatus)
@@ -20,7 +20,7 @@
20
20
  * cd apps/webapp && pnpm tsx byline/scripts/re-anchor.ts --to fr --collection pages
21
21
  * cd apps/webapp && pnpm tsx byline/scripts/re-anchor.ts --to fr --dry-run
22
22
  *
23
- * See docs/I18N.md.
23
+ * See docs/07-internationalization/index.md.
24
24
  */
25
25
 
26
26
  import '../load-env.js'
@@ -198,7 +198,7 @@ async function buildBylineCore(): Promise<BylineCore<AdminStore>> {
198
198
  // Server-side richtext adapter — refreshes embedded relation
199
199
  // envelopes (link `{ title, path }`, inline-image `{ title, altText,
200
200
  // image, sizes }`) on every read, gated per-field by
201
- // `populateRelationsOnRead`. See docs/RICHTEXT.md for the full design.
201
+ // `populateRelationsOnRead`. See docs/04-collections/06-rich-text.md for the full design.
202
202
  //
203
203
  // `getClient` returns a `BylineClient` — the SDK over the storage
204
204
  // primitives that the populate visitors use to batch-fetch target
@@ -100,7 +100,7 @@ function isLocalHref(href: string): boolean {
100
100
  * usable href can be built — the serializer treats that as the signal
101
101
  * to strip the `<a>` / `<LangLink>` wrapper and render children plain.
102
102
  *
103
- * Internal-link fallback chain (see docs/RICHTEXT.md):
103
+ * Internal-link fallback chain (see docs/04-collections/06-rich-text.md):
104
104
  * 1. `document._resolved === false` → strip wrapper.
105
105
  * 2. `document.path` starts with `/` → use as-is (canonicalised by
106
106
  * the server-side embed walker via `buildDocumentPath`).
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@byline/cli",
3
3
  "private": false,
4
4
  "license": "MPL-2.0",
5
- "version": "3.15.1",
5
+ "version": "3.16.0",
6
6
  "engines": {
7
7
  "node": ">=20.9.0"
8
8
  },