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,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/nestjs/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/nestjs/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Payroll Formula Parser - Type Definitions
3
+ *
4
+ * This module contains all interfaces and types needed for formula parsing.
5
+ * Users of this package need to provide data conforming to these interfaces.
6
+ */
7
+ /**
8
+ * Employee personal data for formula parsing
9
+ */
10
+ export interface EmployeePersonalData {
11
+ birthdate?: Date | string | null;
12
+ maritalstatus?: number | string | null;
13
+ religionCode?: string | null;
14
+ gender?: number | 'MALE' | 'FEMALE';
15
+ }
16
+ /**
17
+ * Employee company data for formula parsing
18
+ */
19
+ export interface EmployeeCompanyData {
20
+ empId: string;
21
+ empNo?: string;
22
+ startDate?: Date | string | null;
23
+ endDate?: Date | string | null;
24
+ positionId?: string | null;
25
+ costCode?: string | null;
26
+ gradeCode?: string | null;
27
+ workLocationCode?: string | null;
28
+ jobStatusCode?: string | null;
29
+ }
30
+ /**
31
+ * Employee company group data
32
+ */
33
+ export interface EmployeeCompanyGroupData {
34
+ joinDate?: Date | string | null;
35
+ fulljoinDate?: Date | string | null;
36
+ permanentDate?: Date | string | null;
37
+ pensionDate?: Date | string | null;
38
+ terminateDate?: Date | string | null;
39
+ }
40
+ /**
41
+ * Employee job status data
42
+ */
43
+ export interface EmployeeJobStatusData {
44
+ jobstatusnameEn?: string;
45
+ }
46
+ /**
47
+ * Combined employee data structure
48
+ */
49
+ export interface EmployeeData {
50
+ empId: string;
51
+ empNo?: string;
52
+ startDate?: Date | string | null;
53
+ endDate?: Date | string | null;
54
+ positionId?: string | null;
55
+ costCode?: string | null;
56
+ gradeCode?: string | null;
57
+ workLocationCode?: string | null;
58
+ jobStatusCode?: string | null;
59
+ personal?: EmployeePersonalData;
60
+ companyGroup?: EmployeeCompanyGroupData;
61
+ jobStatus?: EmployeeJobStatusData;
62
+ }
63
+ /**
64
+ * Position data for organizational lookups
65
+ */
66
+ export interface PositionData {
67
+ positionId?: string;
68
+ posNameEn?: string;
69
+ posCode?: string;
70
+ deptId?: string;
71
+ dept?: {
72
+ positionId?: string;
73
+ posNameEn?: string;
74
+ posCode?: string;
75
+ };
76
+ }
77
+ /**
78
+ * Cost center data
79
+ */
80
+ export interface CostCenterData {
81
+ costcenterCode?: string;
82
+ costcenterNameEn?: string;
83
+ }
84
+ /**
85
+ * Grade data
86
+ */
87
+ export interface GradeData {
88
+ gradeCode?: string;
89
+ gradeName?: string;
90
+ }
91
+ /**
92
+ * Work location data
93
+ */
94
+ export interface WorkLocationData {
95
+ worklocationCode?: string;
96
+ worklocationName?: string;
97
+ }
98
+ /**
99
+ * Custom field data (1-10)
100
+ */
101
+ export interface CustomFieldData {
102
+ customfield1?: string;
103
+ customfield2?: string;
104
+ customfield3?: string;
105
+ customfield4?: string;
106
+ customfield5?: string;
107
+ customfield6?: string;
108
+ customfield7?: string;
109
+ customfield8?: string;
110
+ customfield9?: string;
111
+ customfield10?: string;
112
+ }
113
+ /**
114
+ * Organizational data cache for formula processing
115
+ */
116
+ export interface OrganizationalData {
117
+ position?: PositionData;
118
+ costCenter?: CostCenterData;
119
+ grade?: GradeData;
120
+ workLocation?: WorkLocationData;
121
+ customField?: CustomFieldData;
122
+ employmentStatus?: string;
123
+ childDependents?: number;
124
+ }
125
+ /**
126
+ * Component value (allowance/deduction)
127
+ */
128
+ export interface ComponentValue {
129
+ code: string;
130
+ value: number | string;
131
+ }
132
+ /**
133
+ * Main input for formula parsing
134
+ */
135
+ export interface FormulaParseInput {
136
+ /** The formula to parse and evaluate */
137
+ formula: string;
138
+ /** Employee data for personal field replacements */
139
+ employeeData: EmployeeData;
140
+ /** Organizational data for organizational field replacements */
141
+ organizationalData?: OrganizationalData;
142
+ /** Component values (allowances, deductions) as key-value pairs */
143
+ componentValues?: Record<string, number | string>;
144
+ /** List of reserved words to look for in formula (optional - uses defaults if not provided) */
145
+ reservedWords?: string[];
146
+ }
147
+ /**
148
+ * Result of formula parsing
149
+ */
150
+ export interface FormulaParseResult {
151
+ /** The calculated result */
152
+ result: number | string | boolean;
153
+ /** Success or error message */
154
+ message: string;
155
+ /** Whether parsing was successful */
156
+ success: boolean;
157
+ /** The final formula after variable substitution (for debugging) */
158
+ processedFormula?: string;
159
+ }
160
+ /**
161
+ * Tax country codes supported
162
+ */
163
+ export type TaxCountry = 'ID' | 'TH' | 'MY' | 'PH';
164
+ /**
165
+ * Currency codes supported
166
+ */
167
+ export type CurrencyCode = 'IDR' | 'THB' | 'MYR' | 'PHP';
168
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Payroll Formula Parser - Type Definitions
4
+ *
5
+ * This module contains all interfaces and types needed for formula parsing.
6
+ * Users of this package need to provide data conforming to these interfaces.
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/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "formula-parser-payroll",
3
+ "version": "2.1.0",
4
+ "description": "A lightweight, high-performance payroll formula parser for GreatDay HR. Parse and evaluate payroll formulas with employee data variables. Features parallel processing, smart caching, and works with any database client (MySQL2, Knex, TypeORM, etc.).",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/**/*",
9
+ "README.md",
10
+ "LICENSE",
11
+ "CHANGELOG.md",
12
+ "DATABASE_CONNECTOR.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "prepublishOnly": "npm run build",
17
+ "test": "jest",
18
+ "lint": "eslint src/**/*.ts"
19
+ },
20
+ "keywords": [],
21
+ "author": "Joel Legifani Manisali",
22
+ "license": "MIT",
23
+ "dependencies": {
24
+ "hot-formula-parser": "^4.0.0",
25
+ "moment": "^2.29.4",
26
+ "moment-timezone": "^0.5.43"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^18.0.0",
30
+ "typescript": "^5.0.0"
31
+ },
32
+ "engines": {
33
+ "node": ">=14.0.0"
34
+ },
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/greatdayhr/payroll-formula-parser.git"
38
+ }
39
+ }