phx-node 1.0.95 → 1.0.96

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.
package/dist/index.d.ts CHANGED
@@ -46,4 +46,5 @@ import { PHXConvertHeadersRequest } from "./lib/helper";
46
46
  import { GetActualWorkingHoursService } from "./module/hrm-checkin/get-actual-working-hours.service";
47
47
  import { DepartmentManagerService } from "./module/department-manager/department-manager.service";
48
48
  import { PHXGetUserManagerByUserId } from "./module/department-manager/user-manager.service";
49
- export { PHXNestModule, GetSchoolYearService, GetListActiveSchoolYearService, GetActiveSchoolYearAndNextYearService, GetListActiveSchoolYearAndNextYearService, GetListNextSchoolYearService, PHXGraphqlService, PHXGraphqlV2Service, ApiService, PHXStudentInfoService, PHXStudentInfoServiceV3, PHXStudentInfoServiceSystemV3, PHXDateHelpers, PHXGrpcClientService, PHXGrpcClientSystemService, GetActiveSchoolYearAndNextYearServiceV3, GetActiveSchoolYearAndNextYearServiceSystemV3, GetListActiveSchoolYearAndNextYearServiceV3, GetListActiveSchoolYearAndNextYearServiceSystemV3, GetListActiveSchoolYearServiceV3, GetListActiveSchoolYearServiceSystemV3, GetListNextSchoolYearServiceV3, GetListNextSchoolYearServiceSystemV3, GetSchoolYearServiceV3, GetSchoolYearServiceSystemV3, PHXDevToolDataService, PHXCronjobManagerService, PHXCloneCronjob, PHXConfigByHostNameService, runWithSentryCheckIn, PHXHostnameService, PHXEnvPublicService, PHXContextStorageService, PHXSettingFormulaPromotion, PHXSettingFormulaPromotionV2, PHXQueryListDetailFeeAdjustment, PHXQueryAdmissionTuition, PHXQueryListDetailFeeAdjustmentBM, PHXQueryAdmissionTuitionBM, PHXSchoolMonthSystemService, PHXSchoolMonthClientService, PHXNotificationByModuleService, PHXStatisticalNotificationByModuleService, GetPrevCurrentNextYearsService, GetPrevCurrentNextYearsServiceSystem, PHXTransactionContentService, PHXUserDevicesService, PHXConvertHeadersRequest, GetActualWorkingHoursService, DepartmentManagerService, PHXGetUserManagerByUserId, };
49
+ import { PHXEmailRenderToHTML } from "./lib/utils/email-render-to-HTML";
50
+ export { PHXNestModule, GetSchoolYearService, GetListActiveSchoolYearService, GetActiveSchoolYearAndNextYearService, GetListActiveSchoolYearAndNextYearService, GetListNextSchoolYearService, PHXGraphqlService, PHXGraphqlV2Service, ApiService, PHXStudentInfoService, PHXStudentInfoServiceV3, PHXStudentInfoServiceSystemV3, PHXDateHelpers, PHXGrpcClientService, PHXGrpcClientSystemService, GetActiveSchoolYearAndNextYearServiceV3, GetActiveSchoolYearAndNextYearServiceSystemV3, GetListActiveSchoolYearAndNextYearServiceV3, GetListActiveSchoolYearAndNextYearServiceSystemV3, GetListActiveSchoolYearServiceV3, GetListActiveSchoolYearServiceSystemV3, GetListNextSchoolYearServiceV3, GetListNextSchoolYearServiceSystemV3, GetSchoolYearServiceV3, GetSchoolYearServiceSystemV3, PHXDevToolDataService, PHXCronjobManagerService, PHXCloneCronjob, PHXConfigByHostNameService, runWithSentryCheckIn, PHXHostnameService, PHXEnvPublicService, PHXContextStorageService, PHXSettingFormulaPromotion, PHXSettingFormulaPromotionV2, PHXQueryListDetailFeeAdjustment, PHXQueryAdmissionTuition, PHXQueryListDetailFeeAdjustmentBM, PHXQueryAdmissionTuitionBM, PHXSchoolMonthSystemService, PHXSchoolMonthClientService, PHXNotificationByModuleService, PHXStatisticalNotificationByModuleService, GetPrevCurrentNextYearsService, GetPrevCurrentNextYearsServiceSystem, PHXTransactionContentService, PHXUserDevicesService, PHXConvertHeadersRequest, GetActualWorkingHoursService, DepartmentManagerService, PHXGetUserManagerByUserId, PHXEmailRenderToHTML, };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DepartmentManagerService = exports.GetActualWorkingHoursService = exports.PHXConvertHeadersRequest = exports.PHXUserDevicesService = exports.PHXTransactionContentService = exports.GetPrevCurrentNextYearsServiceSystem = exports.GetPrevCurrentNextYearsService = exports.PHXStatisticalNotificationByModuleService = exports.PHXNotificationByModuleService = exports.PHXSchoolMonthClientService = exports.PHXSchoolMonthSystemService = exports.PHXQueryAdmissionTuitionBM = exports.PHXQueryListDetailFeeAdjustmentBM = exports.PHXQueryAdmissionTuition = exports.PHXQueryListDetailFeeAdjustment = exports.PHXSettingFormulaPromotionV2 = exports.PHXSettingFormulaPromotion = exports.PHXContextStorageService = exports.PHXEnvPublicService = exports.PHXHostnameService = exports.runWithSentryCheckIn = exports.PHXConfigByHostNameService = exports.PHXCloneCronjob = exports.PHXCronjobManagerService = exports.PHXDevToolDataService = exports.GetSchoolYearServiceSystemV3 = exports.GetSchoolYearServiceV3 = exports.GetListNextSchoolYearServiceSystemV3 = exports.GetListNextSchoolYearServiceV3 = exports.GetListActiveSchoolYearServiceSystemV3 = exports.GetListActiveSchoolYearServiceV3 = exports.GetListActiveSchoolYearAndNextYearServiceSystemV3 = exports.GetListActiveSchoolYearAndNextYearServiceV3 = exports.GetActiveSchoolYearAndNextYearServiceSystemV3 = exports.GetActiveSchoolYearAndNextYearServiceV3 = exports.PHXGrpcClientSystemService = exports.PHXGrpcClientService = exports.PHXDateHelpers = exports.PHXStudentInfoServiceSystemV3 = exports.PHXStudentInfoServiceV3 = exports.PHXStudentInfoService = exports.ApiService = exports.PHXGraphqlV2Service = exports.PHXGraphqlService = exports.GetListNextSchoolYearService = exports.GetListActiveSchoolYearAndNextYearService = exports.GetActiveSchoolYearAndNextYearService = exports.GetListActiveSchoolYearService = exports.GetSchoolYearService = exports.PHXNestModule = void 0;
4
- exports.PHXGetUserManagerByUserId = void 0;
4
+ exports.PHXEmailRenderToHTML = exports.PHXGetUserManagerByUserId = void 0;
5
5
  const tuititon_formula_setting_v2_service_1 = require("./module/helpers-service/tuition-helper-service/tuititon-formula-setting-v2.service");
6
6
  Object.defineProperty(exports, "PHXSettingFormulaPromotionV2", { enumerable: true, get: function () { return tuititon_formula_setting_v2_service_1.PHXSettingFormulaPromotionV2; } });
7
7
  const config_by_hostname_service_1 = require("./module/cronjob-manager/config-by-hostname.service");
@@ -101,4 +101,6 @@ const department_manager_service_1 = require("./module/department-manager/depart
101
101
  Object.defineProperty(exports, "DepartmentManagerService", { enumerable: true, get: function () { return department_manager_service_1.DepartmentManagerService; } });
102
102
  const user_manager_service_1 = require("./module/department-manager/user-manager.service");
103
103
  Object.defineProperty(exports, "PHXGetUserManagerByUserId", { enumerable: true, get: function () { return user_manager_service_1.PHXGetUserManagerByUserId; } });
104
+ const email_render_to_HTML_1 = require("./lib/utils/email-render-to-HTML");
105
+ Object.defineProperty(exports, "PHXEmailRenderToHTML", { enumerable: true, get: function () { return email_render_to_HTML_1.PHXEmailRenderToHTML; } });
104
106
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -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,2 @@
1
+ export declare const sanitizeHtmlStrict: (html: string) => string;
2
+ export declare const PHXEmailRenderToHTML: (html: string, obj: Record<string, any>) => any;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PHXEmailRenderToHTML = exports.sanitizeHtmlStrict = void 0;
4
+ const liquidjs_1 = require("liquidjs");
5
+ const sanitizeHtmlStrict = (html) => {
6
+ const allowedTags = ["p", "b", "i", "a", "br"];
7
+ const tagRegex = /<\/?([a-zA-Z0-9]+)(\s[^>]*)?>/g;
8
+ return html.replace(tagRegex, (match, tagName, attrs) => {
9
+ const lowerTag = tagName.toLowerCase();
10
+ if (!allowedTags.includes(lowerTag)) {
11
+ throw new Error(`Tag <${lowerTag}> is not allowed`);
12
+ }
13
+ if (!attrs)
14
+ return `<${lowerTag}>`;
15
+ if (/class\s*=|style\s*=|on[a-z]+\s*=/i.test(attrs)) {
16
+ throw new Error(`Tag <${lowerTag}> contains forbidden attributes (class/style/event)`);
17
+ }
18
+ if (lowerTag === "a") {
19
+ const hrefMatch = attrs.match(/\s*href\s*=\s*(['"])(.*?)\1/i);
20
+ if (!hrefMatch) {
21
+ throw new Error(`<a> tag must have valid href`);
22
+ }
23
+ return `<a href="${hrefMatch[2]}">`;
24
+ }
25
+ const cleanedAttrs = attrs.trim();
26
+ if (cleanedAttrs) {
27
+ throw new Error(`Tag <${lowerTag}> should not have attributes`);
28
+ }
29
+ return `<${lowerTag}>`;
30
+ });
31
+ };
32
+ exports.sanitizeHtmlStrict = sanitizeHtmlStrict;
33
+ const PHXEmailRenderToHTML = (html, obj) => {
34
+ const htmlSanitize = (0, exports.sanitizeHtmlStrict)(html);
35
+ const validatedValue = {};
36
+ for (const [key, value] of Object.entries(obj)) {
37
+ validatedValue[key] = (0, exports.sanitizeHtmlStrict)(value);
38
+ }
39
+ const liquid = new liquidjs_1.Liquid({
40
+ strictVariables: true,
41
+ strictFilters: true,
42
+ });
43
+ return liquid.parseAndRenderSync(htmlSanitize, validatedValue);
44
+ };
45
+ exports.PHXEmailRenderToHTML = PHXEmailRenderToHTML;
46
+ //# sourceMappingURL=email-render-to-HTML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-render-to-HTML.js","sourceRoot":"","sources":["../../../src/lib/utils/email-render-to-HTML.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAM3B,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE;IACzD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,gCAAgC,CAAC;IAElD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEvC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,QAAQ,GAAG,CAAC;QACnC,IAAI,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,QAAQ,QAAQ,qDAAqD,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,8BAA8B,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,QAAQ,GAAG,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7BW,QAAA,kBAAkB,sBA6B7B;AAOK,MAAM,oBAAoB,GAAG,CAClC,IAAY,EACZ,GAAwB,EACxB,EAAE;IACF,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,cAAc,GAA2B,EAAE,CAAC;IAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,cAAc,CAAC,GAAG,CAAC,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,iBAAM,CAAC;QACxB,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B"}