@nanas-home/hub-common 0.46.1024 → 0.47.1035

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.
@@ -101,6 +101,7 @@ var apiRouteParam = {
101
101
  bookingAddonUuid: ":bookingAddonUuid",
102
102
  userMembershipUuid: ":userMembershipUuid",
103
103
  bugReportUuid: ":bugReportUuid",
104
+ linkTypeUuid: ":linkTypeUuid",
104
105
  linkUuid: ":linkUuid",
105
106
  linkType: ":linkType",
106
107
  // Stripe
@@ -115,6 +116,7 @@ var apiRoute = {
115
116
  devJwt: "/jwt",
116
117
  login: "/login",
117
118
  signup: "/signup",
119
+ confirmEmail: `/confirm-email/${apiRouteParam.linkTypeUuid}`,
118
120
  swagger: { name: "Auth", description: "Endpoints for login, sign up etc" },
119
121
  token: {
120
122
  prefix: "/token",
@@ -452,6 +454,7 @@ var PermissionType = /* @__PURE__ */ ((PermissionType2) => {
452
454
  PermissionType2[PermissionType2["UserDelete"] = 22] = "UserDelete";
453
455
  PermissionType2[PermissionType2["ActivitiesView"] = 30] = "ActivitiesView";
454
456
  PermissionType2[PermissionType2["StripeView"] = 31] = "StripeView";
457
+ PermissionType2[PermissionType2["UserFlagManage"] = 32] = "UserFlagManage";
455
458
  PermissionType2[PermissionType2["UserPermissionView"] = 40] = "UserPermissionView";
456
459
  PermissionType2[PermissionType2["UserPermissionManage"] = 41] = "UserPermissionManage";
457
460
  PermissionType2[PermissionType2["UserPermissionDelete"] = 42] = "UserPermissionDelete";
@@ -580,6 +583,8 @@ var uploadsThatNeedEncryption = [];
580
583
  var UserAccountFlagType = /* @__PURE__ */ ((UserAccountFlagType2) => {
581
584
  UserAccountFlagType2[UserAccountFlagType2["Unknown"] = 0] = "Unknown";
582
585
  UserAccountFlagType2[UserAccountFlagType2["ChangePassword"] = 1] = "ChangePassword";
586
+ UserAccountFlagType2[UserAccountFlagType2["EmailNotVerified"] = 2] = "EmailNotVerified";
587
+ UserAccountFlagType2[UserAccountFlagType2["AccountDisabled"] = 3] = "AccountDisabled";
583
588
  return UserAccountFlagType2;
584
589
  })(UserAccountFlagType || {});
585
590
 
@@ -709,7 +714,7 @@ var BookingAddonRestriction = {
709
714
  var BugReportRestriction = {
710
715
  comment: { maxLength: 1e3 },
711
716
  metadata: { maxLength: 1e3 },
712
- logs: { maxLength: 5e3 }
717
+ logs: { maxLength: 5e4 }
713
718
  };
714
719
 
715
720
  // src/contracts/generated/restrictions/commentRestriction.ts
@@ -1710,6 +1715,33 @@ var maxDate = (maxDate2) => (value) => {
1710
1715
  };
1711
1716
  };
1712
1717
 
1718
+ // src/validation/emailValidation.ts
1719
+ var emailValid = (value) => {
1720
+ if (value.includes("@") == false) {
1721
+ return {
1722
+ isValid: false,
1723
+ errorMessageTransKey: "email_at_sign_validator",
1724
+ errorMessage: `Email should have an @ sign`
1725
+ };
1726
+ }
1727
+ const segments = value.split("@");
1728
+ if (segments.length > 2) {
1729
+ return {
1730
+ isValid: false,
1731
+ errorMessageTransKey: "email_too_many_at_signs_validator",
1732
+ errorMessage: `Email contains too many @ signs`
1733
+ };
1734
+ }
1735
+ if ((segments[1] ?? "").includes(".") == false) {
1736
+ return {
1737
+ isValid: false,
1738
+ errorMessageTransKey: "email_should_have_a_period_after_at_sign_validator",
1739
+ errorMessage: `Email is not valid`
1740
+ };
1741
+ }
1742
+ return { isValid: true };
1743
+ };
1744
+
1713
1745
  // src/validation/numberValidation.ts
1714
1746
  var isNumber = (value) => {
1715
1747
  if (value != null) {
@@ -1746,6 +1778,26 @@ var maxValue = (max) => (value) => {
1746
1778
  };
1747
1779
  };
1748
1780
 
1781
+ // src/validation/passwordValidation.ts
1782
+ var specialChars = "<>@!#$%^&*()_+[]{}?:;|'\"\\,./~`-=";
1783
+ var capitalizeAlphabet2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
1784
+ var errorMessage = `Password should be minimum of 8 characters, with an uppercase letter, at least 1 number and 1 special character`;
1785
+ var passwordValid = (value) => {
1786
+ const passwordCharArr = value.split("");
1787
+ const defaultValidation = { isValid: false, errorMessage };
1788
+ if (value.length < UserRestriction.password.minLength)
1789
+ return { ...defaultValidation, errorMessageTransKey: "password_too_short_validator" };
1790
+ const hasNumber = passwordCharArr.filter((c) => isNaN(Number(c)) == false).length > 0;
1791
+ if (hasNumber == false) return { ...defaultValidation, errorMessageTransKey: "password_missing_number_validator" };
1792
+ const hasSpecialChar = arrayContains(passwordCharArr, specialChars.split(""), "OR");
1793
+ if (hasSpecialChar == false)
1794
+ return { ...defaultValidation, errorMessageTransKey: "password_missing_special_char_validator" };
1795
+ const hasUppercase = arrayContains(passwordCharArr, capitalizeAlphabet2.split(""), "OR");
1796
+ if (hasUppercase == false)
1797
+ return { ...defaultValidation, errorMessageTransKey: "password_missing_uppercase_validator" };
1798
+ return { isValid: true };
1799
+ };
1800
+
1749
1801
  // src/validation/textValidation.ts
1750
1802
  var minLength = (minLengthVal) => (value) => {
1751
1803
  if ((value?.length ?? 0) >= minLengthVal) {
@@ -1803,4 +1855,4 @@ var shouldBeYoutubeUrl = (value) => {
1803
1855
  };
1804
1856
  };
1805
1857
 
1806
- export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder };
1858
+ export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, emailValid, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, passwordValid, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder };
@@ -1,9 +1,11 @@
1
1
  import requireDebugMarker from './rules/require-debug-marker.js';
2
2
  import requireDraggableAttr from './rules/require-draggable-attr.js';
3
+ import preventParentImports from './rules/prevent-parent-imports.js';
3
4
 
4
5
  export default {
5
6
  rules: {
6
7
  'require-debug-marker': requireDebugMarker,
7
8
  'require-draggable-attr': requireDraggableAttr,
9
+ 'prevent-parent-imports': preventParentImports,
8
10
  },
9
11
  };
@@ -0,0 +1,43 @@
1
+ export default {
2
+ meta: {
3
+ type: 'problem',
4
+ docs: {
5
+ description: 'Disallow parent-directory imports (../)',
6
+ },
7
+ messages: {
8
+ noParent: "Parent directory imports ('../') are not allowed.",
9
+ },
10
+ schema: [],
11
+ },
12
+
13
+ create(context) {
14
+ return {
15
+ ImportDeclaration(node) {
16
+ const value = node.source.value;
17
+
18
+ if (typeof value === 'string') {
19
+ if (value.startsWith('./') || value.startsWith('../')) {
20
+ context.report({
21
+ node,
22
+ messageId: 'noParent',
23
+ });
24
+ }
25
+ }
26
+ },
27
+
28
+ CallExpression(node) {
29
+ // Handle require("../something")
30
+ if (node.callee.name === 'require' && node.arguments.length && node.arguments[0].type === 'Literal') {
31
+ const value = node.arguments[0].value;
32
+
33
+ if (typeof value === 'string' && value.startsWith('../')) {
34
+ context.report({
35
+ node,
36
+ messageId: 'noParent',
37
+ });
38
+ }
39
+ }
40
+ },
41
+ };
42
+ },
43
+ };
@@ -1,5 +1,5 @@
1
- import { I as ILogger, R as ResultWithValue, a as Result, L as LogService, C as CommonConfigService, b as IDependencyInjectionSetupProps } from '../textValidation-CRDf_0bC.js';
2
- export { cI as APP_TYPE_TOKEN, ab as ActivityDto, bj as ActivityRestriction, x as ActivityType, ac as AddressCreateDto, ad as AddressDto, y as AddressLinkType, ae as AddressLookupDto, bk as AddressRestriction, af as AddressUpdateDto, ag as AnswerCreateDto, ah as AnswerDto, z as AnswerLinkType, bl as AnswerRestriction, A as AppType, ai as AuthLoginDto, aj as AuthPatDto, ak as AuthSignupDto, al as AuthSuccessDto, cG as BOT_PATH_TOKEN, am as BookingAddonDto, bn as BookingAddonRestriction, B as BookingAddonType, an as BookingCreateDto, ao as BookingDto, ap as BookingHostCreateDto, aq as BookingHostDto, ar as BookingHostUpdateDto, bm as BookingRestriction, as as BookingRestrictionsDto, at as BookingRestrictionsEnabledDaysDto, au as BookingRestrictionsPremiumEnabledDaysDto, F as BookingStatusType, av as BookingUpdateDto, aw as BookingWithRelationshipsDto, ax as BugReportCreateDto, ay as BugReportDto, bo as BugReportRestriction, G as BugReportStatusType, az as BugReportUpdateDto, f as CachedValue, r as ClickEvent, aA as ClientAnswerSaveDto, aB as CommentCreateDto, aC as CommentDto, J as CommentLinkType, bp as CommentRestriction, aD as CommentUpdateDto, cE as DependencyInjectionContainer, j as DependencyInjectionFactory, h as DependencyInjectionIdentifier, D as DependencyInjectionToken, bq as DrivingRouteRestriction, E as EnvKey, H as HtmlElementEvent, o as HtmlFilesEvent, q as HtmlImageReadEvent, l as HtmlKeyEvent, bB as ICaptchaResponse, k as IDependencyInjectionSetupWebProps, cc as IImageParams, bD as ILogMessage, bE as IMediaUpload, cD as ISite, cA as ISiteColour, aE as InvoiceCreateDto, aF as InvoiceDto, br as InvoiceRestriction, N as InvoiceStatusType, aG as InvoiceUpdateDto, aH as InvoiceWithStripeInfoDto, bi as JwtPayloadDto, K as KeyEvent, bC as LogMethod, O as LogType, P as MembershipBillingCycleType, aI as MembershipCreateDto, aJ as MembershipDto, bs as MembershipRestriction, Q as MembershipStatus, S as MembershipType, aK as MembershipUpdateDto, M as MonthTranslationKey, d as MouseButton, U as NetworkState, bG as NominatimAddressResponse, bF as NominatimResponse, cw as ObjectWithPropsOfValue, V as OrderDirectionType, aL as PaginationRequestDto, aM as PaginationResponseDto, aN as PaymentMethodDto, bt as PermissionRestriction, X as PermissionType, aO as PetCreateDto, aP as PetDto, bu as PetRestriction, Y as PetSexType, Z as PetStatusType, _ as PetType, aQ as PetUpdateDto, cx as Prettify, aR as ProfileDto, aS as ProfileQuestionAndAnswersItemDto, aT as ProfileQuestionRequestDto, aU as ProfileUpdateDto, aV as QuestionCreateDto, aW as QuestionDto, a0 as QuestionForType, bv as QuestionRestriction, $ as QuestionType, aX as QuestionUpdateDto, bQ as RenderCellType, cK as SITE_CONFIG_TOKEN, aY as SearchObjDatePropRequestDto, aZ as SearchObjRequestDto, a_ as SearchObjTextPropRequestDto, a3 as SearchableColumnInfo, a2 as SearchableColumnType, a$ as SetupIntentCreateDto, b0 as SetupIntentDto, bw as StripeRestriction, a4 as TempLinkType, T as ThemeType, cT as TranslationService, bx as UnavailabilityRestriction, b1 as UploadCreateDto, b2 as UploadDto, b3 as UploadImageWithLinkDto, a5 as UploadLinkType, by as UploadRestriction, a6 as UploadType, b4 as UploadUpdateDto, a8 as UserAccountFlagType, b5 as UserCreateDto, b6 as UserDto, b7 as UserMembershipChangeResponseDto, b8 as UserMembershipCreateDto, b9 as UserMembershipDto, ba as UserMembershipSignUpDto, bb as UserMembershipSignUpResponseDto, bc as UserMembershipStatsDto, bd as UserMembershipUpdateDto, be as UserMembershipWithStripeInfoDto, bf as UserPermissionDto, bz as UserRestriction, a9 as UserType, bg as UserUpdateDto, bH as ValidationResult, bh as VersionDto, W as WeekdayTranslationKey, c0 as addDays, b$ as addMinutes, c1 as addMonths, b_ as addSeconds, cs as addSpacesForEnum, bN as addToParallelTasks, cu as anyObject, u as apiRoute, t as apiRouteParam, bL as arrayContains, bK as arrayOfNLength, cq as capitalizeFirstLetter, cB as colourPalette, g as createToken, cb as cyrb53, c4 as dateDiffInDays, c8 as debounceLeading, cC as defaultSiteColour, cv as fakePromise, bT as formatDate, ct as formatFileSize, bZ as formatForBookingDate, bV as formatForDateDropdown, bU as formatForDateLocal, bY as formatForDateLocalDetailed, bW as formatForDateOfBirth, bX as formatForDateWithTime, cz as getActiveUserMembership, c5 as getAgeInYears, a1 as getAllPetQuestionForType, cJ as getAppType, c9 as getArrFromEnum, cH as getBotPath, cO as getCommonConfig, bO as getDayClassObject, bR as getDayElements, bP as getDayHeadingElements, cd as getImageParams, cP as getLog, cg as getMimeTypeFromExtension, ce as getPayloadFromJwt, ci as getPerformanceTimer, cl as getPetAvatarUrl, cN as getSiteColour, cM as getSiteConfig, ck as getUserAvatarUrl, bS as getUsersName, c6 as getWeekNumber, cj as hasRequiredPermissions, aa as hubspotQuestionsExport, c2 as isBefore, d3 as isNumber, c3 as isSameDay, i as isWebApp, cr as lowercaseFirstLetter, bI as makeArrayOrDefault, d2 as maxDate, cV as maxItems, d7 as maxLength, d5 as maxValue, cf as mimeTypeLookup, d1 as minDate, cU as minItems, d6 as minLength, e as minUrlLength, d4 as minValue, m as monthTranslationKeyOrder, c_ as multiValidation, cn as nameof, n as nanasFonts, cY as noValidation, cZ as notNull, bJ as onlyUnique, p as portalGlyphLength, cm as promiseFromValue, co as randomIntFromRange, cp as randomItemFromArray, cF as rootContainer, cQ as rootDependencyInjectionSetup, bA as searchColumns, cW as selectedItemsExist, cX as selectedOptionIsInEnum, c$ as separateValidation, cR as setContainerToken, cS as setContainerTokenLazy, cL as setSiteConfig, d8 as shouldBeUrl, d9 as shouldBeYoutubeUrl, c7 as showSecondCalendar, s as socialLinks, bM as timeout, ch as tryParseNumber, a7 as uploadsThatNeedEncryption, cy as urlRef, ca as uuidv4, v as validUuidChars, d0 as validateForEach, w as webAppTypes, c as weekdayTranslationKeyOrder } from '../textValidation-CRDf_0bC.js';
1
+ import { I as ILogger, R as ResultWithValue, a as Result, L as LogService, C as CommonConfigService, b as IDependencyInjectionSetupProps } from '../textValidation-DmVC_l-P.js';
2
+ export { cK as APP_TYPE_TOKEN, ab as ActivityDto, bl as ActivityRestriction, x as ActivityType, ac as AddressCreateDto, ad as AddressDto, y as AddressLinkType, ae as AddressLookupDto, bm as AddressRestriction, af as AddressUpdateDto, ag as AnswerCreateDto, ah as AnswerDto, z as AnswerLinkType, bn as AnswerRestriction, A as AppType, ai as AuthLoginDto, aj as AuthPatDto, ak as AuthSignupDto, al as AuthSuccessDto, cI as BOT_PATH_TOKEN, am as BookingAddonDto, bp as BookingAddonRestriction, B as BookingAddonType, an as BookingCreateDto, ao as BookingDto, ap as BookingHostCreateDto, aq as BookingHostDto, ar as BookingHostUpdateDto, bo as BookingRestriction, as as BookingRestrictionsDto, at as BookingRestrictionsEnabledDaysDto, au as BookingRestrictionsPremiumEnabledDaysDto, F as BookingStatusType, av as BookingUpdateDto, aw as BookingWithRelationshipsDto, ax as BugReportCreateDto, ay as BugReportDto, bq as BugReportRestriction, G as BugReportStatusType, az as BugReportUpdateDto, f as CachedValue, r as ClickEvent, aA as ClientAnswerSaveDto, aB as CommentCreateDto, aC as CommentDto, J as CommentLinkType, br as CommentRestriction, aD as CommentUpdateDto, cG as DependencyInjectionContainer, j as DependencyInjectionFactory, h as DependencyInjectionIdentifier, D as DependencyInjectionToken, bs as DrivingRouteRestriction, E as EnvKey, H as HtmlElementEvent, o as HtmlFilesEvent, q as HtmlImageReadEvent, l as HtmlKeyEvent, bD as ICaptchaResponse, k as IDependencyInjectionSetupWebProps, ce as IImageParams, bF as ILogMessage, bG as IMediaUpload, cF as ISite, cC as ISiteColour, aE as InvoiceCreateDto, aF as InvoiceDto, bt as InvoiceRestriction, N as InvoiceStatusType, aG as InvoiceUpdateDto, aH as InvoiceWithStripeInfoDto, bk as JwtPayloadDto, K as KeyEvent, bE as LogMethod, O as LogType, P as MembershipBillingCycleType, aI as MembershipCreateDto, aJ as MembershipDto, bu as MembershipRestriction, Q as MembershipStatus, S as MembershipType, aK as MembershipUpdateDto, M as MonthTranslationKey, d as MouseButton, U as NetworkState, bI as NominatimAddressResponse, bH as NominatimResponse, cy as ObjectWithPropsOfValue, V as OrderDirectionType, aL as PaginationRequestDto, aM as PaginationResponseDto, aN as PaymentMethodDto, bv as PermissionRestriction, X as PermissionType, aO as PetCreateDto, aP as PetDto, bw as PetRestriction, Y as PetSexType, Z as PetStatusType, _ as PetType, aQ as PetUpdateDto, cz as Prettify, aR as ProfileDto, aS as ProfileQuestionAndAnswersItemDto, aT as ProfileQuestionRequestDto, aU as ProfileUpdateDto, aV as QuestionCreateDto, aW as QuestionDto, a0 as QuestionForType, bx as QuestionRestriction, $ as QuestionType, aX as QuestionUpdateDto, bS as RenderCellType, cM as SITE_CONFIG_TOKEN, aY as SearchObjDatePropRequestDto, aZ as SearchObjRequestDto, a_ as SearchObjTextPropRequestDto, a3 as SearchableColumnInfo, a2 as SearchableColumnType, a$ as SetupIntentCreateDto, b0 as SetupIntentDto, by as StripeRestriction, b1 as TempLinkCreateDto, b2 as TempLinkDto, a4 as TempLinkType, T as ThemeType, cV as TranslationService, bz as UnavailabilityRestriction, b3 as UploadCreateDto, b4 as UploadDto, b5 as UploadImageWithLinkDto, a5 as UploadLinkType, bA as UploadRestriction, a6 as UploadType, b6 as UploadUpdateDto, a8 as UserAccountFlagType, b7 as UserCreateDto, b8 as UserDto, b9 as UserMembershipChangeResponseDto, ba as UserMembershipCreateDto, bb as UserMembershipDto, bc as UserMembershipSignUpDto, bd as UserMembershipSignUpResponseDto, be as UserMembershipStatsDto, bf as UserMembershipUpdateDto, bg as UserMembershipWithStripeInfoDto, bh as UserPermissionDto, bB as UserRestriction, a9 as UserType, bi as UserUpdateDto, bJ as ValidationResult, bj as VersionDto, W as WeekdayTranslationKey, c2 as addDays, c1 as addMinutes, c3 as addMonths, c0 as addSeconds, cu as addSpacesForEnum, bP as addToParallelTasks, cw as anyObject, u as apiRoute, t as apiRouteParam, bN as arrayContains, bM as arrayOfNLength, cs as capitalizeFirstLetter, cD as colourPalette, g as createToken, cd as cyrb53, c6 as dateDiffInDays, ca as debounceLeading, cE as defaultSiteColour, d5 as emailValid, cx as fakePromise, bV as formatDate, cv as formatFileSize, b$ as formatForBookingDate, bX as formatForDateDropdown, bW as formatForDateLocal, b_ as formatForDateLocalDetailed, bY as formatForDateOfBirth, bZ as formatForDateWithTime, cB as getActiveUserMembership, c7 as getAgeInYears, a1 as getAllPetQuestionForType, cL as getAppType, cb as getArrFromEnum, cJ as getBotPath, cQ as getCommonConfig, bQ as getDayClassObject, bT as getDayElements, bR as getDayHeadingElements, cf as getImageParams, cR as getLog, ci as getMimeTypeFromExtension, cg as getPayloadFromJwt, ck as getPerformanceTimer, cn as getPetAvatarUrl, cP as getSiteColour, cO as getSiteConfig, cm as getUserAvatarUrl, bU as getUsersName, c8 as getWeekNumber, cl as hasRequiredPermissions, aa as hubspotQuestionsExport, c4 as isBefore, d6 as isNumber, c5 as isSameDay, i as isWebApp, ct as lowercaseFirstLetter, bK as makeArrayOrDefault, d4 as maxDate, cX as maxItems, db as maxLength, d8 as maxValue, ch as mimeTypeLookup, d3 as minDate, cW as minItems, da as minLength, e as minUrlLength, d7 as minValue, m as monthTranslationKeyOrder, d0 as multiValidation, cp as nameof, n as nanasFonts, c_ as noValidation, c$ as notNull, bL as onlyUnique, d9 as passwordValid, p as portalGlyphLength, co as promiseFromValue, cq as randomIntFromRange, cr as randomItemFromArray, cH as rootContainer, cS as rootDependencyInjectionSetup, bC as searchColumns, cY as selectedItemsExist, cZ as selectedOptionIsInEnum, d1 as separateValidation, cT as setContainerToken, cU as setContainerTokenLazy, cN as setSiteConfig, dc as shouldBeUrl, dd as shouldBeYoutubeUrl, c9 as showSecondCalendar, s as socialLinks, bO as timeout, cj as tryParseNumber, a7 as uploadsThatNeedEncryption, cA as urlRef, cc as uuidv4, v as validUuidChars, d2 as validateForEach, w as webAppTypes, c as weekdayTranslationKeyOrder } from '../textValidation-DmVC_l-P.js';
3
3
  import 'solid-js';
4
4
  import '@tolgee/web';
5
5
 
@@ -1,5 +1,5 @@
1
- import { rootContainer, onlyUnique, getBotPath, getLog, getCommonConfig, formatForDateDropdown, getSiteConfig, getAppType, isWebApp, rootDependencyInjectionSetup, setContainerToken } from '../chunk/IDKCXMP4.js';
2
- export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, colourPalette, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder } from '../chunk/IDKCXMP4.js';
1
+ import { rootContainer, onlyUnique, getBotPath, getLog, getCommonConfig, formatForDateDropdown, getSiteConfig, getAppType, isWebApp, rootDependencyInjectionSetup, setContainerToken } from '../chunk/2JD4C7DJ.js';
2
+ export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, colourPalette, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, emailValid, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, passwordValid, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder } from '../chunk/2JD4C7DJ.js';
3
3
  import fs6, { stat } from 'fs/promises';
4
4
  import path11 from 'path';
5
5
  import fs2 from 'fs';
@@ -151,6 +151,7 @@ declare const apiRouteParam: {
151
151
  readonly bookingAddonUuid: ":bookingAddonUuid";
152
152
  readonly userMembershipUuid: ":userMembershipUuid";
153
153
  readonly bugReportUuid: ":bugReportUuid";
154
+ readonly linkTypeUuid: ":linkTypeUuid";
154
155
  readonly linkUuid: ":linkUuid";
155
156
  readonly linkType: ":linkType";
156
157
  readonly stripeId: ":stripeId";
@@ -164,6 +165,7 @@ declare const apiRoute: {
164
165
  readonly devJwt: "/jwt";
165
166
  readonly login: "/login";
166
167
  readonly signup: "/signup";
168
+ readonly confirmEmail: "/confirm-email/:linkTypeUuid";
167
169
  readonly swagger: {
168
170
  readonly name: "Auth";
169
171
  readonly description: "Endpoints for login, sign up etc";
@@ -555,6 +557,7 @@ declare enum PermissionType {
555
557
  UserDelete = 22,
556
558
  ActivitiesView = 30,
557
559
  StripeView = 31,
560
+ UserFlagManage = 32,
558
561
  UserPermissionView = 40,
559
562
  UserPermissionManage = 41,
560
563
  UserPermissionDelete = 42,
@@ -668,7 +671,9 @@ declare const uploadsThatNeedEncryption: Array<UploadType>;
668
671
 
669
672
  declare enum UserAccountFlagType {
670
673
  Unknown = 0,
671
- ChangePassword = 1
674
+ ChangePassword = 1,
675
+ EmailNotVerified = 2,
676
+ AccountDisabled = 3
672
677
  }
673
678
 
674
679
  declare enum UserType {
@@ -869,6 +874,7 @@ interface components {
869
874
  firstName?: string;
870
875
  lastName?: string;
871
876
  permissions: number[];
877
+ flags: number[];
872
878
  };
873
879
  /**
874
880
  * BookingAddonDto
@@ -1509,7 +1515,7 @@ interface components {
1509
1515
  profilePic: string;
1510
1516
  /** MembershipType */
1511
1517
  membershipType: 0 | 1 | 2;
1512
- flags: (0 | 1)[];
1518
+ flags: (0 | 1 | 2 | 3)[];
1513
1519
  };
1514
1520
  /**
1515
1521
  * ProfileQuestionAndAnswersItemDto
@@ -1709,6 +1715,43 @@ interface components {
1709
1715
  SetupIntentDto: {
1710
1716
  clientSecret: string;
1711
1717
  };
1718
+ /**
1719
+ * TempLinkCreateDto
1720
+ * @description Temp link create details
1721
+ */
1722
+ TempLinkCreateDto: {
1723
+ /**
1724
+ * Format: uuid
1725
+ * @description A Universally Unique Identifier is a 128-bit label used to uniquely identify objects
1726
+ */
1727
+ linkUuid: string;
1728
+ /** TempLinkType */
1729
+ linkType: 0 | 1 | 2;
1730
+ usedOn: ((Record<string, never> | string | number) | null) | null;
1731
+ expiresOn: Record<string, never> | string | number;
1732
+ };
1733
+ /**
1734
+ * TempLinkDto
1735
+ * @description Temp link details
1736
+ */
1737
+ TempLinkDto: {
1738
+ /**
1739
+ * Format: uuid
1740
+ * @description A Universally Unique Identifier is a 128-bit label used to uniquely identify objects
1741
+ */
1742
+ uuid: string;
1743
+ /**
1744
+ * Format: uuid
1745
+ * @description A Universally Unique Identifier is a 128-bit label used to uniquely identify objects
1746
+ */
1747
+ linkUuid: string;
1748
+ /** TempLinkType */
1749
+ linkType: 0 | 1 | 2;
1750
+ usedOn: ((Record<string, never> | string | number) | null) | null;
1751
+ expiresOn: Record<string, never> | string | number;
1752
+ dateCreated: Record<string, never> | string | number;
1753
+ dateModified: Record<string, never> | string | number;
1754
+ };
1712
1755
  /**
1713
1756
  * UploadCreateDto
1714
1757
  * @description Upload Create details
@@ -1823,7 +1866,7 @@ interface components {
1823
1866
  */
1824
1867
  email: string;
1825
1868
  hubspotId: (string | null) | null;
1826
- flags?: (0 | 1)[];
1869
+ flags?: (0 | 1 | 2 | 3)[];
1827
1870
  lastLogin: ((Record<string, never> | string | number) | null) | null;
1828
1871
  stripeCustomerId: (string | null) | null;
1829
1872
  dateCreated: Record<string, never> | string | number;
@@ -2008,7 +2051,7 @@ interface components {
2008
2051
  */
2009
2052
  userUuid: string;
2010
2053
  /** PermissionType */
2011
- type: 0 | 1 | 2 | 20 | 21 | 22 | 30 | 31 | 40 | 41 | 42 | 60 | 61 | 62 | 80 | 81 | 82 | 100 | 101 | 102 | 120 | 121 | 122 | 140 | 141 | 142 | 150 | 151 | 152 | 160 | 161 | 162 | 170 | 171 | 172 | 180 | 181 | 182 | 200 | 201 | 202 | 210 | 211 | 212;
2054
+ type: 0 | 1 | 2 | 20 | 21 | 22 | 30 | 31 | 32 | 40 | 41 | 42 | 60 | 61 | 62 | 80 | 81 | 82 | 100 | 101 | 102 | 120 | 121 | 122 | 140 | 141 | 142 | 150 | 151 | 152 | 160 | 161 | 162 | 170 | 171 | 172 | 180 | 181 | 182 | 200 | 201 | 202 | 210 | 211 | 212;
2012
2055
  name: string;
2013
2056
  };
2014
2057
  /**
@@ -2029,9 +2072,9 @@ interface components {
2029
2072
  * @default info@nanaspetsitting.com
2030
2073
  */
2031
2074
  email: string;
2032
- hubspotId: string;
2075
+ hubspotId: (string | null) | null;
2033
2076
  stripeCustomerId: (string | null) | null;
2034
- flags: (0 | 1)[];
2077
+ flags: (0 | 1 | 2 | 3)[];
2035
2078
  };
2036
2079
  /**
2037
2080
  * VersionDto
@@ -2051,7 +2094,8 @@ interface components {
2051
2094
  types: (0 | 1 | 2 | 3 | 50 | 99)[];
2052
2095
  firstName?: string;
2053
2096
  lastName?: string;
2054
- permissions: (0 | 1 | 2 | 20 | 21 | 22 | 30 | 31 | 40 | 41 | 42 | 60 | 61 | 62 | 80 | 81 | 82 | 100 | 101 | 102 | 120 | 121 | 122 | 140 | 141 | 142 | 150 | 151 | 152 | 160 | 161 | 162 | 170 | 171 | 172 | 180 | 181 | 182 | 200 | 201 | 202 | 210 | 211 | 212)[];
2097
+ flags: (0 | 1 | 2 | 3)[];
2098
+ permissions: (0 | 1 | 2 | 20 | 21 | 22 | 30 | 31 | 32 | 40 | 41 | 42 | 60 | 61 | 62 | 80 | 81 | 82 | 100 | 101 | 102 | 120 | 121 | 122 | 140 | 141 | 142 | 150 | 151 | 152 | 160 | 161 | 162 | 170 | 171 | 172 | 180 | 181 | 182 | 200 | 201 | 202 | 210 | 211 | 212)[];
2055
2099
  };
2056
2100
  };
2057
2101
  responses: never;
@@ -2119,6 +2163,8 @@ type SearchObjRequestDto = components['schemas']['SearchObjRequestDto'];
2119
2163
  type SearchObjTextPropRequestDto = components['schemas']['SearchObjTextPropRequestDto'];
2120
2164
  type SetupIntentCreateDto = components['schemas']['SetupIntentCreateDto'];
2121
2165
  type SetupIntentDto = components['schemas']['SetupIntentDto'];
2166
+ type TempLinkCreateDto = components['schemas']['TempLinkCreateDto'];
2167
+ type TempLinkDto = P<Omit<components['schemas']['TempLinkDto'], 'dateCreated' | 'dateModified'> & { dateCreated: Date; dateModified: Date }>;
2122
2168
  type UploadCreateDto = components['schemas']['UploadCreateDto'];
2123
2169
  type UploadDto = P<Omit<components['schemas']['UploadDto'], 'dateCreated' | 'dateModified'> & { dateCreated: Date; dateModified: Date }>;
2124
2170
  type UploadImageWithLinkDto = components['schemas']['UploadImageWithLinkDto'];
@@ -2205,7 +2251,7 @@ declare const BugReportRestriction: {
2205
2251
  readonly maxLength: 1000;
2206
2252
  };
2207
2253
  readonly logs: {
2208
- readonly maxLength: 5000;
2254
+ readonly maxLength: 50000;
2209
2255
  };
2210
2256
  };
2211
2257
 
@@ -2686,8 +2732,8 @@ declare const tryParseNumber: (input: string | number | null | undefined, opts?:
2686
2732
  declare const getPerformanceTimer: () => () => number;
2687
2733
 
2688
2734
  declare const hasRequiredPermissions: (props: {
2689
- userPermissions: Array<PermissionType>;
2690
- requiredPermissions: Array<PermissionType>;
2735
+ userPermissions: Array<PermissionType | number>;
2736
+ requiredPermissions: Array<PermissionType | number>;
2691
2737
  hasAdminPermission?: () => void;
2692
2738
  doesNotHavePermission?: (missingPermissions: Array<PermissionType>) => void;
2693
2739
  }) => boolean;
@@ -2839,13 +2885,17 @@ declare const validateForEach: <T>(validation: (item: T) => ValidationResult) =>
2839
2885
  declare const minDate: (minDate: Date) => (value: Date) => ValidationResult;
2840
2886
  declare const maxDate: (maxDate: Date) => (value: Date) => ValidationResult;
2841
2887
 
2888
+ declare const emailValid: (value: string) => ValidationResult;
2889
+
2842
2890
  declare const isNumber: (value: number | string) => ValidationResult;
2843
2891
  declare const minValue: (min: number) => (value: number) => ValidationResult;
2844
2892
  declare const maxValue: (max: number) => (value: number) => ValidationResult;
2845
2893
 
2894
+ declare const passwordValid: (value: string) => ValidationResult;
2895
+
2846
2896
  declare const minLength: (minLengthVal: number) => (value: string) => ValidationResult;
2847
2897
  declare const maxLength: (maxLengthVal: number) => (value: string) => ValidationResult;
2848
2898
  declare const shouldBeUrl: (value: string) => ValidationResult;
2849
2899
  declare const shouldBeYoutubeUrl: (value: string) => ValidationResult;
2850
2900
 
2851
- export { QuestionType as $, AppType as A, BookingAddonType as B, CommonConfigService as C, type DependencyInjectionToken as D, type EnvKey as E, BookingStatusType as F, BugReportStatusType as G, type HtmlElementEvent as H, type ILogger as I, CommentLinkType as J, type KeyEvent as K, LogService as L, type MonthTranslationKey as M, InvoiceStatusType as N, type LogType as O, MembershipBillingCycleType as P, MembershipStatus as Q, type ResultWithValue as R, MembershipType as S, type ThemeType as T, NetworkState as U, OrderDirectionType as V, type WeekdayTranslationKey as W, PermissionType as X, PetSexType as Y, PetStatusType as Z, PetType as _, type Result as a, type SetupIntentCreateDto as a$, QuestionForType as a0, getAllPetQuestionForType as a1, SearchableColumnType as a2, type SearchableColumnInfo as a3, TempLinkType as a4, UploadLinkType as a5, UploadType as a6, uploadsThatNeedEncryption as a7, UserAccountFlagType as a8, UserType as a9, type ClientAnswerSaveDto as aA, type CommentCreateDto as aB, type CommentDto as aC, type CommentUpdateDto as aD, type InvoiceCreateDto as aE, type InvoiceDto as aF, type InvoiceUpdateDto as aG, type InvoiceWithStripeInfoDto as aH, type MembershipCreateDto as aI, type MembershipDto as aJ, type MembershipUpdateDto as aK, type PaginationRequestDto as aL, type PaginationResponseDto as aM, type PaymentMethodDto as aN, type PetCreateDto as aO, type PetDto as aP, type PetUpdateDto as aQ, type ProfileDto as aR, type ProfileQuestionAndAnswersItemDto as aS, type ProfileQuestionRequestDto as aT, type ProfileUpdateDto as aU, type QuestionCreateDto as aV, type QuestionDto as aW, type QuestionUpdateDto as aX, type SearchObjDatePropRequestDto as aY, type SearchObjRequestDto as aZ, type SearchObjTextPropRequestDto as a_, hubspotQuestionsExport as aa, type ActivityDto as ab, type AddressCreateDto as ac, type AddressDto as ad, type AddressLookupDto as ae, type AddressUpdateDto as af, type AnswerCreateDto as ag, type AnswerDto as ah, type AuthLoginDto as ai, type AuthPatDto as aj, type AuthSignupDto as ak, type AuthSuccessDto as al, type BookingAddonDto as am, type BookingCreateDto as an, type BookingDto as ao, type BookingHostCreateDto as ap, type BookingHostDto as aq, type BookingHostUpdateDto as ar, type BookingRestrictionsDto as as, type BookingRestrictionsEnabledDaysDto as at, type BookingRestrictionsPremiumEnabledDaysDto as au, type BookingUpdateDto as av, type BookingWithRelationshipsDto as aw, type BugReportCreateDto as ax, type BugReportDto as ay, type BugReportUpdateDto as az, type IDependencyInjectionSetupProps as b, addMinutes as b$, type SetupIntentDto as b0, type UploadCreateDto as b1, type UploadDto as b2, type UploadImageWithLinkDto as b3, type UploadUpdateDto as b4, type UserCreateDto as b5, type UserDto as b6, type UserMembershipChangeResponseDto as b7, type UserMembershipCreateDto as b8, type UserMembershipDto as b9, searchColumns as bA, type ICaptchaResponse as bB, type LogMethod as bC, type ILogMessage as bD, type IMediaUpload as bE, type NominatimResponse as bF, type NominatimAddressResponse as bG, type ValidationResult as bH, makeArrayOrDefault as bI, onlyUnique as bJ, arrayOfNLength as bK, arrayContains as bL, timeout as bM, addToParallelTasks as bN, getDayClassObject as bO, getDayHeadingElements as bP, type RenderCellType as bQ, getDayElements as bR, getUsersName as bS, formatDate as bT, formatForDateLocal as bU, formatForDateDropdown as bV, formatForDateOfBirth as bW, formatForDateWithTime as bX, formatForDateLocalDetailed as bY, formatForBookingDate as bZ, addSeconds as b_, type UserMembershipSignUpDto as ba, type UserMembershipSignUpResponseDto as bb, type UserMembershipStatsDto as bc, type UserMembershipUpdateDto as bd, type UserMembershipWithStripeInfoDto as be, type UserPermissionDto as bf, type UserUpdateDto as bg, type VersionDto as bh, type JwtPayloadDto as bi, ActivityRestriction as bj, AddressRestriction as bk, AnswerRestriction as bl, BookingRestriction as bm, BookingAddonRestriction as bn, BugReportRestriction as bo, CommentRestriction as bp, DrivingRouteRestriction as bq, InvoiceRestriction as br, MembershipRestriction as bs, PermissionRestriction as bt, PetRestriction as bu, QuestionRestriction as bv, StripeRestriction as bw, UnavailabilityRestriction as bx, UploadRestriction as by, UserRestriction as bz, weekdayTranslationKeyOrder as c, separateValidation as c$, addDays as c0, addMonths as c1, isBefore as c2, isSameDay as c3, dateDiffInDays as c4, getAgeInYears as c5, getWeekNumber as c6, showSecondCalendar as c7, debounceLeading as c8, getArrFromEnum as c9, type ISiteColour as cA, colourPalette as cB, defaultSiteColour as cC, type ISite as cD, DependencyInjectionContainer as cE, rootContainer as cF, BOT_PATH_TOKEN as cG, getBotPath as cH, APP_TYPE_TOKEN as cI, getAppType as cJ, SITE_CONFIG_TOKEN as cK, setSiteConfig as cL, getSiteConfig as cM, getSiteColour as cN, getCommonConfig as cO, getLog as cP, rootDependencyInjectionSetup as cQ, setContainerToken as cR, setContainerTokenLazy as cS, TranslationService as cT, minItems as cU, maxItems as cV, selectedItemsExist as cW, selectedOptionIsInEnum as cX, noValidation as cY, notNull as cZ, multiValidation as c_, uuidv4 as ca, cyrb53 as cb, type IImageParams as cc, getImageParams as cd, getPayloadFromJwt as ce, mimeTypeLookup as cf, getMimeTypeFromExtension as cg, tryParseNumber as ch, getPerformanceTimer as ci, hasRequiredPermissions as cj, getUserAvatarUrl as ck, getPetAvatarUrl as cl, promiseFromValue as cm, nameof as cn, randomIntFromRange as co, randomItemFromArray as cp, capitalizeFirstLetter as cq, lowercaseFirstLetter as cr, addSpacesForEnum as cs, formatFileSize as ct, anyObject as cu, fakePromise as cv, type ObjectWithPropsOfValue as cw, type Prettify as cx, urlRef as cy, getActiveUserMembership as cz, MouseButton as d, validateForEach as d0, minDate as d1, maxDate as d2, isNumber as d3, minValue as d4, maxValue as d5, minLength as d6, maxLength as d7, shouldBeUrl as d8, shouldBeYoutubeUrl as d9, type IFormCalendarPickerProps as da, type FullDateSelectionProps as db, type FormCalendarPickerMode as dc, type FormCalendarDatePickerRangeProps as dd, type DateSelectionProps as de, type FormCalendarPickerInnerProps as df, type FormInputProps as dg, type FormCalendarSpecialRangeDisplayProps as dh, type FormCalendarSpecialRangeProps as di, type ValidFormTypes as dj, type ValidFormComponentTypes as dk, type PropertyOverrides as dl, minUrlLength as e, type CachedValue as f, createToken as g, type DependencyInjectionIdentifier as h, isWebApp as i, type DependencyInjectionFactory as j, type IDependencyInjectionSetupWebProps as k, type HtmlKeyEvent as l, monthTranslationKeyOrder as m, nanasFonts as n, type HtmlFilesEvent as o, portalGlyphLength as p, type HtmlImageReadEvent as q, type ClickEvent as r, socialLinks as s, apiRouteParam as t, apiRoute as u, validUuidChars as v, webAppTypes as w, ActivityType as x, AddressLinkType as y, AnswerLinkType as z };
2901
+ export { QuestionType as $, AppType as A, BookingAddonType as B, CommonConfigService as C, type DependencyInjectionToken as D, type EnvKey as E, BookingStatusType as F, BugReportStatusType as G, type HtmlElementEvent as H, type ILogger as I, CommentLinkType as J, type KeyEvent as K, LogService as L, type MonthTranslationKey as M, InvoiceStatusType as N, type LogType as O, MembershipBillingCycleType as P, MembershipStatus as Q, type ResultWithValue as R, MembershipType as S, type ThemeType as T, NetworkState as U, OrderDirectionType as V, type WeekdayTranslationKey as W, PermissionType as X, PetSexType as Y, PetStatusType as Z, PetType as _, type Result as a, type SetupIntentCreateDto as a$, QuestionForType as a0, getAllPetQuestionForType as a1, SearchableColumnType as a2, type SearchableColumnInfo as a3, TempLinkType as a4, UploadLinkType as a5, UploadType as a6, uploadsThatNeedEncryption as a7, UserAccountFlagType as a8, UserType as a9, type ClientAnswerSaveDto as aA, type CommentCreateDto as aB, type CommentDto as aC, type CommentUpdateDto as aD, type InvoiceCreateDto as aE, type InvoiceDto as aF, type InvoiceUpdateDto as aG, type InvoiceWithStripeInfoDto as aH, type MembershipCreateDto as aI, type MembershipDto as aJ, type MembershipUpdateDto as aK, type PaginationRequestDto as aL, type PaginationResponseDto as aM, type PaymentMethodDto as aN, type PetCreateDto as aO, type PetDto as aP, type PetUpdateDto as aQ, type ProfileDto as aR, type ProfileQuestionAndAnswersItemDto as aS, type ProfileQuestionRequestDto as aT, type ProfileUpdateDto as aU, type QuestionCreateDto as aV, type QuestionDto as aW, type QuestionUpdateDto as aX, type SearchObjDatePropRequestDto as aY, type SearchObjRequestDto as aZ, type SearchObjTextPropRequestDto as a_, hubspotQuestionsExport as aa, type ActivityDto as ab, type AddressCreateDto as ac, type AddressDto as ad, type AddressLookupDto as ae, type AddressUpdateDto as af, type AnswerCreateDto as ag, type AnswerDto as ah, type AuthLoginDto as ai, type AuthPatDto as aj, type AuthSignupDto as ak, type AuthSuccessDto as al, type BookingAddonDto as am, type BookingCreateDto as an, type BookingDto as ao, type BookingHostCreateDto as ap, type BookingHostDto as aq, type BookingHostUpdateDto as ar, type BookingRestrictionsDto as as, type BookingRestrictionsEnabledDaysDto as at, type BookingRestrictionsPremiumEnabledDaysDto as au, type BookingUpdateDto as av, type BookingWithRelationshipsDto as aw, type BugReportCreateDto as ax, type BugReportDto as ay, type BugReportUpdateDto as az, type IDependencyInjectionSetupProps as b, formatForBookingDate as b$, type SetupIntentDto as b0, type TempLinkCreateDto as b1, type TempLinkDto as b2, type UploadCreateDto as b3, type UploadDto as b4, type UploadImageWithLinkDto as b5, type UploadUpdateDto as b6, type UserCreateDto as b7, type UserDto as b8, type UserMembershipChangeResponseDto as b9, UploadRestriction as bA, UserRestriction as bB, searchColumns as bC, type ICaptchaResponse as bD, type LogMethod as bE, type ILogMessage as bF, type IMediaUpload as bG, type NominatimResponse as bH, type NominatimAddressResponse as bI, type ValidationResult as bJ, makeArrayOrDefault as bK, onlyUnique as bL, arrayOfNLength as bM, arrayContains as bN, timeout as bO, addToParallelTasks as bP, getDayClassObject as bQ, getDayHeadingElements as bR, type RenderCellType as bS, getDayElements as bT, getUsersName as bU, formatDate as bV, formatForDateLocal as bW, formatForDateDropdown as bX, formatForDateOfBirth as bY, formatForDateWithTime as bZ, formatForDateLocalDetailed as b_, type UserMembershipCreateDto as ba, type UserMembershipDto as bb, type UserMembershipSignUpDto as bc, type UserMembershipSignUpResponseDto as bd, type UserMembershipStatsDto as be, type UserMembershipUpdateDto as bf, type UserMembershipWithStripeInfoDto as bg, type UserPermissionDto as bh, type UserUpdateDto as bi, type VersionDto as bj, type JwtPayloadDto as bk, ActivityRestriction as bl, AddressRestriction as bm, AnswerRestriction as bn, BookingRestriction as bo, BookingAddonRestriction as bp, BugReportRestriction as bq, CommentRestriction as br, DrivingRouteRestriction as bs, InvoiceRestriction as bt, MembershipRestriction as bu, PermissionRestriction as bv, PetRestriction as bw, QuestionRestriction as bx, StripeRestriction as by, UnavailabilityRestriction as bz, weekdayTranslationKeyOrder as c, notNull as c$, addSeconds as c0, addMinutes as c1, addDays as c2, addMonths as c3, isBefore as c4, isSameDay as c5, dateDiffInDays as c6, getAgeInYears as c7, getWeekNumber as c8, showSecondCalendar as c9, urlRef as cA, getActiveUserMembership as cB, type ISiteColour as cC, colourPalette as cD, defaultSiteColour as cE, type ISite as cF, DependencyInjectionContainer as cG, rootContainer as cH, BOT_PATH_TOKEN as cI, getBotPath as cJ, APP_TYPE_TOKEN as cK, getAppType as cL, SITE_CONFIG_TOKEN as cM, setSiteConfig as cN, getSiteConfig as cO, getSiteColour as cP, getCommonConfig as cQ, getLog as cR, rootDependencyInjectionSetup as cS, setContainerToken as cT, setContainerTokenLazy as cU, TranslationService as cV, minItems as cW, maxItems as cX, selectedItemsExist as cY, selectedOptionIsInEnum as cZ, noValidation as c_, debounceLeading as ca, getArrFromEnum as cb, uuidv4 as cc, cyrb53 as cd, type IImageParams as ce, getImageParams as cf, getPayloadFromJwt as cg, mimeTypeLookup as ch, getMimeTypeFromExtension as ci, tryParseNumber as cj, getPerformanceTimer as ck, hasRequiredPermissions as cl, getUserAvatarUrl as cm, getPetAvatarUrl as cn, promiseFromValue as co, nameof as cp, randomIntFromRange as cq, randomItemFromArray as cr, capitalizeFirstLetter as cs, lowercaseFirstLetter as ct, addSpacesForEnum as cu, formatFileSize as cv, anyObject as cw, fakePromise as cx, type ObjectWithPropsOfValue as cy, type Prettify as cz, MouseButton as d, multiValidation as d0, separateValidation as d1, validateForEach as d2, minDate as d3, maxDate as d4, emailValid as d5, isNumber as d6, minValue as d7, maxValue as d8, passwordValid as d9, minLength as da, maxLength as db, shouldBeUrl as dc, shouldBeYoutubeUrl as dd, type IFormCalendarPickerProps as de, type FullDateSelectionProps as df, type FormCalendarPickerMode as dg, type FormCalendarDatePickerRangeProps as dh, type DateSelectionProps as di, type FormCalendarPickerInnerProps as dj, type FormInputProps as dk, type FormCalendarSpecialRangeDisplayProps as dl, type FormCalendarSpecialRangeProps as dm, type ValidFormTypes as dn, type ValidFormComponentTypes as dp, type PropertyOverrides as dq, minUrlLength as e, type CachedValue as f, createToken as g, type DependencyInjectionIdentifier as h, isWebApp as i, type DependencyInjectionFactory as j, type IDependencyInjectionSetupWebProps as k, type HtmlKeyEvent as l, monthTranslationKeyOrder as m, nanasFonts as n, type HtmlFilesEvent as o, portalGlyphLength as p, type HtmlImageReadEvent as q, type ClickEvent as r, socialLinks as s, apiRouteParam as t, apiRoute as u, validUuidChars as v, webAppTypes as w, ActivityType as x, AddressLinkType as y, AnswerLinkType as z };
@@ -1,7 +1,7 @@
1
1
  import * as solid_js from 'solid-js';
2
2
  import { JSXElement, Component, JSX, Accessor, ComponentProps } from 'solid-js';
3
- import { x as ActivityType, F as BookingStatusType, r as ClickEvent, S as MembershipType, Q as MembershipStatus, P as MembershipBillingCycleType, Z as PetStatusType, aR as ProfileDto, aW as QuestionDto, ah as AnswerDto, a0 as QuestionForType, $ as QuestionType, a9 as UserType, R as ResultWithValue, U as NetworkState, X as PermissionType, da as IFormCalendarPickerProps, db as FullDateSelectionProps, dc as FormCalendarPickerMode, dd as FormCalendarDatePickerRangeProps, de as DateSelectionProps, W as WeekdayTranslationKey, M as MonthTranslationKey, df as FormCalendarPickerInnerProps, dg as FormInputProps, bH as ValidationResult, K as KeyEvent, H as HtmlElementEvent, ac as AddressCreateDto, af as AddressUpdateDto, ai as AuthLoginDto, ak as AuthSignupDto, an as BookingCreateDto, av as BookingUpdateDto, ax as BugReportCreateDto, aI as MembershipCreateDto, aO as PetCreateDto, aQ as PetUpdateDto, aU as ProfileUpdateDto, aV as QuestionCreateDto, b1 as UploadCreateDto, b3 as UploadImageWithLinkDto, b6 as UserDto, b5 as UserCreateDto, bd as UserMembershipUpdateDto, b8 as UserMembershipCreateDto, o as HtmlFilesEvent, bD as ILogMessage, I as ILogger, a as Result, aL as PaginationRequestDto, aM as PaginationResponseDto, aZ as SearchObjRequestDto, C as CommonConfigService, ab as ActivityDto, L as LogService, ad as AddressDto, y as AddressLinkType, bF as NominatimResponse, aS as ProfileQuestionAndAnswersItemDto, ao as BookingDto, aw as BookingWithRelationshipsDto, J as CommentLinkType, aC as CommentDto, aB as CommentCreateDto, aF as InvoiceDto, aE as InvoiceCreateDto, aG as InvoiceUpdateDto, aJ as MembershipDto, aK as MembershipUpdateDto, aP as PetDto, b2 as UploadDto, b4 as UploadUpdateDto, bg as UserUpdateDto, b9 as UserMembershipDto, bc as UserMembershipStatsDto, bf as UserPermissionDto, ae as AddressLookupDto, aH as InvoiceWithStripeInfoDto, cD as ISite, aN as PaymentMethodDto, a$ as SetupIntentCreateDto, b0 as SetupIntentDto, as as BookingRestrictionsDto, ba as UserMembershipSignUpDto, bb as UserMembershipSignUpResponseDto, b7 as UserMembershipChangeResponseDto, al as AuthSuccessDto, ay as BugReportDto, bh as VersionDto, T as ThemeType, cx as Prettify, k as IDependencyInjectionSetupWebProps, cT as TranslationService } from '../textValidation-CRDf_0bC.js';
4
- export { cI as APP_TYPE_TOKEN, bj as ActivityRestriction, bk as AddressRestriction, ag as AnswerCreateDto, z as AnswerLinkType, bl as AnswerRestriction, A as AppType, aj as AuthPatDto, cG as BOT_PATH_TOKEN, am as BookingAddonDto, bn as BookingAddonRestriction, B as BookingAddonType, ap as BookingHostCreateDto, aq as BookingHostDto, ar as BookingHostUpdateDto, bm as BookingRestriction, at as BookingRestrictionsEnabledDaysDto, au as BookingRestrictionsPremiumEnabledDaysDto, bo as BugReportRestriction, G as BugReportStatusType, az as BugReportUpdateDto, f as CachedValue, aA as ClientAnswerSaveDto, bp as CommentRestriction, aD as CommentUpdateDto, cE as DependencyInjectionContainer, j as DependencyInjectionFactory, h as DependencyInjectionIdentifier, D as DependencyInjectionToken, bq as DrivingRouteRestriction, E as EnvKey, dh as FormCalendarSpecialRangeDisplayProps, di as FormCalendarSpecialRangeProps, q as HtmlImageReadEvent, l as HtmlKeyEvent, bB as ICaptchaResponse, b as IDependencyInjectionSetupProps, cc as IImageParams, bE as IMediaUpload, cA as ISiteColour, br as InvoiceRestriction, N as InvoiceStatusType, bi as JwtPayloadDto, bC as LogMethod, O as LogType, bs as MembershipRestriction, d as MouseButton, bG as NominatimAddressResponse, cw as ObjectWithPropsOfValue, V as OrderDirectionType, bt as PermissionRestriction, bu as PetRestriction, Y as PetSexType, _ as PetType, aT as ProfileQuestionRequestDto, dl as PropertyOverrides, bv as QuestionRestriction, aX as QuestionUpdateDto, bQ as RenderCellType, cK as SITE_CONFIG_TOKEN, aY as SearchObjDatePropRequestDto, a_ as SearchObjTextPropRequestDto, a3 as SearchableColumnInfo, a2 as SearchableColumnType, bw as StripeRestriction, a4 as TempLinkType, bx as UnavailabilityRestriction, a5 as UploadLinkType, by as UploadRestriction, a6 as UploadType, a8 as UserAccountFlagType, be as UserMembershipWithStripeInfoDto, bz as UserRestriction, dk as ValidFormComponentTypes, dj as ValidFormTypes, c0 as addDays, b$ as addMinutes, c1 as addMonths, b_ as addSeconds, cs as addSpacesForEnum, bN as addToParallelTasks, cu as anyObject, u as apiRoute, t as apiRouteParam, bL as arrayContains, bK as arrayOfNLength, cq as capitalizeFirstLetter, cB as colourPalette, g as createToken, cb as cyrb53, c4 as dateDiffInDays, c8 as debounceLeading, cC as defaultSiteColour, cv as fakePromise, bT as formatDate, ct as formatFileSize, bZ as formatForBookingDate, bV as formatForDateDropdown, bU as formatForDateLocal, bY as formatForDateLocalDetailed, bW as formatForDateOfBirth, bX as formatForDateWithTime, cz as getActiveUserMembership, c5 as getAgeInYears, a1 as getAllPetQuestionForType, cJ as getAppType, c9 as getArrFromEnum, cH as getBotPath, cO as getCommonConfig, bO as getDayClassObject, bR as getDayElements, bP as getDayHeadingElements, cd as getImageParams, cP as getLog, cg as getMimeTypeFromExtension, ce as getPayloadFromJwt, ci as getPerformanceTimer, cl as getPetAvatarUrl, cN as getSiteColour, cM as getSiteConfig, ck as getUserAvatarUrl, bS as getUsersName, c6 as getWeekNumber, cj as hasRequiredPermissions, aa as hubspotQuestionsExport, c2 as isBefore, d3 as isNumber, c3 as isSameDay, i as isWebApp, cr as lowercaseFirstLetter, bI as makeArrayOrDefault, d2 as maxDate, cV as maxItems, d7 as maxLength, d5 as maxValue, cf as mimeTypeLookup, d1 as minDate, cU as minItems, d6 as minLength, e as minUrlLength, d4 as minValue, m as monthTranslationKeyOrder, c_ as multiValidation, cn as nameof, n as nanasFonts, cY as noValidation, cZ as notNull, bJ as onlyUnique, p as portalGlyphLength, cm as promiseFromValue, co as randomIntFromRange, cp as randomItemFromArray, cF as rootContainer, cQ as rootDependencyInjectionSetup, bA as searchColumns, cW as selectedItemsExist, cX as selectedOptionIsInEnum, c$ as separateValidation, cR as setContainerToken, cS as setContainerTokenLazy, cL as setSiteConfig, d8 as shouldBeUrl, d9 as shouldBeYoutubeUrl, c7 as showSecondCalendar, s as socialLinks, bM as timeout, ch as tryParseNumber, a7 as uploadsThatNeedEncryption, cy as urlRef, ca as uuidv4, v as validUuidChars, d0 as validateForEach, w as webAppTypes, c as weekdayTranslationKeyOrder } from '../textValidation-CRDf_0bC.js';
3
+ import { x as ActivityType, F as BookingStatusType, r as ClickEvent, S as MembershipType, Q as MembershipStatus, P as MembershipBillingCycleType, Z as PetStatusType, aR as ProfileDto, aW as QuestionDto, ah as AnswerDto, a0 as QuestionForType, $ as QuestionType, a9 as UserType, R as ResultWithValue, U as NetworkState, X as PermissionType, de as IFormCalendarPickerProps, df as FullDateSelectionProps, dg as FormCalendarPickerMode, dh as FormCalendarDatePickerRangeProps, di as DateSelectionProps, W as WeekdayTranslationKey, M as MonthTranslationKey, dj as FormCalendarPickerInnerProps, dk as FormInputProps, bJ as ValidationResult, K as KeyEvent, H as HtmlElementEvent, ac as AddressCreateDto, af as AddressUpdateDto, ai as AuthLoginDto, ak as AuthSignupDto, an as BookingCreateDto, av as BookingUpdateDto, ax as BugReportCreateDto, aI as MembershipCreateDto, aO as PetCreateDto, aQ as PetUpdateDto, aU as ProfileUpdateDto, aV as QuestionCreateDto, b3 as UploadCreateDto, b5 as UploadImageWithLinkDto, b8 as UserDto, b7 as UserCreateDto, bf as UserMembershipUpdateDto, ba as UserMembershipCreateDto, o as HtmlFilesEvent, bF as ILogMessage, I as ILogger, a as Result, aL as PaginationRequestDto, aM as PaginationResponseDto, aZ as SearchObjRequestDto, C as CommonConfigService, ab as ActivityDto, L as LogService, ad as AddressDto, y as AddressLinkType, bH as NominatimResponse, aS as ProfileQuestionAndAnswersItemDto, ao as BookingDto, aw as BookingWithRelationshipsDto, J as CommentLinkType, aC as CommentDto, aB as CommentCreateDto, aF as InvoiceDto, aE as InvoiceCreateDto, aG as InvoiceUpdateDto, aJ as MembershipDto, aK as MembershipUpdateDto, aP as PetDto, b4 as UploadDto, b6 as UploadUpdateDto, bi as UserUpdateDto, bb as UserMembershipDto, be as UserMembershipStatsDto, bh as UserPermissionDto, ae as AddressLookupDto, aH as InvoiceWithStripeInfoDto, cF as ISite, aN as PaymentMethodDto, a$ as SetupIntentCreateDto, b0 as SetupIntentDto, as as BookingRestrictionsDto, bc as UserMembershipSignUpDto, bd as UserMembershipSignUpResponseDto, b9 as UserMembershipChangeResponseDto, al as AuthSuccessDto, ay as BugReportDto, bj as VersionDto, T as ThemeType, cz as Prettify, k as IDependencyInjectionSetupWebProps, cV as TranslationService } from '../textValidation-DmVC_l-P.js';
4
+ export { cK as APP_TYPE_TOKEN, bl as ActivityRestriction, bm as AddressRestriction, ag as AnswerCreateDto, z as AnswerLinkType, bn as AnswerRestriction, A as AppType, aj as AuthPatDto, cI as BOT_PATH_TOKEN, am as BookingAddonDto, bp as BookingAddonRestriction, B as BookingAddonType, ap as BookingHostCreateDto, aq as BookingHostDto, ar as BookingHostUpdateDto, bo as BookingRestriction, at as BookingRestrictionsEnabledDaysDto, au as BookingRestrictionsPremiumEnabledDaysDto, bq as BugReportRestriction, G as BugReportStatusType, az as BugReportUpdateDto, f as CachedValue, aA as ClientAnswerSaveDto, br as CommentRestriction, aD as CommentUpdateDto, cG as DependencyInjectionContainer, j as DependencyInjectionFactory, h as DependencyInjectionIdentifier, D as DependencyInjectionToken, bs as DrivingRouteRestriction, E as EnvKey, dl as FormCalendarSpecialRangeDisplayProps, dm as FormCalendarSpecialRangeProps, q as HtmlImageReadEvent, l as HtmlKeyEvent, bD as ICaptchaResponse, b as IDependencyInjectionSetupProps, ce as IImageParams, bG as IMediaUpload, cC as ISiteColour, bt as InvoiceRestriction, N as InvoiceStatusType, bk as JwtPayloadDto, bE as LogMethod, O as LogType, bu as MembershipRestriction, d as MouseButton, bI as NominatimAddressResponse, cy as ObjectWithPropsOfValue, V as OrderDirectionType, bv as PermissionRestriction, bw as PetRestriction, Y as PetSexType, _ as PetType, aT as ProfileQuestionRequestDto, dq as PropertyOverrides, bx as QuestionRestriction, aX as QuestionUpdateDto, bS as RenderCellType, cM as SITE_CONFIG_TOKEN, aY as SearchObjDatePropRequestDto, a_ as SearchObjTextPropRequestDto, a3 as SearchableColumnInfo, a2 as SearchableColumnType, by as StripeRestriction, b1 as TempLinkCreateDto, b2 as TempLinkDto, a4 as TempLinkType, bz as UnavailabilityRestriction, a5 as UploadLinkType, bA as UploadRestriction, a6 as UploadType, a8 as UserAccountFlagType, bg as UserMembershipWithStripeInfoDto, bB as UserRestriction, dp as ValidFormComponentTypes, dn as ValidFormTypes, c2 as addDays, c1 as addMinutes, c3 as addMonths, c0 as addSeconds, cu as addSpacesForEnum, bP as addToParallelTasks, cw as anyObject, u as apiRoute, t as apiRouteParam, bN as arrayContains, bM as arrayOfNLength, cs as capitalizeFirstLetter, cD as colourPalette, g as createToken, cd as cyrb53, c6 as dateDiffInDays, ca as debounceLeading, cE as defaultSiteColour, d5 as emailValid, cx as fakePromise, bV as formatDate, cv as formatFileSize, b$ as formatForBookingDate, bX as formatForDateDropdown, bW as formatForDateLocal, b_ as formatForDateLocalDetailed, bY as formatForDateOfBirth, bZ as formatForDateWithTime, cB as getActiveUserMembership, c7 as getAgeInYears, a1 as getAllPetQuestionForType, cL as getAppType, cb as getArrFromEnum, cJ as getBotPath, cQ as getCommonConfig, bQ as getDayClassObject, bT as getDayElements, bR as getDayHeadingElements, cf as getImageParams, cR as getLog, ci as getMimeTypeFromExtension, cg as getPayloadFromJwt, ck as getPerformanceTimer, cn as getPetAvatarUrl, cP as getSiteColour, cO as getSiteConfig, cm as getUserAvatarUrl, bU as getUsersName, c8 as getWeekNumber, cl as hasRequiredPermissions, aa as hubspotQuestionsExport, c4 as isBefore, d6 as isNumber, c5 as isSameDay, i as isWebApp, ct as lowercaseFirstLetter, bK as makeArrayOrDefault, d4 as maxDate, cX as maxItems, db as maxLength, d8 as maxValue, ch as mimeTypeLookup, d3 as minDate, cW as minItems, da as minLength, e as minUrlLength, d7 as minValue, m as monthTranslationKeyOrder, d0 as multiValidation, cp as nameof, n as nanasFonts, c_ as noValidation, c$ as notNull, bL as onlyUnique, d9 as passwordValid, p as portalGlyphLength, co as promiseFromValue, cq as randomIntFromRange, cr as randomItemFromArray, cH as rootContainer, cS as rootDependencyInjectionSetup, bC as searchColumns, cY as selectedItemsExist, cZ as selectedOptionIsInEnum, d1 as separateValidation, cT as setContainerToken, cU as setContainerTokenLazy, cN as setSiteConfig, dc as shouldBeUrl, dd as shouldBeYoutubeUrl, c9 as showSecondCalendar, s as socialLinks, bO as timeout, cj as tryParseNumber, a7 as uploadsThatNeedEncryption, cA as urlRef, cc as uuidv4, v as validUuidChars, d2 as validateForEach, w as webAppTypes, c as weekdayTranslationKeyOrder } from '../textValidation-DmVC_l-P.js';
5
5
  import { ToasterProps } from 'solid-toast';
6
6
  import '@tolgee/web';
7
7
 
package/dist/web/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { notNull, minItems, multiValidation, minLength, maxLength, BookingRestriction, minDate, noValidation, isNumber, minValue, MembershipRestriction, maxValue, PetRestriction, selectedOptionIsInEnum, PetSexType, PetStatusType, PetType, QuestionRestriction, QuestionForType, QuestionType, UserRestriction, AddressRestriction, UploadType, UploadRestriction, UploadLinkType, rootContainer, uuidv4, anyObject, timeout, apiRoute, apiRouteParam, getSiteConfig, getLog, debounceLeading, rootDependencyInjectionSetup, TranslationService, setContainerToken, ActivityType, getAppType, BookingStatusType, MembershipType, MembershipStatus, MembershipBillingCycleType, socialLinks, getUsersName, getUserAvatarUrl, hubspotQuestionsExport, arrayOfNLength, UserType, getPayloadFromJwt, colourPalette, monthTranslationKeyOrder, changeMonth, getDayHeadingElements, getDayElements, getCalendarDropdownDisplayValue, makeArrayOrDefault, getArrFromEnum, capitalizeFirstLetter, convertToDate, isBefore, formatForDateOfBirth, onlyUnique, getDayClassObject, getPetAvatarUrl, formatForDateLocal, isDateAfterStart, isDateBeforeEnd, convertToFullDateSelection } from '../chunk/IDKCXMP4.js';
2
- export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder } from '../chunk/IDKCXMP4.js';
1
+ import { notNull, minItems, multiValidation, minLength, maxLength, BookingRestriction, minDate, noValidation, isNumber, minValue, MembershipRestriction, maxValue, PetRestriction, selectedOptionIsInEnum, PetSexType, PetStatusType, PetType, QuestionRestriction, QuestionForType, QuestionType, UserRestriction, emailValid, passwordValid, AddressRestriction, UploadType, UploadRestriction, UploadLinkType, rootContainer, uuidv4, anyObject, timeout, apiRoute, apiRouteParam, getSiteConfig, getLog, debounceLeading, rootDependencyInjectionSetup, TranslationService, setContainerToken, ActivityType, getAppType, BookingStatusType, MembershipType, MembershipStatus, MembershipBillingCycleType, socialLinks, getUsersName, getUserAvatarUrl, hubspotQuestionsExport, arrayOfNLength, UserType, getPayloadFromJwt, colourPalette, monthTranslationKeyOrder, changeMonth, getDayHeadingElements, getDayElements, getCalendarDropdownDisplayValue, makeArrayOrDefault, getArrFromEnum, capitalizeFirstLetter, convertToDate, isBefore, formatForDateOfBirth, onlyUnique, getDayClassObject, getPetAvatarUrl, formatForDateLocal, isDateAfterStart, isDateBeforeEnd, convertToFullDateSelection } from '../chunk/2JD4C7DJ.js';
2
+ export { APP_TYPE_TOKEN, ActivityRestriction, ActivityType, AddressLinkType, AddressRestriction, AnswerLinkType, AnswerRestriction, AppType, BOT_PATH_TOKEN, BookingAddonRestriction, BookingAddonType, BookingRestriction, BookingStatusType, BugReportRestriction, BugReportStatusType, CommentLinkType, CommentRestriction, CommonConfigService, DependencyInjectionContainer, DrivingRouteRestriction, InvoiceRestriction, InvoiceStatusType, LogService, MembershipBillingCycleType, MembershipRestriction, MembershipStatus, MembershipType, MouseButton, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetRestriction, PetSexType, PetStatusType, PetType, QuestionForType, QuestionRestriction, QuestionType, SITE_CONFIG_TOKEN, SearchableColumnType, StripeRestriction, TempLinkType, TranslationService, UnavailabilityRestriction, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserRestriction, UserType, addDays, addMinutes, addMonths, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiRoute, apiRouteParam, arrayContains, arrayOfNLength, capitalizeFirstLetter, changeMonth, colourPalette, convertToDate, convertToFullDateSelection, createToken, cyrb53, dateDiffInDays, debounceLeading, defaultSiteColour, emailValid, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getActiveUserMembership, getAgeInYears, getAllPetQuestionForType, getAppType, getArrFromEnum, getBotPath, getCalendarDropdownDisplayValue, getCalendarDropdownForDateOfBirthDisplayValue, getCommonConfig, getDayClassObject, getDayElements, getDayHeadingElements, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getPetAvatarUrl, getSiteColour, getSiteConfig, getUserAvatarUrl, getUsersName, getWeekNumber, hasRequiredPermissions, hubspotQuestionsExport, isBefore, isDateAfterStart, isDateBeforeEnd, isDateDisabledByDisabledDays, isDateEnabledByEnabledDays, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, maxValue, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, minValue, monthTranslationKeyOrder, multiValidation, nameof, nanasFonts, noValidation, notNull, onlyUnique, passwordValid, portalGlyphLength, promiseFromValue, randomIntFromRange, randomItemFromArray, rootContainer, rootDependencyInjectionSetup, searchColumns, selectedItemsExist, selectedOptionIsInEnum, separateValidation, setContainerToken, setContainerTokenLazy, setSiteConfig, shouldBeUrl, shouldBeYoutubeUrl, showSecondCalendar, socialLinks, timeout, tryParseNumber, uploadsThatNeedEncryption, urlRef, uuidv4, validUuidChars, validateForEach, webAppTypes, weekdayTranslationKeyOrder } from '../chunk/2JD4C7DJ.js';
3
3
  import { delegateEvents, createComponent, template, addEventListener, insert, effect, className, setAttribute, memo, mergeProps, spread, style, use } from 'solid-js/web';
4
4
  import { createSignal, Show, Switch, Match, For, createEffect, onMount, onCleanup, splitProps } from 'solid-js';
5
5
  import classNames2 from 'classnames';
@@ -87,7 +87,7 @@ var handleLogMessageError = (log) => {
87
87
 
88
88
  // src/services/api/baseApiService.ts
89
89
  var logSeparator = " - ";
90
- var messageArr = (parts) => parts.filter((p) => p?.length < 1).join(logSeparator);
90
+ var messageArr = (parts) => parts.filter((p) => (p?.length ?? 0) > 0).join(logSeparator);
91
91
  var BaseApiService = class {
92
92
  constructor(_baseUrl = "https://api.nanashome.club", config) {
93
93
  this._baseUrl = _baseUrl;
@@ -1650,8 +1650,6 @@ var WrapWhen = (props) => {
1650
1650
  }
1651
1651
  });
1652
1652
  };
1653
-
1654
- // src/components/common/breadcrumb/breadcrumb.tsx
1655
1653
  var _tmpl$8 = /* @__PURE__ */ template(`<div data-debug=Breadcrumb class="breadcrumb noselect">`);
1656
1654
  var _tmpl$23 = /* @__PURE__ */ template(`<div class=breadcrumb-title><a draggable=false>`);
1657
1655
  var _tmpl$33 = /* @__PURE__ */ template(`<li class=breadcrumb-divider><span>\u203A`);
@@ -2185,7 +2183,7 @@ var BugReportFab = (props) => {
2185
2183
  setLogsIsOpen(false);
2186
2184
  };
2187
2185
  const sendBugReport = async (e) => {
2188
- const logArray = getLog().logs.map((l) => JSON.stringify(l)).join(",\n");
2186
+ const logArray = getLog().logs.reverse().map((l) => JSON.stringify(l)).join(",\n");
2189
2187
  const currentDto = {
2190
2188
  comment: comment(),
2191
2189
  logs: `[${logArray}]`,
@@ -5416,12 +5414,7 @@ var UserDtoMeta = {
5416
5414
  keyName: "email_placeholder",
5417
5415
  defaultValue: "john.smith@email.com"
5418
5416
  }),
5419
- validator: multiValidation(
5420
- minLength(UserRestriction.email.minLength),
5421
- //
5422
- maxLength(UserRestriction.email.maxLength)
5423
- // TODO: Basic email validation
5424
- )
5417
+ validator: multiValidation(minLength(UserRestriction.email.minLength), emailValid, maxLength(UserRestriction.email.maxLength))
5425
5418
  },
5426
5419
  hubspotId: {
5427
5420
  label: () => createComponent(T, {
@@ -5504,7 +5497,11 @@ var UserCreateDtoMeta = {
5504
5497
  keyName: "password_placeholder",
5505
5498
  defaultValue: "\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF"
5506
5499
  }),
5507
- validator: multiValidation(minLength(UserRestriction.password.minLength), maxLength(UserRestriction.password.maxLength))
5500
+ validator: multiValidation(
5501
+ passwordValid,
5502
+ // also checks min length
5503
+ maxLength(UserRestriction.password.maxLength)
5504
+ )
5508
5505
  }
5509
5506
  };
5510
5507
 
@@ -6124,14 +6121,24 @@ var AddressUpdateDtoMeta = {
6124
6121
  var _tmpl$81 = /* @__PURE__ */ template(`<span>`);
6125
6122
  var AuthLoginDtoMeta = {
6126
6123
  email: UserDtoMeta.email,
6127
- password: UserCreateDtoMeta.password
6124
+ password: {
6125
+ ...UserCreateDtoMeta.password,
6126
+ validator: multiValidation(maxLength(UserRestriction.password.maxLength))
6127
+ }
6128
6128
  };
6129
6129
  var AuthSignupDtoMeta = {
6130
6130
  types: UserDtoMeta.types,
6131
6131
  firstName: UserDtoMeta.firstName,
6132
6132
  lastName: UserDtoMeta.lastName,
6133
6133
  email: UserDtoMeta.email,
6134
- password: UserCreateDtoMeta.password,
6134
+ password: {
6135
+ ...UserCreateDtoMeta.password,
6136
+ validator: multiValidation(
6137
+ passwordValid,
6138
+ // also checks min length
6139
+ maxLength(UserRestriction.password.maxLength)
6140
+ )
6141
+ },
6135
6142
  captchaToken: {
6136
6143
  label: () => _tmpl$81(),
6137
6144
  placeholder: () => _tmpl$81(),
@@ -72,6 +72,7 @@ var apiRouteParam = {
72
72
  bookingAddonUuid: ":bookingAddonUuid",
73
73
  userMembershipUuid: ":userMembershipUuid",
74
74
  bugReportUuid: ":bugReportUuid",
75
+ linkTypeUuid: ":linkTypeUuid",
75
76
  linkUuid: ":linkUuid",
76
77
  linkType: ":linkType",
77
78
  // Stripe
@@ -86,6 +87,7 @@ var apiRoute = {
86
87
  devJwt: "/jwt",
87
88
  login: "/login",
88
89
  signup: "/signup",
90
+ confirmEmail: `/confirm-email/${apiRouteParam.linkTypeUuid}`,
89
91
  swagger: { name: "Auth", description: "Endpoints for login, sign up etc" },
90
92
  token: {
91
93
  prefix: "/token",
@@ -319,7 +321,7 @@ var uuidv4 = () => {
319
321
 
320
322
  // src/services/api/baseApiService.ts
321
323
  var logSeparator = " - ";
322
- var messageArr = (parts) => parts.filter((p) => p?.length < 1).join(logSeparator);
324
+ var messageArr = (parts) => parts.filter((p) => (p?.length ?? 0) > 0).join(logSeparator);
323
325
  var BaseApiService = class {
324
326
  constructor(_baseUrl = "https://api.nanashome.club", config) {
325
327
  this._baseUrl = _baseUrl;
@@ -2101,9 +2103,6 @@ var getBookingStatusTypeLocalisationForAdmin = (type) => {
2101
2103
  }
2102
2104
  };
2103
2105
 
2104
- // src/components/common/breadcrumb/breadcrumb.tsx
2105
- import { For, Match as Match2, Show as Show4, Switch as Switch2 } from "solid-js";
2106
-
2107
2106
  // src/components/common/wrapWhen.tsx
2108
2107
  import { Show as Show3 } from "solid-js";
2109
2108
  var WrapWhen = (props) => {
@@ -2114,6 +2113,7 @@ var WrapWhen = (props) => {
2114
2113
  };
2115
2114
 
2116
2115
  // src/components/common/breadcrumb/breadcrumb.tsx
2116
+ import { For, Match as Match2, Show as Show4, Switch as Switch2 } from "solid-js";
2117
2117
  var Breadcrumb = (props) => {
2118
2118
  return <div data-debug="Breadcrumb" class="breadcrumb noselect">
2119
2119
  <For each={props.pageHierarchy}>
@@ -2484,14 +2484,14 @@ var hasOneOrMoreErrors = (validators) => {
2484
2484
  const errorMessages = [];
2485
2485
  for (const invalidResult of invalidResults) {
2486
2486
  if (invalidResult.errorMessageTransKey == null) continue;
2487
- const errorMessage = translate().t(
2487
+ const errorMessage2 = translate().t(
2488
2488
  invalidResult.errorMessageTransKey ?? "error",
2489
2489
  invalidResult.errorMessage ?? "error",
2490
2490
  {
2491
2491
  ...invalidResult.errorMessageParams
2492
2492
  }
2493
2493
  );
2494
- errorMessages.push(`${translateComponentToString(invalidResult.propName)} - ${errorMessage}`);
2494
+ errorMessages.push(`${translateComponentToString(invalidResult.propName)} - ${errorMessage2}`);
2495
2495
  }
2496
2496
  return errorMessages;
2497
2497
  }
@@ -2574,7 +2574,7 @@ var BugReportFab = (props) => {
2574
2574
  setLogsIsOpen(false);
2575
2575
  };
2576
2576
  const sendBugReport = async (e) => {
2577
- const logArray = getLog().logs.map((l) => JSON.stringify(l)).join(",\n");
2577
+ const logArray = getLog().logs.reverse().map((l) => JSON.stringify(l)).join(",\n");
2578
2578
  const currentDto = {
2579
2579
  comment: comment(),
2580
2580
  logs: `[${logArray}]`,
@@ -2713,9 +2713,9 @@ var ErrorBoundary = (props) => {
2713
2713
  try {
2714
2714
  return props.children;
2715
2715
  } catch (err) {
2716
- const errorMessage = err?.toString() ?? "Something went wrong";
2717
- getLog().getLogger("ErrorBoundary").e(`(${props.id}) - ${errorMessage}`);
2718
- setGlobalErrorDetails((prev) => [...prev, errorMessage]);
2716
+ const errorMessage2 = err?.toString() ?? "Something went wrong";
2717
+ getLog().getLogger("ErrorBoundary").e(`(${props.id}) - ${errorMessage2}`);
2718
+ setGlobalErrorDetails((prev) => [...prev, errorMessage2]);
2719
2719
  return props.fallback;
2720
2720
  }
2721
2721
  };
@@ -3548,6 +3548,7 @@ var PermissionType = /* @__PURE__ */ ((PermissionType2) => {
3548
3548
  PermissionType2[PermissionType2["UserDelete"] = 22] = "UserDelete";
3549
3549
  PermissionType2[PermissionType2["ActivitiesView"] = 30] = "ActivitiesView";
3550
3550
  PermissionType2[PermissionType2["StripeView"] = 31] = "StripeView";
3551
+ PermissionType2[PermissionType2["UserFlagManage"] = 32] = "UserFlagManage";
3551
3552
  PermissionType2[PermissionType2["UserPermissionView"] = 40] = "UserPermissionView";
3552
3553
  PermissionType2[PermissionType2["UserPermissionManage"] = 41] = "UserPermissionManage";
3553
3554
  PermissionType2[PermissionType2["UserPermissionDelete"] = 42] = "UserPermissionDelete";
@@ -4667,6 +4668,15 @@ var EnumTypeDropdown = (props) => {
4667
4668
  />;
4668
4669
  };
4669
4670
 
4671
+ // src/contracts/generated/restrictions/bookingRestriction.ts
4672
+ var BookingRestriction = {
4673
+ notes: { maxLength: 250 }
4674
+ };
4675
+ var BookingAddonRestriction = {
4676
+ notes: { maxLength: 250 },
4677
+ quantity: { min: 0, max: 1e3 }
4678
+ };
4679
+
4670
4680
  // src/helpers/enumHelper.ts
4671
4681
  var getArrFromEnum = (enumType, isNan = false) => {
4672
4682
  const result = Object.values(enumType).filter((dt) => isNaN(dt) == isNan);
@@ -4817,15 +4827,6 @@ var shouldBeYoutubeUrl = (value) => {
4817
4827
  };
4818
4828
  };
4819
4829
 
4820
- // src/contracts/generated/restrictions/bookingRestriction.ts
4821
- var BookingRestriction = {
4822
- notes: { maxLength: 250 }
4823
- };
4824
- var BookingAddonRestriction = {
4825
- notes: { maxLength: 250 },
4826
- quantity: { min: 0, max: 1e3 }
4827
- };
4828
-
4829
4830
  // src/contracts/meta/bookingDto.meta.tsx
4830
4831
  var BookingCreateDtoMeta = {
4831
4832
  status: {
@@ -5039,6 +5040,22 @@ var MembershipStatusDropdown = (props) => {
5039
5040
  />;
5040
5041
  };
5041
5042
 
5043
+ // src/contracts/generated/restrictions/membershipRestriction.ts
5044
+ var MembershipRestriction = {
5045
+ monthlyFee: { minValue: 0, maxValue: 1e3 },
5046
+ yearlyFee: { minValue: 0, maxValue: 1e3 },
5047
+ perNightStay: { minValue: 0, maxValue: 1e3 },
5048
+ additionalPetPerNightStay: { minValue: 0, maxValue: 1e3 },
5049
+ transportFee: { minValue: 0, maxValue: 1e3 },
5050
+ perKm: { minValue: 0, maxValue: 1e3 },
5051
+ matchFee: { minValue: 0, maxValue: 1e3 },
5052
+ freeCancellationWithinDays: { minValue: 0, maxValue: 1e3 },
5053
+ bookingAdvanceDays: { minValue: 0, maxValue: 1e3 },
5054
+ bookingCalenderMonthsOpenInAdvance: { minValue: 0, maxValue: 1e3 },
5055
+ stripeMonthlyProductId: { minLength: 3, maxLength: 80 },
5056
+ stripeYearlyProductId: { minLength: 0, maxLength: 80 }
5057
+ };
5058
+
5042
5059
  // src/validation/numberValidation.ts
5043
5060
  var isNumber = (value) => {
5044
5061
  if (value != null) {
@@ -5075,22 +5092,6 @@ var maxValue = (max) => (value) => {
5075
5092
  };
5076
5093
  };
5077
5094
 
5078
- // src/contracts/generated/restrictions/membershipRestriction.ts
5079
- var MembershipRestriction = {
5080
- monthlyFee: { minValue: 0, maxValue: 1e3 },
5081
- yearlyFee: { minValue: 0, maxValue: 1e3 },
5082
- perNightStay: { minValue: 0, maxValue: 1e3 },
5083
- additionalPetPerNightStay: { minValue: 0, maxValue: 1e3 },
5084
- transportFee: { minValue: 0, maxValue: 1e3 },
5085
- perKm: { minValue: 0, maxValue: 1e3 },
5086
- matchFee: { minValue: 0, maxValue: 1e3 },
5087
- freeCancellationWithinDays: { minValue: 0, maxValue: 1e3 },
5088
- bookingAdvanceDays: { minValue: 0, maxValue: 1e3 },
5089
- bookingCalenderMonthsOpenInAdvance: { minValue: 0, maxValue: 1e3 },
5090
- stripeMonthlyProductId: { minLength: 3, maxLength: 80 },
5091
- stripeYearlyProductId: { minLength: 0, maxLength: 80 }
5092
- };
5093
-
5094
5095
  // src/contracts/meta/membershipDto.meta.tsx
5095
5096
  var MembershipCreateDtoMeta = {
5096
5097
  type: {
@@ -5533,6 +5534,53 @@ var UserRestriction = {
5533
5534
  flags: { maxLength: 150 }
5534
5535
  };
5535
5536
 
5537
+ // src/validation/emailValidation.ts
5538
+ var emailValid = (value) => {
5539
+ if (value.includes("@") == false) {
5540
+ return {
5541
+ isValid: false,
5542
+ errorMessageTransKey: "email_at_sign_validator",
5543
+ errorMessage: `Email should have an @ sign`
5544
+ };
5545
+ }
5546
+ const segments = value.split("@");
5547
+ if (segments.length > 2) {
5548
+ return {
5549
+ isValid: false,
5550
+ errorMessageTransKey: "email_too_many_at_signs_validator",
5551
+ errorMessage: `Email contains too many @ signs`
5552
+ };
5553
+ }
5554
+ if ((segments[1] ?? "").includes(".") == false) {
5555
+ return {
5556
+ isValid: false,
5557
+ errorMessageTransKey: "email_should_have_a_period_after_at_sign_validator",
5558
+ errorMessage: `Email is not valid`
5559
+ };
5560
+ }
5561
+ return { isValid: true };
5562
+ };
5563
+
5564
+ // src/validation/passwordValidation.ts
5565
+ var specialChars = "<>@!#$%^&*()_+[]{}?:;|'\"\\,./~`-=";
5566
+ var capitalizeAlphabet2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
5567
+ var errorMessage = `Password should be minimum of 8 characters, with an uppercase letter, at least 1 number and 1 special character`;
5568
+ var passwordValid = (value) => {
5569
+ const passwordCharArr = value.split("");
5570
+ const defaultValidation = { isValid: false, errorMessage };
5571
+ if (value.length < UserRestriction.password.minLength)
5572
+ return { ...defaultValidation, errorMessageTransKey: "password_too_short_validator" };
5573
+ const hasNumber = passwordCharArr.filter((c) => isNaN(Number(c)) == false).length > 0;
5574
+ if (hasNumber == false) return { ...defaultValidation, errorMessageTransKey: "password_missing_number_validator" };
5575
+ const hasSpecialChar = arrayContains(passwordCharArr, specialChars.split(""), "OR");
5576
+ if (hasSpecialChar == false)
5577
+ return { ...defaultValidation, errorMessageTransKey: "password_missing_special_char_validator" };
5578
+ const hasUppercase = arrayContains(passwordCharArr, capitalizeAlphabet2.split(""), "OR");
5579
+ if (hasUppercase == false)
5580
+ return { ...defaultValidation, errorMessageTransKey: "password_missing_uppercase_validator" };
5581
+ return { isValid: true };
5582
+ };
5583
+
5536
5584
  // src/contracts/meta/userDto.meta.tsx
5537
5585
  var UserDtoMeta = {
5538
5586
  uuid: {
@@ -5571,9 +5619,8 @@ var UserDtoMeta = {
5571
5619
  placeholder: () => <T keyName="email_placeholder" defaultValue="john.smith@email.com" />,
5572
5620
  validator: multiValidation(
5573
5621
  minLength(UserRestriction.email.minLength),
5574
- //
5622
+ emailValid,
5575
5623
  maxLength(UserRestriction.email.maxLength)
5576
- // TODO: Basic email validation
5577
5624
  )
5578
5625
  },
5579
5626
  hubspotId: {
@@ -5616,7 +5663,8 @@ var UserCreateDtoMeta = {
5616
5663
  label: () => <T keyName="password_label" defaultValue="Password" />,
5617
5664
  placeholder: () => <T keyName="password_placeholder" defaultValue="●●●●●●●●●●" />,
5618
5665
  validator: multiValidation(
5619
- minLength(UserRestriction.password.minLength),
5666
+ passwordValid,
5667
+ // also checks min length
5620
5668
  maxLength(UserRestriction.password.maxLength)
5621
5669
  )
5622
5670
  }
@@ -6065,6 +6113,8 @@ var uploadsThatNeedEncryption = [];
6065
6113
  var UserAccountFlagType = /* @__PURE__ */ ((UserAccountFlagType2) => {
6066
6114
  UserAccountFlagType2[UserAccountFlagType2["Unknown"] = 0] = "Unknown";
6067
6115
  UserAccountFlagType2[UserAccountFlagType2["ChangePassword"] = 1] = "ChangePassword";
6116
+ UserAccountFlagType2[UserAccountFlagType2["EmailNotVerified"] = 2] = "EmailNotVerified";
6117
+ UserAccountFlagType2[UserAccountFlagType2["AccountDisabled"] = 3] = "AccountDisabled";
6068
6118
  return UserAccountFlagType2;
6069
6119
  })(UserAccountFlagType || {});
6070
6120
 
@@ -6093,7 +6143,7 @@ var AnswerRestriction = {
6093
6143
  var BugReportRestriction = {
6094
6144
  comment: { maxLength: 1e3 },
6095
6145
  metadata: { maxLength: 1e3 },
6096
- logs: { maxLength: 5e3 }
6146
+ logs: { maxLength: 5e4 }
6097
6147
  };
6098
6148
 
6099
6149
  // src/contracts/generated/restrictions/commentRestriction.ts
@@ -6244,14 +6294,24 @@ var AddressUpdateDtoMeta = {
6244
6294
  // src/contracts/meta/authDto.meta.tsx
6245
6295
  var AuthLoginDtoMeta = {
6246
6296
  email: UserDtoMeta.email,
6247
- password: UserCreateDtoMeta.password
6297
+ password: {
6298
+ ...UserCreateDtoMeta.password,
6299
+ validator: multiValidation(maxLength(UserRestriction.password.maxLength))
6300
+ }
6248
6301
  };
6249
6302
  var AuthSignupDtoMeta = {
6250
6303
  types: UserDtoMeta.types,
6251
6304
  firstName: UserDtoMeta.firstName,
6252
6305
  lastName: UserDtoMeta.lastName,
6253
6306
  email: UserDtoMeta.email,
6254
- password: UserCreateDtoMeta.password,
6307
+ password: {
6308
+ ...UserCreateDtoMeta.password,
6309
+ validator: multiValidation(
6310
+ passwordValid,
6311
+ // also checks min length
6312
+ maxLength(UserRestriction.password.maxLength)
6313
+ )
6314
+ },
6255
6315
  captchaToken: {
6256
6316
  label: () => <span />,
6257
6317
  placeholder: () => <span />,
@@ -6684,6 +6744,7 @@ export {
6684
6744
  displayQuestionForTypeBadge,
6685
6745
  displayQuestionTypeBadge,
6686
6746
  displayUserTypeBadge,
6747
+ emailValid,
6687
6748
  fakePromise,
6688
6749
  formDataWithAccessTokenHeaders,
6689
6750
  formatDate,
@@ -6797,6 +6858,7 @@ export {
6797
6858
  onTargetFiles,
6798
6859
  onTargetValue,
6799
6860
  onlyUnique,
6861
+ passwordValid,
6800
6862
  portalGlyphLength,
6801
6863
  preventDefault,
6802
6864
  profileEventSignal,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanas-home/hub-common",
3
- "version": "0.46.1024",
3
+ "version": "0.47.1035",
4
4
  "description": "Nana's Hub common library",
5
5
  "license": "MIT",
6
6
  "author": "Kurt Lourens",
@@ -21,8 +21,8 @@
21
21
  "test:coverage-badge": "bun ./scripts/generateCoverageBadge.js"
22
22
  },
23
23
  "dependencies": {
24
- "@tolgee/format-icu": "^7.0.0",
25
- "@tolgee/web": "^7.0.0",
24
+ "@tolgee/format-icu": "^7.0.1",
25
+ "@tolgee/web": "^7.0.1",
26
26
  "classnames": "^2.5.1",
27
27
  "dayjs": "^1.11.20",
28
28
  "favicons": "^7.2.0",
@@ -33,11 +33,11 @@
33
33
  "devDependencies": {
34
34
  "@chromatic-com/storybook": "^5.2.1",
35
35
  "@hcaptcha/types": "^1.2.0",
36
- "@storybook/addon-a11y": "^10.4.0",
37
- "@storybook/addon-docs": "^10.4.0",
38
- "@storybook/addon-links": "^10.4.0",
39
- "@storybook/addon-onboarding": "^10.4.0",
40
- "@storybook/addon-vitest": "^10.4.0",
36
+ "@storybook/addon-a11y": "^10.4.1",
37
+ "@storybook/addon-docs": "^10.4.1",
38
+ "@storybook/addon-links": "^10.4.1",
39
+ "@storybook/addon-onboarding": "^10.4.1",
40
+ "@storybook/addon-vitest": "^10.4.1",
41
41
  "@types/node": "^25.9.1",
42
42
  "@typescript-eslint/eslint-plugin": "^8.59.4",
43
43
  "@typescript-eslint/parser": "^8.59.4",
@@ -50,13 +50,13 @@
50
50
  "jsdom": "^29.1.1",
51
51
  "node-html-parser": "^7.1.0",
52
52
  "npm-run-all": "^4.1.5",
53
- "sass": "^1.99.0",
54
- "storybook": "^10.4.0",
55
- "storybook-solidjs-vite": "^10.0.12",
53
+ "sass": "^1.100.0",
54
+ "storybook": "^10.4.1",
55
+ "storybook-solidjs-vite": "^10.1.0",
56
56
  "tsup": "^8.5.1",
57
57
  "tsup-preset-solid": "^2.2.0",
58
58
  "typescript": "^6.0.3",
59
- "vite": "^8.0.13",
59
+ "vite": "^8.0.14",
60
60
  "vite-plugin-solid": "^2.11.12",
61
61
  "vitest": "^4.1.7"
62
62
  },