@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,181 @@
1
+ /**
2
+ * Addition
3
+ * Usage: {{add 5 3}} → 8
4
+ */
5
+ export function add(...args) {
6
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
7
+ return values.reduce((sum, val) => sum + val, 0);
8
+ }
9
+ /**
10
+ * Subtraction
11
+ * Usage: {{subtract 10 3}} → 7
12
+ */
13
+ export function subtract(a, b) {
14
+ return (Number(a) || 0) - (Number(b) || 0);
15
+ }
16
+ /**
17
+ * Multiplication
18
+ * Usage: {{multiply 5 3}} → 15
19
+ */
20
+ export function multiply(...args) {
21
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
22
+ return values.reduce((product, val) => product * val, 1);
23
+ }
24
+ /**
25
+ * Division
26
+ * Usage: {{divide 10 2}} → 5
27
+ */
28
+ export function divide(a, b) {
29
+ const divisor = Number(b) || 1;
30
+ return (Number(a) || 0) / divisor;
31
+ }
32
+ /**
33
+ * Modulo (remainder)
34
+ * Usage: {{modulo 10 3}} → 1
35
+ */
36
+ export function modulo(a, b) {
37
+ return (Number(a) || 0) % (Number(b) || 1);
38
+ }
39
+ /**
40
+ * Absolute value
41
+ * Usage: {{abs -5}} → 5
42
+ */
43
+ export function abs(value) {
44
+ return Math.abs(Number(value) || 0);
45
+ }
46
+ /**
47
+ * Round to nearest integer
48
+ * Usage: {{round 3.7}} → 4
49
+ */
50
+ export function round(value) {
51
+ return Math.round(Number(value) || 0);
52
+ }
53
+ /**
54
+ * Round down (floor)
55
+ * Usage: {{floor 3.7}} → 3
56
+ */
57
+ export function floor(value) {
58
+ return Math.floor(Number(value) || 0);
59
+ }
60
+ /**
61
+ * Round up (ceiling)
62
+ * Usage: {{ceil 3.2}} → 4
63
+ */
64
+ export function ceil(value) {
65
+ return Math.ceil(Number(value) || 0);
66
+ }
67
+ /**
68
+ * Fixed decimal places
69
+ * Usage: {{toFixed 3.14159 2}} → "3.14"
70
+ */
71
+ export function toFixed(value, decimals) {
72
+ return (Number(value) || 0).toFixed(decimals);
73
+ }
74
+ /**
75
+ * Convert to integer (parse as int)
76
+ * Usage: {{toInt "42"}} → 42
77
+ * Usage: {{toInt 3.7}} → 3
78
+ */
79
+ export function toInt(value, radix = 10) {
80
+ return parseInt(String(value), radix) || 0;
81
+ }
82
+ /**
83
+ * Power (exponentiation)
84
+ * Usage: {{pow 2 3}} → 8
85
+ */
86
+ export function pow(base, exponent) {
87
+ return Math.pow(Number(base) || 0, Number(exponent) || 0);
88
+ }
89
+ /**
90
+ * Square root
91
+ * Usage: {{sqrt 16}} → 4
92
+ */
93
+ export function sqrt(value) {
94
+ return Math.sqrt(Number(value) || 0);
95
+ }
96
+ /**
97
+ * Minimum value from arguments
98
+ * Usage: {{min 5 2 8 1}} → 1
99
+ */
100
+ export function min(...args) {
101
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
102
+ return Math.min(...values);
103
+ }
104
+ /**
105
+ * Maximum value from arguments
106
+ * Usage: {{max 5 2 8 1}} → 8
107
+ */
108
+ export function max(...args) {
109
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
110
+ return Math.max(...values);
111
+ }
112
+ /**
113
+ * Average (mean) of values
114
+ * Usage: {{avg 10 20 30}} → 20
115
+ */
116
+ export function avg(...args) {
117
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
118
+ if (values.length === 0)
119
+ return 0;
120
+ return values.reduce((sum, val) => sum + val, 0) / values.length;
121
+ }
122
+ /**
123
+ * Sum of values
124
+ * Usage: {{sum 10 20 30}} → 60
125
+ */
126
+ export function sum(...args) {
127
+ const values = args.slice(0, -1).map(v => Number(v) || 0);
128
+ return values.reduce((sum, val) => sum + val, 0);
129
+ }
130
+ /**
131
+ * Random number between 0 and 1
132
+ * Usage: {{random}}
133
+ */
134
+ export function random() {
135
+ return Math.random();
136
+ }
137
+ /**
138
+ * Random integer between min and max (inclusive)
139
+ * Usage: {{randomInt 1 10}}
140
+ */
141
+ export function randomInt(min, max) {
142
+ const minVal = Math.ceil(Number(min) || 0);
143
+ const maxVal = Math.floor(Number(max) || 0);
144
+ return Math.floor(Math.random() * (maxVal - minVal + 1)) + minVal;
145
+ }
146
+ /**
147
+ * Clamp value between min and max
148
+ * Usage: {{clamp 15 0 10}} → 10
149
+ */
150
+ export function clamp(value, min, max) {
151
+ const val = Number(value) || 0;
152
+ const minVal = Number(min) || 0;
153
+ const maxVal = Number(max) || 0;
154
+ return Math.min(Math.max(val, minVal), maxVal);
155
+ }
156
+ /**
157
+ * Percentage calculation
158
+ * Usage: {{percentage 25 200}} → 12.5
159
+ */
160
+ export function percentage(value, total) {
161
+ const totalNum = Number(total) || 1;
162
+ return ((Number(value) || 0) / totalNum) * 100;
163
+ }
164
+ /**
165
+ * Format number with thousand separators
166
+ * Usage: {{formatNumber 1234567}} → "1,234,567"
167
+ */
168
+ export function formatNumber(value, locale = 'en-US') {
169
+ return (Number(value) || 0).toLocaleString(locale);
170
+ }
171
+ /**
172
+ * Format as currency
173
+ * Usage: {{currency 1234.56 "USD"}} → "$1,234.56"
174
+ */
175
+ export function currency(value, currencyCode = 'USD', locale = 'en-US') {
176
+ return (Number(value) || 0).toLocaleString(locale, {
177
+ style: 'currency',
178
+ currency: currencyCode,
179
+ });
180
+ }
181
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../src/helpers/math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Right-aligns text by padding with spaces on the left
3
+ * Usage: {{__textRight "hello" 10}}
4
+ * Result: " hello"
5
+ *
6
+ * @param context - The text to align
7
+ * @param length - The total length of the output string
8
+ * @returns Right-aligned text, truncated if longer than length
9
+ */
10
+ export declare function __textRight(context: string, length: number): string;
11
+ /**
12
+ * Center-aligns text by padding with spaces on both sides
13
+ * Usage: {{__textCenter "hello" 10}}
14
+ * Result: " hello "
15
+ *
16
+ * @param context - The text to center
17
+ * @param length - The total length of the output string
18
+ * @returns Center-aligned text, truncated if longer than length
19
+ */
20
+ export declare function __textCenter(context: string, length: number): string;
21
+ /**
22
+ * Convert string to uppercase
23
+ * Usage: {{uppercase "hello"}} → "HELLO"
24
+ */
25
+ export declare function uppercase(str: string): string;
26
+ /**
27
+ * Convert string to lowercase
28
+ * Usage: {{lowercase "HELLO"}} → "hello"
29
+ */
30
+ export declare function lowercase(str: string): string;
31
+ /**
32
+ * Capitalize first letter of string
33
+ * Usage: {{capitalize "hello world"}} → "Hello world"
34
+ */
35
+ export declare function capitalize(str: string): string;
36
+ /**
37
+ * Capitalize first letter of each word
38
+ * Usage: {{capitalizeWords "hello world"}} → "Hello World"
39
+ */
40
+ export declare function capitalizeWords(str: string): string;
41
+ /**
42
+ * Truncate string to specified length with optional suffix
43
+ * Usage: {{truncate "Hello World" 5}} → "Hello..."
44
+ * Usage: {{truncate "Hello World" 5 "…"}} → "Hello…"
45
+ */
46
+ export declare function truncate(str: string, length: number, suffix?: string): string;
47
+ /**
48
+ * Truncate string by word boundary
49
+ * Usage: {{truncateWords "The quick brown fox" 2}} → "The quick..."
50
+ */
51
+ export declare function truncateWords(str: string, count: number, suffix?: string): string;
52
+ /**
53
+ * Reverse string
54
+ * Usage: {{reverse "hello"}} → "olleh"
55
+ */
56
+ export declare function reverse(str: string): string;
57
+ /**
58
+ * Repeat string n times
59
+ * Usage: {{repeat "hi" 3}} → "hihihi"
60
+ */
61
+ export declare function repeat(str: string, count: number): string;
62
+ /**
63
+ * Replace all occurrences in string
64
+ * Usage: {{replace "hello world" "world" "universe"}} → "hello universe"
65
+ */
66
+ export declare function replace(str: string, search: string, replacement: string): string;
67
+ /**
68
+ * Trim whitespace from both ends
69
+ * Usage: {{trim " hello "}} → "hello"
70
+ */
71
+ export declare function trim(str: string): string;
72
+ /**
73
+ * Trim whitespace from left
74
+ * Usage: {{trimLeft " hello"}} → "hello"
75
+ */
76
+ export declare function trimLeft(str: string): string;
77
+ /**
78
+ * Trim whitespace from right
79
+ * Usage: {{trimRight "hello "}} → "hello"
80
+ */
81
+ export declare function trimRight(str: string): string;
82
+ /**
83
+ * Split string into array
84
+ * Usage: {{split "a,b,c" ","}} → ["a", "b", "c"]
85
+ */
86
+ export declare function split(str: string, separator: string): string[];
87
+ /**
88
+ * Join array into string
89
+ * Usage: {{join items ", "}}
90
+ */
91
+ export declare function join(arr: any[], separator?: string): string;
92
+ /**
93
+ * Get substring
94
+ * Usage: {{substring "hello world" 0 5}} → "hello"
95
+ */
96
+ export declare function substring(str: string, start: number, end?: number): string;
97
+ /**
98
+ * Get string length
99
+ * Usage: {{length "hello"}} → 5
100
+ */
101
+ export declare function length(str: string | any[]): number;
102
+ /**
103
+ * Pad string on the left
104
+ * Usage: {{padLeft "5" 3 "0"}} → "005"
105
+ */
106
+ export declare function padLeft(str: string, length: number, char?: string): string;
107
+ /**
108
+ * Pad string on the right
109
+ * Usage: {{padRight "5" 3 "0"}} → "500"
110
+ */
111
+ export declare function padRight(str: string, length: number, char?: string): string;
112
+ /**
113
+ * Remove HTML tags from string
114
+ * Usage: {{stripHtml "<p>Hello</p>"}} → "Hello"
115
+ */
116
+ export declare function stripHtml(str: string): string;
117
+ /**
118
+ * Escape HTML special characters
119
+ * Usage: {{escapeHtml "<div>"}} → "&lt;div&gt;"
120
+ */
121
+ export declare function escapeHtml(str: string): string;
122
+ /**
123
+ * Convert string to URL-friendly slug
124
+ * Usage: {{slugify "Hello World!"}} → "hello-world"
125
+ */
126
+ export declare function slugify(str: string): string;
127
+ /**
128
+ * Convert string to camelCase
129
+ * Usage: {{camelCase "hello world"}} → "helloWorld"
130
+ */
131
+ export declare function camelCase(str: string): string;
132
+ /**
133
+ * Convert string to snake_case
134
+ * Usage: {{snakeCase "helloWorld"}} → "hello_world"
135
+ */
136
+ export declare function snakeCase(str: string): string;
137
+ /**
138
+ * Convert string to kebab-case
139
+ * Usage: {{kebabCase "helloWorld"}} → "hello-world"
140
+ */
141
+ export declare function kebabCase(str: string): string;
142
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/helpers/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASpE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAc,GAAG,MAAM,CAIpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAc,GAAG,MAAM,CAIxF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM,CAGjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAGlD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,CAE/E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,CAEhF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM7C"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Right-aligns text by padding with spaces on the left
3
+ * Usage: {{__textRight "hello" 10}}
4
+ * Result: " hello"
5
+ *
6
+ * @param context - The text to align
7
+ * @param length - The total length of the output string
8
+ * @returns Right-aligned text, truncated if longer than length
9
+ */
10
+ export function __textRight(context, length) {
11
+ if (context.length > length) {
12
+ return context.substring(0, length);
13
+ }
14
+ return context.padStart(length, ' ');
15
+ }
16
+ /**
17
+ * Center-aligns text by padding with spaces on both sides
18
+ * Usage: {{__textCenter "hello" 10}}
19
+ * Result: " hello "
20
+ *
21
+ * @param context - The text to center
22
+ * @param length - The total length of the output string
23
+ * @returns Center-aligned text, truncated if longer than length
24
+ */
25
+ export function __textCenter(context, length) {
26
+ if (context.length > length) {
27
+ return context.substring(0, length);
28
+ }
29
+ else if (context.length === length) {
30
+ return context;
31
+ }
32
+ else {
33
+ const leftPadding = Math.floor((length - context.length) / 2);
34
+ return context.padStart(leftPadding + context.length, ' ').padEnd(length, ' ');
35
+ }
36
+ }
37
+ /**
38
+ * Convert string to uppercase
39
+ * Usage: {{uppercase "hello"}} → "HELLO"
40
+ */
41
+ export function uppercase(str) {
42
+ return String(str || '').toUpperCase();
43
+ }
44
+ /**
45
+ * Convert string to lowercase
46
+ * Usage: {{lowercase "HELLO"}} → "hello"
47
+ */
48
+ export function lowercase(str) {
49
+ return String(str || '').toLowerCase();
50
+ }
51
+ /**
52
+ * Capitalize first letter of string
53
+ * Usage: {{capitalize "hello world"}} → "Hello world"
54
+ */
55
+ export function capitalize(str) {
56
+ const text = String(str || '');
57
+ return text.charAt(0).toUpperCase() + text.slice(1);
58
+ }
59
+ /**
60
+ * Capitalize first letter of each word
61
+ * Usage: {{capitalizeWords "hello world"}} → "Hello World"
62
+ */
63
+ export function capitalizeWords(str) {
64
+ return String(str || '')
65
+ .split(' ')
66
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
67
+ .join(' ');
68
+ }
69
+ /**
70
+ * Truncate string to specified length with optional suffix
71
+ * Usage: {{truncate "Hello World" 5}} → "Hello..."
72
+ * Usage: {{truncate "Hello World" 5 "…"}} → "Hello…"
73
+ */
74
+ export function truncate(str, length, suffix = '...') {
75
+ const text = String(str || '');
76
+ if (text.length <= length)
77
+ return text;
78
+ return text.substring(0, length) + suffix;
79
+ }
80
+ /**
81
+ * Truncate string by word boundary
82
+ * Usage: {{truncateWords "The quick brown fox" 2}} → "The quick..."
83
+ */
84
+ export function truncateWords(str, count, suffix = '...') {
85
+ const words = String(str || '').split(' ');
86
+ if (words.length <= count)
87
+ return str;
88
+ return words.slice(0, count).join(' ') + suffix;
89
+ }
90
+ /**
91
+ * Reverse string
92
+ * Usage: {{reverse "hello"}} → "olleh"
93
+ */
94
+ export function reverse(str) {
95
+ return String(str || '').split('').reverse().join('');
96
+ }
97
+ /**
98
+ * Repeat string n times
99
+ * Usage: {{repeat "hi" 3}} → "hihihi"
100
+ */
101
+ export function repeat(str, count) {
102
+ return String(str || '').repeat(Math.max(0, count));
103
+ }
104
+ /**
105
+ * Replace all occurrences in string
106
+ * Usage: {{replace "hello world" "world" "universe"}} → "hello universe"
107
+ */
108
+ export function replace(str, search, replacement) {
109
+ return String(str || '').split(search).join(replacement);
110
+ }
111
+ /**
112
+ * Trim whitespace from both ends
113
+ * Usage: {{trim " hello "}} → "hello"
114
+ */
115
+ export function trim(str) {
116
+ return String(str || '').trim();
117
+ }
118
+ /**
119
+ * Trim whitespace from left
120
+ * Usage: {{trimLeft " hello"}} → "hello"
121
+ */
122
+ export function trimLeft(str) {
123
+ return String(str || '').trimStart();
124
+ }
125
+ /**
126
+ * Trim whitespace from right
127
+ * Usage: {{trimRight "hello "}} → "hello"
128
+ */
129
+ export function trimRight(str) {
130
+ return String(str || '').trimEnd();
131
+ }
132
+ /**
133
+ * Split string into array
134
+ * Usage: {{split "a,b,c" ","}} → ["a", "b", "c"]
135
+ */
136
+ export function split(str, separator) {
137
+ return String(str || '').split(separator);
138
+ }
139
+ /**
140
+ * Join array into string
141
+ * Usage: {{join items ", "}}
142
+ */
143
+ export function join(arr, separator = ', ') {
144
+ if (!Array.isArray(arr))
145
+ return '';
146
+ return arr.join(separator);
147
+ }
148
+ /**
149
+ * Get substring
150
+ * Usage: {{substring "hello world" 0 5}} → "hello"
151
+ */
152
+ export function substring(str, start, end) {
153
+ return String(str || '').substring(start, end);
154
+ }
155
+ /**
156
+ * Get string length
157
+ * Usage: {{length "hello"}} → 5
158
+ */
159
+ export function length(str) {
160
+ if (Array.isArray(str))
161
+ return str.length;
162
+ return String(str || '').length;
163
+ }
164
+ /**
165
+ * Pad string on the left
166
+ * Usage: {{padLeft "5" 3 "0"}} → "005"
167
+ */
168
+ export function padLeft(str, length, char = ' ') {
169
+ return String(str || '').padStart(length, char);
170
+ }
171
+ /**
172
+ * Pad string on the right
173
+ * Usage: {{padRight "5" 3 "0"}} → "500"
174
+ */
175
+ export function padRight(str, length, char = ' ') {
176
+ return String(str || '').padEnd(length, char);
177
+ }
178
+ /**
179
+ * Remove HTML tags from string
180
+ * Usage: {{stripHtml "<p>Hello</p>"}} → "Hello"
181
+ */
182
+ export function stripHtml(str) {
183
+ return String(str || '').replace(/<[^>]*>/g, '');
184
+ }
185
+ /**
186
+ * Escape HTML special characters
187
+ * Usage: {{escapeHtml "<div>"}} → "&lt;div&gt;"
188
+ */
189
+ export function escapeHtml(str) {
190
+ const text = String(str || '');
191
+ const map = {
192
+ '&': '&amp;',
193
+ '<': '&lt;',
194
+ '>': '&gt;',
195
+ '"': '&quot;',
196
+ "'": '&#39;',
197
+ };
198
+ return text.replace(/[&<>"']/g, char => map[char]);
199
+ }
200
+ /**
201
+ * Convert string to URL-friendly slug
202
+ * Usage: {{slugify "Hello World!"}} → "hello-world"
203
+ */
204
+ export function slugify(str) {
205
+ return String(str || '')
206
+ .toLowerCase()
207
+ .trim()
208
+ .replace(/[^\w\s-]/g, '')
209
+ .replace(/[\s_-]+/g, '-')
210
+ .replace(/^-+|-+$/g, '');
211
+ }
212
+ /**
213
+ * Convert string to camelCase
214
+ * Usage: {{camelCase "hello world"}} → "helloWorld"
215
+ */
216
+ export function camelCase(str) {
217
+ return String(str || '')
218
+ .toLowerCase()
219
+ .replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase());
220
+ }
221
+ /**
222
+ * Convert string to snake_case
223
+ * Usage: {{snakeCase "helloWorld"}} → "hello_world"
224
+ */
225
+ export function snakeCase(str) {
226
+ return String(str || '')
227
+ .replace(/([A-Z])/g, '_$1')
228
+ .toLowerCase()
229
+ .replace(/[^a-z0-9]+/g, '_')
230
+ .replace(/^_|_$/g, '');
231
+ }
232
+ /**
233
+ * Convert string to kebab-case
234
+ * Usage: {{kebabCase "helloWorld"}} → "hello-world"
235
+ */
236
+ export function kebabCase(str) {
237
+ return String(str || '')
238
+ .replace(/([A-Z])/g, '-$1')
239
+ .toLowerCase()
240
+ .replace(/[^a-z0-9]+/g, '-')
241
+ .replace(/^-|-$/g, '');
242
+ }
243
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/helpers/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Translation helper - translates a key to the current language
3
+ * Usage: {{__ "hello"}}
4
+ */
5
+ export declare function __(context: string, options: any): string;
6
+ /**
7
+ * Pluralization helper - translates with count-based pluralization
8
+ * Usage: {{__n "items" 5}}
9
+ */
10
+ export declare function __n(context: string, count: number, options: any): string;
11
+ /**
12
+ * Translation helper for lowercase
13
+ * Usage: {{__l "HELLO"}}
14
+ */
15
+ export declare function __l(context: string): string[];
16
+ /**
17
+ * Translation helper for HTML content
18
+ * Usage: {{__h "html_content"}}
19
+ */
20
+ export declare function __h(context: string): any[];
21
+ //# sourceMappingURL=translation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/helpers/translation.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAE/C;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAE/D;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,YAElC;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,SAElC"}
@@ -0,0 +1,30 @@
1
+ import { __translate, __translateNumber, __translateL, __translateH } from '@spinajs/intl';
2
+ /**
3
+ * Translation helper - translates a key to the current language
4
+ * Usage: {{__ "hello"}}
5
+ */
6
+ export function __(context, options) {
7
+ return __translate(options.data.root.lang)(context);
8
+ }
9
+ /**
10
+ * Pluralization helper - translates with count-based pluralization
11
+ * Usage: {{__n "items" 5}}
12
+ */
13
+ export function __n(context, count, options) {
14
+ return __translateNumber(options.data.root.lang)(context, count);
15
+ }
16
+ /**
17
+ * Translation helper for lowercase
18
+ * Usage: {{__l "HELLO"}}
19
+ */
20
+ export function __l(context) {
21
+ return __translateL(context);
22
+ }
23
+ /**
24
+ * Translation helper for HTML content
25
+ * Usage: {{__h "html_content"}}
26
+ */
27
+ export function __h(context) {
28
+ return __translateH(context);
29
+ }
30
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/helpers/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,EAAE,CAAC,OAAe,EAAE,OAAY;IAC9C,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,OAAY;IAC9D,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO,YAAY,CAAC,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"}