@turndown/library 0.1.24 → 0.1.28
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.cjs +1355 -0
- package/dist/index.d.cts +2820 -0
- package/dist/index.d.ts +2820 -2
- package/dist/index.js +1190 -2
- package/package.json +3 -2
- package/dist/helpers/date/index.d.ts +0 -113
- package/dist/helpers/date/index.js +0 -171
- package/dist/helpers/index.d.ts +0 -4
- package/dist/helpers/index.js +0 -3
- package/dist/helpers/object/index.d.ts +0 -298
- package/dist/helpers/object/index.js +0 -540
- package/dist/helpers/string/index.d.ts +0 -258
- package/dist/helpers/string/index.js +0 -496
- package/dist/types/api/index.d.ts +0 -71
- package/dist/types/api/index.js +0 -54
- package/dist/types/auth/index.d.ts +0 -107
- package/dist/types/auth/index.js +0 -8
- package/dist/types/auth/routes.d.ts +0 -160
- package/dist/types/auth/routes.js +0 -1
- package/dist/types/base/index.d.ts +0 -200
- package/dist/types/base/index.js +0 -177
- package/dist/types/base/paging.types.d.ts +0 -47
- package/dist/types/base/paging.types.js +0 -1
- package/dist/types/checklist-template/index.d.ts +0 -48
- package/dist/types/checklist-template/index.js +0 -1
- package/dist/types/checklist-template/routes.d.ts +0 -85
- package/dist/types/checklist-template/routes.js +0 -1
- package/dist/types/company/index.d.ts +0 -22
- package/dist/types/company/index.js +0 -7
- package/dist/types/company/routes.d.ts +0 -100
- package/dist/types/company/routes.js +0 -1
- package/dist/types/damage-report/index.d.ts +0 -148
- package/dist/types/damage-report/index.js +0 -29
- package/dist/types/damage-report/routes.d.ts +0 -112
- package/dist/types/damage-report/routes.js +0 -1
- package/dist/types/errors/index.d.ts +0 -66
- package/dist/types/errors/index.js +0 -41
- package/dist/types/health/index.d.ts +0 -20
- package/dist/types/health/index.js +0 -1
- package/dist/types/health/routes.d.ts +0 -10
- package/dist/types/health/routes.js +0 -1
- package/dist/types/image/index.d.ts +0 -35
- package/dist/types/image/index.js +0 -12
- package/dist/types/image/routes.d.ts +0 -32
- package/dist/types/image/routes.js +0 -1
- package/dist/types/index.d.ts +0 -22
- package/dist/types/index.js +0 -22
- package/dist/types/inventory/index.d.ts +0 -124
- package/dist/types/inventory/index.js +0 -30
- package/dist/types/inventory/routes.d.ts +0 -109
- package/dist/types/inventory/routes.js +0 -1
- package/dist/types/job/index.d.ts +0 -7
- package/dist/types/job/index.js +0 -1
- package/dist/types/property/index.d.ts +0 -113
- package/dist/types/property/index.js +0 -25
- package/dist/types/property/routes.d.ts +0 -54
- package/dist/types/property/routes.js +0 -1
- package/dist/types/room/index.d.ts +0 -28
- package/dist/types/room/index.js +0 -17
- package/dist/types/room/routes.d.ts +0 -35
- package/dist/types/room/routes.js +0 -1
- package/dist/types/room-checklist/index.d.ts +0 -43
- package/dist/types/room-checklist/index.js +0 -1
- package/dist/types/room-checklist/routes.d.ts +0 -78
- package/dist/types/room-checklist/routes.js +0 -1
- package/dist/types/subscription/index.d.ts +0 -32
- package/dist/types/subscription/index.js +0 -16
- package/dist/types/user/index.d.ts +0 -59
- package/dist/types/user/index.js +0 -20
- package/dist/types/user/routes.d.ts +0 -46
- package/dist/types/user/routes.js +0 -1
- package/dist/types/work-session/index.d.ts +0 -97
- package/dist/types/work-session/index.js +0 -18
- package/dist/types/work-session/routes.d.ts +0 -89
- package/dist/types/work-session/routes.js +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,1355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
ACCOUNT_STATUS: () => ACCOUNT_STATUS,
|
|
34
|
+
ACCOUNT_TYPE: () => ACCOUNT_TYPE,
|
|
35
|
+
AUTH_STATUS: () => AUTH_STATUS,
|
|
36
|
+
BILLING_PERIOD: () => BILLING_PERIOD,
|
|
37
|
+
CHECKLIST_EXECUTION_STATUS: () => CHECKLIST_EXECUTION_STATUS,
|
|
38
|
+
COMPANY_TYPES: () => COMPANY_TYPES,
|
|
39
|
+
DAMAGE_SEVERITY: () => DAMAGE_SEVERITY,
|
|
40
|
+
DAMAGE_STATUS: () => DAMAGE_STATUS,
|
|
41
|
+
ERROR_CODES: () => ERROR_CODES,
|
|
42
|
+
HTTP_METHOD: () => HTTP_METHOD,
|
|
43
|
+
HTTP_STATUS: () => HTTP_STATUS,
|
|
44
|
+
IMAGE_ENTITY: () => IMAGE_ENTITY,
|
|
45
|
+
IMAGE_ENTITY_TYPE: () => IMAGE_ENTITY_TYPE,
|
|
46
|
+
INVENTORY_ITEM_TYPE: () => INVENTORY_ITEM_TYPE,
|
|
47
|
+
INVENTORY_UNITS: () => INVENTORY_UNITS,
|
|
48
|
+
JSONStringify: () => JSONStringify,
|
|
49
|
+
LANGUAGE: () => LANGUAGE,
|
|
50
|
+
MONTHS: () => MONTHS,
|
|
51
|
+
PROPERTY_STATUS: () => PROPERTY_STATUS,
|
|
52
|
+
PROPERTY_TYPES: () => PROPERTY_TYPES,
|
|
53
|
+
PropertyStatusOptions: () => PropertyStatusOptions,
|
|
54
|
+
PropertyTypeOptions: () => PropertyTypeOptions,
|
|
55
|
+
SERVICE_TYPES: () => SERVICE_TYPES,
|
|
56
|
+
SEVERITY: () => SEVERITY,
|
|
57
|
+
STATUS: () => STATUS,
|
|
58
|
+
SUBSCRIPTION_PROVIDER: () => SUBSCRIPTION_PROVIDER,
|
|
59
|
+
SUBSCRIPTION_STATUS: () => SUBSCRIPTION_STATUS,
|
|
60
|
+
ServiceTypeOptions: () => ServiceTypeOptions,
|
|
61
|
+
SeverityOptions: () => SeverityOptions,
|
|
62
|
+
StatusOptions: () => StatusOptions,
|
|
63
|
+
US_JURISDICTIONS: () => US_JURISDICTIONS,
|
|
64
|
+
US_STATES_CODE: () => US_STATES_CODE,
|
|
65
|
+
UnitedStatesJurisdictionOptions: () => UnitedStatesJurisdictionOptions,
|
|
66
|
+
WORK_ORDER_PRIORITY: () => WORK_ORDER_PRIORITY,
|
|
67
|
+
WORK_ORDER_STATUS: () => WORK_ORDER_STATUS,
|
|
68
|
+
WORK_SESSION_STATUS: () => WORK_SESSION_STATUS,
|
|
69
|
+
addDays: () => addDays,
|
|
70
|
+
addWeeks: () => addWeeks,
|
|
71
|
+
camelCase: () => camelCase,
|
|
72
|
+
capitalize: () => capitalize,
|
|
73
|
+
charCount: () => charCount,
|
|
74
|
+
chunkArray: () => chunkArray,
|
|
75
|
+
cleanFormData: () => cleanFormData,
|
|
76
|
+
containsAll: () => containsAll,
|
|
77
|
+
containsAny: () => containsAny,
|
|
78
|
+
convertStringBooleans: () => convertStringBooleans,
|
|
79
|
+
daysBetween: () => daysBetween,
|
|
80
|
+
deepClone: () => deepClone,
|
|
81
|
+
deletePropertyIfExists: () => deletePropertyIfExists,
|
|
82
|
+
endOfDay: () => endOfDay,
|
|
83
|
+
endOfWeek: () => endOfWeek,
|
|
84
|
+
escapeRegex: () => escapeRegex,
|
|
85
|
+
extractNumbers: () => extractNumbers,
|
|
86
|
+
filterArrayById: () => filterArrayById,
|
|
87
|
+
flatten: () => flatten,
|
|
88
|
+
formatAddress: () => formatAddress,
|
|
89
|
+
formatDate: () => formatDate,
|
|
90
|
+
formatNumber: () => formatNumber,
|
|
91
|
+
formatPhoneNumber: () => formatPhoneNumber,
|
|
92
|
+
fromBase64: () => fromBase64,
|
|
93
|
+
getFirstPropertyValue: () => getFirstPropertyValue,
|
|
94
|
+
getNestedValue: () => getNestedValue,
|
|
95
|
+
getWeekDays: () => getWeekDays,
|
|
96
|
+
hasOwnProp: () => hasOwnProp,
|
|
97
|
+
hasProperties: () => hasProperties,
|
|
98
|
+
hasProperty: () => hasProperty,
|
|
99
|
+
highlight: () => highlight,
|
|
100
|
+
isAuthError: () => isAuthError,
|
|
101
|
+
isEmail: () => isEmail,
|
|
102
|
+
isEmpty: () => isEmpty,
|
|
103
|
+
isFuture: () => isFuture,
|
|
104
|
+
isMissingFieldsError: () => isMissingFieldsError,
|
|
105
|
+
isNumeric: () => isNumeric,
|
|
106
|
+
isPalindrome: () => isPalindrome,
|
|
107
|
+
isPast: () => isPast,
|
|
108
|
+
isRateLimitError: () => isRateLimitError,
|
|
109
|
+
isToday: () => isToday,
|
|
110
|
+
isUrl: () => isUrl,
|
|
111
|
+
isValidationError: () => isValidationError,
|
|
112
|
+
kebabCase: () => kebabCase,
|
|
113
|
+
kebabToSpaces: () => kebabToSpaces,
|
|
114
|
+
longestWord: () => longestWord,
|
|
115
|
+
lowerCase: () => lowerCase,
|
|
116
|
+
normalCase: () => normalCase,
|
|
117
|
+
normalizeSpaces: () => normalizeSpaces,
|
|
118
|
+
omitProperties: () => omitProperties,
|
|
119
|
+
padEnd: () => padEnd,
|
|
120
|
+
padStart: () => padStart,
|
|
121
|
+
parseJSON: () => parseJSON,
|
|
122
|
+
parseNumber: () => parseNumber,
|
|
123
|
+
pascalCase: () => pascalCase,
|
|
124
|
+
pluralize: () => pluralize,
|
|
125
|
+
removeDuplicates: () => removeDuplicates,
|
|
126
|
+
removeFormProperties: () => removeFormProperties,
|
|
127
|
+
removeSpecialChars: () => removeSpecialChars,
|
|
128
|
+
removeUndefined: () => removeUndefined,
|
|
129
|
+
removeWhitespace: () => removeWhitespace,
|
|
130
|
+
repeat: () => repeat,
|
|
131
|
+
repeatChar: () => repeatChar,
|
|
132
|
+
replaceNulls: () => replaceNulls,
|
|
133
|
+
resetPagination: () => resetPagination,
|
|
134
|
+
returnObject: () => returnObject,
|
|
135
|
+
reverse: () => reverse,
|
|
136
|
+
sentenceCase: () => sentenceCase,
|
|
137
|
+
setNestedValue: () => setNestedValue,
|
|
138
|
+
slug: () => slug,
|
|
139
|
+
snakeCase: () => snakeCase,
|
|
140
|
+
snakeCaseToSpaces: () => snakeCaseToSpaces,
|
|
141
|
+
sortArrayByProperty: () => sortArrayByProperty,
|
|
142
|
+
splitMultiple: () => splitMultiple,
|
|
143
|
+
startOfDay: () => startOfDay,
|
|
144
|
+
startOfWeek: () => startOfWeek,
|
|
145
|
+
stringSimilarity: () => stringSimilarity,
|
|
146
|
+
stripHtml: () => stripHtml,
|
|
147
|
+
subtractDays: () => subtractDays,
|
|
148
|
+
subtractWeeks: () => subtractWeeks,
|
|
149
|
+
timeAgo: () => timeAgo,
|
|
150
|
+
titleCase: () => titleCase,
|
|
151
|
+
toBase64: () => toBase64,
|
|
152
|
+
toCamelCase: () => toCamelCase,
|
|
153
|
+
toKebabCase: () => toKebabCase,
|
|
154
|
+
toNumber: () => toNumber,
|
|
155
|
+
toPascalCase: () => toPascalCase,
|
|
156
|
+
toSnakeCase: () => toSnakeCase,
|
|
157
|
+
truncate: () => truncate,
|
|
158
|
+
unflatten: () => unflatten,
|
|
159
|
+
upperCase: () => upperCase,
|
|
160
|
+
validPath: () => validPath,
|
|
161
|
+
wordCount: () => wordCount
|
|
162
|
+
});
|
|
163
|
+
module.exports = __toCommonJS(index_exports);
|
|
164
|
+
|
|
165
|
+
// src/helpers/date/index.ts
|
|
166
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
167
|
+
var import_isoWeek = __toESM(require("dayjs/plugin/isoWeek"), 1);
|
|
168
|
+
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime"), 1);
|
|
169
|
+
import_dayjs.default.extend(import_relativeTime.default);
|
|
170
|
+
import_dayjs.default.extend(import_isoWeek.default);
|
|
171
|
+
var defaultDateFallback = "--";
|
|
172
|
+
var isValidDateInput = (date) => {
|
|
173
|
+
return date !== null && date !== void 0 && (0, import_dayjs.default)(date).isValid();
|
|
174
|
+
};
|
|
175
|
+
var formatDate = (date, format = "MM/DD/YYYY") => {
|
|
176
|
+
if (!isValidDateInput(date)) {
|
|
177
|
+
return defaultDateFallback;
|
|
178
|
+
}
|
|
179
|
+
return (0, import_dayjs.default)(date).format(format);
|
|
180
|
+
};
|
|
181
|
+
var timeAgo = (date) => {
|
|
182
|
+
if (!isValidDateInput(date)) {
|
|
183
|
+
return defaultDateFallback;
|
|
184
|
+
}
|
|
185
|
+
return (0, import_dayjs.default)(date).fromNow();
|
|
186
|
+
};
|
|
187
|
+
var addDays = (date, days) => {
|
|
188
|
+
return (0, import_dayjs.default)(date).add(days, "day").toDate();
|
|
189
|
+
};
|
|
190
|
+
var subtractDays = (date, days) => {
|
|
191
|
+
return (0, import_dayjs.default)(date).subtract(days, "day").toDate();
|
|
192
|
+
};
|
|
193
|
+
var daysBetween = (dateA, dateB) => {
|
|
194
|
+
if (!isValidDateInput(dateA) || !isValidDateInput(dateB)) {
|
|
195
|
+
return 0;
|
|
196
|
+
}
|
|
197
|
+
return Math.abs((0, import_dayjs.default)(dateA).diff((0, import_dayjs.default)(dateB), "day"));
|
|
198
|
+
};
|
|
199
|
+
var isToday = (date) => {
|
|
200
|
+
if (!isValidDateInput(date)) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return (0, import_dayjs.default)(date).isSame((0, import_dayjs.default)(), "day");
|
|
204
|
+
};
|
|
205
|
+
var isPast = (date) => {
|
|
206
|
+
if (!isValidDateInput(date)) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
return (0, import_dayjs.default)(date).isBefore((0, import_dayjs.default)());
|
|
210
|
+
};
|
|
211
|
+
var isFuture = (date) => {
|
|
212
|
+
if (!isValidDateInput(date)) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
return (0, import_dayjs.default)(date).isAfter((0, import_dayjs.default)());
|
|
216
|
+
};
|
|
217
|
+
var startOfDay = (date) => {
|
|
218
|
+
return (0, import_dayjs.default)(date).startOf("day").toDate();
|
|
219
|
+
};
|
|
220
|
+
var endOfDay = (date) => {
|
|
221
|
+
return (0, import_dayjs.default)(date).endOf("day").toDate();
|
|
222
|
+
};
|
|
223
|
+
var startOfWeek = (date) => {
|
|
224
|
+
return (0, import_dayjs.default)(date).startOf("isoWeek").toDate();
|
|
225
|
+
};
|
|
226
|
+
var endOfWeek = (date) => {
|
|
227
|
+
return (0, import_dayjs.default)(date).endOf("isoWeek").toDate();
|
|
228
|
+
};
|
|
229
|
+
var getWeekDays = (date) => {
|
|
230
|
+
const weekStart = (0, import_dayjs.default)(date).startOf("isoWeek");
|
|
231
|
+
return Array.from({ length: 7 }, (_value, index) => {
|
|
232
|
+
return weekStart.add(index, "day").startOf("day").toDate();
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
var addWeeks = (date, weeks) => {
|
|
236
|
+
return (0, import_dayjs.default)(date).add(weeks, "week").toDate();
|
|
237
|
+
};
|
|
238
|
+
var subtractWeeks = (date, weeks) => {
|
|
239
|
+
return (0, import_dayjs.default)(date).subtract(weeks, "week").toDate();
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
// src/helpers/object/index.ts
|
|
243
|
+
var unsafePathSegments = /* @__PURE__ */ new Set(["__proto__", "prototype", "constructor"]);
|
|
244
|
+
var isRecord = (value) => {
|
|
245
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date);
|
|
246
|
+
};
|
|
247
|
+
var isSafePathSegment = (segment) => {
|
|
248
|
+
return segment.length > 0 && !unsafePathSegments.has(segment);
|
|
249
|
+
};
|
|
250
|
+
var getPathSegments = (path) => {
|
|
251
|
+
return path.split(".").filter((segment) => segment.length > 0);
|
|
252
|
+
};
|
|
253
|
+
function parseJSON(jsonString, fallbackValue) {
|
|
254
|
+
if (!jsonString) {
|
|
255
|
+
return fallbackValue ?? {};
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
const parsedValue = JSON.parse(jsonString);
|
|
259
|
+
return parsedValue;
|
|
260
|
+
} catch {
|
|
261
|
+
return fallbackValue ?? {};
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
var JSONStringify = (value) => {
|
|
265
|
+
const seenValues = /* @__PURE__ */ new WeakSet();
|
|
266
|
+
try {
|
|
267
|
+
return JSON.stringify(value, (_key, nestedValue) => {
|
|
268
|
+
if (typeof nestedValue === "bigint") {
|
|
269
|
+
return nestedValue.toString();
|
|
270
|
+
}
|
|
271
|
+
if (typeof nestedValue === "object" && nestedValue !== null) {
|
|
272
|
+
if (seenValues.has(nestedValue)) {
|
|
273
|
+
return void 0;
|
|
274
|
+
}
|
|
275
|
+
seenValues.add(nestedValue);
|
|
276
|
+
}
|
|
277
|
+
return nestedValue;
|
|
278
|
+
});
|
|
279
|
+
} catch {
|
|
280
|
+
return void 0;
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
var removeUndefined = (value) => {
|
|
284
|
+
if (Array.isArray(value)) {
|
|
285
|
+
return value.map((item) => removeUndefined(item));
|
|
286
|
+
}
|
|
287
|
+
if (isRecord(value)) {
|
|
288
|
+
const updatedValue = Object.entries(value).reduce(
|
|
289
|
+
(accumulator, [key, nestedValue]) => {
|
|
290
|
+
if (nestedValue !== void 0) {
|
|
291
|
+
accumulator[key] = removeUndefined(nestedValue);
|
|
292
|
+
}
|
|
293
|
+
return accumulator;
|
|
294
|
+
},
|
|
295
|
+
{}
|
|
296
|
+
);
|
|
297
|
+
return updatedValue;
|
|
298
|
+
}
|
|
299
|
+
return value;
|
|
300
|
+
};
|
|
301
|
+
var validPath = (location, key) => {
|
|
302
|
+
return location?.pathname === key;
|
|
303
|
+
};
|
|
304
|
+
var returnObject = (input) => {
|
|
305
|
+
return Array.isArray(input) ? input[0] : input;
|
|
306
|
+
};
|
|
307
|
+
var filterArrayById = (array1, array2) => {
|
|
308
|
+
if (!Array.isArray(array1) || !Array.isArray(array2)) {
|
|
309
|
+
return [];
|
|
310
|
+
}
|
|
311
|
+
const idsToExclude = new Set(array2.map((item) => item.id));
|
|
312
|
+
return array1.filter((item) => !idsToExclude.has(item.id));
|
|
313
|
+
};
|
|
314
|
+
var sortArrayByProperty = (array, property) => {
|
|
315
|
+
if (!Array.isArray(array) || array.length === 0) return [];
|
|
316
|
+
return array.sort((a, b) => {
|
|
317
|
+
const firstValue = a[property];
|
|
318
|
+
const secondValue = b[property];
|
|
319
|
+
if (firstValue === secondValue) return 0;
|
|
320
|
+
if (firstValue === null || firstValue === void 0) return 1;
|
|
321
|
+
if (secondValue === null || secondValue === void 0) return -1;
|
|
322
|
+
if (firstValue < secondValue) return -1;
|
|
323
|
+
if (firstValue > secondValue) return 1;
|
|
324
|
+
return 0;
|
|
325
|
+
});
|
|
326
|
+
};
|
|
327
|
+
var replaceNulls = (value) => {
|
|
328
|
+
if (value === null) {
|
|
329
|
+
return "";
|
|
330
|
+
}
|
|
331
|
+
if (Array.isArray(value)) {
|
|
332
|
+
return value.map((item) => replaceNulls(item));
|
|
333
|
+
}
|
|
334
|
+
if (isRecord(value)) {
|
|
335
|
+
const updatedValue = Object.entries(value).reduce(
|
|
336
|
+
(accumulator, [key, nestedValue]) => {
|
|
337
|
+
accumulator[key] = replaceNulls(nestedValue);
|
|
338
|
+
return accumulator;
|
|
339
|
+
},
|
|
340
|
+
{}
|
|
341
|
+
);
|
|
342
|
+
return updatedValue;
|
|
343
|
+
}
|
|
344
|
+
return value;
|
|
345
|
+
};
|
|
346
|
+
var removeFormProperties = (value) => {
|
|
347
|
+
if (Array.isArray(value)) {
|
|
348
|
+
return value.map((item) => removeFormProperties(item));
|
|
349
|
+
}
|
|
350
|
+
if (isRecord(value)) {
|
|
351
|
+
const updatedValue = Object.entries(value).reduce(
|
|
352
|
+
(accumulator, [key, nestedValue]) => {
|
|
353
|
+
if (!key.includes(".")) {
|
|
354
|
+
accumulator[key] = removeFormProperties(nestedValue);
|
|
355
|
+
}
|
|
356
|
+
return accumulator;
|
|
357
|
+
},
|
|
358
|
+
{}
|
|
359
|
+
);
|
|
360
|
+
return updatedValue;
|
|
361
|
+
}
|
|
362
|
+
return value;
|
|
363
|
+
};
|
|
364
|
+
var convertStringBooleans = (value) => {
|
|
365
|
+
if (Array.isArray(value)) {
|
|
366
|
+
return value.map((item) => convertStringBooleans(item));
|
|
367
|
+
}
|
|
368
|
+
if (isRecord(value)) {
|
|
369
|
+
const updatedValue = Object.entries(value).reduce(
|
|
370
|
+
(accumulator, [key, nestedValue]) => {
|
|
371
|
+
if (nestedValue === "true") {
|
|
372
|
+
accumulator[key] = true;
|
|
373
|
+
} else if (nestedValue === "false") {
|
|
374
|
+
accumulator[key] = false;
|
|
375
|
+
} else {
|
|
376
|
+
accumulator[key] = convertStringBooleans(nestedValue);
|
|
377
|
+
}
|
|
378
|
+
return accumulator;
|
|
379
|
+
},
|
|
380
|
+
{}
|
|
381
|
+
);
|
|
382
|
+
return updatedValue;
|
|
383
|
+
}
|
|
384
|
+
return value;
|
|
385
|
+
};
|
|
386
|
+
var cleanFormData = (objectToClean) => {
|
|
387
|
+
return removeFormProperties(
|
|
388
|
+
convertStringBooleans(removeUndefined(objectToClean))
|
|
389
|
+
);
|
|
390
|
+
};
|
|
391
|
+
var resetPagination = (sort, filters) => {
|
|
392
|
+
return {
|
|
393
|
+
page: 1,
|
|
394
|
+
size: 25,
|
|
395
|
+
sort: sort || [],
|
|
396
|
+
filters: filters || []
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
var formatPhoneNumber = (value) => {
|
|
400
|
+
const originalValue = value.toString();
|
|
401
|
+
const digits = originalValue.replace(/\D/g, "");
|
|
402
|
+
const normalizedDigits = digits.length === 11 && digits.startsWith("1") ? digits.slice(1) : digits;
|
|
403
|
+
if (normalizedDigits.length !== 10) return originalValue;
|
|
404
|
+
const area = normalizedDigits.slice(0, 3);
|
|
405
|
+
const prefix = normalizedDigits.slice(3, 6);
|
|
406
|
+
const line = normalizedDigits.slice(6);
|
|
407
|
+
return `(${area}) ${prefix}-${line}`;
|
|
408
|
+
};
|
|
409
|
+
var formatNumber = (value) => {
|
|
410
|
+
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
411
|
+
};
|
|
412
|
+
var parseNumber = (value) => {
|
|
413
|
+
return value.toString().replace(/,/g, "");
|
|
414
|
+
};
|
|
415
|
+
var deletePropertyIfExists = (objectToUpdate, propertyName) => {
|
|
416
|
+
if (Object.prototype.hasOwnProperty.call(objectToUpdate, propertyName)) {
|
|
417
|
+
delete objectToUpdate[propertyName];
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
var chunkArray = (array, chunkSize) => {
|
|
421
|
+
if (!Array.isArray(array) || chunkSize <= 0 || !Number.isFinite(chunkSize)) {
|
|
422
|
+
return [];
|
|
423
|
+
}
|
|
424
|
+
const result = [];
|
|
425
|
+
const normalizedChunkSize = Math.floor(chunkSize);
|
|
426
|
+
for (let i = 0; i < array.length; i += normalizedChunkSize) {
|
|
427
|
+
result.push(array.slice(i, i + normalizedChunkSize));
|
|
428
|
+
}
|
|
429
|
+
return result;
|
|
430
|
+
};
|
|
431
|
+
var omitProperties = (objectToOmitFrom, propsToOmit) => {
|
|
432
|
+
const updatedObject = { ...objectToOmitFrom };
|
|
433
|
+
propsToOmit.forEach((propertyName) => {
|
|
434
|
+
delete updatedObject[propertyName];
|
|
435
|
+
});
|
|
436
|
+
return updatedObject;
|
|
437
|
+
};
|
|
438
|
+
var hasProperty = (value, key) => {
|
|
439
|
+
if (value === null || value === void 0) return false;
|
|
440
|
+
return Object.prototype.hasOwnProperty.call(value, key);
|
|
441
|
+
};
|
|
442
|
+
var hasOwnProp = (value, key) => {
|
|
443
|
+
return hasProperty(value, key);
|
|
444
|
+
};
|
|
445
|
+
var hasProperties = (value) => {
|
|
446
|
+
return isRecord(value) && Object.keys(value).length > 0;
|
|
447
|
+
};
|
|
448
|
+
var getFirstPropertyValue = (value) => {
|
|
449
|
+
if (value === null || value === void 0 || !hasProperties(value)) {
|
|
450
|
+
return null;
|
|
451
|
+
}
|
|
452
|
+
const source = value;
|
|
453
|
+
const keys = Object.keys(source);
|
|
454
|
+
return source[keys[0]];
|
|
455
|
+
};
|
|
456
|
+
var getNestedValue = (value, path) => {
|
|
457
|
+
const pathSegments = getPathSegments(path);
|
|
458
|
+
if (pathSegments.length === 0) {
|
|
459
|
+
return value;
|
|
460
|
+
}
|
|
461
|
+
let currentValue = value;
|
|
462
|
+
for (const pathSegment of pathSegments) {
|
|
463
|
+
if (!isSafePathSegment(pathSegment)) {
|
|
464
|
+
return void 0;
|
|
465
|
+
}
|
|
466
|
+
if (currentValue === null || currentValue === void 0) {
|
|
467
|
+
return void 0;
|
|
468
|
+
}
|
|
469
|
+
if (typeof currentValue !== "object" && typeof currentValue !== "function") {
|
|
470
|
+
return void 0;
|
|
471
|
+
}
|
|
472
|
+
currentValue = currentValue[pathSegment];
|
|
473
|
+
}
|
|
474
|
+
return currentValue;
|
|
475
|
+
};
|
|
476
|
+
var setNestedValue = (objectToUpdate, path, value) => {
|
|
477
|
+
const pathSegments = getPathSegments(path);
|
|
478
|
+
if (pathSegments.length === 0 || pathSegments.some((pathSegment) => !isSafePathSegment(pathSegment))) {
|
|
479
|
+
return objectToUpdate;
|
|
480
|
+
}
|
|
481
|
+
let currentValue = objectToUpdate;
|
|
482
|
+
for (let i = 0; i < pathSegments.length - 1; i += 1) {
|
|
483
|
+
const pathSegment = pathSegments[i];
|
|
484
|
+
const nextValue = currentValue[pathSegment];
|
|
485
|
+
if (!isRecord(nextValue)) {
|
|
486
|
+
currentValue[pathSegment] = {};
|
|
487
|
+
}
|
|
488
|
+
currentValue = currentValue[pathSegment];
|
|
489
|
+
}
|
|
490
|
+
currentValue[pathSegments[pathSegments.length - 1]] = value;
|
|
491
|
+
return objectToUpdate;
|
|
492
|
+
};
|
|
493
|
+
var deepClone = (value) => {
|
|
494
|
+
const cloneValue = (nestedValue, seenValues) => {
|
|
495
|
+
if (nestedValue === null || typeof nestedValue !== "object") {
|
|
496
|
+
return nestedValue;
|
|
497
|
+
}
|
|
498
|
+
if (nestedValue instanceof Date) {
|
|
499
|
+
return new Date(nestedValue.getTime());
|
|
500
|
+
}
|
|
501
|
+
if (seenValues.has(nestedValue)) {
|
|
502
|
+
return seenValues.get(nestedValue);
|
|
503
|
+
}
|
|
504
|
+
if (Array.isArray(nestedValue)) {
|
|
505
|
+
const clonedArray = [];
|
|
506
|
+
seenValues.set(nestedValue, clonedArray);
|
|
507
|
+
nestedValue.forEach((item) => {
|
|
508
|
+
clonedArray.push(cloneValue(item, seenValues));
|
|
509
|
+
});
|
|
510
|
+
return clonedArray;
|
|
511
|
+
}
|
|
512
|
+
const clonedObject = Object.create(
|
|
513
|
+
Object.getPrototypeOf(nestedValue)
|
|
514
|
+
);
|
|
515
|
+
seenValues.set(nestedValue, clonedObject);
|
|
516
|
+
Reflect.ownKeys(nestedValue).forEach((key) => {
|
|
517
|
+
clonedObject[key] = cloneValue(
|
|
518
|
+
nestedValue[key],
|
|
519
|
+
seenValues
|
|
520
|
+
);
|
|
521
|
+
});
|
|
522
|
+
return clonedObject;
|
|
523
|
+
};
|
|
524
|
+
return cloneValue(value, /* @__PURE__ */ new WeakMap());
|
|
525
|
+
};
|
|
526
|
+
var flatten = (value, prefix = "") => {
|
|
527
|
+
const result = {};
|
|
528
|
+
Object.entries(value).forEach(([key, nestedValue]) => {
|
|
529
|
+
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
530
|
+
if (isRecord(nestedValue)) {
|
|
531
|
+
Object.assign(result, flatten(nestedValue, newKey));
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
result[newKey] = nestedValue;
|
|
535
|
+
});
|
|
536
|
+
return result;
|
|
537
|
+
};
|
|
538
|
+
var unflatten = (value) => {
|
|
539
|
+
const result = {};
|
|
540
|
+
Object.entries(value).forEach(([key, nestedValue]) => {
|
|
541
|
+
setNestedValue(result, key, nestedValue);
|
|
542
|
+
});
|
|
543
|
+
return result;
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
// src/helpers/string/index.ts
|
|
547
|
+
var wordBoundaryRegex = /([a-z0-9])([A-Z])/g;
|
|
548
|
+
var acronymBoundaryRegex = /([A-Z]+)([A-Z][a-z])/g;
|
|
549
|
+
var getWords = (value) => {
|
|
550
|
+
return value.trim().replace(acronymBoundaryRegex, "$1 $2").replace(wordBoundaryRegex, "$1 $2").replace(/[^a-zA-Z0-9]+/g, " ").trim().split(/\s+/).filter(Boolean);
|
|
551
|
+
};
|
|
552
|
+
var capitalizeWord = (value) => {
|
|
553
|
+
if (!value) {
|
|
554
|
+
return "";
|
|
555
|
+
}
|
|
556
|
+
return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
|
|
557
|
+
};
|
|
558
|
+
var normalCase = (str) => {
|
|
559
|
+
if (!str) {
|
|
560
|
+
return "";
|
|
561
|
+
}
|
|
562
|
+
return getWords(str).map(capitalizeWord).join(" ");
|
|
563
|
+
};
|
|
564
|
+
var sentenceCase = (str) => {
|
|
565
|
+
if (!str) {
|
|
566
|
+
return "";
|
|
567
|
+
}
|
|
568
|
+
const normalizedValue = str.trim().toLowerCase();
|
|
569
|
+
return normalizedValue.charAt(0).toUpperCase() + normalizedValue.slice(1);
|
|
570
|
+
};
|
|
571
|
+
var upperCase = (str) => {
|
|
572
|
+
return str?.toUpperCase() ?? "";
|
|
573
|
+
};
|
|
574
|
+
var lowerCase = (str) => {
|
|
575
|
+
return str?.toLowerCase() ?? "";
|
|
576
|
+
};
|
|
577
|
+
var toCamelCase = (str) => {
|
|
578
|
+
const words = getWords(str);
|
|
579
|
+
if (words.length === 0) {
|
|
580
|
+
return "";
|
|
581
|
+
}
|
|
582
|
+
const [firstWord, ...remainingWords] = words;
|
|
583
|
+
return [firstWord.toLowerCase(), ...remainingWords.map(capitalizeWord)].join(
|
|
584
|
+
""
|
|
585
|
+
);
|
|
586
|
+
};
|
|
587
|
+
var camelCase = toCamelCase;
|
|
588
|
+
var toKebabCase = (str) => {
|
|
589
|
+
return getWords(str).map((word) => word.toLowerCase()).join("-");
|
|
590
|
+
};
|
|
591
|
+
var kebabCase = toKebabCase;
|
|
592
|
+
var toSnakeCase = (str) => {
|
|
593
|
+
return getWords(str).map((word) => word.toLowerCase()).join("_");
|
|
594
|
+
};
|
|
595
|
+
var snakeCase = toSnakeCase;
|
|
596
|
+
var toPascalCase = (str) => {
|
|
597
|
+
return getWords(str).map(capitalizeWord).join("");
|
|
598
|
+
};
|
|
599
|
+
var pascalCase = toPascalCase;
|
|
600
|
+
var snakeCaseToSpaces = (str) => {
|
|
601
|
+
return str.replace(/_+/g, " ").trim();
|
|
602
|
+
};
|
|
603
|
+
var kebabToSpaces = (str) => {
|
|
604
|
+
return str.replace(/-+/g, " ").trim();
|
|
605
|
+
};
|
|
606
|
+
var capitalize = (str) => {
|
|
607
|
+
if (!str) {
|
|
608
|
+
return "";
|
|
609
|
+
}
|
|
610
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
611
|
+
};
|
|
612
|
+
var titleCase = (str) => {
|
|
613
|
+
return str.replace(/\b\w/g, (char) => char.toUpperCase());
|
|
614
|
+
};
|
|
615
|
+
var truncate = (str, length, suffix = "...") => {
|
|
616
|
+
if (length <= 0) {
|
|
617
|
+
return "";
|
|
618
|
+
}
|
|
619
|
+
if (str.length <= length) {
|
|
620
|
+
return str;
|
|
621
|
+
}
|
|
622
|
+
const maxLength = Math.max(0, length - suffix.length);
|
|
623
|
+
if (maxLength === 0) {
|
|
624
|
+
return suffix.length > length ? "" : suffix;
|
|
625
|
+
}
|
|
626
|
+
return str.slice(0, maxLength) + suffix;
|
|
627
|
+
};
|
|
628
|
+
var removeWhitespace = (str) => {
|
|
629
|
+
return str.replace(/\s+/g, "");
|
|
630
|
+
};
|
|
631
|
+
var removeSpecialChars = (str) => {
|
|
632
|
+
return str.replace(/[^a-zA-Z0-9]/g, "");
|
|
633
|
+
};
|
|
634
|
+
var slug = (str) => {
|
|
635
|
+
return str.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, "");
|
|
636
|
+
};
|
|
637
|
+
var isEmail = (str) => {
|
|
638
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
639
|
+
return emailRegex.test(str.trim());
|
|
640
|
+
};
|
|
641
|
+
var isUrl = (str) => {
|
|
642
|
+
try {
|
|
643
|
+
const parsedUrl = new URL(str);
|
|
644
|
+
return parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:";
|
|
645
|
+
} catch {
|
|
646
|
+
return false;
|
|
647
|
+
}
|
|
648
|
+
};
|
|
649
|
+
var isNumeric = (str) => {
|
|
650
|
+
return /^\d+$/.test(str);
|
|
651
|
+
};
|
|
652
|
+
var isEmpty = (str) => {
|
|
653
|
+
return str.trim().length === 0;
|
|
654
|
+
};
|
|
655
|
+
var reverse = (str) => {
|
|
656
|
+
return Array.from(str).reverse().join("");
|
|
657
|
+
};
|
|
658
|
+
var repeat = (str, times) => {
|
|
659
|
+
return str.repeat(Math.max(0, Math.floor(times)));
|
|
660
|
+
};
|
|
661
|
+
var padStart = (str, length, padChar = " ") => {
|
|
662
|
+
return str.padStart(length, padChar);
|
|
663
|
+
};
|
|
664
|
+
var padEnd = (str, length, padChar = " ") => {
|
|
665
|
+
return str.padEnd(length, padChar);
|
|
666
|
+
};
|
|
667
|
+
var toBase64 = (str) => {
|
|
668
|
+
return Buffer.from(str, "utf-8").toString("base64");
|
|
669
|
+
};
|
|
670
|
+
var fromBase64 = (str) => {
|
|
671
|
+
return Buffer.from(str, "base64").toString("utf-8");
|
|
672
|
+
};
|
|
673
|
+
var wordCount = (str) => {
|
|
674
|
+
const trimmedValue = str.trim();
|
|
675
|
+
if (!trimmedValue) {
|
|
676
|
+
return 0;
|
|
677
|
+
}
|
|
678
|
+
return trimmedValue.split(/\s+/).length;
|
|
679
|
+
};
|
|
680
|
+
var charCount = (str) => {
|
|
681
|
+
return str.replace(/\s/g, "").length;
|
|
682
|
+
};
|
|
683
|
+
var repeatChar = (char, times) => {
|
|
684
|
+
return char.repeat(Math.max(0, Math.floor(times)));
|
|
685
|
+
};
|
|
686
|
+
var extractNumbers = (str) => {
|
|
687
|
+
return str.replace(/\D/g, "");
|
|
688
|
+
};
|
|
689
|
+
var removeDuplicates = (str) => {
|
|
690
|
+
return str.replace(/(.)\1+/g, "$1");
|
|
691
|
+
};
|
|
692
|
+
var isPalindrome = (str) => {
|
|
693
|
+
const cleaned = str.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
694
|
+
return cleaned === cleaned.split("").reverse().join("");
|
|
695
|
+
};
|
|
696
|
+
var longestWord = (str) => {
|
|
697
|
+
const words = str.trim().split(/\s+/).filter(Boolean);
|
|
698
|
+
return words.reduce(
|
|
699
|
+
(longest, word) => word.length > longest.length ? word : longest,
|
|
700
|
+
""
|
|
701
|
+
);
|
|
702
|
+
};
|
|
703
|
+
var pluralize = (word) => {
|
|
704
|
+
const exceptions = {
|
|
705
|
+
child: "children",
|
|
706
|
+
person: "people",
|
|
707
|
+
man: "men",
|
|
708
|
+
woman: "women",
|
|
709
|
+
tooth: "teeth",
|
|
710
|
+
foot: "feet",
|
|
711
|
+
mouse: "mice"
|
|
712
|
+
};
|
|
713
|
+
const lowercaseWord = word.toLowerCase();
|
|
714
|
+
const exception = exceptions[lowercaseWord];
|
|
715
|
+
if (exception) {
|
|
716
|
+
return word.charAt(0) === word.charAt(0).toUpperCase() ? capitalize(exception) : exception;
|
|
717
|
+
}
|
|
718
|
+
if (/[^aeiou]y$/i.test(word)) {
|
|
719
|
+
return `${word.slice(0, -1)}ies`;
|
|
720
|
+
}
|
|
721
|
+
if (/(s|x|z|ch|sh)$/i.test(word)) {
|
|
722
|
+
return `${word}es`;
|
|
723
|
+
}
|
|
724
|
+
if (/fe$/i.test(word)) {
|
|
725
|
+
return `${word.slice(0, -2)}ves`;
|
|
726
|
+
}
|
|
727
|
+
if (/f$/i.test(word)) {
|
|
728
|
+
return `${word.slice(0, -1)}ves`;
|
|
729
|
+
}
|
|
730
|
+
return `${word}s`;
|
|
731
|
+
};
|
|
732
|
+
var highlight = (str, substring, marker = "**") => {
|
|
733
|
+
if (!substring) {
|
|
734
|
+
return str;
|
|
735
|
+
}
|
|
736
|
+
return str.replace(
|
|
737
|
+
new RegExp(`(${escapeRegex(substring)})`, "gi"),
|
|
738
|
+
`${marker}$1${marker}`
|
|
739
|
+
);
|
|
740
|
+
};
|
|
741
|
+
var escapeRegex = (str) => {
|
|
742
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
743
|
+
};
|
|
744
|
+
var stringSimilarity = (str1, str2) => {
|
|
745
|
+
const s1 = str1.toLowerCase();
|
|
746
|
+
const s2 = str2.toLowerCase();
|
|
747
|
+
const longer = s1.length > s2.length ? s1 : s2;
|
|
748
|
+
const shorter = s1.length > s2.length ? s2 : s1;
|
|
749
|
+
if (longer.length === 0) {
|
|
750
|
+
return 1;
|
|
751
|
+
}
|
|
752
|
+
const editDistance = getEditDistance(longer, shorter);
|
|
753
|
+
return (longer.length - editDistance) / longer.length;
|
|
754
|
+
};
|
|
755
|
+
var getEditDistance = (s1, s2) => {
|
|
756
|
+
const costs = [];
|
|
757
|
+
for (let i = 0; i <= s1.length; i += 1) {
|
|
758
|
+
let lastValue = i;
|
|
759
|
+
for (let j = 0; j <= s2.length; j += 1) {
|
|
760
|
+
if (i === 0) {
|
|
761
|
+
costs[j] = j;
|
|
762
|
+
} else if (j > 0) {
|
|
763
|
+
let newValue = costs[j - 1];
|
|
764
|
+
if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {
|
|
765
|
+
newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;
|
|
766
|
+
}
|
|
767
|
+
costs[j - 1] = lastValue;
|
|
768
|
+
lastValue = newValue;
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
if (i > 0) {
|
|
772
|
+
costs[s2.length] = lastValue;
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
return costs[s2.length];
|
|
776
|
+
};
|
|
777
|
+
var stripHtml = (str) => {
|
|
778
|
+
return str.replace(/<[^>]*>/g, "");
|
|
779
|
+
};
|
|
780
|
+
var normalizeSpaces = (str) => {
|
|
781
|
+
return str.replace(/\s+/g, " ").trim();
|
|
782
|
+
};
|
|
783
|
+
var toNumber = (str) => {
|
|
784
|
+
if (str.trim() === "") {
|
|
785
|
+
return null;
|
|
786
|
+
}
|
|
787
|
+
const num = Number(str);
|
|
788
|
+
return Number.isNaN(num) ? null : num;
|
|
789
|
+
};
|
|
790
|
+
var splitMultiple = (str, ...delimiters) => {
|
|
791
|
+
if (delimiters.length === 0) {
|
|
792
|
+
return [str].filter((part) => part.length > 0);
|
|
793
|
+
}
|
|
794
|
+
let result = [str];
|
|
795
|
+
delimiters.forEach((delimiter) => {
|
|
796
|
+
if (delimiter !== "") {
|
|
797
|
+
result = result.flatMap((part) => part.split(delimiter));
|
|
798
|
+
}
|
|
799
|
+
});
|
|
800
|
+
return result.filter((part) => part.length > 0);
|
|
801
|
+
};
|
|
802
|
+
var containsAny = (str, ...substrings) => {
|
|
803
|
+
return substrings.some((substring) => str.includes(substring));
|
|
804
|
+
};
|
|
805
|
+
var containsAll = (str, ...substrings) => {
|
|
806
|
+
return substrings.every((substring) => str.includes(substring));
|
|
807
|
+
};
|
|
808
|
+
var formatAddress = (address) => {
|
|
809
|
+
const parts = [
|
|
810
|
+
address.addressLine1,
|
|
811
|
+
address.addressLine2,
|
|
812
|
+
address.city,
|
|
813
|
+
address.stateCode,
|
|
814
|
+
address.postalCode
|
|
815
|
+
].filter(Boolean);
|
|
816
|
+
return parts.join(", ");
|
|
817
|
+
};
|
|
818
|
+
|
|
819
|
+
// src/types/api/index.ts
|
|
820
|
+
var HTTP_METHOD = {
|
|
821
|
+
Get: "GET",
|
|
822
|
+
Post: "POST",
|
|
823
|
+
Put: "PUT",
|
|
824
|
+
Patch: "PATCH",
|
|
825
|
+
Delete: "DELETE"
|
|
826
|
+
};
|
|
827
|
+
var ERROR_CODES = {
|
|
828
|
+
// 400 - Bad Request
|
|
829
|
+
BAD_REQUEST: "BAD_REQUEST",
|
|
830
|
+
VALIDATION_ERROR: "VALIDATION_ERROR",
|
|
831
|
+
MISSING_FIELDS: "MISSING_FIELDS",
|
|
832
|
+
// 401 - Unauthorized
|
|
833
|
+
UNAUTHORIZED: "UNAUTHORIZED",
|
|
834
|
+
INVALID_TOKEN: "INVALID_TOKEN",
|
|
835
|
+
INVALID_CREDENTIALS: "INVALID_CREDENTIALS",
|
|
836
|
+
// 403 - Forbidden
|
|
837
|
+
FORBIDDEN: "FORBIDDEN",
|
|
838
|
+
// 404 - Not Found
|
|
839
|
+
NOT_FOUND: "NOT_FOUND",
|
|
840
|
+
// 409 - Conflict
|
|
841
|
+
CONFLICT: "CONFLICT",
|
|
842
|
+
ALREADY_EXISTS: "ALREADY_EXISTS",
|
|
843
|
+
// 429 - Rate Limiting
|
|
844
|
+
RATE_LIMIT: "RATE_LIMIT",
|
|
845
|
+
RATE_LIMIT_EXCEEDED: "RATE_LIMIT_EXCEEDED",
|
|
846
|
+
// 500 - Server Errors
|
|
847
|
+
INTERNAL_ERROR: "INTERNAL_ERROR",
|
|
848
|
+
DATABASE_ERROR: "DATABASE_ERROR"
|
|
849
|
+
};
|
|
850
|
+
var HTTP_STATUS = {
|
|
851
|
+
OK: 200,
|
|
852
|
+
CREATED: 201,
|
|
853
|
+
NO_CONTENT: 204,
|
|
854
|
+
BAD_REQUEST: 400,
|
|
855
|
+
UNAUTHORIZED: 401,
|
|
856
|
+
FORBIDDEN: 403,
|
|
857
|
+
NOT_FOUND: 404,
|
|
858
|
+
CONFLICT: 409,
|
|
859
|
+
RATE_LIMIT: 429,
|
|
860
|
+
INTERNAL_ERROR: 500
|
|
861
|
+
};
|
|
862
|
+
|
|
863
|
+
// src/types/auth/index.ts
|
|
864
|
+
var AUTH_STATUS = {
|
|
865
|
+
Initializing: "Initializing",
|
|
866
|
+
Unauthenticated: "Unauthenticated",
|
|
867
|
+
Authenticated: "Authenticated",
|
|
868
|
+
Refreshing: "Refreshing",
|
|
869
|
+
SessionExpired: "SessionExpired"
|
|
870
|
+
};
|
|
871
|
+
|
|
872
|
+
// src/types/base/index.ts
|
|
873
|
+
var IMAGE_ENTITY = {
|
|
874
|
+
USER_PROFILE: "user_profile",
|
|
875
|
+
PROPERTY: "property",
|
|
876
|
+
PROPERTY_ROOM: "property_room",
|
|
877
|
+
MAINTENANCE_TICKET: "maintenance_ticket",
|
|
878
|
+
WORK_REPORT: "work_report"
|
|
879
|
+
};
|
|
880
|
+
var US_STATES_CODE = {
|
|
881
|
+
// 50 States
|
|
882
|
+
AL: "AL",
|
|
883
|
+
AK: "AK",
|
|
884
|
+
AZ: "AZ",
|
|
885
|
+
AR: "AR",
|
|
886
|
+
CA: "CA",
|
|
887
|
+
CO: "CO",
|
|
888
|
+
CT: "CT",
|
|
889
|
+
DE: "DE",
|
|
890
|
+
FL: "FL",
|
|
891
|
+
GA: "GA",
|
|
892
|
+
HI: "HI",
|
|
893
|
+
ID: "ID",
|
|
894
|
+
IL: "IL",
|
|
895
|
+
IN: "IN",
|
|
896
|
+
IA: "IA",
|
|
897
|
+
KS: "KS",
|
|
898
|
+
KY: "KY",
|
|
899
|
+
LA: "LA",
|
|
900
|
+
ME: "ME",
|
|
901
|
+
MD: "MD",
|
|
902
|
+
MA: "MA",
|
|
903
|
+
MI: "MI",
|
|
904
|
+
MN: "MN",
|
|
905
|
+
MS: "MS",
|
|
906
|
+
MO: "MO",
|
|
907
|
+
MT: "MT",
|
|
908
|
+
NE: "NE",
|
|
909
|
+
NV: "NV",
|
|
910
|
+
NH: "NH",
|
|
911
|
+
NJ: "NJ",
|
|
912
|
+
NM: "NM",
|
|
913
|
+
NY: "NY",
|
|
914
|
+
NC: "NC",
|
|
915
|
+
ND: "ND",
|
|
916
|
+
OH: "OH",
|
|
917
|
+
OK: "OK",
|
|
918
|
+
OR: "OR",
|
|
919
|
+
PA: "PA",
|
|
920
|
+
RI: "RI",
|
|
921
|
+
SC: "SC",
|
|
922
|
+
SD: "SD",
|
|
923
|
+
TN: "TN",
|
|
924
|
+
TX: "TX",
|
|
925
|
+
UT: "UT",
|
|
926
|
+
VT: "VT",
|
|
927
|
+
VA: "VA",
|
|
928
|
+
WA: "WA",
|
|
929
|
+
WV: "WV",
|
|
930
|
+
WI: "WI",
|
|
931
|
+
WY: "WY",
|
|
932
|
+
// Territories
|
|
933
|
+
DC: "DC",
|
|
934
|
+
PR: "PR",
|
|
935
|
+
GU: "GU",
|
|
936
|
+
VI: "VI",
|
|
937
|
+
AS: "AS",
|
|
938
|
+
MP: "MP"
|
|
939
|
+
};
|
|
940
|
+
var US_JURISDICTIONS = {
|
|
941
|
+
// 50 States
|
|
942
|
+
AL: "Alabama",
|
|
943
|
+
AK: "Alaska",
|
|
944
|
+
AZ: "Arizona",
|
|
945
|
+
AR: "Arkansas",
|
|
946
|
+
CA: "California",
|
|
947
|
+
CO: "Colorado",
|
|
948
|
+
CT: "Connecticut",
|
|
949
|
+
DE: "Delaware",
|
|
950
|
+
FL: "Florida",
|
|
951
|
+
GA: "Georgia",
|
|
952
|
+
HI: "Hawaii",
|
|
953
|
+
ID: "Idaho",
|
|
954
|
+
IL: "Illinois",
|
|
955
|
+
IN: "Indiana",
|
|
956
|
+
IA: "Iowa",
|
|
957
|
+
KS: "Kansas",
|
|
958
|
+
KY: "Kentucky",
|
|
959
|
+
LA: "Louisiana",
|
|
960
|
+
ME: "Maine",
|
|
961
|
+
MD: "Maryland",
|
|
962
|
+
MA: "Massachusetts",
|
|
963
|
+
MI: "Michigan",
|
|
964
|
+
MN: "Minnesota",
|
|
965
|
+
MS: "Mississippi",
|
|
966
|
+
MO: "Missouri",
|
|
967
|
+
MT: "Montana",
|
|
968
|
+
NE: "Nebraska",
|
|
969
|
+
NV: "Nevada",
|
|
970
|
+
NH: "New Hampshire",
|
|
971
|
+
NJ: "New Jersey",
|
|
972
|
+
NM: "New Mexico",
|
|
973
|
+
NY: "New York",
|
|
974
|
+
NC: "North Carolina",
|
|
975
|
+
ND: "North Dakota",
|
|
976
|
+
OH: "Ohio",
|
|
977
|
+
OK: "Oklahoma",
|
|
978
|
+
OR: "Oregon",
|
|
979
|
+
PA: "Pennsylvania",
|
|
980
|
+
RI: "Rhode Island",
|
|
981
|
+
SC: "South Carolina",
|
|
982
|
+
SD: "South Dakota",
|
|
983
|
+
TN: "Tennessee",
|
|
984
|
+
TX: "Texas",
|
|
985
|
+
UT: "Utah",
|
|
986
|
+
VT: "Vermont",
|
|
987
|
+
VA: "Virginia",
|
|
988
|
+
WA: "Washington",
|
|
989
|
+
WV: "West Virginia",
|
|
990
|
+
WI: "Wisconsin",
|
|
991
|
+
WY: "Wyoming",
|
|
992
|
+
// Territories
|
|
993
|
+
DC: "District of Columbia",
|
|
994
|
+
PR: "Puerto Rico",
|
|
995
|
+
GU: "Guam",
|
|
996
|
+
VI: "United States Virgin Islands",
|
|
997
|
+
AS: "American Samoa",
|
|
998
|
+
MP: "Northern Mariana Islands"
|
|
999
|
+
};
|
|
1000
|
+
var UnitedStatesJurisdictionOptions = Object.values(
|
|
1001
|
+
US_JURISDICTIONS
|
|
1002
|
+
).map((jurisdiction) => ({
|
|
1003
|
+
label: jurisdiction,
|
|
1004
|
+
value: jurisdiction
|
|
1005
|
+
}));
|
|
1006
|
+
var STATUS = {
|
|
1007
|
+
Pending: "Pending",
|
|
1008
|
+
InProgress: "InProgress",
|
|
1009
|
+
Completed: "Completed",
|
|
1010
|
+
Overdue: "Overdue",
|
|
1011
|
+
Active: "Active",
|
|
1012
|
+
Inactive: "Inactive"
|
|
1013
|
+
};
|
|
1014
|
+
var StatusOptions = Object.values(STATUS).map((status) => ({
|
|
1015
|
+
label: status,
|
|
1016
|
+
value: status
|
|
1017
|
+
}));
|
|
1018
|
+
var SEVERITY = {
|
|
1019
|
+
Low: "Low",
|
|
1020
|
+
Medium: "Medium",
|
|
1021
|
+
High: "High"
|
|
1022
|
+
};
|
|
1023
|
+
var SeverityOptions = Object.values(SEVERITY).map((severity) => ({
|
|
1024
|
+
label: severity,
|
|
1025
|
+
value: severity
|
|
1026
|
+
}));
|
|
1027
|
+
var SERVICE_TYPES = {
|
|
1028
|
+
Cleaning: "Cleaning",
|
|
1029
|
+
Maintenance: "Maintenance",
|
|
1030
|
+
Inspection: "Inspections",
|
|
1031
|
+
Other: "Other"
|
|
1032
|
+
};
|
|
1033
|
+
var ServiceTypeOptions = Object.values(SERVICE_TYPES).map(
|
|
1034
|
+
(serviceType) => ({
|
|
1035
|
+
label: serviceType,
|
|
1036
|
+
value: serviceType
|
|
1037
|
+
})
|
|
1038
|
+
);
|
|
1039
|
+
var MONTHS = [
|
|
1040
|
+
"January",
|
|
1041
|
+
"February",
|
|
1042
|
+
"March",
|
|
1043
|
+
"April",
|
|
1044
|
+
"May",
|
|
1045
|
+
"June",
|
|
1046
|
+
"July",
|
|
1047
|
+
"August",
|
|
1048
|
+
"September",
|
|
1049
|
+
"October",
|
|
1050
|
+
"November",
|
|
1051
|
+
"December"
|
|
1052
|
+
];
|
|
1053
|
+
|
|
1054
|
+
// src/types/company/index.ts
|
|
1055
|
+
var COMPANY_TYPES = {
|
|
1056
|
+
PROPERTY_MANAGEMENT: "PROPERTY_MANAGEMENT",
|
|
1057
|
+
MAINTENANCE: "MAINTENANCE",
|
|
1058
|
+
CLEANER: "CLEANER",
|
|
1059
|
+
OTHER: "OTHER"
|
|
1060
|
+
};
|
|
1061
|
+
|
|
1062
|
+
// src/types/damage-report/index.ts
|
|
1063
|
+
var DAMAGE_SEVERITY = {
|
|
1064
|
+
LOW: "LOW",
|
|
1065
|
+
MEDIUM: "MEDIUM",
|
|
1066
|
+
HIGH: "HIGH",
|
|
1067
|
+
CRITICAL: "CRITICAL"
|
|
1068
|
+
};
|
|
1069
|
+
var DAMAGE_STATUS = {
|
|
1070
|
+
OPEN: "OPEN",
|
|
1071
|
+
IN_REVIEW: "IN_REVIEW",
|
|
1072
|
+
ASSIGNED: "ASSIGNED",
|
|
1073
|
+
IN_PROGRESS: "IN_PROGRESS",
|
|
1074
|
+
RESOLVED: "RESOLVED",
|
|
1075
|
+
CLOSED: "CLOSED",
|
|
1076
|
+
ESCALATED: "ESCALATED"
|
|
1077
|
+
};
|
|
1078
|
+
var WORK_ORDER_PRIORITY = {
|
|
1079
|
+
LOW: "LOW",
|
|
1080
|
+
NORMAL: "NORMAL",
|
|
1081
|
+
HIGH: "HIGH",
|
|
1082
|
+
URGENT: "URGENT"
|
|
1083
|
+
};
|
|
1084
|
+
var WORK_ORDER_STATUS = {
|
|
1085
|
+
PENDING: "PENDING",
|
|
1086
|
+
SCHEDULED: "SCHEDULED",
|
|
1087
|
+
IN_PROGRESS: "IN_PROGRESS",
|
|
1088
|
+
COMPLETED: "COMPLETED",
|
|
1089
|
+
CANCELLED: "CANCELLED"
|
|
1090
|
+
};
|
|
1091
|
+
|
|
1092
|
+
// src/types/errors/index.ts
|
|
1093
|
+
var isErrorLike = (error) => {
|
|
1094
|
+
return typeof error === "object" && error !== null;
|
|
1095
|
+
};
|
|
1096
|
+
function isValidationError(error) {
|
|
1097
|
+
return isErrorLike(error) && error.code === "VALIDATION_ERROR" && Array.isArray(error.details);
|
|
1098
|
+
}
|
|
1099
|
+
function isMissingFieldsError(error) {
|
|
1100
|
+
return isErrorLike(error) && error.code === "MISSING_FIELDS" && typeof error.details === "object" && error.details !== null && "missingFields" in error.details && Array.isArray(error.details.missingFields);
|
|
1101
|
+
}
|
|
1102
|
+
function isRateLimitError(error) {
|
|
1103
|
+
return isErrorLike(error) && error.code === "RATE_LIMIT_EXCEEDED";
|
|
1104
|
+
}
|
|
1105
|
+
function isAuthError(error) {
|
|
1106
|
+
return isErrorLike(error) && (error.code === "UNAUTHORIZED" || error.code === "INVALID_TOKEN" || error.code === "INVALID_CREDENTIALS");
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
// src/types/image/index.ts
|
|
1110
|
+
var IMAGE_ENTITY_TYPE = {
|
|
1111
|
+
USER_PROFILE: "USER_PROFILE",
|
|
1112
|
+
PROPERTY: "PROPERTY",
|
|
1113
|
+
COMPANY: "COMPANY",
|
|
1114
|
+
CHECKLIST_ITEM: "CHECKLIST_ITEM",
|
|
1115
|
+
PROPERTY_ROOM: "PROPERTY_ROOM",
|
|
1116
|
+
MAINTENANCE_TICKET: "MAINTENANCE_TICKET",
|
|
1117
|
+
WORK_REPORT: "WORK_REPORT",
|
|
1118
|
+
CLEANING_REPORT: "CLEANING_REPORT",
|
|
1119
|
+
TURNDOWN_DEFAULT: "TURNDOWN_DEFAULT"
|
|
1120
|
+
};
|
|
1121
|
+
|
|
1122
|
+
// src/types/inventory/index.ts
|
|
1123
|
+
var INVENTORY_UNITS = {
|
|
1124
|
+
COUNT: "COUNT",
|
|
1125
|
+
ROLLS: "ROLLS",
|
|
1126
|
+
PODS: "PODS",
|
|
1127
|
+
BOXES: "BOXES",
|
|
1128
|
+
BOTTLES: "BOTTLES",
|
|
1129
|
+
PACKS: "PACKS",
|
|
1130
|
+
BAGS: "BAGS",
|
|
1131
|
+
GALLONS: "GALLONS",
|
|
1132
|
+
LITERS: "LITERS",
|
|
1133
|
+
KILOGRAMS: "KILOGRAMS",
|
|
1134
|
+
POUNDS: "POUNDS",
|
|
1135
|
+
OUNCES: "OUNCES",
|
|
1136
|
+
GRAMS: "GRAMS",
|
|
1137
|
+
SHEETS: "SHEETS",
|
|
1138
|
+
CASES: "CASES",
|
|
1139
|
+
CARTONS: "CARTONS",
|
|
1140
|
+
OTHER: "OTHER"
|
|
1141
|
+
};
|
|
1142
|
+
var INVENTORY_ITEM_TYPE = {
|
|
1143
|
+
CONSUMABLE: "CONSUMABLE",
|
|
1144
|
+
FIXED: "FIXED"
|
|
1145
|
+
};
|
|
1146
|
+
|
|
1147
|
+
// src/types/property/index.ts
|
|
1148
|
+
var PROPERTY_STATUS = {
|
|
1149
|
+
Active: "Active",
|
|
1150
|
+
Inactive: "Inactive"
|
|
1151
|
+
};
|
|
1152
|
+
var PropertyStatusOptions = [
|
|
1153
|
+
{
|
|
1154
|
+
label: "Active",
|
|
1155
|
+
value: PROPERTY_STATUS.Active
|
|
1156
|
+
},
|
|
1157
|
+
{
|
|
1158
|
+
label: "Inactive",
|
|
1159
|
+
value: PROPERTY_STATUS.Inactive
|
|
1160
|
+
}
|
|
1161
|
+
];
|
|
1162
|
+
var PROPERTY_TYPES = [
|
|
1163
|
+
"Apartment",
|
|
1164
|
+
"Commercial",
|
|
1165
|
+
"Condo",
|
|
1166
|
+
"House"
|
|
1167
|
+
];
|
|
1168
|
+
var PropertyTypeOptions = PROPERTY_TYPES.map((propertyType) => ({
|
|
1169
|
+
label: propertyType,
|
|
1170
|
+
value: propertyType
|
|
1171
|
+
}));
|
|
1172
|
+
|
|
1173
|
+
// src/types/subscription/index.ts
|
|
1174
|
+
var SUBSCRIPTION_STATUS = {
|
|
1175
|
+
ACTIVE: "active",
|
|
1176
|
+
CANCELED: "canceled",
|
|
1177
|
+
EXPIRED: "expired",
|
|
1178
|
+
PAST_DUE: "past_due",
|
|
1179
|
+
TRIALING: "trialing"
|
|
1180
|
+
};
|
|
1181
|
+
var SUBSCRIPTION_PROVIDER = {
|
|
1182
|
+
STRIPE: "stripe",
|
|
1183
|
+
APPLE: "apple",
|
|
1184
|
+
GOOGLE: "google"
|
|
1185
|
+
};
|
|
1186
|
+
var BILLING_PERIOD = {
|
|
1187
|
+
MONTHLY: "monthly",
|
|
1188
|
+
YEARLY: "yearly"
|
|
1189
|
+
};
|
|
1190
|
+
|
|
1191
|
+
// src/types/user/index.ts
|
|
1192
|
+
var ACCOUNT_TYPE = {
|
|
1193
|
+
TURNDOWN_ADMIN: "TURNDOWN_ADMIN",
|
|
1194
|
+
ACCOUNT_ADMIN: "ACCOUNT_ADMIN",
|
|
1195
|
+
MANAGER: "MANAGER",
|
|
1196
|
+
STAFF: "STAFF",
|
|
1197
|
+
GUEST: "GUEST"
|
|
1198
|
+
};
|
|
1199
|
+
var ACCOUNT_STATUS = {
|
|
1200
|
+
ACTIVE: "ACTIVE",
|
|
1201
|
+
INACTIVE: "INACTIVE",
|
|
1202
|
+
SUSPENDED: "SUSPENDED",
|
|
1203
|
+
PENDING: "PENDING"
|
|
1204
|
+
};
|
|
1205
|
+
var LANGUAGE = {
|
|
1206
|
+
ENGLISH: "ENGLISH",
|
|
1207
|
+
FRENCH: "FRENCH",
|
|
1208
|
+
SPANISH: "SPANISH",
|
|
1209
|
+
GERMAN: "GERMAN"
|
|
1210
|
+
};
|
|
1211
|
+
|
|
1212
|
+
// src/types/work-session/index.ts
|
|
1213
|
+
var WORK_SESSION_STATUS = {
|
|
1214
|
+
IN_PROGRESS: "IN_PROGRESS",
|
|
1215
|
+
COMPLETED: "COMPLETED",
|
|
1216
|
+
CANCELLED: "CANCELLED"
|
|
1217
|
+
};
|
|
1218
|
+
var CHECKLIST_EXECUTION_STATUS = {
|
|
1219
|
+
PENDING: "PENDING",
|
|
1220
|
+
IN_PROGRESS: "IN_PROGRESS",
|
|
1221
|
+
COMPLETED: "COMPLETED",
|
|
1222
|
+
SKIPPED: "SKIPPED"
|
|
1223
|
+
};
|
|
1224
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1225
|
+
0 && (module.exports = {
|
|
1226
|
+
ACCOUNT_STATUS,
|
|
1227
|
+
ACCOUNT_TYPE,
|
|
1228
|
+
AUTH_STATUS,
|
|
1229
|
+
BILLING_PERIOD,
|
|
1230
|
+
CHECKLIST_EXECUTION_STATUS,
|
|
1231
|
+
COMPANY_TYPES,
|
|
1232
|
+
DAMAGE_SEVERITY,
|
|
1233
|
+
DAMAGE_STATUS,
|
|
1234
|
+
ERROR_CODES,
|
|
1235
|
+
HTTP_METHOD,
|
|
1236
|
+
HTTP_STATUS,
|
|
1237
|
+
IMAGE_ENTITY,
|
|
1238
|
+
IMAGE_ENTITY_TYPE,
|
|
1239
|
+
INVENTORY_ITEM_TYPE,
|
|
1240
|
+
INVENTORY_UNITS,
|
|
1241
|
+
JSONStringify,
|
|
1242
|
+
LANGUAGE,
|
|
1243
|
+
MONTHS,
|
|
1244
|
+
PROPERTY_STATUS,
|
|
1245
|
+
PROPERTY_TYPES,
|
|
1246
|
+
PropertyStatusOptions,
|
|
1247
|
+
PropertyTypeOptions,
|
|
1248
|
+
SERVICE_TYPES,
|
|
1249
|
+
SEVERITY,
|
|
1250
|
+
STATUS,
|
|
1251
|
+
SUBSCRIPTION_PROVIDER,
|
|
1252
|
+
SUBSCRIPTION_STATUS,
|
|
1253
|
+
ServiceTypeOptions,
|
|
1254
|
+
SeverityOptions,
|
|
1255
|
+
StatusOptions,
|
|
1256
|
+
US_JURISDICTIONS,
|
|
1257
|
+
US_STATES_CODE,
|
|
1258
|
+
UnitedStatesJurisdictionOptions,
|
|
1259
|
+
WORK_ORDER_PRIORITY,
|
|
1260
|
+
WORK_ORDER_STATUS,
|
|
1261
|
+
WORK_SESSION_STATUS,
|
|
1262
|
+
addDays,
|
|
1263
|
+
addWeeks,
|
|
1264
|
+
camelCase,
|
|
1265
|
+
capitalize,
|
|
1266
|
+
charCount,
|
|
1267
|
+
chunkArray,
|
|
1268
|
+
cleanFormData,
|
|
1269
|
+
containsAll,
|
|
1270
|
+
containsAny,
|
|
1271
|
+
convertStringBooleans,
|
|
1272
|
+
daysBetween,
|
|
1273
|
+
deepClone,
|
|
1274
|
+
deletePropertyIfExists,
|
|
1275
|
+
endOfDay,
|
|
1276
|
+
endOfWeek,
|
|
1277
|
+
escapeRegex,
|
|
1278
|
+
extractNumbers,
|
|
1279
|
+
filterArrayById,
|
|
1280
|
+
flatten,
|
|
1281
|
+
formatAddress,
|
|
1282
|
+
formatDate,
|
|
1283
|
+
formatNumber,
|
|
1284
|
+
formatPhoneNumber,
|
|
1285
|
+
fromBase64,
|
|
1286
|
+
getFirstPropertyValue,
|
|
1287
|
+
getNestedValue,
|
|
1288
|
+
getWeekDays,
|
|
1289
|
+
hasOwnProp,
|
|
1290
|
+
hasProperties,
|
|
1291
|
+
hasProperty,
|
|
1292
|
+
highlight,
|
|
1293
|
+
isAuthError,
|
|
1294
|
+
isEmail,
|
|
1295
|
+
isEmpty,
|
|
1296
|
+
isFuture,
|
|
1297
|
+
isMissingFieldsError,
|
|
1298
|
+
isNumeric,
|
|
1299
|
+
isPalindrome,
|
|
1300
|
+
isPast,
|
|
1301
|
+
isRateLimitError,
|
|
1302
|
+
isToday,
|
|
1303
|
+
isUrl,
|
|
1304
|
+
isValidationError,
|
|
1305
|
+
kebabCase,
|
|
1306
|
+
kebabToSpaces,
|
|
1307
|
+
longestWord,
|
|
1308
|
+
lowerCase,
|
|
1309
|
+
normalCase,
|
|
1310
|
+
normalizeSpaces,
|
|
1311
|
+
omitProperties,
|
|
1312
|
+
padEnd,
|
|
1313
|
+
padStart,
|
|
1314
|
+
parseJSON,
|
|
1315
|
+
parseNumber,
|
|
1316
|
+
pascalCase,
|
|
1317
|
+
pluralize,
|
|
1318
|
+
removeDuplicates,
|
|
1319
|
+
removeFormProperties,
|
|
1320
|
+
removeSpecialChars,
|
|
1321
|
+
removeUndefined,
|
|
1322
|
+
removeWhitespace,
|
|
1323
|
+
repeat,
|
|
1324
|
+
repeatChar,
|
|
1325
|
+
replaceNulls,
|
|
1326
|
+
resetPagination,
|
|
1327
|
+
returnObject,
|
|
1328
|
+
reverse,
|
|
1329
|
+
sentenceCase,
|
|
1330
|
+
setNestedValue,
|
|
1331
|
+
slug,
|
|
1332
|
+
snakeCase,
|
|
1333
|
+
snakeCaseToSpaces,
|
|
1334
|
+
sortArrayByProperty,
|
|
1335
|
+
splitMultiple,
|
|
1336
|
+
startOfDay,
|
|
1337
|
+
startOfWeek,
|
|
1338
|
+
stringSimilarity,
|
|
1339
|
+
stripHtml,
|
|
1340
|
+
subtractDays,
|
|
1341
|
+
subtractWeeks,
|
|
1342
|
+
timeAgo,
|
|
1343
|
+
titleCase,
|
|
1344
|
+
toBase64,
|
|
1345
|
+
toCamelCase,
|
|
1346
|
+
toKebabCase,
|
|
1347
|
+
toNumber,
|
|
1348
|
+
toPascalCase,
|
|
1349
|
+
toSnakeCase,
|
|
1350
|
+
truncate,
|
|
1351
|
+
unflatten,
|
|
1352
|
+
upperCase,
|
|
1353
|
+
validPath,
|
|
1354
|
+
wordCount
|
|
1355
|
+
});
|