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 +2 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils/email-render-to-HTML.d.ts +2 -0
- package/dist/lib/utils/email-render-to-HTML.js +46 -0
- package/dist/lib/utils/email-render-to-HTML.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
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
|
-
|
|
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":";;;;AAAA,6IAAmI;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|