@turndown/library 0.1.60 → 0.1.62

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",
@@ -1273,14 +1496,7 @@ var ServiceTypeOptions = [
1273
1496
  { label: "Other", value: SERVICE_TYPES.OTHER }
1274
1497
  ];
1275
1498
 
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
1499
+ // src/types/company/constants.ts
1284
1500
  var COMPANY_RELATIONSHIP_STATUS = {
1285
1501
  ACTIVE: "ACTIVE",
1286
1502
  INACTIVE: "INACTIVE",
@@ -1300,6 +1516,50 @@ var COMPANY_TYPES = {
1300
1516
  OTHER: "OTHER"
1301
1517
  };
1302
1518
 
1519
+ // src/types/company/routes.ts
1520
+ var CompanyFilter = {
1521
+ Active: "active",
1522
+ Pending: "pending",
1523
+ All: "all"
1524
+ };
1525
+ var CompanyTypeValues = Object.values(COMPANY_TYPES);
1526
+ var StateCodeValues = Object.keys(US_JURISDICTIONS);
1527
+ var InviteUserRoleValues = Object.values(ACCOUNT_TYPE).filter(
1528
+ (accountType) => accountType !== ACCOUNT_TYPE.TURNDOWN_ADMIN
1529
+ );
1530
+ var CreateCompanyRequestSchema = createValidationSchema({
1531
+ displayName: requiredStringField("BlankString"),
1532
+ addressLine1: requiredStringField("BlankString"),
1533
+ addressLine2: optionalNullableStringField(),
1534
+ city: requiredStringField("BlankString"),
1535
+ stateCode: requiredEnumField(StateCodeValues, "BlankString"),
1536
+ postalCode: requiredStringField("BlankString"),
1537
+ companyType: requiredEnumField(CompanyTypeValues, "BlankString"),
1538
+ country: optionalNullableStringField(),
1539
+ timezone: optionalNullableStringField(),
1540
+ imageUrl: optionalNullableStringField()
1541
+ });
1542
+ var UpdateCompanyRequestSchema = createValidationSchema({
1543
+ displayName: optionalStringField(),
1544
+ addressLine1: optionalStringField(),
1545
+ addressLine2: optionalNullableStringField(),
1546
+ city: optionalStringField(),
1547
+ stateCode: optionalEnumField(StateCodeValues),
1548
+ postalCode: optionalStringField(),
1549
+ companyType: optionalEnumField(CompanyTypeValues),
1550
+ country: optionalNullableStringField(),
1551
+ timezone: optionalNullableStringField(),
1552
+ imageUrl: optionalNullableStringField()
1553
+ });
1554
+ var InviteUserToCompanyRequestSchema = createValidationSchema({
1555
+ email: requiredEmailField(),
1556
+ role: requiredEnumField(InviteUserRoleValues, "BlankString")
1557
+ });
1558
+ var InviteCompanyToCompanyRequestSchema = createValidationSchema({
1559
+ providerCompanyId: requiredUuidField(),
1560
+ message: optionalNullableStringField()
1561
+ });
1562
+
1303
1563
  // src/types/damage-report/index.ts
1304
1564
  var DAMAGE_SEVERITY = {
1305
1565
  LOW: "LOW",
@@ -1402,7 +1662,7 @@ var INVENTORY_ITEM_TYPE = {
1402
1662
  FIXED: "FIXED"
1403
1663
  };
1404
1664
 
1405
- // src/types/property/index.ts
1665
+ // src/types/property/constants.ts
1406
1666
  var PROPERTY_STATUS = {
1407
1667
  ACTIVE: "ACTIVE",
1408
1668
  INACTIVE: "INACTIVE"
@@ -1477,7 +1737,52 @@ var PropertyTypeOptions = [
1477
1737
  }
1478
1738
  ];
1479
1739
 
1480
- // src/types/room/index.ts
1740
+ // src/types/property/routes.ts
1741
+ var PropertyTypeValues = Object.values(PROPERTY_TYPES);
1742
+ var PropertyStatusValues = Object.values(PROPERTY_STATUS);
1743
+ var StateCodeValues2 = Object.keys(US_JURISDICTIONS);
1744
+ var CreatePropertyRequestSchema = createValidationSchema({
1745
+ companyId: requiredStringField(),
1746
+ displayName: requiredStringField(),
1747
+ propertyType: requiredEnumField(PropertyTypeValues),
1748
+ status: optionalNullableEnumField(PropertyStatusValues),
1749
+ addressLine1: requiredStringField(),
1750
+ addressLine2: optionalNullableStringField(),
1751
+ city: requiredStringField(),
1752
+ stateCode: requiredEnumField(StateCodeValues2),
1753
+ postalCode: requiredStringField(),
1754
+ country: optionalNullableStringField(),
1755
+ sqft: optionalNullableNonNegativeIntegerField(),
1756
+ timezone: optionalNullableStringField(),
1757
+ imageUrl: optionalNullableStringField(),
1758
+ specialNotes: optionalNullableStringField()
1759
+ });
1760
+ var UpdatePropertyRequestSchema = createValidationSchema({
1761
+ displayName: optionalStringField(),
1762
+ propertyType: optionalNullableEnumField(PropertyTypeValues),
1763
+ status: optionalNullableEnumField(PropertyStatusValues),
1764
+ addressLine1: optionalStringField(),
1765
+ addressLine2: optionalNullableStringField(),
1766
+ city: optionalStringField(),
1767
+ stateCode: optionalEnumField(StateCodeValues2),
1768
+ postalCode: optionalStringField(),
1769
+ country: optionalNullableStringField(),
1770
+ sqft: optionalNullableNonNegativeIntegerField(),
1771
+ timezone: optionalNullableStringField(),
1772
+ imageUrl: optionalNullableStringField(),
1773
+ specialNotes: optionalNullableStringField()
1774
+ });
1775
+ var UpdatePropertyAccessInformationRequestSchema = createValidationSchema({
1776
+ entryInstructions: optionalNullableStringField(),
1777
+ accessCode: optionalNullableStringField(),
1778
+ wifiName: optionalNullableStringField(),
1779
+ wifiPassword: optionalNullableStringField(),
1780
+ alarmCode: optionalNullableStringField(),
1781
+ parkingInfo: optionalNullableStringField(),
1782
+ specialNotes: optionalNullableStringField()
1783
+ });
1784
+
1785
+ // src/types/room/constants.ts
1481
1786
  var ROOM_TYPE = {
1482
1787
  BEDROOM: "BEDROOM",
1483
1788
  BATHROOM: "BATHROOM",
@@ -1495,6 +1800,24 @@ var ROOM_TYPE = {
1495
1800
  OTHER: "OTHER"
1496
1801
  };
1497
1802
 
1803
+ // src/types/room/routes.ts
1804
+ var RoomTypeValues = Object.values(ROOM_TYPE);
1805
+ var CreateRoomRequestSchema = createValidationSchema({
1806
+ propertyId: requiredStringField(),
1807
+ displayName: requiredStringField(),
1808
+ description: optionalNullableStringField(),
1809
+ checklistTemplateId: optionalNullableStringField(),
1810
+ roomType: optionalNullableEnumField(RoomTypeValues),
1811
+ heroPhoto: optionalNullableStringField()
1812
+ });
1813
+ var UpdateRoomRequestSchema = createValidationSchema({
1814
+ displayName: optionalStringField(),
1815
+ description: optionalNullableStringField(),
1816
+ checklistTemplateId: optionalNullableStringField(),
1817
+ roomType: optionalNullableEnumField(RoomTypeValues),
1818
+ heroPhoto: optionalNullableStringField()
1819
+ });
1820
+
1498
1821
  // src/types/subscription/index.ts
1499
1822
  var SUBSCRIPTION_STATUS = {
1500
1823
  ACTIVE: "ACTIVE",
@@ -1513,26 +1836,22 @@ var BILLING_PERIOD = {
1513
1836
  YEARLY: "YEARLY"
1514
1837
  };
1515
1838
 
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
- };
1839
+ // src/types/user/routes.ts
1840
+ var LanguageValues = Object.values(LANGUAGE);
1841
+ var UpdateUserRequestSchema = createValidationSchema({
1842
+ firstName: optionalStringField(),
1843
+ lastName: optionalNullableStringField(),
1844
+ mi: optionalNullableStringField(),
1845
+ username: optionalNullableStringField(),
1846
+ email: optionalStringField(),
1847
+ phoneNumber: optionalNullableStringField(),
1848
+ phoneFormat: optionalNullableStringField(),
1849
+ preferredLanguage: optionalEnumField(LanguageValues)
1850
+ });
1851
+ var UpdateCurrentUserRequestSchema = createValidationSchema({
1852
+ firstName: optionalStringField(),
1853
+ lastName: optionalStringField()
1854
+ });
1536
1855
 
1537
1856
  // src/types/work-session/index.ts
1538
1857
  var WORK_SESSION_STATUS = {
@@ -1550,17 +1869,23 @@ export {
1550
1869
  ACCOUNT_STATUS,
1551
1870
  ACCOUNT_TYPE,
1552
1871
  AUTH_STATUS,
1872
+ AcceptInvitationRequestSchema,
1553
1873
  BILLING_PERIOD,
1554
1874
  CHECKLIST_EXECUTION_STATUS,
1555
1875
  COMPANY_RELATIONSHIP_STATUS,
1556
1876
  COMPANY_TYPES,
1877
+ ChangePasswordRequestSchema,
1557
1878
  CompanyFilter,
1879
+ CreateCompanyRequestSchema,
1880
+ CreatePropertyRequestSchema,
1881
+ CreateRoomRequestSchema,
1558
1882
  DAMAGE_SEVERITY,
1559
1883
  DAMAGE_STATUS,
1560
1884
  DATABASE_STATUS,
1561
1885
  ENVIRONMENT,
1562
1886
  ERROR_CODES,
1563
1887
  FilterCondition,
1888
+ ForgotPasswordRequestSchema,
1564
1889
  HTTP_METHOD,
1565
1890
  HTTP_STATUS,
1566
1891
  IMAGE_ENTITY,
@@ -1569,8 +1894,12 @@ export {
1569
1894
  INVENTORY_RESTOCK_ORDER_STATUS,
1570
1895
  INVENTORY_UNITS,
1571
1896
  INVITATION_STATUS,
1897
+ InviteCompanyToCompanyRequestSchema,
1898
+ InviteUserToCompanyRequestSchema,
1572
1899
  JSONStringify,
1573
1900
  LANGUAGE,
1901
+ LoginRequestSchema,
1902
+ LogoutRequestSchema,
1574
1903
  MODE,
1575
1904
  MONTHS,
1576
1905
  PROPERTY_STATUS,
@@ -1578,6 +1907,9 @@ export {
1578
1907
  PropertyStatusOptions,
1579
1908
  PropertyTypeOptions,
1580
1909
  ROOM_TYPE,
1910
+ RefreshSessionRequestSchema,
1911
+ RegisterRequestSchema,
1912
+ RegisterWithInvitationRequestSchema,
1581
1913
  SERVER_STATUS,
1582
1914
  SERVICE_TYPES,
1583
1915
  SEVERITY,
@@ -1590,6 +1922,12 @@ export {
1590
1922
  StatusOptions,
1591
1923
  US_JURISDICTIONS,
1592
1924
  UnitedStatesJurisdictionOptions,
1925
+ UpdateCompanyRequestSchema,
1926
+ UpdateCurrentUserRequestSchema,
1927
+ UpdatePropertyAccessInformationRequestSchema,
1928
+ UpdatePropertyRequestSchema,
1929
+ UpdateRoomRequestSchema,
1930
+ UpdateUserRequestSchema,
1593
1931
  WORK_ORDER_PRIORITY,
1594
1932
  WORK_ORDER_STATUS,
1595
1933
  WORK_SESSION_STATUS,
@@ -1604,6 +1942,7 @@ export {
1604
1942
  containsAny,
1605
1943
  convertStringBooleans,
1606
1944
  createPagingObject,
1945
+ createValidationSchema,
1607
1946
  daysBetween,
1608
1947
  deepClone,
1609
1948
  deletePropertyIfExists,
@@ -1644,6 +1983,12 @@ export {
1644
1983
  normalCase,
1645
1984
  normalizeSpaces,
1646
1985
  omitProperties,
1986
+ optionalEnumField,
1987
+ optionalNullableEnumField,
1988
+ optionalNullableNonNegativeIntegerField,
1989
+ optionalNullableStringField,
1990
+ optionalRecordField,
1991
+ optionalStringField,
1647
1992
  padEnd,
1648
1993
  padStart,
1649
1994
  parseJSON,
@@ -1658,6 +2003,10 @@ export {
1658
2003
  repeat,
1659
2004
  repeatChar,
1660
2005
  replaceNulls,
2006
+ requiredEmailField,
2007
+ requiredEnumField,
2008
+ requiredStringField,
2009
+ requiredUuidField,
1661
2010
  resetPagination,
1662
2011
  returnObject,
1663
2012
  reverse,