UNPKG

@bit-ui-libs/common

Version:
1,292 lines (1,251 loc) 116 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // src/index.ts var src_exports = {}; __export(src_exports, { APP_ID: () => APP_ID, ASSET_STATUSES: () => ASSET_STATUSES, ASSET_STEPS: () => ASSET_STEPS, ActionType: () => ActionType, AddressService: () => AddressService, AddressTypeEnum: () => AddressTypeEnum, AssetLevelEnum: () => AssetLevelEnum, AssetService: () => AssetService, AssetStatusEnum: () => AssetStatusEnum, AttachmentClassification: () => AttachmentClassification, AttachmentType: () => AttachmentType, BEING_ID_LEVELS: () => BEING_ID_LEVELS, BaseService: () => BaseService, BeingLevelEnum: () => BeingLevelEnum, BidReasonsEnum: () => BidReasonsEnum, BidService: () => BidService, BidStatusEnum: () => BidStatusEnum, BiometricsModeEnum: () => BiometricsModeEnum, BiometricsService: () => BiometricsService, BiometricsStorageKeyEnum: () => BiometricsStorageKeyEnum, BuyerProfileService: () => BuyerProfileService, CategoriesService: () => CategoriesService, CategoryStatusEnum: () => CategoryStatusEnum, ChainAssetService: () => ChainAssetService, ChainServiceService: () => ChainServiceService, ChainTypeEnum: () => ChainTypeEnum, ChainUtils: () => ChainUtils, CheckInService: () => CheckInService, CommonAdminService: () => CommonAdminService, ConsentActionTypesEnum: () => ConsentActionTypesEnum, CoreEventTypeEnum: () => CoreEventTypeEnum, CreatorProfileService: () => CreatorProfileService, DEFAULT_APP_ID: () => DEFAULT_APP_ID, DEFAULT_ORG_ID: () => DEFAULT_ORG_ID, DEVICE_LEVELS: () => DEVICE_LEVELS, DeviceService: () => DeviceService, DeviceTypeEnum: () => DeviceTypeEnum, DeviceTypeIdEnum: () => DeviceTypeIdEnum, DocumentStatusEnum: () => DocumentStatusEnum, DocumentTypesService: () => DocumentTypesService, DocumentsService: () => DocumentsService, EAddressType: () => EAddressType, EAttachmentUploadStatus: () => EAttachmentUploadStatus, EBeingLevel: () => EBeingLevel, EEventStatus: () => EEventStatus, EFycCheckStatus: () => EFycCheckStatus, EGovIdType: () => EGovIdType, ENCRYPTED_STORAGE_KEYS: () => ENCRYPTED_STORAGE_KEYS, EOrderStatus: () => EOrderStatus, EndUserNotificationEventNameEnum: () => EndUserNotificationEventNameEnum, EventService: () => EventService, FeedbackEnum: () => FeedbackEnum, FeedbackService: () => FeedbackService, FileFormatEnum: () => FileFormatEnum, FileTypeEnum: () => FileTypeEnum, HARDWARE_LEVELS: () => HARDWARE_LEVELS, InfoTypeEnum: () => InfoTypeEnum, InventoryService: () => InventoryService, InviteTypeEnum: () => InviteTypeEnum, ListedStatusEnum: () => ListedStatusEnum, ListingService: () => ListingService, LocationAccuracy: () => LocationAccuracy, MeasurementUnitEnum: () => MeasurementUnitEnum, MenuService: () => MenuService, NotificationService: () => NotificationService, NotificationStatusEnum: () => NotificationStatusEnum, OrderStatusEnum: () => OrderStatusEnum, OrderTypeEnum: () => OrderTypeEnum, OrdersService: () => OrdersService, OrganizationLocationService: () => OrganizationLocationService, OrganizationService: () => OrganizationService, PaymentDetailsService: () => PaymentDetailsService, PaymentTypeEnum: () => PaymentTypeEnum, ProfileService: () => ProfileService, ProfileTypeEnum: () => ProfileTypeEnum, QrPackageTypeEnum: () => QrPackageTypeEnum, ReferenceType: () => ReferenceType, RelationTypeEnum: () => RelationTypeEnum, RelationsTypeEnum: () => RelationsTypeEnum, ReportHistoryStatusEnum: () => ReportHistoryStatusEnum, ReportHistoryTypeEnum: () => ReportHistoryTypeEnum, ReportTypeEnum: () => ReportTypeEnum, ReportsService: () => ReportsService, RoleService: () => RoleService, S2CAssetService: () => S2CAssetService, SKIPPABLE_ASSET_STEPS: () => SKIPPABLE_ASSET_STEPS, SellerProfileService: () => SellerProfileService, SellerTypeEnum: () => SellerTypeEnum, SellingMethodEnum: () => SellingMethodEnum, ShippingAddressService: () => ShippingAddressService, SocialMediaSiteTypeEnum: () => SocialMediaSiteTypeEnum, StepEnum: () => StepEnum, SubjectTypeEnum: () => SubjectTypeEnum, TraitTypeEnum: () => TraitTypeEnum, TypesService: () => TypesService, UserRoleEnum: () => UserRoleEnum, UserRoleIdEnum: () => UserRoleIdEnum, UserService: () => UserService, UserTypeEnum: () => UserTypeEnum, VerificationTypeEnum: () => VerificationTypeEnum, VerifyCredentialTypeEnum: () => VerifyCredentialTypeEnum, VerifyType: () => VerifyType, VerifyTypeEnum: () => VerifyTypeEnum, WalletPlatformEnum: () => WalletPlatformEnum, Web3Service: () => Web3Service, WishlistService: () => WishlistService, WitnessTypeEnum: () => WitnessTypeEnum, assetStatuses: () => assetStatuses, chainServiceStatuses: () => chainServiceStatuses, createAndUploadAttachments: () => createAndUploadAttachments, createQueryParams: () => createQueryParams, debounce: () => debounce, formatDate: () => formatDate, formatNumber: () => formatNumber, getAssetStatusIndex: () => getAssetStatusIndex, getAssetVerifyRejected: () => getAssetVerifyRejected, getAssetVerifyStatus: () => getAssetVerifyStatus, getAssetVerifyStatusBySteps: () => getAssetVerifyStatusBySteps, getAttachmentLink: () => getAttachmentLink, getAuth0Id: () => getAuth0Id, getAuthEmail: () => getAuthEmail, getErrorMessage: () => getErrorMessage, isAssetStatusAfter: () => isAssetStatusAfter, isAssetStatusBefore: () => isAssetStatusBefore, isAssetStatusFinished: () => isAssetStatusFinished, isTokenExpired: () => isTokenExpired, makeCreateAttachmentsRequest: () => makeCreateAttachmentsRequest, makeCreateCheckInEventRequest: () => makeCreateCheckInEventRequest, makeCreateQrAttachmentRequest: () => makeCreateQrAttachmentRequest, makeGetAssetsParams: () => makeGetAssetsParams, makeSampleGeolocation: () => makeSampleGeolocation, makeSampleWeatherData: () => makeSampleWeatherData, makeUpdateCheckInAttachmentRequest: () => makeUpdateCheckInAttachmentRequest }); module.exports = __toCommonJS(src_exports); // src/lib/api/services/base-service.ts var import_axios = __toESM(require("axios")); var BaseService = class { constructor(opts) { var _a; this.axiosInstance = (_a = opts.axiosInstance) != null ? _a : import_axios.default.create({ timeout: 15e3, validateStatus: (status) => status >= 200 && status < 300 }); this.apiUrl = opts.apiUrl; this.coreApiServicePrefix = "core-events"; this.coreApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}`; } // eslint-disable-next-line @typescript-eslint/no-empty-function beforeQuery(params) { return __async(this, null, function* () { }); } // eslint-disable-next-line @typescript-eslint/no-empty-function beforeMutation(data) { return __async(this, null, function* () { }); } // API Generic functions // eslint-disable-next-line @typescript-eslint/no-explicit-any get(url, params, options) { return __async(this, null, function* () { this.beforeQuery(params); return this.axiosInstance.get(url, __spreadValues({ params }, options)).then((res) => res.data); }); } post(url, data, config) { return __async(this, null, function* () { this.beforeMutation(data); return this.axiosInstance.post(url, data, config).then((res) => res.data); }); } put(url, data, config) { return __async(this, null, function* () { this.beforeMutation(data); return this.axiosInstance.put(url, data, config).then((res) => res.data); }); } patch(url, data) { return __async(this, null, function* () { this.beforeMutation(data); return this.axiosInstance.patch(url, data).then((res) => res.data); }); } delete(url, params, config) { return __async(this, null, function* () { this.beforeQuery(params); return this.axiosInstance.delete(url, __spreadValues({ params }, config)).then((res) => res.data); }); } }; // src/lib/common/constants/application-id.ts var APP_ID = { CHAINIT: "chainit", SPORTAFI: "sportafi", ARTLOCK: "art_lock", PAIRED: "paired", SITESUPER: "site_super", S2C: "s2c", GREENLIGHT_DATA: "gld", ANYTIME_CASH: "anytime_cash" }; var DEFAULT_APP_ID = APP_ID.CHAINIT; // src/lib/common/constants/common-keys.ts var DEFAULT_ORG_ID = "00000000-0000-0000-0000-000000000000"; // src/lib/common/constants/device-levels.ts var DEVICE_LEVELS = [ { level: 1, label: "Stationary Kiosk on BIT Trusted Network", color: "#6BAF23", bgColor: "#d3e9bb" }, { level: 2, label: "Floating Kiosk on BIT Trusted Network", color: "#0C682A", bgColor: "#8BE7A9" }, { level: 3, label: "Verifed Personal Devices on Public Network", color: "#02381B", bgColor: "#81B79A" }, { level: 4, label: "Unverifed Personal Devices on Public Network", color: "#191617", bgColor: "#989596" } ]; // src/lib/common/constants/encrypted-storage-keys.ts var ENCRYPTED_STORAGE_KEYS = { accessToken: "accessToken", bitToken: "bitToken", refreshToken: "refreshToken", chainItNftWalletAddress: "CHAINIT_NFT_WALLET_ADDRESS", codeVerifier: "codeVerifier", state: "state", sessionToken: "sessionToken", expiresIn: "expiresIn", idToken: "idToken", hasProfile: "hasProfile", introPassed: "introPassed", deviceId: "deviceId", mintPlatform: "mintPlatform", isLoggingDisabled: "isLoggingDisabled", incodeUserId: "incodeUserId", organizationId: "organizationId", themeMode: "themeMode", shippingDetails: "shippingDetails", authStep: "authStep", authEmails: "authEmails", incodeInterviewId: "incodeInterviewId", incodeToken: "incodeToken", selfCustodyWalletAddress: "selfCustodyWalletAddress", selfCustodyWalletMnemonic: "selfCustodyWalletMnemonic", selfCustodyWalletPrivateKey: "selfCustodyWalletPrivateKey" }; // src/lib/common/constants/levels.ts var BEING_ID_LEVELS = [ { level: 1, label: "Government Witness", description: "Government-Issued ID Created" }, { level: 2, label: "Government Real ID", description: "Government Validation Added" }, { level: 3, label: "Secondary Government ID", description: "Multiple IDs Added" }, { level: 4, label: "Witness Confirmation", description: "VDT Created at Kiosk" }, { level: 5, label: "Multiple Events", description: "Higher Level Witnesses Added" }, { level: 6, label: "Human", description: "Account Created, Biometric Template Recorded" } ]; var HARDWARE_LEVELS = [ { level: 1, label: "Stationary Kiosk on BIT Trusted Network", color: "#6BAF23", bgColor: "#d3e9bb" }, { level: 2, label: "Floating Kiosk on BIT Trusted Network", color: "#0C682A", bgColor: "#8BE7A9" }, { level: 3, label: "Verifed Personal Devices on Public Network", color: "#02381B", bgColor: "#81B79A" }, { level: 4, label: "Unverifed Personal Devices on Public Network", color: "#191617", bgColor: "#989596" } ]; // src/lib/common/enums/file-format.ts var FileFormatEnum = /* @__PURE__ */ ((FileFormatEnum3) => { FileFormatEnum3["CSV"] = "CSV"; FileFormatEnum3["PDF"] = "PDF"; return FileFormatEnum3; })(FileFormatEnum || {}); // src/lib/common/enums/info-type.ts var InfoTypeEnum = /* @__PURE__ */ ((InfoTypeEnum2) => { InfoTypeEnum2["Who"] = "Who"; InfoTypeEnum2["What"] = "What"; InfoTypeEnum2["When"] = "When"; InfoTypeEnum2["Where"] = "Where"; return InfoTypeEnum2; })(InfoTypeEnum || {}); // src/lib/common/enums/witness-types.ts var WitnessTypeEnum = /* @__PURE__ */ ((WitnessTypeEnum2) => { WitnessTypeEnum2["Witness"] = "witness"; WitnessTypeEnum2["Buyer"] = "buyer"; WitnessTypeEnum2["Seller"] = "seller"; return WitnessTypeEnum2; })(WitnessTypeEnum || {}); // src/lib/common/interfaces/attachment.ts var AttachmentType = /* @__PURE__ */ ((AttachmentType2) => { AttachmentType2["TokenDocument"] = "TOKEN_DOCUMENT"; AttachmentType2["TokenPhoto"] = "TOKEN_PHOTO"; AttachmentType2["VerificationPhoto"] = "VERIFICATION_PHOTO"; AttachmentType2["WitnessPhoto"] = "WITNESS_PHOTO"; return AttachmentType2; })(AttachmentType || {}); var AttachmentClassification = /* @__PURE__ */ ((AttachmentClassification3) => { AttachmentClassification3["Face"] = "FACE"; AttachmentClassification3["GovtId"] = "GOVTID"; AttachmentClassification3["FaceAndGovtId"] = "FACEANDGOVTID"; AttachmentClassification3["QrCode"] = "QRCODE"; AttachmentClassification3["AssetPhoto"] = "ASSET_PHOTO"; AttachmentClassification3["AssetVerificationPhoto"] = "ASSET_VERIFICATION_PHOTO"; AttachmentClassification3["AssetWitnessPhoto"] = "ASSET_WITNESS_PHOTO"; AttachmentClassification3["ServicePhoto"] = "SERVICE_PHOTO"; AttachmentClassification3["ServiceVerificationPhoto"] = "SERVICE_VERIFICATION_PHOTO"; AttachmentClassification3["ServiceWitnessPhoto"] = "SERVICE_WITNESS_PHOTO"; AttachmentClassification3["Other"] = "OTHER"; AttachmentClassification3["AssetDocument"] = "ASSET_DOCUMENT"; AttachmentClassification3["ServiceDocument"] = "SERVICE_DOCUMENT"; return AttachmentClassification3; })(AttachmentClassification || {}); var EAttachmentUploadStatus = /* @__PURE__ */ ((EAttachmentUploadStatus2) => { EAttachmentUploadStatus2["New"] = "NEW"; EAttachmentUploadStatus2["Uploaded"] = "UPLOADED"; EAttachmentUploadStatus2["Error"] = "ERROR"; return EAttachmentUploadStatus2; })(EAttachmentUploadStatus || {}); // src/lib/common/interfaces/check-in.ts var RelationTypeEnum = /* @__PURE__ */ ((RelationTypeEnum3) => { RelationTypeEnum3["Official"] = "CHECKIN_OFFICIAL"; RelationTypeEnum3["Witness"] = "CHECKIN_WITNESS"; RelationTypeEnum3["Inspector"] = "CHECKIN_INSPECTOR"; RelationTypeEnum3["Archive"] = "CHECKIN_ARCHIVE"; RelationTypeEnum3["Buyer"] = "CHECKIN_BUYER"; RelationTypeEnum3["Seller"] = "CHECKIN_SELLER"; RelationTypeEnum3["ChildVdt"] = "CHILD_VDT"; RelationTypeEnum3["ParentVdt"] = "PARENT_VDT"; return RelationTypeEnum3; })(RelationTypeEnum || {}); // src/lib/common/interfaces/device.ts var DeviceTypeIdEnum = /* @__PURE__ */ ((DeviceTypeIdEnum2) => { DeviceTypeIdEnum2[DeviceTypeIdEnum2["STATIONARY_KIOSK"] = 1] = "STATIONARY_KIOSK"; DeviceTypeIdEnum2[DeviceTypeIdEnum2["MOBILE_KIOSK"] = 2] = "MOBILE_KIOSK"; DeviceTypeIdEnum2[DeviceTypeIdEnum2["TABLET_KIOSK"] = 3] = "TABLET_KIOSK"; DeviceTypeIdEnum2[DeviceTypeIdEnum2["PHONE"] = 4] = "PHONE"; DeviceTypeIdEnum2[DeviceTypeIdEnum2["TABLET"] = 5] = "TABLET"; return DeviceTypeIdEnum2; })(DeviceTypeIdEnum || {}); var DeviceTypeEnum = /* @__PURE__ */ ((DeviceTypeEnum2) => { DeviceTypeEnum2["STATIONARY_KIOSK"] = "STATIONARY_KIOSK"; DeviceTypeEnum2["MOBILE_KIOSK"] = "MOBILE_KIOSK"; DeviceTypeEnum2["TABLET_KIOSK"] = "TABLET_KIOSK"; DeviceTypeEnum2["PHONE"] = "PHONE"; DeviceTypeEnum2["TABLET"] = "TABLET"; return DeviceTypeEnum2; })(DeviceTypeEnum || {}); // src/lib/common/interfaces/event.ts var StepEnum = /* @__PURE__ */ ((StepEnum2) => { StepEnum2["DATA"] = "DATA"; StepEnum2["PHOTO"] = "PHOTO"; StepEnum2["CONFIRM"] = "CONFIRM"; StepEnum2["OFFICIAL"] = "OFFICIAL"; StepEnum2["QRCODE"] = "QRCODE"; StepEnum2["RFID"] = "RFID"; StepEnum2["PRIVACY"] = "PRIVACY"; StepEnum2["WITNESS"] = "WITNESS"; StepEnum2["DOCUMENT"] = "DOCUMENT"; StepEnum2["REFERENCE_VDTS"] = "REFERENCE_VDTS"; StepEnum2["VDT_MINTED"] = "VDT_MINTED"; return StepEnum2; })(StepEnum || {}); // src/lib/common/interfaces/ipfs.ts var TraitTypeEnum = /* @__PURE__ */ ((TraitTypeEnum2) => { TraitTypeEnum2["Type"] = "Type"; TraitTypeEnum2["TypeWitness"] = "Type-Witness"; TraitTypeEnum2["Who"] = "Who"; TraitTypeEnum2["WhoBiometrics"] = "Who-Biometrics"; TraitTypeEnum2["What"] = "What"; TraitTypeEnum2["When"] = "When"; TraitTypeEnum2["Where"] = "Where"; TraitTypeEnum2["WhereDevice"] = "Where-Device"; return TraitTypeEnum2; })(TraitTypeEnum || {}); // src/lib/common/interfaces/qr.ts var QrPackageTypeEnum = /* @__PURE__ */ ((QrPackageTypeEnum2) => { QrPackageTypeEnum2["OBJECTS"] = "OBJECTS"; QrPackageTypeEnum2["SERVICES"] = "SERVICES"; QrPackageTypeEnum2["USERS"] = "USERS"; QrPackageTypeEnum2["USER_DEVICES"] = "USER_DEVICES"; QrPackageTypeEnum2["USER_OBJECTS"] = "USER_OBJECTS"; QrPackageTypeEnum2["USER_SERVICES"] = "USER_SERVICES"; QrPackageTypeEnum2["ORGANIZATIONS"] = "ORGANIZATIONS"; QrPackageTypeEnum2["DEVICES"] = "DEVICES"; QrPackageTypeEnum2["ORG_USERS"] = "ORG_USERS"; QrPackageTypeEnum2["ORG_DEVICES"] = "ORG_DEVICES"; QrPackageTypeEnum2["ORG_OBJECTS"] = "ORG_OBJECTS"; QrPackageTypeEnum2["ORG_SERVICES"] = "ORG_SERVICES"; QrPackageTypeEnum2["WITNESS"] = "WITNESS"; QrPackageTypeEnum2["OBJECT_WITNESSES"] = "OBJECT_WITNESSES"; QrPackageTypeEnum2["SERVICE_WITNESSES"] = "SERVICE_WITNESSES"; return QrPackageTypeEnum2; })(QrPackageTypeEnum || {}); // src/lib/common/interfaces/subject.ts var ReferenceType = /* @__PURE__ */ ((ReferenceType2) => { ReferenceType2["PHONE"] = "PHONE"; ReferenceType2["DRIVERS_LICENSE"] = "DRIVERS_LICENSE"; ReferenceType2["EMPLOYEE_ID"] = "EMPLOYEE_ID"; ReferenceType2["AUTH0_IDENTITY"] = "AUTH0_IDENTITY"; ReferenceType2["END_USER_ID"] = "END_USER_ID"; ReferenceType2["ADMIN_USER_ID"] = "ADMIN_USER_ID"; return ReferenceType2; })(ReferenceType || {}); var SubjectTypeEnum = /* @__PURE__ */ ((SubjectTypeEnum3) => { SubjectTypeEnum3["EMPLOYEE"] = "EMPLOYEE"; SubjectTypeEnum3["DRIVER"] = "DRIVER"; SubjectTypeEnum3["USER"] = "USER"; SubjectTypeEnum3["ASSET_OWNER"] = "ASSET_OWNER"; return SubjectTypeEnum3; })(SubjectTypeEnum || {}); // src/lib/common/interfaces/wallet.ts var WalletPlatformEnum = /* @__PURE__ */ ((WalletPlatformEnum2) => { WalletPlatformEnum2["Ethereum"] = "ethereum"; WalletPlatformEnum2["Polygon"] = "polygon"; return WalletPlatformEnum2; })(WalletPlatformEnum || {}); // src/lib/common/utils/auth-utils.ts var import_jwt_decode = __toESM(require("jwt-decode")); function getAuth0Id(claims, opts) { return __async(this, null, function* () { if (opts == null ? void 0 : opts.keepPrefix) return claims.sub; return claims.sub.replace("auth0|", ""); }); } function getAuthEmail(claims) { return __async(this, null, function* () { return claims["https://blackinktech.io/schemas/claims/email"]; }); } function isTokenExpired(token) { try { const claims = (0, import_jwt_decode.default)(token); return Date.now() / 1e3 > claims.exp; } catch (err) { return false; } } // src/lib/common/utils/create-query-params.ts var createQueryParams = (params) => { if (!params) return ""; return Object.keys(params).filter((k) => typeof params[k] !== "undefined").map((k) => { const value = params[k]; if (Array.isArray(value)) { if (value.length === 0) return ""; return encodeURIComponent(k) + "=" + encodeURIComponent(value.join(",")); } else if (typeof value === "object") { return encodeURIComponent(k) + "=" + JSON.stringify(value); } return encodeURIComponent(k) + "=" + encodeURIComponent(value); }).join("&"); }; // src/lib/common/utils/debounce.ts var debounce = (fn, ms = 300) => { let timeoutId; return function(...args) { clearTimeout(timeoutId); timeoutId = setTimeout(() => fn.apply(this, args), ms); }; }; // src/lib/common/utils/format-date.ts function formatDate(date) { return new Date(date).toLocaleDateString("en-US", { day: "2-digit", month: "2-digit", year: "numeric", hour: "numeric", minute: "2-digit" }); } // src/lib/common/utils/format-number.ts function formatNumber(n) { const sanitizedValue = n.replace(/[^0-9.]/g, "").replace(/^0+(?=\d)/, ""); const parts = sanitizedValue.toString().split("."); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); return parts.join("."); } // src/lib/common/utils/get-error-message.ts var import_axios2 = __toESM(require("axios")); function getErrorMessage(err) { var _a, _b, _c, _d; if (!err) return ""; if (import_axios2.default.isAxiosError(err) || (err == null ? void 0 : err.response)) { const axiosError = err; const message = (_b = (_a = axiosError.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message; if (typeof message === "string") { return message; } else if (typeof message === "object") { if (Array.isArray(message) && message.every((m) => typeof m === "string")) { return message.join(", "); } let fatalErrorMessage = JSON.stringify(message); const details = (_d = (_c = axiosError.response) == null ? void 0 : _c.data) == null ? void 0 : _d.error; if (details) fatalErrorMessage = details + fatalErrorMessage; return fatalErrorMessage; } else if (axiosError.message) { return axiosError.message; } } if (err && typeof err === "object" && "status" in err && "data" in err) { if (Object.prototype.hasOwnProperty.call(err.data, "message")) { return err.data.message; } } if (err instanceof Error) { const error = err; return error.message; } if (Object.prototype.hasOwnProperty.call(err, "message")) { return err.message; } if (typeof err === "string") { return err; } return "Unknown error"; } // src/lib/common/utils/make-sample-geolocation.ts function makeSampleGeolocation() { return { latitude: 0, longitude: 0, meanSeaLevel: 0 }; } // src/lib/common/utils/make-sample-weather-data.ts function makeSampleWeatherData() { return { AbsHumidity: 0, AirDensity: 0, AvgCorrectedWindDir: 0, AvgCorrectedWindSpeed: 0, AvgRelativeWindDir: 0, AvgRelativeWindSpeed: 0, CompassHeading: 0, CorrectedGustDirection: 0, CorrectedGustSpeed: 0, CorrectedWindDir: 0, CorrectedWindSpeed: 0.92, Dewpoint: 75.2, GPSHeading: "", GPSLocation: "+32.843528:-080.015936:+0017.50", GPSSpeedOverGround: "", GPSStatusError: false, HeatIndex: 0, PositionOfTheSun: 0, PrecipIntensity: "", RainPresent: false, Pressure: 1019.7, PressureAtSeaLevel: 0, PressureAtStation: 0, RelGustDir: 0, RelGustSpeed: 0, RelHumidity: 84, RelWindDir: 241, RelWindSpeed: 0.92, SensorStatusError: false, SolarNoonTime: "", SolarRadiation: "0001", SunriseTime: "", SunsetTime: "", SunshineHours: 0, Temperature: 80.4, TotalPrecip: "00000.000", TwilightAstronomical: "", TwilightCivil: "", TwilightNautical: "", WetBulbTemperature: 0, WindChill: 0, WindSensorError: false, XTilt: 0, YTilt: 0, ZOrientation: "" }; } // src/lib/asset/asset-attachment.utils.ts function getAttachmentLink(opts) { const params = { thumb: opts.thumb ? "true" : void 0, bit_token: opts.bitToken, access_token: opts.accessToken }; return `${opts.apiUrl}/core-events/v1/chain-assets/attachments/${opts.id}/view?${createQueryParams(params)}`; } function createAndUploadAttachments(opts) { return __async(this, null, function* () { var _a; const { service, chainApiUrl, req } = opts; const { eventId, req: input, onUpload } = req; const docs = input.docs.map((d) => __spreadProps(__spreadValues({}, d), { data: void 0 })); const initializeInput = __spreadProps(__spreadValues({}, input), { docs }); const initializedAttachments = yield service.post( `${chainApiUrl}/${eventId}/attachments`, initializeInput ); const updatedDocs = []; let i = 0; for (const d of input.docs) { onUpload == null ? void 0 : onUpload(i + 1, input.docs.length); const req2 = { application: input.application, docs: [ { mimeType: d.mimeType, docType: d.docType, classification: d.classification, docId: initializedAttachments[i].docId, name: d.name, description: d.description, data: (_a = d.data) != null ? _a : "", isMain: d.isMain } ] }; yield service.put(`${chainApiUrl}/${eventId}/attachments`, req2, { onUploadProgress: (e) => console.log("Upload attachment progress:", e) }); i++; updatedDocs.push(req2.docs[0]); } return updatedDocs; }); } // src/lib/asset/asset.service.utils.ts function makeGetAssetsParams(req) { var _a, _b, _c, _d; return __spreadProps(__spreadValues({}, req), { $orderBy: (_a = req == null ? void 0 : req.$orderBy) != null ? _a : "createdAt", $order: (_b = req == null ? void 0 : req.$order) != null ? _b : "desc", $page: (_c = req == null ? void 0 : req.$page) != null ? _c : 1, $perPage: (_d = req == null ? void 0 : req.$perPage) != null ? _d : 10 }); } // src/lib/asset/asset.service.ts var AssetService = class extends BaseService { constructor(opts) { super(opts); this.assetApiUrl = `${this.apiUrl}/assets/v1/${opts == null ? void 0 : opts.route}`; } list(req = {}) { return this.get(this.assetApiUrl, makeGetAssetsParams(req)); } listPublic(req = {}) { return this.get(`${this.assetApiUrl}/tokens-public`, makeGetAssetsParams(req)); } favorites(req = {}) { return this.get(`${this.assetApiUrl}/list-favorite`, makeGetAssetsParams(req)); } listGroup() { return this.get(`${this.assetApiUrl}/group`); } listCategories(req = {}) { return this.get(`${this.apiUrl}/assets/v1/asset-category/list`, req); } searchCategories(req = {}) { return this.get(`${this.apiUrl}/assets/v1/asset-category`, req); } getCategoryByName(name) { return this.get(`${this.apiUrl}/assets/v1/asset-category?name=${name}`); } getCategoryById(categoryId, headers) { return this.get(`${this.apiUrl}/assets/v1/asset-category/${categoryId}`, void 0, { headers }); } searchAssetTypes(req = {}) { return this.get(`${this.apiUrl}/assets/v1/asset-type`, req); } listAssetTypes(req = {}) { return this.get(`${this.apiUrl}/assets/v1/asset-type/list`, req); } getActiveAssetTemplate(req, headers) { return this.get(`${this.apiUrl}/assets/v1/asset-template/activated`, req, { headers }); } getAssetType(assetTypeId, headers) { return this.get(`${this.apiUrl}/assets/v1/asset-type/${assetTypeId}`, void 0, { headers }); } getAssetTypeSteps(assetTypeId) { return this.get(`${this.apiUrl}/assets/v1/asset-type/${assetTypeId}/steps`); } share(eventId, data) { return this.post(`${this.assetApiUrl}/${eventId}/share`, data); } witnesses(req = {}) { return this.get(`${this.assetApiUrl}/witnesses`, req); } witnessesPublic(req = {}) { return this.get(`${this.assetApiUrl}/witnesses-public`, req); } addReferenceVdt(req) { return this.post(`${this.assetApiUrl}/reference-vdt`, req); } createListing(props) { return this.post(`${this.assetApiUrl}/listing`, props); } getAssetChainDetails(eventId) { return this.get(`${this.apiUrl}/core-events/v1/chain-assets/${eventId}`); } getOwnershipHistory(req = {}) { const query = createQueryParams(__spreadValues({ assetName: req.name }, req)); return this.get(`${this.assetApiUrl}/ownership-history?${query}`); } getAssociatedAssets(req = {}) { return this.get(`${this.apiUrl}/assets/v1/asset/tokens-public`, req); } vdtReport(fileFormat) { return this.get(`${this.apiUrl}/assets/v1/asset/collection-report`, { fileFormat }); } }; // src/lib/asset/asset.service.interfaces.ts var chainServiceStatuses = ["INFO", "PHOTO", "OFFICIALS", "QRCODE", "RFID", "WITNESS", "MINTED"]; // src/lib/asset/constants.ts var ASSET_STEPS = [ "DATA" /* DATA */, "PHOTO" /* PHOTO */, "OFFICIAL" /* OFFICIAL */, "QRCODE" /* QRCODE */, "RFID" /* RFID */, "PRIVACY" /* PRIVACY */, "WITNESS" /* WITNESS */ ]; var assetStatuses = ["INFO", "PHOTO", "OFFICIALS", "QRCODE", "RFID", "WITNESS", "MINTED"]; var SKIPPABLE_ASSET_STEPS = ["RFID" /* RFID */, "OFFICIAL" /* OFFICIAL */, "WITNESS" /* WITNESS */, "CONFIRM" /* CONFIRM */]; var ASSET_STATUSES = [ "CREATED", "PHOTO_ADDED_STARTED", "PHOTO_ADDED_FAILED", "PHOTO_ADDED", "OFFICIAL_VERIFYING_STARTED", "OFFICIAL_VERIFYING_FAILED", "OFFICIAL_VERIFIED", "QR_BINDING_STARTED", "QR_BINDING_FAILED", "QR_BOUND", "RFID_BINDING_STARTED", "RFID_BINDING_FAILED", "RFID_BOUND", "PRIVACY_STARTED", "PRIVACY_FAILED", "PRIVACY_DONE", "REGISTERING_STARTED", "REGISTERING_FAILED", "REGISTERED", "MINTING_STARTED", "MINTING_FAILED", "MINTED", "INCOMPLETE", "COMPLETED" ]; var CategoryStatusEnum = /* @__PURE__ */ ((CategoryStatusEnum2) => { CategoryStatusEnum2["Normal"] = "NORMAL"; CategoryStatusEnum2["Fixed"] = "FIXED"; return CategoryStatusEnum2; })(CategoryStatusEnum || {}); // src/lib/asset/interfaces/chain-type-enum.ts var ChainTypeEnum = /* @__PURE__ */ ((ChainTypeEnum2) => { ChainTypeEnum2["Objects"] = "OBJECTS"; ChainTypeEnum2["Services"] = "SERVICES"; ChainTypeEnum2["Files"] = "FILES"; ChainTypeEnum2["OrgObjects"] = "ORG-OBJECTS"; ChainTypeEnum2["OrgServices"] = "ORG-SERVICES"; ChainTypeEnum2["OrgFiles"] = "ORG-FILES"; return ChainTypeEnum2; })(ChainTypeEnum || {}); var ReportTypeEnum = /* @__PURE__ */ ((ReportTypeEnum2) => { ReportTypeEnum2["Seller"] = "Seller"; ReportTypeEnum2["Buyer"] = "Buyer"; return ReportTypeEnum2; })(ReportTypeEnum || {}); var FileTypeEnum = /* @__PURE__ */ ((FileTypeEnum2) => { FileTypeEnum2["PDF"] = "PDF"; FileTypeEnum2["CSV"] = "CSV"; return FileTypeEnum2; })(FileTypeEnum || {}); var AssetStatusEnum = /* @__PURE__ */ ((AssetStatusEnum2) => { AssetStatusEnum2["CREATED"] = "CREATED"; AssetStatusEnum2["PHOTO_ADDED_STARTED"] = "PHOTO_ADDED_STARTED"; AssetStatusEnum2["PHOTO_ADDED_FAILED"] = "PHOTO_ADDED_FAILED"; AssetStatusEnum2["PHOTO_ADDED"] = "PHOTO_ADDED"; AssetStatusEnum2["DOCUMENT_ADDED_STARTED"] = "DOCUMENT_ADDED_STARTED"; AssetStatusEnum2["DOCUMENT_ADDED_FAILED"] = "DOCUMENT_ADDED_FAILED"; AssetStatusEnum2["DOCUMENT_ADDED"] = "DOCUMENT_ADDED"; AssetStatusEnum2["OFFICIAL_VERIFYING_STARTED"] = "OFFICIAL_VERIFYING_STARTED"; AssetStatusEnum2["OFFICIAL_VERIFYING_FAILED"] = "OFFICIAL_VERIFYING_FAILED"; AssetStatusEnum2["OFFICIAL_VERIFIED"] = "OFFICIAL_VERIFIED"; AssetStatusEnum2["QR_BINDING_STARTED"] = "QR_BINDING_STARTED"; AssetStatusEnum2["QR_BINDING_FAILED"] = "QR_BINDING_FAILED"; AssetStatusEnum2["QR_BOUND"] = "QR_BOUND"; AssetStatusEnum2["RFID_BINDING_STARTED"] = "RFID_BINDING_STARTED"; AssetStatusEnum2["RFID_BINDING_FAILED"] = "RFID_BINDING_FAILED"; AssetStatusEnum2["RFID_BOUND"] = "RFID_BOUND"; AssetStatusEnum2["PRIVACY_STARTED"] = "PRIVACY_STARTED"; AssetStatusEnum2["PRIVACY_FAILED"] = "PRIVACY_FAILED"; AssetStatusEnum2["PRIVACY_DONE"] = "PRIVACY_DONE"; AssetStatusEnum2["WITNESS_VERIFYING_STARTED"] = "WITNESS_VERIFYING_STARTED"; AssetStatusEnum2["WITNESS_VERIFYING_FAILED"] = "WITNESS_VERIFYING_FAILED"; AssetStatusEnum2["WITNESS_VERIFIED"] = "WITNESS_VERIFIED"; AssetStatusEnum2["REGISTERING_STARTED"] = "REGISTERING_STARTED"; AssetStatusEnum2["REGISTERING_FAILED"] = "REGISTERING_FAILED"; AssetStatusEnum2["REGISTERED"] = "REGISTERED"; AssetStatusEnum2["MINTING_STARTED"] = "MINTING_STARTED"; AssetStatusEnum2["MINTING_FAILED"] = "MINTING_FAILED"; AssetStatusEnum2["MINTED"] = "MINTED"; AssetStatusEnum2["REFERENCE_VDTS_STARTED"] = "REFERENCE_VDTS_STARTED"; AssetStatusEnum2["REFERENCE_VDTS_FAILED"] = "REFERENCE_VDTS_FAILED"; AssetStatusEnum2["REFERENCE_VDTS_COMPLETED"] = "REFERENCE_VDTS_COMPLETED"; AssetStatusEnum2["CONFIRMED"] = "CONFIRMED"; return AssetStatusEnum2; })(AssetStatusEnum || {}); // src/lib/asset/interfaces/customer-base.ts var RelationsTypeEnum = /* @__PURE__ */ ((RelationsTypeEnum2) => { RelationsTypeEnum2["CHECKIN_OFFICIAL"] = "CHECKIN_OFFICIAL"; RelationsTypeEnum2["CHECKIN_WITNESS"] = "CHECKIN_WITNESS"; RelationsTypeEnum2["CHECKIN_INSPECTOR"] = "CHECKIN_INSPECTOR"; RelationsTypeEnum2["CHECKIN_BUYER"] = "CHECKIN_BUYER"; RelationsTypeEnum2["CHECKIN_SELLER"] = "CHECKIN_SELLER"; RelationsTypeEnum2["PARENT_VDT"] = "PARENT_VDT"; RelationsTypeEnum2["CHILD_VDT"] = "CHILD_VDT"; return RelationsTypeEnum2; })(RelationsTypeEnum || {}); var AssetLevelEnum = /* @__PURE__ */ ((AssetLevelEnum2) => { AssetLevelEnum2["A_PLUS"] = "A+"; AssetLevelEnum2["A"] = "A"; AssetLevelEnum2["A_MINUS"] = "A-"; AssetLevelEnum2["B_PLUS"] = "B+"; AssetLevelEnum2["B"] = "B"; AssetLevelEnum2["B_MINUS"] = "B-"; AssetLevelEnum2["C_PLUS"] = "C+"; AssetLevelEnum2["C"] = "C"; AssetLevelEnum2["C_MINUS"] = "C-"; return AssetLevelEnum2; })(AssetLevelEnum || {}); var VerifyType = /* @__PURE__ */ ((VerifyType2) => { VerifyType2["NOT_VERIFIED"] = "notVerified"; VerifyType2["OFFICIAL_VERIFIED"] = "verifiedByOfficial"; VerifyType2["SELF_VERIFIED"] = "selfVerified"; return VerifyType2; })(VerifyType || {}); // src/lib/asset/interfaces/i-chain.service.ts var LocationAccuracy = /* @__PURE__ */ ((LocationAccuracy2) => { LocationAccuracy2["Exact"] = "exact"; LocationAccuracy2["City"] = "city"; LocationAccuracy2["State"] = "state"; LocationAccuracy2["Country"] = "country"; return LocationAccuracy2; })(LocationAccuracy || {}); // src/lib/asset/interfaces/verify-type-enum.ts var VerifyTypeEnum = /* @__PURE__ */ ((VerifyTypeEnum2) => { VerifyTypeEnum2["NOT_VERIFIED"] = "notVerified"; VerifyTypeEnum2["OFFICIAL_VERIFIED"] = "verifiedByOfficial"; VerifyTypeEnum2["OFFICIAL_REJECTED"] = "rejectedByOfficial"; VerifyTypeEnum2["SELF_VERIFIED"] = "selfVerified"; return VerifyTypeEnum2; })(VerifyTypeEnum || {}); // src/lib/asset/interfaces/ownership-history.ts var EOrderStatus = /* @__PURE__ */ ((EOrderStatus2) => { EOrderStatus2["Created"] = "CREATED"; EOrderStatus2["ShippingInfo"] = "SHIPPING_INFO"; EOrderStatus2["PaymentCompleted"] = "PAYMENT_COMPLETED"; EOrderStatus2["PaymentFailed"] = "PAYMENT_FAILED"; EOrderStatus2["Confirmed"] = "CONFIRMED"; EOrderStatus2["Canceled"] = "CANCELED"; EOrderStatus2["OrderShipped"] = "ORDER_SHIPPED"; EOrderStatus2["OrderDelivered"] = "ORDER_DELIVERED"; EOrderStatus2["OwnershipTransferStarted"] = "OWNERSHIP_TRANSFER_STARTED"; EOrderStatus2["OwnershipTransferCompleted"] = "OWNERSHIP_TRANSFER_COMPLETED"; EOrderStatus2["OwnershipTransferFailed"] = "OWNERSHIP_TRANSFER_FAILED"; EOrderStatus2["OrderUndelivered"] = "ORDER_UNDELIVERED"; EOrderStatus2["OrderSuccess"] = "ORDER_SUCCESS"; EOrderStatus2["Return"] = "RETURN"; EOrderStatus2["ReturnShipped"] = "RETURN_SHIPPED"; EOrderStatus2["ReturnDelivered"] = "RETURN_DELIVERED"; EOrderStatus2["ReturnUndelivered"] = "RETURN_UNDELIVERED"; EOrderStatus2["Refund"] = "REFUND"; EOrderStatus2["RefundCompleted"] = "REFUND_COMPLETED"; EOrderStatus2["RefundFailed"] = "REFUND_FAILED"; return EOrderStatus2; })(EOrderStatus || {}); // src/lib/asset/asset.utils.ts function getAssetStatusIndex(status) { return ASSET_STATUSES.indexOf(status); } function isAssetStatusBefore(currentStatus, targetStatus) { return getAssetStatusIndex(currentStatus) < getAssetStatusIndex(targetStatus); } function isAssetStatusAfter(currentStatus, targetStatus) { return getAssetStatusIndex(currentStatus) > getAssetStatusIndex(targetStatus); } function isAssetStatusFinished(currentStatus, targetStatus) { return getAssetStatusIndex(currentStatus) >= getAssetStatusIndex(targetStatus); } function getAssetVerifyStatus(a) { if (isAssetStatusFinished(a.status, "OFFICIAL_VERIFIED") && a.serializedSteps.find((sc) => sc.step === "OFFICIAL" /* OFFICIAL */ && sc.finished === true) && a.status !== "OFFICIAL_VERIFYING_FAILED") { return "verifiedByOfficial" /* OFFICIAL_VERIFIED */; } if (isAssetStatusFinished(a.status, "OFFICIAL_VERIFIED") && a.serializedSteps.find((sc) => sc.step === "OFFICIAL" /* OFFICIAL */ && sc.finished === false) && a.status !== "OFFICIAL_VERIFYING_FAILED") { return "selfVerified" /* SELF_VERIFIED */; } if (isAssetStatusBefore(a.status, "OFFICIAL_VERIFYING_STARTED")) { return "notVerified" /* NOT_VERIFIED */; } return "notVerified" /* NOT_VERIFIED */; } function getAssetVerifyStatusBySteps(a) { var _a, _b, _c; if (((_a = a.serializedSteps) == null ? void 0 : _a.find((sc) => sc.step === "OFFICIAL" /* OFFICIAL */ && sc.finished === true)) && a.status !== "OFFICIAL_VERIFYING_FAILED") { if (getAssetVerifyRejected(a.witness)) return "verifiedByOfficial" /* OFFICIAL_VERIFIED */; return "rejectedByOfficial" /* OFFICIAL_REJECTED */; } if (((_b = a.serializedSteps) == null ? void 0 : _b.find((sc) => sc.step === "OFFICIAL" /* OFFICIAL */ && sc.finished === false)) && a.status !== "OFFICIAL_VERIFYING_FAILED") { return "selfVerified" /* SELF_VERIFIED */; } if (!((_c = a.serializedSteps) == null ? void 0 : _c.find((sc) => sc.step === "OFFICIAL" /* OFFICIAL */))) return "selfVerified" /* SELF_VERIFIED */; return "notVerified" /* NOT_VERIFIED */; } function getAssetVerifyRejected(data) { const witness = Array.isArray(data) ? data.sort((a, b) => new Date(a.updatedAt).getTime() - new Date(b.updatedAt).getTime()).pop() : { approved: false }; return witness.approved; } // src/lib/asset/chain-asset/chain-asset.service.ts var ChainAssetService = class extends BaseService { constructor(opts) { super(opts); this.chainApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}/v1/chain-assets`; } create(req) { return this.post(this.chainApiUrl, req); } createAttachments(req) { return createAndUploadAttachments({ service: this, chainApiUrl: this.chainApiUrl, req }); } createQrAttachment(eventId, req) { return this.post(`${this.chainApiUrl}/${eventId}/qr`, req); } getEvent(eventId) { return this.get(`${this.chainApiUrl}/${eventId}`); } getChildEvents(eventId) { return this.get(`${this.chainApiUrl}/${eventId}/child-events`); } getDetailsByEvent(eventId) { return this.get(`${this.apiUrl}/assets/v1/asset/${eventId}/event`); } getDetails(assetId) { return this.get(`${this.apiUrl}/assets/v1/asset/${assetId}`); } assetByQr(qrId) { return this.get(`${this.coreApiUrl}/v1/qrcode/${qrId}/asset-info`); } eventPublicByQr(qrId) { return this.get(`${this.coreApiUrl}/v1/qrcode/${qrId}/asset-info-public`); } getAttachmentImageUrl(attachmentId, thumb) { const query = createQueryParams({ thumb: thumb ? "true" : void 0 }); return `${this.chainApiUrl}/attachments/${attachmentId}/view?${query}`; } getWitnesses(req) { const query = createQueryParams(__spreadValues({ assetId: req.id, assetName: req.name }, req)); return this.get(`${this.apiUrl}/assets/v1/witness/witnesses-asset?${query}`); } update(eventId, req) { return this.put(`${this.chainApiUrl}/${eventId}/details`, req); } updateMetadata(eventId, req) { return this.post(`${this.chainApiUrl}/${eventId}/metadata`, req); } updateLocationPrivacy(eventId, req) { return this.patch(`${this.chainApiUrl}/${eventId}/privacy`, req); } linkQr(qrId, req) { return this.put(`${this.coreApiUrl}/v1/qrcode/${qrId}/link`, req); } generateQr(req) { return this.post(`${this.coreApiUrl}/v1/qrcode/system-generated`, req); } deleteAttachments(attId) { return this.delete(`${this.chainApiUrl}/${attId}/attachments`); } addReferenceVdt(req) { return this.post( `${this.apiUrl}/assets/v1/asset/reference-vdt`, req ); } updateAttachments(eventId, req) { return this.put( `${this.chainApiUrl}/${eventId}/attachments`, req ); } updateConfirmStatus(eventId) { return this.patch(`${this.apiUrl}/assets/v1/asset/${eventId}/confirm`, {}); } deleteReferenceVdt(id, qrCodeRefId) { return this.delete(`${this.apiUrl}/assets/v1/asset/${id}/reference-vdt/${qrCodeRefId}`); } eventByQr(qrId) { return this.get(`${this.coreApiUrl}/v1/qrcode/${qrId}/event-info`); } updateFavorite(req) { return this.patch(`${this.chainApiUrl}/favorite`, req); } share(eventId, data) { return this.post(`${this.apiUrl}/assets/v1/asset/${eventId}/share`, data); } }; // src/lib/asset/chain-asset/chain-asset.utils.ts function makeCreateAttachmentsRequest(opts) { var _a, _b, _c, _d, _e, _f, _g, _h; return { eventId: opts.eventId, req: { application: { id: (_a = opts.appId) != null ? _a : DEFAULT_APP_ID }, docs: (_b = opts.docs) != null ? _b : [], eventId: opts.eventId, device: { date: (/* @__PURE__ */ new Date()).toISOString(), deviceId: (_c = opts == null ? void 0 : opts.deviceId) != null ? _c : "", deviceName: (_d = opts == null ? void 0 : opts.deviceName) != null ? _d : "", geolocation: (_e = opts == null ? void 0 : opts.geolocation) != null ? _e : makeSampleGeolocation(), ipAddress: (_f = opts == null ? void 0 : opts.ipAddress) != null ? _f : "", deviceType: (_g = opts == null ? void 0 : opts.deviceType) != null ? _g : "PHONE" /* PHONE */ } }, chainType: (_h = opts.chainType) != null ? _h : "" }; } function makeCreateQrAttachmentRequest(opts) { var _a, _b, _c, _d, _e, _f; return { application: { id: (_a = opts == null ? void 0 : opts.appId) != null ? _a : DEFAULT_APP_ID }, device: { date: (/* @__PURE__ */ new Date()).toISOString(), deviceId: (_b = opts.deviceId) != null ? _b : "", deviceName: (_c = opts.deviceName) != null ? _c : "", deviceType: (_d = opts.deviceType) != null ? _d : "PHONE" /* PHONE */, geolocation: (_e = opts.geolocation) != null ? _e : makeSampleGeolocation(), ipAddress: (_f = opts == null ? void 0 : opts.ipAddress) != null ? _f : "" }, docs: [ { docType: "PHOTO", classification: "QRCODE" /* QrCode */, data: opts.qrImageBase64 } ] }; } // src/lib/asset/chain-service/chain-service.service.ts var ChainServiceService = class extends BaseService { constructor(opts) { super(opts); this.chainApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}/v1/chain-services`; } create(req) { return this.post(this.chainApiUrl, req); } createAttachments(req) { return createAndUploadAttachments({ service: this, chainApiUrl: this.chainApiUrl, req }); } createQrAttachment(eventId, req) { return this.post(`${this.chainApiUrl}/${eventId}/qr`, req); } getEvent(eventId) { return this.get(`${this.chainApiUrl}/${eventId}`); } getChildEvents(eventId) { return this.get(`${this.chainApiUrl}/${eventId}/child-events`); } getDetailsByEvent(eventId) { return this.get(`${this.apiUrl}/assets/v1/service/${eventId}/event`); } getDetails(serviceId) { return this.get(`${this.apiUrl}/assets/v1/service/${serviceId}`); } assetByQr(qrId) { return this.get(`${this.coreApiUrl}/v1/qrcode/${qrId}/service-info`); } getAttachmentImageUrl(attachmentId, thumb) { const query = createQueryParams({ thumb: thumb ? "true" : void 0 }); return `${this.chainApiUrl}/attachments/${attachmentId}/view?${query}`; } getWitnesses(req) { const query = createQueryParams(__spreadValues({ serviceId: req.id, serviceName: req.name }, req)); return this.get(`${this.apiUrl}/assets/v1/witness/witnesses-service?${query}`); } update(eventId, req) { return this.put(`${this.chainApiUrl}/${eventId}/details`, req); } updateMetadata(eventId, req) { return this.post(`${this.chainApiUrl}/${eventId}/metadata`, req); } updateLocationPrivacy(eventId, req) { return this.patch(`${this.chainApiUrl}/${eventId}/privacy`, req); } linkQr(qrId, req) { return this.put(`${this.coreApiUrl}/v1/qrcode/${qrId}/link`, req); } generateQr(req) { return this.post(`${this.coreApiUrl}/v1/qrcode/system-generated`, req); } deleteAttachments(attachmentId) { return this.delete(`${this.chainApiUrl}/${attachmentId}/attachments`); } addReferenceVdt(req) { return this.post( `${this.apiUrl}/assets/v1/service/reference-vdt`, req ); } updateAttachments(eventId, req) { return this.put( `${this.chainApiUrl}/${eventId}/attachments`, req ); } updateConfirmStatus(eventId) { return this.post(`${this.apiUrl}/assets/v1/service/${eventId}/confirm`, {}); } deleteReferenceVdt(id, qrCodeRefId) { return this.delete(`${this.apiUrl}/assets/v1/service/${id}/reference-vdt/${qrCodeRefId}`); } getS2CEventByQrId(qrId, vdtType, orgId) { const query = createQueryParams({ vdtType, orgId }); return this.get(`${this.apiUrl}/assets/v1/service/s2c/qr/${qrId}?${query}`); } eventByQr(qrId) { return this.get(`${this.coreApiUrl}/v1/qrcode/${qrId}/event-info`); } updateFavorite(req) { return this.patch(`${this.chainApiUrl}/favorite`, req); } share(eventId, data) { return this.post(`${this.apiUrl}/assets/v1/service/${eventId}/share`, data); } }; // src/lib/asset/chain.utils.ts var ChainUtils = class _ChainUtils { static getName(data) { var _a, _b; if ("assetName" in data) return (_a = data.assetName) != null ? _a : ""; if ("serviceName" in data) return (_b = data.serviceName) != null ? _b : ""; return ""; } static getNameFromProperties(props) { var _a, _b, _c, _d, _e, _f, _g, _h; if (props.some((p) => "isAssetName" in p)) { const assetData = props; return (_d = (_c = (_a = assetData.find((p) => p.isAssetName)) == null ? void 0 : _a.value) != null ? _c : (_b = assetData.find((p) => p.value !== "")) == null ? void 0 : _b.value) != null ? _d : ""; } if (props.some((p) => "isServiceName" in p)) { const serviceData = props; return (_h = (_g = (_e = serviceData.find((p) => p.isServiceName)) == null ? void 0 : _e.value) != null ? _g : (_f = serviceData.find((p) => p.value !== "")) == null ? void 0 : _f.value) != null ? _h : ""; } return ""; } static getCategories(data) { var _a, _b; if ("assetCategory" in data) return (_a = data.assetCategory) != null ? _a : []; if ("serviceCategory" in data) return (_b = data.serviceCategory) != null ? _b : []; return []; } static getProperties(data) { var _a, _b; if ("assetProperties" in data) return (_a = data.assetProperties) != null ? _a : []; if ("serviceProperties" in data) return (_b = data.serviceProperties) != null ? _b : []; return []; } static getMimeType(mimeType) { return mimeType === "application/pdf" ? "TOKEN_DOCUMENT" /* TokenDocument */ : "TOKEN_PHOTO" /* TokenPhoto */; } static findMainPhotoByTypeClass(opts) { var _a; const { photos, chainType, attachmentType } = opts; return (_a = photos == null ? void 0 : photos.filter( (p) => p.classification === _ChainUtils.getAttachmentClassification(chainType, attachmentType) && p.isMain )) == null ? void 0 : _a.pop(); } static getAttachmentClassification(chainType, attachmentType) { var _a; const classifications = { ["TOKEN_DOCUMENT" /* TokenDocument */]: { ["SERVICES" /* Services */]: "SERVICE_DOCUMENT" /* ServiceDocument */, ["OBJECTS" /* Objects */]: "ASSET_DOCUMENT" /* AssetDocument */, ["FILES" /* Files */]: "ASSET_DOCUMENT" /* AssetDocument */ }, ["TOKEN_PHOTO" /* TokenPhoto */]: { ["SERVICES" /* Services */]: "SERVICE_PHOTO" /* ServicePhoto */, ["OBJECTS" /* Objects */]: "ASSET_PHOTO" /* AssetPhoto */, ["FILES" /* Fi