@nanas-home/hub-common 0.3.214 → 0.4.227

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.
@@ -992,6 +992,13 @@ var UserCreateDtoMeta = {
992
992
  }
993
993
  };
994
994
 
995
+ // src/contracts/meta/profileDto.meta.ts
996
+ var ProfileUpdateDtoMeta = {
997
+ firstName: UserDtoMeta.firstName,
998
+ lastName: UserDtoMeta.lastName,
999
+ email: UserDtoMeta.email
1000
+ };
1001
+
995
1002
  // src/contracts/meta/authDto.meta.ts
996
1003
  var AuthLoginDtoMeta = {
997
1004
  email: {
@@ -1190,6 +1197,163 @@ var stopPropagation = (event) => {
1190
1197
  return event;
1191
1198
  };
1192
1199
 
1200
+ // src/assets/meta.json
1201
+ var meta_default = {
1202
+ packageVersion: "0.4.0",
1203
+ date: "2025-07-10",
1204
+ gitCommitHash: "1a3cbc9b6d4c7c623fa393163064d6db57025215"
1205
+ };
1206
+
1207
+ // src/assets/packagesUsed.json
1208
+ var packagesUsed_default = {
1209
+ generatedDate: "2025-07-10T16:06:41.279Z",
1210
+ generatedDateFormat: "2025-07-10",
1211
+ list: [
1212
+ {
1213
+ name: "@chromatic-com/storybook",
1214
+ version: "4.0.1",
1215
+ licenseType: "MIT",
1216
+ repoUrl: "https://github.com/chromaui/addon-visual-tests.git",
1217
+ licenceUrl: "https://github.com/chromaui/addon-visual-tests/blob/master/LICENSE"
1218
+ },
1219
+ {
1220
+ name: "@kachurun/storybook-solid-vite",
1221
+ version: "9.0.11",
1222
+ licenseType: "MIT",
1223
+ repoUrl: "https://github.com/solidjs-community/storybook.git",
1224
+ licenceUrl: "https://github.com/solidjs-community/storybook/blob/master/LICENSE"
1225
+ },
1226
+ {
1227
+ name: "@storybook/addon-a11y",
1228
+ version: "9.0.16",
1229
+ licenseType: "MIT",
1230
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1231
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1232
+ },
1233
+ {
1234
+ name: "@storybook/addon-docs",
1235
+ version: "9.0.16",
1236
+ licenseType: "MIT",
1237
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1238
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1239
+ },
1240
+ {
1241
+ name: "@storybook/addon-links",
1242
+ version: "9.0.16",
1243
+ licenseType: "MIT",
1244
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1245
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1246
+ },
1247
+ {
1248
+ name: "@storybook/addon-onboarding",
1249
+ version: "9.0.16",
1250
+ licenseType: "MIT",
1251
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1252
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1253
+ },
1254
+ {
1255
+ name: "@storybook/addon-vitest",
1256
+ version: "9.0.16",
1257
+ licenseType: "MIT",
1258
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1259
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1260
+ },
1261
+ {
1262
+ name: "@types/node",
1263
+ version: "24.0.12",
1264
+ licenseType: "MIT",
1265
+ repoUrl: "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
1266
+ licenceUrl: "https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE"
1267
+ },
1268
+ {
1269
+ name: "@vitest/browser",
1270
+ version: "3.2.4",
1271
+ licenseType: "MIT",
1272
+ repoUrl: "https://github.com/vitest-dev/vitest.git",
1273
+ licenceUrl: "https://github.com/vitest-dev/vitest/blob/master/LICENSE"
1274
+ },
1275
+ {
1276
+ name: "@vitest/coverage-v8",
1277
+ version: "3.2.4",
1278
+ licenseType: "MIT",
1279
+ repoUrl: "https://github.com/vitest-dev/vitest.git",
1280
+ licenceUrl: "https://github.com/vitest-dev/vitest/blob/master/LICENSE"
1281
+ },
1282
+ {
1283
+ name: "@vitest/ui",
1284
+ version: "3.2.4",
1285
+ licenseType: "MIT",
1286
+ repoUrl: "https://github.com/vitest-dev/vitest.git",
1287
+ licenceUrl: "https://github.com/vitest-dev/vitest/blob/master/LICENSE"
1288
+ },
1289
+ {
1290
+ name: "dotenv-cli",
1291
+ version: "8.0.0",
1292
+ licenseType: "MIT"
1293
+ },
1294
+ {
1295
+ name: "sass",
1296
+ version: "1.89.2",
1297
+ licenseType: "MIT",
1298
+ repoUrl: "https://github.com/sass/dart-sass",
1299
+ licenceUrl: "https://github.com/sass/dart-sass/blob/master/LICENSE"
1300
+ },
1301
+ {
1302
+ name: "storybook",
1303
+ version: "9.0.16",
1304
+ licenseType: "MIT",
1305
+ repoUrl: "https://github.com/storybookjs/storybook.git",
1306
+ licenceUrl: "https://github.com/storybookjs/storybook/blob/master/LICENSE.md"
1307
+ },
1308
+ {
1309
+ name: "tsup",
1310
+ version: "8.5.0",
1311
+ licenseType: "MIT",
1312
+ repoUrl: "https://github.com/egoist/tsup.git",
1313
+ licenceUrl: "https://github.com/egoist/tsup/blob/master/LICENSE"
1314
+ },
1315
+ {
1316
+ name: "tsup-preset-solid",
1317
+ version: "2.2.0",
1318
+ licenseType: "MIT",
1319
+ repoUrl: "https://github.com/solidjs-community/tsup-preset-solid.git",
1320
+ licenceUrl: "https://github.com/solidjs-community/tsup-preset-solid/blob/master/LICENSE"
1321
+ },
1322
+ {
1323
+ name: "typescript",
1324
+ version: "5.8.3",
1325
+ licenseType: "Apache-2.0",
1326
+ repoUrl: "https://github.com/microsoft/TypeScript.git",
1327
+ licenceUrl: "https://github.com/microsoft/TypeScript/blob/master/LICENSE.md"
1328
+ },
1329
+ {
1330
+ name: "vite",
1331
+ version: "7.0.4",
1332
+ licenseType: "MIT",
1333
+ repoUrl: "https://github.com/vitejs/vite.git",
1334
+ licenceUrl: "https://github.com/vitejs/vite/blob/master/LICENSE.md"
1335
+ },
1336
+ {
1337
+ name: "vite-plugin-solid",
1338
+ version: "2.11.7",
1339
+ licenseType: "MIT",
1340
+ repoUrl: "https://github.com/solidjs/vite-plugin-solid.git",
1341
+ licenceUrl: "https://github.com/solidjs/vite-plugin-solid/blob/master/LICENSE.md"
1342
+ },
1343
+ {
1344
+ name: "vitest",
1345
+ version: "3.2.4",
1346
+ licenseType: "MIT",
1347
+ repoUrl: "https://github.com/vitest-dev/vitest.git",
1348
+ licenceUrl: "https://github.com/vitest-dev/vitest/blob/master/LICENSE.md"
1349
+ }
1350
+ ]
1351
+ };
1352
+
1353
+ // src/helpers/metaHelper.ts
1354
+ var getMeta = () => meta_default;
1355
+ var getPackagesUsed = () => packagesUsed_default;
1356
+
1193
1357
  // src/helpers/randomHelper.ts
1194
1358
  var randomIntFromRange = (min, max) => {
1195
1359
  return Math.floor(Math.random() * (max - min) + min);
@@ -1235,6 +1399,24 @@ var cyrb53 = (input, seed = 0) => {
1235
1399
  var anyObject = () => ({});
1236
1400
  var fakePromise = () => new Promise((res) => res({}));
1237
1401
 
1402
+ // src/helpers/debounceHelper.ts
1403
+ var debounceLeading = (func, wait = 300, immediate) => {
1404
+ let timeout2;
1405
+ const funcToReturn = function() {
1406
+ let context = this;
1407
+ let args = arguments;
1408
+ let later = function() {
1409
+ timeout2 = null;
1410
+ if (!immediate) func.apply(context, args);
1411
+ };
1412
+ let callNow = immediate && !timeout2;
1413
+ clearTimeout(timeout2);
1414
+ timeout2 = setTimeout(later, wait);
1415
+ if (callNow) func.apply(context, args);
1416
+ };
1417
+ return funcToReturn;
1418
+ };
1419
+
1238
1420
  // src/helpers/stringHelper.ts
1239
1421
  var capitalizeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
1240
1422
  var capitalizeFirstLetter = (orig) => {
@@ -1321,6 +1503,88 @@ var getPayloadFromJwt = (token) => {
1321
1503
  };
1322
1504
  }
1323
1505
  };
1506
+
1507
+ // src/helpers/commonHelper.ts
1508
+ var getUsersName = (details) => `${details?.firstName} ${details?.lastName}`;
1509
+
1510
+ // src/constants/localStorageKeys.ts
1511
+ var LocalStorageKeys = {
1512
+ nanaHubProfile: 10
1513
+ };
1514
+ var LocalStorageService = class {
1515
+ _logger;
1516
+ constructor(log) {
1517
+ this._logger = log.getLogger("LocalStorageService");
1518
+ }
1519
+ get = (key) => {
1520
+ const dataStr = localStorage.getItem(key);
1521
+ if (dataStr == null) return null;
1522
+ try {
1523
+ const obj = JSON.parse(dataStr || "{}");
1524
+ return obj;
1525
+ } catch (err) {
1526
+ this._logger.e("get", err);
1527
+ return null;
1528
+ }
1529
+ };
1530
+ set = (key, value) => {
1531
+ try {
1532
+ const valueStr = JSON.stringify(value);
1533
+ localStorage.setItem(key, valueStr);
1534
+ } catch (err) {
1535
+ this._logger.e("set", err);
1536
+ }
1537
+ };
1538
+ removeAllTrackedKeys = (allKeys) => {
1539
+ for (const key in Object.keys(LocalStorageKeys)) {
1540
+ localStorage.removeItem(key);
1541
+ }
1542
+ for (const key in localStorage) {
1543
+ if (allKeys.includes(key)) {
1544
+ localStorage.removeItem(key);
1545
+ }
1546
+ }
1547
+ };
1548
+ };
1549
+ LocalStorageService = __decorateClass([
1550
+ Service({ scope: "singleton" }, [LogService])
1551
+ ], LocalStorageService);
1552
+ var getLocalStorage = () => Container.get(LocalStorageService);
1553
+ var CommonStateService = class {
1554
+ _localStorageKey = "nanas-home-common";
1555
+ _internalState = {
1556
+ language: "en",
1557
+ theme: "dark",
1558
+ isSideBarOpen: true,
1559
+ auth: void 0
1560
+ };
1561
+ constructor(local) {
1562
+ const localInitialState = local.get(this._localStorageKey);
1563
+ if (localInitialState != null) {
1564
+ this._internalState = {
1565
+ ...localInitialState
1566
+ };
1567
+ }
1568
+ }
1569
+ saveToLocalStorage = debounceLeading((newState) => {
1570
+ getLocalStorage().set(this._localStorageKey, newState);
1571
+ }, 250);
1572
+ getStateProp = (propName) => this._internalState?.[propName];
1573
+ setStateProp(prop) {
1574
+ this._internalState = {
1575
+ ...this._internalState,
1576
+ [prop.name]: prop.value
1577
+ };
1578
+ this.saveToLocalStorage(this._internalState);
1579
+ }
1580
+ getPermissions = () => this._internalState.auth?.permissions ?? [];
1581
+ getIsSidebarOpen = () => this._internalState?.isSideBarOpen ?? true;
1582
+ getTheme = () => this._internalState.theme;
1583
+ };
1584
+ CommonStateService = __decorateClass([
1585
+ Service([LocalStorageService])
1586
+ ], CommonStateService);
1587
+ var getCommonStateService = () => Container.get(CommonStateService);
1324
1588
  var DocumentService = class {
1325
1589
  constructor(_config, _siteConfig) {
1326
1590
  this._config = _config;
@@ -1442,6 +1706,20 @@ var BaseApiService = class {
1442
1706
  value: resultValue
1443
1707
  };
1444
1708
  }
1709
+ async cachedRequest(props) {
1710
+ const now = /* @__PURE__ */ new Date();
1711
+ const cached = getLocalStorage().get(props.localKey);
1712
+ if (cached != null && cached.expire > now) {
1713
+ return { isSuccess: true, value: cached.value };
1714
+ }
1715
+ const response = await props.request();
1716
+ if (response.isSuccess) {
1717
+ const min = props.cachedTimeInMin ?? 10;
1718
+ const add = { value: response.value, expire: new Date(now.getTime() + min * 6e4) };
1719
+ getLocalStorage().set(props.localKey, add);
1720
+ }
1721
+ return response;
1722
+ }
1445
1723
  async post(url, data, manipulateHeaders, customMapper) {
1446
1724
  let options = anyObject();
1447
1725
  if (manipulateHeaders != null) {
@@ -1572,6 +1850,89 @@ ${errorJson.message}`
1572
1850
  }
1573
1851
  }
1574
1852
  };
1853
+
1854
+ // src/services/api/baseCrudService.ts
1855
+ var BaseCrudService = class extends BaseApiService {
1856
+ constructor(_prefix, logger, config) {
1857
+ const apiUrl = config.getHubApiUrl();
1858
+ super(apiUrl, logger);
1859
+ this._prefix = _prefix;
1860
+ }
1861
+ create = (item) => this.post(this._prefix, item, addAccessTokenToHeaders);
1862
+ read = (uuid) => this.get(`${this._prefix}/${uuid}`, addAccessTokenToHeaders);
1863
+ readPage(pagination) {
1864
+ return this.get(`${this._prefix}?${getPaginationQueryParams(pagination)}`, addAccessTokenToHeaders);
1865
+ }
1866
+ search(pagination, searchObj) {
1867
+ return this.post(
1868
+ `${this._prefix}/search?${getPaginationQueryParams(pagination)}`,
1869
+ searchObj,
1870
+ addAccessTokenToHeaders
1871
+ );
1872
+ }
1873
+ update = (item) => this.put(`${this._prefix}/${item.uuid}`, item, addAccessTokenToHeaders);
1874
+ del = (item) => this.delete(`${this._prefix}/${item.uuid}`, addAccessTokenToHeaders);
1875
+ };
1876
+ var addAccessTokenToHeaders = () => {
1877
+ const authObj = getCommonStateService().getStateProp("auth");
1878
+ return { authorization: `Bearer ${authObj?.auth}` };
1879
+ };
1880
+ var formDataWithAccessTokenHeaders = () => {
1881
+ const onlyAccessToken = addAccessTokenToHeaders();
1882
+ return {
1883
+ ...onlyAccessToken,
1884
+ headers: {
1885
+ ...onlyAccessToken,
1886
+ "Content-Type": "multipart/form-data"
1887
+ }
1888
+ };
1889
+ };
1890
+ var getPaginationQueryParams = (pagination) => {
1891
+ const searchProps = [
1892
+ `page=${pagination.page}`,
1893
+ `pageSize=${pagination.pageSize}`,
1894
+ `orderColumnName=${pagination.orderColumnName ?? ""}`,
1895
+ `orderDirection=${pagination.orderDirection ?? ""}`
1896
+ ];
1897
+ return `${searchProps.join("&")}`;
1898
+ };
1899
+ var UserApiService = class extends BaseCrudService {
1900
+ constructor(log, config) {
1901
+ super(
1902
+ apiRoute.routes.user.prefix,
1903
+ //
1904
+ log.getLogger("UserApiService"),
1905
+ config
1906
+ );
1907
+ }
1908
+ };
1909
+ UserApiService = __decorateClass([
1910
+ Service([LogService, CommonConfigService])
1911
+ ], UserApiService);
1912
+ var getUserApiService = () => Container.get(UserApiService);
1913
+ var ProfileApiService = class extends BaseApiService {
1914
+ prefix = apiRoute.routes.user.prefix;
1915
+ constructor(log, config) {
1916
+ const apiUrl = config.getHubApiUrl();
1917
+ super(apiUrl, log.getLogger("ProfileApiService"));
1918
+ }
1919
+ load = () => this.get(`${this.prefix}${apiRoute.routes.user.profile.prefix}`, addAccessTokenToHeaders);
1920
+ // this.cachedRequest({
1921
+ // localKey: 'nanaHubProfile',
1922
+ // cachedTimeInMin: 10,
1923
+ // request: () => this.get(`${this.prefix}${apiRoute.routes.user.profile.prefix}`, addAccessTokenToHeaders),
1924
+ // });
1925
+ update = (profile) => this.post(`${this.prefix}${apiRoute.routes.user.profile.prefix}`, profile, addAccessTokenToHeaders);
1926
+ getQuestionsAndAnswers = (payload) => async () => this.post(
1927
+ `${this.prefix}${apiRoute.routes.user.profile.answers}`,
1928
+ payload,
1929
+ addAccessTokenToHeaders
1930
+ );
1931
+ };
1932
+ ProfileApiService = __decorateClass([
1933
+ Service([LogService, CommonConfigService, CommonStateService])
1934
+ ], ProfileApiService);
1935
+ var getProfileApiService = () => Container.get(ProfileApiService);
1575
1936
  var AuthApiService = class extends BaseApiService {
1576
1937
  prefix = apiRoute.routes.auth.prefix;
1577
1938
  constructor(log, config) {
@@ -1687,4 +2048,4 @@ var validUuidChars = [
1687
2048
  "F"
1688
2049
  ];
1689
2050
 
1690
- export { APP_TYPE, ActivityRestriction, ActivityType, AddressCreateDtoMeta, AddressRestriction, AnswerRestriction, AppType, AuthApiService, AuthLoginDtoMeta, AuthSignupDtoMeta, BOT_PATH, BaseApiService, BookingAddonRestriction, BookingAddonType, BookingCreateDtoMeta, BookingRestriction, BookingStatusType, CaptchaService, CommentRestriction, CommonConfigService, DocumentService, DrivingRouteRestriction, LogService, MembershipRestriction, MembershipStatus, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetCreateDtoMeta, PetRestriction, PetSexType, PetStatusType, PetType, QuestionCreateDtoMeta, QuestionForType, QuestionRestriction, QuestionType, SiteConfigService, UnavailabilityRestriction, UploadCreateDtoMeta, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserCreateDtoMeta, UserDtoMeta, UserRestriction, UserType, __decorateClass, addDays, addMinutes, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiParams, apiRoute, arrayContains, arrayOfNLength, capitalizeFirstLetter, cyrb53, dateDiffInDays, fakePromise, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getAgeInYears, getAppType, getArrFromEnum, getAuthApiService, getBotPath, getCaptchaService, getCommonConfig, getDefaultDtoMeta, getDocumentServ, getImageParams, getLog, getMimeTypeFromExtension, getPayloadFromJwt, getPerformanceTimer, getSiteConfig, getWeekNumber, isBefore, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, multiValidation, nameof, noValidation, notNull, onTargetFiles, onTargetValue, onlyUnique, portalGlyphLength, preventDefault, randomIntFromRange, randomItemFromArray, selectedItemsExist, separateValidation, setContainerToken, shouldBeUrl, shouldBeYoutubeUrl, stopPropagation, timeout, uploadsThatNeedEncryption, uuidv4, validUuidChars, validateForEach, webAppTypes };
2051
+ export { APP_TYPE, ActivityRestriction, ActivityType, AddressCreateDtoMeta, AddressRestriction, AnswerRestriction, AppType, AuthApiService, AuthLoginDtoMeta, AuthSignupDtoMeta, BOT_PATH, BaseApiService, BaseCrudService, BookingAddonRestriction, BookingAddonType, BookingCreateDtoMeta, BookingRestriction, BookingStatusType, CaptchaService, CommentRestriction, CommonConfigService, CommonStateService, DocumentService, DrivingRouteRestriction, LocalStorageKeys, LocalStorageService, LogService, MembershipRestriction, MembershipStatus, NetworkState, OrderDirectionType, PermissionRestriction, PermissionType, PetCreateDtoMeta, PetRestriction, PetSexType, PetStatusType, PetType, ProfileApiService, ProfileUpdateDtoMeta, QuestionCreateDtoMeta, QuestionForType, QuestionRestriction, QuestionType, SiteConfigService, UnavailabilityRestriction, UploadCreateDtoMeta, UploadLinkType, UploadRestriction, UploadType, UserAccountFlagType, UserApiService, UserCreateDtoMeta, UserDtoMeta, UserRestriction, UserType, __decorateClass, addAccessTokenToHeaders, addDays, addMinutes, addSeconds, addSpacesForEnum, addToParallelTasks, anyObject, apiParams, apiRoute, arrayContains, arrayOfNLength, capitalizeFirstLetter, cyrb53, dateDiffInDays, debounceLeading, fakePromise, formDataWithAccessTokenHeaders, formatDate, formatFileSize, formatForBookingDate, formatForDateDropdown, formatForDateLocal, formatForDateLocalDetailed, formatForDateOfBirth, formatForDateWithTime, getAgeInYears, getAppType, getArrFromEnum, getAuthApiService, getBotPath, getCaptchaService, getCommonConfig, getCommonStateService, getDefaultDtoMeta, getDocumentServ, getImageParams, getLocalStorage, getLog, getMeta, getMimeTypeFromExtension, getPackagesUsed, getPaginationQueryParams, getPayloadFromJwt, getPerformanceTimer, getProfileApiService, getSiteConfig, getUserApiService, getUsersName, getWeekNumber, isBefore, isNumber, isSameDay, isWebApp, lowercaseFirstLetter, makeArrayOrDefault, maxDate, maxItems, maxLength, mimeTypeLookup, minDate, minItems, minLength, minUrlLength, multiValidation, nameof, noValidation, notNull, onTargetFiles, onTargetValue, onlyUnique, portalGlyphLength, preventDefault, randomIntFromRange, randomItemFromArray, selectedItemsExist, separateValidation, setContainerToken, shouldBeUrl, shouldBeYoutubeUrl, stopPropagation, timeout, uploadsThatNeedEncryption, uuidv4, validUuidChars, validateForEach, webAppTypes };