@beignet/cli 0.0.34 → 0.0.36
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/CHANGELOG.md +29 -0
- package/README.md +27 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/inspect.js +49 -13
- package/dist/inspect.js.map +1 -1
- package/dist/lint.js +10 -3
- package/dist/lint.js.map +1 -1
- package/dist/make/inbox.d.ts.map +1 -1
- package/dist/make/inbox.js +2 -3
- package/dist/make/inbox.js.map +1 -1
- package/dist/make/payments.d.ts.map +1 -1
- package/dist/make/payments.js +3 -5
- package/dist/make/payments.js.map +1 -1
- package/dist/make/tenancy.d.ts.map +1 -1
- package/dist/make/tenancy.js +2 -4
- package/dist/make/tenancy.js.map +1 -1
- package/dist/make.js +4 -5
- package/dist/make.js.map +1 -1
- package/dist/schedule.d.ts.map +1 -1
- package/dist/schedule.js +1 -1
- package/dist/schedule.js.map +1 -1
- package/dist/templates/agents.d.ts.map +1 -1
- package/dist/templates/agents.js +2 -0
- package/dist/templates/agents.js.map +1 -1
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +1 -0
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/server.d.ts +1 -0
- package/dist/templates/server.d.ts.map +1 -1
- package/dist/templates/server.js +8 -2
- package/dist/templates/server.js.map +1 -1
- package/dist/templates/testing.d.ts.map +1 -1
- package/dist/templates/testing.js +55 -26
- package/dist/templates/testing.js.map +1 -1
- package/dist/templates/todos.d.ts.map +1 -1
- package/dist/templates/todos.js +2 -3
- package/dist/templates/todos.js.map +1 -1
- package/package.json +3 -2
- package/skills/app-structure/SKILL.md +12 -1
- package/src/config.ts +2 -0
- package/src/inspect.ts +82 -15
- package/src/lint.ts +15 -3
- package/src/make/inbox.ts +2 -3
- package/src/make/payments.ts +2 -6
- package/src/make/tenancy.ts +2 -8
- package/src/make.ts +4 -5
- package/src/schedule.ts +4 -3
- package/src/templates/agents.ts +2 -0
- package/src/templates/index.ts +1 -0
- package/src/templates/server.ts +8 -2
- package/src/templates/testing.ts +55 -26
- package/src/templates/todos.ts +2 -3
- package/src/test-helpers/generated-app.ts +1 -1
package/dist/schedule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,aAAa,CAC9B,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAC7C,CAAC;IACF,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAC3B,cAAc,CAAC,SAAS,EACxB,OAAO,CAAC,IAAI,EACZ,UAAU,CACX,CAAC;IACF,MAAM,WAAW,GAAG;QAClB,QAAQ;QACR,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,GAAG,EAAE,UAAU;KAChB,CAAC;IACF,MAAM,GAAG,GAAG,cAAc,CAAC,qBAAqB;QAC9C,CAAC,CAAC,MAAM,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,0EAA0E;QAC1E,sDAAsD;QACtD,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CACjD,yBAAyB,CAC1B,CAAC;QACF,MAAM,MAAM,GAAG,0BAA0B,CAAU;YACjD,GAAG;YACH,eAAe,EAAE,eAAe,CAAC,KAAK;YACtC,sBAAsB,EAAE;gBACtB,SAAS,EAAE,eAAe,CAAC,SAAS;gBACpC,OAAO,EAAE,eAAe,CAAC,OAAO;aACjC;YACD,OAAO,CAAC,EAAE,KAAK,EAAE;gBACf,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB,EAAE;oBACtD,KAAK;oBACL,YAAY,EAAE,QAAQ,CAAC,IAAI;iBAC5B,CAAC,CAAC;YACL,CAAC;YACD,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;gBACzB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CACnC,gCAAgC,EAChC;oBACE,KAAK;oBACL,IAAI;oBACJ,YAAY,EAAE,QAAQ,CAAC,IAAI;iBAC5B,CACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEvC,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG;YACH,UAAU;YACV,GAAG,EAAE;gBACH,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,WAAW,EAAE,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC;gBACvD,WAAW,EAAE,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC;gBACvD,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,aAAa;aAC3C;YACD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;SACtD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,cAAc,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAAW,EACX,UAAkB;IAElB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,iFAAiF,CACvI,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,EAAE;QACpC,aAAa,EAAE,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK;KACvE,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAmB,CAAC;AAC7D,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAA8B;IAE9B,MAAM,UAAU,GAAgC;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;QACvC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC7D,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CAAC,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;QAAE,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACxE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QACnC,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAE/C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAoD;IAEpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,SAAyC,EACzC,IAAY,EACZ,UAAkB;IAElB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qBAAqB,UAAU,iCAAiC,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAC7B,CAAC,SAAS,EAA+B,EAAE,CACzC,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,KAAK,IAAI;QACjB,SAA4B,CAAC,IAAI,KAAK,UAAU;QAChD,SAA4B,CAAC,IAAI,KAAK,IAAI;QAC3C,OAAQ,SAA4B,CAAC,MAAM,KAAK,UAAU,CAC7D,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,SAAS;aACxB,MAAM,CACL,CAAC,SAAS,EAA+B,EAAE,CACzC,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,KAAK,IAAI;YACjB,SAA4B,CAAC,IAAI,KAAK,UAAU;YACjD,OAAQ,SAA4B,CAAC,IAAI,KAAK,QAAQ,CACzD;aACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;aAClC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,qBAAqB,IAAI,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC7E,CAAC,CAAC,qBAAqB,IAAI,sCAAsC,UAAU,GAAG,CACjF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAiD;IAEjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA6IrD;AAeD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CASrD"}
|
package/dist/templates/agents.js
CHANGED
|
@@ -42,6 +42,8 @@ is a silent failure — the file exists but never runs:
|
|
|
42
42
|
|
|
43
43
|
- Feature route groups in \`features/<feature>/routes.ts\` must be composed in
|
|
44
44
|
\`server/routes.ts\` via \`defineRoutes([...])\`.
|
|
45
|
+
- Feature route files import the app-bound \`defineRouteGroup\` from
|
|
46
|
+
\`lib/routes.ts\`; that builder owns the shared \`AppContext\` binding.
|
|
45
47
|
- Schedules must be added to the \`schedules\` array in \`server/schedules.ts\`.
|
|
46
48
|
- Tasks must be added to \`defineTasks([...])\` in \`server/tasks.ts\`.
|
|
47
49
|
- Outbox events and jobs must be registered in \`defineOutboxRegistry({...})\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,MAAM,GACV,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,aAAa,CAAC;IACzC,MAAM,SAAS,GACb,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,gBAAgB,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,yQAAyQ;YACzQ,6TAA6T;YAC7T,+SAA+S,CAAC;IACpT,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG;QAC5B,CAAC,CAAC,sKAAsK;QACxK,CAAC,CAAC,uOAAuO,CAAC;IAE5O,OAAO,KAAK,GAAG,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,IAAI,GACR,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,WAAW,CAAC;IACvC,MAAM,MAAM,GACV,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,aAAa,CAAC;IACzC,MAAM,SAAS,GACb,GAAG,CAAC,cAAc,KAAK,KAAK;QAC1B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,gBAAgB,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,yQAAyQ;YACzQ,6TAA6T;YAC7T,+SAA+S,CAAC;IACpT,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG;QAC5B,CAAC,CAAC,sKAAsK;QACxK,CAAC,CAAC,uOAAuO,CAAC;IAE5O,OAAO,KAAK,GAAG,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;mCAwBa,GAAG,oBAAoB,GAAG;IACzD,GAAG,uBAAuB,GAAG,uBAAuB,GAAG;IACvD,GAAG,uBAAuB,GAAG;;IAE7B,GAAG,2CAA2C,GAAG;;;;;IAKjD,GAAG;kDAC2C,GAAG;uBAC9B,GAAG;;;8BAGI,GAAG,yBAAyB,GAAG;;;;;;;;eAQ9C,mBAAmB;;;;;;;;;;;;;;;;EAgBhC,GAAG;;;YAGO,GAAG;IACX,GAAG;;oDAE6C,MAAM;yCACjB,IAAI,SAAS,GAAG;IACrD,GAAG,yBAAyB,IAAI,SAAS,SAAS;;;;;;;;;EASpD,MAAM;EACN,MAAM;;;kEAG0D,cAAc;QACxE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA2BqB,GAAG;CACrC,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,GAAoB;IACxC,QAAQ,GAAG,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,6BAA6B,CAAC;QACvC,KAAK,MAAM;YACT,OAAO,kCAAkC,CAAC;QAC5C,KAAK,MAAM;YACT,OAAO,kCAAkC,CAAC;QAC5C;YACE,OAAO,8BAA8B,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAqB;IAC3C,OAAO,IAAI,CAAC;QACV,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE,CAAC,KAAK,CAAC;aACd;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqBjE,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqBjE,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,EAAE,CA0HrE"}
|
package/dist/templates/index.js
CHANGED
|
@@ -112,6 +112,7 @@ export function getTemplateFiles(ctx) {
|
|
|
112
112
|
{ path: "lib/tenant.ts", content: serverFiles.tenantHelper },
|
|
113
113
|
...testSupportTemplateFiles,
|
|
114
114
|
{ path: "lib/use-case.ts", content: serverFiles.useCaseBuilder },
|
|
115
|
+
{ path: "lib/routes.ts", content: serverFiles.routesBuilder },
|
|
115
116
|
{ path: "server/index.ts", content: server(ctx) },
|
|
116
117
|
{ path: "server/context.ts", content: serverFiles.serverContext },
|
|
117
118
|
{ path: "server/routes.ts", content: serverFiles.serverRoutes },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA8C5D;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA0ClD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA6ChE;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAsDhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAmFvD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA4DnD;AAED,QAAA,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA8C5D;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA0ClD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA6ChE;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAsDhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAmFvD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA4DnD;AAED,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;CAoXV,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,CAAC"}
|
package/dist/templates/server.js
CHANGED
|
@@ -5,7 +5,7 @@ export function serverProviders(ctx) {
|
|
|
5
5
|
const imports = [
|
|
6
6
|
'import "@beignet/core/server-only";',
|
|
7
7
|
'import { createDevtoolsProvider } from "@beignet/devtools";',
|
|
8
|
-
'import {
|
|
8
|
+
'import { createBetterAuthProvider } from "@beignet/provider-auth-better-auth";',
|
|
9
9
|
`import { ${db.providerFactory} } from "@beignet/provider-db-drizzle/${db.subpath}";`,
|
|
10
10
|
hasIntegration(ctx, "inngest")
|
|
11
11
|
? 'import { createInngestJobsProvider } from "@beignet/provider-jobs-inngest";'
|
|
@@ -24,7 +24,7 @@ export function serverProviders(ctx) {
|
|
|
24
24
|
].filter((line) => Boolean(line));
|
|
25
25
|
const entries = [
|
|
26
26
|
"\tcreateDevtoolsProvider(),",
|
|
27
|
-
"\
|
|
27
|
+
"\tcreateBetterAuthProvider<AuthUser, AuthSessionMetadata>(auth),",
|
|
28
28
|
"\tcreatePinoLoggerProvider(),",
|
|
29
29
|
`\t${db.providerInstance},`,
|
|
30
30
|
"\tstarterDatabaseProvider,",
|
|
@@ -376,6 +376,12 @@ import { createUseCase } from "@beignet/core/application";
|
|
|
376
376
|
import type { AppContext } from "@/app-context";
|
|
377
377
|
|
|
378
378
|
export const useCase = createUseCase<AppContext>();
|
|
379
|
+
`,
|
|
380
|
+
routesBuilder: `import "@beignet/core/server-only";
|
|
381
|
+
import { createRoutes } from "@beignet/core/server";
|
|
382
|
+
import type { AppContext } from "@/app-context";
|
|
383
|
+
|
|
384
|
+
export const { defineRoute, defineRouteGroup } = createRoutes<AppContext>();
|
|
379
385
|
`,
|
|
380
386
|
authHelpers: `import type { AppContext } from "@/app-context";
|
|
381
387
|
import type { AuthSession, AuthUser } from "@/ports/auth";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,eAAe,CAAC,GAAoB;IAClD,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG;QACd,qCAAqC;QACrC,6DAA6D;QAC7D,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/templates/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,YA+YpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/templates/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,YA+YpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAqKpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,EAGlD,CAAC"}
|
|
@@ -403,6 +403,7 @@ export const testRunnerTemplateFile = {
|
|
|
403
403
|
content: `import { spawnSync } from "node:child_process";
|
|
404
404
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
405
405
|
import path from "node:path";
|
|
406
|
+
import { pathToFileURL } from "node:url";
|
|
406
407
|
|
|
407
408
|
const defaultTestRoots = [
|
|
408
409
|
"app",
|
|
@@ -425,11 +426,18 @@ const ignoredDirectories = new Set([
|
|
|
425
426
|
]);
|
|
426
427
|
const testFilePattern = /\\.(test|spec)\\.[cm]?[tj]sx?$/;
|
|
427
428
|
|
|
429
|
+
const configFileNames = [
|
|
430
|
+
"beignet.config.ts",
|
|
431
|
+
"beignet.config.json",
|
|
432
|
+
"beignet.config.mjs",
|
|
433
|
+
"beignet.config.js",
|
|
434
|
+
];
|
|
435
|
+
|
|
428
436
|
const explicitArgs = process.argv.slice(2);
|
|
429
437
|
const testArgs =
|
|
430
438
|
explicitArgs.length > 0
|
|
431
439
|
? resolveTestArgs(process.cwd(), explicitArgs)
|
|
432
|
-
: discoverTestFiles(process.cwd());
|
|
440
|
+
: await discoverTestFiles(process.cwd());
|
|
433
441
|
|
|
434
442
|
if (testArgs.length === 0) {
|
|
435
443
|
console.log("No test files found.");
|
|
@@ -453,9 +461,9 @@ if (result.error) {
|
|
|
453
461
|
|
|
454
462
|
process.exit(result.status ?? 1);
|
|
455
463
|
|
|
456
|
-
function discoverTestFiles(cwd: string): string[] {
|
|
464
|
+
async function discoverTestFiles(cwd: string): Promise<string[]> {
|
|
457
465
|
const files: string[] = [];
|
|
458
|
-
for (const root of testRoots(cwd)) {
|
|
466
|
+
for (const root of await testRoots(cwd)) {
|
|
459
467
|
const rootPath = path.join(cwd, root);
|
|
460
468
|
if (existsSync(rootPath)) {
|
|
461
469
|
walk(rootPath, cwd, files);
|
|
@@ -491,32 +499,53 @@ function resolveTestArgs(cwd: string, args: string[]): string[] {
|
|
|
491
499
|
return Array.from(new Set(resolved));
|
|
492
500
|
}
|
|
493
501
|
|
|
494
|
-
function testRoots(cwd: string): string[] {
|
|
495
|
-
return Array.from(
|
|
502
|
+
async function testRoots(cwd: string): Promise<string[]> {
|
|
503
|
+
return Array.from(
|
|
504
|
+
new Set([...defaultTestRoots, ...(await configuredRoots(cwd))]),
|
|
505
|
+
);
|
|
496
506
|
}
|
|
497
507
|
|
|
498
|
-
function configuredRoots(cwd: string): string[] {
|
|
499
|
-
const
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
paths.routes ? path.dirname(paths.routes) : undefined,
|
|
510
|
-
paths.server ? path.dirname(paths.server) : undefined,
|
|
511
|
-
paths.infrastructurePorts
|
|
512
|
-
? path.dirname(paths.infrastructurePorts)
|
|
513
|
-
: undefined,
|
|
514
|
-
paths.ports ? path.dirname(paths.ports) : undefined,
|
|
515
|
-
paths.useCaseBuilder ? path.dirname(paths.useCaseBuilder) : undefined,
|
|
516
|
-
].filter((root): root is string => Boolean(root) && root !== ".");
|
|
517
|
-
} catch {
|
|
518
|
-
return [];
|
|
508
|
+
async function configuredRoots(cwd: string): Promise<string[]> {
|
|
509
|
+
const configFiles = configFileNames.filter((file) =>
|
|
510
|
+
existsSync(path.join(cwd, file)),
|
|
511
|
+
);
|
|
512
|
+
if (configFiles.length === 0) return [];
|
|
513
|
+
if (configFiles.length > 1) {
|
|
514
|
+
throw new Error(
|
|
515
|
+
"Multiple Beignet config files found: " +
|
|
516
|
+
configFiles.join(", ") +
|
|
517
|
+
". Keep only one config file.",
|
|
518
|
+
);
|
|
519
519
|
}
|
|
520
|
+
|
|
521
|
+
const configFile = configFiles[0];
|
|
522
|
+
const configPath = path.join(cwd, configFile);
|
|
523
|
+
const config = configFile.endsWith(".json")
|
|
524
|
+
? JSON.parse(readFileSync(configPath, "utf8"))
|
|
525
|
+
: ((await import(pathToFileURL(configPath).href)) as { default?: unknown })
|
|
526
|
+
.default;
|
|
527
|
+
if (!isObjectRecord(config)) {
|
|
528
|
+
throw new Error(configFile + " must export a Beignet config object.");
|
|
529
|
+
}
|
|
530
|
+
const paths = isObjectRecord(config.paths) ? config.paths : {};
|
|
531
|
+
return [
|
|
532
|
+
paths.tests,
|
|
533
|
+
paths.features,
|
|
534
|
+
parentPath(paths.routes),
|
|
535
|
+
parentPath(paths.server),
|
|
536
|
+
parentPath(paths.infrastructurePorts),
|
|
537
|
+
parentPath(paths.ports),
|
|
538
|
+
parentPath(paths.useCaseBuilder),
|
|
539
|
+
parentPath(paths.routesBuilder),
|
|
540
|
+
].filter((root): root is string => Boolean(root) && root !== ".");
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
function parentPath(value: unknown): string | undefined {
|
|
544
|
+
return typeof value === "string" ? path.dirname(value) : undefined;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
function isObjectRecord(value: unknown): value is Record<string, unknown> {
|
|
548
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
520
549
|
}
|
|
521
550
|
|
|
522
551
|
function walk(directory: string, cwd: string, files: string[]): void {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/templates/testing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4YV;CACA,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,4BAA4B;IAClC,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/templates/testing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4YV;CACA,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,4BAA4B;IAClC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkKV;CACA,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,sBAAsB;IACtB,sBAAsB;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/templates/todos.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/templates/todos.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;CA2lBV,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/templates/todos.js
CHANGED
|
@@ -175,8 +175,7 @@ export const todoPolicy = definePolicy({
|
|
|
175
175
|
});
|
|
176
176
|
`,
|
|
177
177
|
routes: `import "@beignet/core/server-only";
|
|
178
|
-
import { defineRouteGroup } from "
|
|
179
|
-
import type { AppContext } from "@/app-context";
|
|
178
|
+
import { defineRouteGroup } from "@/lib/routes";
|
|
180
179
|
import {
|
|
181
180
|
createTodo,
|
|
182
181
|
deleteTodo,
|
|
@@ -190,7 +189,7 @@ import {
|
|
|
190
189
|
updateTodoUseCase,
|
|
191
190
|
} from "@/features/todos/use-cases";
|
|
192
191
|
|
|
193
|
-
export const todoRoutes = defineRouteGroup
|
|
192
|
+
export const todoRoutes = defineRouteGroup({
|
|
194
193
|
name: "todos",
|
|
195
194
|
routes: [
|
|
196
195
|
{ contract: listTodos, useCase: listTodosUseCase },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todos.js","sourceRoot":"","sources":["../../src/templates/todos.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDV;IACC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DZ;IACC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR;IACC,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCT;IACC,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"todos.js","sourceRoot":"","sources":["../../src/templates/todos.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDV;IACC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DZ;IACC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR;IACC,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCT;IACC,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBT;IACC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;CAmBnB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;CAiBpB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBpB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBpB;IACC,aAAa,EAAE;;;;;;;;;;;;;;;;CAgBhB;IACC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDd;IACC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHd;IACC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Hb;CACA,CAAC;AAEF,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI for creating and maintaining Beignet apps.",
|
|
6
6
|
"main": "./dist/lib.js",
|
|
@@ -66,10 +66,11 @@
|
|
|
66
66
|
"@types/bun": "^1.3.13",
|
|
67
67
|
"@types/node": "^20.10.0",
|
|
68
68
|
"next-themes": "^0.4.6",
|
|
69
|
+
"tsx": "^4.22.4",
|
|
69
70
|
"typescript": "^5.3.0"
|
|
70
71
|
},
|
|
71
72
|
"dependencies": {
|
|
72
|
-
"@beignet/core": "^0.0.
|
|
73
|
+
"@beignet/core": "^0.0.36",
|
|
73
74
|
"@clack/prompts": "^1.5.1",
|
|
74
75
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
75
76
|
"@stricli/core": "^1.2.7",
|
|
@@ -15,6 +15,8 @@ Generated apps include:
|
|
|
15
15
|
- `AGENTS.md` and `CLAUDE.md` for local agent guidance
|
|
16
16
|
- `.mcp.json` for `beignet mcp`
|
|
17
17
|
- `beignet.config.*` only when paths are moved
|
|
18
|
+
- `lib/routes.ts` with route declarations bound once through
|
|
19
|
+
`createRoutes<AppContext>()`
|
|
18
20
|
- canonical folders for app routes, client setup, features, infra, ports,
|
|
19
21
|
server composition, and tests
|
|
20
22
|
|
|
@@ -73,6 +75,10 @@ aligned with those central registries. The boot check is pure and
|
|
|
73
75
|
serverless-safe: it compares declared listeners, schedules, tasks, and outbox
|
|
74
76
|
artifacts against runtime registries before providers start.
|
|
75
77
|
|
|
78
|
+
Feature route groups should import the app-bound `defineRouteGroup` from
|
|
79
|
+
`lib/routes.ts`. `doctor` checks both that feature routes use that builder and
|
|
80
|
+
that the builder itself calls `createRoutes<AppContext>()`.
|
|
81
|
+
|
|
76
82
|
Run `beignet doctor --strict` after hand edits. Use `beignet doctor --fix` for
|
|
77
83
|
low-risk route-group, schedule, task, outbox, and listener registry repair.
|
|
78
84
|
|
|
@@ -90,13 +96,16 @@ export default defineConfig({
|
|
|
90
96
|
features: "src/features",
|
|
91
97
|
contracts: "src/features",
|
|
92
98
|
routes: "src/app/api",
|
|
99
|
+
routesBuilder: "src/lib/routes.ts",
|
|
93
100
|
server: "src/server/index.ts",
|
|
94
101
|
},
|
|
95
102
|
});
|
|
96
103
|
```
|
|
97
104
|
|
|
98
105
|
When `appContext` moves under `src/`, root client setup follows that source
|
|
99
|
-
root at `src/client/index.ts`.
|
|
106
|
+
root at `src/client/index.ts`. Other registries and app-bound builders are not
|
|
107
|
+
relocated implicitly; override each path the app has moved, such as
|
|
108
|
+
`listeners`, `schedules`, `tasks`, `outbox`, and their matching builder paths.
|
|
100
109
|
|
|
101
110
|
## Lint And Doctor
|
|
102
111
|
|
|
@@ -111,6 +120,8 @@ root at `src/client/index.ts`.
|
|
|
111
120
|
`beignet doctor --strict` reports structure and registration drift:
|
|
112
121
|
|
|
113
122
|
- missing route group registration
|
|
123
|
+
- route files that bypass the configured app-bound route builder
|
|
124
|
+
- route builders that are not bound with `createRoutes<AppContext>()`
|
|
114
125
|
- stale OpenAPI contract arrays
|
|
115
126
|
- provider packages installed but not registered
|
|
116
127
|
- provider env drift
|
package/src/config.ts
CHANGED
|
@@ -28,6 +28,7 @@ export type BeignetPaths = {
|
|
|
28
28
|
policies: string;
|
|
29
29
|
useCases: string;
|
|
30
30
|
useCaseBuilder: string;
|
|
31
|
+
routesBuilder: string;
|
|
31
32
|
listenersBuilder: string;
|
|
32
33
|
jobsBuilder: string;
|
|
33
34
|
schedulesBuilder: string;
|
|
@@ -98,6 +99,7 @@ export const defaultBeignetConfig: ResolvedBeignetConfig = {
|
|
|
98
99
|
policies: "features",
|
|
99
100
|
useCases: "features",
|
|
100
101
|
useCaseBuilder: "lib/use-case.ts",
|
|
102
|
+
routesBuilder: "lib/routes.ts",
|
|
101
103
|
listenersBuilder: "lib/listeners.ts",
|
|
102
104
|
jobsBuilder: "lib/jobs.ts",
|
|
103
105
|
schedulesBuilder: "lib/schedules.ts",
|
package/src/inspect.ts
CHANGED
|
@@ -1519,6 +1519,11 @@ async function inspectCanonicalConformance(
|
|
|
1519
1519
|
reason:
|
|
1520
1520
|
"infra/app-ports.ts should wire concrete app ports for the selected runtime.",
|
|
1521
1521
|
},
|
|
1522
|
+
{
|
|
1523
|
+
file: config.paths.routesBuilder,
|
|
1524
|
+
reason:
|
|
1525
|
+
"lib/routes.ts should bind route declarations to the shared AppContext type.",
|
|
1526
|
+
},
|
|
1522
1527
|
];
|
|
1523
1528
|
|
|
1524
1529
|
if (hasClientSurface) {
|
|
@@ -1657,6 +1662,30 @@ async function inspectCanonicalConformance(
|
|
|
1657
1662
|
}
|
|
1658
1663
|
}
|
|
1659
1664
|
|
|
1665
|
+
if (files.includes(config.paths.routesBuilder)) {
|
|
1666
|
+
const routesBuilderSource = await readCachedSource(
|
|
1667
|
+
targetDir,
|
|
1668
|
+
config.paths.routesBuilder,
|
|
1669
|
+
sourceCache,
|
|
1670
|
+
);
|
|
1671
|
+
if (
|
|
1672
|
+
!importsAppContext(
|
|
1673
|
+
routesBuilderSource,
|
|
1674
|
+
config.paths.routesBuilder,
|
|
1675
|
+
config,
|
|
1676
|
+
files,
|
|
1677
|
+
) ||
|
|
1678
|
+
!/\bcreateRoutes\s*<\s*AppContext\s*>\s*\(\s*\)/.test(routesBuilderSource)
|
|
1679
|
+
) {
|
|
1680
|
+
diagnostics.push({
|
|
1681
|
+
severity: "warning",
|
|
1682
|
+
code: "BEIGNET_ROUTE_BUILDER_CONTEXT",
|
|
1683
|
+
file: config.paths.routesBuilder,
|
|
1684
|
+
message: `${config.paths.routesBuilder} should import AppContext from ${config.paths.appContext} and export route builders from createRoutes<AppContext>().`,
|
|
1685
|
+
});
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1660
1689
|
const featureRoutesPath = `${featuresPath}/`;
|
|
1661
1690
|
for (const file of files) {
|
|
1662
1691
|
if (!file.startsWith(featureRoutesPath) || !file.endsWith("/routes.ts")) {
|
|
@@ -1666,21 +1695,20 @@ async function inspectCanonicalConformance(
|
|
|
1666
1695
|
const source = await readCachedSource(targetDir, file, sourceCache);
|
|
1667
1696
|
if (!source.includes("defineRouteGroup")) continue;
|
|
1668
1697
|
|
|
1669
|
-
if (
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
code: "BEIGNET_FEATURE_ROUTE_APP_CONTEXT",
|
|
1698
|
+
if (
|
|
1699
|
+
!importsNamedFromFile(
|
|
1700
|
+
source,
|
|
1673
1701
|
file,
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1702
|
+
config.paths.routesBuilder,
|
|
1703
|
+
"defineRouteGroup",
|
|
1704
|
+
files,
|
|
1705
|
+
)
|
|
1706
|
+
) {
|
|
1679
1707
|
diagnostics.push({
|
|
1680
1708
|
severity: "warning",
|
|
1681
|
-
code: "
|
|
1709
|
+
code: "BEIGNET_FEATURE_ROUTE_BUILDER",
|
|
1682
1710
|
file,
|
|
1683
|
-
message: `${file} should
|
|
1711
|
+
message: `${file} should import { defineRouteGroup } from ${config.paths.routesBuilder} so route groups use the app-bound context type.`,
|
|
1684
1712
|
});
|
|
1685
1713
|
}
|
|
1686
1714
|
}
|
|
@@ -1743,6 +1771,28 @@ function importsAppContext(
|
|
|
1743
1771
|
return false;
|
|
1744
1772
|
}
|
|
1745
1773
|
|
|
1774
|
+
function importsNamedFromFile(
|
|
1775
|
+
source: string,
|
|
1776
|
+
importerFile: string,
|
|
1777
|
+
expectedFile: string,
|
|
1778
|
+
importedName: string,
|
|
1779
|
+
files: string[],
|
|
1780
|
+
): boolean {
|
|
1781
|
+
const importRegex = /import\s+\{([^}]+)\}\s+from\s+["']([^"']+)["']/g;
|
|
1782
|
+
|
|
1783
|
+
for (const match of source.matchAll(importRegex)) {
|
|
1784
|
+
const sourceFile = sourceFileFromImport(match[2], importerFile, files);
|
|
1785
|
+
if (sourceFile !== expectedFile) continue;
|
|
1786
|
+
|
|
1787
|
+
for (const member of match[1].split(",")) {
|
|
1788
|
+
const parsed = parseImportMember(member);
|
|
1789
|
+
if (parsed?.importedName === importedName) return true;
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
return false;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1746
1796
|
async function inspectAuthzAuditDrift(
|
|
1747
1797
|
targetDir: string,
|
|
1748
1798
|
files: string[],
|
|
@@ -3941,10 +3991,27 @@ async function listenedEventNames(
|
|
|
3941
3991
|
if (!listenerPattern.test(file) || isWorkflowTestFile(file)) continue;
|
|
3942
3992
|
|
|
3943
3993
|
const source = await readFile(path.join(targetDir, file), "utf8");
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3994
|
+
const callPattern = /\bdefineListener\s*\(/g;
|
|
3995
|
+
for (const match of source.matchAll(callPattern)) {
|
|
3996
|
+
const openIndex = source.indexOf("(", match.index ?? 0);
|
|
3997
|
+
if (openIndex === -1) continue;
|
|
3998
|
+
|
|
3999
|
+
const closeIndex = matchingDelimiterIndex(source, openIndex, "(", ")");
|
|
4000
|
+
if (closeIndex === -1) continue;
|
|
4001
|
+
|
|
4002
|
+
const args = splitTopLevelArguments(
|
|
4003
|
+
source.slice(openIndex + 1, closeIndex),
|
|
4004
|
+
);
|
|
4005
|
+
const options = args[1]?.trim();
|
|
4006
|
+
if (!options?.startsWith("{") || !options.endsWith("}")) continue;
|
|
4007
|
+
|
|
4008
|
+
const eventProperty = splitTopLevelArguments(options.slice(1, -1)).find(
|
|
4009
|
+
(property) => /^\s*event\s*:/.test(property),
|
|
4010
|
+
);
|
|
4011
|
+
const eventName = /^\s*event\s*:\s*([A-Za-z_$][\w$]*)/.exec(
|
|
4012
|
+
eventProperty ?? "",
|
|
4013
|
+
)?.[1];
|
|
4014
|
+
if (eventName) listened.add(eventName);
|
|
3948
4015
|
}
|
|
3949
4016
|
}
|
|
3950
4017
|
|
package/src/lint.ts
CHANGED
|
@@ -1123,6 +1123,8 @@ const serverRuntimePackages = new Set([
|
|
|
1123
1123
|
"@beignet/next",
|
|
1124
1124
|
"@beignet/core/openapi",
|
|
1125
1125
|
"@beignet/core/server",
|
|
1126
|
+
"@beignet/webhooks-github",
|
|
1127
|
+
"@beignet/webhooks-stripe",
|
|
1126
1128
|
]);
|
|
1127
1129
|
|
|
1128
1130
|
function appImportMessage(
|
|
@@ -1185,6 +1187,7 @@ function classifyPath(
|
|
|
1185
1187
|
const layerSegment = featurePath.split("/")[1];
|
|
1186
1188
|
if (layerSegment === "domain") return "domain";
|
|
1187
1189
|
if (layerSegment === "contracts") return "contract";
|
|
1190
|
+
if (layerSegment?.endsWith("-contracts")) return "contract";
|
|
1188
1191
|
if (layerSegment === "routes") return "route";
|
|
1189
1192
|
if (layerSegment === "ports") return "feature-port";
|
|
1190
1193
|
if (layerSegment === "policy") return "policy";
|
|
@@ -1205,13 +1208,22 @@ function classifyPath(
|
|
|
1205
1208
|
if (layerSegment === "client") return "client";
|
|
1206
1209
|
}
|
|
1207
1210
|
|
|
1208
|
-
if (
|
|
1211
|
+
if (
|
|
1212
|
+
directoryPath(config.paths.contracts) !== featuresPath &&
|
|
1213
|
+
isUnder(normalizedPath, directoryPath(config.paths.contracts))
|
|
1214
|
+
) {
|
|
1209
1215
|
return "contract";
|
|
1210
1216
|
}
|
|
1211
|
-
if (
|
|
1217
|
+
if (
|
|
1218
|
+
directoryPath(config.paths.useCases) !== featuresPath &&
|
|
1219
|
+
isUnder(normalizedPath, directoryPath(config.paths.useCases))
|
|
1220
|
+
) {
|
|
1212
1221
|
return "use-case";
|
|
1213
1222
|
}
|
|
1214
|
-
if (
|
|
1223
|
+
if (
|
|
1224
|
+
directoryPath(config.paths.policies) !== featuresPath &&
|
|
1225
|
+
isUnder(normalizedPath, directoryPath(config.paths.policies))
|
|
1226
|
+
) {
|
|
1215
1227
|
return "policy";
|
|
1216
1228
|
}
|
|
1217
1229
|
|
package/src/make/inbox.ts
CHANGED
|
@@ -856,8 +856,7 @@ export function inboxRoutesFile(config: ResolvedBeignetConfig): string {
|
|
|
856
856
|
path.join(config.paths.features, "inbox/use-cases/index.ts"),
|
|
857
857
|
);
|
|
858
858
|
|
|
859
|
-
return `import { defineRouteGroup } from "
|
|
860
|
-
import type { AppContext } from "${aliasModule(config.paths.appContext)}";
|
|
859
|
+
return `import { defineRouteGroup } from "${aliasModule(config.paths.routesBuilder)}";
|
|
861
860
|
import {
|
|
862
861
|
\tlistInbox,
|
|
863
862
|
\tmarkAllRead,
|
|
@@ -871,7 +870,7 @@ import {
|
|
|
871
870
|
\tmarkReadUseCase,
|
|
872
871
|
} from "${useCasesModule}";
|
|
873
872
|
|
|
874
|
-
export const inboxRoutes = defineRouteGroup
|
|
873
|
+
export const inboxRoutes = defineRouteGroup({
|
|
875
874
|
\tname: "inbox",
|
|
876
875
|
\troutes: [
|
|
877
876
|
\t\t{ contract: listInbox, useCase: listInboxUseCase },
|
package/src/make/payments.ts
CHANGED
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
planGeneratedFiles,
|
|
32
32
|
type ResourceNames,
|
|
33
33
|
readOptionalFile,
|
|
34
|
-
relativeModule,
|
|
35
34
|
resourceNames,
|
|
36
35
|
resourceSharedErrorsPath,
|
|
37
36
|
seedEntrypointPath,
|
|
@@ -1375,14 +1374,11 @@ export const handlePaymentWebhookUseCase = useCase
|
|
|
1375
1374
|
}
|
|
1376
1375
|
|
|
1377
1376
|
export function billingRoutesFile(config: ResolvedBeignetConfig): string {
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
return `import { defineRouteGroup } from "@beignet/core/server";
|
|
1381
|
-
import type { AppContext } from "${relativeModule(routeFilePath, config.paths.appContext)}";
|
|
1377
|
+
return `import { defineRouteGroup } from "${aliasModule(config.paths.routesBuilder)}";
|
|
1382
1378
|
import * as billingContracts from "@/features/billing/contracts";
|
|
1383
1379
|
import * as billingUseCases from "@/features/billing/use-cases";
|
|
1384
1380
|
|
|
1385
|
-
export const billingRoutes = defineRouteGroup
|
|
1381
|
+
export const billingRoutes = defineRouteGroup({
|
|
1386
1382
|
\tname: "billing",
|
|
1387
1383
|
\troutes: [
|
|
1388
1384
|
\t\t{
|