@byline/cli 0.10.6 → 1.1.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/manifest/deps.d.ts +1 -1
- package/dist/manifest/deps.d.ts.map +1 -1
- package/dist/manifest/deps.js +7 -19
- package/dist/manifest/deps.js.map +1 -1
- package/dist/phases/env.js +2 -2
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -1
- package/dist/phases/index.js.map +1 -1
- package/dist/phases/seed-admin.js +1 -1
- package/dist/phases/seed-admin.js.map +1 -1
- package/dist/phases/seed-docs.d.ts +3 -0
- package/dist/phases/seed-docs.d.ts.map +1 -0
- package/dist/phases/seed-docs.js +86 -0
- package/dist/phases/seed-docs.js.map +1 -0
- package/dist/templates/byline-examples/collections/docs/admin.tsx +1 -1
- package/dist/templates/byline-examples/collections/docs-categories/admin.tsx +1 -1
- package/dist/templates/byline-examples/collections/media/admin.tsx +1 -1
- package/dist/templates/byline-examples/collections/media/components/media-list-view.tsx +1 -1
- package/dist/templates/byline-examples/collections/news/admin.tsx +1 -1
- package/dist/templates/byline-examples/collections/news-categories/admin.tsx +1 -1
- package/dist/templates/byline-examples/collections/pages/admin.tsx +1 -1
- package/dist/templates/byline-examples/components/summary-length.tsx +1 -1
- package/dist/templates/byline-examples/fields/lexical-richtext-compact.ts +1 -2
- package/dist/templates/byline-examples/{seed.ts → seed-docs.ts} +0 -2
- package/dist/templates/byline-examples/seeds/docs.ts +1 -1
- package/dist/templates/host/vite.config.ts +9 -11
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/templates/byline-examples/seeds/admin.ts +0 -62
- /package/dist/templates/byline/{seed.ts → seed-admin.ts} +0 -0
package/dist/manifest/deps.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface DepSpec {
|
|
|
23
23
|
/** Short human-readable reason this is on the list. */
|
|
24
24
|
note: string;
|
|
25
25
|
}
|
|
26
|
-
export declare const BYLINE_VERSION = "^0.
|
|
26
|
+
export declare const BYLINE_VERSION = "^1.0.0";
|
|
27
27
|
export declare const HOST_TANSTACK_VERSION = "^1.0.0";
|
|
28
28
|
export declare const DEP_SPECS: readonly DepSpec[];
|
|
29
29
|
//# sourceMappingURL=deps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAEnD,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;CACb;AAED,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAEnD,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;CACb;AAED,eAAO,MAAM,cAAc,WAAW,CAAA;AACtC,eAAO,MAAM,qBAAqB,WAAW,CAAA;AAE7C,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAgG9B,CAAA"}
|
package/dist/manifest/deps.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* `src/routes/_byline/`, `src/ui/byline/`). Transitive deps reach the
|
|
16
16
|
* user via the `@byline/*` package boundary and don't need declaring.
|
|
17
17
|
*/
|
|
18
|
-
export const BYLINE_VERSION = '^0.
|
|
18
|
+
export const BYLINE_VERSION = '^1.0.0';
|
|
19
19
|
export const HOST_TANSTACK_VERSION = '^1.0.0';
|
|
20
20
|
export const DEP_SPECS = [
|
|
21
21
|
// ---- @byline/* — released in lockstep at BYLINE_VERSION -----------------
|
|
@@ -75,16 +75,16 @@ export const DEP_SPECS = [
|
|
|
75
75
|
},
|
|
76
76
|
// ---- Runtime third-party ------------------------------------------------
|
|
77
77
|
{
|
|
78
|
-
name: '
|
|
79
|
-
version: '^
|
|
78
|
+
name: 'classnames',
|
|
79
|
+
version: '^2.5.1',
|
|
80
80
|
group: 'runtime',
|
|
81
|
-
note: '
|
|
81
|
+
note: 'utility for conditionally joining classNames; imported by ui/byline templates',
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
|
-
name: '
|
|
85
|
-
version: '^4.
|
|
84
|
+
name: 'dotenv',
|
|
85
|
+
version: '^17.4.2',
|
|
86
86
|
group: 'runtime',
|
|
87
|
-
note: 'used by byline/
|
|
87
|
+
note: 'used by byline/seed',
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
name: 'pino',
|
|
@@ -105,18 +105,6 @@ export const DEP_SPECS = [
|
|
|
105
105
|
group: 'dev',
|
|
106
106
|
note: 'TanStack devtools Vite plugin (used by canonical vite.config.ts)',
|
|
107
107
|
},
|
|
108
|
-
{
|
|
109
|
-
name: '@types/lodash-es',
|
|
110
|
-
version: '^4.17.12',
|
|
111
|
-
group: 'dev',
|
|
112
|
-
note: 'types for lodash-es',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: 'classnames',
|
|
116
|
-
version: '^2.5.1',
|
|
117
|
-
group: 'dev',
|
|
118
|
-
note: 'utility for conditionally joining classNames',
|
|
119
|
-
},
|
|
120
108
|
{
|
|
121
109
|
name: 'tsx',
|
|
122
110
|
version: '^4.21.0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,MAAM,CAAC,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAuB;IAC3C,4EAA4E;IAC5E;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,6DAA6D;KACpE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,mDAAmD;KAC1D;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,6DAA6D;KACpE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,sDAAsD;KAC7D;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gCAAgC;KACvC;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,2CAA2C;KAClD;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,iDAAiD;KACxD;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,6CAA6C;KACpD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gDAAgD;KACvD;IAED,4EAA4E;IAC5E;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,+EAA+E;KACtF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,qBAAqB;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,2FAA2F;KAClG;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,4EAA4E;KACnF;IAED,2EAA2E;IAC3E;QACE,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,kEAAkE;KACzE;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,+DAA+D;KACtE;CACO,CAAA"}
|
package/dist/phases/env.js
CHANGED
|
@@ -57,8 +57,8 @@ export const envPhase = {
|
|
|
57
57
|
].join('\n'), 'VITE_SERVER_URL');
|
|
58
58
|
values.VITE_SERVER_URL = await ctx.prompter.text({
|
|
59
59
|
message: 'Public origin URL',
|
|
60
|
-
placeholder: 'http://localhost:
|
|
61
|
-
defaultValue: 'http://localhost:
|
|
60
|
+
placeholder: 'http://localhost:3000/',
|
|
61
|
+
defaultValue: 'http://localhost:3000/',
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
if (missing.has('BYLINE_JWT_SECRET')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,KAAK,EAczB,CAAA;AAED,eAAO,MAAM,SAAS,EAA8B,OAAO,EAAE,CAAA;AAE7D,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAExD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,CAG/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,EAAE,CAKzF"}
|
package/dist/phases/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { preflightPhase } from './preflight.js';
|
|
|
7
7
|
import { routesPhase } from './routes.js';
|
|
8
8
|
import { scaffoldPhase } from './scaffold.js';
|
|
9
9
|
import { seedAdminPhase } from './seed-admin.js';
|
|
10
|
+
import { seedDocsPhase } from './seed-docs.js';
|
|
10
11
|
// import { stubPhase } from './stub.js'
|
|
11
12
|
import { uiPhase } from './ui.js';
|
|
12
13
|
import { wirePhase } from './wire/index.js';
|
|
@@ -17,10 +18,11 @@ export const PHASES = [
|
|
|
17
18
|
dbInitPhase,
|
|
18
19
|
envPhase,
|
|
19
20
|
depsPhase,
|
|
20
|
-
scaffoldPhase,
|
|
21
21
|
wirePhase,
|
|
22
22
|
routesPhase,
|
|
23
|
+
scaffoldPhase,
|
|
23
24
|
seedAdminPhase,
|
|
25
|
+
seedDocsPhase,
|
|
24
26
|
uiPhase,
|
|
25
27
|
// stubPhase('verify', 'Verify — typecheck and smoke-test admin route'),
|
|
26
28
|
];
|
package/dist/phases/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,cAAc;IACd,SAAS;IACT,OAAO;IACP,WAAW;IACX,QAAQ;IACR,SAAS;IACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,cAAc;IACd,SAAS;IACT,OAAO;IACP,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;IACd,aAAa;IACb,OAAO;IACP,wEAAwE;CACzE,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAc,CAAA;AAE7D,MAAM,UAAU,SAAS,CAAC,EAAW;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAW;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAyB,EAAE,EAAuB;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3E,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,KAAK;QAAE,OAAO,EAAE,CAAA;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { execa } from 'execa';
|
|
3
|
-
const SEED_ENTRY = 'byline/seed.ts';
|
|
3
|
+
const SEED_ENTRY = 'byline/seed-admin.ts';
|
|
4
4
|
export const seedAdminPhase = {
|
|
5
5
|
id: 'seed-admin',
|
|
6
6
|
title: 'Seed admin — bootstrap the super-admin user from .env credentials',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-admin.js","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAK7B,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"seed-admin.js","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-docs.d.ts","sourceRoot":"","sources":["../../src/phases/seed-docs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,KAAK,EAAgB,MAAM,aAAa,CAAA;AAItE,eAAO,MAAM,aAAa,EAAE,KAiD3B,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
const SEED_ENTRY = 'byline/seed-docs.ts';
|
|
4
|
+
export const seedDocsPhase = {
|
|
5
|
+
id: 'seed-docs',
|
|
6
|
+
title: 'Seed example docs — bootstrap example docs',
|
|
7
|
+
defaultMode: 'confirm',
|
|
8
|
+
async detect(ctx) {
|
|
9
|
+
if (ctx.state.isComplete('seed-docs'))
|
|
10
|
+
return 'done';
|
|
11
|
+
return preflightCheck(ctx) ?? 'pending';
|
|
12
|
+
},
|
|
13
|
+
async plan(ctx) {
|
|
14
|
+
if (ctx.state.get().answers.examples === false) {
|
|
15
|
+
ctx.logger.info('seed-docs — skipped (examples not installed)');
|
|
16
|
+
return { writes: [], commands: [], notes: [] };
|
|
17
|
+
}
|
|
18
|
+
const blocked = preflightCheck(ctx);
|
|
19
|
+
if (blocked) {
|
|
20
|
+
return {
|
|
21
|
+
writes: [],
|
|
22
|
+
commands: [],
|
|
23
|
+
notes: ['cannot run seed yet — earlier phase prerequisites missing'],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const cmd = seedCommand(ctx.pm);
|
|
27
|
+
return {
|
|
28
|
+
writes: [],
|
|
29
|
+
commands: [cmd],
|
|
30
|
+
notes: [
|
|
31
|
+
`runs ${SEED_ENTRY} via the ${ctx.pm} runner`,
|
|
32
|
+
'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env',
|
|
33
|
+
'idempotent — re-running is safe; already-seeded admin reports "no changes"',
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
async apply(_plan, ctx) {
|
|
38
|
+
const blocked = preflightCheck(ctx);
|
|
39
|
+
if (blocked)
|
|
40
|
+
return { state: blocked };
|
|
41
|
+
const cmd = seedCommand(ctx.pm);
|
|
42
|
+
ctx.logger.step(`${cmd.command} ${cmd.args.join(' ')}`);
|
|
43
|
+
try {
|
|
44
|
+
await execa(cmd.command, cmd.args, { cwd: ctx.cwd, stdio: 'inherit' });
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
ctx.logger.error(`seed failed: ${e.message}`);
|
|
48
|
+
return { state: 'blocked' };
|
|
49
|
+
}
|
|
50
|
+
return { state: 'done' };
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Cheap up-front checks for the obvious "you skipped a phase" failure
|
|
55
|
+
* modes. Returns `'blocked'` if a hard prerequisite is missing, `null`
|
|
56
|
+
* when ready to proceed.
|
|
57
|
+
*/
|
|
58
|
+
function preflightCheck(ctx) {
|
|
59
|
+
if (!existsSync(ctx.resolve(SEED_ENTRY))) {
|
|
60
|
+
ctx.logger.error(`${SEED_ENTRY} not found — run scaffold first`);
|
|
61
|
+
return 'blocked';
|
|
62
|
+
}
|
|
63
|
+
if (!existsSync(ctx.resolve('byline/seeds/docs.ts'))) {
|
|
64
|
+
ctx.logger.error('byline/seeds/docs.ts not found — run scaffold first');
|
|
65
|
+
return 'blocked';
|
|
66
|
+
}
|
|
67
|
+
if (!existsSync(ctx.resolve('.env'))) {
|
|
68
|
+
ctx.logger.error('.env not found — run env phase first');
|
|
69
|
+
return 'blocked';
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
function seedCommand(pm) {
|
|
74
|
+
switch (pm) {
|
|
75
|
+
case 'bun':
|
|
76
|
+
// Bun runs TypeScript natively — no tsx wrapper needed.
|
|
77
|
+
return { command: 'bun', args: [SEED_ENTRY] };
|
|
78
|
+
case 'pnpm':
|
|
79
|
+
return { command: 'pnpm', args: ['exec', 'tsx', SEED_ENTRY] };
|
|
80
|
+
case 'yarn':
|
|
81
|
+
return { command: 'yarn', args: ['tsx', SEED_ENTRY] };
|
|
82
|
+
case 'npm':
|
|
83
|
+
return { command: 'npx', args: ['--yes', 'tsx', SEED_ENTRY] };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=seed-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-docs.js","sourceRoot":"","sources":["../../src/phases/seed-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { SummaryLength } from '~/components/summary-length.js'
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { DocsCategories } from './schema.js'
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { MediaListView } from './components/media-list-view.js'
|
|
13
13
|
import { MediaThumbnail } from './components/media-thumbnail.js'
|
|
@@ -25,7 +25,7 @@ import type { ListViewComponentProps, StoredFileValue, WorkflowStatus } from '@b
|
|
|
25
25
|
import type { AnyCollectionSchemaTypes } from '@byline/core/zod-schemas'
|
|
26
26
|
import { RouterPager } from '@byline/host-tanstack-start/admin-shell/chrome/router-pager'
|
|
27
27
|
import { Container, IconButton, LoaderRing, PlusIcon, Search, Section, Select } from '@byline/ui'
|
|
28
|
-
import { LocalDateTime } from '@byline/ui/react
|
|
28
|
+
import { LocalDateTime } from '@byline/ui/react'
|
|
29
29
|
|
|
30
30
|
import { FormatBadge } from './media-thumbnail'
|
|
31
31
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { SummaryLength } from '~/components/summary-length.js'
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { NewsCategories } from './schema.js'
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { type CollectionAdminConfig, type ColumnDefinition, defineAdmin } from '@byline/core'
|
|
10
|
-
import { DateTimeFormatter } from '@byline/ui/react
|
|
10
|
+
import { DateTimeFormatter } from '@byline/ui/react'
|
|
11
11
|
|
|
12
12
|
import { SummaryLength } from '~/components/summary-length.js'
|
|
13
13
|
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
import type { RichTextField } from '@byline/core'
|
|
10
10
|
import { defaultEditorConfig, type EditorConfig } from '@byline/richtext-lexical'
|
|
11
|
-
import { cloneDeep } from 'lodash-es'
|
|
12
11
|
|
|
13
12
|
type Options = Partial<Omit<RichTextField, 'type' | 'editorConfig'>> & {
|
|
14
13
|
/**
|
|
@@ -75,7 +74,7 @@ function applyCompactPreset(config: EditorConfig): EditorConfig {
|
|
|
75
74
|
*/
|
|
76
75
|
export function lexicalRichTextCompact(options: Options = {}): RichTextField {
|
|
77
76
|
const { configure, ...rest } = options
|
|
78
|
-
const base = applyCompactPreset(
|
|
77
|
+
const base = applyCompactPreset(structuredClone(defaultEditorConfig))
|
|
79
78
|
const editorConfig = configure ? configure(base) : base
|
|
80
79
|
|
|
81
80
|
return {
|
|
@@ -10,13 +10,11 @@
|
|
|
10
10
|
import 'dotenv/config'
|
|
11
11
|
import './server.config.js'
|
|
12
12
|
|
|
13
|
-
import { seedAdmin } from './seeds/admin.js'
|
|
14
13
|
import { seedDocsCategories } from './seeds/doc-categories.js'
|
|
15
14
|
import { seedDocs } from './seeds/docs.js'
|
|
16
15
|
import { seedNewsCategories } from './seeds/news-categories.js'
|
|
17
16
|
|
|
18
17
|
async function run() {
|
|
19
|
-
await seedAdmin()
|
|
20
18
|
await seedDocsCategories()
|
|
21
19
|
await seedNewsCategories()
|
|
22
20
|
await seedDocs()
|
|
@@ -242,7 +242,7 @@ const sampleDocument = {
|
|
|
242
242
|
links: [{ link: 'https://example.com' }, { link: 'https://another-example.com' }],
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
export async function seedDocs(count =
|
|
245
|
+
export async function seedDocs(count = 15) {
|
|
246
246
|
const db = getServerConfig().db
|
|
247
247
|
|
|
248
248
|
const collectionDefinition = getCollectionDefinition('docs')
|
|
@@ -89,8 +89,8 @@ const config = defineConfig({
|
|
|
89
89
|
],
|
|
90
90
|
},
|
|
91
91
|
include: [
|
|
92
|
-
// Force pre-bundling of
|
|
93
|
-
//
|
|
92
|
+
// Force pre-bundling of @byline/ui so Vite's dep optimizer walks
|
|
93
|
+
// into it and inlines its CJS deps — notably
|
|
94
94
|
// `@base-ui/utils/store/useStore` and `use-sync-external-store/shim`.
|
|
95
95
|
//
|
|
96
96
|
// Without this, those CJS modules are reached via Vite's regular
|
|
@@ -99,21 +99,19 @@ const config = defineConfig({
|
|
|
99
99
|
// The browser then throws a SyntaxError, the route never hydrates,
|
|
100
100
|
// and forms fall back to native GET behaviour.
|
|
101
101
|
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
// workspace case and required in the published case.
|
|
102
|
+
// @byline/ui ships React-side code through a single
|
|
103
|
+
// `@byline/ui/react` entry point — there are no per-area subpaths
|
|
104
|
+
// to pre-bundle individually. That single-entry shape is also why
|
|
105
|
+
// pre-bundling here is now safe: the React Contexts in
|
|
106
|
+
// `services/*` resolve to one module instance regardless of which
|
|
107
|
+
// file in @byline/ui imports them.
|
|
109
108
|
//
|
|
110
109
|
// We intentionally do NOT pre-bundle @byline/host-tanstack-start
|
|
111
110
|
// subpaths — they transitively pull in @tanstack/start-server-core,
|
|
112
111
|
// which references Vite-virtual modules (e.g.
|
|
113
112
|
// `tanstack-start-injected-head-scripts:v`) that the dep optimizer
|
|
114
113
|
// cannot resolve.
|
|
115
|
-
'@byline/ui/react
|
|
116
|
-
'@byline/ui/react/services',
|
|
114
|
+
'@byline/ui/react',
|
|
117
115
|
],
|
|
118
116
|
},
|
|
119
117
|
},
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context } from './context.js';
|
|
2
|
-
export type PhaseId = 'preflight' | 'host' | 'db' | 'db-init' | 'env' | 'deps' | 'scaffold' | 'seed-admin' | 'wire' | 'routes' | 'ui' | 'verify';
|
|
2
|
+
export type PhaseId = 'preflight' | 'host' | 'db' | 'db-init' | 'env' | 'deps' | 'scaffold' | 'seed-admin' | 'seed-docs' | 'wire' | 'routes' | 'ui' | 'verify';
|
|
3
3
|
export type PhaseState = 'pending' | 'partial' | 'done' | 'blocked';
|
|
4
4
|
export type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
|
|
5
5
|
export type DbStrategy = 'existing' | 'docker';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,OAAO,GACf,WAAW,GACX,MAAM,GACN,IAAI,GACJ,SAAS,GACT,KAAK,GACL,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,QAAQ,CAAA;AAEZ,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAEnE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAE5D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;AAE9C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,SAAS,GAAG,MAAM,CAAA;IAC/B,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,EAAE,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;CACxE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,OAAO,GACf,WAAW,GACX,MAAM,GACN,IAAI,GACJ,SAAS,GACT,KAAK,GACL,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,QAAQ,CAAA;AAEZ,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAEnE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAE5D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;AAE9C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,SAAS,GAAG,MAAM,CAAA;IAC/B,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,EAAE,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;CACxE"}
|
package/package.json
CHANGED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
-
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Infonomic Company Limited
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Super-admin bootstrap seed.
|
|
11
|
-
*
|
|
12
|
-
* Idempotent. Reads credentials from env (`BYLINE_SUPERADMIN_EMAIL`,
|
|
13
|
-
* `BYLINE_SUPERADMIN_PASSWORD`) and calls the built-in
|
|
14
|
-
* `seedSuperAdmin` helper from `@byline/admin/admin-users` against an
|
|
15
|
-
* `AdminStore` built on the application's single connection pool.
|
|
16
|
-
*
|
|
17
|
-
* The admin account it produces:
|
|
18
|
-
* - `is_super_admin: true` — bypasses every ability check
|
|
19
|
-
* - `is_enabled: true` — ready to sign in immediately
|
|
20
|
-
* - `is_email_verified: true` — skip the verification gate for bootstrap
|
|
21
|
-
*
|
|
22
|
-
* In any non-dev deployment: change the credentials in env, run the seed
|
|
23
|
-
* once, then immediately change the password from inside the admin UI.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import type { AdminStore } from '@byline/admin'
|
|
27
|
-
import { seedSuperAdmin } from '@byline/admin/admin-users'
|
|
28
|
-
import { getBylineCore } from '@byline/core'
|
|
29
|
-
|
|
30
|
-
export async function seedAdmin() {
|
|
31
|
-
const email = process.env.BYLINE_SUPERADMIN_EMAIL
|
|
32
|
-
const password = process.env.BYLINE_SUPERADMIN_PASSWORD
|
|
33
|
-
|
|
34
|
-
if (!email || !password) {
|
|
35
|
-
console.warn(
|
|
36
|
-
'Skipping admin seed: BYLINE_SUPERADMIN_EMAIL and BYLINE_SUPERADMIN_PASSWORD ' +
|
|
37
|
-
'must both be set (see .env.example).'
|
|
38
|
-
)
|
|
39
|
-
return
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const bylineCore = getBylineCore<AdminStore>()
|
|
43
|
-
|
|
44
|
-
if (!bylineCore.adminStore) {
|
|
45
|
-
throw new Error(
|
|
46
|
-
'seedAdmin: bylineCore.adminStore is not configured. ' +
|
|
47
|
-
'Pass adminStore to initBylineCore() in byline/server.config.ts.'
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const result = await seedSuperAdmin(bylineCore.adminStore, { email, password })
|
|
52
|
-
|
|
53
|
-
const parts: string[] = []
|
|
54
|
-
if (result.created.role) parts.push('role')
|
|
55
|
-
if (result.created.user) parts.push('user')
|
|
56
|
-
if (result.created.assignment) parts.push('assignment')
|
|
57
|
-
if (parts.length === 0) {
|
|
58
|
-
console.log(`Super-admin already present (${email}) — no changes.`)
|
|
59
|
-
} else {
|
|
60
|
-
console.log(`Super-admin seed: created ${parts.join(', ')} for ${email}.`)
|
|
61
|
-
}
|
|
62
|
-
}
|
|
File without changes
|