formula-parser-payroll 2.1.0

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 (58) hide show
  1. package/README.md +202 -0
  2. package/dist/database/database-connector.d.ts +60 -0
  3. package/dist/database/database-connector.d.ts.map +1 -0
  4. package/dist/database/database-connector.js +9 -0
  5. package/dist/database/database-connector.js.map +1 -0
  6. package/dist/database/helpers.d.ts +44 -0
  7. package/dist/database/helpers.d.ts.map +1 -0
  8. package/dist/database/helpers.js +120 -0
  9. package/dist/database/helpers.js.map +1 -0
  10. package/dist/database/index.d.ts +11 -0
  11. package/dist/database/index.d.ts.map +1 -0
  12. package/dist/database/index.js +29 -0
  13. package/dist/database/index.js.map +1 -0
  14. package/dist/database/payroll-formula.service.d.ts +118 -0
  15. package/dist/database/payroll-formula.service.d.ts.map +1 -0
  16. package/dist/database/payroll-formula.service.js +794 -0
  17. package/dist/database/payroll-formula.service.js.map +1 -0
  18. package/dist/database/types.d.ts +117 -0
  19. package/dist/database/types.d.ts.map +1 -0
  20. package/dist/database/types.js +9 -0
  21. package/dist/database/types.js.map +1 -0
  22. package/dist/formula-engine.d.ts +18 -0
  23. package/dist/formula-engine.d.ts.map +1 -0
  24. package/dist/formula-engine.js +356 -0
  25. package/dist/formula-engine.js.map +1 -0
  26. package/dist/formula-parser.d.ts +60 -0
  27. package/dist/formula-parser.d.ts.map +1 -0
  28. package/dist/formula-parser.js +366 -0
  29. package/dist/formula-parser.js.map +1 -0
  30. package/dist/index.d.ts +13 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +44 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/nestjs/database-connector.d.ts +60 -0
  35. package/dist/nestjs/database-connector.d.ts.map +1 -0
  36. package/dist/nestjs/database-connector.js +9 -0
  37. package/dist/nestjs/database-connector.js.map +1 -0
  38. package/dist/nestjs/helpers.d.ts +44 -0
  39. package/dist/nestjs/helpers.d.ts.map +1 -0
  40. package/dist/nestjs/helpers.js +120 -0
  41. package/dist/nestjs/helpers.js.map +1 -0
  42. package/dist/nestjs/index.d.ts +11 -0
  43. package/dist/nestjs/index.d.ts.map +1 -0
  44. package/dist/nestjs/index.js +29 -0
  45. package/dist/nestjs/index.js.map +1 -0
  46. package/dist/nestjs/payroll-formula.service.d.ts +91 -0
  47. package/dist/nestjs/payroll-formula.service.d.ts.map +1 -0
  48. package/dist/nestjs/payroll-formula.service.js +640 -0
  49. package/dist/nestjs/payroll-formula.service.js.map +1 -0
  50. package/dist/nestjs/types.d.ts +117 -0
  51. package/dist/nestjs/types.d.ts.map +1 -0
  52. package/dist/nestjs/types.js +9 -0
  53. package/dist/nestjs/types.js.map +1 -0
  54. package/dist/types.d.ts +168 -0
  55. package/dist/types.d.ts.map +1 -0
  56. package/dist/types.js +9 -0
  57. package/dist/types.js.map +1 -0
  58. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payroll-formula.service.js","sourceRoot":"","sources":["../../src/database/payroll-formula.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * NestJS Module Types for Payroll Formula Parser
3
+ *
4
+ * This module provides type definitions for database-integrated formula parsing.
5
+ * The types are now generic and work with any database client.
6
+ */
7
+ import { FormulaContext, IDatabaseConnection, CompanyContext, EncryptionConfig } from './database-connector';
8
+ export { FormulaContext, IDatabaseConnection, CompanyContext, EncryptionConfig };
9
+ /**
10
+ * Database connection interface
11
+ * @deprecated Use IDatabaseConnection from database-connector instead
12
+ * Kept for backward compatibility
13
+ */
14
+ export interface DatabaseConnection {
15
+ query: (sql: string, params?: any[]) => Promise<any>;
16
+ getRepository?: (entity: any) => any;
17
+ }
18
+ /**
19
+ * User data from authentication
20
+ * @deprecated Use CompanyContext from database-connector instead
21
+ * Kept for backward compatibility
22
+ */
23
+ export interface UserData {
24
+ companyId: string | number;
25
+ companyCode?: string;
26
+ currentCompanyCode?: string;
27
+ taxCountry?: string;
28
+ [key: string]: any;
29
+ }
30
+ /**
31
+ * Access token configuration for encryption/decryption
32
+ * @deprecated Use EncryptionConfig from database-connector instead
33
+ * Kept for backward compatibility
34
+ */
35
+ export interface AccessTokenConfig {
36
+ confParse: {
37
+ PNUMBER: string;
38
+ LNUMBER: string;
39
+ [key: string]: any;
40
+ };
41
+ [key: string]: any;
42
+ }
43
+ /**
44
+ * Authentication context interface (Legacy)
45
+ * @deprecated Use FormulaContext from database-connector instead
46
+ * Kept for backward compatibility with existing payroll-server code
47
+ */
48
+ export interface AuthContext {
49
+ /** Main database connection (for employee/organization data) */
50
+ conn: DatabaseConnection | any;
51
+ /** Finance database connection (for payroll data) */
52
+ connFin: DatabaseConnection | any;
53
+ /** User data from authentication */
54
+ userData: UserData | any;
55
+ /** Access token with encryption config */
56
+ accessToken: AccessTokenConfig | any;
57
+ /** Allow additional properties */
58
+ [key: string]: any;
59
+ }
60
+ /**
61
+ * Module configuration options
62
+ */
63
+ export interface PayrollFormulaModuleOptions {
64
+ /** Whether to enable debug logging */
65
+ debug?: boolean;
66
+ }
67
+ /**
68
+ * Input for parsing formula by employee ID
69
+ */
70
+ export interface ParseByEmpIdInput {
71
+ /** The formula to parse */
72
+ formula: string;
73
+ /** Employee ID (for single employee) */
74
+ empId?: string;
75
+ /** List of Employee IDs (for multiple employees) */
76
+ listEmpId?: string[];
77
+ /** Authentication context with database connections */
78
+ auth: AuthContext;
79
+ /** Optional: for claim-specific processing */
80
+ checkType?: 'claimSetting' | 'payroll';
81
+ }
82
+ /**
83
+ * Cached data for formula processing
84
+ */
85
+ export interface FormulaDataCache {
86
+ position?: any;
87
+ costCenter?: any;
88
+ grade?: any;
89
+ workLocation?: any;
90
+ employmentStatus?: string;
91
+ customField?: any;
92
+ childDependents?: number;
93
+ }
94
+ /**
95
+ * Reserved word list result
96
+ */
97
+ export interface ReservedWordResult {
98
+ words2: string[];
99
+ arrayAcr: string[];
100
+ claimTypes2: string[];
101
+ attStatuses: any[];
102
+ leaveTypes: any[];
103
+ payvarMaster: any[];
104
+ arrayDiscp: string[];
105
+ attintfWord: any[];
106
+ }
107
+ /**
108
+ * Result format compatible with payroll-server
109
+ * Uses 'hasil' instead of 'result' to match existing API
110
+ */
111
+ export interface FormulaParseResultLegacy {
112
+ /** The calculated result (matches payroll-server format) */
113
+ hasil: number | string | boolean;
114
+ /** Success or error message */
115
+ message: string;
116
+ }
117
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * NestJS Module Types for Payroll Formula Parser
4
+ *
5
+ * This module provides type definitions for database-integrated formula parsing.
6
+ * The types are now generic and work with any database client.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Payroll Formula Parser - Core Formula Engine
3
+ *
4
+ * This module contains the formula parser using hot-formula-parser library
5
+ * with custom functions for payroll calculations.
6
+ */
7
+ import { Parser } from 'hot-formula-parser';
8
+ /**
9
+ * Parse and evaluate a formula string
10
+ * @param formula The formula to parse
11
+ * @returns The result of the formula evaluation
12
+ */
13
+ export declare const parseFormula: (formula: string) => number | string | boolean;
14
+ /**
15
+ * Get the parser instance for advanced usage
16
+ */
17
+ export declare const getParser: () => Parser;
18
+ //# sourceMappingURL=formula-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-engine.d.ts","sourceRoot":"","sources":["../src/formula-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA4X5C;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,MAAM,GAAG,OAQhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,MAAgB,CAAC"}
@@ -0,0 +1,356 @@
1
+ "use strict";
2
+ /**
3
+ * Payroll Formula Parser - Core Formula Engine
4
+ *
5
+ * This module contains the formula parser using hot-formula-parser library
6
+ * with custom functions for payroll calculations.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getParser = exports.parseFormula = void 0;
10
+ const moment = require("moment");
11
+ // @ts-ignore - hot-formula-parser doesn't have types
12
+ const hot_formula_parser_1 = require("hot-formula-parser");
13
+ // Create parser instance
14
+ const parser = new hot_formula_parser_1.Parser();
15
+ /**
16
+ * Get current date in MM/DD/YYYY format
17
+ */
18
+ const dateNow = () => {
19
+ return moment().format('MM/DD/YYYY');
20
+ };
21
+ /**
22
+ * Get current datetime
23
+ */
24
+ const dateTimeNow = () => {
25
+ return moment().format('MM/DD/YYYY HH:mm:ss');
26
+ };
27
+ /**
28
+ * Check if a value is a valid date
29
+ */
30
+ const isDate = (params) => {
31
+ if (params[0]) {
32
+ const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
33
+ const date = new Date(formattedDate);
34
+ return date instanceof Date && !isNaN(date.getTime());
35
+ }
36
+ return false;
37
+ };
38
+ /**
39
+ * Get day of month from date
40
+ */
41
+ const day = (params) => {
42
+ return params && params[0] !== null && params[0] !== ''
43
+ ? new Date(params[0]).getDate()
44
+ : 0;
45
+ };
46
+ /**
47
+ * Get month from date (1-12)
48
+ */
49
+ const month = (params) => {
50
+ return params && params[0] !== null && params[0] !== ''
51
+ ? (new Date(params[0]).getMonth() + 1).toString().padStart(2, '0')
52
+ : '0';
53
+ };
54
+ /**
55
+ * Get year from date
56
+ */
57
+ const year = (params) => {
58
+ return params && params[0] !== null && params[0] !== ''
59
+ ? new Date(params[0]).getFullYear()
60
+ : 0;
61
+ };
62
+ /**
63
+ * Get number of days in month
64
+ */
65
+ const daysInMonth = (params) => {
66
+ const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
67
+ return moment(formattedDate).daysInMonth();
68
+ };
69
+ /**
70
+ * Get day of week (1=Monday, 7=Sunday)
71
+ */
72
+ const dayOfWeek = (params) => {
73
+ const formattedDate = moment(new Date(params[0])).format('YYYY-MM-DD');
74
+ return moment(formattedDate).isoWeekday();
75
+ };
76
+ /**
77
+ * Check if value is numeric
78
+ */
79
+ const isNumeric = (params) => {
80
+ return !isNaN(parseFloat(params[0])) && !isNaN(Number(params[0]));
81
+ };
82
+ /**
83
+ * Get hour from datetime
84
+ */
85
+ const hour = (params) => {
86
+ params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
87
+ return params && params[0] !== null && params[0] !== ''
88
+ ? new Date(params[0]).getHours()
89
+ : new Date().getHours();
90
+ };
91
+ /**
92
+ * Get minute from datetime
93
+ */
94
+ const minute = (params) => {
95
+ params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
96
+ return params && params[0] !== null && params[0] !== ''
97
+ ? new Date(params[0]).getMinutes()
98
+ : new Date().getMinutes();
99
+ };
100
+ /**
101
+ * Get second from datetime
102
+ */
103
+ const second = (params) => {
104
+ params[0] = moment(new Date(params[0])).format('YYYY-MM-DD HH:mm:ss');
105
+ return params && params[0] !== null && params[0] !== ''
106
+ ? new Date(params[0]).getSeconds()
107
+ : new Date().getSeconds();
108
+ };
109
+ /**
110
+ * Calculate difference between two dates
111
+ * @param params [unit, date1, date2] - unit can be YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
112
+ */
113
+ const dateDiff = (params) => {
114
+ params[1] = moment(new Date(params[1])).format('YYYY-MM-DD');
115
+ params[2] = moment(new Date(params[2])).format('YYYY-MM-DD');
116
+ let date1 = new Date(params[1]);
117
+ let date2 = new Date(params[2]);
118
+ const swapped = date1 < date2;
119
+ if (swapped)
120
+ [date1, date2] = [date2, date1];
121
+ const diffInMs = date1.getTime() - date2.getTime();
122
+ if (!diffInMs) {
123
+ return 0;
124
+ }
125
+ switch (params[0]) {
126
+ case 'YEAR': {
127
+ let years = date1.getFullYear() - date2.getFullYear();
128
+ if (date1.getMonth() < date2.getMonth() ||
129
+ (date1.getMonth() === date2.getMonth() && date1.getDate() < date2.getDate())) {
130
+ years -= 1;
131
+ }
132
+ return swapped ? -years : years;
133
+ }
134
+ case 'MONTH': {
135
+ let months = (date1.getFullYear() - date2.getFullYear()) * 12 + (date1.getMonth() - date2.getMonth());
136
+ if (date1.getDate() < date2.getDate()) {
137
+ months -= 1;
138
+ }
139
+ return swapped ? -months : months;
140
+ }
141
+ case 'DAY':
142
+ return swapped ? -Math.floor(diffInMs / (1000 * 60 * 60 * 24)) : Math.floor(diffInMs / (1000 * 60 * 60 * 24));
143
+ case 'HOUR':
144
+ return swapped ? -Math.floor(diffInMs / (1000 * 60 * 60)) : Math.floor(diffInMs / (1000 * 60 * 60));
145
+ case 'MINUTE':
146
+ return swapped ? -Math.floor(diffInMs / (1000 * 60)) : Math.floor(diffInMs / (1000 * 60));
147
+ case 'SECOND':
148
+ return swapped ? -Math.floor(diffInMs / 1000) : Math.floor(diffInMs / 1000);
149
+ default:
150
+ throw new Error(`Invalid date diff unit: ${params[0]}`);
151
+ }
152
+ };
153
+ /**
154
+ * Add time to a date
155
+ * @param params [unit, amount, date] - unit can be YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
156
+ */
157
+ const dateAdd = (params) => {
158
+ const hasTime = params[2].includes(' ');
159
+ let date = new Date(moment(new Date(params[2])).format('YYYY-MM-DD'));
160
+ if (hasTime) {
161
+ date = new Date(moment(new Date(params[2])).format('YYYY-MM-DD HH:mm:ss'));
162
+ }
163
+ switch (params[0]) {
164
+ case 'YEAR':
165
+ date.setFullYear(date.getFullYear() + params[1]);
166
+ break;
167
+ case 'MONTH':
168
+ date.setMonth(date.getMonth() + params[1]);
169
+ break;
170
+ case 'DAY':
171
+ date.setDate(date.getDate() + params[1]);
172
+ break;
173
+ case 'HOUR':
174
+ date.setHours(date.getHours() + params[1]);
175
+ break;
176
+ case 'MINUTE':
177
+ date.setMinutes(date.getMinutes() + params[1]);
178
+ break;
179
+ case 'SECOND':
180
+ date.setSeconds(date.getSeconds() + params[1]);
181
+ break;
182
+ default:
183
+ throw new Error(`Invalid date add unit: ${params[0]}`);
184
+ }
185
+ const yearVal = date.getFullYear();
186
+ const monthVal = String(date.getMonth() + 1).padStart(2, '0');
187
+ const dayVal = String(date.getDate()).padStart(2, '0');
188
+ if (hasTime) {
189
+ const hourVal = String(date.getHours()).padStart(2, '0');
190
+ const minuteVal = String(date.getMinutes()).padStart(2, '0');
191
+ const secondVal = String(date.getSeconds()).padStart(2, '0');
192
+ return `${monthVal}/${dayVal}/${yearVal} ${hourVal}:${minuteVal}:${secondVal}`;
193
+ }
194
+ return `${monthVal}/${dayVal}/${yearVal}`;
195
+ };
196
+ /**
197
+ * Concatenate multiple values
198
+ */
199
+ const concatenate = (params) => {
200
+ return params.join('');
201
+ };
202
+ /**
203
+ * Concatenate multiple values, skipping null/empty
204
+ */
205
+ const concatenateskipnull = (params) => {
206
+ return params.filter(o => o !== '').join('');
207
+ };
208
+ /**
209
+ * Find position in a comma-separated list
210
+ */
211
+ const findList = (params) => {
212
+ return params[0].split(',').findIndex((o) => o === params[1]) + 1;
213
+ };
214
+ /**
215
+ * Convert date string to timestamp for comparison
216
+ */
217
+ const theDate = (params) => {
218
+ if (!params || params.length === 0) {
219
+ throw new Error('DATE function requires at least one argument.');
220
+ }
221
+ const dateStr = params[0];
222
+ if (typeof dateStr === 'number') {
223
+ return dateStr;
224
+ }
225
+ if (typeof dateStr !== 'string') {
226
+ throw new Error(`Invalid DATE input: ${dateStr}`);
227
+ }
228
+ const regex = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
229
+ const match = dateStr.match(regex);
230
+ if (!match) {
231
+ throw new Error(`Invalid date format: ${dateStr}. Expected MM/DD/YYYY.`);
232
+ }
233
+ const [, mm, dd, yyyy] = match.map(Number);
234
+ return new Date(yyyy, mm - 1, dd).getTime();
235
+ };
236
+ /**
237
+ * Calculate days between two dates
238
+ */
239
+ const theDays = (params) => {
240
+ if (!params || params.length < 2) {
241
+ throw new Error('DAYS function requires exactly two arguments.');
242
+ }
243
+ const [date1, date2] = params;
244
+ if (date1 === '' || date2 === '')
245
+ return 0;
246
+ const parseDate = (dateStr) => {
247
+ const parts = dateStr.split('/');
248
+ if (parts.length !== 3)
249
+ return null;
250
+ const monthVal = parseInt(parts[0], 10) - 1;
251
+ const dayVal = parseInt(parts[1], 10);
252
+ const yearVal = parseInt(parts[2], 10);
253
+ const parsedDate = new Date(yearVal, monthVal, dayVal);
254
+ if (parsedDate.getFullYear() !== yearVal ||
255
+ parsedDate.getMonth() !== monthVal ||
256
+ parsedDate.getDate() !== dayVal) {
257
+ return null;
258
+ }
259
+ return parsedDate;
260
+ };
261
+ const d1 = parseDate(date1);
262
+ const d2 = parseDate(date2);
263
+ if (!d1 || !d2)
264
+ return 0;
265
+ return Math.floor((d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24));
266
+ };
267
+ /**
268
+ * Create a date from year, month, day
269
+ */
270
+ const createDate = (params) => {
271
+ if (params.length > 0) {
272
+ const yearVal = Number(params[0]);
273
+ const monthVal = Number(params[1]) - 1;
274
+ const dayVal = Number(params[2]);
275
+ return moment([yearVal, monthVal, dayVal]).format('MM/DD/YYYY');
276
+ }
277
+ return moment().format('MM/DD/YYYY');
278
+ };
279
+ /**
280
+ * Calculate length of service between two dates
281
+ * @param params [startDate, endDate, unit] - unit can be 'm'/'M' for months, 'y'/'Y' for years
282
+ */
283
+ const lengthOfService = (params) => {
284
+ if (params.length === 3) {
285
+ const [startDate, endDate, unit] = params;
286
+ const d1 = moment(startDate, 'MM/DD/YYYY');
287
+ const d2 = moment(endDate, 'MM/DD/YYYY');
288
+ if (!d1.isValid() || !d2.isValid()) {
289
+ return 0;
290
+ }
291
+ const yearsDifference = d2.year() - d1.year();
292
+ const monthsDifference = d2.month() - d1.month();
293
+ const daysDifference = d2.date() - d1.date();
294
+ const roundUpFractionalMonths = false;
295
+ let monthCorrection = 0;
296
+ if (!roundUpFractionalMonths && daysDifference < 0) {
297
+ monthCorrection = -1;
298
+ }
299
+ if (unit === 'm' || unit === 'M') {
300
+ const hasil = (yearsDifference * 12 + monthsDifference + monthCorrection);
301
+ if (hasil === 0) {
302
+ const d1Y = d1.year();
303
+ const d2Y = d2.year();
304
+ const d1M = d1.month() + 1;
305
+ const d2M = d2.month() + 1;
306
+ return d2M + 12 * d2Y - (d1M + 12 * d1Y);
307
+ }
308
+ return hasil;
309
+ }
310
+ else if (unit === 'y' || unit === 'Y') {
311
+ return yearsDifference + (monthsDifference < 0 ? -1 : 0);
312
+ }
313
+ }
314
+ return null;
315
+ };
316
+ // Register custom functions
317
+ parser.setFunction('LENGTHOFSERVICE', lengthOfService);
318
+ parser.setFunction('TODAY', dateNow);
319
+ parser.setFunction('DATETIME_NOW', dateTimeNow);
320
+ parser.setFunction('ISDATE', isDate);
321
+ parser.setFunction('DAY', day);
322
+ parser.setFunction('MONTH', month);
323
+ parser.setFunction('YEAR', year);
324
+ parser.setFunction('DAYSINMONTH', daysInMonth);
325
+ parser.setFunction('DAYOFWEEK', dayOfWeek);
326
+ parser.setFunction('ISNUMERIC', isNumeric);
327
+ parser.setFunction('HOUR', hour);
328
+ parser.setFunction('MINUTE', minute);
329
+ parser.setFunction('SECOND', second);
330
+ parser.setFunction('DATEDIFF', dateDiff);
331
+ parser.setFunction('DATEADD', dateAdd);
332
+ parser.setFunction('CONCATENATE', concatenate);
333
+ parser.setFunction('CONCATENATESKIPNULL', concatenateskipnull);
334
+ parser.setFunction('FINDLIST', findList);
335
+ parser.setFunction('DATE', theDate);
336
+ parser.setFunction('DAYS', theDays);
337
+ parser.setFunction('CREATEDATE', createDate);
338
+ /**
339
+ * Parse and evaluate a formula string
340
+ * @param formula The formula to parse
341
+ * @returns The result of the formula evaluation
342
+ */
343
+ const parseFormula = (formula) => {
344
+ const parsedResult = parser.parse(formula);
345
+ if (parsedResult.error) {
346
+ throw new Error(`Formula parse error: ${parsedResult.error}`);
347
+ }
348
+ return parsedResult.result === null ? 0 : parsedResult.result;
349
+ };
350
+ exports.parseFormula = parseFormula;
351
+ /**
352
+ * Get the parser instance for advanced usage
353
+ */
354
+ const getParser = () => parser;
355
+ exports.getParser = getParser;
356
+ //# sourceMappingURL=formula-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-engine.js","sourceRoot":"","sources":["../src/formula-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Payroll Formula Parser - Main Service
3
+ *
4
+ * This module contains the main formula parsing service that processes
5
+ * formulas with employee and organizational data.
6
+ */
7
+ import { EmployeeData, OrganizationalData, FormulaParseInput, FormulaParseResult } from './types';
8
+ /**
9
+ * Default reserved words for formula parsing
10
+ */
11
+ export declare const DEFAULT_RESERVED_WORDS: string[];
12
+ /**
13
+ * Extract words that exist in the formula from a word list
14
+ */
15
+ export declare function extractRequiredWords(formula: string, wordList: string[]): Set<string>;
16
+ /**
17
+ * Sort keys by length descending (for replacement order)
18
+ */
19
+ export declare function sortKeyByLengthDesc(keys: string[]): string[];
20
+ /**
21
+ * Format name for formula with proper case handling
22
+ */
23
+ export declare function formatNameForFormula(name: string, formula: string): string;
24
+ /**
25
+ * Process personal data fields from employee data
26
+ */
27
+ export declare function processPersonalData(word: string, objectVal: Record<string, string>, empData: EmployeeData): void;
28
+ /**
29
+ * Process organizational data fields
30
+ */
31
+ export declare function processOrganizationalData(word: string, objectVal: Record<string, string>, orgData: OrganizationalData, formula: string): void;
32
+ /**
33
+ * Process custom field data
34
+ */
35
+ export declare function processCustomFields(word: string, objectVal: Record<string, string>, orgData: OrganizationalData): void;
36
+ /**
37
+ * Main formula parsing function
38
+ *
39
+ * @param input - The input containing formula, employee data, and component values
40
+ * @returns The result of formula parsing
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const result = parsePayrollFormula({
45
+ * formula: 'SALARY * 0.1 + AL_001',
46
+ * employeeData: {
47
+ * empId: 'EMP001',
48
+ * empNo: '12345',
49
+ * personal: { gender: 'MALE' }
50
+ * },
51
+ * componentValues: {
52
+ * 'SALARY': 5000000,
53
+ * 'AL_001': 500000
54
+ * }
55
+ * });
56
+ * console.log(result.result); // 1000000
57
+ * ```
58
+ */
59
+ export declare function parsePayrollFormula(input: FormulaParseInput): FormulaParseResult;
60
+ //# sourceMappingURL=formula-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-parser.d.ts","sourceRoot":"","sources":["../src/formula-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAoB1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYrF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAc1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,YAAY,GACpB,IAAI,CAuGN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,GACd,IAAI,CA6EN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAuBN;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA4GhF"}