@igniter-js/cli 0.1.4 → 0.1.6
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/index.js +373 -191
- package/dist/index.js.map +1 -0
- package/dist/templates/express.server.hbs +33 -0
- package/dist/templates/feature.controller.hbs +14 -4
- package/dist/templates/feature.interface.hbs +27 -5
- package/dist/templates/feature.procedure.hbs +12 -7
- package/dist/templates/globals.hbs +7 -82
- package/dist/templates/igniter.context.hbs +1 -1
- package/dist/templates/layout.hbs +6 -14
- package/dist/templates/page.hbs +4 -37
- package/dist/templates/readme.hbs +25 -42
- package/dist/utils/analyze.js +8 -10
- package/dist/utils/analyze.js.map +1 -0
- package/dist/utils/cli-style.d.ts +55 -0
- package/dist/utils/cli-style.js +171 -0
- package/dist/utils/cli-style.js.map +1 -0
- package/dist/utils/consts.d.ts +4 -9
- package/dist/utils/consts.js +5 -13
- package/dist/utils/consts.js.map +1 -0
- package/dist/utils/handlebars-helpers.js +18 -5
- package/dist/utils/handlebars-helpers.js.map +1 -0
- package/dist/utils/helpers.d.ts +2 -1
- package/dist/utils/helpers.js +44 -17
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/platform-utils.d.ts +46 -0
- package/dist/utils/platform-utils.js +95 -0
- package/dist/utils/platform-utils.js.map +1 -0
- package/dist/utils/prisma-schema-parser.js +11 -16
- package/dist/utils/prisma-schema-parser.js.map +1 -0
- package/dist/utils/project-utils.d.ts +32 -0
- package/dist/utils/project-utils.js +123 -0
- package/dist/utils/project-utils.js.map +1 -0
- package/dist/utils/template-handler.js +4 -5
- package/dist/utils/template-handler.js.map +1 -0
- package/package.json +3 -1
- package/readme.md +23 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,gEAA+B;AAC/B,wDAAuB;AACvB,oDAAmB;AAEnB,yCAAmC;AACnC,2CAAyF;AACzF,6CAA2C;AAC3C,+DAA0D;AAC1D,mEAA4D;AAC5D,uEAAiE;AACjE,6CAAgD;AAChD,iDAA4C;AAC5C,yDAAgF;AAChF,2DAAsD;AAEtD,MAAM,UAAW,SAAQ,mBAAS;IAKhC;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,yCAAkB,EAAE,CAAA;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAc,EAAE,CAAA;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjB,CAAC;IAEO,QAAQ;QACd,8BAA8B;QAC9B,IAAA,oCAAe,GAAE,CAAA;QAEjB,IAAI,CAAC,OAAO;aACT,IAAI,CAAC,SAAS,CAAC;aACf,WAAW,CAAC,mDAAmD,CAAC;aAChE,OAAO,CAAC,OAAO,CAAC,CAAA;QAEnB,IAAI,CAAC,OAAO;aACT,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,kDAAkD,CAAC;aAC/D,MAAM,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;aACzE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC,OAAO;aACT,OAAO,CAAC,SAAS,CAAC;aAClB,WAAW,CAAC,sBAAsB,CAAC;aACnC,MAAM,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC,OAAO;aACT,OAAO,CAAC,kBAAkB,CAAC;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,WAAW,CAAC,wBAAwB,CAAC;aACrC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;aAC3C,MAAM,CAAC,0BAA0B,EAAE,4CAA4C,CAAC;aAChF,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;aAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;gBAChC,OAAM;YACR,CAAC;YAED,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;QAEJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,SAAkB;QACnC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,oBAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAA;QACnD,oBAAQ,CAAC,OAAO,CAAC,gFAAgF,CAAC,CAAA;QAElG,IAAI,CAAC;YACH,4DAA4D;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACd,oBAAQ,CAAC,OAAO,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAA;gBAE/D,oCAAoC;gBACpC,MAAM,cAAc,GAAG,IAAA,8BAAa,EAAC,SAAS,CAAC,CAAA;gBAE/C,iCAAiC;gBACjC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBACnC,YAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;oBACjD,oBAAQ,CAAC,UAAU,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAA;gBAC7D,CAAC;gBAED,2BAA2B;gBAC3B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;gBAC7B,oBAAQ,CAAC,UAAU,CAAC,yBAAyB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,MAAM,OAAO,GAAG,oBAAQ,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAA;YAC3E,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,CAAC,iBAAiB,CAAC,qBAAY,CAAC,QAAQ,CAAC,CAAA;YAC7C,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAA;YAE1D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACtD,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oBAAQ,CAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,oBAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAA;QAE/C,MAAM,aAAa,GAAG,IAAA,+BAAe,GAAE,CAAA;QAEvC,MAAM,cAAc,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC3C,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAChC;YACD,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QAEF,IAAI,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,WAAW,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAClC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,iDAAiD;wBACvD,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,IAAI,EAAE,gDAAgD;wBACtD,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,QAAQ;iBAChB;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,KAAK,EAAE,MAAM;iBACd;aACF;YACD,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAA;QAEF,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,oBAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;QAC1C,oBAAQ,CAAC,OAAO,CAAC,oBAAoB,cAAc,CAAC,KAAK,EAAE,CAAC,CAAA;QAC5D,IAAI,CAAC,aAAa;YAAE,oBAAQ,CAAC,OAAO,CAAC,iBAAiB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1E,oBAAQ,CAAC,OAAO,CAAC,aAAa,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAEpF,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,oBAAQ,CAAC,OAAO,CAAC,kJAAkJ,CAAC,CAAA;QACtK,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yCAAyC;YAClD,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,oBAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAA;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,oBAAQ,CAAC,WAAW,EAAE,CAAA;QACtB,OAAO;YACL,iBAAiB,EAAE,cAAc,CAAC,KAAK;YACvC,cAAc,EAAE,WAAW,CAAC,KAAK;YACjC,UAAU,EAAE,QAAQ,CAAC,KAAK;SAC3B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,SAAmB,EAAE,EAAE,cAAuB,KAAK;QAC7F,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,oBAAQ,CAAC,aAAa,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;QAErD,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,OAAO,GAAG,oBAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAA;YAClE,OAAO,CAAC,KAAK,EAAE,CAAA;YAEf,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,8BAA8B,CAAC,CAAA;gBAE1D,4DAA4D;gBAC5D,IAAI,aAAa,GAAG,WAAW,CAAA;gBAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,oBAAQ,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;oBACjE,OAAO,CAAC,GAAG,CAAC,oBAAQ,CAAC,eAAe,EAAE,CAAC,CAAA;oBAEvC,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;wBACnC,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,oBAAQ,CAAC,SAAS,CAAC,iDAAiD,IAAI,WAAW,CAAC;wBAC7F,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;oBAEF,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;gBACtC,CAAC;gBAED,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,oBAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAA;oBACnD,oBAAQ,CAAC,WAAW,EAAE,CAAA;oBACtB,OAAM;gBACR,CAAC;gBAED,oBAAQ,CAAC,OAAO,CAAC,+BAA+B,IAAI,0BAA0B,CAAC,CAAA;YACjF,CAAC;YAED,kCAAkC;YAClC,IAAI,YAAY,GAAU,EAAE,CAAA;YAC5B,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBAErD,uDAAuD;gBACvD,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACxC,GAAG,KAAK;oBACR,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;oBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,cAAc,CAAC;oBAC7G,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;iBACjD,CAAC,CAAC,CAAA;YACL,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,kCAAkC;gBAClC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAChC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACrC,OAAO;wBACL,IAAI;wBACJ,IAAI,EAAE,IAAI,IAAI,QAAQ;wBACtB,OAAO,EAAE,YAAY;wBACrB,WAAW,EAAE,GAAG,IAAI,QAAQ;wBAC5B,UAAU,EAAE,KAAK;wBACjB,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,KAAK;wBACjB,SAAS,EAAE,SAAS;qBACrB,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;YAE5C,2BAA2B;YAC3B,oBAAQ,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;YAClD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACjE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAE3B,uDAAuD;YACvD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YAC/D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;YAEhC,MAAM,gBAAgB,GAAG;gBACvB,YAAY;gBACZ,OAAO;gBACP,UAAU;gBACV,OAAO;aACR,CAAA;YAED,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;gBAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBACvB,IAAI,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;YACrD,CAAC;YAED,gCAAgC;YAChC,MAAM,WAAW,GAAG;gBAClB,aAAa;gBACb,YAAY;aACb,CAAA;YAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;YAC7C,CAAC;YACD,oBAAQ,CAAC,OAAO,EAAE,CAAA;YAElB,gCAAgC;YAChC,oBAAQ,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG;gBACnB,IAAI;gBACJ,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;gBAClC,OAAO,EAAE,CAAC,WAAW;aACtB,CAAA;YAED,MAAM,SAAS,GAAG;gBAChB,eAAe,EAAE,UAAU;gBAC3B,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe;gBACzD,oBAAoB,EAAE,eAAe,IAAI,CAAC,WAAW,EAAE,gBAAgB;gBACvE,mBAAmB,EAAE,cAAc,IAAI,CAAC,WAAW,EAAE,eAAe;aACrE,CAAA;YAED,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,MAAM,OAAO,GAAG,kCAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gBAC9D,IAAI,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;YAC5D,CAAC;YACD,oBAAQ,CAAC,OAAO,EAAE,CAAA;YAElB,oBAAQ,CAAC,WAAW,EAAE,CAAA;YACtB,oBAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAA;YAE9D,IAAI,WAAW,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,oBAAQ,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,2BAA2B,CAAC,CAAA;YACzH,CAAC;iBAAM,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,oBAAQ,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,gBAAgB,CAAC,CAAA;YAC9G,CAAC;iBAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxB,oBAAQ,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,oBAAQ,CAAC,UAAU,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAA;YACpF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oBAAQ,CAAC,QAAQ,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,oBAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAA;QAElD,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAA;YAC1D,MAAM,UAAU,GAAG,oBAAoB,CAAA;YACvC,IAAI,KAAK,CAAA;YACT,MAAM,MAAM,GAAa,EAAE,CAAA;YAE3B,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,oBAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAA;gBAC5D,oBAAQ,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAA;gBACzE,oBAAQ,CAAC,WAAW,EAAE,CAAA;gBACtB,OAAM;YACR,CAAC;YAED,yBAAyB;YACzB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;oBAChD,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,oBAAQ,CAAC,SAAS,CAAC,+CAA+C,CAAC;oBAC5E,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC5B,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;iBACJ,CAAC,CAAC,CAAA;YAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,oBAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC,CAAA;gBAC/D,oBAAQ,CAAC,WAAW,EAAE,CAAA;gBACtB,OAAM;YACR,CAAC;YAED,oBAAQ,CAAC,SAAS,CAAC,cAAc,cAAc,CAAC,MAAM,WAAW,CAAC,CAAA;YAElE,iBAAiB;YACjB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAA;YACnC,MAAM,MAAM,GAAa,EAAE,CAAA;YAE3B,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,oBAAQ,CAAC,aAAa,CAAC,oBAAoB,KAAK,KAAK,SAAS,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;gBAC/F,OAAO,CAAC,KAAK,EAAE,CAAA;gBAEf,IAAI,CAAC;oBACH,4DAA4D;oBAC5D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;oBAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;oBAE3B,wBAAwB;oBACxB,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;oBAC/D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;oBAEhC,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;wBAC/D,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;wBAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;wBACvB,IAAI,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;oBACrD,CAAC;oBAED,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;wBAChD,IAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC7C,CAAC;oBAED,sCAAsC;oBACtC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;oBAC1D,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACxC,GAAG,KAAK;wBACR,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,cAAc,CAAC;wBAC7G,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;qBACjD,CAAC,CAAC,CAAA;oBAEH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;oBAC1D,MAAM,SAAS,GAAG;wBAChB,eAAe,EAAE,UAAU;wBAC3B,mBAAmB,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,eAAe;wBAC1D,oBAAoB,EAAE,eAAe,KAAK,CAAC,WAAW,EAAE,gBAAgB;wBACxE,mBAAmB,EAAE,cAAc,KAAK,CAAC,WAAW,EAAE,eAAe;qBACtE,CAAA;oBAED,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7D,MAAM,OAAO,GAAG,kCAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;wBAC9D,IAAI,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;oBAC5D,CAAC;oBAED,SAAS,EAAE,CAAA;oBACX,OAAO,CAAC,OAAO,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;gBACnD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAClB,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAA;oBACvD,oBAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;gBACrC,CAAC;gBAED,gBAAgB;gBAChB,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG,CAAA;gBACxC,oBAAQ,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC9I,CAAC;YAED,oBAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,oBAAQ,CAAC,WAAW,EAAE,CAAA;YAEtB,gBAAgB;YAChB,oBAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;YACvC,oBAAQ,CAAC,UAAU,CAAC,2BAA2B,SAAS,IAAI,KAAK,WAAW,CAAC,CAAA;YAE7E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,oBAAQ,CAAC,UAAU,CAAC,uBAAuB,MAAM,CAAC,MAAM,WAAW,CAAC,CAAA;gBACpE,oBAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;gBAClC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAA;YACzD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oBAAQ,CAAC,QAAQ,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,WAAgB;QAC3C,oBAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QACvC,oBAAQ,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAA;QAErF,oBAAoB;QACpB,oBAAQ,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,oBAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAA;QAClE,QAAQ,CAAC,KAAK,EAAE,CAAA;QAEhB,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAA;QAErD,MAAM,aAAa,GAAG,IAAA,+BAAe,GAAE,CAAA;QACvC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;YACxC,IAAI,CAAC,UAAU,CAAC,iCAAiC,EAAE,kCAAe,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;YAC3F,IAAI,CAAC,UAAU,CAAC,gCAAgC,EAAE,kCAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAA;QACpG,CAAC;QAED,IAAG,CAAC,aAAa,EAAE,CAAC;YAClB,IAAI,WAAW,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,UAAU,CAAC,CAAA;gBAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,kBAAkB,CAAC,CAAA;gBACrD,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,mEAAmE,CAAC,CAAA;gBAEtG,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;gBAEjD,WAAW,CAAC,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC/C,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;gBAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAA;gBACjC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAA;gBACxB,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;gBACpC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAA;gBACpD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAA;gBAEpD,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;gBAE1C,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,kCAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAA;gBAElF,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,kCAAe,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAA;gBACtE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,kCAAe,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,kCAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAA;YACzF,CAAC;YAED,IAAI,WAAW,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,8GAA8G,cAAc,IAAI,CAAC,CAAA;gBAElJ,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;gBAEjD,WAAW,CAAC,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC/C,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;gBAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAA;gBAEjC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;gBAE1C,IAAI,CAAC,UAAU,CAAC,sCAAsC,EAAE,kCAAe,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,CAAA;gBACpH,IAAI,CAAC,UAAU,CAAC,sCAAsC,EAAE,kCAAe,CAAC,MAAM,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC,CAAA;gBAEpH,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,kCAAe,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC3E,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,kCAAe,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC/E,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,kCAAe,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAA;gBAEjF,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;gBACxC,IAAI,CAAC,UAAU,CAAC,iCAAiC,EAAE,kCAAe,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;gBAE3F,IAAI,CAAC,UAAU,CAAC,gCAAgC,EAAE,kCAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAA;gBAElG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,kCAAe,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAA;gBACtE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,kCAAe,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,kCAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAA;gBAEvF,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,cAAc,CAAC,CAAA;gBACtD,IAAG,CAAC,MAAM,EAAE,CAAC;oBACX,oBAAQ,CAAC,QAAQ,CAAC,iEAAiE,CAAC,CAAA;oBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAEnB,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,uEAAuE,CAAC,CAAA;gBAClG,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,0BAA0B,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,0BAAiB,CAAC,CAAA;QAEhD,QAAQ,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;QAC/C,oBAAQ,CAAC,OAAO,EAAE,CAAA;QAElB,6BAA6B;QAC7B,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,oBAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,oBAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAA;YACjE,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;YACnC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;YAC7B,MAAM,UAAU,GAAG,kCAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACvD,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAA;YACtD,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACtC,oBAAQ,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,oBAAQ,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAA;QAClE,CAAC;QAED,oBAAoB;QACpB,oBAAQ,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,oBAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAA;QACjE,QAAQ,CAAC,KAAK,EAAE,CAAA;QAChB,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,oCAAoC,CAAC,CAAA;QACvE,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,2BAA2B,CAAC,CAAA;QAE9D,MAAM,UAAU,GAAG,kCAAe,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAEnC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,kCAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;QACtF,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,kCAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,kCAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;QACtF,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,kCAAe,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;QAExE,QAAQ,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAA;QACtE,oBAAQ,CAAC,OAAO,EAAE,CAAA;QAElB,YAAY;QACZ,oBAAQ,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,oBAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QAC7D,SAAS,CAAC,KAAK,EAAE,CAAA;QAEjB,KAAK,MAAM,IAAI,IAAI,kBAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,kCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACrC,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAA;QAC7C,oBAAQ,CAAC,OAAO,EAAE,CAAA;QAElB,oBAAQ,CAAC,WAAW,EAAE,CAAA;QACtB,oBAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAA;QAErD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACvD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEf,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEf,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;YAChE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAA;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACvD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEf,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEf,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;YAChE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAA;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAA;QAClF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,kCAAkC,CAAC,CAAA;IACxD,CAAC;CACF;AAED,YAAY;AACZ,IAAI,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import express, { Request, Response, NextFunction } from 'express';
|
|
2
|
+
import cors from 'cors';
|
|
3
|
+
import { AppRouter } from './igniter.router';
|
|
4
|
+
import { createIgniterAppContext } from './igniter.context';
|
|
5
|
+
|
|
6
|
+
// Initialize Express server
|
|
7
|
+
const app = express();
|
|
8
|
+
|
|
9
|
+
// Configure middleware
|
|
10
|
+
app.use(cors());
|
|
11
|
+
app.use(express.json());
|
|
12
|
+
app.use(express.urlencoded({ extended: true }));
|
|
13
|
+
|
|
14
|
+
// Mount Igniter router
|
|
15
|
+
app.use(async (req: Request, res: Response) => {
|
|
16
|
+
return AppRouter.handler(req)
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// Global error handler
|
|
20
|
+
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
|
|
21
|
+
console.error('Express error handler:', err);
|
|
22
|
+
|
|
23
|
+
res.status(500).json({
|
|
24
|
+
status: 500,
|
|
25
|
+
message: 'Internal Server Error'
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Start server
|
|
30
|
+
app.listen(PORT, () => {
|
|
31
|
+
console.log(`✅ Server started at http://localhost:${PORT}`);
|
|
32
|
+
console.log(`🚀 API routes available at http://localhost:${PORT}/api/v1`);
|
|
33
|
+
});
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
{{#unless noModel}}
|
|
1
2
|
import { z } from "zod";
|
|
3
|
+
{{/unless}}
|
|
2
4
|
import { igniter } from "@/igniter";
|
|
3
5
|
import { {{pascalCase name}}FeatureProcedure } from "../procedures/{{kebabCase name}}.procedure";
|
|
4
6
|
|
|
@@ -6,6 +8,17 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
6
8
|
name: "{{kebabCase name}}",
|
|
7
9
|
path: "/{{kebabCase name}}",
|
|
8
10
|
actions: {
|
|
11
|
+
{{#if noModel}}
|
|
12
|
+
hello: igniter.query({
|
|
13
|
+
method: "GET",
|
|
14
|
+
path: "/hello",
|
|
15
|
+
use: [{{pascalCase name}}FeatureProcedure()],
|
|
16
|
+
handler: async ({ response, context }) => {
|
|
17
|
+
const result = await context.{{camelCase name}}.hello();
|
|
18
|
+
return response.success(result);
|
|
19
|
+
}
|
|
20
|
+
}),
|
|
21
|
+
{{else}}
|
|
9
22
|
findMany: igniter.query({
|
|
10
23
|
method: "GET",
|
|
11
24
|
path: "/",
|
|
@@ -22,7 +35,6 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
22
35
|
return response.success(result);
|
|
23
36
|
}
|
|
24
37
|
}),
|
|
25
|
-
|
|
26
38
|
findOne: igniter.query({
|
|
27
39
|
method: "GET",
|
|
28
40
|
path: "/:id" as const,
|
|
@@ -32,7 +44,6 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
32
44
|
return response.success(result);
|
|
33
45
|
}
|
|
34
46
|
}),
|
|
35
|
-
|
|
36
47
|
create: igniter.mutation({
|
|
37
48
|
method: "POST",
|
|
38
49
|
path: "/",
|
|
@@ -49,7 +60,6 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
49
60
|
return response.success(result);
|
|
50
61
|
}
|
|
51
62
|
}),
|
|
52
|
-
|
|
53
63
|
update: igniter.mutation({
|
|
54
64
|
method: "PUT",
|
|
55
65
|
path: "/:id" as const,
|
|
@@ -71,7 +81,6 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
71
81
|
return response.success(result);
|
|
72
82
|
}
|
|
73
83
|
}),
|
|
74
|
-
|
|
75
84
|
delete: igniter.mutation({
|
|
76
85
|
method: "DELETE",
|
|
77
86
|
path: "/:id" as const,
|
|
@@ -81,5 +90,6 @@ export const {{pascalCase name}}Controller = igniter.controller({
|
|
|
81
90
|
return response.success(null);
|
|
82
91
|
}
|
|
83
92
|
})
|
|
93
|
+
{{/if}}
|
|
84
94
|
}
|
|
85
95
|
});
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
+
{{#if noModel}}
|
|
2
|
+
/**
|
|
3
|
+
* Represents a basic interface for the {{pascalCase name}} feature.
|
|
4
|
+
* Since this feature was created without a Prisma model, you can extend
|
|
5
|
+
* this interface with your own properties as needed.
|
|
6
|
+
*/
|
|
7
|
+
export interface {{pascalCase name}}Response {
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
{{else}}
|
|
1
11
|
{{#each fields}}
|
|
2
12
|
{{#if relations}}
|
|
3
13
|
import type { {{pascalCase type}} } from '../{{kebabCase type}}/{{kebabCase type}}.interface';
|
|
4
14
|
{{/if}}
|
|
5
15
|
{{/each}}
|
|
16
|
+
{{! Seção para gerar os Enums }}
|
|
17
|
+
{{#each enums}}
|
|
18
|
+
/**
|
|
19
|
+
* Enum representing the possible values for {{name}}
|
|
20
|
+
*/
|
|
21
|
+
export enum {{pascalCase name}} {
|
|
22
|
+
{{#each values}}
|
|
23
|
+
{{this}} = '{{this}}',
|
|
24
|
+
{{/each}}
|
|
25
|
+
}
|
|
26
|
+
{{/each}}
|
|
6
27
|
|
|
7
28
|
/**
|
|
8
29
|
* Represents a {{pascalCase name}} entity.
|
|
@@ -19,7 +40,7 @@ export interface {{pascalCase name}} {
|
|
|
19
40
|
{{/if}}
|
|
20
41
|
{{else}}
|
|
21
42
|
/** {{pascalCase name}}'s {{name}} property */
|
|
22
|
-
{{name}}: {{getTypeFormat type isRelation}}{{#if isOptional}}{{#unless hasDefault}} | null{{/unless}}{{/if}};
|
|
43
|
+
{{name}}: {{getTypeFormat type isRelation isEnum}}{{#if isOptional}}{{#unless hasDefault}} | null{{/unless}}{{/if}};
|
|
23
44
|
{{/if}}
|
|
24
45
|
{{/each}}
|
|
25
46
|
}
|
|
@@ -36,7 +57,7 @@ export interface Create{{pascalCase name}}DTO {
|
|
|
36
57
|
{{#unless (equals name (concat (lowerCase ../name) "Id"))}}
|
|
37
58
|
{{#unless isRelation}}
|
|
38
59
|
/** {{pascalCase name}}'s {{name}} property */
|
|
39
|
-
{{name}}
|
|
60
|
+
{{name}}: {{getTypeFormat type isRelation isEnum}}{{#if isOptional}}{{#unless hasDefault}} | null{{/unless}}{{/if}};
|
|
40
61
|
{{/unless}}
|
|
41
62
|
{{/unless}}
|
|
42
63
|
{{/if}}
|
|
@@ -55,7 +76,7 @@ export interface Update{{pascalCase name}}DTO {
|
|
|
55
76
|
{{#unless (equals name (concat (lowerCase ../name) "Id"))}}
|
|
56
77
|
{{#unless isRelation}}
|
|
57
78
|
/** {{pascalCase name}}'s {{name}} property */
|
|
58
|
-
{{name}}?: {{getTypeFormat type isRelation}}{{#if isOptional}} | null{{/if}};
|
|
79
|
+
{{name}}?: {{getTypeFormat type isRelation isEnum}}{{#if isOptional}}{{#unless hasDefault}} | null{{/unless}}{{/if}};
|
|
59
80
|
{{/unless}}
|
|
60
81
|
{{/unless}}
|
|
61
82
|
{{/if}}
|
|
@@ -63,7 +84,7 @@ export interface Update{{pascalCase name}}DTO {
|
|
|
63
84
|
}
|
|
64
85
|
|
|
65
86
|
/**
|
|
66
|
-
* Query parameters for fetching
|
|
87
|
+
* Query parameters for fetching {{pascalCase name}} entities
|
|
67
88
|
*/
|
|
68
89
|
export interface {{pascalCase name}}QueryParams {
|
|
69
90
|
/** Current page number for pagination */
|
|
@@ -76,4 +97,5 @@ export interface {{pascalCase name}}QueryParams {
|
|
|
76
97
|
sortOrder?: 'asc' | 'desc';
|
|
77
98
|
/** Search term for filtering */
|
|
78
99
|
search?: string;
|
|
79
|
-
}
|
|
100
|
+
}
|
|
101
|
+
{{/if}}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { igniter } from "@/igniter";
|
|
2
|
+
{{#unless noModel}}
|
|
2
3
|
import type { {{pascalCase name}}, Create{{pascalCase name}}DTO, Update{{pascalCase name}}DTO, {{pascalCase name}}QueryParams } from "../{{kebabCase name}}.interface";
|
|
4
|
+
{{/unless}}
|
|
3
5
|
|
|
4
6
|
export const {{pascalCase name}}FeatureProcedure = igniter.procedure({
|
|
5
7
|
name: "{{pascalCase name}}FeatureProcedure",
|
|
8
|
+
{{#if noModel}}
|
|
9
|
+
handler: async () => {
|
|
10
|
+
{{else}}
|
|
6
11
|
handler: async (_, { context }) => {
|
|
12
|
+
{{/if}}
|
|
7
13
|
return {
|
|
8
14
|
{{camelCase name}}: {
|
|
15
|
+
{{#if noModel}}
|
|
16
|
+
hello: async (): Promise<{ message: string }> => {
|
|
17
|
+
return { message: 'Hello from {{pascalCase name}} feature!' };
|
|
18
|
+
}
|
|
19
|
+
{{else}}
|
|
9
20
|
findMany: async (query: {{pascalCase name}}QueryParams): Promise<{{pascalCase name}}[]> => {
|
|
10
21
|
return context.providers.database.{{lowerCase name }}.findMany({
|
|
11
22
|
where: query.search ? {
|
|
@@ -26,7 +37,6 @@ export const {{pascalCase name}}FeatureProcedure = igniter.procedure({
|
|
|
26
37
|
orderBy: query.sortBy ? {[query.sortBy]: query.sortOrder || 'asc'} : undefined
|
|
27
38
|
});
|
|
28
39
|
},
|
|
29
|
-
|
|
30
40
|
findOne: async (params: { id: string }): Promise<{{pascalCase name}} | null> => {
|
|
31
41
|
return context.providers.database.{{camelCase name }}.findUnique({
|
|
32
42
|
where: {
|
|
@@ -34,7 +44,6 @@ export const {{pascalCase name}}FeatureProcedure = igniter.procedure({
|
|
|
34
44
|
}
|
|
35
45
|
});
|
|
36
46
|
},
|
|
37
|
-
|
|
38
47
|
create: async (input: Create{{pascalCase name}}DTO): Promise<{{pascalCase name}}> => {
|
|
39
48
|
return context.providers.database.{{camelCase name }}.create({
|
|
40
49
|
data: {
|
|
@@ -48,14 +57,11 @@ export const {{pascalCase name}}FeatureProcedure = igniter.procedure({
|
|
|
48
57
|
}
|
|
49
58
|
});
|
|
50
59
|
},
|
|
51
|
-
|
|
52
60
|
update: async (params: { id: string } & Update{{pascalCase name}}DTO): Promise<{{pascalCase name}}> => {
|
|
53
61
|
const {{camelCase name}} = await context.providers.database.{{lowerCase name }}.findUnique({
|
|
54
62
|
where: { id: params.id }
|
|
55
63
|
});
|
|
56
|
-
|
|
57
64
|
if (!{{camelCase name}}) throw new Error("{{pascalCase name}} not found");
|
|
58
|
-
|
|
59
65
|
return context.providers.database.{{lowerCase name }}.update({
|
|
60
66
|
where: { id: params.id },
|
|
61
67
|
data: {
|
|
@@ -69,14 +75,13 @@ export const {{pascalCase name}}FeatureProcedure = igniter.procedure({
|
|
|
69
75
|
}
|
|
70
76
|
});
|
|
71
77
|
},
|
|
72
|
-
|
|
73
78
|
delete: async (params: { id: string }): Promise<{ id: string }> => {
|
|
74
79
|
await context.providers.database.{{lowerCase name }}.delete({
|
|
75
80
|
where: { id: params.id }
|
|
76
81
|
});
|
|
77
|
-
|
|
78
82
|
return { id: params.id };
|
|
79
83
|
}
|
|
84
|
+
{{/if}}
|
|
80
85
|
}
|
|
81
86
|
};
|
|
82
87
|
},
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
@import "tailwindcss";
|
|
2
|
+
@import "tw-animate-css";
|
|
2
3
|
|
|
3
|
-
@plugin "tailwindcss-animate";
|
|
4
4
|
@custom-variant dark (&:is(.dark *));
|
|
5
5
|
|
|
6
6
|
:root {
|
|
7
|
+
--background: oklch(1 0 0);
|
|
8
|
+
--foreground: oklch(0.145 0 0);
|
|
7
9
|
--card: oklch(1 0 0);
|
|
8
10
|
--card-foreground: oklch(0.145 0 0);
|
|
9
11
|
--popover: oklch(1 0 0);
|
|
@@ -20,13 +22,13 @@
|
|
|
20
22
|
--destructive-foreground: oklch(0.577 0.245 27.325);
|
|
21
23
|
--border: oklch(0.922 0 0);
|
|
22
24
|
--input: oklch(0.922 0 0);
|
|
23
|
-
--ring: oklch(0.
|
|
25
|
+
--ring: oklch(0.708 0 0);
|
|
24
26
|
--chart-1: oklch(0.646 0.222 41.116);
|
|
25
27
|
--chart-2: oklch(0.6 0.118 184.704);
|
|
26
28
|
--chart-3: oklch(0.398 0.07 227.392);
|
|
27
29
|
--chart-4: oklch(0.828 0.189 84.429);
|
|
28
30
|
--chart-5: oklch(0.769 0.188 70.08);
|
|
29
|
-
--radius:
|
|
31
|
+
--radius: 0.625rem;
|
|
30
32
|
--sidebar: oklch(0.985 0 0);
|
|
31
33
|
--sidebar-foreground: oklch(0.145 0 0);
|
|
32
34
|
--sidebar-primary: oklch(0.205 0 0);
|
|
@@ -34,9 +36,7 @@
|
|
|
34
36
|
--sidebar-accent: oklch(0.97 0 0);
|
|
35
37
|
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
36
38
|
--sidebar-border: oklch(0.922 0 0);
|
|
37
|
-
--sidebar-ring: oklch(0.
|
|
38
|
-
--background: oklch(1 0 0);
|
|
39
|
-
--foreground: oklch(0.145 0 0);
|
|
39
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.dark {
|
|
@@ -74,62 +74,7 @@
|
|
|
74
74
|
--sidebar-ring: oklch(0.439 0 0);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
.theme-login-one {
|
|
78
|
-
--primary: #ce2a2d;
|
|
79
|
-
--primary-foreground: #fff;
|
|
80
|
-
--ring: #ce2a2d9c;
|
|
81
|
-
--radius: 0rem;
|
|
82
|
-
--radius-sm: calc(var(--radius) - 4px);
|
|
83
|
-
--radius-md: calc(var(--radius) - 2px);
|
|
84
|
-
--radius-lg: var(--radius);
|
|
85
|
-
|
|
86
|
-
font-family: var(--font-sans);
|
|
87
|
-
|
|
88
|
-
a {
|
|
89
|
-
color: var(--primary);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
[data-slot="card"] {
|
|
93
|
-
border-radius: 0rem;
|
|
94
|
-
box-shadow: none;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.theme-login-two {
|
|
99
|
-
--primary: #035fa8;
|
|
100
|
-
--primary-foreground: #fff;
|
|
101
|
-
--ring: #035fa89c;
|
|
102
|
-
font-family: var(--font-serif);
|
|
103
|
-
|
|
104
|
-
a {
|
|
105
|
-
color: var(--primary);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.theme-login-three {
|
|
110
|
-
--primary: #22c55e;
|
|
111
|
-
--primary-foreground: #000;
|
|
112
|
-
--ring: #22c55e;
|
|
113
|
-
--radius: 1.5rem;
|
|
114
|
-
|
|
115
|
-
font-family: var(--font-manrope);
|
|
116
|
-
|
|
117
|
-
a {
|
|
118
|
-
color: var(--primary);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
[data-slot="card"] {
|
|
122
|
-
@apply shadow-xl;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
[data-slot="input"] {
|
|
126
|
-
@apply dark:bg-input;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
77
|
@theme inline {
|
|
131
|
-
--font-sans: var(--font-sans);
|
|
132
|
-
--font-mono: var(--font-mono);
|
|
133
78
|
--color-background: var(--background);
|
|
134
79
|
--color-foreground: var(--foreground);
|
|
135
80
|
--color-card: var(--card);
|
|
@@ -166,26 +111,6 @@
|
|
|
166
111
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
167
112
|
--color-sidebar-border: var(--sidebar-border);
|
|
168
113
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
169
|
-
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
170
|
-
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
171
|
-
|
|
172
|
-
@keyframes accordion-down {
|
|
173
|
-
from {
|
|
174
|
-
height: 0;
|
|
175
|
-
}
|
|
176
|
-
to {
|
|
177
|
-
height: var(--radix-accordion-content-height);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
@keyframes accordion-up {
|
|
182
|
-
from {
|
|
183
|
-
height: var(--radix-accordion-content-height);
|
|
184
|
-
}
|
|
185
|
-
to {
|
|
186
|
-
height: 0;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
114
|
}
|
|
190
115
|
|
|
191
116
|
@layer base {
|
|
@@ -195,4 +120,4 @@
|
|
|
195
120
|
body {
|
|
196
121
|
@apply bg-background text-foreground;
|
|
197
122
|
}
|
|
198
|
-
}
|
|
123
|
+
}
|
|
@@ -2,7 +2,6 @@ import type { Metadata } from "next";
|
|
|
2
2
|
|
|
3
3
|
import { Geist, Geist_Mono } from "next/font/google";
|
|
4
4
|
import { IgniterProvider } from '@igniter-js/core/client'
|
|
5
|
-
import { ThemeProvider } from "next-themes";
|
|
6
5
|
|
|
7
6
|
import "./globals.css"
|
|
8
7
|
|
|
@@ -17,8 +16,8 @@ const geistMono = Geist_Mono({
|
|
|
17
16
|
});
|
|
18
17
|
|
|
19
18
|
export const metadata: Metadata = {
|
|
20
|
-
title: "Igniter Boilerplate",
|
|
21
|
-
description: "A customizable boilerplate for Igniter applications",
|
|
19
|
+
title: "Igniter.js Boilerplate",
|
|
20
|
+
description: "A customizable boilerplate for Igniter.js applications",
|
|
22
21
|
};
|
|
23
22
|
|
|
24
23
|
export default function RootLayout({
|
|
@@ -29,18 +28,11 @@ export default function RootLayout({
|
|
|
29
28
|
return (
|
|
30
29
|
<html lang="en" suppressHydrationWarning>
|
|
31
30
|
<body
|
|
32
|
-
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
|
31
|
+
className={`${geistSans.variable} ${geistMono.variable} antialiased dark`}
|
|
33
32
|
>
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
enableSystem
|
|
38
|
-
disableTransitionOnChange
|
|
39
|
-
>
|
|
40
|
-
<IgniterProvider>
|
|
41
|
-
{children}
|
|
42
|
-
</IgniterProvider>
|
|
43
|
-
</ThemeProvider>
|
|
33
|
+
<IgniterProvider>
|
|
34
|
+
{children}
|
|
35
|
+
</IgniterProvider>
|
|
44
36
|
</body>
|
|
45
37
|
</html>
|
|
46
38
|
);
|
package/dist/templates/page.hbs
CHANGED
|
@@ -3,14 +3,11 @@
|
|
|
3
3
|
import * as React from "react"
|
|
4
4
|
import Link from "next/link"
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { Button } from "@/core/design-system/button"
|
|
8
|
-
import { Card, CardContent } from "@/core/design-system/card"
|
|
9
|
-
import { ArrowRight, ChevronDown, Code2, Github, Twitter, Youtube } from "lucide-react"
|
|
6
|
+
import { ArrowRight, Code2, Github, Twitter, Youtube } from "lucide-react"
|
|
10
7
|
import { FileText } from "lucide-react"
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
8
|
+
import { Badge } from "@/components/ui/badge"
|
|
9
|
+
import { Button } from "@/components/ui/button"
|
|
10
|
+
import { Card, CardContent } from "@/components/ui/card"
|
|
14
11
|
|
|
15
12
|
export default function Home() {
|
|
16
13
|
return (
|
|
@@ -113,38 +110,8 @@ export default function Home() {
|
|
|
113
110
|
</a>
|
|
114
111
|
</p>
|
|
115
112
|
</nav>
|
|
116
|
-
|
|
117
|
-
<ModeToggle />
|
|
118
113
|
</div>
|
|
119
114
|
</footer>
|
|
120
115
|
</div>
|
|
121
116
|
)
|
|
122
117
|
}
|
|
123
|
-
export function ModeToggle() {
|
|
124
|
-
const { setTheme, theme } = useTheme()
|
|
125
|
-
|
|
126
|
-
return (
|
|
127
|
-
<DropdownMenu>
|
|
128
|
-
<DropdownMenuTrigger asChild>
|
|
129
|
-
<Button variant="outline" className="space-x-2 flex items-center rounded-full">
|
|
130
|
-
<Sun className="h-[1.2rem] w-[1.2rem] transition-all dark:hidden dark:scale-0" />
|
|
131
|
-
<Moon className="h-[1.2rem] w-[1.2rem] transition-all hidden dark:flex dark:scale-100" />
|
|
132
|
-
<span>{theme === "light" ? "Light" : theme === "dark" ? "Dark" : "System"}</span>
|
|
133
|
-
|
|
134
|
-
<ChevronDown className="h-4 w-4 ml-auto" />
|
|
135
|
-
</Button>
|
|
136
|
-
</DropdownMenuTrigger>
|
|
137
|
-
<DropdownMenuContent align="end">
|
|
138
|
-
<DropdownMenuItem onClick={() => setTheme("light")}>
|
|
139
|
-
Light
|
|
140
|
-
</DropdownMenuItem>
|
|
141
|
-
<DropdownMenuItem onClick={() => setTheme("dark")}>
|
|
142
|
-
Dark
|
|
143
|
-
</DropdownMenuItem>
|
|
144
|
-
<DropdownMenuItem onClick={() => setTheme("system")}>
|
|
145
|
-
System
|
|
146
|
-
</DropdownMenuItem>
|
|
147
|
-
</DropdownMenuContent>
|
|
148
|
-
</DropdownMenu>
|
|
149
|
-
)
|
|
150
|
-
}
|
|
@@ -11,16 +11,13 @@ npm install
|
|
|
11
11
|
yarn install
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
2. **Setup Database**
|
|
14
|
+
2. **Setup Docker and Database**
|
|
15
15
|
```bash
|
|
16
16
|
# Start Docker containers
|
|
17
|
-
|
|
17
|
+
docker compose up -d
|
|
18
18
|
|
|
19
19
|
# Generate Prisma Client
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# Push database schema
|
|
23
|
-
npm run db:push
|
|
20
|
+
npx prisma migrate dev
|
|
24
21
|
```
|
|
25
22
|
|
|
26
23
|
3. **Start Development Server**
|
|
@@ -36,29 +33,21 @@ Open [http://localhost:3000](http://localhost:3000) to view your application.
|
|
|
36
33
|
|
|
37
34
|
```
|
|
38
35
|
├── src/
|
|
39
|
-
│ ├── app/ # Next.js app directory
|
|
40
|
-
│ ├──
|
|
41
|
-
│
|
|
42
|
-
│
|
|
43
|
-
│
|
|
44
|
-
│ │ └──
|
|
45
|
-
│ ├──
|
|
46
|
-
│ │ └── [feature]/ # Feature-specific code
|
|
47
|
-
│ │ ├── index.ts # Feature entry point
|
|
36
|
+
│ ├── app/ # Next.js app directory (If is Igniter Fullstack APP)
|
|
37
|
+
│ ├── design-system/ # UI components (shadcn/ui) (If is Igniter Fullstack APP)
|
|
38
|
+
│ ├── providers/ # Context providers
|
|
39
|
+
│ ├── utils/ # Shared utilities
|
|
40
|
+
│ ├── features/ # Feature modules
|
|
41
|
+
│ │ └── [feature]/ # Feature-specific code
|
|
42
|
+
│ │ ├── index.ts # Feature entry point
|
|
48
43
|
│ │ ├── controllers/ # HTTP request handlers
|
|
49
44
|
│ │ │ └── [feature].controller.ts
|
|
50
|
-
│ │ ├──
|
|
51
|
-
│ │ │ └── [feature].
|
|
52
|
-
│ │ ├──
|
|
53
|
-
│ │
|
|
54
|
-
│ │ ├── validators/ # Data validation schemas
|
|
55
|
-
│ │ │ └── [feature].validator.ts
|
|
56
|
-
│ │ ├── [feature].types.ts # Feature types
|
|
57
|
-
│ │ └── [feature].feature.ts # Feature configuration
|
|
45
|
+
│ │ ├── procedures/ # Business logic
|
|
46
|
+
│ │ │ └── [feature].procedure.ts
|
|
47
|
+
│ │ ├── [feature].interface.ts # Feature types
|
|
48
|
+
│ │ └── [feature].ts # Feature configuration
|
|
58
49
|
│ └── configs/ # Configuration files
|
|
59
50
|
├── public/ # Static files
|
|
60
|
-
├── docs/ # Documentation
|
|
61
|
-
├── scripts/ # Utility scripts
|
|
62
51
|
└── .github/ # GitHub configuration
|
|
63
52
|
```
|
|
64
53
|
|
|
@@ -68,34 +57,29 @@ Open [http://localhost:3000](http://localhost:3000) to view your application.
|
|
|
68
57
|
- `npm run build` - Build for production
|
|
69
58
|
- `npm run start` - Start production server
|
|
70
59
|
- `npm run lint` - Run ESLint
|
|
71
|
-
- `npm run test` - Run tests with Vitest
|
|
72
|
-
|
|
73
|
-
### Database Scripts
|
|
74
|
-
- `npm run docker:up` - Start Docker containers
|
|
75
|
-
- `npm run docker:down` - Stop Docker containers
|
|
76
|
-
- `npm run db:studio` - Open Prisma Studio
|
|
77
|
-
- `npm run db:push` - Push database schema changes
|
|
78
|
-
- `npm run db:generate` - Generate Prisma Client
|
|
79
60
|
|
|
80
61
|
### Igniter CLI Commands
|
|
81
|
-
- `
|
|
62
|
+
- `npx @igniter-js/cli generate feature [name]` - Generate a new feature
|
|
82
63
|
|
|
83
64
|
## 🏗 Feature Generation
|
|
84
65
|
Generate a new feature using the Igniter CLI:
|
|
85
66
|
|
|
86
67
|
```bash
|
|
87
|
-
|
|
68
|
+
npx @igniter-js/cli generate feature
|
|
88
69
|
```
|
|
89
70
|
|
|
90
71
|
This will create a new feature with the following structure:
|
|
91
72
|
```
|
|
92
73
|
src/features/users/
|
|
93
|
-
├──
|
|
94
|
-
|
|
95
|
-
├──
|
|
96
|
-
├──
|
|
97
|
-
|
|
98
|
-
|
|
74
|
+
├── features/ # Feature modules
|
|
75
|
+
│ └── [feature]/ # Feature-specific code
|
|
76
|
+
│ ├── index.ts # Feature entry point
|
|
77
|
+
│ ├── controllers/ # HTTP request handlers
|
|
78
|
+
│ │ └── [feature].controller.ts
|
|
79
|
+
│ ├── procedures/ # Business logic
|
|
80
|
+
│ │ └── [feature].procedure.ts
|
|
81
|
+
│ ├── [feature].interface.ts # Feature types
|
|
82
|
+
│ └── [feature].ts # Feature configuration
|
|
99
83
|
```
|
|
100
84
|
|
|
101
85
|
## 🧩 Tech Stack
|
|
@@ -120,7 +104,6 @@ For more detailed documentation:
|
|
|
120
104
|
- [Prisma Documentation](https://www.prisma.io/docs)
|
|
121
105
|
- [shadcn/ui Documentation](https://ui.shadcn.com)
|
|
122
106
|
- [Tailwind CSS Documentation](https://tailwindcss.com/docs)
|
|
123
|
-
- [Vitest Documentation](https://vitest.dev/docs)
|
|
124
107
|
- [Zod Documentation](https://zod.dev)
|
|
125
108
|
|
|
126
109
|
## 🤝 Contributing
|