sales-frontend-utils 0.0.55 → 0.0.57

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 (37) hide show
  1. package/dist/index.cjs +103 -12
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +3 -1
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.js +99 -13
  6. package/dist/index.js.map +1 -1
  7. package/dist/types/common.types.d.cts +5 -1
  8. package/dist/types/common.types.d.ts +5 -1
  9. package/dist/utils/cookie-utils.cjs.map +1 -1
  10. package/dist/utils/cookie-utils.js.map +1 -1
  11. package/dist/utils/download-utils.cjs +84 -0
  12. package/dist/utils/download-utils.cjs.map +1 -0
  13. package/dist/utils/download-utils.d.cts +8 -0
  14. package/dist/utils/download-utils.d.ts +8 -0
  15. package/dist/utils/download-utils.js +80 -0
  16. package/dist/utils/download-utils.js.map +1 -0
  17. package/dist/utils/environment-utils.cjs +4 -1
  18. package/dist/utils/environment-utils.cjs.map +1 -1
  19. package/dist/utils/environment-utils.d.cts +1 -1
  20. package/dist/utils/environment-utils.d.ts +1 -1
  21. package/dist/utils/environment-utils.js +4 -1
  22. package/dist/utils/environment-utils.js.map +1 -1
  23. package/dist/utils/file-utils.cjs +28 -11
  24. package/dist/utils/file-utils.cjs.map +1 -1
  25. package/dist/utils/file-utils.js +28 -11
  26. package/dist/utils/file-utils.js.map +1 -1
  27. package/dist/utils/ga/index.cjs.map +1 -1
  28. package/dist/utils/ga/index.js.map +1 -1
  29. package/dist/utils/gender.cjs +21 -0
  30. package/dist/utils/gender.cjs.map +1 -0
  31. package/dist/utils/gender.d.cts +15 -0
  32. package/dist/utils/gender.d.ts +15 -0
  33. package/dist/utils/gender.js +18 -0
  34. package/dist/utils/gender.js.map +1 -0
  35. package/dist/utils/user-agent-utils.cjs.map +1 -1
  36. package/dist/utils/user-agent-utils.js.map +1 -1
  37. package/package.json +21 -1
package/dist/index.d.cts CHANGED
@@ -8,7 +8,9 @@ export { base64ToBlob, base64ToFile, blobToFile, downloadBlob, fileToBase64, get
8
8
  export { addE2EObject, getE2EDataIDs, hasAstx2, initASTX2, loadScript } from './utils/astx2-utils.cjs';
9
9
  export { DateFormat, PeriodType, convertDateFormat, convertDateString, getDateDiff, getLastDay, getOneMonthLater, getPeriodDate, isDate, isDateAfter, isFutureDate, isValidDate, validateBirthdate } from './utils/date-utils.cjs';
10
10
  export { charFilterEng, charFilterKor, checkKeys, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isEnter, isEscape, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isTab } from './utils/key-trigger-utils.cjs';
11
+ export { GENDER_LABEL_MAP, getGenderName } from './utils/gender.cjs';
12
+ export { downloadFromCurrentWindow, downloadFromNewWindow, getBlobUrl } from './utils/download-utils.cjs';
11
13
  export { loadGaScript } from './utils/ga/index.cjs';
12
- export { BrowserName, ExecutionEnvironment, OSName } from './types/common.types.cjs';
14
+ export { BrowserName, ExecutionEnvironment, GenderCode, OSName } from './types/common.types.cjs';
13
15
  import 'dayjs';
14
16
  import 'react';
package/dist/index.d.ts CHANGED
@@ -8,7 +8,9 @@ export { base64ToBlob, base64ToFile, blobToFile, downloadBlob, fileToBase64, get
8
8
  export { addE2EObject, getE2EDataIDs, hasAstx2, initASTX2, loadScript } from './utils/astx2-utils.js';
9
9
  export { DateFormat, PeriodType, convertDateFormat, convertDateString, getDateDiff, getLastDay, getOneMonthLater, getPeriodDate, isDate, isDateAfter, isFutureDate, isValidDate, validateBirthdate } from './utils/date-utils.js';
10
10
  export { charFilterEng, charFilterKor, checkKeys, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isEnter, isEscape, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isTab } from './utils/key-trigger-utils.js';
11
+ export { GENDER_LABEL_MAP, getGenderName } from './utils/gender.js';
12
+ export { downloadFromCurrentWindow, downloadFromNewWindow, getBlobUrl } from './utils/download-utils.js';
11
13
  export { loadGaScript } from './utils/ga/index.js';
12
- export { BrowserName, ExecutionEnvironment, OSName } from './types/common.types.js';
14
+ export { BrowserName, ExecutionEnvironment, GenderCode, OSName } from './types/common.types.js';
13
15
  import 'dayjs';
14
16
  import 'react';
package/dist/index.js CHANGED
@@ -128,7 +128,10 @@ var isStorybookEnv = () => {
128
128
  return false;
129
129
  }
130
130
  };
131
- var getBusinessWorkDivisionCode = () => {
131
+ var getBusinessWorkDivisionCode = (pathname) => {
132
+ if (pathname) {
133
+ return pathname.split("/")[1] ?? "";
134
+ }
132
135
  return location.pathname.split("/")[1] ?? "";
133
136
  };
134
137
  var getServicePath = () => {
@@ -683,23 +686,40 @@ function base64ToBlob(base64String, contentType = "") {
683
686
  const regex = /^data:([a-zA-Z0-9/+.-]+);base64,/;
684
687
  const matches = base64String.match(regex);
685
688
  if (matches === null) {
686
- throw new Error("Invalid base64 string");
689
+ const debugInfo = {
690
+ base64String
691
+ };
692
+ throw new Error(`Invalid base64 string format. Debug info: ${JSON.stringify(debugInfo, null, 2)}`);
687
693
  }
688
694
  const contentTypeFinal = contentType || matches[1];
689
- const byteCharacters = atob(base64String.replace(regex, ""));
690
- const byteNumbers = new Array(byteCharacters.length);
691
- for (let i = 0; i < byteCharacters.length; i++) {
692
- byteNumbers[i] = byteCharacters.charCodeAt(i);
695
+ try {
696
+ const byteCharacters = atob(base64String.replace(regex, ""));
697
+ const byteNumbers = new Array(byteCharacters.length);
698
+ for (let i = 0; i < byteCharacters.length; i++) {
699
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
700
+ }
701
+ const byteArray = new Uint8Array(byteNumbers);
702
+ return new Blob([byteArray], { type: contentTypeFinal });
703
+ } catch (error) {
704
+ throw new Error(
705
+ `Failed to decode base64 string. Original error: ${error instanceof Error ? error.message : "Unknown error"}. String length: ${base64String?.length}, Content type: ${contentTypeFinal}`
706
+ );
693
707
  }
694
- const byteArray = new Uint8Array(byteNumbers);
695
- return new Blob([byteArray], { type: contentTypeFinal });
696
708
  }
697
709
  function base64ToFile(base64String, fileName, contentType = "") {
698
- const blob = base64ToBlob(base64String, contentType);
699
- if (!blob) {
700
- throw new Error("Invalid base64 string");
710
+ try {
711
+ const blob = base64ToBlob(base64String, contentType);
712
+ if (!blob) {
713
+ throw new Error(
714
+ `Failed to create blob. FileName: ${fileName}, ContentType: ${contentType}, StringLength: ${base64String?.length}`
715
+ );
716
+ }
717
+ return blobToFile(blob, fileName);
718
+ } catch (error) {
719
+ throw new Error(
720
+ `base64ToFile failed for "${fileName}". ${error instanceof Error ? error.message : "Unknown error"}`
721
+ );
701
722
  }
702
- return blobToFile(blob, fileName);
703
723
  }
704
724
  function blobToFile(blob, fileName) {
705
725
  return new File([blob], fileName, {
@@ -1150,6 +1170,72 @@ function isOverEngCharCount(value, count) {
1150
1170
  return false;
1151
1171
  }
1152
1172
 
1173
+ // src/utils/gender.ts
1174
+ var GENDER_LABEL_MAP = {
1175
+ "1": "\uB0A8\uC131",
1176
+ "2": "\uC5EC\uC131",
1177
+ "3": "\uB0A8\uC131",
1178
+ "4": "\uC5EC\uC131",
1179
+ "5": "\uB0A8\uC131",
1180
+ "6": "\uC5EC\uC131",
1181
+ "7": "\uB0A8\uC131",
1182
+ "8": "\uC5EC\uC131"
1183
+ };
1184
+ var getGenderName = (genderCode) => {
1185
+ return genderCode ? GENDER_LABEL_MAP[genderCode] : "";
1186
+ };
1187
+
1188
+ // src/utils/download-utils.ts
1189
+ var getBlobUrl = async (url) => {
1190
+ let downloadUrl = "";
1191
+ if (url.startsWith("http")) {
1192
+ const response = await fetch(url);
1193
+ if (!response.ok) {
1194
+ throw new Error(`Failed to download ${url}`);
1195
+ }
1196
+ const blob = await response.blob();
1197
+ downloadUrl = window.URL.createObjectURL(blob);
1198
+ } else if (url.startsWith("blob")) {
1199
+ downloadUrl = url;
1200
+ } else if (url.startsWith("data")) {
1201
+ downloadUrl = URL.createObjectURL(base64ToBlob(url));
1202
+ } else {
1203
+ throw new Error(`unknown type : ${url}`);
1204
+ }
1205
+ return downloadUrl;
1206
+ };
1207
+ var downloadFromNewWindow = async (url, fileName) => {
1208
+ try {
1209
+ const aTag = document.createElement("a");
1210
+ const downloadUrl = await getBlobUrl(url);
1211
+ aTag.href = downloadUrl;
1212
+ aTag.download = fileName;
1213
+ const newWin = window.open();
1214
+ newWin?.document.body.appendChild(aTag);
1215
+ aTag.click();
1216
+ aTag.remove();
1217
+ window.URL.revokeObjectURL(downloadUrl);
1218
+ } catch (e) {
1219
+ console.error(e);
1220
+ throw e;
1221
+ }
1222
+ };
1223
+ var downloadFromCurrentWindow = async (url, fileName) => {
1224
+ try {
1225
+ const a = document.createElement("a");
1226
+ const downloadUrl = await getBlobUrl(url);
1227
+ a.href = downloadUrl;
1228
+ a.download = fileName;
1229
+ document.body.appendChild(a);
1230
+ a.click();
1231
+ a.remove();
1232
+ window.URL.revokeObjectURL(downloadUrl);
1233
+ } catch (e) {
1234
+ console.error(e);
1235
+ throw e;
1236
+ }
1237
+ };
1238
+
1153
1239
  // src/utils/ga/ga.js
1154
1240
  var ga_default = "(function (w, d, s, l, i) {\n w[l] = w[l] || [];\n w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n let f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l !== 'dataLayer' ? `&l=${l}` : '';\n j.async = true;\n j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;\n f.parentNode.insertBefore(j, f);\n})(window, document, 'script', 'dataLayer', 'GTM-PPT3LJ56');\n";
1155
1241
 
@@ -1168,6 +1254,6 @@ var loadGaScript = () => {
1168
1254
  }
1169
1255
  };
1170
1256
 
1171
- export { MessageEventManager, addE2EObject, base64ToBlob, base64ToFile, blobToFile, charFilterEng, charFilterKor, checkKeys, checkUserAgentDspApp, convertDateFormat, convertDateString, convertTextToImg, debounce, deleteCookie, downloadBlob, drawImageResizeCentered, fileToBase64, getApiHostNameFromEnvironment, getBrowserName, getBrowserVersion, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getCookie, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDateDiff, getDeviceModel, getDspApiBasePathFromEnvironment, getDspExecutionEnvironment, getDudApiBasePathFromEnvironment, getE2EDataIDs, getEnvironmentFromHostname, getExt, getFormFactorFromUserAgent, getLastDay, getNlcHostFromEnvironment, getOSName, getOSVersion, getOneMonthLater, getOrCreateDeviceId, getPeriodDate, getServicePath, getSubdomain, getTextWidth, hasAstx2, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, initASTX2, isAndroidDevice, isAndroidWebView, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isClient, isDate, isDateAfter, isDspApp, isEnter, isEscape, isFpPlannerApp, isFutureDate, isIosDevice, isIosWebView, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isPc, isPhone, isProductionApp, isSalesPortal, isStorybookEnv, isTab, isTablet, isValidDate, loadGaScript, loadScript, objectUrlToBase64, objectUrlToBlob, setCookie, throttle, validateBirthdate };
1257
+ export { GENDER_LABEL_MAP, MessageEventManager, addE2EObject, base64ToBlob, base64ToFile, blobToFile, charFilterEng, charFilterKor, checkKeys, checkUserAgentDspApp, convertDateFormat, convertDateString, convertTextToImg, debounce, deleteCookie, downloadBlob, downloadFromCurrentWindow, downloadFromNewWindow, drawImageResizeCentered, fileToBase64, getApiHostNameFromEnvironment, getBlobUrl, getBrowserName, getBrowserVersion, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getCookie, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDateDiff, getDeviceModel, getDspApiBasePathFromEnvironment, getDspExecutionEnvironment, getDudApiBasePathFromEnvironment, getE2EDataIDs, getEnvironmentFromHostname, getExt, getFormFactorFromUserAgent, getGenderName, getLastDay, getNlcHostFromEnvironment, getOSName, getOSVersion, getOneMonthLater, getOrCreateDeviceId, getPeriodDate, getServicePath, getSubdomain, getTextWidth, hasAstx2, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, initASTX2, isAndroidDevice, isAndroidWebView, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isClient, isDate, isDateAfter, isDspApp, isEnter, isEscape, isFpPlannerApp, isFutureDate, isIosDevice, isIosWebView, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isPc, isPhone, isProductionApp, isSalesPortal, isStorybookEnv, isTab, isTablet, isValidDate, loadGaScript, loadScript, objectUrlToBase64, objectUrlToBlob, setCookie, throttle, validateBirthdate };
1172
1258
  //# sourceMappingURL=index.js.map
1173
1259
  //# sourceMappingURL=index.js.map