@spinajs/templates-handlebars 2.0.425 → 2.0.427

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 (57) hide show
  1. package/lib/cjs/helpers/comparison.d.ts +106 -0
  2. package/lib/cjs/helpers/comparison.d.ts.map +1 -0
  3. package/lib/cjs/helpers/comparison.js +201 -0
  4. package/lib/cjs/helpers/comparison.js.map +1 -0
  5. package/lib/cjs/helpers/date.d.ts +113 -0
  6. package/lib/cjs/helpers/date.d.ts.map +1 -0
  7. package/lib/cjs/helpers/date.js +438 -0
  8. package/lib/cjs/helpers/date.js.map +1 -0
  9. package/lib/cjs/helpers/index.d.ts +6 -0
  10. package/lib/cjs/helpers/index.d.ts.map +1 -0
  11. package/lib/cjs/helpers/index.js +22 -0
  12. package/lib/cjs/helpers/index.js.map +1 -0
  13. package/lib/cjs/helpers/math.d.ts +117 -0
  14. package/lib/cjs/helpers/math.d.ts.map +1 -0
  15. package/lib/cjs/helpers/math.js +206 -0
  16. package/lib/cjs/helpers/math.js.map +1 -0
  17. package/lib/cjs/helpers/text.d.ts +142 -0
  18. package/lib/cjs/helpers/text.d.ts.map +1 -0
  19. package/lib/cjs/helpers/text.js +271 -0
  20. package/lib/cjs/helpers/text.js.map +1 -0
  21. package/lib/cjs/helpers/translation.d.ts +21 -0
  22. package/lib/cjs/helpers/translation.d.ts.map +1 -0
  23. package/lib/cjs/helpers/translation.js +36 -0
  24. package/lib/cjs/helpers/translation.js.map +1 -0
  25. package/lib/cjs/index.d.ts.map +1 -1
  26. package/lib/cjs/index.js +6 -31
  27. package/lib/cjs/index.js.map +1 -1
  28. package/lib/mjs/helpers/comparison.d.ts +106 -0
  29. package/lib/mjs/helpers/comparison.d.ts.map +1 -0
  30. package/lib/mjs/helpers/comparison.js +178 -0
  31. package/lib/mjs/helpers/comparison.js.map +1 -0
  32. package/lib/mjs/helpers/date.d.ts +113 -0
  33. package/lib/mjs/helpers/date.d.ts.map +1 -0
  34. package/lib/mjs/helpers/date.js +415 -0
  35. package/lib/mjs/helpers/date.js.map +1 -0
  36. package/lib/mjs/helpers/index.d.ts +6 -0
  37. package/lib/mjs/helpers/index.d.ts.map +1 -0
  38. package/lib/mjs/helpers/index.js +6 -0
  39. package/lib/mjs/helpers/index.js.map +1 -0
  40. package/lib/mjs/helpers/math.d.ts +117 -0
  41. package/lib/mjs/helpers/math.d.ts.map +1 -0
  42. package/lib/mjs/helpers/math.js +181 -0
  43. package/lib/mjs/helpers/math.js.map +1 -0
  44. package/lib/mjs/helpers/text.d.ts +142 -0
  45. package/lib/mjs/helpers/text.d.ts.map +1 -0
  46. package/lib/mjs/helpers/text.js +243 -0
  47. package/lib/mjs/helpers/text.js.map +1 -0
  48. package/lib/mjs/helpers/translation.d.ts +21 -0
  49. package/lib/mjs/helpers/translation.d.ts.map +1 -0
  50. package/lib/mjs/helpers/translation.js +30 -0
  51. package/lib/mjs/helpers/translation.js.map +1 -0
  52. package/lib/mjs/index.d.ts.map +1 -1
  53. package/lib/mjs/index.js +7 -32
  54. package/lib/mjs/index.js.map +1 -1
  55. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  56. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  57. package/package.json +8 -8
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__ = __;
4
+ exports.__n = __n;
5
+ exports.__l = __l;
6
+ exports.__h = __h;
7
+ const intl_1 = require("@spinajs/intl");
8
+ /**
9
+ * Translation helper - translates a key to the current language
10
+ * Usage: {{__ "hello"}}
11
+ */
12
+ function __(context, options) {
13
+ return (0, intl_1.__translate)(options.data.root.lang)(context);
14
+ }
15
+ /**
16
+ * Pluralization helper - translates with count-based pluralization
17
+ * Usage: {{__n "items" 5}}
18
+ */
19
+ function __n(context, count, options) {
20
+ return (0, intl_1.__translateNumber)(options.data.root.lang)(context, count);
21
+ }
22
+ /**
23
+ * Translation helper for lowercase
24
+ * Usage: {{__l "HELLO"}}
25
+ */
26
+ function __l(context) {
27
+ return (0, intl_1.__translateL)(context);
28
+ }
29
+ /**
30
+ * Translation helper for HTML content
31
+ * Usage: {{__h "html_content"}}
32
+ */
33
+ function __h(context) {
34
+ return (0, intl_1.__translateH)(context);
35
+ }
36
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/helpers/translation.ts"],"names":[],"mappings":";;AAMA,gBAEC;AAMD,kBAEC;AAMD,kBAEC;AAMD,kBAEC;AAhCD,wCAA2F;AAE3F;;;GAGG;AACH,SAAgB,EAAE,CAAC,OAAe,EAAE,OAAY;IAC9C,OAAO,IAAA,kBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,SAAgB,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,OAAY;IAC9D,OAAO,IAAA,wBAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAgB,GAAG,CAAC,OAAe;IACjC,OAAO,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,SAAgB,GAAG,CAAC,OAAe;IACjC,OAAO,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,qBAEa,kBAAmB,SAAQ,gBAAgB;IAEtD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IAEvB,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAsD;IAEvH,IAAW,IAAI,WAEd;IAED,IAAW,SAAS,WAEnB;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CxB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cA8B7E,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAerD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,qBAEa,kBAAmB,SAAQ,gBAAgB;IAEtD,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IAEvB,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAsD;IAEvH,IAAW,IAAI,WAEd;IAED,IAAW,SAAS,WAEnB;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cA8B7E,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAerD"}
package/lib/cjs/index.js CHANGED
@@ -57,6 +57,7 @@ const configuration_1 = require("@spinajs/configuration");
57
57
  const di_1 = require("@spinajs/di");
58
58
  const handlebars_1 = __importDefault(require("handlebars"));
59
59
  const path_1 = require("path");
60
+ const helpers = __importStar(require("./helpers/index.js"));
60
61
  let HandlebarsRenderer = class HandlebarsRenderer extends templates_1.TemplateRenderer {
61
62
  constructor() {
62
63
  super(...arguments);
@@ -69,38 +70,12 @@ let HandlebarsRenderer = class HandlebarsRenderer extends templates_1.TemplateRe
69
70
  return '.handlebars';
70
71
  }
71
72
  async resolve() {
72
- handlebars_1.default.registerHelper('__', (context, options) => {
73
- return (0, intl_1.__translate)(options.data.root.lang)(context);
74
- });
75
- handlebars_1.default.registerHelper('__n', (context, count, options) => {
76
- return (0, intl_1.__translateNumber)(options.data.root.lang)(context, count);
77
- });
78
- handlebars_1.default.registerHelper('__l', (context) => {
79
- return (0, intl_1.__translateL)(context);
80
- });
81
- handlebars_1.default.registerHelper('__h', (context) => {
82
- return (0, intl_1.__translateH)(context);
83
- });
84
- handlebars_1.default.registerHelper('__textRight', (context, length) => {
85
- if (context.length > length) {
86
- return context.substring(0, length);
73
+ // Register all helpers dynamically
74
+ Object.keys(helpers).forEach((helperName) => {
75
+ const helper = helpers[helperName];
76
+ if (typeof helper === 'function') {
77
+ handlebars_1.default.registerHelper(helperName, helper);
87
78
  }
88
- return context.padStart(length, ' ');
89
- });
90
- handlebars_1.default.registerHelper('__textCenter', (context, length) => {
91
- if (context.length > length) {
92
- return context.substring(0, length);
93
- }
94
- else if (context.length == length) {
95
- return context;
96
- }
97
- else {
98
- const leftPadding = (length - context.length) / 2;
99
- return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
100
- }
101
- });
102
- handlebars_1.default.registerHelper('isOdd', function (index) {
103
- return index % 2 !== 0;
104
79
  });
105
80
  await super.resolve();
106
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Checks if a number is odd
3
+ * Usage: {{#if (isOdd @index)}}...{{/if}}
4
+ */
5
+ export declare function isOdd(index: number): boolean;
6
+ /**
7
+ * Checks if a number is even
8
+ * Usage: {{#if (isEven @index)}}...{{/if}}
9
+ */
10
+ export declare function isEven(index: number): boolean;
11
+ /**
12
+ * Equality comparison
13
+ * Usage: {{#if (eq a b)}}...{{/if}}
14
+ */
15
+ export declare function eq(a: any, b: any): boolean;
16
+ /**
17
+ * Not equal comparison
18
+ * Usage: {{#if (ne a b)}}...{{/if}}
19
+ */
20
+ export declare function ne(a: any, b: any): boolean;
21
+ /**
22
+ * Less than comparison
23
+ * Usage: {{#if (lt a b)}}...{{/if}}
24
+ */
25
+ export declare function lt(a: any, b: any): boolean;
26
+ /**
27
+ * Greater than comparison
28
+ * Usage: {{#if (gt a b)}}...{{/if}}
29
+ */
30
+ export declare function gt(a: any, b: any): boolean;
31
+ /**
32
+ * Less than or equal comparison
33
+ * Usage: {{#if (lte a b)}}...{{/if}}
34
+ */
35
+ export declare function lte(a: any, b: any): boolean;
36
+ /**
37
+ * Greater than or equal comparison
38
+ * Usage: {{#if (gte a b)}}...{{/if}}
39
+ */
40
+ export declare function gte(a: any, b: any): boolean;
41
+ /**
42
+ * Logical AND operation
43
+ * Usage: {{#if (and a b)}}...{{/if}}
44
+ */
45
+ export declare function and(...args: any[]): boolean;
46
+ /**
47
+ * Logical OR operation
48
+ * Usage: {{#if (or a b)}}...{{/if}}
49
+ */
50
+ export declare function or(...args: any[]): boolean;
51
+ /**
52
+ * Logical NOT operation
53
+ * Usage: {{#if (not value)}}...{{/if}}
54
+ */
55
+ export declare function not(value: any): boolean;
56
+ /**
57
+ * Check if value is null or undefined
58
+ * Usage: {{#if (isNil value)}}...{{/if}}
59
+ */
60
+ export declare function isNil(value: any): boolean;
61
+ /**
62
+ * Check if value is truthy
63
+ * Usage: {{#if (isTruthy value)}}...{{/if}}
64
+ */
65
+ export declare function isTruthy(value: any): boolean;
66
+ /**
67
+ * Check if value is falsy
68
+ * Usage: {{#if (isFalsy value)}}...{{/if}}
69
+ */
70
+ export declare function isFalsy(value: any): boolean;
71
+ /**
72
+ * Check if value is empty (null, undefined, empty string, empty array, empty object)
73
+ * Usage: {{#if (isEmpty value)}}...{{/if}}
74
+ */
75
+ export declare function isEmpty(value: any): boolean;
76
+ /**
77
+ * Check if value is not empty
78
+ * Usage: {{#if (isNotEmpty value)}}...{{/if}}
79
+ */
80
+ export declare function isNotEmpty(value: any): boolean;
81
+ /**
82
+ * Check if value is in array or string contains substring
83
+ * Usage: {{#if (includes array value)}}...{{/if}}
84
+ */
85
+ export declare function includes(collection: any[] | string, value: any): boolean;
86
+ /**
87
+ * Check if string starts with prefix
88
+ * Usage: {{#if (startsWith str "prefix")}}...{{/if}}
89
+ */
90
+ export declare function startsWith(str: string, prefix: string): boolean;
91
+ /**
92
+ * Check if string ends with suffix
93
+ * Usage: {{#if (endsWith str "suffix")}}...{{/if}}
94
+ */
95
+ export declare function endsWith(str: string, suffix: string): boolean;
96
+ /**
97
+ * Check if value is between min and max (inclusive)
98
+ * Usage: {{#if (between value 1 10)}}...{{/if}}
99
+ */
100
+ export declare function between(value: number, min: number, max: number): boolean;
101
+ /**
102
+ * Compare values with custom operator
103
+ * Usage: {{#if (compare a ">" b)}}...{{/if}}
104
+ */
105
+ export declare function compare(a: any, operator: string, b: any): boolean;
106
+ //# sourceMappingURL=comparison.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../../../src/helpers/comparison.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAI3C;AAED;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAI1C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEvC;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAK3C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE9C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAQxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAYjE"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Checks if a number is odd
3
+ * Usage: {{#if (isOdd @index)}}...{{/if}}
4
+ */
5
+ export function isOdd(index) {
6
+ return index % 2 !== 0;
7
+ }
8
+ /**
9
+ * Checks if a number is even
10
+ * Usage: {{#if (isEven @index)}}...{{/if}}
11
+ */
12
+ export function isEven(index) {
13
+ return index % 2 === 0;
14
+ }
15
+ /**
16
+ * Equality comparison
17
+ * Usage: {{#if (eq a b)}}...{{/if}}
18
+ */
19
+ export function eq(a, b) {
20
+ return a === b;
21
+ }
22
+ /**
23
+ * Not equal comparison
24
+ * Usage: {{#if (ne a b)}}...{{/if}}
25
+ */
26
+ export function ne(a, b) {
27
+ return a !== b;
28
+ }
29
+ /**
30
+ * Less than comparison
31
+ * Usage: {{#if (lt a b)}}...{{/if}}
32
+ */
33
+ export function lt(a, b) {
34
+ return a < b;
35
+ }
36
+ /**
37
+ * Greater than comparison
38
+ * Usage: {{#if (gt a b)}}...{{/if}}
39
+ */
40
+ export function gt(a, b) {
41
+ return a > b;
42
+ }
43
+ /**
44
+ * Less than or equal comparison
45
+ * Usage: {{#if (lte a b)}}...{{/if}}
46
+ */
47
+ export function lte(a, b) {
48
+ return a <= b;
49
+ }
50
+ /**
51
+ * Greater than or equal comparison
52
+ * Usage: {{#if (gte a b)}}...{{/if}}
53
+ */
54
+ export function gte(a, b) {
55
+ return a >= b;
56
+ }
57
+ /**
58
+ * Logical AND operation
59
+ * Usage: {{#if (and a b)}}...{{/if}}
60
+ */
61
+ export function and(...args) {
62
+ // Last argument is Handlebars options object
63
+ const values = args.slice(0, -1);
64
+ return values.every(v => !!v);
65
+ }
66
+ /**
67
+ * Logical OR operation
68
+ * Usage: {{#if (or a b)}}...{{/if}}
69
+ */
70
+ export function or(...args) {
71
+ // Last argument is Handlebars options object
72
+ const values = args.slice(0, -1);
73
+ return values.some(v => !!v);
74
+ }
75
+ /**
76
+ * Logical NOT operation
77
+ * Usage: {{#if (not value)}}...{{/if}}
78
+ */
79
+ export function not(value) {
80
+ return !value;
81
+ }
82
+ /**
83
+ * Check if value is null or undefined
84
+ * Usage: {{#if (isNil value)}}...{{/if}}
85
+ */
86
+ export function isNil(value) {
87
+ return value === null || value === undefined;
88
+ }
89
+ /**
90
+ * Check if value is truthy
91
+ * Usage: {{#if (isTruthy value)}}...{{/if}}
92
+ */
93
+ export function isTruthy(value) {
94
+ return !!value;
95
+ }
96
+ /**
97
+ * Check if value is falsy
98
+ * Usage: {{#if (isFalsy value)}}...{{/if}}
99
+ */
100
+ export function isFalsy(value) {
101
+ return !value;
102
+ }
103
+ /**
104
+ * Check if value is empty (null, undefined, empty string, empty array, empty object)
105
+ * Usage: {{#if (isEmpty value)}}...{{/if}}
106
+ */
107
+ export function isEmpty(value) {
108
+ if (value === null || value === undefined)
109
+ return true;
110
+ if (typeof value === 'string' || Array.isArray(value))
111
+ return value.length === 0;
112
+ if (typeof value === 'object')
113
+ return Object.keys(value).length === 0;
114
+ return false;
115
+ }
116
+ /**
117
+ * Check if value is not empty
118
+ * Usage: {{#if (isNotEmpty value)}}...{{/if}}
119
+ */
120
+ export function isNotEmpty(value) {
121
+ return !isEmpty(value);
122
+ }
123
+ /**
124
+ * Check if value is in array or string contains substring
125
+ * Usage: {{#if (includes array value)}}...{{/if}}
126
+ */
127
+ export function includes(collection, value) {
128
+ if (Array.isArray(collection)) {
129
+ return collection.includes(value);
130
+ }
131
+ if (typeof collection === 'string' && typeof value === 'string') {
132
+ return collection.includes(value);
133
+ }
134
+ return false;
135
+ }
136
+ /**
137
+ * Check if string starts with prefix
138
+ * Usage: {{#if (startsWith str "prefix")}}...{{/if}}
139
+ */
140
+ export function startsWith(str, prefix) {
141
+ if (typeof str !== 'string' || typeof prefix !== 'string')
142
+ return false;
143
+ return str.startsWith(prefix);
144
+ }
145
+ /**
146
+ * Check if string ends with suffix
147
+ * Usage: {{#if (endsWith str "suffix")}}...{{/if}}
148
+ */
149
+ export function endsWith(str, suffix) {
150
+ if (typeof str !== 'string' || typeof suffix !== 'string')
151
+ return false;
152
+ return str.endsWith(suffix);
153
+ }
154
+ /**
155
+ * Check if value is between min and max (inclusive)
156
+ * Usage: {{#if (between value 1 10)}}...{{/if}}
157
+ */
158
+ export function between(value, min, max) {
159
+ return value >= min && value <= max;
160
+ }
161
+ /**
162
+ * Compare values with custom operator
163
+ * Usage: {{#if (compare a ">" b)}}...{{/if}}
164
+ */
165
+ export function compare(a, operator, b) {
166
+ switch (operator) {
167
+ case '==': return a == b;
168
+ case '===': return a === b;
169
+ case '!=': return a != b;
170
+ case '!==': return a !== b;
171
+ case '<': return a < b;
172
+ case '>': return a > b;
173
+ case '<=': return a <= b;
174
+ case '>=': return a >= b;
175
+ default: return false;
176
+ }
177
+ }
178
+ //# sourceMappingURL=comparison.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../../src/helpers/comparison.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Formats a date according to the specified format string
3
+ * Usage: {{formatDate date "dd/MM/yyyy"}}
4
+ *
5
+ * @param date - Can be Date, DateTime, or ISO string
6
+ * @param format - Luxon format string (e.g., "dd/MM/yyyy HH:mm:ss")
7
+ * @returns Formatted date string
8
+ */
9
+ export declare function formatDate(date: unknown, format: string): string;
10
+ /**
11
+ * Get current date/time
12
+ * Usage: {{now "dd/MM/yyyy HH:mm:ss"}}
13
+ */
14
+ export declare function now(format?: string): string;
15
+ /**
16
+ * Get date relative to now (e.g., "2 days ago", "in 3 hours")
17
+ * Usage: {{dateRelative date}}
18
+ */
19
+ export declare function dateRelative(date: unknown): string;
20
+ /**
21
+ * Add time to date
22
+ * Usage: {{dateAdd date 5 "days"}}
23
+ * Units: years, months, weeks, days, hours, minutes, seconds
24
+ */
25
+ export declare function dateAdd(date: unknown, amount: number, unit: string): string;
26
+ /**
27
+ * Subtract time from date
28
+ * Usage: {{dateSubtract date 5 "days"}}
29
+ */
30
+ export declare function dateSubtract(date: unknown, amount: number, unit: string): string;
31
+ /**
32
+ * Get difference between two dates
33
+ * Usage: {{dateDiff date1 date2 "days"}}
34
+ * Returns number of units between dates
35
+ */
36
+ export declare function dateDiff(date1: unknown, date2: unknown, unit?: string): number;
37
+ /**
38
+ * Check if date is before another date
39
+ * Usage: {{#if (dateBefore date1 date2)}}...{{/if}}
40
+ */
41
+ export declare function dateBefore(date1: unknown, date2: unknown): boolean;
42
+ /**
43
+ * Check if date is after another date
44
+ * Usage: {{#if (dateAfter date1 date2)}}...{{/if}}
45
+ */
46
+ export declare function dateAfter(date1: unknown, date2: unknown): boolean;
47
+ /**
48
+ * Check if date is between two dates
49
+ * Usage: {{#if (dateBetween date start end)}}...{{/if}}
50
+ */
51
+ export declare function dateBetween(date: unknown, start: unknown, end: unknown): boolean;
52
+ /**
53
+ * Get start of time period
54
+ * Usage: {{dateStartOf date "month"}}
55
+ * Units: year, month, week, day, hour, minute, second
56
+ */
57
+ export declare function dateStartOf(date: unknown, unit: string): string;
58
+ /**
59
+ * Get end of time period
60
+ * Usage: {{dateEndOf date "month"}}
61
+ */
62
+ export declare function dateEndOf(date: unknown, unit: string): string;
63
+ /**
64
+ * Format date as ISO string
65
+ * Usage: {{dateISO date}}
66
+ */
67
+ export declare function dateISO(date: unknown): string;
68
+ /**
69
+ * Get timestamp (milliseconds since epoch)
70
+ * Usage: {{timestamp date}}
71
+ */
72
+ export declare function timestamp(date?: unknown): number;
73
+ /**
74
+ * Get Unix timestamp (seconds since epoch)
75
+ * Usage: {{unixTimestamp date}}
76
+ */
77
+ export declare function unixTimestamp(date?: unknown): number;
78
+ /**
79
+ * Parse date from timestamp
80
+ * Usage: {{fromTimestamp 1640000000000 "dd/MM/yyyy"}}
81
+ */
82
+ export declare function fromTimestamp(ts: number, format?: string): string;
83
+ /**
84
+ * Get year from date
85
+ * Usage: {{year date}}
86
+ */
87
+ export declare function year(date: unknown): number;
88
+ /**
89
+ * Get month from date (1-12)
90
+ * Usage: {{month date}}
91
+ */
92
+ export declare function month(date: unknown): number;
93
+ /**
94
+ * Get day of month from date (1-31)
95
+ * Usage: {{day date}}
96
+ */
97
+ export declare function day(date: unknown): number;
98
+ /**
99
+ * Get hour from date (0-23)
100
+ * Usage: {{hour date}}
101
+ */
102
+ export declare function hour(date: unknown): number;
103
+ /**
104
+ * Get minute from date (0-59)
105
+ * Usage: {{minute date}}
106
+ */
107
+ export declare function minute(date: unknown): number;
108
+ /**
109
+ * Get weekday from date (1=Monday, 7=Sunday)
110
+ * Usage: {{weekday date}}
111
+ */
112
+ export declare function weekday(date: unknown): number;
113
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/helpers/date.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBhE;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAelD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkC3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAe,GAAG,MAAM,CA6CtF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAElE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B/D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B7D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAY7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAchD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAc1C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAc3C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAczC;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAc1C;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAc5C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAc7C"}