@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.
Files changed (93) hide show
  1. package/dist/build-tools/compiler.d.ts +2 -1
  2. package/dist/build-tools/compiler.d.ts.map +1 -1
  3. package/dist/build-tools/compiler.js +13 -7
  4. package/dist/build-tools/compiler.js.map +1 -1
  5. package/dist/config/types.d.ts +25 -1
  6. package/dist/config/types.d.ts.map +1 -1
  7. package/dist/database/pg-connection-loader.d.ts.map +1 -1
  8. package/dist/database/pg-connection-loader.js +7 -1
  9. package/dist/database/pg-connection-loader.js.map +1 -1
  10. package/dist/http/express-loader.d.ts.map +1 -1
  11. package/dist/http/express-loader.js +42 -9
  12. package/dist/http/express-loader.js.map +1 -1
  13. package/dist/http/middleware-file-loader.d.ts +28 -0
  14. package/dist/http/middleware-file-loader.d.ts.map +1 -0
  15. package/dist/http/middleware-file-loader.js +140 -0
  16. package/dist/http/middleware-file-loader.js.map +1 -0
  17. package/dist/http/middlewares/apply-default-filters.d.ts +2 -2
  18. package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -1
  19. package/dist/http/middlewares/apply-default-filters.js +1 -1
  20. package/dist/http/middlewares/apply-default-filters.js.map +1 -1
  21. package/dist/http/middlewares/apply-params-as-filters.d.ts +2 -2
  22. package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -1
  23. package/dist/http/middlewares/apply-params-as-filters.js +1 -1
  24. package/dist/http/middlewares/apply-params-as-filters.js.map +1 -1
  25. package/dist/http/middlewares/authenticate-middleware.d.ts +2 -0
  26. package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -1
  27. package/dist/http/middlewares/authenticate-middleware.js +3 -2
  28. package/dist/http/middlewares/authenticate-middleware.js.map +1 -1
  29. package/dist/http/middlewares/bodyparser.d.ts +13 -0
  30. package/dist/http/middlewares/bodyparser.d.ts.map +1 -0
  31. package/dist/http/middlewares/bodyparser.js +62 -0
  32. package/dist/http/middlewares/bodyparser.js.map +1 -0
  33. package/dist/http/middlewares/clear-filters-by-key.d.ts +2 -2
  34. package/dist/http/middlewares/clear-filters-by-key.d.ts.map +1 -1
  35. package/dist/http/middlewares/clear-filters-by-key.js +1 -1
  36. package/dist/http/middlewares/clear-filters-by-key.js.map +1 -1
  37. package/dist/http/middlewares/ensure-publishable-api-key.d.ts +2 -2
  38. package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -1
  39. package/dist/http/middlewares/ensure-publishable-api-key.js +3 -7
  40. package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -1
  41. package/dist/http/middlewares/error-handler.d.ts +2 -4
  42. package/dist/http/middlewares/error-handler.d.ts.map +1 -1
  43. package/dist/http/middlewares/error-handler.js +1 -1
  44. package/dist/http/middlewares/error-handler.js.map +1 -1
  45. package/dist/http/router.d.ts +4 -76
  46. package/dist/http/router.d.ts.map +1 -1
  47. package/dist/http/router.js +175 -717
  48. package/dist/http/router.js.map +1 -1
  49. package/dist/http/routes-finder.d.ts +22 -0
  50. package/dist/http/routes-finder.d.ts.map +1 -0
  51. package/dist/http/routes-finder.js +62 -0
  52. package/dist/http/routes-finder.js.map +1 -0
  53. package/dist/http/routes-loader.d.ts +30 -0
  54. package/dist/http/routes-loader.d.ts.map +1 -0
  55. package/dist/http/routes-loader.js +203 -0
  56. package/dist/http/routes-loader.js.map +1 -0
  57. package/dist/http/routes-sorter.d.ts +105 -0
  58. package/dist/http/routes-sorter.d.ts.map +1 -0
  59. package/dist/http/routes-sorter.js +146 -0
  60. package/dist/http/routes-sorter.js.map +1 -0
  61. package/dist/http/types.d.ts +33 -17
  62. package/dist/http/types.d.ts.map +1 -1
  63. package/dist/http/utils/define-middlewares.d.ts +4 -0
  64. package/dist/http/utils/define-middlewares.d.ts.map +1 -1
  65. package/dist/http/utils/define-middlewares.js +5 -1
  66. package/dist/http/utils/define-middlewares.js.map +1 -1
  67. package/dist/http/utils/maybe-apply-link-filter.d.ts +2 -2
  68. package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -1
  69. package/dist/http/utils/maybe-apply-link-filter.js.map +1 -1
  70. package/dist/http/utils/wrap-handler.d.ts +3 -0
  71. package/dist/http/utils/wrap-handler.d.ts.map +1 -0
  72. package/dist/http/utils/wrap-handler.js +27 -0
  73. package/dist/http/utils/wrap-handler.js.map +1 -0
  74. package/dist/jobs/job-loader.d.ts +9 -4
  75. package/dist/jobs/job-loader.d.ts.map +1 -1
  76. package/dist/jobs/job-loader.js +15 -67
  77. package/dist/jobs/job-loader.js.map +1 -1
  78. package/dist/medusa-app-loader.d.ts.map +1 -1
  79. package/dist/medusa-app-loader.js +4 -0
  80. package/dist/medusa-app-loader.js.map +1 -1
  81. package/dist/subscribers/subscriber-loader.d.ts +4 -3
  82. package/dist/subscribers/subscriber-loader.d.ts.map +1 -1
  83. package/dist/subscribers/subscriber-loader.js +18 -67
  84. package/dist/subscribers/subscriber-loader.js.map +1 -1
  85. package/dist/utils/resource-loader.d.ts +26 -0
  86. package/dist/utils/resource-loader.d.ts.map +1 -0
  87. package/dist/utils/resource-loader.js +78 -0
  88. package/dist/utils/resource-loader.js.map +1 -0
  89. package/dist/workflows/workflow-loader.d.ts +4 -2
  90. package/dist/workflows/workflow-loader.d.ts.map +1 -1
  91. package/dist/workflows/workflow-loader.js +8 -58
  92. package/dist/workflows/workflow-loader.js.map +1 -1
  93. package/package.json +12 -11
@@ -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":"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"}
@@ -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