@medusajs/framework 3.0.0-preview-20250211091350 → 3.0.0-preview-20250406180144
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/build-tools/compiler.d.ts +2 -1
- package/dist/build-tools/compiler.d.ts.map +1 -1
- package/dist/build-tools/compiler.js +13 -7
- package/dist/build-tools/compiler.js.map +1 -1
- package/dist/config/types.d.ts +25 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/database/pg-connection-loader.d.ts.map +1 -1
- package/dist/database/pg-connection-loader.js +7 -1
- package/dist/database/pg-connection-loader.js.map +1 -1
- package/dist/http/express-loader.d.ts.map +1 -1
- package/dist/http/express-loader.js +42 -9
- package/dist/http/express-loader.js.map +1 -1
- package/dist/http/middleware-file-loader.d.ts +28 -0
- package/dist/http/middleware-file-loader.d.ts.map +1 -0
- package/dist/http/middleware-file-loader.js +140 -0
- package/dist/http/middleware-file-loader.js.map +1 -0
- package/dist/http/middlewares/apply-default-filters.d.ts +2 -2
- package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-default-filters.js +1 -1
- package/dist/http/middlewares/apply-default-filters.js.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.d.ts +2 -2
- package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.js +1 -1
- package/dist/http/middlewares/apply-params-as-filters.js.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.d.ts +2 -0
- package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.js +3 -2
- package/dist/http/middlewares/authenticate-middleware.js.map +1 -1
- package/dist/http/middlewares/bodyparser.d.ts +13 -0
- package/dist/http/middlewares/bodyparser.d.ts.map +1 -0
- package/dist/http/middlewares/bodyparser.js +62 -0
- package/dist/http/middlewares/bodyparser.js.map +1 -0
- package/dist/http/middlewares/clear-filters-by-key.d.ts +2 -2
- package/dist/http/middlewares/clear-filters-by-key.d.ts.map +1 -1
- package/dist/http/middlewares/clear-filters-by-key.js +1 -1
- package/dist/http/middlewares/clear-filters-by-key.js.map +1 -1
- package/dist/http/middlewares/ensure-publishable-api-key.d.ts +2 -2
- package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -1
- package/dist/http/middlewares/ensure-publishable-api-key.js +3 -7
- package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -1
- package/dist/http/middlewares/error-handler.d.ts +2 -4
- package/dist/http/middlewares/error-handler.d.ts.map +1 -1
- package/dist/http/middlewares/error-handler.js +1 -1
- package/dist/http/middlewares/error-handler.js.map +1 -1
- package/dist/http/router.d.ts +4 -76
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +175 -717
- package/dist/http/router.js.map +1 -1
- package/dist/http/routes-finder.d.ts +22 -0
- package/dist/http/routes-finder.d.ts.map +1 -0
- package/dist/http/routes-finder.js +62 -0
- package/dist/http/routes-finder.js.map +1 -0
- package/dist/http/routes-loader.d.ts +30 -0
- package/dist/http/routes-loader.d.ts.map +1 -0
- package/dist/http/routes-loader.js +203 -0
- package/dist/http/routes-loader.js.map +1 -0
- package/dist/http/routes-sorter.d.ts +105 -0
- package/dist/http/routes-sorter.d.ts.map +1 -0
- package/dist/http/routes-sorter.js +146 -0
- package/dist/http/routes-sorter.js.map +1 -0
- package/dist/http/types.d.ts +33 -17
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/utils/define-middlewares.d.ts +4 -0
- package/dist/http/utils/define-middlewares.d.ts.map +1 -1
- package/dist/http/utils/define-middlewares.js +5 -1
- package/dist/http/utils/define-middlewares.js.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.d.ts +2 -2
- package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.js.map +1 -1
- package/dist/http/utils/wrap-handler.d.ts +3 -0
- package/dist/http/utils/wrap-handler.d.ts.map +1 -0
- package/dist/http/utils/wrap-handler.js +27 -0
- package/dist/http/utils/wrap-handler.js.map +1 -0
- package/dist/jobs/job-loader.d.ts +9 -4
- package/dist/jobs/job-loader.d.ts.map +1 -1
- package/dist/jobs/job-loader.js +15 -67
- package/dist/jobs/job-loader.js.map +1 -1
- package/dist/medusa-app-loader.d.ts.map +1 -1
- package/dist/medusa-app-loader.js +4 -0
- package/dist/medusa-app-loader.js.map +1 -1
- package/dist/subscribers/subscriber-loader.d.ts +4 -3
- package/dist/subscribers/subscriber-loader.d.ts.map +1 -1
- package/dist/subscribers/subscriber-loader.js +18 -67
- package/dist/subscribers/subscriber-loader.js.map +1 -1
- package/dist/utils/resource-loader.d.ts +26 -0
- package/dist/utils/resource-loader.d.ts.map +1 -0
- package/dist/utils/resource-loader.js +78 -0
- package/dist/utils/resource-loader.js.map +1 -0
- package/dist/workflows/workflow-loader.d.ts +4 -2
- package/dist/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/workflows/workflow-loader.js +8 -58
- package/dist/workflows/workflow-loader.js.map +1 -1
- package/package.json +12 -11
package/dist/http/router.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2EAAgD;AAChD,gDAAwC;AACxC,2CAAkD;AAclD,mDAA8C;AAC9C,mDAA8C;AAC9C,mDAA8C;AAC9C,uDAAkD;AAClD,+CAAsD;AACtD,+DAA0D;AAC1D,iEAA4D;AAC5D,qEAA+D;AAC/D,yDAA2E;AAC3E,yFAA4F;AAC5F,sCAAyC;AAEzC,MAAa,SAAS;IA+BpB,YAAY,EACV,GAAG,EACH,SAAS,EACT,oBAAoB,GAAG,EAAE,GAK1B;;QApBD;;;WAGG;QACM,iCAAa;QAEtB;;;WAGG;QACM,wCAAqB;QAW5B,uBAAA,IAAI,kBAAQ,GAAG,MAAA,CAAA;QACf,uBAAA,IAAI,yBAAe,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAA,CAAA;QACrE,uBAAA,IAAI,+DAAwB,MAA5B,IAAI,EAAyB,oBAAoB,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAqOD,KAAK,CAAC,IAAI;QACR,MAAM,EACJ,YAAY,EAAE,kBAAkB,EAChC,WAAW,EACX,MAAM,EACN,YAAY,EACZ,sBAAsB,GACvB,GAAG,MAAM,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,CAAqB,CAAA;QAEnC;;;WAGG;QACH,MAAM,sBAAsB,GAAG,IAAI,4BAAY,CAC7C,IAAI,4BAAY,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC;YAC5C,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,UAAU;YACV,QAAQ;SACT,CAAC,CACH,CAAA;QACD,uBAAA,IAAI,kEAA2B,MAA/B,IAAI,EAA4B,GAAG,EAAE,sBAAsB,CAAC,CAAA;QAE5D;;WAEG;QACH,uBAAA,IAAI,4DAAqB,MAAzB,IAAI,EACF,YAAY,EACZ,QAAQ,EACR,uBAAuB,EACvB,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,EAAoB,sBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3E,CAAA;QACD,uBAAA,IAAI,4DAAqB,MAAzB,IAAI,EAAsB,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE;YACxD,QAAQ;YACR,SAAS;YACT,SAAS;SACV,CAAC,CAAA;QAEF,uBAAA,IAAI,4DAAqB,MAAzB,IAAI,EACF,YAAY,EACZ,QAAQ,EACR,uBAAuB,EACvB,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,EAAoB,sBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3E,CAAA;QACD;;WAEG;QACH,uBAAA,IAAI,2EAAoC,MAAxC,IAAI,EAAqC,QAAQ,CAAC,CAAA;QAElD,uBAAA,IAAI,4DAAqB,MAAzB,IAAI,EACF,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB;YACE,oBAAoB,EAAE,IAAI;SAC3B,CACF,CAAA;QAED;;WAEG;QACH,uBAAA,IAAI,4DAAqB,MAAzB,IAAI,EACF,YAAY,EACZ,OAAO,EACP,sBAAsB,EACtB,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,EAAoB,sBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1E,CAAA;QAED,MAAM,gBAAgB,GAAI,EAAiD;aACxE,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC,MAAM,CAAC,CAAA;QAEjB,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9D,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBACvB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;YACD,uBAAA,IAAI,+DAAwB,MAA5B,IAAI,EAAyB,KAAK,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF;;WAEG;QACH,uBAAA,IAAI,sBAAK,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAA,4BAAY,GAAE,CAAC,CAAA;IACrD,CAAC;CACF;AAvWD,8BAuWC;;AA1TC;;;GAGG;AACH,KAAK;IACH,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAA;IACvC,MAAM,gBAAgB,GAAG,IAAI,6CAAoB,EAAE,CAAA;IAEnD,KAAK,IAAI,GAAG,IAAI,uBAAA,IAAI,6BAAY,EAAE,CAAC;QACjC,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE;QAChC,YAAY,EAAE,IAAI,4BAAY,EAAmB;QACjD,WAAW,EAAE,gBAAgB,CAAC,cAAc,EAAE;QAC9C,YAAY,EAAE,gBAAgB,CAAC,eAAe,EAEjC;QACb,sBAAsB,EAAE,gBAAgB,CAAC,yBAAyB,EAAE;KACrE,CAAA;AACH,CAAC,iFAMC,KAA+D;IAE/D,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,kBAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,EAAS,CAAC,UAAU;YAClC,CAAC,CAAC,EAAS,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClC,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;QAEjB,uBAAA,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,kBAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,EAAS,CAAC,eAAe;YACvC,CAAC,CAAE,EAAS,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE;gBACxC,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAoB;YACvB,CAAC,CAAE,KAAK,CAAC,OAA0B,CAAA;QAErC,uBAAA,IAAI,sBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC,CAAA;QAClD,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACnB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,kBAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,EAAS,CAAC,eAAe;YACvC,CAAC,CAAE,EAAS,CAAC,eAAe,CAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACrD,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,MAAM,EAAE,MAAM;aACf,CAAoB;YACvB,CAAC,CAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE9B,uBAAA,IAAI,sBAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACJ,CAAC,iFAKuB,oBAA8B;IACpD,uBAAA,IAAI,sBAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CACvB,GAAkB,EAClB,CAAiB,EACjB,IAAwB,EACxB,EAAE;QACF,GAAG,CAAC,gBAAgB,GAAG,IAAI,oCAAgB,EAAE,CAAA;QAC7C,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAC9C,IAAI,EAAE,CAAA;IACR,CAAC,CAA8B,CAAC,CAAA;IAEhC,uBAAA,IAAI,sBAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CACvB,GAAkB,EAClB,CAAiB,EACjB,IAAwB,EACxB,EAAE;QACF,GAAG,CAAC,gBAAgB,GAAG,IAAI,oCAAgB,EAAE,CAAA;QAC7C,IAAI,EAAE,CAAA;IACR,CAAC,CAA8B,CAAC,CAAA;AAClC,CAAC,uEAKkB,MAAc;IAC/B,OAAO;QACL,MAAM,EAAE,IAAA,wBAAgB,EAAC,MAAM,CAAC;QAChC,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,KAAK;KACzB,CAAA;AACH,CAAC,2EAMC,YAA2C,EAC3C,SAAiB,EACjB,SAG2B,EAC3B,WAAwB;IAExB,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,WAAW,CAAC,CAAA;IAChC,MAAM,cAAc,GAAmB,SAAS,cAAc,CAC5D,GAAG,EACH,GAAG,EACH,IAAI;QAEJ,IAAI,MAAM,GAAW,GAAG,CAAC,MAAM,CAAA;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,GAAG,CAAC,MAAM,CAAA;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACtC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAA;QACvE,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,kBAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9D,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;IAED,uBAAA,IAAI,sBAAK,CAAC,GAAG,CACX,SAAS,EACT,EAAS,CAAC,eAAe;QACvB,CAAC,CAAE,EAAS,CAAC,eAAe,CAAC,cAAc,EAAE;YACzC,KAAK,EAAE,SAAS;SACjB,CAAoB;QACvB,CAAC,CAAC,cAAc,CACnB,CAAA;AACH,CAAC,2EAOC,YAA2C,EAC3C,SAAiB,EACjB,SAA4B,EAC5B,QAA+B,EAC/B,OAAyE;IAEzE,kBAAM,CAAC,KAAK,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAA;IAEnE,MAAM,UAAU,GAAG,IAAA,0BAAY,EAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAmB,SAAS,cAAc,CAC5D,GAAG,EACH,GAAG,EACH,IAAI;QAEJ,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACtC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CACrC,IAAI,EACJ,GAAG,CAAC,MAAwB,CAC7B,CAAA;QACD,IAAI,aAAa,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;YAClD,kBAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;YACnD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,kBAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;QAC1D,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,CAAA;IAED,uBAAA,IAAI,sBAAK,CAAC,GAAG,CACX,SAAS,EACT,EAAS,CAAC,eAAe;QACvB,CAAC,CAAE,EAAS,CAAC,eAAe,CAAC,cAAc,EAAE;YACzC,KAAK,EAAE,SAAS;SACjB,CAAoB;QACvB,CAAC,CAAC,cAAc,CACnB,CAAA;AACH,CAAC,uFAMC,SAAiB,EACjB,YAAiD;IAEjD,kBAAM,CAAC,KAAK,CAAC,gDAAgD,SAAS,EAAE,CAAC,CAAA;IACzE,uBAAA,IAAI,sBAAK,CAAC,GAAG,CACX,SAAS,EACT,IAAA,6CAAgC,EAC9B,SAAS,EACT,YAAY,EACZ,EAAS,CAAC,eAAe,CAC1B,CACF,CAAA;AACH,CAAC,yGAMmC,SAAiB;IACnD,kBAAM,CAAC,KAAK,CACV,wDAAwD,SAAS,EAAE,CACpE,CAAA;IACD,IAAI,UAAU,GAAG,EAAS,CAAC,eAAe;QACxC,CAAC,CAAC,EAAS,CAAC,eAAe,CAAC,8DAAiC,EAAE;YAC3D,KAAK,EAAE,SAAS;SACjB,CAAC;QACJ,CAAC,CAAC,8DAAiC,CAAA;IAErC,uBAAA,IAAI,sBAAK,CAAC,GAAG,CAAC,SAAS,EAAE,UAA4B,CAAC,CAAA;AACxD,CAAC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import type { MiddlewareVerb, RouteVerb } from "./types";
|
2
|
+
export declare class RoutesFinder<T extends {
|
3
|
+
matcher: string;
|
4
|
+
methods: MiddlewareVerb | MiddlewareVerb[];
|
5
|
+
} | {
|
6
|
+
matcher: string;
|
7
|
+
method: RouteVerb;
|
8
|
+
}> {
|
9
|
+
#private;
|
10
|
+
constructor(routes?: T[]);
|
11
|
+
/**
|
12
|
+
* Register route for lookup
|
13
|
+
*/
|
14
|
+
add(route: T): void;
|
15
|
+
/**
|
16
|
+
* Get the matching route for a given HTTP method and URL
|
17
|
+
*/
|
18
|
+
find(url: string, method: MiddlewareVerb): (T & {
|
19
|
+
matchRegex: RegExp;
|
20
|
+
}) | null | undefined;
|
21
|
+
}
|
22
|
+
//# sourceMappingURL=routes-finder.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"routes-finder.d.ts","sourceRoot":"","sources":["../../src/http/routes-finder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExD,qBAAa,YAAY,CACvB,CAAC,SACG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;CAAE,GAC/D;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE;;gBAqB9B,MAAM,CAAC,EAAE,CAAC,EAAE;IAMxB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,CAAC;IAOZ;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;oBA/BtB,MAAM;;CAgDzB"}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
6
|
+
};
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
9
|
+
};
|
10
|
+
var _RoutesFinder_existingMatches, _RoutesFinder_routes;
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.RoutesFinder = void 0;
|
13
|
+
const path_to_regexp_1 = __importDefault(require("path-to-regexp"));
|
14
|
+
class RoutesFinder {
|
15
|
+
constructor(routes) {
|
16
|
+
/**
|
17
|
+
* Cache of existing matches to avoid regex tests on every
|
18
|
+
* single HTTP request
|
19
|
+
*/
|
20
|
+
_RoutesFinder_existingMatches.set(this, new Map()
|
21
|
+
/**
|
22
|
+
* Collection of registered routes
|
23
|
+
*/
|
24
|
+
);
|
25
|
+
/**
|
26
|
+
* Collection of registered routes
|
27
|
+
*/
|
28
|
+
_RoutesFinder_routes.set(this, []);
|
29
|
+
if (routes) {
|
30
|
+
routes.forEach((route) => this.add(route));
|
31
|
+
}
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Register route for lookup
|
35
|
+
*/
|
36
|
+
add(route) {
|
37
|
+
__classPrivateFieldGet(this, _RoutesFinder_routes, "f").push({
|
38
|
+
...route,
|
39
|
+
matchRegex: (0, path_to_regexp_1.default)(route.matcher),
|
40
|
+
});
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Get the matching route for a given HTTP method and URL
|
44
|
+
*/
|
45
|
+
find(url, method) {
|
46
|
+
const key = `${method}:${url}`;
|
47
|
+
if (__classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").has(key)) {
|
48
|
+
return __classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").get(key);
|
49
|
+
}
|
50
|
+
const result = __classPrivateFieldGet(this, _RoutesFinder_routes, "f").find((route) => {
|
51
|
+
if ("methods" in route) {
|
52
|
+
return route.methods.includes(method) && route.matchRegex.test(url);
|
53
|
+
}
|
54
|
+
return route.method === method && route.matchRegex.test(url);
|
55
|
+
}) ?? null;
|
56
|
+
__classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").set(key, result);
|
57
|
+
return result;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
exports.RoutesFinder = RoutesFinder;
|
61
|
+
_RoutesFinder_existingMatches = new WeakMap(), _RoutesFinder_routes = new WeakMap();
|
62
|
+
//# sourceMappingURL=routes-finder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"routes-finder.js","sourceRoot":"","sources":["../../src/http/routes-finder.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAyC;AAGzC,MAAa,YAAY;IAwBvB,YAAY,MAAY;QAnBxB;;;WAGG;QACH,wCAMI,IAAI,GAAG,EAAE;QAEb;;WAEG;UAJU;QAEb;;WAEG;QACH,+BAEO,EAAE,EAAA;QAGP,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAQ;QACV,uBAAA,IAAI,4BAAQ,CAAC,IAAI,CAAC;YAChB,GAAG,KAAK;YACR,UAAU,EAAE,IAAA,wBAAY,EAAC,KAAK,CAAC,OAAO,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,GAAW,EAAE,MAAsB;QACtC,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,CAAA;QAC9B,IAAI,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,MAAM,GACV,uBAAA,IAAI,4BAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9D,CAAC,CAAC,IAAI,IAAI,CAAA;QAEZ,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AA5DD,oCA4DC"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { type RouteDescriptor } from "./types";
|
2
|
+
/**
|
3
|
+
* Exposes to API to register routes manually or by scanning the filesystem from a
|
4
|
+
* source directory.
|
5
|
+
*
|
6
|
+
* In case of duplicates routes, the route registered afterwards will override the
|
7
|
+
* one registered first.
|
8
|
+
*/
|
9
|
+
export declare class RoutesLoader {
|
10
|
+
#private;
|
11
|
+
/**
|
12
|
+
* Scans a given directory and loads all routes from it. You can access the loaded
|
13
|
+
* routes via "getRoutes" method
|
14
|
+
*/
|
15
|
+
scanDir(sourceDir: string): Promise<void>;
|
16
|
+
/**
|
17
|
+
* Register a route
|
18
|
+
*/
|
19
|
+
registerRoute(route: RouteDescriptor): void;
|
20
|
+
/**
|
21
|
+
* Register one or more routes
|
22
|
+
*/
|
23
|
+
registerRoutes(routes: RouteDescriptor[]): void;
|
24
|
+
/**
|
25
|
+
* Returns an array of routes scanned by the routes loader or registered
|
26
|
+
* manually.
|
27
|
+
*/
|
28
|
+
getRoutes(): RouteDescriptor[];
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=routes-loader.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,eAAe,EAAkB,MAAM,SAAS,CAAA;AAqC5E;;;;;;GAMG;AACH,qBAAa,YAAY;;IAyGvB;;;OAGG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM;IA0C/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe;IAMpC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;IAIxC;;;OAGG;IACH,SAAS;CAaV"}
|
@@ -0,0 +1,203 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
6
|
+
};
|
7
|
+
var _RoutesLoader_instances, _RoutesLoader_routes, _RoutesLoader_createRoutePath, _RoutesLoader_getRoutesForFile;
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.RoutesLoader = void 0;
|
10
|
+
const utils_1 = require("@medusajs/utils");
|
11
|
+
const path_1 = require("path");
|
12
|
+
const logger_1 = require("../logger");
|
13
|
+
const types_1 = require("./types");
|
14
|
+
/**
|
15
|
+
* File name that is used to indicate that the file is a route file
|
16
|
+
*/
|
17
|
+
const ROUTE_NAME = "route";
|
18
|
+
/**
|
19
|
+
* Flag that developers can export from their route files to indicate
|
20
|
+
* whether or not the routes from this file should be authenticated.
|
21
|
+
*/
|
22
|
+
const AUTHTHENTICATION_FLAG = "AUTHENTICATE";
|
23
|
+
/**
|
24
|
+
* Flag that developers can export from their route files to indicate
|
25
|
+
* whether or not the routes from this file should implement CORS
|
26
|
+
* policy.
|
27
|
+
*/
|
28
|
+
const CORS_FLAG = "CORS";
|
29
|
+
/**
|
30
|
+
* The matcher to use to convert the dynamic params from the filesystem
|
31
|
+
* identifier to the express identifier.
|
32
|
+
*
|
33
|
+
* We capture all words under opening and closing brackets `[]` and mark
|
34
|
+
* it as a param via `:`.
|
35
|
+
*/
|
36
|
+
const PARAM_SEGMENT_MATCHER = /\[(\w+)\]/;
|
37
|
+
/**
|
38
|
+
* Regexes to use to identify if a route is prefixed
|
39
|
+
* with "/admin", "/store", or "/auth".
|
40
|
+
*/
|
41
|
+
const ADMIN_ROUTE_MATCH = /(\/admin$|\/admin\/)/;
|
42
|
+
const STORE_ROUTE_MATCH = /(\/store$|\/store\/)/;
|
43
|
+
const AUTH_ROUTE_MATCH = /(\/auth$|\/auth\/)/;
|
44
|
+
/**
|
45
|
+
* Exposes to API to register routes manually or by scanning the filesystem from a
|
46
|
+
* source directory.
|
47
|
+
*
|
48
|
+
* In case of duplicates routes, the route registered afterwards will override the
|
49
|
+
* one registered first.
|
50
|
+
*/
|
51
|
+
class RoutesLoader {
|
52
|
+
constructor() {
|
53
|
+
_RoutesLoader_instances.add(this);
|
54
|
+
/**
|
55
|
+
* Routes collected manually or by scanning directories
|
56
|
+
*/
|
57
|
+
_RoutesLoader_routes.set(this, {}
|
58
|
+
/**
|
59
|
+
* Creates the route path from its relative file path.
|
60
|
+
*/
|
61
|
+
);
|
62
|
+
}
|
63
|
+
/**
|
64
|
+
* Scans a given directory and loads all routes from it. You can access the loaded
|
65
|
+
* routes via "getRoutes" method
|
66
|
+
*/
|
67
|
+
async scanDir(sourceDir) {
|
68
|
+
const entries = await (0, utils_1.readDirRecursive)(sourceDir, {
|
69
|
+
ignoreMissing: true,
|
70
|
+
});
|
71
|
+
await Promise.all(entries
|
72
|
+
.filter((entry) => {
|
73
|
+
if (entry.isDirectory()) {
|
74
|
+
return false;
|
75
|
+
}
|
76
|
+
const { name, ext } = (0, path_1.parse)(entry.name);
|
77
|
+
if (name === ROUTE_NAME && [".js", ".ts"].includes(ext)) {
|
78
|
+
const routeFilePathSegment = (0, path_1.join)(entry.path, entry.name)
|
79
|
+
.replace(sourceDir, "")
|
80
|
+
.split(path_1.sep);
|
81
|
+
return !routeFilePathSegment.some((segment) => segment.startsWith("_"));
|
82
|
+
}
|
83
|
+
return false;
|
84
|
+
})
|
85
|
+
.map(async (entry) => {
|
86
|
+
const absolutePath = (0, path_1.join)(entry.path, entry.name);
|
87
|
+
const relativePath = absolutePath.replace(sourceDir, "");
|
88
|
+
const route = __classPrivateFieldGet(this, _RoutesLoader_instances, "m", _RoutesLoader_createRoutePath).call(this, relativePath);
|
89
|
+
const routes = await __classPrivateFieldGet(this, _RoutesLoader_instances, "m", _RoutesLoader_getRoutesForFile).call(this, route, absolutePath);
|
90
|
+
routes.forEach((routeConfig) => {
|
91
|
+
this.registerRoute({
|
92
|
+
absolutePath,
|
93
|
+
relativePath,
|
94
|
+
...routeConfig,
|
95
|
+
});
|
96
|
+
});
|
97
|
+
}));
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Register a route
|
101
|
+
*/
|
102
|
+
registerRoute(route) {
|
103
|
+
__classPrivateFieldGet(this, _RoutesLoader_routes, "f")[route.matcher] = __classPrivateFieldGet(this, _RoutesLoader_routes, "f")[route.matcher] ?? {};
|
104
|
+
const trackedRoute = __classPrivateFieldGet(this, _RoutesLoader_routes, "f")[route.matcher];
|
105
|
+
trackedRoute[route.method] = route;
|
106
|
+
}
|
107
|
+
/**
|
108
|
+
* Register one or more routes
|
109
|
+
*/
|
110
|
+
registerRoutes(routes) {
|
111
|
+
routes.forEach((route) => this.registerRoute(route));
|
112
|
+
}
|
113
|
+
/**
|
114
|
+
* Returns an array of routes scanned by the routes loader or registered
|
115
|
+
* manually.
|
116
|
+
*/
|
117
|
+
getRoutes() {
|
118
|
+
return Object.keys(__classPrivateFieldGet(this, _RoutesLoader_routes, "f")).reduce((result, routePattern) => {
|
119
|
+
const methodsRoutes = __classPrivateFieldGet(this, _RoutesLoader_routes, "f")[routePattern];
|
120
|
+
Object.keys(methodsRoutes).forEach((method) => {
|
121
|
+
const route = methodsRoutes[method];
|
122
|
+
result.push(route);
|
123
|
+
});
|
124
|
+
return result;
|
125
|
+
}, []);
|
126
|
+
}
|
127
|
+
}
|
128
|
+
exports.RoutesLoader = RoutesLoader;
|
129
|
+
_RoutesLoader_routes = new WeakMap(), _RoutesLoader_instances = new WeakSet(), _RoutesLoader_createRoutePath = function _RoutesLoader_createRoutePath(relativePath) {
|
130
|
+
const segments = relativePath.replace(/route(\.js|\.ts)$/, "").split(path_1.sep);
|
131
|
+
const params = {};
|
132
|
+
return `/${segments
|
133
|
+
.filter((segment) => !!segment)
|
134
|
+
.map((segment) => {
|
135
|
+
if (segment.startsWith("[")) {
|
136
|
+
segment = segment.replace(PARAM_SEGMENT_MATCHER, (_, group) => {
|
137
|
+
if (params[group]) {
|
138
|
+
logger_1.logger.debug(`Duplicate parameters found in route ${relativePath} (${group})`);
|
139
|
+
throw new Error(`Duplicate parameters found in route ${relativePath} (${group}). Make sure that all parameters are unique.`);
|
140
|
+
}
|
141
|
+
params[group] = true;
|
142
|
+
return `:${group}`;
|
143
|
+
});
|
144
|
+
}
|
145
|
+
return segment;
|
146
|
+
})
|
147
|
+
.join("/")}`;
|
148
|
+
}, _RoutesLoader_getRoutesForFile =
|
149
|
+
/**
|
150
|
+
* Returns the route config by exporting the route file and parsing
|
151
|
+
* its exports
|
152
|
+
*/
|
153
|
+
async function _RoutesLoader_getRoutesForFile(routePath, absolutePath) {
|
154
|
+
const routeExports = await (0, utils_1.dynamicImport)(absolutePath);
|
155
|
+
/**
|
156
|
+
* Find the route type based upon its prefix.
|
157
|
+
*/
|
158
|
+
const routeType = ADMIN_ROUTE_MATCH.test(routePath)
|
159
|
+
? "admin"
|
160
|
+
: STORE_ROUTE_MATCH.test(routePath)
|
161
|
+
? "store"
|
162
|
+
: AUTH_ROUTE_MATCH.test(routePath)
|
163
|
+
? "auth"
|
164
|
+
: undefined;
|
165
|
+
/**
|
166
|
+
* Check if the route file has decided to opt-out of authentication
|
167
|
+
*/
|
168
|
+
const shouldAuthenticate = AUTHTHENTICATION_FLAG in routeExports
|
169
|
+
? !!routeExports[AUTHTHENTICATION_FLAG]
|
170
|
+
: true;
|
171
|
+
/**
|
172
|
+
* Check if the route file has decided to opt-out of CORS
|
173
|
+
*/
|
174
|
+
const shouldApplyCors = CORS_FLAG in routeExports ? !!routeExports[CORS_FLAG] : true;
|
175
|
+
/**
|
176
|
+
* Loop over all the exports and collect functions that are exported
|
177
|
+
* with names after HTTP methods.
|
178
|
+
*/
|
179
|
+
return Object.keys(routeExports)
|
180
|
+
.filter((key) => {
|
181
|
+
if (typeof routeExports[key] !== "function") {
|
182
|
+
return false;
|
183
|
+
}
|
184
|
+
if (!types_1.HTTP_METHODS.includes(key)) {
|
185
|
+
logger_1.logger.debug(`Skipping handler ${key} in ${absolutePath}. Invalid HTTP method: ${key}.`);
|
186
|
+
return false;
|
187
|
+
}
|
188
|
+
return true;
|
189
|
+
})
|
190
|
+
.map((key) => {
|
191
|
+
return {
|
192
|
+
isRoute: true,
|
193
|
+
matcher: routePath,
|
194
|
+
method: key,
|
195
|
+
handler: routeExports[key],
|
196
|
+
optedOutOfAuth: !shouldAuthenticate,
|
197
|
+
shouldAppendAdminCors: shouldApplyCors && routeType === "admin",
|
198
|
+
shouldAppendAuthCors: shouldApplyCors && routeType === "auth",
|
199
|
+
shouldAppendStoreCors: shouldApplyCors && routeType === "store",
|
200
|
+
};
|
201
|
+
});
|
202
|
+
};
|
203
|
+
//# sourceMappingURL=routes-loader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"routes-loader.js","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import { MiddlewareVerb, RouteVerb } from "./types";
|
2
|
+
/**
|
3
|
+
* Route represents both the middleware/routes defined via the
|
4
|
+
* "defineMiddlewares" method and the routes scanned from
|
5
|
+
* the filesystem.
|
6
|
+
*/
|
7
|
+
type Route = {
|
8
|
+
/**
|
9
|
+
* The route path.
|
10
|
+
*/
|
11
|
+
matcher: string;
|
12
|
+
/**
|
13
|
+
* Function to handle the request
|
14
|
+
*/
|
15
|
+
handler?: any;
|
16
|
+
/**
|
17
|
+
* The HTTP method specified as a single value
|
18
|
+
*/
|
19
|
+
method?: RouteVerb;
|
20
|
+
/**
|
21
|
+
* The HTTP methods this route is supposed to handle.
|
22
|
+
*/
|
23
|
+
methods?: MiddlewareVerb | MiddlewareVerb[];
|
24
|
+
};
|
25
|
+
/**
|
26
|
+
* RoutesBranch represents a branch in a tree of routes. All routes are
|
27
|
+
* part of a node in a branch. Following is the list of nodes a branch
|
28
|
+
* can have.
|
29
|
+
*
|
30
|
+
* - global: Global routes for the current branch
|
31
|
+
* - regex: Routes using Regex patterns for the current branch
|
32
|
+
* - wildcard: Routes using the wildcard character for the current branch
|
33
|
+
* - params: Routes using params for the current branch
|
34
|
+
* - static: Routes with no dynamic segments for the current branch
|
35
|
+
*
|
36
|
+
* We separate routes under these nodes, so that we can register them with
|
37
|
+
* their priority. Priorities are as follows:
|
38
|
+
*
|
39
|
+
* - global
|
40
|
+
* - regex
|
41
|
+
* - wildcard
|
42
|
+
* - static
|
43
|
+
* - params
|
44
|
+
*/
|
45
|
+
type RoutesBranch<T extends Route> = {
|
46
|
+
global: {
|
47
|
+
routes: T[];
|
48
|
+
children?: {
|
49
|
+
[segment: string]: RoutesBranch<T>;
|
50
|
+
};
|
51
|
+
};
|
52
|
+
regex: {
|
53
|
+
routes: T[];
|
54
|
+
children?: {
|
55
|
+
[segment: string]: RoutesBranch<T>;
|
56
|
+
};
|
57
|
+
};
|
58
|
+
wildcard: {
|
59
|
+
routes: T[];
|
60
|
+
children?: {
|
61
|
+
[segment: string]: RoutesBranch<T>;
|
62
|
+
};
|
63
|
+
};
|
64
|
+
params: {
|
65
|
+
routes: T[];
|
66
|
+
children?: {
|
67
|
+
[segment: string]: RoutesBranch<T>;
|
68
|
+
};
|
69
|
+
};
|
70
|
+
static: {
|
71
|
+
routes: T[];
|
72
|
+
children?: {
|
73
|
+
[segment: string]: RoutesBranch<T>;
|
74
|
+
};
|
75
|
+
};
|
76
|
+
};
|
77
|
+
/**
|
78
|
+
* RoutesSorter exposes the API to sort middleware and inApp route handlers
|
79
|
+
* by their priorities. The class converts an array of matchers to a tree
|
80
|
+
* like structure and then sort them back to a flat array based upon the
|
81
|
+
* priorities of different types of nodes.
|
82
|
+
*/
|
83
|
+
export declare class RoutesSorter<T extends Route> {
|
84
|
+
#private;
|
85
|
+
constructor(routes: T[]);
|
86
|
+
/**
|
87
|
+
* Returns the intermediate representation of routes as a tree.
|
88
|
+
*/
|
89
|
+
getTree(): {
|
90
|
+
[segment: string]: RoutesBranch<T>;
|
91
|
+
};
|
92
|
+
/**
|
93
|
+
* Sort the input routes. You can optionally specify a custom
|
94
|
+
* orderBy array. Defaults to: ["global", "wildcard", "regex", "static", "params"]
|
95
|
+
*/
|
96
|
+
sort(orderBy?: [
|
97
|
+
keyof RoutesBranch<T>,
|
98
|
+
keyof RoutesBranch<T>,
|
99
|
+
keyof RoutesBranch<T>,
|
100
|
+
keyof RoutesBranch<T>,
|
101
|
+
keyof RoutesBranch<T>
|
102
|
+
]): T[];
|
103
|
+
}
|
104
|
+
export {};
|
105
|
+
//# sourceMappingURL=routes-sorter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"routes-sorter.d.ts","sourceRoot":"","sources":["../../src/http/routes-sorter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnD;;;;GAIG;AACH,KAAK,KAAK,GAAG;IACX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAA;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;CAC5C,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,KAAK,IAAI;IACnC,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,EAAE,CAAA;QACX,QAAQ,CAAC,EAAE;YACT,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;IAED,KAAK,EAAE;QACL,MAAM,EAAE,CAAC,EAAE,CAAA;QACX,QAAQ,CAAC,EAAE;YACT,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;IAED,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,EAAE,CAAA;QACX,QAAQ,CAAC,EAAE;YACT,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;IAED,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,EAAE,CAAA;QACX,QAAQ,CAAC,EAAE;YACT,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;IAED,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,EAAE,CAAA;QACX,QAAQ,CAAC,EAAE;YACT,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;SACnC,CAAA;KACF,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,KAAK;;gBA4B3B,MAAM,EAAE,CAAC,EAAE;IA2JvB;;OAEG;IACH,OAAO;;;IAIP;;;OAGG;IACH,IAAI,CACF,OAAO,CAAC,EAAE;QACR,MAAM,YAAY,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,CAAC,CAAC,CAAC;QACrB,MAAM,YAAY,CAAC,CAAC,CAAC;KACtB;CAKJ"}
|
@@ -0,0 +1,146 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
7
|
+
};
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
12
|
+
};
|
13
|
+
var _RoutesSorter_instances, _RoutesSorter_orderBy, _RoutesSorter_routesToProcess, _RoutesSorter_routesTree, _RoutesSorter_createBranch, _RoutesSorter_processRoute, _RoutesSorter_sortBranch;
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.RoutesSorter = void 0;
|
16
|
+
/**
|
17
|
+
* RoutesSorter exposes the API to sort middleware and inApp route handlers
|
18
|
+
* by their priorities. The class converts an array of matchers to a tree
|
19
|
+
* like structure and then sort them back to a flat array based upon the
|
20
|
+
* priorities of different types of nodes.
|
21
|
+
*/
|
22
|
+
class RoutesSorter {
|
23
|
+
constructor(routes) {
|
24
|
+
_RoutesSorter_instances.add(this);
|
25
|
+
/**
|
26
|
+
* The order in which the routes will be sorted. This
|
27
|
+
* can be overridden at the time of call the sort
|
28
|
+
* method.
|
29
|
+
*/
|
30
|
+
_RoutesSorter_orderBy.set(this, ["global", "wildcard", "regex", "static", "params"]
|
31
|
+
/**
|
32
|
+
* Input routes
|
33
|
+
*/
|
34
|
+
);
|
35
|
+
/**
|
36
|
+
* Input routes
|
37
|
+
*/
|
38
|
+
_RoutesSorter_routesToProcess.set(this, void 0);
|
39
|
+
/**
|
40
|
+
* Intermediate tree representation for sorting routes
|
41
|
+
*/
|
42
|
+
_RoutesSorter_routesTree.set(this, {
|
43
|
+
root: __classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_createBranch).call(this),
|
44
|
+
});
|
45
|
+
__classPrivateFieldSet(this, _RoutesSorter_routesToProcess, routes, "f");
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* Returns the intermediate representation of routes as a tree.
|
49
|
+
*/
|
50
|
+
getTree() {
|
51
|
+
return __classPrivateFieldGet(this, _RoutesSorter_routesTree, "f");
|
52
|
+
}
|
53
|
+
/**
|
54
|
+
* Sort the input routes. You can optionally specify a custom
|
55
|
+
* orderBy array. Defaults to: ["global", "wildcard", "regex", "static", "params"]
|
56
|
+
*/
|
57
|
+
sort(orderBy) {
|
58
|
+
__classPrivateFieldGet(this, _RoutesSorter_routesToProcess, "f").map((route) => __classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_processRoute).call(this, route));
|
59
|
+
return __classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, __classPrivateFieldGet(this, _RoutesSorter_routesTree, "f"), orderBy ?? __classPrivateFieldGet(this, _RoutesSorter_orderBy, "f"));
|
60
|
+
}
|
61
|
+
}
|
62
|
+
exports.RoutesSorter = RoutesSorter;
|
63
|
+
_RoutesSorter_orderBy = new WeakMap(), _RoutesSorter_routesToProcess = new WeakMap(), _RoutesSorter_routesTree = new WeakMap(), _RoutesSorter_instances = new WeakSet(), _RoutesSorter_createBranch = function _RoutesSorter_createBranch() {
|
64
|
+
return {
|
65
|
+
global: {
|
66
|
+
routes: [],
|
67
|
+
},
|
68
|
+
regex: {
|
69
|
+
routes: [],
|
70
|
+
},
|
71
|
+
wildcard: {
|
72
|
+
routes: [],
|
73
|
+
},
|
74
|
+
static: {
|
75
|
+
routes: [],
|
76
|
+
},
|
77
|
+
params: {
|
78
|
+
routes: [],
|
79
|
+
},
|
80
|
+
};
|
81
|
+
}, _RoutesSorter_processRoute = function _RoutesSorter_processRoute(route) {
|
82
|
+
const segments = route.matcher.split("/").filter((s) => s.length);
|
83
|
+
let parent = __classPrivateFieldGet(this, _RoutesSorter_routesTree, "f")["root"];
|
84
|
+
segments.forEach((segment, index) => {
|
85
|
+
let bucket = "static";
|
86
|
+
if (!route.methods && !route.method) {
|
87
|
+
bucket = "global";
|
88
|
+
}
|
89
|
+
else if (segment.startsWith("*")) {
|
90
|
+
bucket = "wildcard";
|
91
|
+
}
|
92
|
+
else if (segment.startsWith(":")) {
|
93
|
+
bucket = "params";
|
94
|
+
}
|
95
|
+
else if (/[\(\+\*\[\]\)\!]/.test(segment)) {
|
96
|
+
bucket = "regex";
|
97
|
+
}
|
98
|
+
if (index + 1 === segments.length) {
|
99
|
+
parent[bucket].routes.push(route);
|
100
|
+
return;
|
101
|
+
}
|
102
|
+
parent[bucket].children = parent[bucket].children ?? {};
|
103
|
+
parent[bucket].children[segment] =
|
104
|
+
parent[bucket].children[segment] ?? __classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_createBranch).call(this);
|
105
|
+
parent = parent[bucket].children[segment];
|
106
|
+
});
|
107
|
+
}, _RoutesSorter_sortBranch = function _RoutesSorter_sortBranch(routeBranch, orderBy) {
|
108
|
+
const branchRoutes = Object.keys(routeBranch).reduce((result, branchKey) => {
|
109
|
+
const node = routeBranch[branchKey];
|
110
|
+
result.global.push(...node.global.routes);
|
111
|
+
if (node.global.children) {
|
112
|
+
result.global.push(...__classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, node.global.children, orderBy));
|
113
|
+
}
|
114
|
+
result.wildcard.push(...node.wildcard.routes);
|
115
|
+
if (node.wildcard.children) {
|
116
|
+
result.wildcard.push(...__classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, node.wildcard.children, orderBy));
|
117
|
+
}
|
118
|
+
result.regex.push(...node.regex.routes);
|
119
|
+
if (node.regex.children) {
|
120
|
+
result.regex.push(...__classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, node.regex.children, orderBy));
|
121
|
+
}
|
122
|
+
result.static.push(...node.static.routes);
|
123
|
+
if (node.static.children) {
|
124
|
+
result.static.push(...__classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, node.static.children, orderBy));
|
125
|
+
}
|
126
|
+
result.params.push(...node.params.routes);
|
127
|
+
if (node.params.children) {
|
128
|
+
result.params.push(...__classPrivateFieldGet(this, _RoutesSorter_instances, "m", _RoutesSorter_sortBranch).call(this, node.params.children, orderBy));
|
129
|
+
}
|
130
|
+
return result;
|
131
|
+
}, {
|
132
|
+
global: [],
|
133
|
+
wildcard: [],
|
134
|
+
regex: [],
|
135
|
+
params: [],
|
136
|
+
static: [],
|
137
|
+
});
|
138
|
+
/**
|
139
|
+
* Concatenating routes as per their priority.
|
140
|
+
*/
|
141
|
+
return orderBy.reduce((result, branch) => {
|
142
|
+
result = result.concat(branchRoutes[branch]);
|
143
|
+
return result;
|
144
|
+
}, []);
|
145
|
+
};
|
146
|
+
//# sourceMappingURL=routes-sorter.js.map
|