@turndown/library 0.1.60 → 0.1.63

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.mjs CHANGED
@@ -1093,6 +1093,229 @@ var HTTP_STATUS = {
1093
1093
  InternalError: 500
1094
1094
  };
1095
1095
 
1096
+ // src/types/validation/index.ts
1097
+ var createValidationSchema = (fields) => {
1098
+ const allowedFields = Object.keys(fields);
1099
+ const requiredFields = allowedFields.filter((fieldName) => {
1100
+ return fields[fieldName].required;
1101
+ });
1102
+ return {
1103
+ fields,
1104
+ allowedFields,
1105
+ requiredFields,
1106
+ validate: (value, options = {}) => {
1107
+ if (!isRecord2(value)) {
1108
+ return {
1109
+ success: false,
1110
+ issues: [
1111
+ {
1112
+ fieldName: "body",
1113
+ type: "INVALID_BODY"
1114
+ }
1115
+ ]
1116
+ };
1117
+ }
1118
+ const issues = getValidationIssues(fields, value, options);
1119
+ if (issues.length > 0) {
1120
+ return {
1121
+ success: false,
1122
+ issues
1123
+ };
1124
+ }
1125
+ return {
1126
+ success: true,
1127
+ data: value,
1128
+ issues: []
1129
+ };
1130
+ }
1131
+ };
1132
+ };
1133
+ var requiredStringField = (missingValuePolicy = "Nullish") => ({
1134
+ required: true,
1135
+ missingValuePolicy,
1136
+ validate: isNonEmptyString
1137
+ });
1138
+ var optionalStringField = () => ({
1139
+ required: false,
1140
+ missingValuePolicy: "Nullish",
1141
+ validate: isNonEmptyString
1142
+ });
1143
+ var optionalNullableStringField = () => ({
1144
+ required: false,
1145
+ missingValuePolicy: "Nullish",
1146
+ validate: (value) => {
1147
+ return value === null || isNonEmptyString(value);
1148
+ }
1149
+ });
1150
+ var requiredEmailField = (missingValuePolicy = "BlankString") => ({
1151
+ required: true,
1152
+ missingValuePolicy,
1153
+ validate: isEmail2
1154
+ });
1155
+ var requiredUuidField = (missingValuePolicy = "Nullish") => ({
1156
+ required: true,
1157
+ missingValuePolicy,
1158
+ validate: isUuid
1159
+ });
1160
+ var optionalNullableNonNegativeIntegerField = () => ({
1161
+ required: false,
1162
+ missingValuePolicy: "Nullish",
1163
+ validate: (value) => {
1164
+ return value === null || Number.isInteger(value) && Number(value) >= 0;
1165
+ }
1166
+ });
1167
+ var optionalRecordField = () => ({
1168
+ required: false,
1169
+ missingValuePolicy: "Nullish",
1170
+ validate: isRecord2
1171
+ });
1172
+ var requiredEnumField = (allowedValues, missingValuePolicy = "Nullish") => ({
1173
+ required: true,
1174
+ missingValuePolicy,
1175
+ validate: (value) => {
1176
+ return isAllowedStringValue(value, allowedValues);
1177
+ }
1178
+ });
1179
+ var optionalEnumField = (allowedValues) => ({
1180
+ required: false,
1181
+ missingValuePolicy: "Nullish",
1182
+ validate: (value) => {
1183
+ return isAllowedStringValue(value, allowedValues);
1184
+ }
1185
+ });
1186
+ var optionalNullableEnumField = (allowedValues) => ({
1187
+ required: false,
1188
+ missingValuePolicy: "Nullish",
1189
+ validate: (value) => {
1190
+ return value === null || isAllowedStringValue(value, allowedValues);
1191
+ }
1192
+ });
1193
+ var getValidationIssues = (fields, value, options) => {
1194
+ const allowedFieldSet = new Set(Object.keys(fields));
1195
+ const issues = [];
1196
+ Object.entries(fields).forEach(([fieldName, field]) => {
1197
+ const fieldValue = value[fieldName];
1198
+ if (field.required && isMissingValue(fieldValue, field.missingValuePolicy)) {
1199
+ issues.push({
1200
+ fieldName,
1201
+ type: "MISSING_FIELD"
1202
+ });
1203
+ return;
1204
+ }
1205
+ if (fieldValue === void 0) {
1206
+ return;
1207
+ }
1208
+ if (!field.validate(fieldValue)) {
1209
+ issues.push({
1210
+ fieldName,
1211
+ type: "INVALID_FIELD"
1212
+ });
1213
+ }
1214
+ });
1215
+ if (options.rejectUnknownFields === true) {
1216
+ Object.keys(value).forEach((fieldName) => {
1217
+ if (!allowedFieldSet.has(fieldName)) {
1218
+ issues.push({
1219
+ fieldName,
1220
+ type: "UNSUPPORTED_FIELD"
1221
+ });
1222
+ }
1223
+ });
1224
+ }
1225
+ return issues;
1226
+ };
1227
+ var isRecord2 = (value) => {
1228
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1229
+ };
1230
+ var isMissingValue = (value, missingValuePolicy) => {
1231
+ if (value === void 0 || value === null) {
1232
+ return true;
1233
+ }
1234
+ return missingValuePolicy === "BlankString" && typeof value === "string" && value.trim().length === 0;
1235
+ };
1236
+ var isNonEmptyString = (value) => {
1237
+ return typeof value === "string" && value.trim().length > 0;
1238
+ };
1239
+ var isAllowedStringValue = (value, allowedValues) => {
1240
+ return typeof value === "string" && allowedValues.includes(value);
1241
+ };
1242
+ var isEmail2 = (value) => {
1243
+ if (!isNonEmptyString(value)) {
1244
+ return false;
1245
+ }
1246
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.trim());
1247
+ };
1248
+ var isUuid = (value) => {
1249
+ if (!isNonEmptyString(value)) {
1250
+ return false;
1251
+ }
1252
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(
1253
+ value
1254
+ );
1255
+ };
1256
+
1257
+ // src/types/user/constants.ts
1258
+ var ACCOUNT_TYPE = {
1259
+ TURNDOWN_ADMIN: "TURNDOWN_ADMIN",
1260
+ ACCOUNT_ADMIN: "ACCOUNT_ADMIN",
1261
+ MANAGER: "MANAGER",
1262
+ STAFF: "STAFF",
1263
+ GUEST: "GUEST"
1264
+ };
1265
+ var ACCOUNT_STATUS = {
1266
+ ACTIVE: "ACTIVE",
1267
+ INACTIVE: "INACTIVE",
1268
+ SUSPENDED: "SUSPENDED",
1269
+ PENDING: "PENDING"
1270
+ };
1271
+ var LANGUAGE = {
1272
+ ENGLISH: "ENGLISH",
1273
+ FRENCH: "FRENCH",
1274
+ SPANISH: "SPANISH",
1275
+ GERMAN: "GERMAN"
1276
+ };
1277
+
1278
+ // src/types/auth/routes.ts
1279
+ var AccountTypeValues = Object.values(ACCOUNT_TYPE);
1280
+ var RegisterRequestSchema = createValidationSchema({
1281
+ email: requiredEmailField(),
1282
+ password: requiredStringField("BlankString"),
1283
+ firstName: requiredStringField("BlankString"),
1284
+ lastName: optionalStringField(),
1285
+ accountType: requiredEnumField(AccountTypeValues, "BlankString"),
1286
+ deviceInfo: optionalRecordField()
1287
+ });
1288
+ var LoginRequestSchema = createValidationSchema({
1289
+ email: requiredEmailField(),
1290
+ password: requiredStringField("BlankString"),
1291
+ deviceInfo: optionalRecordField()
1292
+ });
1293
+ var RefreshSessionRequestSchema = createValidationSchema({
1294
+ refreshToken: requiredStringField("BlankString"),
1295
+ deviceInfo: optionalRecordField()
1296
+ });
1297
+ var LogoutRequestSchema = createValidationSchema({
1298
+ refreshToken: optionalStringField()
1299
+ });
1300
+ var ChangePasswordRequestSchema = createValidationSchema({
1301
+ currentPassword: requiredStringField("BlankString"),
1302
+ newPassword: requiredStringField("BlankString")
1303
+ });
1304
+ var ForgotPasswordRequestSchema = createValidationSchema({
1305
+ email: requiredEmailField()
1306
+ });
1307
+ var RegisterWithInvitationRequestSchema = createValidationSchema({
1308
+ token: requiredStringField("BlankString"),
1309
+ password: requiredStringField("BlankString"),
1310
+ firstName: requiredStringField("BlankString"),
1311
+ lastName: optionalStringField(),
1312
+ deviceInfo: optionalRecordField()
1313
+ });
1314
+ var AcceptInvitationRequestSchema = createValidationSchema({
1315
+ userId: optionalStringField(),
1316
+ token: requiredStringField("BlankString")
1317
+ });
1318
+
1096
1319
  // src/types/auth/index.ts
1097
1320
  var AUTH_STATUS = {
1098
1321
  Initializing: "Initializing",
@@ -1244,6 +1467,33 @@ var MONTHS = [
1244
1467
  "November",
1245
1468
  "December"
1246
1469
  ];
1470
+ var WEEK_DAY = {
1471
+ Sunday: "Sunday",
1472
+ Monday: "Monday",
1473
+ Tuesday: "Tuesday",
1474
+ Wednesday: "Wednesday",
1475
+ Thursday: "Thursday",
1476
+ Friday: "Friday",
1477
+ Saturday: "Saturday"
1478
+ };
1479
+ var WEEK_DAY_SHORT_LABEL = {
1480
+ Sunday: "Sun",
1481
+ Monday: "Mon",
1482
+ Tuesday: "Tue",
1483
+ Wednesday: "Wed",
1484
+ Thursday: "Thu",
1485
+ Friday: "Fri",
1486
+ Saturday: "Sat"
1487
+ };
1488
+ var WEEK_DAY_LETTER = {
1489
+ Sunday: "S",
1490
+ Monday: "M",
1491
+ Tuesday: "T",
1492
+ Wednesday: "W",
1493
+ Thursday: "T",
1494
+ Friday: "F",
1495
+ Saturday: "S"
1496
+ };
1247
1497
  var createSelectOptions = (values) => values.map((value) => ({
1248
1498
  label: value,
1249
1499
  value
@@ -1273,14 +1523,7 @@ var ServiceTypeOptions = [
1273
1523
  { label: "Other", value: SERVICE_TYPES.OTHER }
1274
1524
  ];
1275
1525
 
1276
- // src/types/company/routes.ts
1277
- var CompanyFilter = {
1278
- Active: "active",
1279
- Pending: "pending",
1280
- All: "all"
1281
- };
1282
-
1283
- // src/types/company/index.ts
1526
+ // src/types/company/constants.ts
1284
1527
  var COMPANY_RELATIONSHIP_STATUS = {
1285
1528
  ACTIVE: "ACTIVE",
1286
1529
  INACTIVE: "INACTIVE",
@@ -1300,6 +1543,50 @@ var COMPANY_TYPES = {
1300
1543
  OTHER: "OTHER"
1301
1544
  };
1302
1545
 
1546
+ // src/types/company/routes.ts
1547
+ var CompanyFilter = {
1548
+ Active: "active",
1549
+ Pending: "pending",
1550
+ All: "all"
1551
+ };
1552
+ var CompanyTypeValues = Object.values(COMPANY_TYPES);
1553
+ var StateCodeValues = Object.keys(US_JURISDICTIONS);
1554
+ var InviteUserRoleValues = Object.values(ACCOUNT_TYPE).filter(
1555
+ (accountType) => accountType !== ACCOUNT_TYPE.TURNDOWN_ADMIN
1556
+ );
1557
+ var CreateCompanyRequestSchema = createValidationSchema({
1558
+ displayName: requiredStringField("BlankString"),
1559
+ addressLine1: requiredStringField("BlankString"),
1560
+ addressLine2: optionalNullableStringField(),
1561
+ city: requiredStringField("BlankString"),
1562
+ stateCode: requiredEnumField(StateCodeValues, "BlankString"),
1563
+ postalCode: requiredStringField("BlankString"),
1564
+ companyType: requiredEnumField(CompanyTypeValues, "BlankString"),
1565
+ country: optionalNullableStringField(),
1566
+ timezone: optionalNullableStringField(),
1567
+ imageUrl: optionalNullableStringField()
1568
+ });
1569
+ var UpdateCompanyRequestSchema = createValidationSchema({
1570
+ displayName: optionalStringField(),
1571
+ addressLine1: optionalStringField(),
1572
+ addressLine2: optionalNullableStringField(),
1573
+ city: optionalStringField(),
1574
+ stateCode: optionalEnumField(StateCodeValues),
1575
+ postalCode: optionalStringField(),
1576
+ companyType: optionalEnumField(CompanyTypeValues),
1577
+ country: optionalNullableStringField(),
1578
+ timezone: optionalNullableStringField(),
1579
+ imageUrl: optionalNullableStringField()
1580
+ });
1581
+ var InviteUserToCompanyRequestSchema = createValidationSchema({
1582
+ email: requiredEmailField(),
1583
+ role: requiredEnumField(InviteUserRoleValues, "BlankString")
1584
+ });
1585
+ var InviteCompanyToCompanyRequestSchema = createValidationSchema({
1586
+ providerCompanyId: requiredUuidField(),
1587
+ message: optionalNullableStringField()
1588
+ });
1589
+
1303
1590
  // src/types/damage-report/index.ts
1304
1591
  var DAMAGE_SEVERITY = {
1305
1592
  LOW: "LOW",
@@ -1402,7 +1689,7 @@ var INVENTORY_ITEM_TYPE = {
1402
1689
  FIXED: "FIXED"
1403
1690
  };
1404
1691
 
1405
- // src/types/property/index.ts
1692
+ // src/types/property/constants.ts
1406
1693
  var PROPERTY_STATUS = {
1407
1694
  ACTIVE: "ACTIVE",
1408
1695
  INACTIVE: "INACTIVE"
@@ -1477,7 +1764,52 @@ var PropertyTypeOptions = [
1477
1764
  }
1478
1765
  ];
1479
1766
 
1480
- // src/types/room/index.ts
1767
+ // src/types/property/routes.ts
1768
+ var PropertyTypeValues = Object.values(PROPERTY_TYPES);
1769
+ var PropertyStatusValues = Object.values(PROPERTY_STATUS);
1770
+ var StateCodeValues2 = Object.keys(US_JURISDICTIONS);
1771
+ var CreatePropertyRequestSchema = createValidationSchema({
1772
+ companyId: requiredStringField(),
1773
+ displayName: requiredStringField(),
1774
+ propertyType: requiredEnumField(PropertyTypeValues),
1775
+ status: optionalNullableEnumField(PropertyStatusValues),
1776
+ addressLine1: requiredStringField(),
1777
+ addressLine2: optionalNullableStringField(),
1778
+ city: requiredStringField(),
1779
+ stateCode: requiredEnumField(StateCodeValues2),
1780
+ postalCode: requiredStringField(),
1781
+ country: optionalNullableStringField(),
1782
+ sqft: optionalNullableNonNegativeIntegerField(),
1783
+ timezone: optionalNullableStringField(),
1784
+ imageUrl: optionalNullableStringField(),
1785
+ specialNotes: optionalNullableStringField()
1786
+ });
1787
+ var UpdatePropertyRequestSchema = createValidationSchema({
1788
+ displayName: optionalStringField(),
1789
+ propertyType: optionalNullableEnumField(PropertyTypeValues),
1790
+ status: optionalNullableEnumField(PropertyStatusValues),
1791
+ addressLine1: optionalStringField(),
1792
+ addressLine2: optionalNullableStringField(),
1793
+ city: optionalStringField(),
1794
+ stateCode: optionalEnumField(StateCodeValues2),
1795
+ postalCode: optionalStringField(),
1796
+ country: optionalNullableStringField(),
1797
+ sqft: optionalNullableNonNegativeIntegerField(),
1798
+ timezone: optionalNullableStringField(),
1799
+ imageUrl: optionalNullableStringField(),
1800
+ specialNotes: optionalNullableStringField()
1801
+ });
1802
+ var UpdatePropertyAccessInformationRequestSchema = createValidationSchema({
1803
+ entryInstructions: optionalNullableStringField(),
1804
+ accessCode: optionalNullableStringField(),
1805
+ wifiName: optionalNullableStringField(),
1806
+ wifiPassword: optionalNullableStringField(),
1807
+ alarmCode: optionalNullableStringField(),
1808
+ parkingInfo: optionalNullableStringField(),
1809
+ specialNotes: optionalNullableStringField()
1810
+ });
1811
+
1812
+ // src/types/room/constants.ts
1481
1813
  var ROOM_TYPE = {
1482
1814
  BEDROOM: "BEDROOM",
1483
1815
  BATHROOM: "BATHROOM",
@@ -1495,6 +1827,24 @@ var ROOM_TYPE = {
1495
1827
  OTHER: "OTHER"
1496
1828
  };
1497
1829
 
1830
+ // src/types/room/routes.ts
1831
+ var RoomTypeValues = Object.values(ROOM_TYPE);
1832
+ var CreateRoomRequestSchema = createValidationSchema({
1833
+ propertyId: requiredStringField(),
1834
+ displayName: requiredStringField(),
1835
+ description: optionalNullableStringField(),
1836
+ checklistTemplateId: optionalNullableStringField(),
1837
+ roomType: optionalNullableEnumField(RoomTypeValues),
1838
+ heroPhoto: optionalNullableStringField()
1839
+ });
1840
+ var UpdateRoomRequestSchema = createValidationSchema({
1841
+ displayName: optionalStringField(),
1842
+ description: optionalNullableStringField(),
1843
+ checklistTemplateId: optionalNullableStringField(),
1844
+ roomType: optionalNullableEnumField(RoomTypeValues),
1845
+ heroPhoto: optionalNullableStringField()
1846
+ });
1847
+
1498
1848
  // src/types/subscription/index.ts
1499
1849
  var SUBSCRIPTION_STATUS = {
1500
1850
  ACTIVE: "ACTIVE",
@@ -1513,26 +1863,22 @@ var BILLING_PERIOD = {
1513
1863
  YEARLY: "YEARLY"
1514
1864
  };
1515
1865
 
1516
- // src/types/user/index.ts
1517
- var ACCOUNT_TYPE = {
1518
- TURNDOWN_ADMIN: "TURNDOWN_ADMIN",
1519
- ACCOUNT_ADMIN: "ACCOUNT_ADMIN",
1520
- MANAGER: "MANAGER",
1521
- STAFF: "STAFF",
1522
- GUEST: "GUEST"
1523
- };
1524
- var ACCOUNT_STATUS = {
1525
- ACTIVE: "ACTIVE",
1526
- INACTIVE: "INACTIVE",
1527
- SUSPENDED: "SUSPENDED",
1528
- PENDING: "PENDING"
1529
- };
1530
- var LANGUAGE = {
1531
- ENGLISH: "ENGLISH",
1532
- FRENCH: "FRENCH",
1533
- SPANISH: "SPANISH",
1534
- GERMAN: "GERMAN"
1535
- };
1866
+ // src/types/user/routes.ts
1867
+ var LanguageValues = Object.values(LANGUAGE);
1868
+ var UpdateUserRequestSchema = createValidationSchema({
1869
+ firstName: optionalStringField(),
1870
+ lastName: optionalNullableStringField(),
1871
+ mi: optionalNullableStringField(),
1872
+ username: optionalNullableStringField(),
1873
+ email: optionalStringField(),
1874
+ phoneNumber: optionalNullableStringField(),
1875
+ phoneFormat: optionalNullableStringField(),
1876
+ preferredLanguage: optionalEnumField(LanguageValues)
1877
+ });
1878
+ var UpdateCurrentUserRequestSchema = createValidationSchema({
1879
+ firstName: optionalStringField(),
1880
+ lastName: optionalStringField()
1881
+ });
1536
1882
 
1537
1883
  // src/types/work-session/index.ts
1538
1884
  var WORK_SESSION_STATUS = {
@@ -1550,17 +1896,23 @@ export {
1550
1896
  ACCOUNT_STATUS,
1551
1897
  ACCOUNT_TYPE,
1552
1898
  AUTH_STATUS,
1899
+ AcceptInvitationRequestSchema,
1553
1900
  BILLING_PERIOD,
1554
1901
  CHECKLIST_EXECUTION_STATUS,
1555
1902
  COMPANY_RELATIONSHIP_STATUS,
1556
1903
  COMPANY_TYPES,
1904
+ ChangePasswordRequestSchema,
1557
1905
  CompanyFilter,
1906
+ CreateCompanyRequestSchema,
1907
+ CreatePropertyRequestSchema,
1908
+ CreateRoomRequestSchema,
1558
1909
  DAMAGE_SEVERITY,
1559
1910
  DAMAGE_STATUS,
1560
1911
  DATABASE_STATUS,
1561
1912
  ENVIRONMENT,
1562
1913
  ERROR_CODES,
1563
1914
  FilterCondition,
1915
+ ForgotPasswordRequestSchema,
1564
1916
  HTTP_METHOD,
1565
1917
  HTTP_STATUS,
1566
1918
  IMAGE_ENTITY,
@@ -1569,8 +1921,12 @@ export {
1569
1921
  INVENTORY_RESTOCK_ORDER_STATUS,
1570
1922
  INVENTORY_UNITS,
1571
1923
  INVITATION_STATUS,
1924
+ InviteCompanyToCompanyRequestSchema,
1925
+ InviteUserToCompanyRequestSchema,
1572
1926
  JSONStringify,
1573
1927
  LANGUAGE,
1928
+ LoginRequestSchema,
1929
+ LogoutRequestSchema,
1574
1930
  MODE,
1575
1931
  MONTHS,
1576
1932
  PROPERTY_STATUS,
@@ -1578,6 +1934,9 @@ export {
1578
1934
  PropertyStatusOptions,
1579
1935
  PropertyTypeOptions,
1580
1936
  ROOM_TYPE,
1937
+ RefreshSessionRequestSchema,
1938
+ RegisterRequestSchema,
1939
+ RegisterWithInvitationRequestSchema,
1581
1940
  SERVER_STATUS,
1582
1941
  SERVICE_TYPES,
1583
1942
  SEVERITY,
@@ -1590,6 +1949,15 @@ export {
1590
1949
  StatusOptions,
1591
1950
  US_JURISDICTIONS,
1592
1951
  UnitedStatesJurisdictionOptions,
1952
+ UpdateCompanyRequestSchema,
1953
+ UpdateCurrentUserRequestSchema,
1954
+ UpdatePropertyAccessInformationRequestSchema,
1955
+ UpdatePropertyRequestSchema,
1956
+ UpdateRoomRequestSchema,
1957
+ UpdateUserRequestSchema,
1958
+ WEEK_DAY,
1959
+ WEEK_DAY_LETTER,
1960
+ WEEK_DAY_SHORT_LABEL,
1593
1961
  WORK_ORDER_PRIORITY,
1594
1962
  WORK_ORDER_STATUS,
1595
1963
  WORK_SESSION_STATUS,
@@ -1604,6 +1972,7 @@ export {
1604
1972
  containsAny,
1605
1973
  convertStringBooleans,
1606
1974
  createPagingObject,
1975
+ createValidationSchema,
1607
1976
  daysBetween,
1608
1977
  deepClone,
1609
1978
  deletePropertyIfExists,
@@ -1644,6 +2013,12 @@ export {
1644
2013
  normalCase,
1645
2014
  normalizeSpaces,
1646
2015
  omitProperties,
2016
+ optionalEnumField,
2017
+ optionalNullableEnumField,
2018
+ optionalNullableNonNegativeIntegerField,
2019
+ optionalNullableStringField,
2020
+ optionalRecordField,
2021
+ optionalStringField,
1647
2022
  padEnd,
1648
2023
  padStart,
1649
2024
  parseJSON,
@@ -1658,6 +2033,10 @@ export {
1658
2033
  repeat,
1659
2034
  repeatChar,
1660
2035
  replaceNulls,
2036
+ requiredEmailField,
2037
+ requiredEnumField,
2038
+ requiredStringField,
2039
+ requiredUuidField,
1661
2040
  resetPagination,
1662
2041
  returnObject,
1663
2042
  reverse,