qumra-engine 2.0.144 → 2.0.146

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 (298) hide show
  1. package/dist/config/initClient.d.ts +0 -0
  2. package/dist/config/initClient.js +46 -0
  3. package/dist/config/logger.d.ts +0 -0
  4. package/dist/config/logger.js +75 -0
  5. package/dist/controllers/article/create-comment.controller.d.ts +2 -0
  6. package/dist/controllers/article/create-comment.controller.js +17 -0
  7. package/dist/controllers/auth/activate-password-backignore.controller.d.ts +2 -0
  8. package/dist/controllers/auth/activate-password-backignore.controller.js +25 -0
  9. package/dist/controllers/auth/create-customer.controller.d.ts +2 -0
  10. package/dist/controllers/auth/create-customer.controller.js +24 -0
  11. package/dist/controllers/auth/customer-address.controller.d.ts +2 -0
  12. package/dist/controllers/auth/customer-address.controller.js +20 -0
  13. package/dist/controllers/auth/customer-login-verify.controller.d.ts +2 -0
  14. package/dist/controllers/auth/customer-login-verify.controller.js +21 -0
  15. package/dist/controllers/auth/customer-login.controller.d.ts +2 -0
  16. package/dist/controllers/auth/customer-login.controller.js +23 -0
  17. package/dist/controllers/auth/customer.controller.d.ts +2 -0
  18. package/dist/controllers/auth/customer.controller.js +25 -0
  19. package/dist/controllers/auth/guest-login-backignore.controller.d.ts +2 -0
  20. package/dist/controllers/auth/guest-login-backignore.controller.js +25 -0
  21. package/dist/controllers/auth/recover-password-backignore.controller.d.ts +2 -0
  22. package/dist/controllers/auth/recover-password-backignore.controller.js +26 -0
  23. package/dist/controllers/auth/reset-password-backignore.controller.d.ts +2 -0
  24. package/dist/controllers/auth/reset-password-backignore.controller.js +25 -0
  25. package/dist/controllers/auth/storefront-password-backignore.controller.d.ts +2 -0
  26. package/dist/controllers/auth/storefront-password-backignore.controller.js +25 -0
  27. package/dist/controllers/cart/add-to-cart.controller.d.ts +2 -0
  28. package/dist/controllers/cart/add-to-cart.controller.js +20 -0
  29. package/dist/controllers/cart/update-cart.controller.d.ts +2 -0
  30. package/dist/controllers/cart/update-cart.controller.js +26 -0
  31. package/dist/controllers/checkout/checkout.controller.d.ts +2 -0
  32. package/dist/controllers/checkout/checkout.controller.js +23 -0
  33. package/dist/controllers/contact/contact.controller.d.ts +2 -0
  34. package/dist/controllers/contact/contact.controller.js +20 -0
  35. package/dist/controllers/localize/currency.controller.d.ts +2 -0
  36. package/dist/controllers/localize/currency.controller.js +17 -0
  37. package/dist/controllers/localize/lang.controller.d.ts +2 -0
  38. package/dist/controllers/localize/lang.controller.js +18 -0
  39. package/dist/controllers/localize/market.controller.d.ts +2 -0
  40. package/dist/controllers/localize/market.controller.js +17 -0
  41. package/dist/extensions/Iteration/break.d.ts +9 -0
  42. package/dist/extensions/Iteration/break.js +23 -0
  43. package/dist/extensions/Iteration/continue.d.ts +2 -0
  44. package/dist/extensions/Iteration/continue.js +10 -0
  45. package/dist/extensions/{logic/form.d.ts → Iteration/cycle.d.ts} +1 -2
  46. package/dist/extensions/Iteration/cycle.js +26 -0
  47. package/dist/extensions/Iteration/forx.d.ts +6 -0
  48. package/dist/extensions/Iteration/forx.js +69 -0
  49. package/dist/extensions/Iteration/index.d.ts +2 -0
  50. package/dist/extensions/Iteration/index.js +10 -0
  51. package/dist/extensions/html/form.d.ts +13 -0
  52. package/dist/extensions/html/form.js +77 -0
  53. package/dist/extensions/html/index.d.ts +2 -0
  54. package/dist/extensions/html/index.js +10 -0
  55. package/dist/extensions/html/style.d.ts +7 -0
  56. package/dist/extensions/html/style.js +26 -0
  57. package/dist/extensions/index.d.ts +3 -11
  58. package/dist/extensions/index.js +16 -25
  59. package/dist/extensions/logic/all_products.d.ts +6 -0
  60. package/dist/extensions/logic/all_products.js +55 -0
  61. package/dist/extensions/logic/content.js +3 -0
  62. package/dist/extensions/logic/echo.d.ts +7 -0
  63. package/dist/extensions/logic/echo.js +22 -0
  64. package/dist/extensions/logic/index.d.ts +12 -0
  65. package/dist/extensions/logic/index.js +31 -0
  66. package/dist/extensions/logic/log.d.ts +6 -0
  67. package/dist/extensions/logic/log.js +26 -0
  68. package/dist/extensions/logic/seo.js +0 -2
  69. package/dist/extensions/logic/template.js +3 -0
  70. package/dist/extensions/logic/ui.js +4 -1
  71. package/dist/extensions/registerAllExtensions.d.ts +1 -1
  72. package/dist/extensions/registerAllExtensions.js +7 -5
  73. package/dist/filters/index.d.ts +10 -10
  74. package/dist/filters/index.js +25 -21
  75. package/dist/filters/logic/array/find_index.d.ts +1 -0
  76. package/dist/filters/logic/array/find_index.js +8 -0
  77. package/dist/filters/logic/array/has.d.ts +1 -0
  78. package/dist/filters/logic/array/has.js +9 -0
  79. package/dist/filters/logic/array/index.d.ts +19 -0
  80. package/dist/filters/logic/array/index.js +44 -0
  81. package/dist/filters/logic/array/map.d.ts +1 -0
  82. package/dist/filters/logic/array/map.js +9 -0
  83. package/dist/filters/logic/array/reject.d.ts +1 -0
  84. package/dist/filters/logic/array/reject.js +15 -0
  85. package/dist/filters/logic/array/reverse.d.ts +1 -0
  86. package/dist/filters/logic/array/reverse.js +9 -0
  87. package/dist/filters/logic/array/sort.d.ts +1 -0
  88. package/dist/filters/logic/array/sort.js +20 -0
  89. package/dist/filters/logic/array/sort_natural.d.ts +1 -0
  90. package/dist/filters/logic/array/sort_natural.js +20 -0
  91. package/dist/filters/logic/array/sum.d.ts +1 -0
  92. package/dist/filters/logic/array/sum.js +9 -0
  93. package/dist/filters/logic/array/uniq.d.ts +1 -0
  94. package/dist/filters/logic/array/uniq.js +9 -0
  95. package/dist/filters/logic/array/uniq_by.d.ts +1 -0
  96. package/dist/filters/logic/array/uniq_by.js +29 -0
  97. package/dist/filters/logic/cart/index.d.ts +2 -0
  98. package/dist/filters/logic/cart/index.js +10 -0
  99. package/dist/filters/logic/cart/item_count_for_variant.d.ts +1 -0
  100. package/dist/filters/logic/cart/item_count_for_variant.js +11 -0
  101. package/dist/filters/logic/cart/line_items_for.d.ts +1 -0
  102. package/dist/filters/logic/cart/line_items_for.js +15 -0
  103. package/dist/filters/logic/colors/brightness_difference.d.ts +1 -0
  104. package/dist/filters/logic/colors/brightness_difference.js +12 -0
  105. package/dist/filters/logic/colors/color_brightness.d.ts +1 -0
  106. package/dist/filters/logic/colors/color_brightness.js +7 -0
  107. package/dist/filters/logic/colors/color_contrast.d.ts +1 -0
  108. package/dist/filters/logic/colors/color_contrast.js +12 -0
  109. package/dist/filters/logic/colors/color_darken.d.ts +1 -0
  110. package/dist/filters/logic/colors/color_darken.js +7 -0
  111. package/dist/filters/logic/colors/color_desaturate.d.ts +1 -0
  112. package/dist/filters/logic/colors/color_desaturate.js +7 -0
  113. package/dist/filters/logic/colors/color_difference.d.ts +1 -0
  114. package/dist/filters/logic/colors/color_difference.js +12 -0
  115. package/dist/filters/logic/colors/color_extract.d.ts +1 -0
  116. package/dist/filters/logic/colors/color_extract.js +22 -0
  117. package/dist/filters/logic/colors/color_lighten.d.ts +1 -0
  118. package/dist/filters/logic/colors/color_lighten.js +7 -0
  119. package/dist/filters/logic/colors/color_mix.d.ts +1 -0
  120. package/dist/filters/logic/colors/color_mix.js +12 -0
  121. package/dist/filters/logic/colors/color_modify.d.ts +1 -0
  122. package/dist/filters/logic/colors/color_modify.js +26 -0
  123. package/dist/filters/logic/colors/color_saturate.d.ts +1 -0
  124. package/dist/filters/logic/colors/color_saturate.js +7 -0
  125. package/dist/filters/logic/colors/color_to_hsl.d.ts +1 -0
  126. package/dist/filters/logic/colors/color_to_hsl.js +7 -0
  127. package/dist/filters/logic/colors/color_to_oklch.d.ts +1 -0
  128. package/dist/filters/logic/colors/color_to_oklch.js +12 -0
  129. package/dist/filters/logic/colors/color_to_rgb.d.ts +1 -0
  130. package/dist/filters/logic/colors/color_to_rgb.js +7 -0
  131. package/dist/filters/logic/colors/hex_to_rgba.d.ts +1 -0
  132. package/dist/filters/logic/colors/hex_to_rgba.js +7 -0
  133. package/dist/filters/logic/colors/index.d.ts +16 -0
  134. package/dist/filters/logic/colors/index.js +38 -0
  135. package/dist/filters/logic/customer/customer_login_link.d.ts +2 -0
  136. package/dist/filters/logic/customer/customer_login_link.js +10 -0
  137. package/dist/filters/logic/customer/customer_logout_link.d.ts +2 -0
  138. package/dist/filters/logic/customer/customer_logout_link.js +10 -0
  139. package/dist/filters/logic/customer/customer_register_link.d.ts +2 -0
  140. package/dist/filters/logic/customer/customer_register_link.js +10 -0
  141. package/dist/filters/logic/customer/index.d.ts +4 -0
  142. package/dist/filters/logic/customer/index.js +14 -0
  143. package/dist/filters/logic/customer/login_button.d.ts +7 -0
  144. package/dist/filters/logic/customer/login_button.js +39 -0
  145. package/dist/filters/logic/default/default_pagination.d.ts +10 -0
  146. package/dist/filters/logic/default/default_pagination.js +41 -0
  147. package/dist/filters/logic/default/index.d.ts +1 -0
  148. package/dist/filters/logic/default/index.js +8 -0
  149. package/dist/filters/logic/format/date.d.ts +1 -0
  150. package/dist/filters/logic/format/date.js +13 -0
  151. package/dist/filters/logic/format/index.d.ts +4 -0
  152. package/dist/filters/logic/format/index.js +14 -0
  153. package/dist/filters/logic/format/structured_data.d.ts +2 -0
  154. package/dist/filters/logic/format/structured_data.js +11 -0
  155. package/dist/filters/logic/format/unit_price_with_measurement.d.ts +1 -0
  156. package/dist/filters/logic/format/unit_price_with_measurement.js +9 -0
  157. package/dist/filters/logic/format/weight_with_unit.d.ts +1 -0
  158. package/dist/filters/logic/format/weight_with_unit.js +12 -0
  159. package/dist/filters/logic/html/highlight.d.ts +1 -0
  160. package/dist/filters/logic/html/highlight.js +22 -0
  161. package/dist/filters/logic/html/index.d.ts +7 -0
  162. package/dist/filters/logic/html/index.js +20 -0
  163. package/dist/filters/logic/html/link_to.d.ts +8 -0
  164. package/dist/filters/logic/html/link_to.js +30 -0
  165. package/dist/filters/logic/html/placeholder_svg_tag.d.ts +7 -0
  166. package/dist/filters/logic/html/placeholder_svg_tag.js +28 -0
  167. package/dist/filters/logic/html/preload_tag.d.ts +7 -0
  168. package/dist/filters/logic/html/preload_tag.js +27 -0
  169. package/dist/filters/logic/html/script_tag.d.ts +7 -0
  170. package/dist/filters/logic/html/script_tag.js +30 -0
  171. package/dist/filters/logic/html/stylesheet_tag.d.ts +8 -0
  172. package/dist/filters/logic/html/stylesheet_tag.js +29 -0
  173. package/dist/filters/logic/html/time_tag.d.ts +7 -0
  174. package/dist/filters/logic/html/time_tag.js +28 -0
  175. package/dist/filters/logic/localization/currency_selector.d.ts +7 -0
  176. package/dist/filters/logic/localization/currency_selector.js +54 -0
  177. package/dist/filters/logic/localization/format_address.d.ts +13 -0
  178. package/dist/filters/logic/localization/format_address.js +51 -0
  179. package/dist/filters/logic/localization/index.d.ts +2 -0
  180. package/dist/filters/logic/localization/index.js +10 -0
  181. package/dist/filters/logic/math/abs.d.ts +1 -0
  182. package/dist/filters/logic/math/abs.js +9 -0
  183. package/dist/filters/logic/math/at_least.d.ts +1 -0
  184. package/dist/filters/logic/math/at_least.js +10 -0
  185. package/dist/filters/logic/math/at_most.d.ts +1 -0
  186. package/dist/filters/logic/math/at_most.js +10 -0
  187. package/dist/filters/logic/math/ceil.d.ts +1 -0
  188. package/dist/filters/logic/math/ceil.js +9 -0
  189. package/dist/filters/logic/math/divided_by.d.ts +1 -0
  190. package/dist/filters/logic/math/divided_by.js +10 -0
  191. package/dist/filters/logic/math/floor.d.ts +1 -0
  192. package/dist/filters/logic/math/floor.js +9 -0
  193. package/dist/filters/logic/math/index.d.ts +11 -0
  194. package/dist/filters/logic/math/index.js +28 -0
  195. package/dist/filters/logic/math/minus.d.ts +1 -0
  196. package/dist/filters/logic/math/minus.js +10 -0
  197. package/dist/filters/logic/math/modulo.d.ts +1 -0
  198. package/dist/filters/logic/math/modulo.js +10 -0
  199. package/dist/filters/logic/math/plus.d.ts +1 -0
  200. package/dist/filters/logic/math/plus.js +10 -0
  201. package/dist/filters/logic/math/round.d.ts +1 -0
  202. package/dist/filters/logic/math/round.js +10 -0
  203. package/dist/filters/logic/math/times.d.ts +1 -0
  204. package/dist/filters/logic/math/times.js +10 -0
  205. package/dist/filters/logic/media/external_video_tag.d.ts +11 -0
  206. package/dist/filters/logic/media/external_video_tag.js +16 -0
  207. package/dist/filters/logic/media/external_video_url.d.ts +6 -0
  208. package/dist/filters/logic/media/external_video_url.js +12 -0
  209. package/dist/filters/logic/media/image_tag.d.ts +11 -0
  210. package/dist/filters/logic/media/image_tag.js +30 -0
  211. package/dist/filters/logic/media/image_url.d.ts +9 -0
  212. package/dist/filters/logic/media/image_url.js +8 -0
  213. package/dist/filters/logic/media/index.d.ts +8 -0
  214. package/dist/filters/logic/media/index.js +22 -0
  215. package/dist/filters/logic/media/media_tag.d.ts +8 -0
  216. package/dist/filters/logic/media/media_tag.js +25 -0
  217. package/dist/filters/logic/media/model_viewer_tag.d.ts +7 -0
  218. package/dist/filters/logic/media/model_viewer_tag.js +14 -0
  219. package/dist/filters/logic/media/video_tag.d.ts +11 -0
  220. package/dist/filters/logic/media/video_tag.js +14 -0
  221. package/dist/filters/logic/syntax/echo.d.ts +1 -0
  222. package/dist/filters/logic/syntax/echo.js +8 -0
  223. package/dist/functions/set-optional-param.d.ts +1 -0
  224. package/dist/functions/set-optional-param.js +11 -0
  225. package/dist/globals/index.d.ts +1 -0
  226. package/dist/globals/index.js +3 -1
  227. package/dist/globals/logic/all_products.d.ts +7 -0
  228. package/dist/globals/logic/all_products.js +43 -0
  229. package/dist/graphql/index.d.ts +3 -0
  230. package/dist/graphql/index.js +40 -0
  231. package/dist/graphql/mutation/createCustomerAddresses.d.ts +2 -0
  232. package/dist/graphql/mutation/createCustomerAddresses.js +32 -0
  233. package/dist/graphql/mutation/customerLogin.d.ts +2 -0
  234. package/dist/graphql/mutation/customerLogin.js +11 -0
  235. package/dist/graphql/mutation/customerSignup.d.ts +2 -0
  236. package/dist/graphql/mutation/customerSignup.js +10 -0
  237. package/dist/graphql/mutation/customerVerifyOtp.d.ts +2 -0
  238. package/dist/graphql/mutation/customerVerifyOtp.js +13 -0
  239. package/dist/graphql/mutation/index.d.ts +5 -0
  240. package/dist/graphql/mutation/index.js +14 -0
  241. package/dist/graphql/query/findAllProducts.d.ts +2 -0
  242. package/dist/graphql/query/findAllProducts.js +93 -0
  243. package/dist/graphql/query/index.d.ts +2 -0
  244. package/dist/graphql/query/index.js +8 -0
  245. package/dist/index.local.d.ts +1 -0
  246. package/dist/index.local.js +11 -0
  247. package/dist/middleware/init.middleware.js +16 -0
  248. package/dist/middleware/locals.middleware.js +1 -1
  249. package/dist/middleware/prepareData.middleware.js +13 -17
  250. package/dist/middleware/render.middleware.js +6 -0
  251. package/dist/middleware/setGlobals.middleware.js +5 -0
  252. package/dist/middleware.d.ts +1 -1
  253. package/dist/middleware.js +33 -49
  254. package/dist/routers/dev/index.js +5 -0
  255. package/dist/routers/production/auth/index.d.ts +2 -0
  256. package/dist/routers/production/auth/index.js +16 -0
  257. package/dist/routers/production/auth/login/index.d.ts +2 -0
  258. package/dist/routers/production/auth/login/index.js +7 -0
  259. package/dist/routers/production/auth/logout/index.d.ts +2 -0
  260. package/dist/routers/production/auth/logout/index.js +8 -0
  261. package/dist/routers/production/auth/signup/index.d.ts +2 -0
  262. package/dist/routers/production/auth/signup/index.js +7 -0
  263. package/dist/routers/production/auth/verify/index.d.ts +2 -0
  264. package/dist/routers/production/auth/verify/index.js +7 -0
  265. package/dist/routers/production/cart/add/index.d.ts +2 -0
  266. package/dist/routers/production/cart/add/index.js +7 -0
  267. package/dist/routers/production/cart/index.d.ts +2 -0
  268. package/dist/routers/production/cart/index.js +12 -0
  269. package/dist/routers/production/cart/update/index.d.ts +2 -0
  270. package/dist/routers/production/cart/update/index.js +7 -0
  271. package/dist/routers/production/checkout/buy-now/index.d.ts +2 -0
  272. package/dist/routers/production/checkout/buy-now/index.js +7 -0
  273. package/dist/routers/production/checkout/create-order/index.d.ts +2 -0
  274. package/dist/routers/production/checkout/create-order/index.js +7 -0
  275. package/dist/routers/production/checkout/index.d.ts +2 -0
  276. package/dist/routers/production/checkout/index.js +12 -0
  277. package/dist/routers/production/index.d.ts +2 -0
  278. package/dist/routers/production/index.js +14 -0
  279. package/dist/routers/production/localize/currency/index.d.ts +2 -0
  280. package/dist/routers/production/localize/currency/index.js +7 -0
  281. package/dist/routers/production/localize/index.d.ts +2 -0
  282. package/dist/routers/production/localize/index.js +14 -0
  283. package/dist/routers/production/localize/lang/index.d.ts +2 -0
  284. package/dist/routers/production/localize/lang/index.js +7 -0
  285. package/dist/routers/production/localize/market/index.d.ts +2 -0
  286. package/dist/routers/production/localize/market/index.js +7 -0
  287. package/dist/utils/axios.d.ts +10 -0
  288. package/dist/utils/axios.js +25 -0
  289. package/dist/utils/client.d.ts +2 -0
  290. package/dist/utils/client.js +23 -0
  291. package/package.json +6 -1
  292. package/dist/controllers/auth/login.d.ts +0 -2
  293. package/dist/controllers/auth/login.js +0 -21
  294. package/dist/extensions/logic/form.js +0 -41
  295. package/dist/routers/index.js +0 -10
  296. /package/dist/controllers/auth/{logout.d.ts → logout.controller.d.ts} +0 -0
  297. /package/dist/controllers/auth/{logout.js → logout.controller.js} +0 -0
  298. /package/dist/routers/{index.d.ts → dev/index.d.ts} +0 -0
@@ -4,61 +4,54 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const express_1 = __importDefault(require("express"));
7
- const render_middleware_1 = require("./middleware/render.middleware");
8
- const prepareData_middleware_1 = require("./middleware/prepareData.middleware");
9
7
  const morgan_1 = __importDefault(require("morgan"));
10
8
  const path_1 = __importDefault(require("path"));
9
+ const express_session_1 = __importDefault(require("express-session"));
10
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
11
+ const printServerLog_1 = require("./utils/printServerLog");
11
12
  const findAvailablePort_1 = require("./utils/findAvailablePort");
13
+ const isPathAllowedToRender_1 = require("./utils/isPathAllowedToRender");
14
+ const production_1 = __importDefault(require("./routers/production"));
12
15
  const init_middleware_1 = require("./middleware/init.middleware");
16
+ const prepareData_middleware_1 = require("./middleware/prepareData.middleware");
17
+ const render_middleware_1 = require("./middleware/render.middleware");
13
18
  const nunjucks_middleware_1 = require("./middleware/nunjucks.middleware");
14
19
  const filters_middleware_1 = require("./middleware/filters.middleware");
15
- const locals_middleware_1 = require("./middleware/locals.middleware");
16
20
  const globals_middleware_1 = require("./middleware/globals.middleware");
17
21
  const extensions_middleware_1 = require("./middleware/extensions.middleware");
18
- const isPathAllowedToRender_1 = require("./utils/isPathAllowedToRender");
22
+ const locals_middleware_1 = require("./middleware/locals.middleware");
19
23
  const setGlobals_middleware_1 = require("./middleware/setGlobals.middleware");
20
- const express_session_1 = __importDefault(require("express-session"));
21
- const printServerLog_1 = require("./utils/printServerLog");
22
- const cookie_parser_1 = __importDefault(require("cookie-parser"));
23
- const routers_1 = __importDefault(require("./routers"));
24
+ const locals_1 = require("./store/locals");
24
25
  const startEngine = async ({ renderApi, mode, getRender, setRender, port = 3000, themesRepo, themeId = null, currentApp, market, }) => {
25
26
  try {
26
27
  const app = (0, express_1.default)();
28
+ const isProduction = process.env.NODE_ENV === "production";
27
29
  app.use((0, cookie_parser_1.default)());
30
+ app.use(express_1.default.urlencoded({ extended: true }));
31
+ app.use(express_1.default.json());
28
32
  app.use((0, morgan_1.default)("dev"));
29
- // app.use(
30
- // cors({
31
- // origin: "*",
32
- // })
33
- // );
34
33
  app.set("view engine", "nunjucks");
35
- // لازم ترد على preflight OPTIONS request
36
- // app.options("*", cors());
37
- app.get("/health", (req, res) => {
34
+ app.set("trust proxy", 1);
35
+ app.get("/health", (_, res) => {
38
36
  console.log("🚀 Health check OK");
39
- res.status(200).send("OK");
40
- return;
37
+ return res.status(200).send("OK");
41
38
  });
42
39
  app.use((req, res, next) => {
43
40
  res.locals.showDevTools = req.query.showDevTools ?? false;
44
41
  const isIframe = req.query.iframe === "1" || req.headers["sec-fetch-dest"] === "iframe";
45
- if (isIframe) {
46
- res.locals.isIframe = true;
47
- }
42
+ res.locals.isIframe = !!isIframe;
48
43
  next();
49
44
  });
50
- app.set("trust proxy", 1); // لو ورا Nginx/Proxy/Cloud
51
- const isProduction = process.env.NODE_ENV === "production";
52
45
  app.use((0, express_session_1.default)({
53
46
  secret: process.env.SESSION_SECRET || "your-secret-key",
54
47
  resave: false,
55
48
  saveUninitialized: false,
56
49
  cookie: {
57
- sameSite: "none", // يدعم داخل وخارج iframe
58
- secure: isProduction, // لازم يكون true في production مع HTTPS
50
+ sameSite: "none",
51
+ secure: isProduction,
59
52
  httpOnly: true,
60
- partitioned: true, // يخليها شغالة في iframe (Chrome 115+)
61
- maxAge: 1000 * 60 * 5, // 5 دقائق
53
+ partitioned: true,
54
+ maxAge: 1000 * 60 * 5,
62
55
  },
63
56
  }));
64
57
  app.use((req, res, next) => {
@@ -67,19 +60,18 @@ const startEngine = async ({ renderApi, mode, getRender, setRender, port = 3000,
67
60
  }
68
61
  if (req.query.theme) {
69
62
  req.session.theme = req.query.theme;
70
- // إعادة توجيه لنفس المسار بدون الـ query string
71
63
  const redirectUrl = req.path || "/";
72
64
  if (!req.query.market && !req.query.devMode) {
73
65
  return res.redirect(redirectUrl);
74
66
  }
75
67
  }
76
- else {
77
- if (themeId) {
78
- req.session.theme = themeId;
79
- }
68
+ else if (themeId) {
69
+ req.session.theme = themeId;
80
70
  }
71
+ (0, locals_1.setLocales)("cookies", req.cookies);
81
72
  next();
82
73
  });
74
+ console.log("🚀 ~ startEngine ~ currentApp:", currentApp);
83
75
  app.use((0, init_middleware_1.initMiddleware)({
84
76
  mode,
85
77
  getRender,
@@ -88,31 +80,23 @@ const startEngine = async ({ renderApi, mode, getRender, setRender, port = 3000,
88
80
  renderApi,
89
81
  market,
90
82
  }));
91
- const avilablePort = await (0, findAvailablePort_1.findAvailablePort)(port);
83
+ const availablePort = await (0, findAvailablePort_1.findAvailablePort)(port);
92
84
  if (mode === "devlopment") {
93
85
  const staticPath = path_1.default.join(process.cwd(), "assets");
94
86
  app.use("/assets", express_1.default.static(staticPath));
95
- app.use("api", routers_1.default);
87
+ // app.use("/api", devRouter);
96
88
  }
97
89
  app.use((req, res, next) => {
98
- if (!(0, isPathAllowedToRender_1.isPathAllowedToRender)(res.locals.parsedUrl.pathname)) {
90
+ if (!(0, isPathAllowedToRender_1.isPathAllowedToRender)(res.locals.parsedUrl?.pathname || req.path)) {
99
91
  return res.status(404).end();
100
92
  }
101
- else {
102
- next();
103
- }
93
+ next();
104
94
  });
105
95
  app.use((_, res, next) => {
106
- var themesRepoPath;
107
- if (themesRepo) {
108
- themesRepoPath = path_1.default.join(process.cwd(), themesRepo);
109
- }
110
- else {
111
- themesRepoPath = process.cwd();
112
- }
113
- res.locals.themesRepo = themesRepoPath;
96
+ res.locals.themesRepo = path_1.default.join(process.cwd(), themesRepo || "");
114
97
  next();
115
98
  });
99
+ app.use(production_1.default);
116
100
  app.use(prepareData_middleware_1.prepareDataMiddleware);
117
101
  app.use(nunjucks_middleware_1.nunjucksMiddleWare);
118
102
  app.use(setGlobals_middleware_1.mergeDataMiddleware);
@@ -121,16 +105,16 @@ const startEngine = async ({ renderApi, mode, getRender, setRender, port = 3000,
121
105
  app.use(globals_middleware_1.nunjucksGlobalsMiddleWare);
122
106
  app.use(extensions_middleware_1.nunjucksExtensionsMiddleWare);
123
107
  app.use(render_middleware_1.renderMiddleware);
124
- app.listen(avilablePort, () => {
108
+ app.listen(availablePort, () => {
125
109
  (0, printServerLog_1.printServerLog)({
126
- port: avilablePort,
110
+ port: availablePort,
127
111
  themeId: themeId || "default",
128
112
  app: currentApp,
129
113
  });
130
114
  });
131
115
  }
132
116
  catch (err) {
133
- console.error("Server failed to start", err);
117
+ console.error("Server failed to start:", err);
134
118
  }
135
119
  };
136
120
  exports.default = startEngine;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const router = (0, express_1.Router)();
5
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const login_1 = __importDefault(require("./login"));
8
+ const logout_1 = __importDefault(require("./logout"));
9
+ const verify_1 = __importDefault(require("./verify"));
10
+ const signup_1 = __importDefault(require("./signup"));
11
+ const router = (0, express_1.Router)();
12
+ router.use('/login', login_1.default);
13
+ router.use('/logout', logout_1.default);
14
+ router.use('/verify', verify_1.default);
15
+ router.use('/signup', signup_1.default);
16
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const customer_login_controller_1 = require("../../../../controllers/auth/customer-login.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(customer_login_controller_1.customerLoginController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // src/routes/app.routes.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const express_1 = require("express");
5
+ const logout_controller_1 = require("../../../../controllers/auth/logout.controller");
6
+ const router = (0, express_1.Router)();
7
+ router.route('/').post(logout_controller_1.logoutController);
8
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const create_customer_controller_1 = require("../../../../controllers/auth/create-customer.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(create_customer_controller_1.createCustomerController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const customer_login_verify_controller_1 = require("../../../../controllers/auth/customer-login-verify.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(customer_login_verify_controller_1.customerLoginVerifyController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const add_to_cart_controller_1 = require("../../../../controllers/cart/add-to-cart.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/add').post(add_to_cart_controller_1.addToCartController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const add_1 = __importDefault(require("./add"));
8
+ const update_1 = __importDefault(require("./update"));
9
+ const router = (0, express_1.Router)();
10
+ router.use('/cart', add_1.default);
11
+ router.use('/cart', update_1.default);
12
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const update_cart_controller_1 = require("../../../../controllers/cart/update-cart.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/update').post(update_cart_controller_1.updateCartController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const checkout_controller_1 = require("../../../../controllers/checkout/checkout.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/buyNow').post(checkout_controller_1.checkoutController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const checkout_controller_1 = require("../../../../controllers/checkout/checkout.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/create').post(checkout_controller_1.checkoutController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const buy_now_1 = __importDefault(require("./buy-now"));
8
+ const create_order_1 = __importDefault(require("./create-order"));
9
+ const router = (0, express_1.Router)();
10
+ router.use('/order', buy_now_1.default);
11
+ router.use('/order', create_order_1.default);
12
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const localize_1 = __importDefault(require("./localize"));
8
+ const auth_1 = __importDefault(require("./auth"));
9
+ const checkout_1 = __importDefault(require("./checkout"));
10
+ const router = (0, express_1.Router)();
11
+ router.use('/auth', auth_1.default);
12
+ router.use("/localize", localize_1.default);
13
+ router.use("/checkout", checkout_1.default);
14
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const currency_controller_1 = require("../../../../controllers/localize/currency.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(currency_controller_1.currencyController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const currency_1 = __importDefault(require("./currency"));
8
+ const market_1 = __importDefault(require("./market"));
9
+ const lang_1 = __importDefault(require("./lang"));
10
+ const router = (0, express_1.Router)();
11
+ router.use('/lang', lang_1.default);
12
+ router.use('/market', market_1.default);
13
+ router.use('/currency', currency_1.default);
14
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const lang_controller_1 = require("../../../../controllers/localize/lang.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(lang_controller_1.langController);
7
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const market_controller_1 = require("../../../../controllers/localize/market.controller");
5
+ const router = (0, express_1.Router)();
6
+ router.route('/').post(market_controller_1.marketController);
7
+ exports.default = router;
@@ -0,0 +1,10 @@
1
+ interface SendRequestOptions {
2
+ renderApi: string;
3
+ fullUrl?: string;
4
+ appId?: string;
5
+ qdid?: string;
6
+ authorization?: string;
7
+ body?: Record<string, any>;
8
+ }
9
+ export declare const sendRequest: ({ renderApi, fullUrl, appId, qdid, authorization, body, }: SendRequestOptions) => Promise<any>;
10
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sendRequest = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const sendRequest = async ({ renderApi, fullUrl = "", appId = "", qdid = "", authorization = "", body = {}, }) => {
9
+ try {
10
+ const response = await axios_1.default.post(renderApi, { url: fullUrl, appId, ...body }, {
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ Authorization: authorization,
14
+ qdid,
15
+ },
16
+ });
17
+ console.log("✅ Axios Response:", response.status, response.data);
18
+ return response.data;
19
+ }
20
+ catch (error) {
21
+ console.error("❌ Axios Error:", error.message || error, renderApi, fullUrl);
22
+ throw error;
23
+ }
24
+ };
25
+ exports.sendRequest = sendRequest;
@@ -0,0 +1,2 @@
1
+ import { GraphQLClient } from 'graphql-request';
2
+ export declare function getGqlClient(): GraphQLClient;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGqlClient = getGqlClient;
4
+ const graphql_request_1 = require("graphql-request");
5
+ const locals_1 = require("../store/locals");
6
+ const globals_1 = require("../store/globals");
7
+ function getGqlClient() {
8
+ const cookies = (0, locals_1.getLocales)("cookies");
9
+ const authorization = cookies.authorization;
10
+ const qdid = cookies.qdid;
11
+ const app = (0, globals_1.getGlobal)('app');
12
+ const rawBaseUrl = app?.url;
13
+ console.log("🚀 ~ getGqlClient ~ app:", app);
14
+ // نشيل أي / في آخر الرابط
15
+ const baseUrl = rawBaseUrl?.replace(/\/+$/, '');
16
+ const endpoint = `${baseUrl}/api/graphql`;
17
+ return new graphql_request_1.GraphQLClient(endpoint, {
18
+ headers: {
19
+ ...(authorization ? { Authorization: authorization } : {}),
20
+ ...(qdid ? { qdid } : {}),
21
+ },
22
+ });
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qumra-engine",
3
- "version": "2.0.144",
3
+ "version": "2.0.146",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -13,9 +13,12 @@
13
13
  "colord": "^2.9.3",
14
14
  "cookie-parser": "^1.4.7",
15
15
  "cors": "^2.8.5",
16
+ "date-fns": "^4.1.0",
16
17
  "express": "^5.1.0",
17
18
  "express-session": "^1.18.1",
19
+ "graphql-request": "^7.3.1",
18
20
  "morgan": "^1.10.0",
21
+ "natural-sort": "^1.0.0",
19
22
  "nunjucks": "^3.2.4",
20
23
  "pino": "^9.7.0",
21
24
  "pino-pretty": "^13.0.0",
@@ -28,8 +31,10 @@
28
31
  "@types/express": "^4.17.21",
29
32
  "@types/express-session": "^1.18.2",
30
33
  "@types/morgan": "^1.9.10",
34
+ "@types/natural-sort": "^1.0.0",
31
35
  "@types/node": "^20.4.2",
32
36
  "@types/nunjucks": "^3.2.6",
37
+ "@types/strftime": "^0.9.8",
33
38
  "nodemon": "^3.1.10",
34
39
  "ts-node": "^10.9.1",
35
40
  "typescript": "^5.2.2"
@@ -1,2 +0,0 @@
1
- import { Request, Response } from "express";
2
- export declare const loginController: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loginController = void 0;
4
- const loginController = async (req, res) => {
5
- const { redirect_url, token } = req.query;
6
- if (!redirect_url || !token) {
7
- return res.status(400).send("Missing redirect_url or token");
8
- }
9
- res.cookie("authrization", token, {
10
- httpOnly: false,
11
- secure: process.env.NODE_ENV === "production",
12
- expires: new Date(9999, 0, 1),
13
- });
14
- if (redirect_url) {
15
- res.redirect(redirect_url);
16
- }
17
- else {
18
- res.redirect("/");
19
- }
20
- };
21
- exports.loginController = loginController;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const nunjucks_1 = __importDefault(require("nunjucks"));
7
- exports.default = new (class FormExtension {
8
- constructor() {
9
- this.tags = ['form'];
10
- }
11
- parse(parser, nodes) {
12
- const tok = parser.nextToken();
13
- const args = parser.parseSignature(true, true);
14
- parser.advanceAfterBlockEnd(tok.value);
15
- const body = parser.parseUntilBlocks('endform');
16
- parser.advanceAfterBlockEnd();
17
- return new nodes.CallExtension(this, 'run', args, [body]);
18
- }
19
- run(context, type, options = {}, body) {
20
- const method = options.method || 'POST';
21
- const action = options.action || this.getDefaultAction(type);
22
- return new nunjucks_1.default.runtime.SafeString(`
23
- <form method="${method}" action="${action}">
24
- ${body()}
25
- </form>
26
- `);
27
- }
28
- // 🟢 خلتها public بدون أي كلمة
29
- getDefaultAction(type) {
30
- switch (type) {
31
- case 'search':
32
- return '/search';
33
- case 'customer_login':
34
- return '/account/login';
35
- case 'product':
36
- return '/cart/add';
37
- default:
38
- return '/';
39
- }
40
- }
41
- })();
@@ -1,10 +0,0 @@
1
- "use strict";
2
- // src/routes/app.routes.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const express_1 = require("express");
5
- const login_1 = require("../controllers/auth/login");
6
- const logout_1 = require("../controllers/auth/logout");
7
- const router = (0, express_1.Router)();
8
- router.post("/auth/login", login_1.loginController);
9
- router.post("/auth/logout", logout_1.logoutController);
10
- exports.default = router;
File without changes