qumra-engine 2.0.148 → 2.0.150

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 (73) hide show
  1. package/dist/controllers/localize/currency.controller.d.ts +1 -0
  2. package/dist/controllers/localize/currency.controller.js +34 -1
  3. package/dist/controllers/localize/lang.controller.js +0 -1
  4. package/dist/extensions/logic/all_products.js +0 -2
  5. package/dist/extensions/logic/content.d.ts +1 -1
  6. package/dist/extensions/logic/content.js +86 -69
  7. package/dist/extensions/logic/preview-widget.js +1 -2
  8. package/dist/extensions/logic/seo.js +0 -3
  9. package/dist/extensions/logic/template copy.d.ts +10 -0
  10. package/dist/extensions/logic/template copy.js +70 -0
  11. package/dist/extensions/logic/template.d.ts +5 -4
  12. package/dist/extensions/logic/template.js +62 -59
  13. package/dist/extensions/logic/ui.d.ts +5 -4
  14. package/dist/extensions/logic/ui.js +42 -21
  15. package/dist/extensions/logic/widget.d.ts +5 -4
  16. package/dist/extensions/logic/widget.js +47 -22
  17. package/dist/extensions/registerAllExtensions.js +0 -2
  18. package/dist/filters/index.d.ts +136 -22
  19. package/dist/filters/index.js +186 -49
  20. package/dist/filters/logic/array/first.d.ts +1 -1
  21. package/dist/filters/logic/array/first.js +8 -2
  22. package/dist/filters/logic/array/index.d.ts +0 -19
  23. package/dist/filters/logic/array/index.js +0 -43
  24. package/dist/filters/logic/array/last.d.ts +1 -1
  25. package/dist/filters/logic/array/last.js +8 -4
  26. package/dist/filters/logic/array/sort_natural.js +1 -1
  27. package/dist/filters/logic/cart/index.d.ts +0 -2
  28. package/dist/filters/logic/cart/index.js +0 -9
  29. package/dist/filters/logic/colors/index.d.ts +0 -16
  30. package/dist/filters/logic/colors/index.js +0 -37
  31. package/dist/filters/logic/customer/index.d.ts +0 -4
  32. package/dist/filters/logic/customer/index.js +0 -13
  33. package/dist/filters/logic/default/index.d.ts +0 -1
  34. package/dist/filters/logic/default/index.js +0 -7
  35. package/dist/filters/logic/format/index.d.ts +0 -4
  36. package/dist/filters/logic/format/index.js +0 -13
  37. package/dist/filters/logic/format/unit_price_with_measurement.js +1 -1
  38. package/dist/filters/logic/format/weight_with_unit.d.ts +1 -1
  39. package/dist/filters/logic/format/weight_with_unit.js +1 -1
  40. package/dist/filters/logic/html/highlight.d.ts +2 -1
  41. package/dist/filters/logic/html/highlight.js +5 -1
  42. package/dist/filters/logic/html/index.d.ts +0 -7
  43. package/dist/filters/logic/html/index.js +0 -19
  44. package/dist/filters/logic/localization/currency_selector.d.ts +1 -7
  45. package/dist/filters/logic/localization/currency_selector.js +10 -36
  46. package/dist/filters/logic/localization/index.d.ts +0 -2
  47. package/dist/filters/logic/localization/index.js +0 -9
  48. package/dist/filters/logic/math/index.d.ts +0 -11
  49. package/dist/filters/logic/math/index.js +0 -27
  50. package/dist/filters/logic/media/external_video_tag.d.ts +1 -1
  51. package/dist/filters/logic/media/external_video_tag.js +21 -1
  52. package/dist/filters/logic/media/image_url.d.ts +1 -1
  53. package/dist/filters/logic/media/image_url.js +30 -2
  54. package/dist/filters/logic/media/index.d.ts +0 -8
  55. package/dist/filters/logic/media/index.js +0 -21
  56. package/dist/filters/registerAllFilters.js +3 -36
  57. package/dist/functions/render-handler.d.ts +4 -0
  58. package/dist/functions/render-handler.js +88 -0
  59. package/dist/globals/logic/all_products.js +0 -1
  60. package/dist/graphql/query/findAllCountries.d.ts +2 -0
  61. package/dist/graphql/query/findAllCountries.js +41 -0
  62. package/dist/graphql/query/index.d.ts +2 -1
  63. package/dist/graphql/query/index.js +3 -1
  64. package/dist/middleware/init.middleware.js +0 -3
  65. package/dist/middleware/nunjucks.middleware.js +1 -1
  66. package/dist/middleware/prepareData.middleware.js +1 -1
  67. package/dist/middleware/render.middleware.js +21 -13
  68. package/dist/middleware.js +0 -1
  69. package/dist/nunjucksEnv.d.ts +1 -1
  70. package/dist/nunjucksEnv.js +2 -1
  71. package/dist/types/sharedTypes.d.ts +4 -0
  72. package/dist/utils/client.js +1 -1
  73. package/package.json +1 -1
@@ -1,10 +1 @@
1
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.line_items_for = exports.item_count_for_variant = void 0;
7
- var item_count_for_variant_1 = require("./item_count_for_variant");
8
- Object.defineProperty(exports, "item_count_for_variant", { enumerable: true, get: function () { return __importDefault(item_count_for_variant_1).default; } });
9
- var line_items_for_1 = require("./line_items_for");
10
- Object.defineProperty(exports, "line_items_for", { enumerable: true, get: function () { return __importDefault(line_items_for_1).default; } });
@@ -1,16 +0,0 @@
1
- export { default as brightness_difference } from './brightness_difference';
2
- export { default as color_brightness } from './color_brightness';
3
- export { default as color_contrast } from './color_contrast';
4
- export { default as color_darken } from './color_darken';
5
- export { default as color_desaturate } from './color_desaturate';
6
- export { default as color_difference } from './color_difference';
7
- export { default as color_extract } from './color_extract';
8
- export { default as color_lighten } from './color_lighten';
9
- export { default as color_mix } from './color_mix';
10
- export { default as color_modify } from './color_modify';
11
- export { default as color_saturate } from './color_saturate';
12
- export { default as color_to_hex } from './color_to_hex';
13
- export { default as color_to_hsl } from './color_to_hsl';
14
- export { default as color_to_oklch } from './color_to_oklch';
15
- export { default as color_to_rgb } from './color_to_rgb';
16
- export { default as hex_to_rgba } from './hex_to_rgba';
@@ -1,38 +1 @@
1
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.hex_to_rgba = exports.color_to_rgb = exports.color_to_oklch = exports.color_to_hsl = exports.color_to_hex = exports.color_saturate = exports.color_modify = exports.color_mix = exports.color_lighten = exports.color_extract = exports.color_difference = exports.color_desaturate = exports.color_darken = exports.color_contrast = exports.color_brightness = exports.brightness_difference = void 0;
7
- var brightness_difference_1 = require("./brightness_difference");
8
- Object.defineProperty(exports, "brightness_difference", { enumerable: true, get: function () { return __importDefault(brightness_difference_1).default; } });
9
- var color_brightness_1 = require("./color_brightness");
10
- Object.defineProperty(exports, "color_brightness", { enumerable: true, get: function () { return __importDefault(color_brightness_1).default; } });
11
- var color_contrast_1 = require("./color_contrast");
12
- Object.defineProperty(exports, "color_contrast", { enumerable: true, get: function () { return __importDefault(color_contrast_1).default; } });
13
- var color_darken_1 = require("./color_darken");
14
- Object.defineProperty(exports, "color_darken", { enumerable: true, get: function () { return __importDefault(color_darken_1).default; } });
15
- var color_desaturate_1 = require("./color_desaturate");
16
- Object.defineProperty(exports, "color_desaturate", { enumerable: true, get: function () { return __importDefault(color_desaturate_1).default; } });
17
- var color_difference_1 = require("./color_difference");
18
- Object.defineProperty(exports, "color_difference", { enumerable: true, get: function () { return __importDefault(color_difference_1).default; } });
19
- var color_extract_1 = require("./color_extract");
20
- Object.defineProperty(exports, "color_extract", { enumerable: true, get: function () { return __importDefault(color_extract_1).default; } });
21
- var color_lighten_1 = require("./color_lighten");
22
- Object.defineProperty(exports, "color_lighten", { enumerable: true, get: function () { return __importDefault(color_lighten_1).default; } });
23
- var color_mix_1 = require("./color_mix");
24
- Object.defineProperty(exports, "color_mix", { enumerable: true, get: function () { return __importDefault(color_mix_1).default; } });
25
- var color_modify_1 = require("./color_modify");
26
- Object.defineProperty(exports, "color_modify", { enumerable: true, get: function () { return __importDefault(color_modify_1).default; } });
27
- var color_saturate_1 = require("./color_saturate");
28
- Object.defineProperty(exports, "color_saturate", { enumerable: true, get: function () { return __importDefault(color_saturate_1).default; } });
29
- var color_to_hex_1 = require("./color_to_hex");
30
- Object.defineProperty(exports, "color_to_hex", { enumerable: true, get: function () { return __importDefault(color_to_hex_1).default; } });
31
- var color_to_hsl_1 = require("./color_to_hsl");
32
- Object.defineProperty(exports, "color_to_hsl", { enumerable: true, get: function () { return __importDefault(color_to_hsl_1).default; } });
33
- var color_to_oklch_1 = require("./color_to_oklch");
34
- Object.defineProperty(exports, "color_to_oklch", { enumerable: true, get: function () { return __importDefault(color_to_oklch_1).default; } });
35
- var color_to_rgb_1 = require("./color_to_rgb");
36
- Object.defineProperty(exports, "color_to_rgb", { enumerable: true, get: function () { return __importDefault(color_to_rgb_1).default; } });
37
- var hex_to_rgba_1 = require("./hex_to_rgba");
38
- Object.defineProperty(exports, "hex_to_rgba", { enumerable: true, get: function () { return __importDefault(hex_to_rgba_1).default; } });
@@ -1,4 +0,0 @@
1
- export { default as customer_login_link } from './customer_login_link';
2
- export { default as customer_logout_link } from './customer_logout_link';
3
- export { default as customer_register_link } from './customer_register_link';
4
- export { default as login_button } from './login_button';
@@ -1,14 +1 @@
1
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.login_button = exports.customer_register_link = exports.customer_logout_link = exports.customer_login_link = void 0;
7
- var customer_login_link_1 = require("./customer_login_link");
8
- Object.defineProperty(exports, "customer_login_link", { enumerable: true, get: function () { return __importDefault(customer_login_link_1).default; } });
9
- var customer_logout_link_1 = require("./customer_logout_link");
10
- Object.defineProperty(exports, "customer_logout_link", { enumerable: true, get: function () { return __importDefault(customer_logout_link_1).default; } });
11
- var customer_register_link_1 = require("./customer_register_link");
12
- Object.defineProperty(exports, "customer_register_link", { enumerable: true, get: function () { return __importDefault(customer_register_link_1).default; } });
13
- var login_button_1 = require("./login_button");
14
- Object.defineProperty(exports, "login_button", { enumerable: true, get: function () { return __importDefault(login_button_1).default; } });
@@ -1 +0,0 @@
1
- export { default as default_pagination } from './default_pagination';
@@ -1,8 +1 @@
1
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.default_pagination = void 0;
7
- var default_pagination_1 = require("./default_pagination");
8
- Object.defineProperty(exports, "default_pagination", { enumerable: true, get: function () { return __importDefault(default_pagination_1).default; } });
@@ -1,4 +0,0 @@
1
- export { default as dateFilter } from './date';
2
- export { default as structured_data } from './structured_data';
3
- export { default as unit_price_with_measurement } from './unit_price_with_measurement';
4
- export { default as weight_with_unit } from './weight_with_unit';
@@ -1,14 +1 @@
1
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.weight_with_unit = exports.unit_price_with_measurement = exports.structured_data = exports.dateFilter = void 0;
7
- var date_1 = require("./date");
8
- Object.defineProperty(exports, "dateFilter", { enumerable: true, get: function () { return __importDefault(date_1).default; } });
9
- var structured_data_1 = require("./structured_data");
10
- Object.defineProperty(exports, "structured_data", { enumerable: true, get: function () { return __importDefault(structured_data_1).default; } });
11
- var unit_price_with_measurement_1 = require("./unit_price_with_measurement");
12
- Object.defineProperty(exports, "unit_price_with_measurement", { enumerable: true, get: function () { return __importDefault(unit_price_with_measurement_1).default; } });
13
- var weight_with_unit_1 = require("./weight_with_unit");
14
- Object.defineProperty(exports, "weight_with_unit", { enumerable: true, get: function () { return __importDefault(weight_with_unit_1).default; } });
@@ -5,5 +5,5 @@ const locals_1 = require("../../../store/locals");
5
5
  function unit_price_with_measurement(price, currency) {
6
6
  const cookiesCurrency = (0, locals_1.getLocales)("cookies").currency;
7
7
  const parsePrice = parseFloat(price);
8
- return `${parsePrice} ${cookiesCurrency ?? currency}`;
8
+ return `${parsePrice} ${currency ?? cookiesCurrency}`;
9
9
  }
@@ -1 +1 @@
1
- export default function weight_with_unit(weight: number, unit?: 'g' | 'kg'): string;
1
+ export default function weight_with_unit(weight: number, unit?: string): string;
@@ -8,5 +8,5 @@ function weight_with_unit(weight, unit) {
8
8
  if (unit === 'kg' || (!unit && weight >= 1000)) {
9
9
  return `${(weight / 1000).toFixed(2)} kg`;
10
10
  }
11
- return `${weight} g`;
11
+ return `${weight} ${unit == "" ? "g" : unit}`;
12
12
  }
@@ -1 +1,2 @@
1
- export default function highlight(text: string, terms: string | string[]): string;
1
+ import nunjucks from "nunjucks";
2
+ export default function highlight(text: string, terms: string | string[]): nunjucks.runtime.SafeString | string;
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.default = highlight;
7
+ const nunjucks_1 = __importDefault(require("nunjucks"));
4
8
  function highlight(text, terms) {
5
9
  if (!text || !terms)
6
10
  return text || '';
@@ -18,5 +22,5 @@ function highlight(text, terms) {
18
22
  termArr.sort((a, b) => b.length - a.length);
19
23
  const escapedTerms = termArr.map(t => t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
20
24
  const regex = new RegExp(`(${escapedTerms.join('|')})`, 'gi');
21
- return text.replace(regex, '<strong class="highlight">$1</strong>');
25
+ return new nunjucks_1.default.runtime.SafeString(text.replace(regex, '<strong class="highlight">$1</strong>'));
22
26
  }
@@ -1,7 +0,0 @@
1
- export { default as highlight } from './highlight';
2
- export { default as link_to } from './link_to';
3
- export { default as preload_tag } from './preload_tag';
4
- export { default as script_tag } from './script_tag';
5
- export { default as stylesheet_tag } from './stylesheet_tag';
6
- export { default as placeholder_svg_tag } from './placeholder_svg_tag';
7
- export { default as time_tag } from './time_tag';
@@ -1,20 +1 @@
1
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.time_tag = exports.placeholder_svg_tag = exports.stylesheet_tag = exports.script_tag = exports.preload_tag = exports.link_to = exports.highlight = void 0;
7
- var highlight_1 = require("./highlight");
8
- Object.defineProperty(exports, "highlight", { enumerable: true, get: function () { return __importDefault(highlight_1).default; } });
9
- var link_to_1 = require("./link_to");
10
- Object.defineProperty(exports, "link_to", { enumerable: true, get: function () { return __importDefault(link_to_1).default; } });
11
- var preload_tag_1 = require("./preload_tag");
12
- Object.defineProperty(exports, "preload_tag", { enumerable: true, get: function () { return __importDefault(preload_tag_1).default; } });
13
- var script_tag_1 = require("./script_tag");
14
- Object.defineProperty(exports, "script_tag", { enumerable: true, get: function () { return __importDefault(script_tag_1).default; } });
15
- var stylesheet_tag_1 = require("./stylesheet_tag");
16
- Object.defineProperty(exports, "stylesheet_tag", { enumerable: true, get: function () { return __importDefault(stylesheet_tag_1).default; } });
17
- var placeholder_svg_tag_1 = require("./placeholder_svg_tag");
18
- Object.defineProperty(exports, "placeholder_svg_tag", { enumerable: true, get: function () { return __importDefault(placeholder_svg_tag_1).default; } });
19
- var time_tag_1 = require("./time_tag");
20
- Object.defineProperty(exports, "time_tag", { enumerable: true, get: function () { return __importDefault(time_tag_1).default; } });
@@ -1,7 +1 @@
1
- import nunjucks from "nunjucks";
2
- type CurrencySelectorOptions = {
3
- class?: string;
4
- [key: string]: any;
5
- };
6
- export default function currency_selector(_value: any, options?: CurrencySelectorOptions): nunjucks.runtime.SafeString;
7
- export {};
1
+ export default function currency_selector(_value: any, callback: any): void;
@@ -5,27 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = currency_selector;
7
7
  const nunjucks_1 = __importDefault(require("nunjucks"));
8
- const currencies = [
9
- { value: "AED", label: "AED د.إ" },
10
- { value: "AFN", label: "AFN ؋" },
11
- { value: "AUD", label: "AUD $" },
12
- { value: "CAD", label: "CAD $", selected: true },
13
- { value: "CHF", label: "CHF CHF" },
14
- { value: "CZK", label: "CZK Kč" },
15
- { value: "DKK", label: "DKK kr." },
16
- { value: "EUR", label: "EUR €" },
17
- { value: "GBP", label: "GBP £" },
18
- { value: "HKD", label: "HKD $" },
19
- { value: "ILS", label: "ILS ₪" },
20
- { value: "JPY", label: "JPY ¥" },
21
- { value: "KRW", label: "KRW ₩" },
22
- { value: "MYR", label: "MYR RM" },
23
- { value: "NZD", label: "NZD $" },
24
- { value: "PLN", label: "PLN zł" },
25
- { value: "SEK", label: "SEK kr" },
26
- { value: "SGD", label: "SGD $" },
27
- { value: "USD", label: "USD $" },
28
- ];
8
+ const currency_controller_1 = require("../../../controllers/localize/currency.controller");
29
9
  function escapeHtml(str) {
30
10
  if (typeof str !== "string")
31
11
  str = String(str ?? "");
@@ -36,19 +16,13 @@ function escapeHtml(str) {
36
16
  .replace(/</g, "&lt;")
37
17
  .replace(/>/g, "&gt;");
38
18
  }
39
- function currency_selector(_value, options = {}) {
40
- let attrs = 'name="currency"';
41
- if (options.class) {
42
- attrs = `class="${escapeHtml(options.class)}" ` + attrs;
43
- }
44
- for (const [key, value] of Object.entries(options)) {
45
- if (key !== "class" && value !== undefined && value !== null && value !== false) {
46
- attrs += ` ${escapeHtml(key)}="${escapeHtml(String(value))}"`;
47
- }
48
- }
49
- const optionsHtml = currencies
50
- .map((cur) => `<option value="${escapeHtml(cur.value)}"${cur.selected ? ' selected="selected"' : ""}>${escapeHtml(cur.label)}</option>`)
51
- .join("");
52
- const html = `<select ${attrs}>${optionsHtml}</select>`;
53
- return new nunjucks_1.default.runtime.SafeString(html);
19
+ function currency_selector(_value, callback) {
20
+ (0, currency_controller_1.getAllCurrency)().then(({ data }) => {
21
+ const optionsHtml = data
22
+ ?.map((cur) => `<option value="${escapeHtml(cur.value)}"${cur.selected ? ' selected="selected"' : ""}>${escapeHtml(cur.label)}</option>`)
23
+ .join("");
24
+ const html = `<select>${optionsHtml}</select>`;
25
+ const newHtml = new nunjucks_1.default.runtime.SafeString(html);
26
+ callback(null, newHtml);
27
+ });
54
28
  }
@@ -1,2 +0,0 @@
1
- export { default as currency_selector } from './currency_selector';
2
- export { default as format_address } from './format_address';
@@ -1,10 +1 @@
1
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.format_address = exports.currency_selector = void 0;
7
- var currency_selector_1 = require("./currency_selector");
8
- Object.defineProperty(exports, "currency_selector", { enumerable: true, get: function () { return __importDefault(currency_selector_1).default; } });
9
- var format_address_1 = require("./format_address");
10
- Object.defineProperty(exports, "format_address", { enumerable: true, get: function () { return __importDefault(format_address_1).default; } });
@@ -1,11 +0,0 @@
1
- export { default as abs } from './abs';
2
- export { default as at_least } from './at_least';
3
- export { default as at_most } from './at_most';
4
- export { default as ceil } from './ceil';
5
- export { default as divided_by } from './divided_by';
6
- export { default as floor } from './floor';
7
- export { default as minus } from './minus';
8
- export { default as modulo } from './modulo';
9
- export { default as plus } from './plus';
10
- export { default as round } from './round';
11
- export { default as times } from './times';
@@ -1,28 +1 @@
1
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.times = exports.round = exports.plus = exports.modulo = exports.minus = exports.floor = exports.divided_by = exports.ceil = exports.at_most = exports.at_least = exports.abs = void 0;
7
- var abs_1 = require("./abs");
8
- Object.defineProperty(exports, "abs", { enumerable: true, get: function () { return __importDefault(abs_1).default; } });
9
- var at_least_1 = require("./at_least");
10
- Object.defineProperty(exports, "at_least", { enumerable: true, get: function () { return __importDefault(at_least_1).default; } });
11
- var at_most_1 = require("./at_most");
12
- Object.defineProperty(exports, "at_most", { enumerable: true, get: function () { return __importDefault(at_most_1).default; } });
13
- var ceil_1 = require("./ceil");
14
- Object.defineProperty(exports, "ceil", { enumerable: true, get: function () { return __importDefault(ceil_1).default; } });
15
- var divided_by_1 = require("./divided_by");
16
- Object.defineProperty(exports, "divided_by", { enumerable: true, get: function () { return __importDefault(divided_by_1).default; } });
17
- var floor_1 = require("./floor");
18
- Object.defineProperty(exports, "floor", { enumerable: true, get: function () { return __importDefault(floor_1).default; } });
19
- var minus_1 = require("./minus");
20
- Object.defineProperty(exports, "minus", { enumerable: true, get: function () { return __importDefault(minus_1).default; } });
21
- var modulo_1 = require("./modulo");
22
- Object.defineProperty(exports, "modulo", { enumerable: true, get: function () { return __importDefault(modulo_1).default; } });
23
- var plus_1 = require("./plus");
24
- Object.defineProperty(exports, "plus", { enumerable: true, get: function () { return __importDefault(plus_1).default; } });
25
- var round_1 = require("./round");
26
- Object.defineProperty(exports, "round", { enumerable: true, get: function () { return __importDefault(round_1).default; } });
27
- var times_1 = require("./times");
28
- Object.defineProperty(exports, "times", { enumerable: true, get: function () { return __importDefault(times_1).default; } });
@@ -1,6 +1,6 @@
1
1
  import nunjucks from "nunjucks";
2
2
  type ExternalVideo = {
3
- host: 'youtube' | 'vimeo';
3
+ host: string;
4
4
  id: string;
5
5
  };
6
6
  type VideoOptions = {
@@ -5,12 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = external_video_tag;
7
7
  const nunjucks_1 = __importDefault(require("nunjucks"));
8
+ function getEmbedUrl(video) {
9
+ switch (video.host) {
10
+ case 'youtube':
11
+ return `https://www.youtube.com/embed/${video.id}`;
12
+ case 'vimeo':
13
+ return `https://player.vimeo.com/video/${video.id}`;
14
+ default:
15
+ return `https://${video.host}/${video.id}`;
16
+ }
17
+ }
8
18
  function external_video_tag(video, options = {}) {
9
19
  if (!video || !video.host || !video.id) {
10
20
  return new nunjucks_1.default.runtime.SafeString('');
11
21
  }
22
+ const src = getEmbedUrl(video);
23
+ if (!src) {
24
+ return new nunjucks_1.default.runtime.SafeString('');
25
+ }
12
26
  const { class: className, ...otherOptions } = options;
13
27
  const classAttr = className ? ` class="${className}"` : '';
14
- const iframe = `<iframe src="https://www.youtube.com/embed/${video.id}"${classAttr} frameborder="0" allowfullscreen></iframe>`;
28
+ let extraAttrs = '';
29
+ for (const [key, value] of Object.entries(otherOptions)) {
30
+ if (value !== null && value !== undefined && value !== false) {
31
+ extraAttrs += ` ${key}="${String(value)}"`;
32
+ }
33
+ }
34
+ const iframe = `<iframe src="${src}"${classAttr}${extraAttrs} frameborder="0" allowfullscreen></iframe>`;
15
35
  return new nunjucks_1.default.runtime.SafeString(iframe);
16
36
  }
@@ -5,5 +5,5 @@ type Image = {
5
5
  type ImageUrlOptions = {
6
6
  size?: string;
7
7
  };
8
- export default function image_url(image: Image, options?: ImageUrlOptions): string;
8
+ export default function image_url(image: Image | string, options?: ImageUrlOptions): string;
9
9
  export {};
@@ -1,8 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = image_url;
4
+ function insertSizeIntoUrl(url, size) {
5
+ if (!size)
6
+ return url;
7
+ const match = url.match(/(\.[a-zA-Z0-9]+)(\?|$)/);
8
+ if (!match)
9
+ return url;
10
+ const extIndex = match.index ?? url.length;
11
+ const extLength = match[1]?.length || 0;
12
+ const before = url.slice(0, extIndex);
13
+ const ext = url.slice(extIndex, extIndex + extLength);
14
+ const after = url.slice(extIndex + extLength);
15
+ if (before.endsWith(`_${size}`))
16
+ return url;
17
+ return `${before}_${size}${ext}${after}`;
18
+ }
4
19
  function image_url(image, options = {}) {
5
- if (!image || !image.src)
20
+ if (!image)
21
+ return '';
22
+ let src = '';
23
+ if (typeof image === 'string') {
24
+ src = image;
25
+ }
26
+ else if (typeof image === 'object' && image.src) {
27
+ src = image.src;
28
+ }
29
+ else {
6
30
  return '';
7
- return image.src;
31
+ }
32
+ if (options.size) {
33
+ src = insertSizeIntoUrl(src, options.size);
34
+ }
35
+ return src;
8
36
  }
@@ -1,8 +0,0 @@
1
- export { default as external_video_tag } from './external_video_tag';
2
- export { default as external_video_url } from './external_video_url';
3
- export { default as image_url } from './image_url';
4
- export { default as image_tag } from './image_tag';
5
- export { default as img_url } from './image_url';
6
- export { default as media_tag } from './media_tag';
7
- export { default as model_viewer_tag } from './model_viewer_tag';
8
- export { default as video_tag } from './video_tag';
@@ -1,22 +1 @@
1
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.video_tag = exports.model_viewer_tag = exports.media_tag = exports.img_url = exports.image_tag = exports.image_url = exports.external_video_url = exports.external_video_tag = void 0;
7
- var external_video_tag_1 = require("./external_video_tag");
8
- Object.defineProperty(exports, "external_video_tag", { enumerable: true, get: function () { return __importDefault(external_video_tag_1).default; } });
9
- var external_video_url_1 = require("./external_video_url");
10
- Object.defineProperty(exports, "external_video_url", { enumerable: true, get: function () { return __importDefault(external_video_url_1).default; } });
11
- var image_url_1 = require("./image_url");
12
- Object.defineProperty(exports, "image_url", { enumerable: true, get: function () { return __importDefault(image_url_1).default; } });
13
- var image_tag_1 = require("./image_tag");
14
- Object.defineProperty(exports, "image_tag", { enumerable: true, get: function () { return __importDefault(image_tag_1).default; } });
15
- var image_url_2 = require("./image_url");
16
- Object.defineProperty(exports, "img_url", { enumerable: true, get: function () { return __importDefault(image_url_2).default; } });
17
- var media_tag_1 = require("./media_tag");
18
- Object.defineProperty(exports, "media_tag", { enumerable: true, get: function () { return __importDefault(media_tag_1).default; } });
19
- var model_viewer_tag_1 = require("./model_viewer_tag");
20
- Object.defineProperty(exports, "model_viewer_tag", { enumerable: true, get: function () { return __importDefault(model_viewer_tag_1).default; } });
21
- var video_tag_1 = require("./video_tag");
22
- Object.defineProperty(exports, "video_tag", { enumerable: true, get: function () { return __importDefault(video_tag_1).default; } });
@@ -1,44 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.registerAllFilters = registerAllFilters;
37
- const filters = __importStar(require("./"));
4
+ const _1 = require(".");
38
5
  function registerAllFilters(env) {
39
- Object.entries(filters).forEach(([name, fn]) => {
6
+ _1.filters.forEach(({ name, fn, async }) => {
40
7
  if (typeof fn === 'function') {
41
- env.addFilter(name, fn);
8
+ env.addFilter(name, fn, async);
42
9
  }
43
10
  else {
44
11
  console.warn(`[nunjucks-middleware] تخطى الفلتر '${name}' لأنه ليس دالة صالحة.`);
@@ -0,0 +1,4 @@
1
+ import { Locals } from "express";
2
+ type RenderInput = Partial<Locals>;
3
+ export default function renderHandler(locals: RenderInput): any;
4
+ export {};
@@ -0,0 +1,88 @@
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.default = renderHandler;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ function renderHandler(locals) {
10
+ const render = locals?.render;
11
+ const settings = locals?.env?.getGlobal("settings");
12
+ const lang = locals?.lang;
13
+ const market = locals?.market;
14
+ const currency = market?.currency;
15
+ const localesPath = locals?.localsPath;
16
+ let languages = [];
17
+ if (localesPath && fs_1.default.existsSync(localesPath)) {
18
+ languages = fs_1.default.readdirSync(localesPath).map(lang => path_1.default.basename(lang, '.json'));
19
+ }
20
+ const objectsData = {};
21
+ if (render?.globals?.customer)
22
+ objectsData.customer = render.globals?.customer;
23
+ if (lang)
24
+ objectsData.local = lang;
25
+ if (render?.context?.product_options_value)
26
+ objectsData.product_options_value = render?.context?.product.options.map((item) => item);
27
+ if (render?.globals?.currency)
28
+ objectsData.currency = currency;
29
+ if (market)
30
+ objectsData.market = market;
31
+ if (render?.globals?.app)
32
+ objectsData.store = render.globals?.app;
33
+ if (render?.context?.seo)
34
+ objectsData.seo = render.context?.seo;
35
+ if (render?.globals?.app?.generalSettings)
36
+ objectsData.settings = render?.globals?.app?.generalSettings;
37
+ if (render?.context?.query?.q)
38
+ objectsData.search = render?.context?.query?.q;
39
+ if (render?.context?.pagination)
40
+ objectsData.pagination = render?.context?.pagination;
41
+ if (render?.context?.products)
42
+ objectsData.products = render?.context?.products;
43
+ if (render?.context?.products && Array.isArray(render.context.products)) {
44
+ const allCollections = render.context.products
45
+ .flatMap((product) => Array.isArray(product.collections) ? product.collections : [])
46
+ .filter((c, i, arr) => c && arr.indexOf(c) === i);
47
+ if (allCollections.length > 0) {
48
+ objectsData.collections = allCollections;
49
+ }
50
+ else if (render?.context?.product?.collections) {
51
+ objectsData.collections = render.context.product.collections;
52
+ }
53
+ else if (render?.context?.collections) {
54
+ objectsData.collections = render.context.collections;
55
+ }
56
+ }
57
+ else if (render?.context?.product?.collections) {
58
+ objectsData.collections = render.context.product.collections;
59
+ }
60
+ else if (render?.context?.collections) {
61
+ objectsData.collections = render.context.collections;
62
+ }
63
+ if (render?.context?.collection || render?.context?.product?.collections?.length > 0)
64
+ objectsData.collection = render?.context?.collection || render?.context?.product?.collections;
65
+ if (render?.context?.product)
66
+ objectsData.product = render?.context?.product;
67
+ if (render?.context?.product)
68
+ objectsData.product = render?.context?.product;
69
+ if (render?.context?.product_options_value)
70
+ objectsData.product_options_value = render?.context?.product.options.map((item) => item);
71
+ if (render?.context?.related_products)
72
+ objectsData.recommendations = render?.context?.related_products;
73
+ if (render?.context?.page)
74
+ objectsData.page = render?.context?.page;
75
+ if (render?.context?.page?.title)
76
+ objectsData.page_title = render?.context?.page.title;
77
+ if (render?.context?.page?.path)
78
+ objectsData.page_path = render?.context?.page.path;
79
+ if (render?.context?.page?.description)
80
+ objectsData.page_description = render?.context?.page?.description;
81
+ if (render?.globals?.cart)
82
+ objectsData.cart = render?.globals?.cart;
83
+ if (settings)
84
+ objectsData.settings = settings;
85
+ if (market || lang || currency)
86
+ objectsData.localization = { market, lang, currency, languages };
87
+ return objectsData;
88
+ }
@@ -34,7 +34,6 @@ function all_products(args = {}) {
34
34
  }).then((data) => {
35
35
  // ✅ استخراج النتائج
36
36
  const products = data?.findAllProducts?.data ?? [];
37
- console.log("🚀 ~ all_products ~ products:", products);
38
37
  return products;
39
38
  }).catch((error) => {
40
39
  console.error("Error in all_products then/catch:", error);
@@ -0,0 +1,2 @@
1
+ declare const _default: string;
2
+ export default _default;