@webority/mobile-core 0.114.0 → 0.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -234,7 +234,7 @@ await userClient.get('/status', { skipErrorLog: true });
234
234
  JWT-shaped strings, and the values of keys named `token`, `accessToken`, `refreshToken`,
235
235
  `password` and `authorization` (any case) in objects and JSON strings.
236
236
 
237
- `configureLogger({ redactKeys })` adds app keys to the built-in masked list and never removes one. `Logger.getBreadcrumbs()` returns the last 50 breadcrumbs, oldest first, already redacted; `configureLogger({ breadcrumbLimit })` changes the cap. `initWebority` takes a required `remoteLogger`: the sink, or `null` for a build without crash reporting. It also takes a required `appId`, the compiled settings' app id, and refuses to start when it differs from the installed app's id: a bundle prebuilt for another environment stops at start-up with the prebuild step to run.
237
+ `configureLogger({ redactKeys })` adds app keys to the built-in masked list and never removes one. `Logger.getBreadcrumbs()` returns the last 50 breadcrumbs, oldest first, already redacted; `configureLogger({ breadcrumbLimit })` changes the cap. `initWebority` takes a required `remoteLogger`: the sink, or `null` for a build without crash reporting. It also takes a required `appId`, the store id (`APP_ID` in appsettings.json, with no environment suffix), and a required `environment`. It adds that environment's suffix (`.development`, `.staging`, none for Production) and refuses to start when the result differs from the installed app's id.
238
238
 
239
239
  ## App lock
240
240
 
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.installedAppId=exports.ENVIRONMENT_APP_ID_SUFFIX=void 0;const ENVIRONMENT_APP_ID_SUFFIX=exports.ENVIRONMENT_APP_ID_SUFFIX={Development:".development",Staging:".staging",Production:""},installedAppId=(e,t)=>`${e}${ENVIRONMENT_APP_ID_SUFFIX[t]}`;exports.installedAppId=installedAppId;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ACCESS_TOKEN_KEY",{enumerable:!0,get:function(){return _authStore.ACCESS_TOKEN_KEY}}),Object.defineProperty(exports,"ACCOUNT_ID_HEADER",{enumerable:!0,get:function(){return _clientHeaders.ACCOUNT_ID_HEADER}}),Object.defineProperty(exports,"AsYouType",{enumerable:!0,get:function(){return _index4.AsYouType}}),Object.defineProperty(exports,"CLIENT_BUILD_HEADER",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_BUILD_HEADER}}),Object.defineProperty(exports,"CLIENT_KIND",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_KIND}}),Object.defineProperty(exports,"CLIENT_KIND_HEADER",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_KIND_HEADER}}),Object.defineProperty(exports,"CONTRACT_ERROR_CODE",{enumerable:!0,get:function(){return _index3.CONTRACT_ERROR_CODE}}),Object.defineProperty(exports,"DeepLink",{enumerable:!0,get:function(){return _index2.DeepLink}}),Object.defineProperty(exports,"IDEMPOTENCY_KEY_HEADER",{enumerable:!0,get:function(){return _retry.IDEMPOTENCY_KEY_HEADER}}),Object.defineProperty(exports,"LEGACY_REFRESH_TOKEN_LIFETIME_MS",{enumerable:!0,get:function(){return _authStore.LEGACY_REFRESH_TOKEN_LIFETIME_MS}}),Object.defineProperty(exports,"Logger",{enumerable:!0,get:function(){return _index5.Logger}}),Object.defineProperty(exports,"MIN_APP_VERSION_HEADER",{enumerable:!0,get:function(){return _minAppVersion.MIN_APP_VERSION_HEADER}}),Object.defineProperty(exports,"NETWORK_CODE",{enumerable:!0,get:function(){return _index3.NETWORK_CODE}}),Object.defineProperty(exports,"OFFLINE_CODE",{enumerable:!0,get:function(){return _index3.OFFLINE_CODE}}),Object.defineProperty(exports,"OFFLINE_MESSAGE",{enumerable:!0,get:function(){return _index3.OFFLINE_MESSAGE}}),Object.defineProperty(exports,"PUSH_STATUS",{enumerable:!0,get:function(){return _status.PUSH_STATUS}}),Object.defineProperty(exports,"REFRESH_TOKEN_KEY",{enumerable:!0,get:function(){return _authStore.REFRESH_TOKEN_KEY}}),Object.defineProperty(exports,"REQUEST_CANCELED_CODE",{enumerable:!0,get:function(){return _index3.REQUEST_CANCELED_CODE}}),Object.defineProperty(exports,"RequestOfflineError",{enumerable:!0,get:function(){return _userClient.RequestOfflineError}}),Object.defineProperty(exports,"SERVER_FAILURE_MESSAGE",{enumerable:!0,get:function(){return _index3.SERVER_FAILURE_MESSAGE}}),Object.defineProperty(exports,"SESSION_EXPIRED_CODE",{enumerable:!0,get:function(){return _userClient.SESSION_EXPIRED_CODE}}),Object.defineProperty(exports,"SESSION_REVOKED_CODE",{enumerable:!0,get:function(){return _userClient.SESSION_REVOKED_CODE}}),Object.defineProperty(exports,"SESSION_USER_KEY",{enumerable:!0,get:function(){return _authStore.SESSION_USER_KEY}}),Object.defineProperty(exports,"Storage",{enumerable:!0,get:function(){return _index7.Storage}}),Object.defineProperty(exports,"TIMEOUT_CODE",{enumerable:!0,get:function(){return _index3.TIMEOUT_CODE}}),Object.defineProperty(exports,"TIMEOUT_MESSAGE",{enumerable:!0,get:function(){return _index3.TIMEOUT_MESSAGE}}),Object.defineProperty(exports,"TRACEPARENT_HEADER",{enumerable:!0,get:function(){return _requestDefaults.TRACEPARENT_HEADER}}),Object.defineProperty(exports,"UNEXPECTED_MESSAGE",{enumerable:!0,get:function(){return _index3.UNEXPECTED_MESSAGE}}),Object.defineProperty(exports,"UNREACHABLE_MESSAGE",{enumerable:!0,get:function(){return _index3.UNREACHABLE_MESSAGE}}),Object.defineProperty(exports,"VersionCheck",{enumerable:!0,get:function(){return _index9.VersionCheck}}),Object.defineProperty(exports,"WORKSPACE_CHANGED_CODE",{enumerable:!0,get:function(){return _workspace.WORKSPACE_CHANGED_CODE}}),Object.defineProperty(exports,"WorkspaceChangedError",{enumerable:!0,get:function(){return _workspace.WorkspaceChangedError}}),Object.defineProperty(exports,"addDays",{enumerable:!0,get:function(){return _index4.addDays}}),Object.defineProperty(exports,"addMinAppVersionListener",{enumerable:!0,get:function(){return _minAppVersion.addMinAppVersionListener}}),Object.defineProperty(exports,"addNetworkStatusListener",{enumerable:!0,get:function(){return _index6.addNetworkStatusListener}}),Object.defineProperty(exports,"addSessionEndedListener",{enumerable:!0,get:function(){return _authStore.addSessionEndedListener}}),Object.defineProperty(exports,"apiErrorMessage",{enumerable:!0,get:function(){return _index3.apiErrorMessage}}),Object.defineProperty(exports,"applyRequestDefaults",{enumerable:!0,get:function(){return _requestDefaults.applyRequestDefaults}}),Object.defineProperty(exports,"attachRetry",{enumerable:!0,get:function(){return _retry.attachRetry}}),Object.defineProperty(exports,"buildCurl",{enumerable:!0,get:function(){return _curl.buildCurl}}),Object.defineProperty(exports,"clampNationalNumber",{enumerable:!0,get:function(){return _index4.clampNationalNumber}}),Object.defineProperty(exports,"clearSession",{enumerable:!0,get:function(){return _authStore.clearSession}}),Object.defineProperty(exports,"configureFormatters",{enumerable:!0,get:function(){return _index4.configureFormatters}}),Object.defineProperty(exports,"configureLogger",{enumerable:!0,get:function(){return _index5.configureLogger}}),Object.defineProperty(exports,"countryFlagEmoji",{enumerable:!0,get:function(){return _index4.countryFlagEmoji}}),Object.defineProperty(exports,"crashlyticsRemoteLogger",{enumerable:!0,get:function(){return _crashlytics.crashlyticsRemoteLogger}}),Object.defineProperty(exports,"decodeJWT",{enumerable:!0,get:function(){return _jwt.decodeJWT}}),Object.defineProperty(exports,"detectPhoneCountry",{enumerable:!0,get:function(){return _index4.detectPhoneCountry}}),Object.defineProperty(exports,"diffMs",{enumerable:!0,get:function(){return _index4.diffMs}}),Object.defineProperty(exports,"encodeBase64",{enumerable:!0,get:function(){return _base.encodeBase64}}),Object.defineProperty(exports,"extractApiError",{enumerable:!0,get:function(){return _index3.extractApiError}}),Object.defineProperty(exports,"formatCompactNumber",{enumerable:!0,get:function(){return _index4.formatCompactNumber}}),Object.defineProperty(exports,"formatCurrency",{enumerable:!0,get:function(){return _index4.formatCurrency}}),Object.defineProperty(exports,"formatDate",{enumerable:!0,get:function(){return _index4.formatDate}}),Object.defineProperty(exports,"formatDateDDMMMYYYY",{enumerable:!0,get:function(){return _index4.formatDateDDMMMYYYY}}),Object.defineProperty(exports,"formatDateISO",{enumerable:!0,get:function(){return _index4.formatDateISO}}),Object.defineProperty(exports,"formatDatePattern",{enumerable:!0,get:function(){return _index4.formatDatePattern}}),Object.defineProperty(exports,"formatDateTime",{enumerable:!0,get:function(){return _index4.formatDateTime}}),Object.defineProperty(exports,"formatMinor",{enumerable:!0,get:function(){return _index4.formatMinor}}),Object.defineProperty(exports,"formatNumber",{enumerable:!0,get:function(){return _index4.formatNumber}}),Object.defineProperty(exports,"formatPercent",{enumerable:!0,get:function(){return _index4.formatPercent}}),Object.defineProperty(exports,"formatPhone",{enumerable:!0,get:function(){return _index4.formatPhone}}),Object.defineProperty(exports,"formatPhoneAsTyped",{enumerable:!0,get:function(){return _index4.formatPhoneAsTyped}}),Object.defineProperty(exports,"formatRelative",{enumerable:!0,get:function(){return _index4.formatRelative}}),Object.defineProperty(exports,"formatRelativeTime",{enumerable:!0,get:function(){return _index4.formatRelativeTime}}),Object.defineProperty(exports,"formatTime",{enumerable:!0,get:function(){return _index4.formatTime}}),Object.defineProperty(exports,"formatTime12h",{enumerable:!0,get:function(){return _index4.formatTime12h}}),Object.defineProperty(exports,"formatTimeInWindowsZone",{enumerable:!0,get:function(){return _index4.formatTimeInWindowsZone}}),Object.defineProperty(exports,"formatTimeInZone",{enumerable:!0,get:function(){return _index4.formatTimeInZone}}),Object.defineProperty(exports,"getClientBuild",{enumerable:!0,get:function(){return _clientHeaders.getClientBuild}}),Object.defineProperty(exports,"getConfig",{enumerable:!0,get:function(){return _index.getConfig}}),Object.defineProperty(exports,"getConfigValue",{enumerable:!0,get:function(){return _index.getConfigValue}}),Object.defineProperty(exports,"getCountries",{enumerable:!0,get:function(){return _index4.getCountries}}),Object.defineProperty(exports,"getCountryCallingCode",{enumerable:!0,get:function(){return _index4.getCountryCallingCode}}),Object.defineProperty(exports,"getDeviceContext",{enumerable:!0,get:function(){return _index5.getDeviceContext}}),Object.defineProperty(exports,"getFormatterConfig",{enumerable:!0,get:function(){return _index4.getFormatterConfig}}),Object.defineProperty(exports,"getInitials",{enumerable:!0,get:function(){return _index4.getInitials}}),Object.defineProperty(exports,"getJWTExpiry",{enumerable:!0,get:function(){return _jwt.getJWTExpiry}}),Object.defineProperty(exports,"getMinAppVersion",{enumerable:!0,get:function(){return _minAppVersion.getMinAppVersion}}),Object.defineProperty(exports,"getNetworkStatus",{enumerable:!0,get:function(){return _index6.getNetworkStatus}}),Object.defineProperty(exports,"getPhoneCountries",{enumerable:!0,get:function(){return _index4.getPhoneCountries}}),Object.defineProperty(exports,"getSessionUser",{enumerable:!0,get:function(){return _authStore.getSessionUser}}),Object.defineProperty(exports,"getToken",{enumerable:!0,get:function(){return _authStore.getToken}}),Object.defineProperty(exports,"groupingForLocale",{enumerable:!0,get:function(){return _index4.groupingForLocale}}),Object.defineProperty(exports,"initUserAuth",{enumerable:!0,get:function(){return _initUserAuth.initUserAuth}}),Object.defineProperty(exports,"initWebority",{enumerable:!0,get:function(){return _initSDK.initWebority}}),Object.defineProperty(exports,"injectStore",{enumerable:!0,get:function(){return _userClient.injectStore}}),Object.defineProperty(exports,"injectUserAuth",{enumerable:!0,get:function(){return _userClient.injectUserAuth}}),Object.defineProperty(exports,"isAadhaar",{enumerable:!0,get:function(){return _index8.isAadhaar}}),Object.defineProperty(exports,"isAlphanumeric",{enumerable:!0,get:function(){return _index8.isAlphanumeric}}),Object.defineProperty(exports,"isApiError",{enumerable:!0,get:function(){return _index3.isApiError}}),Object.defineProperty(exports,"isBetween",{enumerable:!0,get:function(){return _index8.isBetween}}),Object.defineProperty(exports,"isBuildBelowMinimum",{enumerable:!0,get:function(){return _index9.isBuildBelowMinimum}}),Object.defineProperty(exports,"isDateAfter",{enumerable:!0,get:function(){return _index4.isDateAfter}}),Object.defineProperty(exports,"isDateBefore",{enumerable:!0,get:function(){return _index4.isDateBefore}}),Object.defineProperty(exports,"isEmail",{enumerable:!0,get:function(){return _index8.isEmail}}),Object.defineProperty(exports,"isGstin",{enumerable:!0,get:function(){return _index8.isGstin}}),Object.defineProperty(exports,"isHexColor",{enumerable:!0,get:function(){return _index8.isHexColor}}),Object.defineProperty(exports,"isIfsc",{enumerable:!0,get:function(){return _index8.isIfsc}}),Object.defineProperty(exports,"isIndianMobile",{enumerable:!0,get:function(){return _index8.isIndianMobile}}),Object.defineProperty(exports,"isIndianPincode",{enumerable:!0,get:function(){return _index8.isIndianPincode}}),Object.defineProperty(exports,"isInteger",{enumerable:!0,get:function(){return _index8.isInteger}}),Object.defineProperty(exports,"isJWTExpired",{enumerable:!0,get:function(){return _jwt.isJWTExpired}}),Object.defineProperty(exports,"isNeverSentError",{enumerable:!0,get:function(){return _retry.isNeverSentError}}),Object.defineProperty(exports,"isNoResponse",{enumerable:!0,get:function(){return _index3.isNoResponse}}),Object.defineProperty(exports,"isNonEmpty",{enumerable:!0,get:function(){return _index8.isNonEmpty}}),Object.defineProperty(exports,"isNumeric",{enumerable:!0,get:function(){return _index8.isNumeric}}),Object.defineProperty(exports,"isPan",{enumerable:!0,get:function(){return _index8.isPan}}),Object.defineProperty(exports,"isPhone",{enumerable:!0,get:function(){return _index8.isPhone}}),Object.defineProperty(exports,"isRetryableFailure",{enumerable:!0,get:function(){return _retry.isRetryableFailure}}),Object.defineProperty(exports,"isRetryableStatus",{enumerable:!0,get:function(){return _retry.isRetryableStatus}}),Object.defineProperty(exports,"isSameDay",{enumerable:!0,get:function(){return _index4.isSameDay}}),Object.defineProperty(exports,"isStorageAvailable",{enumerable:!0,get:function(){return _index7.isStorageAvailable}}),Object.defineProperty(exports,"isStrongPassword",{enumerable:!0,get:function(){return _index8.isStrongPassword}}),Object.defineProperty(exports,"isSupportedCountry",{enumerable:!0,get:function(){return _index4.isSupportedCountry}}),Object.defineProperty(exports,"isUrl",{enumerable:!0,get:function(){return _index8.isUrl}}),Object.defineProperty(exports,"isValidNationalNumber",{enumerable:!0,get:function(){return _index4.isValidNationalNumber}}),Object.defineProperty(exports,"isValidPhoneNumber",{enumerable:!0,get:function(){return _index4.isValidPhoneNumber}}),Object.defineProperty(exports,"isWorkspaceChangedError",{enumerable:!0,get:function(){return _workspace.isWorkspaceChangedError}}),Object.defineProperty(exports,"logCurl",{enumerable:!0,get:function(){return _curl.logCurl}}),Object.defineProperty(exports,"maxLength",{enumerable:!0,get:function(){return _index8.maxLength}}),Object.defineProperty(exports,"maxNationalNumberLength",{enumerable:!0,get:function(){return _index4.maxNationalNumberLength}}),Object.defineProperty(exports,"minLength",{enumerable:!0,get:function(){return _index8.minLength}}),Object.defineProperty(exports,"newTraceparent",{enumerable:!0,get:function(){return _requestDefaults.newTraceparent}}),Object.defineProperty(exports,"normalizePhone",{enumerable:!0,get:function(){return _index4.normalizePhone}}),Object.defineProperty(exports,"parseBuildNumber",{enumerable:!0,get:function(){return _index9.parseBuildNumber}}),Object.defineProperty(exports,"parseDeepLink",{enumerable:!0,get:function(){return _index2.parseDeepLink}}),Object.defineProperty(exports,"parsePhoneNumber",{enumerable:!0,get:function(){return _index4.parsePhoneNumber}}),Object.defineProperty(exports,"parsePhoneNumberFromString",{enumerable:!0,get:function(){return _index4.parsePhoneNumberFromString}}),Object.defineProperty(exports,"publicClient",{enumerable:!0,get:function(){return _publicClient.default}}),Object.defineProperty(exports,"refreshAccessToken",{enumerable:!0,get:function(){return _tokenRefresh.refreshAccessToken}}),Object.defineProperty(exports,"removeSessionUser",{enumerable:!0,get:function(){return _authStore.removeSessionUser}}),Object.defineProperty(exports,"removeToken",{enumerable:!0,get:function(){return _authStore.removeToken}}),Object.defineProperty(exports,"resendWhenUnanswered",{enumerable:!0,get:function(){return _retry.resendWhenUnanswered}}),Object.defineProperty(exports,"resetConfig",{enumerable:!0,get:function(){return _index.resetConfig}}),Object.defineProperty(exports,"resetRefreshState",{enumerable:!0,get:function(){return _userClient.resetRefreshState}}),Object.defineProperty(exports,"retryAfterMs",{enumerable:!0,get:function(){return _retry.retryAfterMs}}),Object.defineProperty(exports,"setConfig",{enumerable:!0,get:function(){return _index.setConfig}}),Object.defineProperty(exports,"setDeviceContext",{enumerable:!0,get:function(){return _index5.setDeviceContext}}),Object.defineProperty(exports,"setDeviceInfoImplementation",{enumerable:!0,get:function(){return _index9.setDeviceInfoImplementation}}),Object.defineProperty(exports,"setKeychainImplementation",{enumerable:!0,get:function(){return _authStore.setKeychainImplementation}}),Object.defineProperty(exports,"setLegacyTokenKeys",{enumerable:!0,get:function(){return _authStore.setLegacyTokenKeys}}),Object.defineProperty(exports,"setNetworkStatusImplementation",{enumerable:!0,get:function(){return _index6.setNetworkStatusImplementation}}),Object.defineProperty(exports,"setStorageImplementation",{enumerable:!0,get:function(){return _index7.setStorageImplementation}}),Object.defineProperty(exports,"splitPhoneNumber",{enumerable:!0,get:function(){return _index4.splitPhoneNumber}}),Object.defineProperty(exports,"startOfDay",{enumerable:!0,get:function(){return _index4.startOfDay}}),Object.defineProperty(exports,"storeSessionUser",{enumerable:!0,get:function(){return _authStore.storeSessionUser}}),Object.defineProperty(exports,"storeToken",{enumerable:!0,get:function(){return _authStore.storeToken}}),Object.defineProperty(exports,"toFieldPath",{enumerable:!0,get:function(){return _index3.toFieldPath}}),Object.defineProperty(exports,"useDeepLink",{enumerable:!0,get:function(){return _index2.useDeepLink}}),Object.defineProperty(exports,"useNetworkStatus",{enumerable:!0,get:function(){return _index6.useNetworkStatus}}),Object.defineProperty(exports,"useVersionCheck",{enumerable:!0,get:function(){return _index9.useVersionCheck}}),Object.defineProperty(exports,"userClient",{enumerable:!0,get:function(){return _userClient.default}}),Object.defineProperty(exports,"validatePhoneNumberLength",{enumerable:!0,get:function(){return _index4.validatePhoneNumberLength}});var cache,_clientHeaders=require("./api/clientHeaders.js"),_curl=require("./api/curl.js"),_minAppVersion=require("./api/minAppVersion.js"),_publicClient=_interopRequireDefault(require("./api/publicClient.js")),_requestDefaults=require("./api/requestDefaults.js"),_retry=require("./api/retry.js"),_tokenRefresh=require("./api/tokenRefresh.js"),_userClient=_interopRequireWildcard(require("./api/userClient.js")),_workspace=require("./api/workspace.js"),_authStore=require("./auth/authStore.js"),_jwt=require("./auth/jwt.js"),_index=require("./config/index.js"),_index2=require("./deepLink/index.js"),_index3=require("./errors/index.js"),_index4=require("./formatters/index.js"),_initSDK=require("./initSDK.js"),_initUserAuth=require("./initUserAuth.js"),_index5=require("./logger/index.js"),_crashlytics=require("./logger/crashlytics.js"),_index6=require("./network/index.js"),_status=require("./push/status.js"),_index7=require("./storage/index.js"),_base=require("./utils/base64.js"),_index8=require("./validators/index.js"),_index9=require("./versionCheck/index.js");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,n,i=Object.defineProperty,o={__proto__:null,default:e};if(Object(e)!==e)return o;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,o)}for(n in e)"default"!==n&&{}.hasOwnProperty.call(e,n)&&((t=i&&Object.getOwnPropertyDescriptor(e,n))&&(t.get||t.set)?i(o,n,t):o[n]=e[n]);return o}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ACCESS_TOKEN_KEY",{enumerable:!0,get:function(){return _authStore.ACCESS_TOKEN_KEY}}),Object.defineProperty(exports,"ACCOUNT_ID_HEADER",{enumerable:!0,get:function(){return _clientHeaders.ACCOUNT_ID_HEADER}}),Object.defineProperty(exports,"AsYouType",{enumerable:!0,get:function(){return _index4.AsYouType}}),Object.defineProperty(exports,"CLIENT_BUILD_HEADER",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_BUILD_HEADER}}),Object.defineProperty(exports,"CLIENT_KIND",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_KIND}}),Object.defineProperty(exports,"CLIENT_KIND_HEADER",{enumerable:!0,get:function(){return _clientHeaders.CLIENT_KIND_HEADER}}),Object.defineProperty(exports,"CONTRACT_ERROR_CODE",{enumerable:!0,get:function(){return _index3.CONTRACT_ERROR_CODE}}),Object.defineProperty(exports,"DeepLink",{enumerable:!0,get:function(){return _index2.DeepLink}}),Object.defineProperty(exports,"ENVIRONMENT_APP_ID_SUFFIX",{enumerable:!0,get:function(){return _appIdentity.ENVIRONMENT_APP_ID_SUFFIX}}),Object.defineProperty(exports,"IDEMPOTENCY_KEY_HEADER",{enumerable:!0,get:function(){return _retry.IDEMPOTENCY_KEY_HEADER}}),Object.defineProperty(exports,"LEGACY_REFRESH_TOKEN_LIFETIME_MS",{enumerable:!0,get:function(){return _authStore.LEGACY_REFRESH_TOKEN_LIFETIME_MS}}),Object.defineProperty(exports,"Logger",{enumerable:!0,get:function(){return _index5.Logger}}),Object.defineProperty(exports,"MIN_APP_VERSION_HEADER",{enumerable:!0,get:function(){return _minAppVersion.MIN_APP_VERSION_HEADER}}),Object.defineProperty(exports,"NETWORK_CODE",{enumerable:!0,get:function(){return _index3.NETWORK_CODE}}),Object.defineProperty(exports,"OFFLINE_CODE",{enumerable:!0,get:function(){return _index3.OFFLINE_CODE}}),Object.defineProperty(exports,"OFFLINE_MESSAGE",{enumerable:!0,get:function(){return _index3.OFFLINE_MESSAGE}}),Object.defineProperty(exports,"PUSH_STATUS",{enumerable:!0,get:function(){return _status.PUSH_STATUS}}),Object.defineProperty(exports,"REFRESH_TOKEN_KEY",{enumerable:!0,get:function(){return _authStore.REFRESH_TOKEN_KEY}}),Object.defineProperty(exports,"REQUEST_CANCELED_CODE",{enumerable:!0,get:function(){return _index3.REQUEST_CANCELED_CODE}}),Object.defineProperty(exports,"RequestOfflineError",{enumerable:!0,get:function(){return _userClient.RequestOfflineError}}),Object.defineProperty(exports,"SERVER_FAILURE_MESSAGE",{enumerable:!0,get:function(){return _index3.SERVER_FAILURE_MESSAGE}}),Object.defineProperty(exports,"SESSION_EXPIRED_CODE",{enumerable:!0,get:function(){return _userClient.SESSION_EXPIRED_CODE}}),Object.defineProperty(exports,"SESSION_REVOKED_CODE",{enumerable:!0,get:function(){return _userClient.SESSION_REVOKED_CODE}}),Object.defineProperty(exports,"SESSION_USER_KEY",{enumerable:!0,get:function(){return _authStore.SESSION_USER_KEY}}),Object.defineProperty(exports,"Storage",{enumerable:!0,get:function(){return _index7.Storage}}),Object.defineProperty(exports,"TIMEOUT_CODE",{enumerable:!0,get:function(){return _index3.TIMEOUT_CODE}}),Object.defineProperty(exports,"TIMEOUT_MESSAGE",{enumerable:!0,get:function(){return _index3.TIMEOUT_MESSAGE}}),Object.defineProperty(exports,"TRACEPARENT_HEADER",{enumerable:!0,get:function(){return _requestDefaults.TRACEPARENT_HEADER}}),Object.defineProperty(exports,"UNEXPECTED_MESSAGE",{enumerable:!0,get:function(){return _index3.UNEXPECTED_MESSAGE}}),Object.defineProperty(exports,"UNREACHABLE_MESSAGE",{enumerable:!0,get:function(){return _index3.UNREACHABLE_MESSAGE}}),Object.defineProperty(exports,"VersionCheck",{enumerable:!0,get:function(){return _index9.VersionCheck}}),Object.defineProperty(exports,"WORKSPACE_CHANGED_CODE",{enumerable:!0,get:function(){return _workspace.WORKSPACE_CHANGED_CODE}}),Object.defineProperty(exports,"WorkspaceChangedError",{enumerable:!0,get:function(){return _workspace.WorkspaceChangedError}}),Object.defineProperty(exports,"addDays",{enumerable:!0,get:function(){return _index4.addDays}}),Object.defineProperty(exports,"addMinAppVersionListener",{enumerable:!0,get:function(){return _minAppVersion.addMinAppVersionListener}}),Object.defineProperty(exports,"addNetworkStatusListener",{enumerable:!0,get:function(){return _index6.addNetworkStatusListener}}),Object.defineProperty(exports,"addSessionEndedListener",{enumerable:!0,get:function(){return _authStore.addSessionEndedListener}}),Object.defineProperty(exports,"apiErrorMessage",{enumerable:!0,get:function(){return _index3.apiErrorMessage}}),Object.defineProperty(exports,"applyRequestDefaults",{enumerable:!0,get:function(){return _requestDefaults.applyRequestDefaults}}),Object.defineProperty(exports,"attachRetry",{enumerable:!0,get:function(){return _retry.attachRetry}}),Object.defineProperty(exports,"buildCurl",{enumerable:!0,get:function(){return _curl.buildCurl}}),Object.defineProperty(exports,"clampNationalNumber",{enumerable:!0,get:function(){return _index4.clampNationalNumber}}),Object.defineProperty(exports,"clearSession",{enumerable:!0,get:function(){return _authStore.clearSession}}),Object.defineProperty(exports,"configureFormatters",{enumerable:!0,get:function(){return _index4.configureFormatters}}),Object.defineProperty(exports,"configureLogger",{enumerable:!0,get:function(){return _index5.configureLogger}}),Object.defineProperty(exports,"countryFlagEmoji",{enumerable:!0,get:function(){return _index4.countryFlagEmoji}}),Object.defineProperty(exports,"crashlyticsRemoteLogger",{enumerable:!0,get:function(){return _crashlytics.crashlyticsRemoteLogger}}),Object.defineProperty(exports,"decodeJWT",{enumerable:!0,get:function(){return _jwt.decodeJWT}}),Object.defineProperty(exports,"detectPhoneCountry",{enumerable:!0,get:function(){return _index4.detectPhoneCountry}}),Object.defineProperty(exports,"diffMs",{enumerable:!0,get:function(){return _index4.diffMs}}),Object.defineProperty(exports,"encodeBase64",{enumerable:!0,get:function(){return _base.encodeBase64}}),Object.defineProperty(exports,"extractApiError",{enumerable:!0,get:function(){return _index3.extractApiError}}),Object.defineProperty(exports,"formatCompactNumber",{enumerable:!0,get:function(){return _index4.formatCompactNumber}}),Object.defineProperty(exports,"formatCurrency",{enumerable:!0,get:function(){return _index4.formatCurrency}}),Object.defineProperty(exports,"formatDate",{enumerable:!0,get:function(){return _index4.formatDate}}),Object.defineProperty(exports,"formatDateDDMMMYYYY",{enumerable:!0,get:function(){return _index4.formatDateDDMMMYYYY}}),Object.defineProperty(exports,"formatDateISO",{enumerable:!0,get:function(){return _index4.formatDateISO}}),Object.defineProperty(exports,"formatDatePattern",{enumerable:!0,get:function(){return _index4.formatDatePattern}}),Object.defineProperty(exports,"formatDateTime",{enumerable:!0,get:function(){return _index4.formatDateTime}}),Object.defineProperty(exports,"formatMinor",{enumerable:!0,get:function(){return _index4.formatMinor}}),Object.defineProperty(exports,"formatNumber",{enumerable:!0,get:function(){return _index4.formatNumber}}),Object.defineProperty(exports,"formatPercent",{enumerable:!0,get:function(){return _index4.formatPercent}}),Object.defineProperty(exports,"formatPhone",{enumerable:!0,get:function(){return _index4.formatPhone}}),Object.defineProperty(exports,"formatPhoneAsTyped",{enumerable:!0,get:function(){return _index4.formatPhoneAsTyped}}),Object.defineProperty(exports,"formatRelative",{enumerable:!0,get:function(){return _index4.formatRelative}}),Object.defineProperty(exports,"formatRelativeTime",{enumerable:!0,get:function(){return _index4.formatRelativeTime}}),Object.defineProperty(exports,"formatTime",{enumerable:!0,get:function(){return _index4.formatTime}}),Object.defineProperty(exports,"formatTime12h",{enumerable:!0,get:function(){return _index4.formatTime12h}}),Object.defineProperty(exports,"formatTimeInWindowsZone",{enumerable:!0,get:function(){return _index4.formatTimeInWindowsZone}}),Object.defineProperty(exports,"formatTimeInZone",{enumerable:!0,get:function(){return _index4.formatTimeInZone}}),Object.defineProperty(exports,"getClientBuild",{enumerable:!0,get:function(){return _clientHeaders.getClientBuild}}),Object.defineProperty(exports,"getConfig",{enumerable:!0,get:function(){return _index.getConfig}}),Object.defineProperty(exports,"getConfigValue",{enumerable:!0,get:function(){return _index.getConfigValue}}),Object.defineProperty(exports,"getCountries",{enumerable:!0,get:function(){return _index4.getCountries}}),Object.defineProperty(exports,"getCountryCallingCode",{enumerable:!0,get:function(){return _index4.getCountryCallingCode}}),Object.defineProperty(exports,"getDeviceContext",{enumerable:!0,get:function(){return _index5.getDeviceContext}}),Object.defineProperty(exports,"getFormatterConfig",{enumerable:!0,get:function(){return _index4.getFormatterConfig}}),Object.defineProperty(exports,"getInitials",{enumerable:!0,get:function(){return _index4.getInitials}}),Object.defineProperty(exports,"getJWTExpiry",{enumerable:!0,get:function(){return _jwt.getJWTExpiry}}),Object.defineProperty(exports,"getMinAppVersion",{enumerable:!0,get:function(){return _minAppVersion.getMinAppVersion}}),Object.defineProperty(exports,"getNetworkStatus",{enumerable:!0,get:function(){return _index6.getNetworkStatus}}),Object.defineProperty(exports,"getPhoneCountries",{enumerable:!0,get:function(){return _index4.getPhoneCountries}}),Object.defineProperty(exports,"getSessionUser",{enumerable:!0,get:function(){return _authStore.getSessionUser}}),Object.defineProperty(exports,"getToken",{enumerable:!0,get:function(){return _authStore.getToken}}),Object.defineProperty(exports,"groupingForLocale",{enumerable:!0,get:function(){return _index4.groupingForLocale}}),Object.defineProperty(exports,"initUserAuth",{enumerable:!0,get:function(){return _initUserAuth.initUserAuth}}),Object.defineProperty(exports,"initWebority",{enumerable:!0,get:function(){return _initSDK.initWebority}}),Object.defineProperty(exports,"injectStore",{enumerable:!0,get:function(){return _userClient.injectStore}}),Object.defineProperty(exports,"injectUserAuth",{enumerable:!0,get:function(){return _userClient.injectUserAuth}}),Object.defineProperty(exports,"installedAppId",{enumerable:!0,get:function(){return _appIdentity.installedAppId}}),Object.defineProperty(exports,"isAadhaar",{enumerable:!0,get:function(){return _index8.isAadhaar}}),Object.defineProperty(exports,"isAlphanumeric",{enumerable:!0,get:function(){return _index8.isAlphanumeric}}),Object.defineProperty(exports,"isApiError",{enumerable:!0,get:function(){return _index3.isApiError}}),Object.defineProperty(exports,"isBetween",{enumerable:!0,get:function(){return _index8.isBetween}}),Object.defineProperty(exports,"isBuildBelowMinimum",{enumerable:!0,get:function(){return _index9.isBuildBelowMinimum}}),Object.defineProperty(exports,"isDateAfter",{enumerable:!0,get:function(){return _index4.isDateAfter}}),Object.defineProperty(exports,"isDateBefore",{enumerable:!0,get:function(){return _index4.isDateBefore}}),Object.defineProperty(exports,"isEmail",{enumerable:!0,get:function(){return _index8.isEmail}}),Object.defineProperty(exports,"isGstin",{enumerable:!0,get:function(){return _index8.isGstin}}),Object.defineProperty(exports,"isHexColor",{enumerable:!0,get:function(){return _index8.isHexColor}}),Object.defineProperty(exports,"isIfsc",{enumerable:!0,get:function(){return _index8.isIfsc}}),Object.defineProperty(exports,"isIndianMobile",{enumerable:!0,get:function(){return _index8.isIndianMobile}}),Object.defineProperty(exports,"isIndianPincode",{enumerable:!0,get:function(){return _index8.isIndianPincode}}),Object.defineProperty(exports,"isInteger",{enumerable:!0,get:function(){return _index8.isInteger}}),Object.defineProperty(exports,"isJWTExpired",{enumerable:!0,get:function(){return _jwt.isJWTExpired}}),Object.defineProperty(exports,"isNeverSentError",{enumerable:!0,get:function(){return _retry.isNeverSentError}}),Object.defineProperty(exports,"isNoResponse",{enumerable:!0,get:function(){return _index3.isNoResponse}}),Object.defineProperty(exports,"isNonEmpty",{enumerable:!0,get:function(){return _index8.isNonEmpty}}),Object.defineProperty(exports,"isNumeric",{enumerable:!0,get:function(){return _index8.isNumeric}}),Object.defineProperty(exports,"isPan",{enumerable:!0,get:function(){return _index8.isPan}}),Object.defineProperty(exports,"isPhone",{enumerable:!0,get:function(){return _index8.isPhone}}),Object.defineProperty(exports,"isRetryableFailure",{enumerable:!0,get:function(){return _retry.isRetryableFailure}}),Object.defineProperty(exports,"isRetryableStatus",{enumerable:!0,get:function(){return _retry.isRetryableStatus}}),Object.defineProperty(exports,"isSameDay",{enumerable:!0,get:function(){return _index4.isSameDay}}),Object.defineProperty(exports,"isStorageAvailable",{enumerable:!0,get:function(){return _index7.isStorageAvailable}}),Object.defineProperty(exports,"isStrongPassword",{enumerable:!0,get:function(){return _index8.isStrongPassword}}),Object.defineProperty(exports,"isSupportedCountry",{enumerable:!0,get:function(){return _index4.isSupportedCountry}}),Object.defineProperty(exports,"isUrl",{enumerable:!0,get:function(){return _index8.isUrl}}),Object.defineProperty(exports,"isValidNationalNumber",{enumerable:!0,get:function(){return _index4.isValidNationalNumber}}),Object.defineProperty(exports,"isValidPhoneNumber",{enumerable:!0,get:function(){return _index4.isValidPhoneNumber}}),Object.defineProperty(exports,"isWorkspaceChangedError",{enumerable:!0,get:function(){return _workspace.isWorkspaceChangedError}}),Object.defineProperty(exports,"logCurl",{enumerable:!0,get:function(){return _curl.logCurl}}),Object.defineProperty(exports,"maxLength",{enumerable:!0,get:function(){return _index8.maxLength}}),Object.defineProperty(exports,"maxNationalNumberLength",{enumerable:!0,get:function(){return _index4.maxNationalNumberLength}}),Object.defineProperty(exports,"minLength",{enumerable:!0,get:function(){return _index8.minLength}}),Object.defineProperty(exports,"newTraceparent",{enumerable:!0,get:function(){return _requestDefaults.newTraceparent}}),Object.defineProperty(exports,"normalizePhone",{enumerable:!0,get:function(){return _index4.normalizePhone}}),Object.defineProperty(exports,"parseBuildNumber",{enumerable:!0,get:function(){return _index9.parseBuildNumber}}),Object.defineProperty(exports,"parseDeepLink",{enumerable:!0,get:function(){return _index2.parseDeepLink}}),Object.defineProperty(exports,"parsePhoneNumber",{enumerable:!0,get:function(){return _index4.parsePhoneNumber}}),Object.defineProperty(exports,"parsePhoneNumberFromString",{enumerable:!0,get:function(){return _index4.parsePhoneNumberFromString}}),Object.defineProperty(exports,"publicClient",{enumerable:!0,get:function(){return _publicClient.default}}),Object.defineProperty(exports,"refreshAccessToken",{enumerable:!0,get:function(){return _tokenRefresh.refreshAccessToken}}),Object.defineProperty(exports,"removeSessionUser",{enumerable:!0,get:function(){return _authStore.removeSessionUser}}),Object.defineProperty(exports,"removeToken",{enumerable:!0,get:function(){return _authStore.removeToken}}),Object.defineProperty(exports,"resendWhenUnanswered",{enumerable:!0,get:function(){return _retry.resendWhenUnanswered}}),Object.defineProperty(exports,"resetConfig",{enumerable:!0,get:function(){return _index.resetConfig}}),Object.defineProperty(exports,"resetRefreshState",{enumerable:!0,get:function(){return _userClient.resetRefreshState}}),Object.defineProperty(exports,"retryAfterMs",{enumerable:!0,get:function(){return _retry.retryAfterMs}}),Object.defineProperty(exports,"setConfig",{enumerable:!0,get:function(){return _index.setConfig}}),Object.defineProperty(exports,"setDeviceContext",{enumerable:!0,get:function(){return _index5.setDeviceContext}}),Object.defineProperty(exports,"setDeviceInfoImplementation",{enumerable:!0,get:function(){return _index9.setDeviceInfoImplementation}}),Object.defineProperty(exports,"setKeychainImplementation",{enumerable:!0,get:function(){return _authStore.setKeychainImplementation}}),Object.defineProperty(exports,"setLegacyTokenKeys",{enumerable:!0,get:function(){return _authStore.setLegacyTokenKeys}}),Object.defineProperty(exports,"setNetworkStatusImplementation",{enumerable:!0,get:function(){return _index6.setNetworkStatusImplementation}}),Object.defineProperty(exports,"setStorageImplementation",{enumerable:!0,get:function(){return _index7.setStorageImplementation}}),Object.defineProperty(exports,"splitPhoneNumber",{enumerable:!0,get:function(){return _index4.splitPhoneNumber}}),Object.defineProperty(exports,"startOfDay",{enumerable:!0,get:function(){return _index4.startOfDay}}),Object.defineProperty(exports,"storeSessionUser",{enumerable:!0,get:function(){return _authStore.storeSessionUser}}),Object.defineProperty(exports,"storeToken",{enumerable:!0,get:function(){return _authStore.storeToken}}),Object.defineProperty(exports,"toFieldPath",{enumerable:!0,get:function(){return _index3.toFieldPath}}),Object.defineProperty(exports,"useDeepLink",{enumerable:!0,get:function(){return _index2.useDeepLink}}),Object.defineProperty(exports,"useNetworkStatus",{enumerable:!0,get:function(){return _index6.useNetworkStatus}}),Object.defineProperty(exports,"useVersionCheck",{enumerable:!0,get:function(){return _index9.useVersionCheck}}),Object.defineProperty(exports,"userClient",{enumerable:!0,get:function(){return _userClient.default}}),Object.defineProperty(exports,"validatePhoneNumberLength",{enumerable:!0,get:function(){return _index4.validatePhoneNumberLength}});var cache,_clientHeaders=require("./api/clientHeaders.js"),_curl=require("./api/curl.js"),_minAppVersion=require("./api/minAppVersion.js"),_publicClient=_interopRequireDefault(require("./api/publicClient.js")),_requestDefaults=require("./api/requestDefaults.js"),_retry=require("./api/retry.js"),_tokenRefresh=require("./api/tokenRefresh.js"),_userClient=_interopRequireWildcard(require("./api/userClient.js")),_workspace=require("./api/workspace.js"),_authStore=require("./auth/authStore.js"),_jwt=require("./auth/jwt.js"),_index=require("./config/index.js"),_appIdentity=require("./config/appIdentity.js"),_index2=require("./deepLink/index.js"),_index3=require("./errors/index.js"),_index4=require("./formatters/index.js"),_initSDK=require("./initSDK.js"),_initUserAuth=require("./initUserAuth.js"),_index5=require("./logger/index.js"),_crashlytics=require("./logger/crashlytics.js"),_index6=require("./network/index.js"),_status=require("./push/status.js"),_index7=require("./storage/index.js"),_base=require("./utils/base64.js"),_index8=require("./validators/index.js"),_index9=require("./versionCheck/index.js");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,n,i=Object.defineProperty,o={__proto__:null,default:e};if(Object(e)!==e)return o;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,o)}for(n in e)"default"!==n&&{}.hasOwnProperty.call(e,n)&&((t=i&&Object.getOwnPropertyDescriptor(e,n))&&(t.get||t.set)?i(o,n,t):o[n]=e[n]);return o}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initWebority=void 0;var cache,Application=_interopRequireWildcard(require("expo-application")),_authStore=require("./auth/authStore.js"),_index=require("./config/index.js"),_index2=require("./logger/index.js"),_networkStatus=require("./network/networkStatus.js"),_index3=require("./storage/index.js");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,i,o=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((t=o&&Object.getOwnPropertyDescriptor(e,i))&&(t.get||t.set)?o(n,i,t):n[i]=e[i]);return n}const initWebority=e=>{if(!e.baseUrl)throw new Error("baseUrl is required for Webority packages initialisation");if(void 0===e.remoteLogger)throw new Error("remoteLogger is required for Webority packages initialisation: pass a RemoteLogger, or null for a build without crash reporting");if(!e.appId)throw new Error("appId is required for Webority packages initialisation");const r=Application.applicationId;if(null!==r&&e.appId!==r)throw new Error(`This build's settings are for ${e.appId} but the installed app is ${r}. Run mobile-tools prebuild for the right environment, then rebuild the bundle.`);(0,_index2.setRemoteLogger)(e.remoteLogger),(0,_index.setConfig)({baseUrl:e.baseUrl,loggingEnabled:e.loggingEnabled??!0,logLevel:e.logLevel||_index.DEFAULT_LOG_LEVEL,environment:e.environment||"Development",country:(e.country||"in").toLowerCase(),appId:e.appId,appVersion:e.appVersion??null,commit:e.commit??null,appBuild:e.appBuild??null,appStoreId:e.appStoreId??null,logCurl:e.logCurl??!1,timeoutMs:e.timeoutMs??_index.DEFAULT_TIMEOUT_MS,retries:e.retries??_index.DEFAULT_RETRIES});const t=e.backends;t?.storage&&(0,_index3.setStorageImplementation)(t.storage),t?.keychain&&(0,_authStore.setKeychainImplementation)(t.keychain),t?.network&&(0,_networkStatus.setNetworkStatusImplementation)(t.network),_index2.Logger.info("[@webority/mobile-core] initialized")};exports.initWebority=initWebority;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.initWebority=void 0;var cache,Application=_interopRequireWildcard(require("expo-application")),_authStore=require("./auth/authStore.js"),_index=require("./config/index.js"),_appIdentity=require("./config/appIdentity.js"),_index2=require("./logger/index.js"),_networkStatus=require("./network/networkStatus.js"),_index3=require("./storage/index.js");function _interopRequireWildcard(e,i){if(!i&&e&&e.__esModule)return e;var t,r,o=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((t=o&&Object.getOwnPropertyDescriptor(e,r))&&(t.get||t.set)?o(n,r,t):n[r]=e[r]);return n}const initWebority=e=>{if(!e.baseUrl)throw new Error("baseUrl is required for Webority packages initialisation");if(void 0===e.remoteLogger)throw new Error("remoteLogger is required for Webority packages initialisation: pass a RemoteLogger, or null for a build without crash reporting");if(!e.appId)throw new Error("appId is required for Webority packages initialisation");if(!e.environment)throw new Error("environment is required for Webority packages initialisation: pass ENVIRONMENT from the compiled settings");const i=(0,_appIdentity.installedAppId)(e.appId,e.environment),t=Application.applicationId;if(null!==t&&i!==t)throw new Error(`This build's settings are for ${i} (store id ${e.appId}, ${e.environment}) but the installed app is ${t}. Run mobile-tools prebuild for the right environment, then rebuild the bundle.`);(0,_index2.setRemoteLogger)(e.remoteLogger),(0,_index.setConfig)({baseUrl:e.baseUrl,loggingEnabled:e.loggingEnabled??!0,logLevel:e.logLevel||_index.DEFAULT_LOG_LEVEL,environment:e.environment,country:(e.country||"in").toLowerCase(),appId:e.appId,appVersion:e.appVersion??null,commit:e.commit??null,appBuild:e.appBuild??null,appStoreId:e.appStoreId??null,logCurl:e.logCurl??!1,timeoutMs:e.timeoutMs??_index.DEFAULT_TIMEOUT_MS,retries:e.retries??_index.DEFAULT_RETRIES});const r=e.backends;r?.storage&&(0,_index3.setStorageImplementation)(r.storage),r?.keychain&&(0,_authStore.setKeychainImplementation)(r.keychain),r?.network&&(0,_networkStatus.setNetworkStatusImplementation)(r.network),_index2.Logger.info("[@webority/mobile-core] initialized")};exports.initWebority=initWebority;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useOtaUpdates=exports.stopOtaUpdates=exports.setOtaUpdatesImplementation=exports.normalizeAppIdentity=exports.initOtaUpdates=exports.checkForOtaUpdate=exports.applyOtaUpdate=exports.OTA_LAST_LAUNCH_KEY=exports.DEFAULT_MIN_CHECK_INTERVAL_MS=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../config/index.js"),_index2=require("../logger/index.js"),_index3=require("../storage/index.js");const PREFIX="[@webority/mobile-core] OTA updates:",REPORTED_KEY="@webority/ota/last-reported-update-id",OTA_LAST_LAUNCH_KEY=exports.OTA_LAST_LAUNCH_KEY="@webority/ota/last-launch",ENV_IDENTITY_SUFFIXES=[".staging",".development"],DEFAULT_MIN_CHECK_INTERVAL_MS=exports.DEFAULT_MIN_CHECK_INTERVAL_MS=9e5,EVENT_TIMEOUT_MS=1e4;let resolved,override=null;const setOtaUpdatesImplementation=e=>{override=e};exports.setOtaUpdatesImplementation=setOtaUpdatesImplementation;const resolveUpdates=()=>{if(override)return override;if(void 0!==resolved)return resolved;try{resolved=require("expo-updates")}catch{resolved=null}return resolved},INITIAL_STATE={status:"unavailable",runningUpdateId:null,error:null,lastCheckedAt:null};let state=INITIAL_STATE;const subscribers=new Set,setState=e=>{state={...state,...e};for(const e of subscribers)e()};let config=null,stateSubscription=null,appStateSubscription=null,checking=null,lastCheckStartedAt=0,lastReportedError=null;const messageOf=e=>e instanceof Error?e.message:String(e),normalizeAppIdentity=e=>{const t=String(e??"").trim().toLowerCase(),a=ENV_IDENTITY_SUFFIXES.find(e=>t.endsWith(e));return a?t.slice(0,-a.length):t};exports.normalizeAppIdentity=normalizeAppIdentity;const ownIdentity=()=>config?.appIdentifier??(0,_index.getConfigValue)("appId",null)??null,identityMismatch=e=>{const t=e?.extra?.webority?.appIdentifier;if(!t)return null;const a=ownIdentity();return a&&normalizeAppIdentity(t)===normalizeAppIdentity(a)?null:`identity mismatch: the update is for '${t}' but this app is '${a??"unset"}'`},postEvent=async(e,t,a)=>{const r=config?.serverUrl;if(!r||!e)return;const n=new AbortController,s=setTimeout(()=>n.abort(),1e4);try{await fetch(`${r.replace(/\/+$/,"")}/ota/updates/${encodeURIComponent(e)}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t,platform:_reactNative.Platform.OS,runtimeVersion:resolveUpdates()?.runtimeVersion??null,message:a}),signal:n.signal})}catch(e){_index2.Logger.info(`${PREFIX} the ${t} event was not reported: ${messageOf(e)}`)}finally{clearTimeout(s)}},reportError=(e,t)=>{setState({status:"error",error:t});const a=`${e??""}|${t}`;a!==lastReportedError&&(lastReportedError=a,_index2.Logger.error(`${PREFIX} ${t}`),postEvent(e,"error",t))},recordLaunch=async e=>{const t={updateId:e.updateId,channel:e.channel??null,runtimeVersion:e.runtimeVersion,isEmbeddedLaunch:e.isEmbeddedLaunch,isEmergencyLaunch:e.isEmergencyLaunch??!1,emergencyLaunchReason:e.emergencyLaunchReason??null,launchedAtUtc:(new Date).toISOString()};await _index3.Storage.setItem(OTA_LAST_LAUNCH_KEY,JSON.stringify(t))||_index2.Logger.error(`${PREFIX} the launch record was not saved`)},reportRunningUpdate=async e=>{if(await recordLaunch(e),e.isEmbeddedLaunch||!e.updateId)return;const t=identityMismatch(e.manifest);t?reportError(e.updateId,t):await _index3.Storage.getItem(REPORTED_KEY)!==e.updateId&&(await postEvent(e.updateId,"success"),await _index3.Storage.setItem(REPORTED_KEY,e.updateId),_index2.Logger.info(`${PREFIX} running update ${e.updateId}`))},onStateChange=e=>{const t=e.downloadError??e.checkError;if(t){const a=e.latestManifest?.id??resolveUpdates()?.updateId;return void reportError(a,t.message)}e.isChecking?setState({status:"checking"}):e.isDownloading?setState({status:"downloading"}):e.isUpdatePending&&setState({status:"ready",error:null})},checkForOtaUpdate=()=>{const e=resolveUpdates();if(!config||!e?.isEnabled)return Promise.resolve("unavailable");if(checking)return checking;lastCheckStartedAt=Date.now();return checking=(async()=>{try{setState({status:"checking"});const t=await e.checkForUpdateAsync();if(t.isAvailable){const e=identityMismatch(t.manifest);if(e)return reportError(t.manifest?.id,e),"error"}return t.isAvailable||t.isRollBackToEmbedded?(setState({status:"downloading"}),await e.fetchUpdateAsync(),setState({status:"ready",error:null}),"ready"):(setState({status:"ready"===state.status?"ready":"idle",error:null}),state.status)}catch(t){return reportError(e.updateId,messageOf(t)),"error"}finally{setState({lastCheckedAt:Date.now()}),checking=null}})(),checking};exports.checkForOtaUpdate=checkForOtaUpdate;const onAppStateChange=e=>{if("active"!==e||!1===config?.checkOnForeground)return;const t=config?.minCheckIntervalMs??DEFAULT_MIN_CHECK_INTERVAL_MS;Date.now()-lastCheckStartedAt<t||checkForOtaUpdate()},initOtaUpdates=e=>{const t=null===config;if(config=e,!t)return;const a=resolveUpdates();if(!a?.isEnabled)return void setState({status:"unavailable"});setState({status:"idle",runningUpdateId:a.isEmbeddedLaunch?null:a.updateId}),reportRunningUpdate(a).catch(e=>{_index2.Logger.info(`${PREFIX} start-up report failed: ${messageOf(e)}`)}),"function"==typeof a.addUpdatesStateChangeListener&&(stateSubscription=a.addUpdatesStateChangeListener(e=>onStateChange(e.context))),appStateSubscription=_reactNative.AppState.addEventListener("change",onAppStateChange);"ON_LOAD"===a.checkAutomatically||"WIFI_ONLY"===a.checkAutomatically||checkForOtaUpdate()};exports.initOtaUpdates=initOtaUpdates;const applyOtaUpdate=async()=>{const e=resolveUpdates();e?.isEnabled&&"ready"===state.status&&await e.reloadAsync()};exports.applyOtaUpdate=applyOtaUpdate;const stopOtaUpdates=()=>{stateSubscription?.remove(),appStateSubscription?.remove(),stateSubscription=null,appStateSubscription=null,config=null,checking=null,lastCheckStartedAt=0,lastReportedError=null,resolved=void 0,setState(INITIAL_STATE)};exports.stopOtaUpdates=stopOtaUpdates;const subscribe=e=>(subscribers.add(e),()=>{subscribers.delete(e)}),getSnapshot=()=>state,useOtaUpdates=()=>({...(0,_react.useSyncExternalStore)(subscribe,getSnapshot,getSnapshot),check:checkForOtaUpdate,apply:applyOtaUpdate});exports.useOtaUpdates=useOtaUpdates;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useOtaUpdates=exports.stopOtaUpdates=exports.setOtaUpdatesImplementation=exports.normalizeAppIdentity=exports.initOtaUpdates=exports.checkForOtaUpdate=exports.applyOtaUpdate=exports.OTA_LAST_LAUNCH_KEY=exports.DEFAULT_MIN_CHECK_INTERVAL_MS=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../config/index.js"),_appIdentity=require("../config/appIdentity.js"),_index2=require("../logger/index.js"),_index3=require("../storage/index.js");const PREFIX="[@webority/mobile-core] OTA updates:",REPORTED_KEY="@webority/ota/last-reported-update-id",OTA_LAST_LAUNCH_KEY=exports.OTA_LAST_LAUNCH_KEY="@webority/ota/last-launch",ENV_IDENTITY_SUFFIXES=Object.values(_appIdentity.ENVIRONMENT_APP_ID_SUFFIX).filter(e=>""!==e),DEFAULT_MIN_CHECK_INTERVAL_MS=exports.DEFAULT_MIN_CHECK_INTERVAL_MS=9e5,EVENT_TIMEOUT_MS=1e4;let resolved,override=null;const setOtaUpdatesImplementation=e=>{override=e};exports.setOtaUpdatesImplementation=setOtaUpdatesImplementation;const resolveUpdates=()=>{if(override)return override;if(void 0!==resolved)return resolved;try{resolved=require("expo-updates")}catch{resolved=null}return resolved},INITIAL_STATE={status:"unavailable",runningUpdateId:null,error:null,lastCheckedAt:null};let state=INITIAL_STATE;const subscribers=new Set,setState=e=>{state={...state,...e};for(const e of subscribers)e()};let config=null,stateSubscription=null,appStateSubscription=null,checking=null,lastCheckStartedAt=0,lastReportedError=null;const messageOf=e=>e instanceof Error?e.message:String(e),normalizeAppIdentity=e=>{const t=String(e??"").trim().toLowerCase(),a=ENV_IDENTITY_SUFFIXES.find(e=>t.endsWith(e));return a?t.slice(0,-a.length):t};exports.normalizeAppIdentity=normalizeAppIdentity;const ownIdentity=()=>config?.appIdentifier??(0,_index.getConfigValue)("appId",null)??null,identityMismatch=e=>{const t=e?.extra?.webority?.appIdentifier;if(!t)return null;const a=ownIdentity();return a&&normalizeAppIdentity(t)===normalizeAppIdentity(a)?null:`identity mismatch: the update is for '${t}' but this app is '${a??"unset"}'`},postEvent=async(e,t,a)=>{const r=config?.serverUrl;if(!r||!e)return;const n=new AbortController,s=setTimeout(()=>n.abort(),1e4);try{await fetch(`${r.replace(/\/+$/,"")}/ota/updates/${encodeURIComponent(e)}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t,platform:_reactNative.Platform.OS,runtimeVersion:resolveUpdates()?.runtimeVersion??null,message:a}),signal:n.signal})}catch(e){_index2.Logger.info(`${PREFIX} the ${t} event was not reported: ${messageOf(e)}`)}finally{clearTimeout(s)}},reportError=(e,t)=>{setState({status:"error",error:t});const a=`${e??""}|${t}`;a!==lastReportedError&&(lastReportedError=a,_index2.Logger.error(`${PREFIX} ${t}`),postEvent(e,"error",t))},recordLaunch=async e=>{const t={updateId:e.updateId,channel:e.channel??null,runtimeVersion:e.runtimeVersion,isEmbeddedLaunch:e.isEmbeddedLaunch,isEmergencyLaunch:e.isEmergencyLaunch??!1,emergencyLaunchReason:e.emergencyLaunchReason??null,launchedAtUtc:(new Date).toISOString()};await _index3.Storage.setItem(OTA_LAST_LAUNCH_KEY,JSON.stringify(t))||_index2.Logger.error(`${PREFIX} the launch record was not saved`)},reportRunningUpdate=async e=>{if(await recordLaunch(e),e.isEmbeddedLaunch||!e.updateId)return;const t=identityMismatch(e.manifest);t?reportError(e.updateId,t):await _index3.Storage.getItem(REPORTED_KEY)!==e.updateId&&(await postEvent(e.updateId,"success"),await _index3.Storage.setItem(REPORTED_KEY,e.updateId),_index2.Logger.info(`${PREFIX} running update ${e.updateId}`))},onStateChange=e=>{const t=e.downloadError??e.checkError;if(t){const a=e.latestManifest?.id??resolveUpdates()?.updateId;return void reportError(a,t.message)}e.isChecking?setState({status:"checking"}):e.isDownloading?setState({status:"downloading"}):e.isUpdatePending&&setState({status:"ready",error:null})},checkForOtaUpdate=()=>{const e=resolveUpdates();if(!config||!e?.isEnabled)return Promise.resolve("unavailable");if(checking)return checking;lastCheckStartedAt=Date.now();return checking=(async()=>{try{setState({status:"checking"});const t=await e.checkForUpdateAsync();if(t.isAvailable){const e=identityMismatch(t.manifest);if(e)return reportError(t.manifest?.id,e),"error"}return t.isAvailable||t.isRollBackToEmbedded?(setState({status:"downloading"}),await e.fetchUpdateAsync(),setState({status:"ready",error:null}),"ready"):(setState({status:"ready"===state.status?"ready":"idle",error:null}),state.status)}catch(t){return reportError(e.updateId,messageOf(t)),"error"}finally{setState({lastCheckedAt:Date.now()}),checking=null}})(),checking};exports.checkForOtaUpdate=checkForOtaUpdate;const onAppStateChange=e=>{if("active"!==e||!1===config?.checkOnForeground)return;const t=config?.minCheckIntervalMs??DEFAULT_MIN_CHECK_INTERVAL_MS;Date.now()-lastCheckStartedAt<t||checkForOtaUpdate()},initOtaUpdates=e=>{const t=null===config;if(config=e,!t)return;const a=resolveUpdates();if(!a?.isEnabled)return void setState({status:"unavailable"});setState({status:"idle",runningUpdateId:a.isEmbeddedLaunch?null:a.updateId}),reportRunningUpdate(a).catch(e=>{_index2.Logger.info(`${PREFIX} start-up report failed: ${messageOf(e)}`)}),"function"==typeof a.addUpdatesStateChangeListener&&(stateSubscription=a.addUpdatesStateChangeListener(e=>onStateChange(e.context))),appStateSubscription=_reactNative.AppState.addEventListener("change",onAppStateChange);"ON_LOAD"===a.checkAutomatically||"WIFI_ONLY"===a.checkAutomatically||checkForOtaUpdate()};exports.initOtaUpdates=initOtaUpdates;const applyOtaUpdate=async()=>{const e=resolveUpdates();e?.isEnabled&&"ready"===state.status&&await e.reloadAsync()};exports.applyOtaUpdate=applyOtaUpdate;const stopOtaUpdates=()=>{stateSubscription?.remove(),appStateSubscription?.remove(),stateSubscription=null,appStateSubscription=null,config=null,checking=null,lastCheckStartedAt=0,lastReportedError=null,resolved=void 0,setState(INITIAL_STATE)};exports.stopOtaUpdates=stopOtaUpdates;const subscribe=e=>(subscribers.add(e),()=>{subscribers.delete(e)}),getSnapshot=()=>state,useOtaUpdates=()=>({...(0,_react.useSyncExternalStore)(subscribe,getSnapshot,getSnapshot),check:checkForOtaUpdate,apply:applyOtaUpdate});exports.useOtaUpdates=useOtaUpdates;
@@ -0,0 +1 @@
1
+ "use strict";export const ENVIRONMENT_APP_ID_SUFFIX={Development:".development",Staging:".staging",Production:""};export const installedAppId=(t,e)=>`${t}${ENVIRONMENT_APP_ID_SUFFIX[e]}`;
@@ -1 +1 @@
1
- "use strict";export{ACCOUNT_ID_HEADER,CLIENT_BUILD_HEADER,CLIENT_KIND,CLIENT_KIND_HEADER,getClientBuild}from"./api/clientHeaders.js";export{buildCurl,logCurl}from"./api/curl.js";export{addMinAppVersionListener,getMinAppVersion,MIN_APP_VERSION_HEADER}from"./api/minAppVersion.js";export{default as publicClient}from"./api/publicClient.js";export{applyRequestDefaults,newTraceparent,TRACEPARENT_HEADER}from"./api/requestDefaults.js";export{attachRetry,IDEMPOTENCY_KEY_HEADER,isNeverSentError,isRetryableFailure,isRetryableStatus,resendWhenUnanswered,retryAfterMs}from"./api/retry.js";export{refreshAccessToken}from"./api/tokenRefresh.js";export{default as userClient,injectStore,injectUserAuth,RequestOfflineError,resetRefreshState,SESSION_EXPIRED_CODE,SESSION_REVOKED_CODE}from"./api/userClient.js";export{isWorkspaceChangedError,WORKSPACE_CHANGED_CODE,WorkspaceChangedError}from"./api/workspace.js";export{ACCESS_TOKEN_KEY,addSessionEndedListener,clearSession,getSessionUser,getToken,LEGACY_REFRESH_TOKEN_LIFETIME_MS,REFRESH_TOKEN_KEY,removeSessionUser,removeToken,SESSION_USER_KEY,setKeychainImplementation,setLegacyTokenKeys,storeSessionUser,storeToken}from"./auth/authStore.js";export{decodeJWT,getJWTExpiry,isJWTExpired}from"./auth/jwt.js";export{getConfig,getConfigValue,resetConfig,setConfig}from"./config/index.js";export{DeepLink,parseDeepLink,useDeepLink}from"./deepLink/index.js";export{apiErrorMessage,CONTRACT_ERROR_CODE,extractApiError,isApiError,isNoResponse,NETWORK_CODE,OFFLINE_CODE,OFFLINE_MESSAGE,REQUEST_CANCELED_CODE,SERVER_FAILURE_MESSAGE,TIMEOUT_CODE,TIMEOUT_MESSAGE,toFieldPath,UNEXPECTED_MESSAGE,UNREACHABLE_MESSAGE}from"./errors/index.js";export{AsYouType,addDays,clampNationalNumber,configureFormatters,countryFlagEmoji,detectPhoneCountry,diffMs,formatCompactNumber,formatCurrency,formatDate,formatDateDDMMMYYYY,formatDateISO,formatDatePattern,formatDateTime,formatMinor,formatNumber,formatPercent,formatPhone,formatPhoneAsTyped,formatRelative,formatRelativeTime,formatTime,formatTime12h,formatTimeInWindowsZone,formatTimeInZone,getCountries,getCountryCallingCode,getFormatterConfig,getInitials,getPhoneCountries,groupingForLocale,isDateAfter,isDateBefore,isSameDay,isSupportedCountry,isValidNationalNumber,isValidPhoneNumber,maxNationalNumberLength,normalizePhone,parsePhoneNumber,parsePhoneNumberFromString,splitPhoneNumber,startOfDay,validatePhoneNumberLength}from"./formatters/index.js";export{initWebority}from"./initSDK.js";export{initUserAuth}from"./initUserAuth.js";export{configureLogger,getDeviceContext,Logger,setDeviceContext}from"./logger/index.js";export{crashlyticsRemoteLogger}from"./logger/crashlytics.js";export{addNetworkStatusListener,getNetworkStatus,setNetworkStatusImplementation,useNetworkStatus}from"./network/index.js";export{PUSH_STATUS}from"./push/status.js";export{isStorageAvailable,Storage,setStorageImplementation}from"./storage/index.js";export{encodeBase64}from"./utils/base64.js";export{isAadhaar,isAlphanumeric,isBetween,isEmail,isGstin,isHexColor,isIfsc,isIndianMobile,isIndianPincode,isInteger,isNonEmpty,isNumeric,isPan,isPhone,isStrongPassword,isUrl,maxLength,minLength}from"./validators/index.js";export{isBuildBelowMinimum,parseBuildNumber,setDeviceInfoImplementation,useVersionCheck,VersionCheck}from"./versionCheck/index.js";
1
+ "use strict";export{ACCOUNT_ID_HEADER,CLIENT_BUILD_HEADER,CLIENT_KIND,CLIENT_KIND_HEADER,getClientBuild}from"./api/clientHeaders.js";export{buildCurl,logCurl}from"./api/curl.js";export{addMinAppVersionListener,getMinAppVersion,MIN_APP_VERSION_HEADER}from"./api/minAppVersion.js";export{default as publicClient}from"./api/publicClient.js";export{applyRequestDefaults,newTraceparent,TRACEPARENT_HEADER}from"./api/requestDefaults.js";export{attachRetry,IDEMPOTENCY_KEY_HEADER,isNeverSentError,isRetryableFailure,isRetryableStatus,resendWhenUnanswered,retryAfterMs}from"./api/retry.js";export{refreshAccessToken}from"./api/tokenRefresh.js";export{default as userClient,injectStore,injectUserAuth,RequestOfflineError,resetRefreshState,SESSION_EXPIRED_CODE,SESSION_REVOKED_CODE}from"./api/userClient.js";export{isWorkspaceChangedError,WORKSPACE_CHANGED_CODE,WorkspaceChangedError}from"./api/workspace.js";export{ACCESS_TOKEN_KEY,addSessionEndedListener,clearSession,getSessionUser,getToken,LEGACY_REFRESH_TOKEN_LIFETIME_MS,REFRESH_TOKEN_KEY,removeSessionUser,removeToken,SESSION_USER_KEY,setKeychainImplementation,setLegacyTokenKeys,storeSessionUser,storeToken}from"./auth/authStore.js";export{decodeJWT,getJWTExpiry,isJWTExpired}from"./auth/jwt.js";export{getConfig,getConfigValue,resetConfig,setConfig}from"./config/index.js";export{ENVIRONMENT_APP_ID_SUFFIX,installedAppId}from"./config/appIdentity.js";export{DeepLink,parseDeepLink,useDeepLink}from"./deepLink/index.js";export{apiErrorMessage,CONTRACT_ERROR_CODE,extractApiError,isApiError,isNoResponse,NETWORK_CODE,OFFLINE_CODE,OFFLINE_MESSAGE,REQUEST_CANCELED_CODE,SERVER_FAILURE_MESSAGE,TIMEOUT_CODE,TIMEOUT_MESSAGE,toFieldPath,UNEXPECTED_MESSAGE,UNREACHABLE_MESSAGE}from"./errors/index.js";export{AsYouType,addDays,clampNationalNumber,configureFormatters,countryFlagEmoji,detectPhoneCountry,diffMs,formatCompactNumber,formatCurrency,formatDate,formatDateDDMMMYYYY,formatDateISO,formatDatePattern,formatDateTime,formatMinor,formatNumber,formatPercent,formatPhone,formatPhoneAsTyped,formatRelative,formatRelativeTime,formatTime,formatTime12h,formatTimeInWindowsZone,formatTimeInZone,getCountries,getCountryCallingCode,getFormatterConfig,getInitials,getPhoneCountries,groupingForLocale,isDateAfter,isDateBefore,isSameDay,isSupportedCountry,isValidNationalNumber,isValidPhoneNumber,maxNationalNumberLength,normalizePhone,parsePhoneNumber,parsePhoneNumberFromString,splitPhoneNumber,startOfDay,validatePhoneNumberLength}from"./formatters/index.js";export{initWebority}from"./initSDK.js";export{initUserAuth}from"./initUserAuth.js";export{configureLogger,getDeviceContext,Logger,setDeviceContext}from"./logger/index.js";export{crashlyticsRemoteLogger}from"./logger/crashlytics.js";export{addNetworkStatusListener,getNetworkStatus,setNetworkStatusImplementation,useNetworkStatus}from"./network/index.js";export{PUSH_STATUS}from"./push/status.js";export{isStorageAvailable,Storage,setStorageImplementation}from"./storage/index.js";export{encodeBase64}from"./utils/base64.js";export{isAadhaar,isAlphanumeric,isBetween,isEmail,isGstin,isHexColor,isIfsc,isIndianMobile,isIndianPincode,isInteger,isNonEmpty,isNumeric,isPan,isPhone,isStrongPassword,isUrl,maxLength,minLength}from"./validators/index.js";export{isBuildBelowMinimum,parseBuildNumber,setDeviceInfoImplementation,useVersionCheck,VersionCheck}from"./versionCheck/index.js";
@@ -1 +1 @@
1
- "use strict";import*as Application from"expo-application";import{setKeychainImplementation}from"./auth/authStore.js";import{DEFAULT_LOG_LEVEL,DEFAULT_RETRIES,DEFAULT_TIMEOUT_MS,setConfig}from"./config/index.js";import{Logger,setRemoteLogger}from"./logger/index.js";import{setNetworkStatusImplementation}from"./network/networkStatus.js";import{setStorageImplementation}from"./storage/index.js";export const initWebority=e=>{if(!e.baseUrl)throw new Error("baseUrl is required for Webority packages initialisation");if(void 0===e.remoteLogger)throw new Error("remoteLogger is required for Webority packages initialisation: pass a RemoteLogger, or null for a build without crash reporting");if(!e.appId)throw new Error("appId is required for Webority packages initialisation");const o=Application.applicationId;if(null!==o&&e.appId!==o)throw new Error(`This build's settings are for ${e.appId} but the installed app is ${o}. Run mobile-tools prebuild for the right environment, then rebuild the bundle.`);setRemoteLogger(e.remoteLogger),setConfig({baseUrl:e.baseUrl,loggingEnabled:e.loggingEnabled??!0,logLevel:e.logLevel||DEFAULT_LOG_LEVEL,environment:e.environment||"Development",country:(e.country||"in").toLowerCase(),appId:e.appId,appVersion:e.appVersion??null,commit:e.commit??null,appBuild:e.appBuild??null,appStoreId:e.appStoreId??null,logCurl:e.logCurl??!1,timeoutMs:e.timeoutMs??DEFAULT_TIMEOUT_MS,retries:e.retries??DEFAULT_RETRIES});const t=e.backends;t?.storage&&setStorageImplementation(t.storage),t?.keychain&&setKeychainImplementation(t.keychain),t?.network&&setNetworkStatusImplementation(t.network),Logger.info("[@webority/mobile-core] initialized")};
1
+ "use strict";import*as Application from"expo-application";import{setKeychainImplementation}from"./auth/authStore.js";import{DEFAULT_LOG_LEVEL,DEFAULT_RETRIES,DEFAULT_TIMEOUT_MS,setConfig}from"./config/index.js";import{installedAppId}from"./config/appIdentity.js";import{Logger,setRemoteLogger}from"./logger/index.js";import{setNetworkStatusImplementation}from"./network/networkStatus.js";import{setStorageImplementation}from"./storage/index.js";export const initWebority=e=>{if(!e.baseUrl)throw new Error("baseUrl is required for Webority packages initialisation");if(void 0===e.remoteLogger)throw new Error("remoteLogger is required for Webority packages initialisation: pass a RemoteLogger, or null for a build without crash reporting");if(!e.appId)throw new Error("appId is required for Webority packages initialisation");if(!e.environment)throw new Error("environment is required for Webority packages initialisation: pass ENVIRONMENT from the compiled settings");const t=installedAppId(e.appId,e.environment),o=Application.applicationId;if(null!==o&&t!==o)throw new Error(`This build's settings are for ${t} (store id ${e.appId}, ${e.environment}) but the installed app is ${o}. Run mobile-tools prebuild for the right environment, then rebuild the bundle.`);setRemoteLogger(e.remoteLogger),setConfig({baseUrl:e.baseUrl,loggingEnabled:e.loggingEnabled??!0,logLevel:e.logLevel||DEFAULT_LOG_LEVEL,environment:e.environment,country:(e.country||"in").toLowerCase(),appId:e.appId,appVersion:e.appVersion??null,commit:e.commit??null,appBuild:e.appBuild??null,appStoreId:e.appStoreId??null,logCurl:e.logCurl??!1,timeoutMs:e.timeoutMs??DEFAULT_TIMEOUT_MS,retries:e.retries??DEFAULT_RETRIES});const i=e.backends;i?.storage&&setStorageImplementation(i.storage),i?.keychain&&setKeychainImplementation(i.keychain),i?.network&&setNetworkStatusImplementation(i.network),Logger.info("[@webority/mobile-core] initialized")};
@@ -1 +1 @@
1
- "use strict";import{useSyncExternalStore}from"react";import{AppState,Platform}from"react-native";import{getConfigValue}from"../config/index.js";import{Logger}from"../logger/index.js";import{Storage}from"../storage/index.js";const PREFIX="[@webority/mobile-core] OTA updates:",REPORTED_KEY="@webority/ota/last-reported-update-id";export const OTA_LAST_LAUNCH_KEY="@webority/ota/last-launch";const ENV_IDENTITY_SUFFIXES=[".staging",".development"];export const DEFAULT_MIN_CHECK_INTERVAL_MS=9e5;const EVENT_TIMEOUT_MS=1e4;let resolved,override=null;export const setOtaUpdatesImplementation=e=>{override=e};const resolveUpdates=()=>{if(override)return override;if(void 0!==resolved)return resolved;try{resolved=require("expo-updates")}catch{resolved=null}return resolved},INITIAL_STATE={status:"unavailable",runningUpdateId:null,error:null,lastCheckedAt:null};let state=INITIAL_STATE;const subscribers=new Set,setState=e=>{state={...state,...e};for(const e of subscribers)e()};let config=null,stateSubscription=null,appStateSubscription=null,checking=null,lastCheckStartedAt=0,lastReportedError=null;const messageOf=e=>e instanceof Error?e.message:String(e);export const normalizeAppIdentity=e=>{const t=String(e??"").trim().toLowerCase(),r=ENV_IDENTITY_SUFFIXES.find(e=>t.endsWith(e));return r?t.slice(0,-r.length):t};const ownIdentity=()=>config?.appIdentifier??getConfigValue("appId",null)??null,identityMismatch=e=>{const t=e?.extra?.webority?.appIdentifier;if(!t)return null;const r=ownIdentity();return r&&normalizeAppIdentity(t)===normalizeAppIdentity(r)?null:`identity mismatch: the update is for '${t}' but this app is '${r??"unset"}'`},postEvent=async(e,t,r)=>{const a=config?.serverUrl;if(!a||!e)return;const n=new AbortController,s=setTimeout(()=>n.abort(),1e4);try{await fetch(`${a.replace(/\/+$/,"")}/ota/updates/${encodeURIComponent(e)}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t,platform:Platform.OS,runtimeVersion:resolveUpdates()?.runtimeVersion??null,message:r}),signal:n.signal})}catch(e){Logger.info(`${PREFIX} the ${t} event was not reported: ${messageOf(e)}`)}finally{clearTimeout(s)}},reportError=(e,t)=>{setState({status:"error",error:t});const r=`${e??""}|${t}`;r!==lastReportedError&&(lastReportedError=r,Logger.error(`${PREFIX} ${t}`),postEvent(e,"error",t))},recordLaunch=async e=>{const t={updateId:e.updateId,channel:e.channel??null,runtimeVersion:e.runtimeVersion,isEmbeddedLaunch:e.isEmbeddedLaunch,isEmergencyLaunch:e.isEmergencyLaunch??!1,emergencyLaunchReason:e.emergencyLaunchReason??null,launchedAtUtc:(new Date).toISOString()};await Storage.setItem(OTA_LAST_LAUNCH_KEY,JSON.stringify(t))||Logger.error(`${PREFIX} the launch record was not saved`)},reportRunningUpdate=async e=>{if(await recordLaunch(e),e.isEmbeddedLaunch||!e.updateId)return;const t=identityMismatch(e.manifest);t?reportError(e.updateId,t):await Storage.getItem(REPORTED_KEY)!==e.updateId&&(await postEvent(e.updateId,"success"),await Storage.setItem(REPORTED_KEY,e.updateId),Logger.info(`${PREFIX} running update ${e.updateId}`))},onStateChange=e=>{const t=e.downloadError??e.checkError;if(t){const r=e.latestManifest?.id??resolveUpdates()?.updateId;return void reportError(r,t.message)}e.isChecking?setState({status:"checking"}):e.isDownloading?setState({status:"downloading"}):e.isUpdatePending&&setState({status:"ready",error:null})};export const checkForOtaUpdate=()=>{const e=resolveUpdates();if(!config||!e?.isEnabled)return Promise.resolve("unavailable");if(checking)return checking;lastCheckStartedAt=Date.now();return checking=(async()=>{try{setState({status:"checking"});const t=await e.checkForUpdateAsync();if(t.isAvailable){const e=identityMismatch(t.manifest);if(e)return reportError(t.manifest?.id,e),"error"}return t.isAvailable||t.isRollBackToEmbedded?(setState({status:"downloading"}),await e.fetchUpdateAsync(),setState({status:"ready",error:null}),"ready"):(setState({status:"ready"===state.status?"ready":"idle",error:null}),state.status)}catch(t){return reportError(e.updateId,messageOf(t)),"error"}finally{setState({lastCheckedAt:Date.now()}),checking=null}})(),checking};const onAppStateChange=e=>{if("active"!==e||!1===config?.checkOnForeground)return;const t=config?.minCheckIntervalMs??9e5;Date.now()-lastCheckStartedAt<t||checkForOtaUpdate()};export const initOtaUpdates=e=>{const t=null===config;if(config=e,!t)return;const r=resolveUpdates();if(!r?.isEnabled)return void setState({status:"unavailable"});setState({status:"idle",runningUpdateId:r.isEmbeddedLaunch?null:r.updateId}),reportRunningUpdate(r).catch(e=>{Logger.info(`${PREFIX} start-up report failed: ${messageOf(e)}`)}),"function"==typeof r.addUpdatesStateChangeListener&&(stateSubscription=r.addUpdatesStateChangeListener(e=>onStateChange(e.context))),appStateSubscription=AppState.addEventListener("change",onAppStateChange);"ON_LOAD"===r.checkAutomatically||"WIFI_ONLY"===r.checkAutomatically||checkForOtaUpdate()};export const applyOtaUpdate=async()=>{const e=resolveUpdates();e?.isEnabled&&"ready"===state.status&&await e.reloadAsync()};export const stopOtaUpdates=()=>{stateSubscription?.remove(),appStateSubscription?.remove(),stateSubscription=null,appStateSubscription=null,config=null,checking=null,lastCheckStartedAt=0,lastReportedError=null,resolved=void 0,setState(INITIAL_STATE)};const subscribe=e=>(subscribers.add(e),()=>{subscribers.delete(e)}),getSnapshot=()=>state;export const useOtaUpdates=()=>({...useSyncExternalStore(subscribe,getSnapshot,getSnapshot),check:checkForOtaUpdate,apply:applyOtaUpdate});
1
+ "use strict";import{useSyncExternalStore}from"react";import{AppState,Platform}from"react-native";import{getConfigValue}from"../config/index.js";import{ENVIRONMENT_APP_ID_SUFFIX}from"../config/appIdentity.js";import{Logger}from"../logger/index.js";import{Storage}from"../storage/index.js";const PREFIX="[@webority/mobile-core] OTA updates:",REPORTED_KEY="@webority/ota/last-reported-update-id";export const OTA_LAST_LAUNCH_KEY="@webority/ota/last-launch";const ENV_IDENTITY_SUFFIXES=Object.values(ENVIRONMENT_APP_ID_SUFFIX).filter(e=>""!==e);export const DEFAULT_MIN_CHECK_INTERVAL_MS=9e5;const EVENT_TIMEOUT_MS=1e4;let resolved,override=null;export const setOtaUpdatesImplementation=e=>{override=e};const resolveUpdates=()=>{if(override)return override;if(void 0!==resolved)return resolved;try{resolved=require("expo-updates")}catch{resolved=null}return resolved},INITIAL_STATE={status:"unavailable",runningUpdateId:null,error:null,lastCheckedAt:null};let state=INITIAL_STATE;const subscribers=new Set,setState=e=>{state={...state,...e};for(const e of subscribers)e()};let config=null,stateSubscription=null,appStateSubscription=null,checking=null,lastCheckStartedAt=0,lastReportedError=null;const messageOf=e=>e instanceof Error?e.message:String(e);export const normalizeAppIdentity=e=>{const t=String(e??"").trim().toLowerCase(),r=ENV_IDENTITY_SUFFIXES.find(e=>t.endsWith(e));return r?t.slice(0,-r.length):t};const ownIdentity=()=>config?.appIdentifier??getConfigValue("appId",null)??null,identityMismatch=e=>{const t=e?.extra?.webority?.appIdentifier;if(!t)return null;const r=ownIdentity();return r&&normalizeAppIdentity(t)===normalizeAppIdentity(r)?null:`identity mismatch: the update is for '${t}' but this app is '${r??"unset"}'`},postEvent=async(e,t,r)=>{const a=config?.serverUrl;if(!a||!e)return;const n=new AbortController,s=setTimeout(()=>n.abort(),1e4);try{await fetch(`${a.replace(/\/+$/,"")}/ota/updates/${encodeURIComponent(e)}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t,platform:Platform.OS,runtimeVersion:resolveUpdates()?.runtimeVersion??null,message:r}),signal:n.signal})}catch(e){Logger.info(`${PREFIX} the ${t} event was not reported: ${messageOf(e)}`)}finally{clearTimeout(s)}},reportError=(e,t)=>{setState({status:"error",error:t});const r=`${e??""}|${t}`;r!==lastReportedError&&(lastReportedError=r,Logger.error(`${PREFIX} ${t}`),postEvent(e,"error",t))},recordLaunch=async e=>{const t={updateId:e.updateId,channel:e.channel??null,runtimeVersion:e.runtimeVersion,isEmbeddedLaunch:e.isEmbeddedLaunch,isEmergencyLaunch:e.isEmergencyLaunch??!1,emergencyLaunchReason:e.emergencyLaunchReason??null,launchedAtUtc:(new Date).toISOString()};await Storage.setItem(OTA_LAST_LAUNCH_KEY,JSON.stringify(t))||Logger.error(`${PREFIX} the launch record was not saved`)},reportRunningUpdate=async e=>{if(await recordLaunch(e),e.isEmbeddedLaunch||!e.updateId)return;const t=identityMismatch(e.manifest);t?reportError(e.updateId,t):await Storage.getItem(REPORTED_KEY)!==e.updateId&&(await postEvent(e.updateId,"success"),await Storage.setItem(REPORTED_KEY,e.updateId),Logger.info(`${PREFIX} running update ${e.updateId}`))},onStateChange=e=>{const t=e.downloadError??e.checkError;if(t){const r=e.latestManifest?.id??resolveUpdates()?.updateId;return void reportError(r,t.message)}e.isChecking?setState({status:"checking"}):e.isDownloading?setState({status:"downloading"}):e.isUpdatePending&&setState({status:"ready",error:null})};export const checkForOtaUpdate=()=>{const e=resolveUpdates();if(!config||!e?.isEnabled)return Promise.resolve("unavailable");if(checking)return checking;lastCheckStartedAt=Date.now();return checking=(async()=>{try{setState({status:"checking"});const t=await e.checkForUpdateAsync();if(t.isAvailable){const e=identityMismatch(t.manifest);if(e)return reportError(t.manifest?.id,e),"error"}return t.isAvailable||t.isRollBackToEmbedded?(setState({status:"downloading"}),await e.fetchUpdateAsync(),setState({status:"ready",error:null}),"ready"):(setState({status:"ready"===state.status?"ready":"idle",error:null}),state.status)}catch(t){return reportError(e.updateId,messageOf(t)),"error"}finally{setState({lastCheckedAt:Date.now()}),checking=null}})(),checking};const onAppStateChange=e=>{if("active"!==e||!1===config?.checkOnForeground)return;const t=config?.minCheckIntervalMs??9e5;Date.now()-lastCheckStartedAt<t||checkForOtaUpdate()};export const initOtaUpdates=e=>{const t=null===config;if(config=e,!t)return;const r=resolveUpdates();if(!r?.isEnabled)return void setState({status:"unavailable"});setState({status:"idle",runningUpdateId:r.isEmbeddedLaunch?null:r.updateId}),reportRunningUpdate(r).catch(e=>{Logger.info(`${PREFIX} start-up report failed: ${messageOf(e)}`)}),"function"==typeof r.addUpdatesStateChangeListener&&(stateSubscription=r.addUpdatesStateChangeListener(e=>onStateChange(e.context))),appStateSubscription=AppState.addEventListener("change",onAppStateChange);"ON_LOAD"===r.checkAutomatically||"WIFI_ONLY"===r.checkAutomatically||checkForOtaUpdate()};export const applyOtaUpdate=async()=>{const e=resolveUpdates();e?.isEnabled&&"ready"===state.status&&await e.reloadAsync()};export const stopOtaUpdates=()=>{stateSubscription?.remove(),appStateSubscription?.remove(),stateSubscription=null,appStateSubscription=null,config=null,checking=null,lastCheckStartedAt=0,lastReportedError=null,resolved=void 0,setState(INITIAL_STATE)};const subscribe=e=>(subscribers.add(e),()=>{subscribers.delete(e)}),getSnapshot=()=>state;export const useOtaUpdates=()=>({...useSyncExternalStore(subscribe,getSnapshot,getSnapshot),check:checkForOtaUpdate,apply:applyOtaUpdate});
@@ -0,0 +1,6 @@
1
+ import type { Environment } from "./index";
2
+ /** The id suffix each environment installs under; Production carries none. mobile-tools prebuild uses the same three. */
3
+ export declare const ENVIRONMENT_APP_ID_SUFFIX: Readonly<Record<Environment, string>>;
4
+ /** The id the app installs under in an environment: the store id plus that environment's suffix. */
5
+ export declare const installedAppId: (storeAppId: string, environment: Environment) => string;
6
+ //# sourceMappingURL=appIdentity.d.ts.map
@@ -54,6 +54,7 @@ export type { JwtClaims } from "./auth/jwt";
54
54
  export { decodeJWT, getJWTExpiry, isJWTExpired } from "./auth/jwt";
55
55
  export type { Config, Environment, LogLevel } from "./config";
56
56
  export { getConfig, getConfigValue, resetConfig, setConfig } from "./config";
57
+ export { ENVIRONMENT_APP_ID_SUFFIX, installedAppId } from "./config/appIdentity";
57
58
  export type { DeepLinkConfig, DeepLinkRoute, ParsedLink } from "./deepLink";
58
59
  export { DeepLink, parseDeepLink, useDeepLink } from "./deepLink";
59
60
  export type { ApiError } from "./errors";
@@ -19,17 +19,16 @@ export interface InitConfig {
19
19
  loggingEnabled?: boolean;
20
20
  /** Log level. Defaults to `'info'` in development and `'warn'` in a release build. */
21
21
  logLevel?: LogLevel;
22
- /** Environment. Defaults to `'Development'`. */
23
- environment?: Environment;
22
+ /** The environment the bundle was compiled for (`ENVIRONMENT`). Required: the installed-app check adds its id suffix. */
23
+ environment: Environment;
24
24
  /**
25
25
  * ISO 3166-1 alpha-2 country code (lowercase) used in the App Store / Play
26
26
  * Store link of the update prompt. Defaults to `'in'`.
27
27
  */
28
28
  country?: string;
29
29
  /**
30
- * The app's store identifier (Android package name / iOS bundle id), from `APP_ID` in
31
- * `appsettings.Compiled.json`. Required: it must equal the bundle id the installed app runs,
32
- * so a bundle compiled for another environment stops at start-up.
30
+ * The app's store identifier, `APP_ID` from appsettings.json, with no environment suffix.
31
+ * initWebority refuses to start when `installedAppId(appId, environment)` differs from the installed app's id.
33
32
  */
34
33
  appId: string;
35
34
  /**
@@ -78,7 +77,8 @@ export interface InitConfig {
78
77
  * initWebority({
79
78
  * baseUrl: 'https://api.myapp.com',
80
79
  * appId: 'com.myapp',
81
- * remoteLogger: null
80
+ * remoteLogger: null,
81
+ * environment: 'Production'
82
82
  * });
83
83
  *
84
84
  * @example
@@ -89,7 +89,7 @@ export interface InitConfig {
89
89
  * remoteLogger: crashlyticsRemoteLogger(crashlytics),
90
90
  * loggingEnabled: __DEV__,
91
91
  * logLevel: 'warn',
92
- * environment: __DEV__ ? 'Development' : 'Production'
92
+ * environment: 'Production'
93
93
  * });
94
94
  */
95
95
  export declare const initWebority: (config: InitConfig) => void;
@@ -0,0 +1,6 @@
1
+ import type { Environment } from "./index.js";
2
+ /** The id suffix each environment installs under; Production carries none. mobile-tools prebuild uses the same three. */
3
+ export declare const ENVIRONMENT_APP_ID_SUFFIX: Readonly<Record<Environment, string>>;
4
+ /** The id the app installs under in an environment: the store id plus that environment's suffix. */
5
+ export declare const installedAppId: (storeAppId: string, environment: Environment) => string;
6
+ //# sourceMappingURL=appIdentity.d.ts.map
@@ -54,6 +54,7 @@ export type { JwtClaims } from "./auth/jwt.js";
54
54
  export { decodeJWT, getJWTExpiry, isJWTExpired } from "./auth/jwt.js";
55
55
  export type { Config, Environment, LogLevel } from "./config/index.js";
56
56
  export { getConfig, getConfigValue, resetConfig, setConfig } from "./config/index.js";
57
+ export { ENVIRONMENT_APP_ID_SUFFIX, installedAppId } from "./config/appIdentity.js";
57
58
  export type { DeepLinkConfig, DeepLinkRoute, ParsedLink } from "./deepLink/index.js";
58
59
  export { DeepLink, parseDeepLink, useDeepLink } from "./deepLink/index.js";
59
60
  export type { ApiError } from "./errors/index.js";
@@ -19,17 +19,16 @@ export interface InitConfig {
19
19
  loggingEnabled?: boolean;
20
20
  /** Log level. Defaults to `'info'` in development and `'warn'` in a release build. */
21
21
  logLevel?: LogLevel;
22
- /** Environment. Defaults to `'Development'`. */
23
- environment?: Environment;
22
+ /** The environment the bundle was compiled for (`ENVIRONMENT`). Required: the installed-app check adds its id suffix. */
23
+ environment: Environment;
24
24
  /**
25
25
  * ISO 3166-1 alpha-2 country code (lowercase) used in the App Store / Play
26
26
  * Store link of the update prompt. Defaults to `'in'`.
27
27
  */
28
28
  country?: string;
29
29
  /**
30
- * The app's store identifier (Android package name / iOS bundle id), from `APP_ID` in
31
- * `appsettings.Compiled.json`. Required: it must equal the bundle id the installed app runs,
32
- * so a bundle compiled for another environment stops at start-up.
30
+ * The app's store identifier, `APP_ID` from appsettings.json, with no environment suffix.
31
+ * initWebority refuses to start when `installedAppId(appId, environment)` differs from the installed app's id.
33
32
  */
34
33
  appId: string;
35
34
  /**
@@ -78,7 +77,8 @@ export interface InitConfig {
78
77
  * initWebority({
79
78
  * baseUrl: 'https://api.myapp.com',
80
79
  * appId: 'com.myapp',
81
- * remoteLogger: null
80
+ * remoteLogger: null,
81
+ * environment: 'Production'
82
82
  * });
83
83
  *
84
84
  * @example
@@ -89,7 +89,7 @@ export interface InitConfig {
89
89
  * remoteLogger: crashlyticsRemoteLogger(crashlytics),
90
90
  * loggingEnabled: __DEV__,
91
91
  * logLevel: 'warn',
92
- * environment: __DEV__ ? 'Development' : 'Production'
92
+ * environment: 'Production'
93
93
  * });
94
94
  */
95
95
  export declare const initWebority: (config: InitConfig) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webority/mobile-core",
3
- "version": "0.114.0",
3
+ "version": "0.115.0",
4
4
  "description": "Platform layer for Webority React Native apps: HTTP clients, auth/token storage, config, logging, formatters, validators, network status, permissions, storage, version checks and over-the-air updates. No UI.",
5
5
  "keywords": [
6
6
  "react-native",
@@ -383,9 +383,6 @@
383
383
  "expo-contacts": {
384
384
  "optional": true
385
385
  },
386
- "expo-crypto": {
387
- "optional": true
388
- },
389
386
  "expo-document-picker": {
390
387
  "optional": true
391
388
  },
@@ -465,19 +462,19 @@
465
462
  "@testing-library/react-native": "12.9.0",
466
463
  "@types/node": "25.6.0",
467
464
  "@types/react": "19.2.18",
468
- "expo": "57.0.17",
469
- "expo-application": "57.0.2",
465
+ "expo": "57.0.31",
466
+ "expo-application": "57.0.3",
470
467
  "expo-crypto": "57.0.4",
471
- "expo-document-picker": "57.0.2",
472
- "expo-file-system": "57.0.6",
473
- "expo-image-manipulator": "57.0.14",
468
+ "expo-document-picker": "57.0.3",
469
+ "expo-file-system": "57.0.7",
470
+ "expo-image-manipulator": "57.0.21",
474
471
  "expo-local-authentication": "57.0.3",
475
- "expo-location": "57.0.14",
476
- "expo-network": "57.0.1",
477
- "expo-screen-capture": "57.0.2",
478
- "expo-secure-store": "57.0.2",
479
- "expo-sqlite": "57.0.2",
480
- "expo-store-review": "57.0.2",
472
+ "expo-location": "57.0.22",
473
+ "expo-network": "57.0.3",
474
+ "expo-screen-capture": "57.0.4",
475
+ "expo-secure-store": "57.0.4",
476
+ "expo-sqlite": "57.0.4",
477
+ "expo-store-review": "57.0.3",
481
478
  "jest": "29.7.0",
482
479
  "react": "19.2.8",
483
480
  "react-native": "0.86.3",