@byline/cli 0.1.3 → 0.1.4

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 (33) hide show
  1. package/dist/manifest/deps.d.ts +1 -1
  2. package/dist/manifest/deps.d.ts.map +1 -1
  3. package/dist/manifest/deps.js +19 -1
  4. package/dist/manifest/deps.js.map +1 -1
  5. package/dist/phases/index.d.ts.map +1 -1
  6. package/dist/phases/index.js +2 -0
  7. package/dist/phases/index.js.map +1 -1
  8. package/dist/phases/routes.d.ts.map +1 -1
  9. package/dist/phases/routes.js +29 -8
  10. package/dist/phases/routes.js.map +1 -1
  11. package/dist/phases/seed-admin.d.ts +3 -0
  12. package/dist/phases/seed-admin.d.ts.map +1 -0
  13. package/dist/phases/seed-admin.js +82 -0
  14. package/dist/phases/seed-admin.js.map +1 -0
  15. package/dist/templates/host/vite.config.ts +91 -21
  16. package/dist/templates/routes/{(byline) → _byline}/admin/account/index.tsx +1 -1
  17. package/dist/templates/routes/{(byline) → _byline}/admin/collections/$collection/$id/api.tsx +1 -1
  18. package/dist/templates/routes/{(byline) → _byline}/admin/collections/$collection/$id/history.tsx +1 -1
  19. package/dist/templates/routes/{(byline) → _byline}/admin/collections/$collection/$id/index.tsx +1 -1
  20. package/dist/templates/routes/{(byline) → _byline}/admin/collections/$collection/create.tsx +1 -1
  21. package/dist/templates/routes/{(byline) → _byline}/admin/collections/$collection/index.tsx +1 -1
  22. package/dist/templates/routes/{(byline) → _byline}/admin/index.tsx +1 -1
  23. package/dist/templates/routes/{(byline) → _byline}/admin/permissions/index.tsx +1 -1
  24. package/dist/templates/routes/{(byline) → _byline}/admin/roles/$id/index.tsx +1 -1
  25. package/dist/templates/routes/{(byline) → _byline}/admin/roles/index.tsx +1 -1
  26. package/dist/templates/routes/{(byline) → _byline}/admin/route.tsx +1 -1
  27. package/dist/templates/routes/{(byline) → _byline}/admin/users/$id/index.tsx +1 -1
  28. package/dist/templates/routes/{(byline) → _byline}/admin/users/index.tsx +1 -1
  29. package/dist/templates/routes/_byline/route.tsx +37 -0
  30. package/dist/templates/routes/{(byline) → _byline}/sign-in.tsx +1 -1
  31. package/dist/types.d.ts +1 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/package.json +1 -1
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * Scope: this list is intentionally minimal — only packages that are
14
14
  * directly imported by files we drop into the user's tree (`byline/`,
15
- * `src/routes/(byline)/`, `src/ui/byline/`). Transitive deps reach the
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
18
  export type DepGroup = 'byline' | 'runtime' | 'dev';
@@ -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,YAAY,CAAA;AACvC,eAAO,MAAM,qBAAqB,WAAW,CAAA;AAE7C,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EA8E9B,CAAA"}
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,YAAY,CAAA;AACvC,eAAO,MAAM,qBAAqB,WAAW,CAAA;AAE7C,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAgG9B,CAAA"}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * Scope: this list is intentionally minimal — only packages that are
14
14
  * directly imported by files we drop into the user's tree (`byline/`,
15
- * `src/routes/(byline)/`, `src/ui/byline/`). Transitive deps reach the
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
18
  export const BYLINE_VERSION = '^0.10.0';
@@ -80,7 +80,25 @@ export const DEP_SPECS = [
80
80
  group: 'runtime',
81
81
  note: 'used by byline/ config helpers',
82
82
  },
83
+ {
84
+ name: 'pino',
85
+ version: '^10.3.1',
86
+ group: 'runtime',
87
+ note: 'logger imported directly by @byline/core; Nitro tracer needs it owned at the app boundary',
88
+ },
89
+ {
90
+ name: 'nitro',
91
+ version: 'npm:nitro-nightly@latest',
92
+ group: 'runtime',
93
+ note: 'Nitro plugin that drives TanStack Start SSR builds (vite.config.ts plugin)',
94
+ },
83
95
  // ---- Dev ---------------------------------------------------------------
96
+ {
97
+ name: '@tanstack/devtools-vite',
98
+ version: '^0.6.0',
99
+ group: 'dev',
100
+ note: 'TanStack devtools Vite plugin (used by canonical vite.config.ts)',
101
+ },
84
102
  {
85
103
  name: '@types/lodash-es',
86
104
  version: '^4.17.12',
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AACvC,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,WAAW;QACjB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,gCAAgC;KACvC;IAED,2EAA2E;IAC3E;QACE,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,qBAAqB;KAC5B;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,+DAA+D;KACtE;CACO,CAAA"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/manifest/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AACvC,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,WAAW;QACjB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,gCAAgC;KACvC;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,kBAAkB;QACxB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,qBAAqB;KAC5B;IACD;QACE,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,+DAA+D;KACtE;CACO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,KAAK,EAYzB,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,KAAK,EAazB,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"}
@@ -6,6 +6,7 @@ import { hostPhase } from './host.js';
6
6
  import { preflightPhase } from './preflight.js';
7
7
  import { routesPhase } from './routes.js';
8
8
  import { scaffoldPhase } from './scaffold.js';
9
+ import { seedAdminPhase } from './seed-admin.js';
9
10
  import { stubPhase } from './stub.js';
10
11
  import { uiPhase } from './ui.js';
11
12
  import { wirePhase } from './wire/index.js';
@@ -17,6 +18,7 @@ export const PHASES = [
17
18
  envPhase,
18
19
  depsPhase,
19
20
  scaffoldPhase,
21
+ seedAdminPhase,
20
22
  wirePhase,
21
23
  routesPhase,
22
24
  uiPhase,
@@ -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,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,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,aAAa;IACb,SAAS;IACT,WAAW;IACX,OAAO;IACP,SAAS,CAAC,QAAQ,EAAE,+CAA+C,CAAC;CACrE,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
+ {"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,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,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,aAAa;IACb,cAAc;IACd,SAAS;IACT,WAAW;IACX,OAAO;IACP,SAAS,CAAC,QAAQ,EAAE,+CAA+C,CAAC;CACrE,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 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/phases/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAexC,eAAO,MAAM,WAAW,EAAE,KAsFzB,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/phases/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAexC,eAAO,MAAM,WAAW,EAAE,KAgHzB,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, join, relative } from 'node:path';
3
- const TEMPLATE_DIR = 'routes/(byline)';
4
- const TARGET_GROUP_DIR = 'src/routes/(byline)';
3
+ const TEMPLATE_DIR = 'routes/_byline';
4
+ const TARGET_GROUP_DIR = 'src/routes/_byline';
5
5
  const DEFAULT_ADMIN_PATH = '/admin';
6
6
  const ADMIN_SLUG_REGEX = /^[a-z][a-z0-9-]*$/;
7
7
  export const routesPhase = {
8
8
  id: 'routes',
9
- title: 'Routes — drop (byline)/admin route stubs into src/routes/',
9
+ title: 'Routes — drop _byline/admin pathless layout into src/routes/',
10
10
  defaultMode: 'confirm',
11
11
  async detect(ctx) {
12
12
  if (ctx.state.isComplete('routes'))
@@ -32,8 +32,8 @@ export const routesPhase = {
32
32
  `target: ${ctx.resolve(TARGET_GROUP_DIR)}/`,
33
33
  `admin path: ${ctx.state.get().answers.adminPath === undefined ? `will prompt (default ${DEFAULT_ADMIN_PATH})` : adminPath}`,
34
34
  slug !== 'admin'
35
- ? `route group: (byline)/${slug} (renamed from (byline)/admin)`
36
- : 'route group: (byline)/admin',
35
+ ? `pathless layout: _byline/${slug} (renamed from _byline/admin)`
36
+ : 'pathless layout: _byline/admin',
37
37
  `${created} file(s) to create, ${skipped} already-existing skipped`,
38
38
  ];
39
39
  return { writes: [], commands: [], notes };
@@ -75,6 +75,27 @@ export const routesPhase = {
75
75
  if (skipped > 0) {
76
76
  ctx.logger.info(`${skipped} file(s) already existed and were left untouched — re-running routes is non-destructive`);
77
77
  }
78
+ ctx.prompter.note([
79
+ 'The routes were dropped under a TanStack Router pathless layout',
80
+ "(`src/routes/_byline/`). The `_byline` segment doesn't add to the URL —",
81
+ '`/_byline/admin/users` resolves to `/admin/users` — but it does scope',
82
+ 'the Byline UI kit stylesheets (loaded by `_byline/route.tsx`) to admin',
83
+ '+ sign-in pages only.',
84
+ '',
85
+ 'If your app has front-end routes at the root of `src/routes/`, consider',
86
+ 'moving them under their own pathless layout (e.g. `_front-end/`) so the',
87
+ "Byline reset / styles don't bleed into them. If you DO want to use the",
88
+ 'Byline UI kit on your public site too, just import the same stylesheets',
89
+ 'from your front-end layout:',
90
+ '',
91
+ " import '@byline/ui/reset.css'",
92
+ " import '@byline/ui/styles.css'",
93
+ '',
94
+ 'See the reference webapp at https://github.com/Byline-CMS/bylinecms.dev',
95
+ '— `apps/webapp/src/routes/_byline/route.tsx` (admin) and',
96
+ ' `apps/webapp/src/routes/{-$lng}/_public/route.tsx` (front-end) both',
97
+ 'demonstrate this pattern.',
98
+ ].join('\n'), 'Pathless layout + style isolation');
78
99
  return { state: 'done' };
79
100
  },
80
101
  };
@@ -116,16 +137,16 @@ function renameAdminSegment(rel, slug) {
116
137
  /**
117
138
  * Rewrite route-id strings inside the file contents. Route ids are passed
118
139
  * positionally to the `create*Route(...)` factories from
119
- * `@byline/host-tanstack-start/routes` and look like `/(byline)/admin/...`.
140
+ * `@byline/host-tanstack-start/routes` and look like `/_byline/admin/...`.
120
141
  *
121
- * We match the literal `/(byline)/admin` prefix only — we do not touch
142
+ * We match the literal `/_byline/admin` prefix only — we do not touch
122
143
  * other occurrences of "admin" elsewhere in the file (comments, prop
123
144
  * names, etc.).
124
145
  */
125
146
  function rewriteRouteIds(source, slug) {
126
147
  if (slug === 'admin')
127
148
  return source;
128
- return source.replace(/(['"])\/\(byline\)\/admin\b/g, `$1/(byline)/${slug}`);
149
+ return source.replace(/(['"])\/_byline\/admin\b/g, `$1/_byline/${slug}`);
129
150
  }
130
151
  function walkFiles(root) {
131
152
  const out = [];
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/phases/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/phases/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Phase } from '../types.js';
2
+ export declare const seedAdminPhase: Phase;
3
+ //# sourceMappingURL=seed-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-admin.d.ts","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,KAAK,EAAgB,MAAM,aAAa,CAAA;AAItE,eAAO,MAAM,cAAc,EAAE,KA6C5B,CAAA"}
@@ -0,0 +1,82 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { execa } from 'execa';
3
+ const SEED_ENTRY = 'byline/seed.ts';
4
+ export const seedAdminPhase = {
5
+ id: 'seed-admin',
6
+ title: 'Seed admin — bootstrap the super-admin user from .env credentials',
7
+ defaultMode: 'confirm',
8
+ async detect(ctx) {
9
+ if (ctx.state.isComplete('seed-admin'))
10
+ return 'done';
11
+ return preflightCheck(ctx) ?? 'pending';
12
+ },
13
+ async plan(ctx) {
14
+ const blocked = preflightCheck(ctx);
15
+ if (blocked) {
16
+ return {
17
+ writes: [],
18
+ commands: [],
19
+ notes: ['cannot run seed yet — earlier phase prerequisites missing'],
20
+ };
21
+ }
22
+ const cmd = seedCommand(ctx.pm);
23
+ return {
24
+ writes: [],
25
+ commands: [cmd],
26
+ notes: [
27
+ `runs ${SEED_ENTRY} via the ${ctx.pm} runner`,
28
+ 'reads BYLINE_SUPERADMIN_EMAIL / BYLINE_SUPERADMIN_PASSWORD from .env',
29
+ 'idempotent — re-running is safe; already-seeded admin reports "no changes"',
30
+ ],
31
+ };
32
+ },
33
+ async apply(_plan, ctx) {
34
+ const blocked = preflightCheck(ctx);
35
+ if (blocked)
36
+ return { state: blocked };
37
+ const cmd = seedCommand(ctx.pm);
38
+ ctx.logger.step(`${cmd.command} ${cmd.args.join(' ')}`);
39
+ try {
40
+ await execa(cmd.command, cmd.args, { cwd: ctx.cwd, stdio: 'inherit' });
41
+ }
42
+ catch (e) {
43
+ ctx.logger.error(`seed failed: ${e.message}`);
44
+ return { state: 'blocked' };
45
+ }
46
+ return { state: 'done' };
47
+ },
48
+ };
49
+ /**
50
+ * Cheap up-front checks for the obvious "you skipped a phase" failure
51
+ * modes. Returns `'blocked'` if a hard prerequisite is missing, `null`
52
+ * when ready to proceed.
53
+ */
54
+ function preflightCheck(ctx) {
55
+ if (!existsSync(ctx.resolve(SEED_ENTRY))) {
56
+ ctx.logger.error(`${SEED_ENTRY} not found — run scaffold first`);
57
+ return 'blocked';
58
+ }
59
+ if (!existsSync(ctx.resolve('byline/seeds/admin.ts'))) {
60
+ ctx.logger.error('byline/seeds/admin.ts not found — run scaffold first');
61
+ return 'blocked';
62
+ }
63
+ if (!existsSync(ctx.resolve('.env'))) {
64
+ ctx.logger.error('.env not found — run env phase first');
65
+ return 'blocked';
66
+ }
67
+ return null;
68
+ }
69
+ function seedCommand(pm) {
70
+ switch (pm) {
71
+ case 'bun':
72
+ // Bun runs TypeScript natively — no tsx wrapper needed.
73
+ return { command: 'bun', args: [SEED_ENTRY] };
74
+ case 'pnpm':
75
+ return { command: 'pnpm', args: ['exec', 'tsx', SEED_ENTRY] };
76
+ case 'yarn':
77
+ return { command: 'yarn', args: ['tsx', SEED_ENTRY] };
78
+ case 'npm':
79
+ return { command: 'npx', args: ['--yes', 'tsx', SEED_ENTRY] };
80
+ }
81
+ }
82
+ //# sourceMappingURL=seed-admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-admin.js","sourceRoot":"","sources":["../../src/phases/seed-admin.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,111 @@
1
+ import { devtools } from '@tanstack/devtools-vite'
1
2
  import { tanstackStart } from '@tanstack/react-start/plugin/vite'
2
3
 
3
4
  import tailwindcss from '@tailwindcss/vite'
4
- import react from '@vitejs/plugin-react'
5
+ import viteReact from '@vitejs/plugin-react'
6
+ import { nitro } from 'nitro/vite'
5
7
  import { defineConfig } from 'vite'
6
8
 
7
- export default defineConfig({
9
+ // Inline every `@byline/*` package through Vite's SSR pipeline. The
10
+ // regex catches future packages without requiring a config edit. The
11
+ // dual `environments.ssr.resolve.noExternal` + legacy `ssr.noExternal`
12
+ // is required: TanStack Start's dev SSR uses the Vite 8 environments
13
+ // API, while build-time + older code paths still consult `ssr.noExternal`.
14
+ const bylineSsrNoExternal = [/^@byline\//]
15
+
16
+ // Packages that load platform-specific native binaries (or are CJS-only
17
+ // and therefore can't run through Vite's ESM module runner) must be
18
+ // kept external so Node resolves them at runtime instead.
19
+ // - sharp + @byline/storage-local — image processing (libvips)
20
+ // - @byline/db-postgres — depends on `pg` native bindings
21
+ // - @byline/admin — re-exports server-only code that imports the above
22
+ // - pino — CJS entrypoints don't execute under Vite's module runner
23
+ const ssrExternal = [
24
+ 'sharp',
25
+ 'pino',
26
+ '@byline/storage-local',
27
+ '@byline/admin',
28
+ '@byline/db-postgres',
29
+ ]
30
+
31
+ const config = defineConfig({
8
32
  server: {
9
33
  port: 5173,
10
34
  },
11
35
  resolve: {
12
36
  tsconfigPaths: true,
13
37
  },
38
+ environments: {
39
+ ssr: {
40
+ resolve: {
41
+ noExternal: bylineSsrNoExternal,
42
+ },
43
+ },
44
+ },
14
45
  ssr: {
15
- noExternal: ['@byline/ui'],
16
- // Packages that load platform-specific native `.node` binaries at
17
- // runtime via dynamic require(). Rollup cannot bundle these, so we
18
- // keep them external and let Node.js resolve them from node_modules
19
- // at runtime.
20
- // - sharp + @byline/storage-local — image processing
21
- // - @byline/db-postgres — adapter depends on pg native bindings
22
- external: ['sharp', '@byline/storage-local', '@byline/admin', '@byline/db-postgres'],
46
+ noExternal: bylineSsrNoExternal,
47
+ external: ssrExternal,
23
48
  },
24
- // The same packages need to be kept out of Vite's client-side dep
25
- // pre-bundling step. TanStack Start strips server-only imports from
26
- // server-fn modules during its own compile pass, but Vite's
27
- // `optimizeDeps` runs BEFORE that and tries to pre-bundle anything
28
- // a client-reachable file imports including transitive imports
29
- // reached via `@byline/admin/admin-*` subpath barrels. Excluding the
30
- // package roots here keeps Vite from touching them on the client side.
49
+ // Mirror the externals into Vite's client-side dep pre-bundling step.
50
+ // TanStack Start strips server-only imports from server-fn modules
51
+ // during its own compile pass, but `optimizeDeps` runs BEFORE that
52
+ // and tries to pre-bundle anything reachable from a client file —
53
+ // including transitive imports through `@byline/admin/admin-*` barrels.
54
+ //
55
+ // `@base-ui/react` and `@base-ui/utils` need eager pre-bundling for
56
+ // two reasons working in tension:
57
+ //
58
+ // 1. `@base-ui/utils/store/useStore` imports `use-sync-external-store/
59
+ // shim`, which is pure CJS (`module.exports = require(...)`).
60
+ // Vite's CJS-to-ESM conversion can fail to synthesize the named
61
+ // `useSyncExternalStore` export when the module is discovered
62
+ // mid-graph — the browser then throws SyntaxError on first import.
63
+ // Pre-bundling as an upfront optimization unit fixes synthesis.
64
+ //
65
+ // 2. @byline/ui imports many @base-ui/react subpaths (`/accordion`,
66
+ // `/dialog`, etc.) and each LATE discovery triggers a re-optimize
67
+ // that shifts cache hashes — leaving in-flight imports referencing
68
+ // old hashes. Eager `include` brings them into the first
69
+ // optimization pass and reduces re-optimization churn.
70
+ //
71
+ // `entries` is required so Vite's crawler walks the byline scaffold
72
+ // (its file imports start outside `index.html`); without it, the
73
+ // optimizer doesn't see anything reached only via TanStack file-route
74
+ // codegen and Lazy components.
31
75
  optimizeDeps: {
32
- exclude: ['sharp', '@byline/storage-local', '@byline/admin', '@byline/db-postgres'],
76
+ exclude: ssrExternal,
77
+ include: [
78
+ '@base-ui/react',
79
+ '@base-ui/utils',
80
+ 'use-sync-external-store/shim',
81
+ 'use-sync-external-store/shim/with-selector',
82
+ ],
33
83
  },
34
84
  plugins: [
35
- tanstackStart(),
36
- // NOTE: react() must come AFTER tanstackStart()
37
- react(),
85
+ devtools(),
86
+ nitro({
87
+ // @byline/ui ships compiled JS that does `import './foo_module.css'`.
88
+ // @byline/host-tanstack-start re-exports route factories from
89
+ // @byline/ui at runtime in the SSR graph. Nitro externalizes
90
+ // node_modules by default, which sends those imports to Node's
91
+ // ESM loader — which can't handle .css. Inlining both packages
92
+ // through Nitro's pipeline lets Vite's CSS plugin process the
93
+ // side-effect imports.
94
+ noExternals: ['@byline/ui', '@byline/host-tanstack-start'],
95
+ // When Nitro inlines `@byline/host-tanstack-start` it pulls in
96
+ // `@byline/core`, which depends on pino. Pino's CJS entry can't be
97
+ // bundled, so we externalize it (and other native deps) here at
98
+ // the Nitro level — Vite's `ssr.external` only applies to Vite's
99
+ // own builder, not Nitro's.
100
+ rollupConfig: {
101
+ external: ['pino', 'sharp', /^@byline\/(admin|db-postgres|storage-local)/],
102
+ },
103
+ }),
38
104
  tailwindcss(),
105
+ tanstackStart(),
106
+ viteReact(),
39
107
  ],
40
108
  clearScreen: false,
41
109
  })
110
+
111
+ export default config
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminAccountRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminAccountRoute('/(byline)/admin/account/')
11
+ export const Route = createAdminAccountRoute('/_byline/admin/account/')
@@ -10,7 +10,7 @@ import { createCollectionApiRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
11
  import { contentLocales, i18n } from '~/i18n'
12
12
 
13
- export const Route = createCollectionApiRoute('/(byline)/admin/collections/$collection/$id/api', {
13
+ export const Route = createCollectionApiRoute('/_byline/admin/collections/$collection/$id/api', {
14
14
  contentLocales,
15
15
  defaultContentLocale: i18n.content.defaultLocale,
16
16
  })
@@ -11,7 +11,7 @@ import { createCollectionHistoryRoute } from '@byline/host-tanstack-start/routes
11
11
  import { contentLocales, i18n } from '~/i18n'
12
12
 
13
13
  export const Route = createCollectionHistoryRoute(
14
- '/(byline)/admin/collections/$collection/$id/history',
14
+ '/_byline/admin/collections/$collection/$id/history',
15
15
  {
16
16
  contentLocales,
17
17
  defaultContentLocale: i18n.content.defaultLocale,
@@ -10,7 +10,7 @@ import { createCollectionEditRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
11
  import { contentLocales, i18n } from '~/i18n'
12
12
 
13
- export const Route = createCollectionEditRoute('/(byline)/admin/collections/$collection/$id/', {
13
+ export const Route = createCollectionEditRoute('/_byline/admin/collections/$collection/$id/', {
14
14
  contentLocales,
15
15
  defaultContentLocale: i18n.content.defaultLocale,
16
16
  })
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createCollectionCreateRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createCollectionCreateRoute('/(byline)/admin/collections/$collection/create')
11
+ export const Route = createCollectionCreateRoute('/_byline/admin/collections/$collection/create')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createCollectionListRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createCollectionListRoute('/(byline)/admin/collections/$collection/')
11
+ export const Route = createCollectionListRoute('/_byline/admin/collections/$collection/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminDashboardRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminDashboardRoute('/(byline)/admin/')
11
+ export const Route = createAdminDashboardRoute('/_byline/admin/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminPermissionsRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminPermissionsRoute('/(byline)/admin/permissions/')
11
+ export const Route = createAdminPermissionsRoute('/_byline/admin/permissions/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminRoleEditRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminRoleEditRoute('/(byline)/admin/roles/$id/')
11
+ export const Route = createAdminRoleEditRoute('/_byline/admin/roles/$id/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminRolesListRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminRolesListRoute('/(byline)/admin/roles/')
11
+ export const Route = createAdminRolesListRoute('/_byline/admin/roles/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminLayoutRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminLayoutRoute('/(byline)/admin')
11
+ export const Route = createAdminLayoutRoute('/_byline/admin')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminUserEditRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminUserEditRoute('/(byline)/admin/users/$id/')
11
+ export const Route = createAdminUserEditRoute('/_byline/admin/users/$id/')
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createAdminUsersListRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createAdminUsersListRoute('/(byline)/admin/users/')
11
+ export const Route = createAdminUsersListRoute('/_byline/admin/users/')
@@ -0,0 +1,37 @@
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
+ * Pathless layout route for everything Byline-rendered (the admin shell
11
+ * and the sign-in page). The `_byline` prefix doesn't contribute to URL
12
+ * paths — `/_byline/admin/...` resolves to `/admin/...` and
13
+ * `/_byline/sign-in` resolves to `/sign-in`.
14
+ *
15
+ * The single job of this layout is to import the Byline UI kit
16
+ * stylesheets so they're scoped to (and only loaded on) Byline-rendered
17
+ * pages. Front-end routes outside this layout don't get the byline
18
+ * styles unless they import them explicitly.
19
+ *
20
+ * If you also want to use the Byline UI components on your public site,
21
+ * import the same stylesheets from your front-end's pathless layout
22
+ * (e.g. `_front-end/route.tsx` — see `_public/route.tsx` here for the
23
+ * existing pattern).
24
+ */
25
+
26
+ import { createFileRoute, Outlet } from '@tanstack/react-router'
27
+
28
+ import '@byline/ui/reset.css'
29
+ import '@byline/ui/styles.css'
30
+
31
+ export const Route = createFileRoute('/_byline')({
32
+ component: BylineLayout,
33
+ })
34
+
35
+ function BylineLayout() {
36
+ return <Outlet />
37
+ }
@@ -8,4 +8,4 @@
8
8
 
9
9
  import { createSignInRoute } from '@byline/host-tanstack-start/routes'
10
10
 
11
- export const Route = createSignInRoute('/(byline)/sign-in')
11
+ export const Route = createSignInRoute('/_byline/sign-in')
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' | 'wire' | 'routes' | 'ui' | 'verify';
2
+ export type PhaseId = 'preflight' | 'host' | 'db' | 'db-init' | 'env' | 'deps' | 'scaffold' | 'seed-admin' | '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';
@@ -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,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,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
@@ -2,7 +2,7 @@
2
2
  "name": "@byline/cli",
3
3
  "private": false,
4
4
  "license": "MPL-2.0",
5
- "version": "0.1.3",
5
+ "version": "0.1.4",
6
6
  "engines": {
7
7
  "node": ">=20.9.0"
8
8
  },