dce-commonkit 5.0.2 → 5.0.3

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.
@@ -0,0 +1,9 @@
1
+ import DateInfo from '../types/DateInfo';
2
+ /**
3
+ * Convert dateKey in MM/DD/YYYY format to DateInfo object
4
+ * @author Gardenia Liu
5
+ * @param dateKey - Date string in MM/DD/YYYY format (e.g., "7/19/2025")
6
+ * @returns DateInfo object or null if parsing fails
7
+ */
8
+ declare const convertDateKeyToDateInfo: (dateKey: string) => DateInfo | null;
9
+ export default convertDateKeyToDateInfo;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Convert dateKey in MM/DD/YYYY format to DateInfo object
5
+ * @author Gardenia Liu
6
+ * @param dateKey - Date string in MM/DD/YYYY format (e.g., "7/19/2025")
7
+ * @returns DateInfo object or null if parsing fails
8
+ */
9
+ var convertDateKeyToDateInfo = function (dateKey) {
10
+ var _a = dateKey.split('/'), monthStr = _a[0], dayStr = _a[1], yearStr = _a[2];
11
+ var month = Number.parseInt(monthStr, 10);
12
+ var day = Number.parseInt(dayStr, 10);
13
+ var year = Number.parseInt(yearStr, 10);
14
+ // Return DateInfo if parsing was successful (no NaN values)
15
+ if (!Number.isNaN(year) && !Number.isNaN(month) && !Number.isNaN(day)) {
16
+ return {
17
+ year: year,
18
+ month: month,
19
+ day: day,
20
+ };
21
+ }
22
+ return null;
23
+ };
24
+ exports.default = convertDateKeyToDateInfo;
25
+ //# sourceMappingURL=convertDateKeyToDateInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertDateKeyToDateInfo.js","sourceRoot":"","sources":["../../src/helpers/convertDateKeyToDateInfo.ts"],"names":[],"mappings":";;AAGA;;;;;GAKG;AACH,IAAM,wBAAwB,GAAG,UAAC,OAAe;IACzC,IAAA,KAA8B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAA/C,QAAQ,QAAA,EAAE,MAAM,QAAA,EAAE,OAAO,QAAsB,CAAC;IAEvD,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,IAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE1C,4DAA4D;IAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO;YACL,IAAI,MAAA;YACJ,KAAK,OAAA;YACL,GAAG,KAAA;SACJ,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC"}
package/lib/index.d.ts CHANGED
@@ -48,6 +48,7 @@ import getWordCount from './helpers/getWordCount';
48
48
  import cloneDeep from './helpers/cloneDeep';
49
49
  import getTimestampFromTimeInfoInET from './helpers/getTimestampFromTimeInfoInET';
50
50
  import spaceAtCapitals from './helpers/spaceAtCapitals';
51
+ import convertDateKeyToDateInfo from './helpers/convertDateKeyToDateInfo';
51
52
  import ParamType from './types/ParamType';
52
53
  import DayOfWeek from './types/DayOfWeek';
53
54
  import Log from './types/Log';
@@ -70,4 +71,4 @@ import ContextFilterState from './types/LogReviewerFilterState/ContextFilterStat
70
71
  import TagFilterState from './types/LogReviewerFilterState/TagFilterState';
71
72
  import ActionErrorFilterState from './types/LogReviewerFilterState/ActionErrorFilterState';
72
73
  import AdvancedFilterState from './types/LogReviewerFilterState/AdvancedFilterState';
73
- export { ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_ROUTE_PATH, LOG_REVIEW_STATUS_ROUTE, LOG_REVIEW_GET_LOGS_ROUTE, SELECT_ADMIN_CHECK_ROUTE, CommonKitErrorCode, ParamType, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, LogTypeSpecificInfo, LogMainInfo, LogSourceSpecificInfo, LogLevel, LogMetadataContextMap, LogMetadataTargetMap, LogReviewerFilterState, DateFilterState, ContextFilterState, TagFilterState, ActionErrorFilterState, AdvancedFilterState, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMondayOfTimestamp, getMonthName, genCSV, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, getWordCount, cloneDeep, getTimestampFromTimeInfoInET, spaceAtCapitals, };
74
+ export { ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_ROUTE_PATH, LOG_REVIEW_STATUS_ROUTE, LOG_REVIEW_GET_LOGS_ROUTE, SELECT_ADMIN_CHECK_ROUTE, CommonKitErrorCode, ParamType, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, LogTypeSpecificInfo, LogMainInfo, LogSourceSpecificInfo, LogLevel, LogMetadataContextMap, LogMetadataTargetMap, LogReviewerFilterState, DateFilterState, ContextFilterState, TagFilterState, ActionErrorFilterState, AdvancedFilterState, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, convertDateKeyToDateInfo, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMondayOfTimestamp, getMonthName, genCSV, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, getWordCount, cloneDeep, getTimestampFromTimeInfoInET, spaceAtCapitals, };
package/lib/index.js CHANGED
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.forEachAsync = exports.filterAsync = exports.everyAsync = exports.prefixWithAOrAn = exports.idify = exports.getLocalTimeInfo = exports.validateString = exports.validatePhoneNumber = exports.validateEmail = exports.genCommaList = exports.compareArraysByProp = exports.extractProp = exports.genCSV = exports.getMonthName = exports.getMondayOfTimestamp = exports.parallelLimit = exports.onlyKeepLetters = exports.stringsToHumanReadableList = exports.getPartOfDay = exports.getHumanReadableDate = exports.startMinWait = exports.getTimeInfoInET = exports.getOrdinal = exports.waitMs = exports.sum = exports.roundToNumDecimals = exports.padZerosLeft = exports.padDecimalZeros = exports.forceNumIntoBounds = exports.floorToNumDecimals = exports.ceilToNumDecimals = exports.avg = exports.abbreviate = exports.LogLevel = exports.LogBuiltInMetadata = exports.LogAction = exports.LogSource = exports.LogType = exports.DayOfWeek = exports.ParamType = exports.CommonKitErrorCode = exports.SELECT_ADMIN_CHECK_ROUTE = exports.LOG_REVIEW_GET_LOGS_ROUTE = exports.LOG_REVIEW_STATUS_ROUTE = exports.LOG_ROUTE_PATH = exports.LOG_REVIEW_ROUTE_PATH_PREFIX = exports.DAY_IN_MS = exports.HOUR_IN_MS = exports.MINUTE_IN_MS = exports.ErrorWithCode = void 0;
7
- exports.spaceAtCapitals = exports.getTimestampFromTimeInfoInET = exports.cloneDeep = exports.getWordCount = exports.shuffleArray = exports.capitalize = exports.someAsync = exports.mapAsync = void 0;
6
+ exports.filterAsync = exports.everyAsync = exports.prefixWithAOrAn = exports.idify = exports.getLocalTimeInfo = exports.validateString = exports.validatePhoneNumber = exports.validateEmail = exports.genCommaList = exports.compareArraysByProp = exports.extractProp = exports.genCSV = exports.getMonthName = exports.getMondayOfTimestamp = exports.parallelLimit = exports.onlyKeepLetters = exports.stringsToHumanReadableList = exports.getPartOfDay = exports.getHumanReadableDate = exports.startMinWait = exports.convertDateKeyToDateInfo = exports.getTimeInfoInET = exports.getOrdinal = exports.waitMs = exports.sum = exports.roundToNumDecimals = exports.padZerosLeft = exports.padDecimalZeros = exports.forceNumIntoBounds = exports.floorToNumDecimals = exports.ceilToNumDecimals = exports.avg = exports.abbreviate = exports.LogLevel = exports.LogBuiltInMetadata = exports.LogAction = exports.LogSource = exports.LogType = exports.DayOfWeek = exports.ParamType = exports.CommonKitErrorCode = exports.SELECT_ADMIN_CHECK_ROUTE = exports.LOG_REVIEW_GET_LOGS_ROUTE = exports.LOG_REVIEW_STATUS_ROUTE = exports.LOG_ROUTE_PATH = exports.LOG_REVIEW_ROUTE_PATH_PREFIX = exports.DAY_IN_MS = exports.HOUR_IN_MS = exports.MINUTE_IN_MS = exports.ErrorWithCode = void 0;
7
+ exports.spaceAtCapitals = exports.getTimestampFromTimeInfoInET = exports.cloneDeep = exports.getWordCount = exports.shuffleArray = exports.capitalize = exports.someAsync = exports.mapAsync = exports.forEachAsync = void 0;
8
8
  // Import errors
9
9
  var ErrorWithCode_1 = __importDefault(require("./errors/ErrorWithCode"));
10
10
  exports.ErrorWithCode = ErrorWithCode_1.default;
@@ -108,6 +108,8 @@ var getTimestampFromTimeInfoInET_1 = __importDefault(require("./helpers/getTimes
108
108
  exports.getTimestampFromTimeInfoInET = getTimestampFromTimeInfoInET_1.default;
109
109
  var spaceAtCapitals_1 = __importDefault(require("./helpers/spaceAtCapitals"));
110
110
  exports.spaceAtCapitals = spaceAtCapitals_1.default;
111
+ var convertDateKeyToDateInfo_1 = __importDefault(require("./helpers/convertDateKeyToDateInfo"));
112
+ exports.convertDateKeyToDateInfo = convertDateKeyToDateInfo_1.default;
111
113
  // Import types
112
114
  var ParamType_1 = __importDefault(require("./types/ParamType"));
113
115
  exports.ParamType = ParamType_1.default;
package/lib/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,10 @@
1
+ /**
2
+ * Bundle of all date information for an attendance record
3
+ * @author Gabe Abrams
4
+ */
5
+ type DateInfo = {
6
+ year: number;
7
+ month: number;
8
+ day: number;
9
+ };
10
+ export default DateInfo;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DateInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateInfo.js","sourceRoot":"","sources":["../../src/types/DateInfo.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dce-commonkit",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "description": "Common helpers, constants, and other resources that are shared between dce-reactkit and dce-expresskit",
5
5
  "keywords": [
6
6
  "DCE",
@@ -0,0 +1,29 @@
1
+ // import types
2
+ import DateInfo from '../types/DateInfo';
3
+
4
+ /**
5
+ * Convert dateKey in MM/DD/YYYY format to DateInfo object
6
+ * @author Gardenia Liu
7
+ * @param dateKey - Date string in MM/DD/YYYY format (e.g., "7/19/2025")
8
+ * @returns DateInfo object or null if parsing fails
9
+ */
10
+ const convertDateKeyToDateInfo = (dateKey: string): DateInfo | null => {
11
+ const [monthStr, dayStr, yearStr] = dateKey.split('/');
12
+
13
+ const month = Number.parseInt(monthStr, 10);
14
+ const day = Number.parseInt(dayStr, 10);
15
+ const year = Number.parseInt(yearStr, 10);
16
+
17
+ // Return DateInfo if parsing was successful (no NaN values)
18
+ if (!Number.isNaN(year) && !Number.isNaN(month) && !Number.isNaN(day)) {
19
+ return {
20
+ year,
21
+ month,
22
+ day,
23
+ };
24
+ }
25
+
26
+ return null;
27
+ };
28
+
29
+ export default convertDateKeyToDateInfo;
package/src/index.ts CHANGED
@@ -53,6 +53,7 @@ import getWordCount from './helpers/getWordCount';
53
53
  import cloneDeep from './helpers/cloneDeep';
54
54
  import getTimestampFromTimeInfoInET from './helpers/getTimestampFromTimeInfoInET';
55
55
  import spaceAtCapitals from './helpers/spaceAtCapitals';
56
+ import convertDateKeyToDateInfo from './helpers/convertDateKeyToDateInfo';
56
57
 
57
58
  // Import types
58
59
  import ParamType from './types/ParamType';
@@ -127,6 +128,7 @@ export {
127
128
  waitMs,
128
129
  getOrdinal,
129
130
  getTimeInfoInET,
131
+ convertDateKeyToDateInfo,
130
132
  startMinWait,
131
133
  getHumanReadableDate,
132
134
  getPartOfDay,
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Bundle of all date information for an attendance record
3
+ * @author Gabe Abrams
4
+ */
5
+ type DateInfo = {
6
+ // Year
7
+ year: number,
8
+ // Month
9
+ month: number,
10
+ // Day of month
11
+ day: number,
12
+ };
13
+
14
+ export default DateInfo;