diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 8ab0fa77e49f..43adedea1f2b 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -2,6 +2,6 @@ self-hosted-runner: labels: - ubuntu-latest-xl - - macos-12-xl + - macos-13-large - macos-13-xlarge - ubuntu-latest-reassure-tests diff --git a/.github/actions/javascript/awaitStagingDeploys/index.js b/.github/actions/javascript/awaitStagingDeploys/index.js index 4b76cc962968..1cb7934cfb91 100644 --- a/.github/actions/javascript/awaitStagingDeploys/index.js +++ b/.github/actions/javascript/awaitStagingDeploys/index.js @@ -12754,9 +12754,13 @@ function promiseDoWhile(condition, action) { console.info('[promiseWhile] promiseDoWhile() condition', condition); const actionResult = action?.(); console.info('[promiseWhile] promiseDoWhile() actionResult', actionResult); + if (!actionResult) { + resolve(); + return; + } actionResult - ?.then(() => promiseWhile(condition, action)) - .then(() => resolve()) + .then(() => promiseWhile(condition, action)) + .then(resolve) .catch(reject); }); } diff --git a/.github/actions/javascript/getGraphiteString/action.yml b/.github/actions/javascript/getGraphiteString/action.yml index 9101a410f24d..202f3d155232 100644 --- a/.github/actions/javascript/getGraphiteString/action.yml +++ b/.github/actions/javascript/getGraphiteString/action.yml @@ -1,5 +1,10 @@ name: 'Get and Save graphite string' description: 'Parse reassure output.json file and create string which can be sent to the graphite server' + +inputs: + PR_NUMBER: + description: Number of merged PR + required: true outputs: GRAPHITE_STRING: description: String with reassure data which can be directly sent to the graphite server diff --git a/.github/actions/javascript/getGraphiteString/getGraphiteString.ts b/.github/actions/javascript/getGraphiteString/getGraphiteString.ts index 54132ab8c322..2544fe05cddd 100644 --- a/.github/actions/javascript/getGraphiteString/getGraphiteString.ts +++ b/.github/actions/javascript/getGraphiteString/getGraphiteString.ts @@ -1,49 +1,49 @@ import * as core from '@actions/core'; -import * as github from '@actions/github'; import fs from 'fs'; const run = () => { // Prefix path to the graphite metric const GRAPHITE_PATH = 'reassure'; + const PR_NUMBER = core.getInput('PR_NUMBER', {required: true}); - let regressionOutput; - try { - regressionOutput = JSON.parse(fs.readFileSync('.reassure/output.json', 'utf8')); - } catch (err) { - // Handle errors that occur during file reading or parsing - if (err instanceof Error) { - console.error('Error while parsing output.json:', err.message); - core.setFailed(err); - } - } + // Read the contents of the file, the file is in the JSONL format + const regressionFile = fs.readFileSync('.reassure/baseline.perf', 'utf8'); + + // Split file contents by newline to get individual JSON entries + const regressionEntries = regressionFile.split('\n'); - const creationDate = regressionOutput.metadata.current.creationDate; - const timestampInMili = new Date(creationDate).getTime(); + // Initialize string to store Graphite metrics + let graphiteString = ''; - // Graphite accepts timestamp in seconds - const timestamp = Math.floor(timestampInMili / 1000); + // Iterate over each entry + regressionEntries.forEach((entry) => { + // Skip empty lines + if (entry.trim() === '') { + return; + } - // Get PR number from the github context - const prNumber = github.context.payload.pull_request?.number; + try { + const current = JSON.parse(entry); - // We need to combine all tests from the 4 buckets - const reassureTests = [...regressionOutput.meaningless, ...regressionOutput.significant, ...regressionOutput.countChanged, ...regressionOutput.added]; + // Extract timestamp, Graphite accepts timestamp in seconds + const timestamp = current.metadata?.creationDate ? Math.floor(new Date(current.metadata.creationDate).getTime() / 1000) : ''; - // Map through every test and create string for meanDuration and meanCount - // eslint-disable-next-line rulesdir/prefer-underscore-method - const graphiteString = reassureTests - .map((test) => { - const current = test.current; - // Graphite doesn't accept metrics name with space, we replace spaces with "-" - const formattedName = current.name.split(' ').join('-'); + if (current.name && current.meanDuration && current.meanCount && timestamp) { + const formattedName = current.name.split(' ').join('-'); - const renderDurationString = `${GRAPHITE_PATH}.${formattedName}.renderDuration ${current.meanDuration} ${timestamp}`; - const renderCountString = `${GRAPHITE_PATH}.${formattedName}.renderCount ${current.meanCount} ${timestamp}`; - const renderPRNumberString = `${GRAPHITE_PATH}.${formattedName}.prNumber ${prNumber} ${timestamp}`; + const renderDurationString = `${GRAPHITE_PATH}.${formattedName}.renderDuration ${current.meanDuration} ${timestamp}`; + const renderCountString = `${GRAPHITE_PATH}.${formattedName}.renderCount ${current.meanCount} ${timestamp}`; + const renderPRNumberString = `${GRAPHITE_PATH}.${formattedName}.prNumber ${PR_NUMBER} ${timestamp}`; - return `${renderDurationString}\n${renderCountString}\n${renderPRNumberString}`; - }) - .join('\n'); + // Concatenate Graphite strings + graphiteString += `${renderDurationString}\n${renderCountString}\n${renderPRNumberString}\n`; + } + } catch (e) { + const error = new Error('Error parsing baseline.perf JSON file'); + console.error(error.message); + core.setFailed(error); + } + }); // Set generated graphite string to the github variable core.setOutput('GRAPHITE_STRING', graphiteString); diff --git a/.github/actions/javascript/getGraphiteString/index.js b/.github/actions/javascript/getGraphiteString/index.js index 43d1de6724e3..7f512d575a23 100644 --- a/.github/actions/javascript/getGraphiteString/index.js +++ b/.github/actions/javascript/getGraphiteString/index.js @@ -4,7 +4,7 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 7351: +/***/ 351: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -30,8 +30,8 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.issue = exports.issueCommand = void 0; -const os = __importStar(__nccwpck_require__(2037)); -const utils_1 = __nccwpck_require__(5278); +const os = __importStar(__nccwpck_require__(37)); +const utils_1 = __nccwpck_require__(278); /** * Commands * @@ -103,7 +103,7 @@ function escapeProperty(s) { /***/ }), -/***/ 2186: +/***/ 186: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -138,12 +138,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; -const command_1 = __nccwpck_require__(7351); -const file_command_1 = __nccwpck_require__(717); -const utils_1 = __nccwpck_require__(5278); -const os = __importStar(__nccwpck_require__(2037)); -const path = __importStar(__nccwpck_require__(1017)); -const oidc_utils_1 = __nccwpck_require__(8041); +const command_1 = __nccwpck_require__(351); +const file_command_1 = __nccwpck_require__(185); +const utils_1 = __nccwpck_require__(278); +const os = __importStar(__nccwpck_require__(37)); +const path = __importStar(__nccwpck_require__(17)); +const oidc_utils_1 = __nccwpck_require__(41); /** * The code to exit an action */ @@ -428,17 +428,17 @@ exports.getIDToken = getIDToken; /** * Summary exports */ -var summary_1 = __nccwpck_require__(1327); +var summary_1 = __nccwpck_require__(327); Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); /** * @deprecated use core.summary */ -var summary_2 = __nccwpck_require__(1327); +var summary_2 = __nccwpck_require__(327); Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); /** * Path exports */ -var path_utils_1 = __nccwpck_require__(2981); +var path_utils_1 = __nccwpck_require__(981); Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); @@ -446,7 +446,7 @@ Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: funct /***/ }), -/***/ 717: +/***/ 185: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -475,10 +475,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ -const fs = __importStar(__nccwpck_require__(7147)); -const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); -const utils_1 = __nccwpck_require__(5278); +const fs = __importStar(__nccwpck_require__(147)); +const os = __importStar(__nccwpck_require__(37)); +const uuid_1 = __nccwpck_require__(840); +const utils_1 = __nccwpck_require__(278); function issueFileCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { @@ -511,7 +511,7 @@ exports.prepareKeyValueMessage = prepareKeyValueMessage; /***/ }), -/***/ 8041: +/***/ 41: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -527,9 +527,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); -const core_1 = __nccwpck_require__(2186); +const http_client_1 = __nccwpck_require__(255); +const auth_1 = __nccwpck_require__(526); +const core_1 = __nccwpck_require__(186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { const requestOptions = { @@ -595,7 +595,7 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: +/***/ 981: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -621,7 +621,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); +const path = __importStar(__nccwpck_require__(17)); /** * toPosixPath converts the given path to the posix form. On Windows, \\ will be * replaced with /. @@ -660,7 +660,7 @@ exports.toPlatformPath = toPlatformPath; /***/ }), -/***/ 1327: +/***/ 327: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -676,8 +676,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); +const os_1 = __nccwpck_require__(37); +const fs_1 = __nccwpck_require__(147); const { access, appendFile, writeFile } = fs_1.promises; exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; @@ -950,7 +950,7 @@ exports.summary = _summary; /***/ }), -/***/ 5278: +/***/ 278: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -997,72 +997,100 @@ exports.toCommandProperties = toCommandProperties; /***/ }), -/***/ 4087: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 526: +/***/ (function(__unused_webpack_module, exports) { "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Context = void 0; -const fs_1 = __nccwpck_require__(7147); -const os_1 = __nccwpck_require__(2037); -class Context { - /** - * Hydrate the context from the environment - */ - constructor() { - var _a, _b, _c; - this.payload = {}; - if (process.env.GITHUB_EVENT_PATH) { - if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) { - this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); - } - else { - const path = process.env.GITHUB_EVENT_PATH; - process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); - } +exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); } - this.eventName = process.env.GITHUB_EVENT_NAME; - this.sha = process.env.GITHUB_SHA; - this.ref = process.env.GITHUB_REF; - this.workflow = process.env.GITHUB_WORKFLOW; - this.action = process.env.GITHUB_ACTION; - this.actor = process.env.GITHUB_ACTOR; - this.job = process.env.GITHUB_JOB; - this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); - this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); - this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; - this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; - this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; } - get issue() { - const payload = this.payload; - return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; } - get repo() { - if (process.env.GITHUB_REPOSITORY) { - const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); - return { owner, repo }; + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); } - if (this.payload.repository) { - return { - owner: this.payload.repository.owner.login, - repo: this.payload.repository.name - }; + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); } - throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); } } -exports.Context = Context; -//# sourceMappingURL=context.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; +//# sourceMappingURL=auth.js.map /***/ }), -/***/ 5438: +/***/ 255: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; +/* eslint-disable @typescript-eslint/no-explicit-any */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); @@ -1082,7459 +1110,682 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getOctokit = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(4087)); -const utils_1 = __nccwpck_require__(3030); -exports.context = new Context.Context(); +exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; +const http = __importStar(__nccwpck_require__(685)); +const https = __importStar(__nccwpck_require__(687)); +const pm = __importStar(__nccwpck_require__(835)); +const tunnel = __importStar(__nccwpck_require__(294)); +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); /** - * Returns a hydrated octokit ready to use for GitHub Actions - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ -function getOctokit(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options)); +function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } -exports.getOctokit = getOctokit; -//# sourceMappingURL=github.js.map - -/***/ }), - -/***/ 7914: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); -function getAuthString(token, options) { - if (!token && !options.auth) { - throw new Error('Parameter token or opts.auth is required'); - } - else if (token && options.auth) { - throw new Error('Parameters token and opts.auth may not both be specified'); +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - return typeof options.auth === 'string' ? options.auth : `token ${token}`; } -exports.getAuthString = getAuthString; -function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); -} -exports.getProxyAgent = getProxyAgent; -function getApiBaseUrl() { - return process.env['GITHUB_API_URL'] || 'https://api.github.com'; -} -exports.getApiBaseUrl = getApiBaseUrl; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 3030: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(4087)); -const Utils = __importStar(__nccwpck_require__(7914)); -// octokit + plugins -const core_1 = __nccwpck_require__(8525); -const plugin_rest_endpoint_methods_1 = __nccwpck_require__(3044); -const plugin_paginate_rest_1 = __nccwpck_require__(8945); -exports.context = new Context.Context(); -const baseUrl = Utils.getApiBaseUrl(); -exports.defaults = { - baseUrl, - request: { - agent: Utils.getProxyAgent(baseUrl) +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } -}; -exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); -/** - * Convience function to correctly format Octokit Options to pass into the constructor. - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set - */ -function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller - // Auth - const auth = Utils.getAuthString(token, opts); - if (auth) { - opts.auth = auth; + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); } - return opts; } -exports.getOctokitOptions = getOctokitOptions; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 673: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; -} - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); -} - -const createTokenAuth = function createTokenAuth(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - } - - if (typeof token !== "string") { - throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); - } - - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 8525: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(9353); -var graphql = __nccwpck_require__(6422); -var authToken = __nccwpck_require__(673); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; -} - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = authStrategy(Object.assign({ - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; - - if (typeof defaults === "function") { - super(defaults(options)); - return; - } - - super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null)); - } - - }; - return OctokitWithDefaults; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 8713: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.isPlainObject(options[key])) { - if (!(key in defaults)) Object.assign(result, { - [key]: options[key] - });else result[key] = mergeDeep(defaults[key], options[key]); - } else { - Object.assign(result, { - [key]: options[key] - }); } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); } - } - - return obj; -} - -function merge(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { - method, - url - } : { - url: method - }, options); - } else { - options = Object.assign({}, route); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - if (defaults && defaults.mediaType.previews.length) { - mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); - } - - mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); - return mergedOptions; -} - -function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - - if (names.length === 0) { - return url; - } - - return url + separator + names.map(name => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); } - - return part; - }).join(""); -} - -function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} - -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } -} - -function isDefined(value) { - return value !== undefined && value !== null; -} - -function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; -} - -function getValues(context, operator, key, modifier) { - var value = context[key], - result = []; - - if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); - } - - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); - } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); - } - }); - } - - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); - } - } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); } - } else { - if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - - if (operators.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - - expression.split(/,/g).forEach(function (variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - - if (operator && operator !== "+") { - var separator = ","; - - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; - } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - }); -} - -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later - - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } - - const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - - if (!isBinaryRequest) { - if (options.mediaType.format) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); - } else { - if ("data" in remainingParameters) { - body = remainingParameters.data; - } else { - if (Object.keys(remainingParameters).length) { - body = remainingParameters; - } else { - headers["content-length"] = 0; - } - } - } // default content-type for JSON if body is set - - - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string - - - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present - - - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); -} - -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); -} - -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); -} - -const VERSION = "6.0.12"; - -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. - -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] - } -}; - -const endpoint = withDefaults(null, DEFAULTS); - -exports.endpoint = endpoint; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 6422: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var request = __nccwpck_require__(9353); -var universalUserAgent = __nccwpck_require__(5030); - -const VERSION = "4.8.0"; - -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); -} - -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. - - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - -} - -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); - } - - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; - return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); - } - } - - const parsedOptions = typeof query === "string" ? Object.assign({ - query - }, options) : query; - const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - - if (!result.variables) { - result.variables = {}; + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 - - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; - - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; - - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } - - throw new GraphqlResponseError(requestOptions, headers, response.data); + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - - return response.data.data; - }); -} - -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); - - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} - -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); -} - -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 8945: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const VERSION = "2.21.3"; - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - - return target; -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); - } - - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. - - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - - response.data.total_count = totalCount; - return response; -} - -function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) return { - done: true - }; - - try { - const response = await requestMethod({ - method, - url, - headers - }); - const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); } - }; - } - } - - }) - }; -} - -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; - } - - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); -} - -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } - - let earlyExit = false; - - function done() { - earlyExit = true; - } - - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); - - if (earlyExit) { - return results; - } - - return gather(octokit, results, iterator, mapFn); - }); -} - -const composePaginateRest = Object.assign(paginate, { - iterator -}); - -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/audit-log", "GET /enterprises/{enterprise}/secret-scanning/alerts", "GET /enterprises/{enterprise}/settings/billing/advanced-security", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /licenses", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/cache/usage-by-repository", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/audit-log", "GET /orgs/{org}/blocks", "GET /orgs/{org}/code-scanning/alerts", "GET /orgs/{org}/codespaces", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/dependabot/secrets", "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", "GET /orgs/{org}/events", "GET /orgs/{org}/external-groups", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/settings/billing/advanced-security", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/caches", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/codespaces", "GET /repos/{owner}/{repo}/codespaces/devcontainers", "GET /repos/{owner}/{repo}/codespaces/secrets", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/status", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/dependabot/secrets", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/environments", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repos/{owner}/{repo}/topics", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/codespaces", "GET /user/codespaces/secrets", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/packages/{package_type}/{package_name}/versions", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; - -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } -} - -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ - -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = VERSION; - -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 7471: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var deprecation = __nccwpck_require__(8932); -var once = _interopDefault(__nccwpck_require__(1223)); - -const logOnceCode = once(deprecation => console.warn(deprecation)); -const logOnceHeaders = once(deprecation => console.warn(deprecation)); -/** - * Error with extra properties to help with debugging - */ - -class RequestError extends Error { - constructor(message, statusCode, options) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = "HttpError"; - this.status = statusCode; - let headers; - - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } // redact request credentials without mutating original request options - - - const requestCopy = Object.assign({}, options.request); - - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") - }); - } - - requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit - // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications - .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended - // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header - .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; // deprecations - - Object.defineProperty(this, "code", { - get() { - logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); - return statusCode; - } - - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); - return headers || {}; - } - - }); - } - -} - -exports.RequestError = RequestError; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9353: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var endpoint = __nccwpck_require__(8713); -var universalUserAgent = __nccwpck_require__(5030); -var isPlainObject = __nccwpck_require__(3287); -var nodeFetch = _interopDefault(__nccwpck_require__(467)); -var requestError = __nccwpck_require__(7471); - -const VERSION = "5.6.3"; - -function getBufferResponse(response) { - return response.arrayBuffer(); -} - -function fetchWrapper(requestOptions) { - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - - if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - - let headers = {}; - let status; - let url; - const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; - return fetch(requestOptions.url, Object.assign({ - method: requestOptions.method, - body: requestOptions.body, - headers: requestOptions.headers, - redirect: requestOptions.redirect - }, // `requestOptions.request.agent` type is incompatible - // see https://github.com/octokit/types.ts/pull/264 - requestOptions.request)).then(async response => { - url = response.url; - status = response.status; - - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - - if ("deprecation" in headers) { - const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); - } - - if (status === 204 || status === 205) { - return; - } // GitHub API returns 200 for HEAD requests - - - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - - throw new requestError.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: undefined - }, - request: requestOptions - }); - } - - if (status === 304) { - throw new requestError.RequestError("Not modified", status, { - response: { - url, - status, - headers, - data: await getResponseData(response) - }, - request: requestOptions - }); - } - - if (status >= 400) { - const data = await getResponseData(response); - const error = new requestError.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error; - } - - return getResponseData(response); - }).then(data => { - return { - status, - url, - headers, - data - }; - }).catch(error => { - if (error instanceof requestError.RequestError) throw error; - throw new requestError.RequestError(error.message, 500, { - request: requestOptions - }); - }); -} - -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - - if (/application\/json/.test(contentType)) { - return response.json(); - } - - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - - return getBufferResponse(response); -} - -function toErrorMessage(data) { - if (typeof data === "string") return data; // istanbul ignore else - just in case - - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; - } - - return data.message; - } // istanbul ignore next - just in case - - - return `Unknown error: ${JSON.stringify(data)}`; -} - -function withDefaults(oldEndpoint, newDefaults) { - const endpoint = oldEndpoint.defaults(newDefaults); - - const newApi = function (route, parameters) { - const endpointOptions = endpoint.merge(route, parameters); - - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint.parse(endpointOptions)); - } - - const request = (route, parameters) => { - return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); - }; - - Object.assign(request, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); - return endpointOptions.request.hook(request, endpointOptions); - }; - - return Object.assign(newApi, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); -} - -const request = withDefaults(endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` - } -}); - -exports.request = request; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -/* eslint-disable @typescript-eslint/no-explicit-any */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; -const http = __importStar(__nccwpck_require__(3685)); -const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); -const tunnel = __importStar(__nccwpck_require__(4294)); -var HttpCodes; -(function (HttpCodes) { - HttpCodes[HttpCodes["OK"] = 200] = "OK"; - HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; - HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; - HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; - HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; - HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; - HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; - HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; - HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; - HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; - HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; -})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); -var Headers; -(function (Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})(Headers = exports.Headers || (exports.Headers = {})); -var MediaTypes; -(function (MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); -/** - * Returns the proxy URL, depending upon the supplied url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ -function getProxyUrl(serverUrl) { - const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); - return proxyUrl ? proxyUrl.href : ''; -} -exports.getProxyUrl = getProxyUrl; -const HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -]; -const HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; -const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; -const ExponentialBackoffCeiling = 10; -const ExponentialBackoffTimeSlice = 5; -class HttpClientError extends Error { - constructor(message, statusCode) { - super(message); - this.name = 'HttpClientError'; - this.statusCode = statusCode; - Object.setPrototypeOf(this, HttpClientError.prototype); - } -} -exports.HttpClientError = HttpClientError; -class HttpClientResponse { - constructor(message) { - this.message = message; - } - readBody() { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { - let output = Buffer.alloc(0); - this.message.on('data', (chunk) => { - output = Buffer.concat([output, chunk]); - }); - this.message.on('end', () => { - resolve(output.toString()); - }); - })); - }); - } -} -exports.HttpClientResponse = HttpClientResponse; -function isHttps(requestUrl) { - const parsedUrl = new URL(requestUrl); - return parsedUrl.protocol === 'https:'; -} -exports.isHttps = isHttps; -class HttpClient { - constructor(userAgent, handlers, requestOptions) { - this._ignoreSslError = false; - this._allowRedirects = true; - this._allowRedirectDowngrade = false; - this._maxRedirects = 50; - this._allowRetries = false; - this._maxRetries = 1; - this._keepAlive = false; - this._disposed = false; - this.userAgent = userAgent; - this.handlers = handlers || []; - this.requestOptions = requestOptions; - if (requestOptions) { - if (requestOptions.ignoreSslError != null) { - this._ignoreSslError = requestOptions.ignoreSslError; - } - this._socketTimeout = requestOptions.socketTimeout; - if (requestOptions.allowRedirects != null) { - this._allowRedirects = requestOptions.allowRedirects; - } - if (requestOptions.allowRedirectDowngrade != null) { - this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; - } - if (requestOptions.maxRedirects != null) { - this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); - } - if (requestOptions.keepAlive != null) { - this._keepAlive = requestOptions.keepAlive; - } - if (requestOptions.allowRetries != null) { - this._allowRetries = requestOptions.allowRetries; - } - if (requestOptions.maxRetries != null) { - this._maxRetries = requestOptions.maxRetries; - } - } - } - options(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); - }); - } - get(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('GET', requestUrl, null, additionalHeaders || {}); - }); - } - del(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('DELETE', requestUrl, null, additionalHeaders || {}); - }); - } - post(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('POST', requestUrl, data, additionalHeaders || {}); - }); - } - patch(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PATCH', requestUrl, data, additionalHeaders || {}); - }); - } - put(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PUT', requestUrl, data, additionalHeaders || {}); - }); - } - head(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('HEAD', requestUrl, null, additionalHeaders || {}); - }); - } - sendStream(verb, requestUrl, stream, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request(verb, requestUrl, stream, additionalHeaders); - }); - } - /** - * Gets a typed object from an endpoint - * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise - */ - getJson(requestUrl, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - const res = yield this.get(requestUrl, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - postJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.post(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - putJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.put(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.patch(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - /** - * Makes a raw http request. - * All other methods such as get, post, patch, and request ultimately call this. - * Prefer get, del, post and patch - */ - request(verb, requestUrl, data, headers) { - return __awaiter(this, void 0, void 0, function* () { - if (this._disposed) { - throw new Error('Client has already been disposed.'); - } - const parsedUrl = new URL(requestUrl); - let info = this._prepareRequest(verb, parsedUrl, headers); - // Only perform retries on reads since writes may not be idempotent. - const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) - ? this._maxRetries + 1 - : 1; - let numTries = 0; - let response; - do { - response = yield this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && - response.message && - response.message.statusCode === HttpCodes.Unauthorized) { - let authenticationHandler; - for (const handler of this.handlers) { - if (handler.canHandleAuthentication(response)) { - authenticationHandler = handler; - break; - } - } - if (authenticationHandler) { - return authenticationHandler.handleAuthentication(this, info, data); - } - else { - // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - return response; - } - } - let redirectsRemaining = this._maxRedirects; - while (response.message.statusCode && - HttpRedirectCodes.includes(response.message.statusCode) && - this._allowRedirects && - redirectsRemaining > 0) { - const redirectUrl = response.message.headers['location']; - if (!redirectUrl) { - // if there's no location to redirect to, we won't - break; - } - const parsedRedirectUrl = new URL(redirectUrl); - if (parsedUrl.protocol === 'https:' && - parsedUrl.protocol !== parsedRedirectUrl.protocol && - !this._allowRedirectDowngrade) { - throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); - } - // we need to finish reading the response before reassigning response - // which will leak the open socket. - yield response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for (const header in headers) { - // header names are case insensitive - if (header.toLowerCase() === 'authorization') { - delete headers[header]; - } - } - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = yield this.requestRaw(info, data); - redirectsRemaining--; - } - if (!response.message.statusCode || - !HttpResponseRetryCodes.includes(response.message.statusCode)) { - // If not a retry code, return immediately instead of retrying - return response; - } - numTries += 1; - if (numTries < maxTries) { - yield response.readBody(); - yield this._performExponentialBackoff(numTries); - } - } while (numTries < maxTries); - return response; - }); - } - /** - * Needs to be called if keepAlive is set to true in request options. - */ - dispose() { - if (this._agent) { - this._agent.destroy(); - } - this._disposed = true; - } - /** - * Raw request. - * @param info - * @param data - */ - requestRaw(info, data) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => { - function callbackForResult(err, res) { - if (err) { - reject(err); - } - else if (!res) { - // If `err` is not passed, then `res` must be passed. - reject(new Error('Unknown error')); - } - else { - resolve(res); - } - } - this.requestRawWithCallback(info, data, callbackForResult); - }); - }); - } - /** - * Raw request with callback. - * @param info - * @param data - * @param onResult - */ - requestRawWithCallback(info, data, onResult) { - if (typeof data === 'string') { - if (!info.options.headers) { - info.options.headers = {}; - } - info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); - } - let callbackCalled = false; - function handleResult(err, res) { - if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); - } - } - const req = info.httpModule.request(info.options, (msg) => { - const res = new HttpClientResponse(msg); - handleResult(undefined, res); - }); - let socket; - req.on('socket', sock => { - socket = sock; - }); - // If we ever get disconnected, we want the socket to timeout eventually - req.setTimeout(this._socketTimeout || 3 * 60000, () => { - if (socket) { - socket.end(); - } - handleResult(new Error(`Request timeout: ${info.options.path}`)); - }); - req.on('error', function (err) { - // err has statusCode property - // res should have headers - handleResult(err); - }); - if (data && typeof data === 'string') { - req.write(data, 'utf8'); - } - if (data && typeof data !== 'string') { - data.on('close', function () { - req.end(); - }); - data.pipe(req); - } - else { - req.end(); - } - } - /** - * Gets an http agent. This function is useful when you need an http agent that handles - * routing through a proxy server - depending upon the url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ - getAgent(serverUrl) { - const parsedUrl = new URL(serverUrl); - return this._getAgent(parsedUrl); - } - _prepareRequest(method, requestUrl, headers) { - const info = {}; - info.parsedUrl = requestUrl; - const usingSsl = info.parsedUrl.protocol === 'https:'; - info.httpModule = usingSsl ? https : http; - const defaultPort = usingSsl ? 443 : 80; - info.options = {}; - info.options.host = info.parsedUrl.hostname; - info.options.port = info.parsedUrl.port - ? parseInt(info.parsedUrl.port) - : defaultPort; - info.options.path = - (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); - info.options.method = method; - info.options.headers = this._mergeHeaders(headers); - if (this.userAgent != null) { - info.options.headers['user-agent'] = this.userAgent; - } - info.options.agent = this._getAgent(info.parsedUrl); - // gives handlers an opportunity to participate - if (this.handlers) { - for (const handler of this.handlers) { - handler.prepareRequest(info.options); - } - } - return info; - } - _mergeHeaders(headers) { - if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); - } - return lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) { - clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; - } - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) { - agent = this._proxyAgent; - } - if (this._keepAlive && !useProxy) { - agent = this._agent; - } - // if agent is already assigned use that agent. - if (agent) { - return agent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - let maxSockets = 100; - if (this.requestOptions) { - maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; - } - // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. - if (proxyUrl && proxyUrl.hostname) { - const agentOptions = { - maxSockets, - keepAlive: this._keepAlive, - proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { - proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` - })), { host: proxyUrl.hostname, port: proxyUrl.port }) - }; - let tunnelAgent; - const overHttps = proxyUrl.protocol === 'https:'; - if (usingSsl) { - tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; - } - else { - tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; - } - agent = tunnelAgent(agentOptions); - this._proxyAgent = agent; - } - // if reusing agent across request and tunneling agent isn't assigned create a new agent - if (this._keepAlive && !agent) { - const options = { keepAlive: this._keepAlive, maxSockets }; - agent = usingSsl ? new https.Agent(options) : new http.Agent(options); - this._agent = agent; - } - // if not using private agent and tunnel agent isn't setup then use global agent - if (!agent) { - agent = usingSsl ? https.globalAgent : http.globalAgent; - } - if (usingSsl && this._ignoreSslError) { - // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process - // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options - // we have to cast it to any and change it directly - agent.options = Object.assign(agent.options || {}, { - rejectUnauthorized: false - }); - } - return agent; - } - _performExponentialBackoff(retryNumber) { - return __awaiter(this, void 0, void 0, function* () { - retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); - const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise(resolve => setTimeout(() => resolve(), ms)); - }); - } - _processResponse(res, options) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { - const statusCode = res.message.statusCode || 0; - const response = { - statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode === HttpCodes.NotFound) { - resolve(response); - } - // get the result from the body - function dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - const a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } - } - return value; - } - let obj; - let contents; - try { - contents = yield res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) { - obj = JSON.parse(contents, dateTimeDeserializer); - } - else { - obj = JSON.parse(contents); - } - response.result = obj; - } - response.headers = res.message.headers; - } - catch (err) { - // Invalid resource (contents not json); leaving result obj null - } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = `Failed request: (${statusCode})`; - } - const err = new HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); - } - else { - resolve(response); - } - })); - }); - } -} -exports.HttpClient = HttpClient; -const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 9835: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkBypass = exports.getProxyUrl = void 0; -function getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === 'https:'; - if (checkBypass(reqUrl)) { - return undefined; - } - const proxyVar = (() => { - if (usingSsl) { - return process.env['https_proxy'] || process.env['HTTPS_PROXY']; - } - else { - return process.env['http_proxy'] || process.env['HTTP_PROXY']; - } - })(); - if (proxyVar) { - return new URL(proxyVar); - } - else { - return undefined; - } -} -exports.getProxyUrl = getProxyUrl; -function checkBypass(reqUrl) { - if (!reqUrl.hostname) { - return false; - } - const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; - if (!noProxy) { - return false; - } - // Determine the request port - let reqPort; - if (reqUrl.port) { - reqPort = Number(reqUrl.port); - } - else if (reqUrl.protocol === 'http:') { - reqPort = 80; - } - else if (reqUrl.protocol === 'https:') { - reqPort = 443; - } - // Format the request hostname and hostname with port - const upperReqHosts = [reqUrl.hostname.toUpperCase()]; - if (typeof reqPort === 'number') { - upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - } - // Compare request host against noproxy - for (const upperNoProxyItem of noProxy - .split(',') - .map(x => x.trim().toUpperCase()) - .filter(x => x)) { - if (upperReqHosts.some(x => x === upperNoProxyItem)) { - return true; - } - } - return false; -} -exports.checkBypass = checkBypass; -//# sourceMappingURL=proxy.js.map - -/***/ }), - -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], - createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], - createWorkflowDispatch: ["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"], - deleteActionsCacheById: ["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"], - deleteActionsCacheByKey: ["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"], - deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - deleteEnvironmentSecret: ["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], - deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], - disableSelectedRepositoryGithubActionsOrganization: ["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"], - disableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"], - downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], - downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], - downloadWorkflowRunAttemptLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"], - downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], - enableSelectedRepositoryGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"], - enableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: ["GET /orgs/{org}/actions/permissions/selected-actions"], - getAllowedActionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - getGithubActionsDefaultWorkflowPermissionsOrganization: ["GET /orgs/{org}/actions/permissions/workflow"], - getGithubActionsDefaultWorkflowPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/workflow"], - getGithubActionsPermissionsOrganization: ["GET /orgs/{org}/actions/permissions"], - getGithubActionsPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions"], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getPendingDeploymentsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], - getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { - renamed: ["actions", "getGithubActionsPermissionsRepository"] - }], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getReviewsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: ["GET /repos/{owner}/{repo}/actions/permissions/access"], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"], - getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], - getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets"], - listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], - listJobsForWorkflowRunAttempt: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"], - listLabelsForSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}/labels"], - listLabelsForSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], - listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], - listSelectedRepositoriesEnabledGithubActionsOrganization: ["GET /orgs/{org}/actions/permissions/repositories"], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], - listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: ["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - removeCustomLabelFromSelfHostedRunnerForOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"], - removeCustomLabelFromSelfHostedRunnerForRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"], - removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - reviewPendingDeploymentsForRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], - setAllowedActionsOrganization: ["PUT /orgs/{org}/actions/permissions/selected-actions"], - setAllowedActionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"], - setCustomLabelsForSelfHostedRunnerForOrg: ["PUT /orgs/{org}/actions/runners/{runner_id}/labels"], - setCustomLabelsForSelfHostedRunnerForRepo: ["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - setGithubActionsDefaultWorkflowPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions/workflow"], - setGithubActionsDefaultWorkflowPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/workflow"], - setGithubActionsPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions"], - setGithubActionsPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions"], - setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}", {}, { - renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] - }], - addRepoToInstallationForAuthenticatedUser: ["PUT /user/installations/{installation_id}/repositories/{repository_id}"], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens"], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], - getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], - listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories"], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: ["POST /app/hook/deliveries/{delivery_id}/attempts"], - removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}", {}, { - renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] - }], - removeRepoFromInstallationForAuthenticatedUser: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}"], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: ["GET /users/{username}/settings/billing/actions"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: ["GET /users/{username}/settings/billing/packages"], - getSharedStorageBillingOrg: ["GET /orgs/{org}/settings/billing/shared-storage"], - getSharedStorageBillingUser: ["GET /users/{username}/settings/billing/shared-storage"] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: ["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"], - rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"], - setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences"], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { - renamedParameters: { - alert_id: "alert_number" - } - }], - getAnalysis: ["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { - renamed: ["codeScanning", "listAlertInstances"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - createOrUpdateSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}"], - createWithPrForAuthenticatedUser: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"], - createWithRepoForAuthenticatedUser: ["POST /repos/{owner}/{repo}/codespaces"], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: ["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getPublicKeyForAuthenticatedUser: ["GET /user/codespaces/secrets/public-key"], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - getSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}"], - listDevcontainersInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/devcontainers"], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: ["GET /orgs/{org}/codespaces", {}, { - renamedParameters: { - org_id: "org" - } - }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories"], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: ["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - dependabot: { - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"], - removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"], - setSelectedReposForOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"] - }, - dependencyGraph: { - createRepositorySnapshot: ["POST /repos/{owner}/{repo}/dependency-graph/snapshots"], - diffRange: ["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"] - }, - emojis: { - get: ["GET /emojis"] - }, - enterpriseAdmin: { - addCustomLabelsToSelfHostedRunnerForEnterprise: ["POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], - enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], - getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], - getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], - getServerStatistics: ["GET /enterprise-installation/{enterprise_or_org}/server-statistics"], - listLabelsForSelfHostedRunnerForEnterprise: ["GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], - removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - removeCustomLabelFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}"], - setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], - setCustomLabelsForSelfHostedRunnerForEnterprise: ["PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], - setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] - }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits", {}, { - renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] - }], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits"], - removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits", {}, { - renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] - }], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits", {}, { - renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] - }] - }, - issues: { - addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], - removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], - removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: ["POST /markdown/raw", { - headers: { - "content-type": "text/plain; charset=utf-8" - } - }] - }, - meta: { - get: ["GET /meta"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: ["DELETE /repos/{owner}/{repo}/import"], - deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive"], - deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive"], - downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive"], - getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive"], - getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], - getImportStatus: ["GET /repos/{owner}/{repo}/import"], - getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: ["GET /user/migrations/{migration_id}/repositories"], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: ["GET /user/migrations/{migration_id}/repositories", {}, { - renamed: ["migrations", "listReposForAuthenticatedUser"] - }], - mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], - setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: ["PUT /repos/{owner}/{repo}/import"], - unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"], - unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"], - updateImport: ["PATCH /repos/{owner}/{repo}/import"] - }, - orgs: { - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], - createInvitation: ["POST /orgs/{org}/invitations"], - createWebhook: ["POST /orgs/{org}/hooks"], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - get: ["GET /orgs/{org}"], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: ["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomRoles: ["GET /organizations/{organization_id}/custom_roles"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: ["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], - removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}"], - deletePackageForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}"], - deletePackageForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}"], - deletePackageVersionForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], - deletePackageVersionForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], - deletePackageVersionForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], - getAllPackageVersionsForAPackageOwnedByAnOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { - renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] - }], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions", {}, { - renamed: ["packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"] - }], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions"], - getAllPackageVersionsForPackageOwnedByOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"], - getAllPackageVersionsForPackageOwnedByUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions"], - getPackageForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}"], - getPackageForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}"], - getPackageForUser: ["GET /users/{username}/packages/{package_type}/{package_name}"], - getPackageVersionForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], - getPackageVersionForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], - getPackageVersionForUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/restore{?token}"], - restorePackageForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"], - restorePackageForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"], - restorePackageVersionForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], - restorePackageVersionForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], - restorePackageVersionForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission"], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}"], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], - deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], - deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], - listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], - requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], - submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"], - updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], - updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] - }, - rateLimit: { - get: ["GET /rate_limit"] - }, - reactions: { - createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"], - createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"], - createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"], - createForRelease: ["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"], - createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"], - createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"], - deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"], - deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"], - deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"], - deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"], - deleteForRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"], - deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"], - deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"], - listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"], - listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"], - listForRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"], - listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"], - listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"] - }, - repos: { - acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}", {}, { - renamed: ["repos", "acceptInvitationForAuthenticatedUser"] - }], - acceptInvitationForAuthenticatedUser: ["PATCH /user/repository_invitations/{invitation_id}"], - addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { - mapToData: "apps" - }], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { - mapToData: "contexts" - }], - addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { - mapToData: "teams" - }], - addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { - mapToData: "users" - }], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts"], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: ["GET /repos/{owner}/{repo}/compare/{basehead}"], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], - createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate"], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}", {}, { - renamed: ["repos", "declineInvitationForAuthenticatedUser"] - }], - declineInvitationForAuthenticatedUser: ["DELETE /user/repository_invitations/{invitation_id}"], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], - deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], - deleteAnEnvironment: ["DELETE /repos/{owner}/{repo}/environments/{environment_name}"], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], - deleteTagProtection: ["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes"], - disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], - disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts"], - downloadArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}", {}, { - renamed: ["repos", "downloadZipballArchive"] - }], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes"], - enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], - enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts"], - generateReleaseNotes: ["POST /repos/{owner}/{repo}/releases/generate-notes"], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], - getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], - getEnvironment: ["GET /repos/{owner}/{repo}/environments/{environment_name}"], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], - getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"], - getWebhookDelivery: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"], - listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], - removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { - mapToData: "apps" - }], - removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], - removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { - mapToData: "contexts" - }], - removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], - removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { - mapToData: "teams" - }], - removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { - mapToData: "users" - }], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], - setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { - mapToData: "apps" - }], - setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { - mapToData: "contexts" - }], - setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { - mapToData: "teams" - }], - setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { - mapToData: "users" - }], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], - updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], - updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { - renamed: ["repos", "updateStatusCheckProtection"] - }], - updateStatusCheckProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"], - uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { - baseUrl: "https://uploads.github.com" - }] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], - listAlertsForEnterprise: ["GET /enterprises/{enterprise}/secret-scanning/alerts"], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"], - updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] - }, - teams: { - addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], - addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], - checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], - deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], - getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], - getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], - removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], - updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], - updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: ["POST /user/emails", {}, { - renamed: ["users", "addEmailForAuthenticatedUser"] - }], - addEmailForAuthenticatedUser: ["POST /user/emails"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: ["POST /user/gpg_keys", {}, { - renamed: ["users", "createGpgKeyForAuthenticatedUser"] - }], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: ["POST /user/keys", {}, { - renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] - }], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - deleteEmailForAuthenticated: ["DELETE /user/emails", {}, { - renamed: ["users", "deleteEmailForAuthenticatedUser"] - }], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}", {}, { - renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] - }], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}", {}, { - renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] - }], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}", {}, { - renamed: ["users", "getGpgKeyForAuthenticatedUser"] - }], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}", {}, { - renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] - }], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - list: ["GET /users"], - listBlockedByAuthenticated: ["GET /user/blocks", {}, { - renamed: ["users", "listBlockedByAuthenticatedUser"] - }], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: ["GET /user/emails", {}, { - renamed: ["users", "listEmailsForAuthenticatedUser"] - }], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: ["GET /user/following", {}, { - renamed: ["users", "listFollowedByAuthenticatedUser"] - }], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: ["GET /user/gpg_keys", {}, { - renamed: ["users", "listGpgKeysForAuthenticatedUser"] - }], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: ["GET /user/public_emails", {}, { - renamed: ["users", "listPublicEmailsForAuthenticatedUser"] - }], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: ["GET /user/keys", {}, { - renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] - }], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility", {}, { - renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] - }], - setPrimaryEmailVisibilityForAuthenticatedUser: ["PATCH /user/email/visibility"], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] - } -}; - -const VERSION = "5.16.2"; - -function endpointsToMethods(octokit, endpointsMap) { - const newMethods = {}; - - for (const [scope, endpoints] of Object.entries(endpointsMap)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign({ - method, - url - }, defaults); - - if (!newMethods[scope]) { - newMethods[scope] = {}; - } - - const scopeMethods = newMethods[scope]; - - if (decorations) { - scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); - continue; - } - - scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); - } - } - - return newMethods; -} - -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - /* istanbul ignore next */ - - function withDecorations(...args) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` - - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: undefined - }); - return requestWithDefaults(options); - } - - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); - } - - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - - if (decorations.renamedParameters) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - const options = requestWithDefaults.endpoint.merge(...args); - - for (const [name, alias] of Object.entries(decorations.renamedParameters)) { - if (name in options) { - octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); - - if (!(alias in options)) { - options[alias] = options[name]; - } - - delete options[name]; - } - } - - return requestWithDefaults(options); - } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - - - return requestWithDefaults(...args); - } - - return Object.assign(withDecorations, requestWithDefaults); -} - -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return { - rest: api - }; -} -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return _objectSpread2(_objectSpread2({}, api), {}, { - rest: api - }); -} -legacyRestEndpointMethods.VERSION = VERSION; - -exports.legacyRestEndpointMethods = legacyRestEndpointMethods; -exports.restEndpointMethods = restEndpointMethods; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) - -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef - - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} - -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} - -function HookCollection () { - var state = { - registry: {} - } - - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook -} - -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} - -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() - -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); - } - - if (!options) { - options = {}; - } - - if (Array.isArray(name)) { - return name.reverse().reduce(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 467: -/***/ ((module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var Stream = _interopDefault(__nccwpck_require__(2781)); -var http = _interopDefault(__nccwpck_require__(3685)); -var Url = _interopDefault(__nccwpck_require__(7310)); -var whatwgUrl = _interopDefault(__nccwpck_require__(3323)); -var https = _interopDefault(__nccwpck_require__(5687)); -var zlib = _interopDefault(__nccwpck_require__(9796)); - -// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js - -// fix for "Readable" isn't a named export issue -const Readable = Stream.Readable; - -const BUFFER = Symbol('buffer'); -const TYPE = Symbol('type'); - -class Blob { - constructor() { - this[TYPE] = ''; - - const blobParts = arguments[0]; - const options = arguments[1]; - - const buffers = []; - let size = 0; - - if (blobParts) { - const a = blobParts; - const length = Number(a.length); - for (let i = 0; i < length; i++) { - const element = a[i]; - let buffer; - if (element instanceof Buffer) { - buffer = element; - } else if (ArrayBuffer.isView(element)) { - buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); - } else if (element instanceof ArrayBuffer) { - buffer = Buffer.from(element); - } else if (element instanceof Blob) { - buffer = element[BUFFER]; - } else { - buffer = Buffer.from(typeof element === 'string' ? element : String(element)); - } - size += buffer.length; - buffers.push(buffer); - } - } - - this[BUFFER] = Buffer.concat(buffers); - - let type = options && options.type !== undefined && String(options.type).toLowerCase(); - if (type && !/[^\u0020-\u007E]/.test(type)) { - this[TYPE] = type; - } - } - get size() { - return this[BUFFER].length; - } - get type() { - return this[TYPE]; - } - text() { - return Promise.resolve(this[BUFFER].toString()); - } - arrayBuffer() { - const buf = this[BUFFER]; - const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - return Promise.resolve(ab); - } - stream() { - const readable = new Readable(); - readable._read = function () {}; - readable.push(this[BUFFER]); - readable.push(null); - return readable; - } - toString() { - return '[object Blob]'; - } - slice() { - const size = this.size; - - const start = arguments[0]; - const end = arguments[1]; - let relativeStart, relativeEnd; - if (start === undefined) { - relativeStart = 0; - } else if (start < 0) { - relativeStart = Math.max(size + start, 0); - } else { - relativeStart = Math.min(start, size); - } - if (end === undefined) { - relativeEnd = size; - } else if (end < 0) { - relativeEnd = Math.max(size + end, 0); - } else { - relativeEnd = Math.min(end, size); - } - const span = Math.max(relativeEnd - relativeStart, 0); - - const buffer = this[BUFFER]; - const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); - const blob = new Blob([], { type: arguments[2] }); - blob[BUFFER] = slicedBuffer; - return blob; - } -} - -Object.defineProperties(Blob.prototype, { - size: { enumerable: true }, - type: { enumerable: true }, - slice: { enumerable: true } -}); - -Object.defineProperty(Blob.prototype, Symbol.toStringTag, { - value: 'Blob', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * fetch-error.js - * - * FetchError interface for operational errors - */ - -/** - * Create FetchError instance - * - * @param String message Error message for human - * @param String type Error type for machine - * @param String systemError For Node.js system error - * @return FetchError - */ -function FetchError(message, type, systemError) { - Error.call(this, message); - - this.message = message; - this.type = type; - - // when err.type is `system`, err.code contains system error code - if (systemError) { - this.code = this.errno = systemError.code; - } - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -FetchError.prototype = Object.create(Error.prototype); -FetchError.prototype.constructor = FetchError; -FetchError.prototype.name = 'FetchError'; - -let convert; -try { - convert = (__nccwpck_require__(2877).convert); -} catch (e) {} - -const INTERNALS = Symbol('Body internals'); - -// fix an issue where "PassThrough" isn't a named export for node <10 -const PassThrough = Stream.PassThrough; - -/** - * Body mixin - * - * Ref: https://fetch.spec.whatwg.org/#body - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -function Body(body) { - var _this = this; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$size = _ref.size; - - let size = _ref$size === undefined ? 0 : _ref$size; - var _ref$timeout = _ref.timeout; - let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; - - if (body == null) { - // body is undefined or null - body = null; - } else if (isURLSearchParams(body)) { - // body is a URLSearchParams - body = Buffer.from(body.toString()); - } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { - // body is ArrayBuffer - body = Buffer.from(body); - } else if (ArrayBuffer.isView(body)) { - // body is ArrayBufferView - body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); - } else if (body instanceof Stream) ; else { - // none of the above - // coerce to string then buffer - body = Buffer.from(String(body)); - } - this[INTERNALS] = { - body, - disturbed: false, - error: null - }; - this.size = size; - this.timeout = timeout; - - if (body instanceof Stream) { - body.on('error', function (err) { - const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); - _this[INTERNALS].error = error; - }); - } -} - -Body.prototype = { - get body() { - return this[INTERNALS].body; - }, - - get bodyUsed() { - return this[INTERNALS].disturbed; - }, - - /** - * Decode response as ArrayBuffer - * - * @return Promise - */ - arrayBuffer() { - return consumeBody.call(this).then(function (buf) { - return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - }); - }, - - /** - * Return raw response as Blob - * - * @return Promise - */ - blob() { - let ct = this.headers && this.headers.get('content-type') || ''; - return consumeBody.call(this).then(function (buf) { - return Object.assign( - // Prevent copying - new Blob([], { - type: ct.toLowerCase() - }), { - [BUFFER]: buf - }); - }); - }, - - /** - * Decode response as json - * - * @return Promise - */ - json() { - var _this2 = this; - - return consumeBody.call(this).then(function (buffer) { - try { - return JSON.parse(buffer.toString()); - } catch (err) { - return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); - } - }); - }, - - /** - * Decode response as text - * - * @return Promise - */ - text() { - return consumeBody.call(this).then(function (buffer) { - return buffer.toString(); - }); - }, - - /** - * Decode response as buffer (non-spec api) - * - * @return Promise - */ - buffer() { - return consumeBody.call(this); - }, - - /** - * Decode response as text, while automatically detecting the encoding and - * trying to decode to UTF-8 (non-spec api) - * - * @return Promise - */ - textConverted() { - var _this3 = this; - - return consumeBody.call(this).then(function (buffer) { - return convertBody(buffer, _this3.headers); - }); - } -}; - -// In browsers, all properties are enumerable. -Object.defineProperties(Body.prototype, { - body: { enumerable: true }, - bodyUsed: { enumerable: true }, - arrayBuffer: { enumerable: true }, - blob: { enumerable: true }, - json: { enumerable: true }, - text: { enumerable: true } -}); - -Body.mixIn = function (proto) { - for (const name of Object.getOwnPropertyNames(Body.prototype)) { - // istanbul ignore else: future proof - if (!(name in proto)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(proto, name, desc); - } - } -}; - -/** - * Consume and convert an entire Body to a Buffer. - * - * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body - * - * @return Promise - */ -function consumeBody() { - var _this4 = this; - - if (this[INTERNALS].disturbed) { - return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); - } - - this[INTERNALS].disturbed = true; - - if (this[INTERNALS].error) { - return Body.Promise.reject(this[INTERNALS].error); - } - - let body = this.body; - - // body is null - if (body === null) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is blob - if (isBlob(body)) { - body = body.stream(); - } - - // body is buffer - if (Buffer.isBuffer(body)) { - return Body.Promise.resolve(body); - } - - // istanbul ignore if: should never happen - if (!(body instanceof Stream)) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is stream - // get ready to actually consume the body - let accum = []; - let accumBytes = 0; - let abort = false; - - return new Body.Promise(function (resolve, reject) { - let resTimeout; - - // allow timeout on slow response body - if (_this4.timeout) { - resTimeout = setTimeout(function () { - abort = true; - reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); - }, _this4.timeout); - } - - // handle stream errors - body.on('error', function (err) { - if (err.name === 'AbortError') { - // if the request was aborted, reject with this Error - abort = true; - reject(err); - } else { - // other errors, such as incorrect content-encoding - reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - - body.on('data', function (chunk) { - if (abort || chunk === null) { - return; - } - - if (_this4.size && accumBytes + chunk.length > _this4.size) { - abort = true; - reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); - return; - } - - accumBytes += chunk.length; - accum.push(chunk); - }); - - body.on('end', function () { - if (abort) { - return; - } - - clearTimeout(resTimeout); - - try { - resolve(Buffer.concat(accum, accumBytes)); - } catch (err) { - // handle streams that have accumulated too much data (issue #414) - reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - }); -} - -/** - * Detect buffer encoding and convert to target encoding - * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding - * - * @param Buffer buffer Incoming buffer - * @param String encoding Target encoding - * @return String - */ -function convertBody(buffer, headers) { - if (typeof convert !== 'function') { - throw new Error('The package `encoding` must be installed to use the textConverted() function'); - } - - const ct = headers.get('content-type'); - let charset = 'utf-8'; - let res, str; - - // header - if (ct) { - res = /charset=([^;]*)/i.exec(ct); - } - - // no charset in content type, peek at response body for at most 1024 bytes - str = buffer.slice(0, 1024).toString(); - - // html5 - if (!res && str) { - res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; - - this[MAP] = Object.create(null); - - if (init instanceof Headers) { - const rawHeaders = init.raw(); - const headerNames = Object.keys(rawHeaders); - - for (const headerName of headerNames) { - for (const value of rawHeaders[headerName]) { - this.append(headerName, value); - } - } - - return; - } - - // We don't worry about converting prop to ByteString here as append() - // will handle it. - if (init == null) ; else if (typeof init === 'object') { - const method = init[Symbol.iterator]; - if (method != null) { - if (typeof method !== 'function') { - throw new TypeError('Header pairs must be iterable'); - } - - // sequence> - // Note: per spec we have to first exhaust the lists then process them - const pairs = []; - for (const pair of init) { - if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { - throw new TypeError('Each header pair must be iterable'); - } - pairs.push(Array.from(pair)); - } - - for (const pair of pairs) { - if (pair.length !== 2) { - throw new TypeError('Each header pair must be a name/value tuple'); - } - this.append(pair[0], pair[1]); - } - } else { - // record - for (const key of Object.keys(init)) { - const value = init[key]; - this.append(key, value); - } - } - } else { - throw new TypeError('Provided initializer must be an object'); - } - } - - /** - * Return combined header value given name - * - * @param String name Header name - * @return Mixed - */ - get(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key === undefined) { - return null; - } - - return this[MAP][key].join(', '); - } - - /** - * Iterate over all headers - * - * @param Function callback Executed for each item with parameters (value, name, thisArg) - * @param Boolean thisArg `this` context for callback function - * @return Void - */ - forEach(callback) { - let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; - - let pairs = getHeaders(this); - let i = 0; - while (i < pairs.length) { - var _pairs$i = pairs[i]; - const name = _pairs$i[0], - value = _pairs$i[1]; - - callback.call(thisArg, value, name, this); - pairs = getHeaders(this); - i++; - } - } - - /** - * Overwrite header values given name - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - set(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - this[MAP][key !== undefined ? key : name] = [value]; - } - - /** - * Append a value onto existing header - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - append(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - if (key !== undefined) { - this[MAP][key].push(value); - } else { - this[MAP][name] = [value]; - } - } - - /** - * Check for header name existence - * - * @param String name Header name - * @return Boolean - */ - has(name) { - name = `${name}`; - validateName(name); - return find(this[MAP], name) !== undefined; - } - - /** - * Delete all header values given name - * - * @param String name Header name - * @return Void - */ - delete(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key !== undefined) { - delete this[MAP][key]; - } - } - - /** - * Return raw headers (non-spec api) - * - * @return Object - */ - raw() { - return this[MAP]; - } - - /** - * Get an iterator on keys. - * - * @return Iterator - */ - keys() { - return createHeadersIterator(this, 'key'); - } - - /** - * Get an iterator on values. - * - * @return Iterator - */ - values() { - return createHeadersIterator(this, 'value'); - } - - /** - * Get an iterator on entries. - * - * This is the default iterator of the Headers object. - * - * @return Iterator - */ - [Symbol.iterator]() { - return createHeadersIterator(this, 'key+value'); - } -} -Headers.prototype.entries = Headers.prototype[Symbol.iterator]; - -Object.defineProperty(Headers.prototype, Symbol.toStringTag, { - value: 'Headers', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Headers.prototype, { - get: { enumerable: true }, - forEach: { enumerable: true }, - set: { enumerable: true }, - append: { enumerable: true }, - has: { enumerable: true }, - delete: { enumerable: true }, - keys: { enumerable: true }, - values: { enumerable: true }, - entries: { enumerable: true } -}); - -function getHeaders(headers) { - let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; - - const keys = Object.keys(headers[MAP]).sort(); - return keys.map(kind === 'key' ? function (k) { - return k.toLowerCase(); - } : kind === 'value' ? function (k) { - return headers[MAP][k].join(', '); - } : function (k) { - return [k.toLowerCase(), headers[MAP][k].join(', ')]; - }); -} - -const INTERNAL = Symbol('internal'); - -function createHeadersIterator(target, kind) { - const iterator = Object.create(HeadersIteratorPrototype); - iterator[INTERNAL] = { - target, - kind, - index: 0 - }; - return iterator; -} - -const HeadersIteratorPrototype = Object.setPrototypeOf({ - next() { - // istanbul ignore if - if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { - throw new TypeError('Value of `this` is not a HeadersIterator'); - } - - var _INTERNAL = this[INTERNAL]; - const target = _INTERNAL.target, - kind = _INTERNAL.kind, - index = _INTERNAL.index; - - const values = getHeaders(target, kind); - const len = values.length; - if (index >= len) { - return { - value: undefined, - done: true - }; - } - - this[INTERNAL].index = index + 1; - - return { - value: values[index], - done: false - }; - } -}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); - -Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { - value: 'HeadersIterator', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * Export the Headers object in a form that Node.js can consume. - * - * @param Headers headers - * @return Object - */ -function exportNodeCompatibleHeaders(headers) { - const obj = Object.assign({ __proto__: null }, headers[MAP]); - - // http.request() only supports string as Host header. This hack makes - // specifying custom Host header possible. - const hostHeaderKey = find(headers[MAP], 'Host'); - if (hostHeaderKey !== undefined) { - obj[hostHeaderKey] = obj[hostHeaderKey][0]; - } - - return obj; -} - -/** - * Create a Headers object from an object of headers, ignoring those that do - * not conform to HTTP grammar productions. - * - * @param Object obj Object of headers - * @return Headers - */ -function createHeadersLenient(obj) { - const headers = new Headers(); - for (const name of Object.keys(obj)) { - if (invalidTokenRegex.test(name)) { - continue; - } - if (Array.isArray(obj[name])) { - for (const val of obj[name]) { - if (invalidHeaderCharRegex.test(val)) { - continue; - } - if (headers[MAP][name] === undefined) { - headers[MAP][name] = [val]; - } else { - headers[MAP][name].push(val); - } - } - } else if (!invalidHeaderCharRegex.test(obj[name])) { - headers[MAP][name] = [obj[name]]; - } - } - return headers; -} - -const INTERNALS$1 = Symbol('Response internals'); - -// fix an issue where "STATUS_CODES" aren't a named export for node <10 -const STATUS_CODES = http.STATUS_CODES; - -/** - * Response class - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -class Response { - constructor() { - let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - Body.call(this, body, opts); - - const status = opts.status || 200; - const headers = new Headers(opts.headers); - - if (body != null && !headers.has('Content-Type')) { - const contentType = extractContentType(body); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - this[INTERNALS$1] = { - url: opts.url, - status, - statusText: opts.statusText || STATUS_CODES[status], - headers, - counter: opts.counter - }; - } - - get url() { - return this[INTERNALS$1].url || ''; - } - - get status() { - return this[INTERNALS$1].status; - } - - /** - * Convenience property representing if the request ended normally - */ - get ok() { - return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; - } - - get redirected() { - return this[INTERNALS$1].counter > 0; - } - - get statusText() { - return this[INTERNALS$1].statusText; - } - - get headers() { - return this[INTERNALS$1].headers; - } - - /** - * Clone this response - * - * @return Response - */ - clone() { - return new Response(clone(this), { - url: this.url, - status: this.status, - statusText: this.statusText, - headers: this.headers, - ok: this.ok, - redirected: this.redirected - }); - } -} - -Body.mixIn(Response.prototype); - -Object.defineProperties(Response.prototype, { - url: { enumerable: true }, - status: { enumerable: true }, - ok: { enumerable: true }, - redirected: { enumerable: true }, - statusText: { enumerable: true }, - headers: { enumerable: true }, - clone: { enumerable: true } -}); - -Object.defineProperty(Response.prototype, Symbol.toStringTag, { - value: 'Response', - writable: false, - enumerable: false, - configurable: true -}); - -const INTERNALS$2 = Symbol('Request internals'); -const URL = Url.URL || whatwgUrl.URL; - -// fix an issue where "format", "parse" aren't a named export for node <10 -const parse_url = Url.parse; -const format_url = Url.format; - -/** - * Wrapper around `new URL` to handle arbitrary URLs - * - * @param {string} urlStr - * @return {void} - */ -function parseURL(urlStr) { - /* - Check whether the URL is absolute or not - Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 - Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 - */ - if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { - urlStr = new URL(urlStr).toString(); - } - - // Fallback to old implementation for arbitrary URLs - return parse_url(urlStr); -} - -const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; - -/** - * Check if a value is an instance of Request. - * - * @param Mixed input - * @return Boolean - */ -function isRequest(input) { - return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; -} - -function isAbortSignal(signal) { - const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); - return !!(proto && proto.constructor.name === 'AbortSignal'); -} - -/** - * Request class - * - * @param Mixed input Url or Request instance - * @param Object init Custom options - * @return Void - */ -class Request { - constructor(input) { - let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - let parsedURL; - - // normalize input - if (!isRequest(input)) { - if (input && input.href) { - // in order to support Node.js' Url objects; though WHATWG's URL objects - // will fall into this branch also (since their `toString()` will return - // `href` property anyway) - parsedURL = parseURL(input.href); - } else { - // coerce input to a string before attempting to parse - parsedURL = parseURL(`${input}`); - } - input = {}; - } else { - parsedURL = parseURL(input.url); - } - - let method = init.method || input.method || 'GET'; - method = method.toUpperCase(); - - if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { - throw new TypeError('Request with GET/HEAD method cannot have body'); - } - - let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; - - Body.call(this, inputBody, { - timeout: init.timeout || input.timeout || 0, - size: init.size || input.size || 0 - }); - - const headers = new Headers(init.headers || input.headers || {}); - - if (inputBody != null && !headers.has('Content-Type')) { - const contentType = extractContentType(inputBody); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - let signal = isRequest(input) ? input.signal : null; - if ('signal' in init) signal = init.signal; - - if (signal != null && !isAbortSignal(signal)) { - throw new TypeError('Expected signal to be an instanceof AbortSignal'); - } - - this[INTERNALS$2] = { - method, - redirect: init.redirect || input.redirect || 'follow', - headers, - parsedURL, - signal - }; - - // node-fetch-only options - this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; - this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; - this.counter = init.counter || input.counter || 0; - this.agent = init.agent || input.agent; - } - - get method() { - return this[INTERNALS$2].method; - } - - get url() { - return format_url(this[INTERNALS$2].parsedURL); - } - - get headers() { - return this[INTERNALS$2].headers; - } - - get redirect() { - return this[INTERNALS$2].redirect; - } - - get signal() { - return this[INTERNALS$2].signal; - } - - /** - * Clone this request - * - * @return Request - */ - clone() { - return new Request(this); - } -} - -Body.mixIn(Request.prototype); - -Object.defineProperty(Request.prototype, Symbol.toStringTag, { - value: 'Request', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Request.prototype, { - method: { enumerable: true }, - url: { enumerable: true }, - headers: { enumerable: true }, - redirect: { enumerable: true }, - clone: { enumerable: true }, - signal: { enumerable: true } -}); - -/** - * Convert a Request to Node.js http request options. - * - * @param Request A Request instance - * @return Object The options object to be passed to http.request - */ -function getNodeRequestOptions(request) { - const parsedURL = request[INTERNALS$2].parsedURL; - const headers = new Headers(request[INTERNALS$2].headers); - - // fetch step 1.3 - if (!headers.has('Accept')) { - headers.set('Accept', '*/*'); - } - - // Basic fetch - if (!parsedURL.protocol || !parsedURL.hostname) { - throw new TypeError('Only absolute URLs are supported'); - } - - if (!/^https?:$/.test(parsedURL.protocol)) { - throw new TypeError('Only HTTP(S) protocols are supported'); - } - - if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { - throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); - } - - // HTTP-network-or-cache fetch steps 2.4-2.7 - let contentLengthValue = null; - if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { - contentLengthValue = '0'; - } - if (request.body != null) { - const totalBytes = getTotalBytes(request); - if (typeof totalBytes === 'number') { - contentLengthValue = String(totalBytes); - } - } - if (contentLengthValue) { - headers.set('Content-Length', contentLengthValue); - } - - // HTTP-network-or-cache fetch step 2.11 - if (!headers.has('User-Agent')) { - headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); - } - - // HTTP-network-or-cache fetch step 2.15 - if (request.compress && !headers.has('Accept-Encoding')) { - headers.set('Accept-Encoding', 'gzip,deflate'); - } - - let agent = request.agent; - if (typeof agent === 'function') { - agent = agent(parsedURL); - } - - if (!headers.has('Connection') && !agent) { - headers.set('Connection', 'close'); - } - - // HTTP-network fetch step 4.2 - // chunked encoding is handled by Node.js - - return Object.assign({}, parsedURL, { - method: request.method, - headers: exportNodeCompatibleHeaders(headers), - agent - }); -} - -/** - * abort-error.js - * - * AbortError interface for cancelled requests - */ - -/** - * Create AbortError instance - * - * @param String message Error message for human - * @return AbortError - */ -function AbortError(message) { - Error.call(this, message); - - this.type = 'aborted'; - this.message = message; - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -AbortError.prototype = Object.create(Error.prototype); -AbortError.prototype.constructor = AbortError; -AbortError.prototype.name = 'AbortError'; - -const URL$1 = Url.URL || whatwgUrl.URL; - -// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 -const PassThrough$1 = Stream.PassThrough; - -const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { - const orig = new URL$1(original).hostname; - const dest = new URL$1(destination).hostname; - - return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); -}; - -/** - * Fetch function - * - * @param Mixed url Absolute url or Request instance - * @param Object opts Fetch options - * @return Promise - */ -function fetch(url, opts) { - - // allow custom promise - if (!fetch.Promise) { - throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); - } - - Body.Promise = fetch.Promise; - - // wrap http.request into fetch - return new fetch.Promise(function (resolve, reject) { - // build request object - const request = new Request(url, opts); - const options = getNodeRequestOptions(request); - - const send = (options.protocol === 'https:' ? https : http).request; - const signal = request.signal; - - let response = null; - - const abort = function abort() { - let error = new AbortError('The user aborted a request.'); - reject(error); - if (request.body && request.body instanceof Stream.Readable) { - request.body.destroy(error); - } - if (!response || !response.body) return; - response.body.emit('error', error); - }; - - if (signal && signal.aborted) { - abort(); - return; - } - - const abortAndFinalize = function abortAndFinalize() { - abort(); - finalize(); - }; - - // send request - const req = send(options); - let reqTimeout; - - if (signal) { - signal.addEventListener('abort', abortAndFinalize); - } - - function finalize() { - req.abort(); - if (signal) signal.removeEventListener('abort', abortAndFinalize); - clearTimeout(reqTimeout); - } - - if (request.timeout) { - req.once('socket', function (socket) { - reqTimeout = setTimeout(function () { - reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); - finalize(); - }, request.timeout); - }); - } - - req.on('error', function (err) { - reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); - finalize(); - }); - - req.on('response', function (res) { - clearTimeout(reqTimeout); - - const headers = createHeadersLenient(res.headers); - - // HTTP fetch step 5 - if (fetch.isRedirect(res.statusCode)) { - // HTTP fetch step 5.2 - const location = headers.get('Location'); - - // HTTP fetch step 5.3 - let locationURL = null; - try { - locationURL = location === null ? null : new URL$1(location, request.url).toString(); - } catch (err) { - // error here can only be invalid URL in Location: header - // do not throw when options.redirect == manual - // let the user extract the errorneous redirect URL - if (request.redirect !== 'manual') { - reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); - finalize(); - return; - } - } - - // HTTP fetch step 5.5 - switch (request.redirect) { - case 'error': - reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); - finalize(); - return; - case 'manual': - // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. - if (locationURL !== null) { - // handle corrupted header - try { - headers.set('Location', locationURL); - } catch (err) { - // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request - reject(err); - } - } - break; - case 'follow': - // HTTP-redirect fetch step 2 - if (locationURL === null) { - break; - } - - // HTTP-redirect fetch step 5 - if (request.counter >= request.follow) { - reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 6 (counter increment) - // Create a new Request object. - const requestOpts = { - headers: new Headers(request.headers), - follow: request.follow, - counter: request.counter + 1, - agent: request.agent, - compress: request.compress, - method: request.method, - body: request.body, - signal: request.signal, - timeout: request.timeout, - size: request.size - }; - - if (!isDomainOrSubdomain(request.url, locationURL)) { - for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { - requestOpts.headers.delete(name); - } - } - - // HTTP-redirect fetch step 9 - if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { - reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 11 - if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { - requestOpts.method = 'GET'; - requestOpts.body = undefined; - requestOpts.headers.delete('content-length'); - } - - // HTTP-redirect fetch step 15 - resolve(fetch(new Request(locationURL, requestOpts))); - finalize(); - return; - } - } - - // prepare response - res.once('end', function () { - if (signal) signal.removeEventListener('abort', abortAndFinalize); - }); - let body = res.pipe(new PassThrough$1()); - - const response_options = { - url: request.url, - status: res.statusCode, - statusText: res.statusMessage, - headers: headers, - size: request.size, - timeout: request.timeout, - counter: request.counter - }; - - // HTTP-network fetch step 12.1.1.3 - const codings = headers.get('Content-Encoding'); - - // HTTP-network fetch step 12.1.1.4: handle content codings - - // in following scenarios we ignore compression support - // 1. compression support is disabled - // 2. HEAD request - // 3. no Content-Encoding header - // 4. no content response (204) - // 5. content not modified response (304) - if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { - response = new Response(body, response_options); - resolve(response); - return; - } - - // For Node v6+ - // Be less strict when decoding compressed responses, since sometimes - // servers send slightly invalid responses that are still accepted - // by common browsers. - // Always using Z_SYNC_FLUSH is what cURL does. - const zlibOptions = { - flush: zlib.Z_SYNC_FLUSH, - finishFlush: zlib.Z_SYNC_FLUSH - }; - - // for gzip - if (codings == 'gzip' || codings == 'x-gzip') { - body = body.pipe(zlib.createGunzip(zlibOptions)); - response = new Response(body, response_options); - resolve(response); - return; - } - - // for deflate - if (codings == 'deflate' || codings == 'x-deflate') { - // handle the infamous raw deflate response from old servers - // a hack for old IIS and Apache servers - const raw = res.pipe(new PassThrough$1()); - raw.once('data', function (chunk) { - // see http://stackoverflow.com/questions/37519828 - if ((chunk[0] & 0x0F) === 0x08) { - body = body.pipe(zlib.createInflate()); - } else { - body = body.pipe(zlib.createInflateRaw()); - } - response = new Response(body, response_options); - resolve(response); - }); - return; - } - - // for br - if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { - body = body.pipe(zlib.createBrotliDecompress()); - response = new Response(body, response_options); - resolve(response); - return; - } - - // otherwise, use response as-is - response = new Response(body, response_options); - resolve(response); - }); - - writeToStream(req, request); - }); -} -/** - * Redirect code matching - * - * @param Number code Status code - * @return Boolean - */ -fetch.isRedirect = function (code) { - return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; -}; - -// expose Promise -fetch.Promise = global.Promise; - -module.exports = exports = fetch; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports["default"] = exports; -exports.Headers = Headers; -exports.Request = Request; -exports.Response = Response; -exports.FetchError = FetchError; - - -/***/ }), - -/***/ 2299: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -var punycode = __nccwpck_require__(5477); -var mappingTable = __nccwpck_require__(1907); - -var PROCESSING_OPTIONS = { - TRANSITIONAL: 0, - NONTRANSITIONAL: 1 -}; - -function normalize(str) { // fix bug in v8 - return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); -} - -function findStatus(val) { - var start = 0; - var end = mappingTable.length - 1; - - while (start <= end) { - var mid = Math.floor((start + end) / 2); - - var target = mappingTable[mid]; - if (target[0][0] <= val && target[0][1] >= val) { - return target; - } else if (target[0][0] > val) { - end = mid - 1; - } else { - start = mid + 1; + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); } - } - - return null; -} - -var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - -function countSymbols(string) { - return string - // replace every surrogate pair with a BMP symbol - .replace(regexAstralSymbols, '_') - // then get the length - .length; -} - -function mapChars(domain_name, useSTD3, processing_option) { - var hasError = false; - var processed = ""; - - var len = countSymbols(domain_name); - for (var i = 0; i < len; ++i) { - var codePoint = domain_name.codePointAt(i); - var status = findStatus(codePoint); - - switch (status[1]) { - case "disallowed": - hasError = true; - processed += String.fromCodePoint(codePoint); - break; - case "ignored": - break; - case "mapped": - processed += String.fromCodePoint.apply(String, status[2]); - break; - case "deviation": - if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { - processed += String.fromCodePoint.apply(String, status[2]); - } else { - processed += String.fromCodePoint(codePoint); - } - break; - case "valid": - processed += String.fromCodePoint(codePoint); - break; - case "disallowed_STD3_mapped": - if (useSTD3) { - hasError = true; - processed += String.fromCodePoint(codePoint); - } else { - processed += String.fromCodePoint.apply(String, status[2]); - } - break; - case "disallowed_STD3_valid": - if (useSTD3) { - hasError = true; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - - processed += String.fromCodePoint(codePoint); - break; - } - } - - return { - string: processed, - error: hasError - }; -} - -var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; - -function validateLabel(label, processing_option) { - if (label.substr(0, 4) === "xn--") { - label = punycode.toUnicode(label); - processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; - } - - var error = false; - - if (normalize(label) !== label || - (label[3] === "-" && label[4] === "-") || - label[0] === "-" || label[label.length - 1] === "-" || - label.indexOf(".") !== -1 || - label.search(combiningMarksRegex) === 0) { - error = true; - } - - var len = countSymbols(label); - for (var i = 0; i < len; ++i) { - var status = findStatus(label.codePointAt(i)); - if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || - (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && - status[1] !== "valid" && status[1] !== "deviation")) { - error = true; - break; + this._disposed = true; } - } - - return { - label: label, - error: error - }; -} - -function processing(domain_name, useSTD3, processing_option) { - var result = mapChars(domain_name, useSTD3, processing_option); - result.string = normalize(result.string); - - var labels = result.string.split("."); - for (var i = 0; i < labels.length; ++i) { - try { - var validation = validateLabel(labels[i]); - labels[i] = validation.label; - result.error = result.error || validation.error; - } catch(e) { - result.error = true; + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); } - } - - return { - string: labels.join("."), - error: result.error - }; -} - -module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { - var result = processing(domain_name, useSTD3, processing_option); - var labels = result.string.split("."); - labels = labels.map(function(l) { - try { - return punycode.toASCII(l); - } catch(e) { - result.error = true; - return l; + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } } - }); - - if (verifyDnsLength) { - var total = labels.slice(0, labels.length - 1).join(".").length; - if (total.length > 253 || total.length === 0) { - result.error = true; + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - - for (var i=0; i < labels.length; ++i) { - if (labels.length > 63 || labels.length === 0) { - result.error = true; - break; - } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; } - } - - if (result.error) return null; - return labels.join("."); -}; - -module.exports.toUnicode = function(domain_name, useSTD3) { - var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); - - return { - domain: result.string, - error: result.error - }; -}; - -module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; - - -/***/ }), - -/***/ 5871: -/***/ ((module) => { - -"use strict"; - - -var conversions = {}; -module.exports = conversions; - -function sign(x) { - return x < 0 ? -1 : 1; -} - -function evenRound(x) { - // Round x to the nearest integer, choosing the even integer if it lies halfway between two. - if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) - return Math.floor(x); - } else { - return Math.round(x); + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); } -} - -function createNumberConversion(bitLength, typeOpts) { - if (!typeOpts.unsigned) { - --bitLength; + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; } - const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); - const upperBound = Math.pow(2, bitLength) - 1; - - const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); - const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); - - return function(V, opts) { - if (!opts) opts = {}; - - let x = +V; - - if (opts.enforceRange) { - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite number"); - } - - x = sign(x) * Math.floor(Math.abs(x)); - if (x < lowerBound || x > upperBound) { - throw new TypeError("Argument is not in byte range"); - } - - return x; + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; } - - if (!isNaN(x) && opts.clamp) { - x = evenRound(x); - - if (x < lowerBound) x = lowerBound; - if (x > upperBound) x = upperBound; - return x; + if (this._keepAlive && !useProxy) { + agent = this._agent; } - - if (!Number.isFinite(x) || x === 0) { - return 0; + // if agent is already assigned use that agent. + if (agent) { + return agent; } - - x = sign(x) * Math.floor(Math.abs(x)); - x = x % moduloVal; - - if (!typeOpts.unsigned && x >= moduloBound) { - return x - moduloVal; - } else if (typeOpts.unsigned) { - if (x < 0) { - x += moduloVal; - } else if (x === -0) { // don't return negative zero - return 0; + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; } - - return x; - } -} - -conversions["void"] = function () { - return undefined; -}; - -conversions["boolean"] = function (val) { - return !!val; -}; - -conversions["byte"] = createNumberConversion(8, { unsigned: false }); -conversions["octet"] = createNumberConversion(8, { unsigned: true }); - -conversions["short"] = createNumberConversion(16, { unsigned: false }); -conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); - -conversions["long"] = createNumberConversion(32, { unsigned: false }); -conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); - -conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); -conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); - -conversions["double"] = function (V) { - const x = +V; - - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite floating-point value"); - } - - return x; -}; - -conversions["unrestricted double"] = function (V) { - const x = +V; - - if (isNaN(x)) { - throw new TypeError("Argument is NaN"); - } - - return x; -}; - -// not quite valid, but good enough for JS -conversions["float"] = conversions["double"]; -conversions["unrestricted float"] = conversions["unrestricted double"]; - -conversions["DOMString"] = function (V, opts) { - if (!opts) opts = {}; - - if (opts.treatNullAsEmptyString && V === null) { - return ""; - } - - return String(V); -}; - -conversions["ByteString"] = function (V, opts) { - const x = String(V); - let c = undefined; - for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { - if (c > 255) { - throw new TypeError("Argument is not a valid bytestring"); + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; } - } - - return x; -}; - -conversions["USVString"] = function (V) { - const S = String(V); - const n = S.length; - const U = []; - for (let i = 0; i < n; ++i) { - const c = S.charCodeAt(i); - if (c < 0xD800 || c > 0xDFFF) { - U.push(String.fromCodePoint(c)); - } else if (0xDC00 <= c && c <= 0xDFFF) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - if (i === n - 1) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - const d = S.charCodeAt(i + 1); - if (0xDC00 <= d && d <= 0xDFFF) { - const a = c & 0x3FF; - const b = d & 0x3FF; - U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); - ++i; - } else { - U.push(String.fromCodePoint(0xFFFD)); - } - } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; } - - return U.join(''); -}; - -conversions["Date"] = function (V, opts) { - if (!(V instanceof Date)) { - throw new TypeError("Argument is not a Date object"); - } - if (isNaN(V)) { - return undefined; - } - - return V; -}; - -conversions["RegExp"] = function (V, opts) { - if (!(V instanceof RegExp)) { - V = new RegExp(V); - } - - return V; -}; - - -/***/ }), - -/***/ 8262: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -const usm = __nccwpck_require__(33); - -exports.implementation = class URLImpl { - constructor(constructorArgs) { - const url = constructorArgs[0]; - const base = constructorArgs[1]; - - let parsedBase = null; - if (base !== undefined) { - parsedBase = usm.basicURLParse(base); - if (parsedBase === "failure") { - throw new TypeError("Invalid base URL"); - } - } - - const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - - // TODO: query stuff - } - - get href() { - return usm.serializeURL(this._url); - } - - set href(v) { - const parsedURL = usm.basicURLParse(v); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - } - - get origin() { - return usm.serializeURLOrigin(this._url); - } - - get protocol() { - return this._url.scheme + ":"; - } - - set protocol(v) { - usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); - } - - get username() { - return this._url.username; - } - - set username(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setTheUsername(this._url, v); - } - - get password() { - return this._url.password; - } - - set password(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setThePassword(this._url, v); - } - - get host() { - const url = this._url; - - if (url.host === null) { - return ""; - } - - if (url.port === null) { - return usm.serializeHost(url.host); - } - - return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); - } - - set host(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); - } - - get hostname() { - if (this._url.host === null) { - return ""; - } - - return usm.serializeHost(this._url.host); - } - - set hostname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); - } - - get port() { - if (this._url.port === null) { - return ""; - } - - return usm.serializeInteger(this._url.port); - } - - set port(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - if (v === "") { - this._url.port = null; - } else { - usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); - } - } - - get pathname() { - if (this._url.cannotBeABaseURL) { - return this._url.path[0]; - } - - if (this._url.path.length === 0) { - return ""; - } - - return "/" + this._url.path.join("/"); - } - - set pathname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - this._url.path = []; - usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); - } - - get search() { - if (this._url.query === null || this._url.query === "") { - return ""; - } - - return "?" + this._url.query; - } - - set search(v) { - // TODO: query stuff - - const url = this._url; - - if (v === "") { - url.query = null; - return; - } - - const input = v[0] === "?" ? v.substring(1) : v; - url.query = ""; - usm.basicURLParse(input, { url, stateOverride: "query" }); - } - - get hash() { - if (this._url.fragment === null || this._url.fragment === "") { - return ""; + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); } - - return "#" + this._url.fragment; - } - - set hash(v) { - if (v === "") { - this._url.fragment = null; - return; + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); } - - const input = v[0] === "#" ? v.substring(1) : v; - this._url.fragment = ""; - usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); - } - - toJSON() { - return this.href; - } -}; - - -/***/ }), - -/***/ 653: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const conversions = __nccwpck_require__(5871); -const utils = __nccwpck_require__(276); -const Impl = __nccwpck_require__(8262); - -const impl = utils.implSymbol; - -function URL(url) { - if (!this || this[impl] || !(this instanceof URL)) { - throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); - } - if (arguments.length < 1) { - throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); - } - const args = []; - for (let i = 0; i < arguments.length && i < 2; ++i) { - args[i] = arguments[i]; - } - args[0] = conversions["USVString"](args[0]); - if (args[1] !== undefined) { - args[1] = conversions["USVString"](args[1]); - } - - module.exports.setup(this, args); } - -URL.prototype.toJSON = function toJSON() { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - const args = []; - for (let i = 0; i < arguments.length && i < 0; ++i) { - args[i] = arguments[i]; - } - return this[impl].toJSON.apply(this[impl], args); -}; -Object.defineProperty(URL.prototype, "href", { - get() { - return this[impl].href; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].href = V; - }, - enumerable: true, - configurable: true -}); - -URL.prototype.toString = function () { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - return this.href; -}; - -Object.defineProperty(URL.prototype, "origin", { - get() { - return this[impl].origin; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "protocol", { - get() { - return this[impl].protocol; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].protocol = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "username", { - get() { - return this[impl].username; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].username = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "password", { - get() { - return this[impl].password; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].password = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "host", { - get() { - return this[impl].host; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].host = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hostname", { - get() { - return this[impl].hostname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hostname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "port", { - get() { - return this[impl].port; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].port = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "pathname", { - get() { - return this[impl].pathname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].pathname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "search", { - get() { - return this[impl].search; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].search = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hash", { - get() { - return this[impl].hash; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hash = V; - }, - enumerable: true, - configurable: true -}); - - -module.exports = { - is(obj) { - return !!obj && obj[impl] instanceof Impl.implementation; - }, - create(constructorArgs, privateData) { - let obj = Object.create(URL.prototype); - this.setup(obj, constructorArgs, privateData); - return obj; - }, - setup(obj, constructorArgs, privateData) { - if (!privateData) privateData = {}; - privateData.wrapper = obj; - - obj[impl] = new Impl.implementation(constructorArgs, privateData); - obj[impl][utils.wrapperSymbol] = obj; - }, - interface: URL, - expose: { - Window: { URL: URL }, - Worker: { URL: URL } - } -}; - - - -/***/ }), - -/***/ 3323: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -exports.URL = __nccwpck_require__(653)["interface"]; -exports.serializeURL = __nccwpck_require__(33).serializeURL; -exports.serializeURLOrigin = __nccwpck_require__(33).serializeURLOrigin; -exports.basicURLParse = __nccwpck_require__(33).basicURLParse; -exports.setTheUsername = __nccwpck_require__(33).setTheUsername; -exports.setThePassword = __nccwpck_require__(33).setThePassword; -exports.serializeHost = __nccwpck_require__(33).serializeHost; -exports.serializeInteger = __nccwpck_require__(33).serializeInteger; -exports.parseURL = __nccwpck_require__(33).parseURL; - - -/***/ }), - -/***/ 33: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -const punycode = __nccwpck_require__(5477); -const tr46 = __nccwpck_require__(2299); - -const specialSchemes = { - ftp: 21, - file: null, - gopher: 70, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; - -const failure = Symbol("failure"); - -function countSymbols(str) { - return punycode.ucs2.decode(str).length; -} - -function at(input, idx) { - const c = input[idx]; - return isNaN(c) ? undefined : String.fromCodePoint(c); -} - -function isASCIIDigit(c) { - return c >= 0x30 && c <= 0x39; -} - -function isASCIIAlpha(c) { - return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); -} - -function isASCIIAlphanumeric(c) { - return isASCIIAlpha(c) || isASCIIDigit(c); -} - -function isASCIIHex(c) { - return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); -} - -function isSingleDot(buffer) { - return buffer === "." || buffer.toLowerCase() === "%2e"; -} - -function isDoubleDot(buffer) { - buffer = buffer.toLowerCase(); - return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; -} - -function isWindowsDriveLetterCodePoints(cp1, cp2) { - return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); -} - -function isWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); -} - -function isNormalizedWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; -} - -function containsForbiddenHostCodePoint(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function containsForbiddenHostCodePointExcludingPercent(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function isSpecialScheme(scheme) { - return specialSchemes[scheme] !== undefined; -} - -function isSpecial(url) { - return isSpecialScheme(url.scheme); -} - -function defaultPort(scheme) { - return specialSchemes[scheme]; -} - -function percentEncode(c) { - let hex = c.toString(16).toUpperCase(); - if (hex.length === 1) { - hex = "0" + hex; - } - - return "%" + hex; -} - -function utf8PercentEncode(c) { - const buf = new Buffer(c); - - let str = ""; - - for (let i = 0; i < buf.length; ++i) { - str += percentEncode(buf[i]); - } - - return str; -} - -function utf8PercentDecode(str) { - const input = new Buffer(str); - const output = []; - for (let i = 0; i < input.length; ++i) { - if (input[i] !== 37) { - output.push(input[i]); - } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { - output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); - i += 2; - } else { - output.push(input[i]); - } - } - return new Buffer(output).toString(); -} - -function isC0ControlPercentEncode(c) { - return c <= 0x1F || c > 0x7E; -} - -const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); -function isPathPercentEncode(c) { - return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); -} - -const extraUserinfoPercentEncodeSet = - new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); -function isUserinfoPercentEncode(c) { - return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); -} - -function percentEncodeChar(c, encodeSetPredicate) { - const cStr = String.fromCodePoint(c); - - if (encodeSetPredicate(c)) { - return utf8PercentEncode(cStr); - } - - return cStr; -} - -function parseIPv4Number(input) { - let R = 10; - - if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { - input = input.substring(2); - R = 16; - } else if (input.length >= 2 && input.charAt(0) === "0") { - input = input.substring(1); - R = 8; - } - - if (input === "") { - return 0; - } - - const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); - if (regex.test(input)) { - return failure; - } - - return parseInt(input, R); -} - -function parseIPv4(input) { - const parts = input.split("."); - if (parts[parts.length - 1] === "") { - if (parts.length > 1) { - parts.pop(); - } - } - - if (parts.length > 4) { - return input; - } - - const numbers = []; - for (const part of parts) { - if (part === "") { - return input; - } - const n = parseIPv4Number(part); - if (n === failure) { - return input; - } - - numbers.push(n); - } - - for (let i = 0; i < numbers.length - 1; ++i) { - if (numbers[i] > 255) { - return failure; - } - } - if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { - return failure; - } - - let ipv4 = numbers.pop(); - let counter = 0; - - for (const n of numbers) { - ipv4 += n * Math.pow(256, 3 - counter); - ++counter; - } - - return ipv4; -} - -function serializeIPv4(address) { - let output = ""; - let n = address; - - for (let i = 1; i <= 4; ++i) { - output = String(n % 256) + output; - if (i !== 4) { - output = "." + output; - } - n = Math.floor(n / 256); - } - - return output; -} - -function parseIPv6(input) { - const address = [0, 0, 0, 0, 0, 0, 0, 0]; - let pieceIndex = 0; - let compress = null; - let pointer = 0; - - input = punycode.ucs2.decode(input); - - if (input[pointer] === 58) { - if (input[pointer + 1] !== 58) { - return failure; - } - - pointer += 2; - ++pieceIndex; - compress = pieceIndex; - } - - while (pointer < input.length) { - if (pieceIndex === 8) { - return failure; - } - - if (input[pointer] === 58) { - if (compress !== null) { - return failure; - } - ++pointer; - ++pieceIndex; - compress = pieceIndex; - continue; - } - - let value = 0; - let length = 0; - - while (length < 4 && isASCIIHex(input[pointer])) { - value = value * 0x10 + parseInt(at(input, pointer), 16); - ++pointer; - ++length; - } - - if (input[pointer] === 46) { - if (length === 0) { - return failure; - } - - pointer -= length; - - if (pieceIndex > 6) { - return failure; - } - - let numbersSeen = 0; - - while (input[pointer] !== undefined) { - let ipv4Piece = null; - - if (numbersSeen > 0) { - if (input[pointer] === 46 && numbersSeen < 4) { - ++pointer; - } else { - return failure; - } - } - - if (!isASCIIDigit(input[pointer])) { - return failure; - } - - while (isASCIIDigit(input[pointer])) { - const number = parseInt(at(input, pointer)); - if (ipv4Piece === null) { - ipv4Piece = number; - } else if (ipv4Piece === 0) { - return failure; - } else { - ipv4Piece = ipv4Piece * 10 + number; - } - if (ipv4Piece > 255) { - return failure; - } - ++pointer; - } - - address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; - - ++numbersSeen; - - if (numbersSeen === 2 || numbersSeen === 4) { - ++pieceIndex; - } - } - - if (numbersSeen !== 4) { - return failure; - } - - break; - } else if (input[pointer] === 58) { - ++pointer; - if (input[pointer] === undefined) { - return failure; - } - } else if (input[pointer] !== undefined) { - return failure; - } - - address[pieceIndex] = value; - ++pieceIndex; - } - - if (compress !== null) { - let swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex !== 0 && swaps > 0) { - const temp = address[compress + swaps - 1]; - address[compress + swaps - 1] = address[pieceIndex]; - address[pieceIndex] = temp; - --pieceIndex; - --swaps; - } - } else if (compress === null && pieceIndex !== 8) { - return failure; - } - - return address; -} - -function serializeIPv6(address) { - let output = ""; - const seqResult = findLongestZeroSequence(address); - const compress = seqResult.idx; - let ignore0 = false; - - for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { - if (ignore0 && address[pieceIndex] === 0) { - continue; - } else if (ignore0) { - ignore0 = false; - } - - if (compress === pieceIndex) { - const separator = pieceIndex === 0 ? "::" : ":"; - output += separator; - ignore0 = true; - continue; - } - - output += address[pieceIndex].toString(16); - - if (pieceIndex !== 7) { - output += ":"; - } - } - - return output; -} - -function parseHost(input, isSpecialArg) { - if (input[0] === "[") { - if (input[input.length - 1] !== "]") { - return failure; - } - - return parseIPv6(input.substring(1, input.length - 1)); - } - - if (!isSpecialArg) { - return parseOpaqueHost(input); - } - - const domain = utf8PercentDecode(input); - const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); - if (asciiDomain === null) { - return failure; - } - - if (containsForbiddenHostCodePoint(asciiDomain)) { - return failure; - } - - const ipv4Host = parseIPv4(asciiDomain); - if (typeof ipv4Host === "number" || ipv4Host === failure) { - return ipv4Host; - } - - return asciiDomain; -} - -function parseOpaqueHost(input) { - if (containsForbiddenHostCodePointExcludingPercent(input)) { - return failure; - } - - let output = ""; - const decoded = punycode.ucs2.decode(input); - for (let i = 0; i < decoded.length; ++i) { - output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); - } - return output; -} - -function findLongestZeroSequence(arr) { - let maxIdx = null; - let maxLen = 1; // only find elements > 1 - let currStart = null; - let currLen = 0; - - for (let i = 0; i < arr.length; ++i) { - if (arr[i] !== 0) { - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; - } - - currStart = null; - currLen = 0; - } else { - if (currStart === null) { - currStart = i; - } - ++currLen; - } - } - - // if trailing zeros - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; - } - - return { - idx: maxIdx, - len: maxLen - }; -} - -function serializeHost(host) { - if (typeof host === "number") { - return serializeIPv4(host); - } - - // IPv6 serializer - if (host instanceof Array) { - return "[" + serializeIPv6(host) + "]"; - } - - return host; -} - -function trimControlChars(url) { - return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); -} - -function trimTabAndNewline(url) { - return url.replace(/\u0009|\u000A|\u000D/g, ""); -} - -function shortenPath(url) { - const path = url.path; - if (path.length === 0) { - return; - } - if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { - return; - } - - path.pop(); -} - -function includesCredentials(url) { - return url.username !== "" || url.password !== ""; -} - -function cannotHaveAUsernamePasswordPort(url) { - return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; -} - -function isNormalizedWindowsDriveLetter(string) { - return /^[A-Za-z]:$/.test(string); -} - -function URLStateMachine(input, base, encodingOverride, url, stateOverride) { - this.pointer = 0; - this.input = input; - this.base = base || null; - this.encodingOverride = encodingOverride || "utf-8"; - this.stateOverride = stateOverride; - this.url = url; - this.failure = false; - this.parseError = false; - - if (!this.url) { - this.url = { - scheme: "", - username: "", - password: "", - host: null, - port: null, - path: [], - query: null, - fragment: null, - - cannotBeABaseURL: false - }; - - const res = trimControlChars(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - } - - const res = trimTabAndNewline(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - - this.state = stateOverride || "scheme start"; - - this.buffer = ""; - this.atFlag = false; - this.arrFlag = false; - this.passwordTokenSeenFlag = false; - - this.input = punycode.ucs2.decode(this.input); - - for (; this.pointer <= this.input.length; ++this.pointer) { - const c = this.input[this.pointer]; - const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); - - // exec state machine - const ret = this["parse " + this.state](c, cStr); - if (!ret) { - break; // terminate algorithm - } else if (ret === failure) { - this.failure = true; - break; - } - } -} - -URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { - if (isASCIIAlpha(c)) { - this.buffer += cStr.toLowerCase(); - this.state = "scheme"; - } else if (!this.stateOverride) { - this.state = "no scheme"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { - if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { - this.buffer += cStr.toLowerCase(); - } else if (c === 58) { - if (this.stateOverride) { - if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { - return false; - } - - if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { - return false; - } - - if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { - return false; - } - - if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { - return false; - } - } - this.url.scheme = this.buffer; - this.buffer = ""; - if (this.stateOverride) { - return false; - } - if (this.url.scheme === "file") { - if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { - this.parseError = true; - } - this.state = "file"; - } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { - this.state = "special relative or authority"; - } else if (isSpecial(this.url)) { - this.state = "special authority slashes"; - } else if (this.input[this.pointer + 1] === 47) { - this.state = "path or authority"; - ++this.pointer; - } else { - this.url.cannotBeABaseURL = true; - this.url.path.push(""); - this.state = "cannot-be-a-base-URL path"; - } - } else if (!this.stateOverride) { - this.buffer = ""; - this.state = "no scheme"; - this.pointer = -1; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { - if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { - return failure; - } else if (this.base.cannotBeABaseURL && c === 35) { - this.url.scheme = this.base.scheme; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.url.cannotBeABaseURL = true; - this.state = "fragment"; - } else if (this.base.scheme === "file") { - this.state = "file"; - --this.pointer; - } else { - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { - if (c === 47) { - this.state = "authority"; - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative"] = function parseRelative(c) { - this.url.scheme = this.base.scheme; - if (isNaN(c)) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 47) { - this.state = "relative slash"; - } else if (c === 63) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else if (isSpecial(this.url) && c === 92) { - this.parseError = true; - this.state = "relative slash"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(0, this.base.path.length - 1); - - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { - if (isSpecial(this.url) && (c === 47 || c === 92)) { - if (c === 92) { - this.parseError = true; - } - this.state = "special authority ignore slashes"; - } else if (c === 47) { - this.state = "authority"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "special authority ignore slashes"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { - if (c !== 47 && c !== 92) { - this.state = "authority"; - --this.pointer; - } else { - this.parseError = true; - } - - return true; -}; - -URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { - if (c === 64) { - this.parseError = true; - if (this.atFlag) { - this.buffer = "%40" + this.buffer; - } - this.atFlag = true; - - // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars - const len = countSymbols(this.buffer); - for (let pointer = 0; pointer < len; ++pointer) { - const codePoint = this.buffer.codePointAt(pointer); - - if (codePoint === 58 && !this.passwordTokenSeenFlag) { - this.passwordTokenSeenFlag = true; - continue; - } - const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); - if (this.passwordTokenSeenFlag) { - this.url.password += encodedCodePoints; - } else { - this.url.username += encodedCodePoints; - } - } - this.buffer = ""; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - if (this.atFlag && this.buffer === "") { - this.parseError = true; - return failure; - } - this.pointer -= countSymbols(this.buffer) + 1; - this.buffer = ""; - this.state = "host"; - } else { - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse hostname"] = -URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { - if (this.stateOverride && this.url.scheme === "file") { - --this.pointer; - this.state = "file host"; - } else if (c === 58 && !this.arrFlag) { - if (this.buffer === "") { - this.parseError = true; - return failure; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "port"; - if (this.stateOverride === "hostname") { - return false; - } - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - --this.pointer; - if (isSpecial(this.url) && this.buffer === "") { - this.parseError = true; - return failure; - } else if (this.stateOverride && this.buffer === "" && - (includesCredentials(this.url) || this.url.port !== null)) { - this.parseError = true; - return false; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "path start"; - if (this.stateOverride) { - return false; - } - } else { - if (c === 91) { - this.arrFlag = true; - } else if (c === 93) { - this.arrFlag = false; - } - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { - if (isASCIIDigit(c)) { - this.buffer += cStr; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92) || - this.stateOverride) { - if (this.buffer !== "") { - const port = parseInt(this.buffer); - if (port > Math.pow(2, 16) - 1) { - this.parseError = true; - return failure; - } - this.url.port = port === defaultPort(this.url.scheme) ? null : port; - this.buffer = ""; - } - if (this.stateOverride) { - return false; - } - this.state = "path start"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); - -URLStateMachine.prototype["parse file"] = function parseFile(c) { - this.url.scheme = "file"; - - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file slash"; - } else if (this.base !== null && this.base.scheme === "file") { - if (isNaN(c)) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 63) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else { - if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points - !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || - (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points - !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - shortenPath(this.url); - } else { - this.parseError = true; - } - - this.state = "path"; - --this.pointer; - } - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file host"; - } else { - if (this.base !== null && this.base.scheme === "file") { - if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { - this.url.path.push(this.base.path[0]); - } else { - this.url.host = this.base.host; - } - } - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { - if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { - --this.pointer; - if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { - this.parseError = true; - this.state = "path"; - } else if (this.buffer === "") { - this.url.host = ""; - if (this.stateOverride) { - return false; - } - this.state = "path start"; - } else { - let host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - if (host === "localhost") { - host = ""; - } - this.url.host = host; - - if (this.stateOverride) { - return false; - } - - this.buffer = ""; - this.state = "path start"; - } - } else { - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { - if (isSpecial(this.url)) { - if (c === 92) { - this.parseError = true; - } - this.state = "path"; - - if (c !== 47 && c !== 92) { - --this.pointer; - } - } else if (!this.stateOverride && c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (!this.stateOverride && c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else if (c !== undefined) { - this.state = "path"; - if (c !== 47) { - --this.pointer; - } - } - - return true; -}; - -URLStateMachine.prototype["parse path"] = function parsePath(c) { - if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || - (!this.stateOverride && (c === 63 || c === 35))) { - if (isSpecial(this.url) && c === 92) { - this.parseError = true; - } - - if (isDoubleDot(this.buffer)) { - shortenPath(this.url); - if (c !== 47 && !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); - } - } else if (isSingleDot(this.buffer) && c !== 47 && - !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); - } else if (!isSingleDot(this.buffer)) { - if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { - if (this.url.host !== "" && this.url.host !== null) { - this.parseError = true; - this.url.host = ""; - } - this.buffer = this.buffer[0] + ":"; - } - this.url.path.push(this.buffer); - } - this.buffer = ""; - if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { - while (this.url.path.length > 1 && this.url.path[0] === "") { - this.parseError = true; - this.url.path.shift(); - } - } - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.buffer += percentEncodeChar(c, isPathPercentEncode); - } - - return true; -}; - -URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else { - // TODO: Add: not a URL code point - if (!isNaN(c) && c !== 37) { - this.parseError = true; - } - - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - if (!isNaN(c)) { - this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); - } - } - - return true; -}; - -URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { - if (isNaN(c) || (!this.stateOverride && c === 35)) { - if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { - this.encodingOverride = "utf-8"; - } - - const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead - for (let i = 0; i < buffer.length; ++i) { - if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || - buffer[i] === 0x3C || buffer[i] === 0x3E) { - this.url.query += percentEncode(buffer[i]); - } else { - this.url.query += String.fromCodePoint(buffer[i]); - } - } - - this.buffer = ""; - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { - if (isNaN(c)) { // do nothing - } else if (c === 0x0) { - this.parseError = true; - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map /***/ }), -/***/ 276: -/***/ ((module) => { +/***/ 835: +/***/ ((__unused_webpack_module, exports) => { "use strict"; - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + return new URL(proxyVar); + } + else { + return undefined; + } } - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } - +exports.checkBypass = checkBypass; +//# sourceMappingURL=proxy.js.map /***/ }), -/***/ 4294: +/***/ 294: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -module.exports = __nccwpck_require__(4219); +module.exports = __nccwpck_require__(219); /***/ }), -/***/ 4219: +/***/ 219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); +var net = __nccwpck_require__(808); +var tls = __nccwpck_require__(404); +var http = __nccwpck_require__(685); +var https = __nccwpck_require__(687); +var events = __nccwpck_require__(361); +var assert = __nccwpck_require__(491); +var util = __nccwpck_require__(837); exports.httpOverHttp = httpOverHttp; @@ -8794,33 +2045,7 @@ exports.debug = debug; // for test /***/ }), -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5840: +/***/ 840: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -8884,29 +2109,29 @@ Object.defineProperty(exports, "parse", ({ } })); -var _v = _interopRequireDefault(__nccwpck_require__(8628)); +var _v = _interopRequireDefault(__nccwpck_require__(628)); -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); +var _v2 = _interopRequireDefault(__nccwpck_require__(409)); -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); +var _v3 = _interopRequireDefault(__nccwpck_require__(122)); -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); +var _v4 = _interopRequireDefault(__nccwpck_require__(120)); -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); +var _nil = _interopRequireDefault(__nccwpck_require__(332)); -var _version = _interopRequireDefault(__nccwpck_require__(1595)); +var _version = _interopRequireDefault(__nccwpck_require__(595)); -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +var _validate = _interopRequireDefault(__nccwpck_require__(900)); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +var _stringify = _interopRequireDefault(__nccwpck_require__(950)); -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); +var _parse = _interopRequireDefault(__nccwpck_require__(746)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: +/***/ 569: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -8917,7 +2142,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var _crypto = _interopRequireDefault(__nccwpck_require__(113)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -8936,7 +2161,7 @@ exports["default"] = _default; /***/ }), -/***/ 5332: +/***/ 332: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -8951,7 +2176,7 @@ exports["default"] = _default; /***/ }), -/***/ 2746: +/***/ 746: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -8962,7 +2187,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +var _validate = _interopRequireDefault(__nccwpck_require__(900)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9029,7 +2254,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = rng; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var _crypto = _interopRequireDefault(__nccwpck_require__(113)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9049,7 +2274,7 @@ function rng() { /***/ }), -/***/ 5274: +/***/ 274: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9060,7 +2285,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var _crypto = _interopRequireDefault(__nccwpck_require__(113)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9079,7 +2304,7 @@ exports["default"] = _default; /***/ }), -/***/ 8950: +/***/ 950: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9090,7 +2315,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +var _validate = _interopRequireDefault(__nccwpck_require__(900)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9125,7 +2350,7 @@ exports["default"] = _default; /***/ }), -/***/ 8628: +/***/ 628: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9138,7 +2363,7 @@ exports["default"] = void 0; var _rng = _interopRequireDefault(__nccwpck_require__(807)); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +var _stringify = _interopRequireDefault(__nccwpck_require__(950)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9239,7 +2464,7 @@ exports["default"] = _default; /***/ }), -/***/ 6409: +/***/ 409: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9250,9 +2475,9 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _v = _interopRequireDefault(__nccwpck_require__(5998)); +var _v = _interopRequireDefault(__nccwpck_require__(998)); -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +var _md = _interopRequireDefault(__nccwpck_require__(569)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9262,7 +2487,7 @@ exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 998: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9274,9 +2499,9 @@ Object.defineProperty(exports, "__esModule", ({ exports["default"] = _default; exports.URL = exports.DNS = void 0; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +var _stringify = _interopRequireDefault(__nccwpck_require__(950)); -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); +var _parse = _interopRequireDefault(__nccwpck_require__(746)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9347,7 +2572,7 @@ function _default(name, version, hashfunc) { /***/ }), -/***/ 5122: +/***/ 122: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9360,7 +2585,7 @@ exports["default"] = void 0; var _rng = _interopRequireDefault(__nccwpck_require__(807)); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +var _stringify = _interopRequireDefault(__nccwpck_require__(950)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9391,7 +2616,7 @@ exports["default"] = _default; /***/ }), -/***/ 9120: +/***/ 120: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9402,9 +2627,9 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _v = _interopRequireDefault(__nccwpck_require__(5998)); +var _v = _interopRequireDefault(__nccwpck_require__(998)); -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); +var _sha = _interopRequireDefault(__nccwpck_require__(274)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9414,7 +2639,7 @@ exports["default"] = _default; /***/ }), -/***/ 6900: +/***/ 900: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9438,7 +2663,7 @@ exports["default"] = _default; /***/ }), -/***/ 1595: +/***/ 595: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -9449,7 +2674,7 @@ Object.defineProperty(exports, "__esModule", ({ })); exports["default"] = void 0; -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +var _validate = _interopRequireDefault(__nccwpck_require__(900)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -9466,47 +2691,7 @@ exports["default"] = _default; /***/ }), -/***/ 2940: -/***/ ((module) => { - -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - - -/***/ }), - -/***/ 7717: +/***/ 717: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -9538,44 +2723,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(2186)); -const github = __importStar(__nccwpck_require__(5438)); -const fs_1 = __importDefault(__nccwpck_require__(7147)); +const core = __importStar(__nccwpck_require__(186)); +const fs_1 = __importDefault(__nccwpck_require__(147)); const run = () => { // Prefix path to the graphite metric const GRAPHITE_PATH = 'reassure'; - let regressionOutput; - try { - regressionOutput = JSON.parse(fs_1.default.readFileSync('.reassure/output.json', 'utf8')); - } - catch (err) { - // Handle errors that occur during file reading or parsing - if (err instanceof Error) { - console.error('Error while parsing output.json:', err.message); - core.setFailed(err); + const PR_NUMBER = core.getInput('PR_NUMBER', { required: true }); + // Read the contents of the file, the file is in the JSONL format + const regressionFile = fs_1.default.readFileSync('.reassure/baseline.perf', 'utf8'); + // Split file contents by newline to get individual JSON entries + const regressionEntries = regressionFile.split('\n'); + // Initialize string to store Graphite metrics + let graphiteString = ''; + // Iterate over each entry + regressionEntries.forEach((entry) => { + // Skip empty lines + if (entry.trim() === '') { + return; } - } - const creationDate = regressionOutput.metadata.current.creationDate; - const timestampInMili = new Date(creationDate).getTime(); - // Graphite accepts timestamp in seconds - const timestamp = Math.floor(timestampInMili / 1000); - // Get PR number from the github context - const prNumber = github.context.payload.pull_request?.number; - // We need to combine all tests from the 4 buckets - const reassureTests = [...regressionOutput.meaningless, ...regressionOutput.significant, ...regressionOutput.countChanged, ...regressionOutput.added]; - // Map through every test and create string for meanDuration and meanCount - // eslint-disable-next-line rulesdir/prefer-underscore-method - const graphiteString = reassureTests - .map((test) => { - const current = test.current; - // Graphite doesn't accept metrics name with space, we replace spaces with "-" - const formattedName = current.name.split(' ').join('-'); - const renderDurationString = `${GRAPHITE_PATH}.${formattedName}.renderDuration ${current.meanDuration} ${timestamp}`; - const renderCountString = `${GRAPHITE_PATH}.${formattedName}.renderCount ${current.meanCount} ${timestamp}`; - const renderPRNumberString = `${GRAPHITE_PATH}.${formattedName}.prNumber ${prNumber} ${timestamp}`; - return `${renderDurationString}\n${renderCountString}\n${renderPRNumberString}`; - }) - .join('\n'); + try { + const current = JSON.parse(entry); + // Extract timestamp, Graphite accepts timestamp in seconds + const timestamp = current.metadata?.creationDate ? Math.floor(new Date(current.metadata.creationDate).getTime() / 1000) : ''; + if (current.name && current.meanDuration && current.meanCount && timestamp) { + const formattedName = current.name.split(' ').join('-'); + const renderDurationString = `${GRAPHITE_PATH}.${formattedName}.renderDuration ${current.meanDuration} ${timestamp}`; + const renderCountString = `${GRAPHITE_PATH}.${formattedName}.renderCount ${current.meanCount} ${timestamp}`; + const renderPRNumberString = `${GRAPHITE_PATH}.${formattedName}.prNumber ${PR_NUMBER} ${timestamp}`; + // Concatenate Graphite strings + graphiteString += `${renderDurationString}\n${renderCountString}\n${renderPRNumberString}\n`; + } + } + catch (e) { + const error = new Error('Error parsing baseline.perf JSON file'); + console.error(error.message); + core.setFailed(error); + } + }); // Set generated graphite string to the github variable core.setOutput('GRAPHITE_STRING', graphiteString); }; @@ -9587,15 +2771,7 @@ exports["default"] = run; /***/ }), -/***/ 2877: -/***/ ((module) => { - -module.exports = eval("require")("encoding"); - - -/***/ }), - -/***/ 9491: +/***/ 491: /***/ ((module) => { "use strict"; @@ -9603,7 +2779,7 @@ module.exports = require("assert"); /***/ }), -/***/ 6113: +/***/ 113: /***/ ((module) => { "use strict"; @@ -9611,7 +2787,7 @@ module.exports = require("crypto"); /***/ }), -/***/ 2361: +/***/ 361: /***/ ((module) => { "use strict"; @@ -9619,7 +2795,7 @@ module.exports = require("events"); /***/ }), -/***/ 7147: +/***/ 147: /***/ ((module) => { "use strict"; @@ -9627,7 +2803,7 @@ module.exports = require("fs"); /***/ }), -/***/ 3685: +/***/ 685: /***/ ((module) => { "use strict"; @@ -9635,7 +2811,7 @@ module.exports = require("http"); /***/ }), -/***/ 5687: +/***/ 687: /***/ ((module) => { "use strict"; @@ -9643,7 +2819,7 @@ module.exports = require("https"); /***/ }), -/***/ 1808: +/***/ 808: /***/ ((module) => { "use strict"; @@ -9651,7 +2827,7 @@ module.exports = require("net"); /***/ }), -/***/ 2037: +/***/ 37: /***/ ((module) => { "use strict"; @@ -9659,7 +2835,7 @@ module.exports = require("os"); /***/ }), -/***/ 1017: +/***/ 17: /***/ ((module) => { "use strict"; @@ -9667,23 +2843,7 @@ module.exports = require("path"); /***/ }), -/***/ 5477: -/***/ ((module) => { - -"use strict"; -module.exports = require("punycode"); - -/***/ }), - -/***/ 2781: -/***/ ((module) => { - -"use strict"; -module.exports = require("stream"); - -/***/ }), - -/***/ 4404: +/***/ 404: /***/ ((module) => { "use strict"; @@ -9691,36 +2851,12 @@ module.exports = require("tls"); /***/ }), -/***/ 7310: -/***/ ((module) => { - -"use strict"; -module.exports = require("url"); - -/***/ }), - -/***/ 3837: +/***/ 837: /***/ ((module) => { "use strict"; module.exports = require("util"); -/***/ }), - -/***/ 9796: -/***/ ((module) => { - -"use strict"; -module.exports = require("zlib"); - -/***/ }), - -/***/ 1907: -/***/ ((module) => { - -"use strict"; -module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]'); - /***/ }) /******/ }); @@ -9765,7 +2901,7 @@ module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"] /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module is referenced by other modules so it can't be inlined -/******/ var __webpack_exports__ = __nccwpck_require__(7717); +/******/ var __webpack_exports__ = __nccwpck_require__(717); /******/ module.exports = __webpack_exports__; /******/ /******/ })() diff --git a/.github/libs/promiseWhile.ts b/.github/libs/promiseWhile.ts index 7e15b6d69009..2fc53c34fec3 100644 --- a/.github/libs/promiseWhile.ts +++ b/.github/libs/promiseWhile.ts @@ -30,9 +30,14 @@ function promiseDoWhile(condition: () => boolean, action: (() => Promise) console.info('[promiseWhile] promiseDoWhile() condition', condition); const actionResult = action?.(); console.info('[promiseWhile] promiseDoWhile() actionResult', actionResult); + if (!actionResult) { + resolve(); + return; + } + actionResult - ?.then(() => promiseWhile(condition, action)) - .then(() => resolve()) + .then(() => promiseWhile(condition, action)) + .then(resolve) .catch(reject); }); } diff --git a/.github/workflows/platformDeploy.yml b/.github/workflows/platformDeploy.yml index 91e244a0ed7c..d97ea2b86269 100644 --- a/.github/workflows/platformDeploy.yml +++ b/.github/workflows/platformDeploy.yml @@ -134,7 +134,7 @@ jobs: name: Build and deploy Desktop needs: validateActor if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} - runs-on: macos-12-xl + runs-on: macos-13-large steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/reassurePerformanceTests.yml b/.github/workflows/reassurePerformanceTests.yml index 98f876fd60e2..a695c0acf942 100644 --- a/.github/workflows/reassurePerformanceTests.yml +++ b/.github/workflows/reassurePerformanceTests.yml @@ -1,9 +1,6 @@ name: Reassure Performance Tests on: - push: - branches: [main] - paths-ignore: [docs/**, contributingGuides/**, jest/**, workflow_tests/**] pull_request: types: [opened, synchronize] branches-ignore: [staging, production] @@ -64,14 +61,3 @@ jobs: with: DURATION_DEVIATION_PERCENTAGE: 20 COUNT_DEVIATION: 0 - - - name: Get and save graphite string - # run only when merged to main - if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'main' - id: saveGraphiteString - uses: ./.github/actions/javascript/getGraphiteString - - - name: Send graphite data - # run only when merged to main - if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'main' - run: echo -e "${{ steps.saveGraphiteString.outputs.GRAPHITE_STRING }}" | nc -q0 stats.expensify.com 3003 diff --git a/.github/workflows/sendReassurePerfData.yml b/.github/workflows/sendReassurePerfData.yml new file mode 100644 index 000000000000..53b3d3374a9e --- /dev/null +++ b/.github/workflows/sendReassurePerfData.yml @@ -0,0 +1,43 @@ +name: Send Reassure Performance Tests to Graphite + +on: + push: + branches: [main] + paths-ignore: [docs/**, contributingGuides/**, jest/**, workflow_tests/**] + +jobs: + perf-tests: + if: ${{ github.actor != 'OSBotify' }} + runs-on: ubuntu-latest-reassure-tests + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup NodeJS + uses: ./.github/actions/composite/setupNode + + - name: Install dependencies + run: npm install + + - name: Run performance testing script + shell: bash + run: | + set -e + npx reassure --baseline + + - name: Get merged pull request + id: getMergedPullRequest + uses: actions-ecosystem/action-get-merged-pull-request@59afe90821bb0b555082ce8ff1e36b03f91553d9 + with: + github_token: ${{ github.token }} + + - name: Get and save graphite string + id: saveGraphiteString + uses: ./.github/actions/javascript/getGraphiteString + with: + PR_NUMBER: ${{ steps.getMergedPullRequest.outputs.number }} + + - name: Send graphite data + run: echo -e "${{ steps.saveGraphiteString.outputs.GRAPHITE_STRING }}" | nc -q0 stats.expensify.com 3003 diff --git a/.github/workflows/testBuild.yml b/.github/workflows/testBuild.yml index fc9e75e626d3..fe6ea5bfc016 100644 --- a/.github/workflows/testBuild.yml +++ b/.github/workflows/testBuild.yml @@ -228,7 +228,7 @@ jobs: if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} env: PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} - runs-on: macos-12-xl + runs-on: macos-13-large steps: - name: Checkout uses: actions/checkout@v4 diff --git a/android/app/build.gradle b/android/app/build.gradle index b1538d22de8f..3ced6a4444a3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -98,8 +98,11 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001046100 - versionName "1.4.61-0" + versionCode 1001046106 + versionName "1.4.61-6" + // Supported language variants must be declared here to avoid from being removed during the compilation. + // This also helps us to not include unnecessary language variants in the APK. + resConfigs "en", "es" } flavorDimensions "default" diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index f393ff66bc25..6d6406551cdd 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -9,6 +9,7 @@ # Add any project specific keep options here: -keep class com.expensify.chat.BuildConfig { *; } +-keep class com.facebook.** { *; } -keep, allowoptimization, allowobfuscation class expo.modules.** { *; } # Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items). diff --git a/android/gradle.properties b/android/gradle.properties index c77d6b16f1b3..139ba429360b 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -32,12 +32,13 @@ AsyncStorage_useNextStorage=true # You can also override it from the CLI using # ./gradlew -PreactNativeArchitectures=x86_64 reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + # Use this property to enable support to the new architecture. # This will allow you to use TurboModules and the Fabric render in # your application. You should enable this flag either if you want # to write custom TurboModules/Fabric components OR use libraries that # are providing them. -newArchEnabled=false +newArchEnabled=true # Use this property to enable or disable the Hermes JS engine. # If set to false, you will be using JSC instead. diff --git a/android/settings.gradle b/android/settings.gradle index 40aefc6f2405..eb5a98a85cdd 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -16,6 +16,14 @@ project(':react-native-dev-menu').projectDir = new File(rootProject.projectDir, apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' includeBuild('../node_modules/@react-native/gradle-plugin') +includeBuild('../node_modules/react-native') { + dependencySubstitution { + substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid")) + substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid")) + substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) + substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) + } +} apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle") useExpoModules() diff --git a/assets/images/integrationicons/qbo-icon-square.svg b/assets/images/integrationicons/qbo-icon-square.svg new file mode 100644 index 000000000000..a8ce3468ffbf --- /dev/null +++ b/assets/images/integrationicons/qbo-icon-square.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/assets/images/integrationicons/xero-icon-square.svg b/assets/images/integrationicons/xero-icon-square.svg new file mode 100644 index 000000000000..94b79bb3533d --- /dev/null +++ b/assets/images/integrationicons/xero-icon-square.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index 99f4b22b473c..4232c565e715 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -84,6 +84,7 @@

+ {% include CONST.html %}

Didn't find what you were looking for?

Concierge is here to answer all your questions.

diff --git a/docs/articles/expensify-classic/reports/Expense-Types.md b/docs/articles/expensify-classic/reports/Expense-Types.md deleted file mode 100644 index 9d19dbb4f9ba..000000000000 --- a/docs/articles/expensify-classic/reports/Expense-Types.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Expense Types -description: Details of the different Expense filters and Expense Types ---- - -# Overview -Expense types help categorize different expenses for better financial management. While reimbursable and non-reimbursable expenses are common, Expensify offers various other options to suit your needs. Let's explore the available expense types. - -# How To -## Filtering a Report by Expense Type -Organizing a report by expense type can make it easier to review expenses on a report. -- Open the report you're interested in. -- Click the **Details** icon in the upper right corner of the report, -- Change the “View” to **Detailed** and “Split by” **Reimbursable** or **Billable**. -- You’ll also see the option to **Group by Category** or **Tags**. - - -# Deep Dive -Each report will show the total amount for all expenses in the upper right. Under that total, there will be a breakdown of amounts that are reimbursable, billable, and non-reimbursable (depending on which of those expense types exist on the report). - -## Expense Types -- **Reimbursable Expenses:** Employees pay for these expenses out of their pockets on behalf of the business and are usually reimbursed. They often come from cash, debit cards, or personal credit card purchases. -- **Non-reimbursable Expenses:** The business directly covers these expenses, so there's no need to reimburse the employee. Typically, these expenses are company card expenses. -- **Billable Expenses:** Business or employee expenses must be billed to a specific client or vendor. Choose this option if you need to track expenses for invoicing to customers, clients, or other departments. -- **Per Diem Expenses:** These expenses involve a daily or partial daily rate you can configure in your expense Workspace. -- **Time Expenses:** Employees or jobs are billed based on an hourly rate that you can set within Expensify. -- **Distance Expenses:** These expenses are related to travel for work. - -{% include faq-begin.md %} - -## What’s the difference between a receipt, an expense, and a report attachment? - -- **Expense:** Created when you SmartScan or manually upload a receipt from a purchase. -- **Receipt:** Automatically attached to the expense during the SmartScan process. -- **Report Attachments:** Additional documents that need to be submitted to your approver (e.g., supplemental documents to the purchase) can be added to a report anytime by clicking the paperclip icon in the Reports Comments. - -## How are credits or refunds displayed in Expensify? -In Expensify, a credit is displayed as an expense with a minus (ex. -$1.00) in front of it. That’s because Expensify defaults all expenses as something that needs to be paid by the company. So a credit that is returned to the company is displayed as a negative expense. - -If a report includes a credit or a refund expense, it will offset the total amount on the report. -For example, the report has two reimbursable expenses, $400 and $500. The total Reimbursable is $900. -Conversely, a -$400 and $500 will be a total Reimbursable amount of $500 - -{% include faq-end.md %} diff --git a/docs/redirects.csv b/docs/redirects.csv index 5ebccdd4be60..8e9e6350a326 100644 --- a/docs/redirects.csv +++ b/docs/redirects.csv @@ -98,3 +98,7 @@ https://help.expensify.com/articles/expensify-classic/bank-accounts-and-credit-c https://help.expensify.com/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Direct-Bank-Connections,https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Direct-Bank-Connections https://help.expensify.com/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Reconciliation,https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation https://help.expensify.com/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Troubleshooting,https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting +https://help.expensify.com/articles/expensify-classic/reports/Expense-Rules,https://help.expensify.com/articles/expensify-classic/expenses/Expense-Rules +https://help.expensify.com/articles/expensify-classic/reports/Currency,https://help.expensify.com/articles/expensify-classic/workspaces/Currency +https://help.expensify.com/articles/expensify-classic/reports/The-Expenses-Page,https://help.expensify.com/articles/expensify-classic/expenses/The-Expenses-Page +https://help.expensify.com/articles/expensify-classic/reports/Attendee-Tracking,https://help.expensify.com/articles/expensify-classic/expenses/Track-group-expenses diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index e39542ef0303..9d09b4dc04f2 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 059DC4EFD39EF39437E6823D /* libPods-NotificationServiceExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A997AA8204EA3D90907FA80 /* libPods-NotificationServiceExtension.a */; }; 083353EB2B5AB22A00C603C0 /* attention.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 083353E72B5AB22900C603C0 /* attention.mp3 */; }; 083353EC2B5AB22A00C603C0 /* done.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 083353E82B5AB22900C603C0 /* done.mp3 */; }; 083353ED2B5AB22A00C603C0 /* receive.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 083353E92B5AB22900C603C0 /* receive.mp3 */; }; @@ -25,23 +26,24 @@ 26AF3C3540374A9FACB6C19E /* ExpensifyMono-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = DCF33E34FFEC48128CDD41D4 /* ExpensifyMono-Bold.otf */; }; 2A9F8CDA983746B0B9204209 /* ExpensifyNeue-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 52796131E6554494B2DDB056 /* ExpensifyNeue-Bold.otf */; }; 30581EA8AAFD4FCE88C5D191 /* ExpensifyNeue-Italic.otf in Resources */ = {isa = PBXBuildFile; fileRef = BF6A4C5167244B9FB8E4D4E3 /* ExpensifyNeue-Italic.otf */; }; + 3661A1374980E5F6804511FE /* libPods-NewExpensify-NewExpensifyTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 076FD9E41E08971BBF51D580 /* libPods-NewExpensify-NewExpensifyTests.a */; }; 374FB8D728A133FE000D84EF /* OriginImageRequestHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374FB8D628A133FE000D84EF /* OriginImageRequestHandler.mm */; }; - 5B8996A7D8B007ECC41919E1 /* libPods-NewExpensify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D7E69E5ADD16FD4C44221B /* libPods-NewExpensify.a */; }; + 383643682B6D4AE2005BB9AE /* DeviceCheck.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 383643672B6D4AE2005BB9AE /* DeviceCheck.framework */; }; 7041848526A8E47D00E09F4D /* RCTStartupTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7041848426A8E47D00E09F4D /* RCTStartupTimer.m */; }; 7041848626A8E47D00E09F4D /* RCTStartupTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7041848426A8E47D00E09F4D /* RCTStartupTimer.m */; }; 70CF6E82262E297300711ADC /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 70CF6E81262E297300711ADC /* BootSplash.storyboard */; }; - 716815DBCE9F49D420334791 /* libPods-NewExpensify-NewExpensifyTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B68AEB9429D8BB73F25A188C /* libPods-NewExpensify-NewExpensifyTests.a */; }; 7F5E81F06BCCF61AD02CEA06 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCD444BEDDB0AF1745B39049 /* ExpoModulesProvider.swift */; }; 7F9DD8DA2B2A445B005E3AFA /* ExpError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F9DD8D92B2A445B005E3AFA /* ExpError.swift */; }; 7FD73C9E2B23CE9500420AF3 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FD73C9D2B23CE9500420AF3 /* NotificationService.swift */; }; 7FD73CA22B23CE9500420AF3 /* NotificationServiceExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 7FD73C9B2B23CE9500420AF3 /* NotificationServiceExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - B8A1CD44D011AD7AE180DE14 /* libPods-NotificationServiceExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B944D5699A54FD5197A63866 /* libPods-NotificationServiceExtension.a */; }; + 976CCB5F8C921482E6AEAE71 /* libPods-NewExpensify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB40AC8872A3DD6EF53D8B94 /* libPods-NewExpensify.a */; }; BDB853621F354EBB84E619C2 /* ExpensifyNewKansas-MediumItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = D2AFB39EC1D44BF9B91D3227 /* ExpensifyNewKansas-MediumItalic.otf */; }; - DD79042B2792E76D004484B4 /* RCTBootSplash.m in Sources */ = {isa = PBXBuildFile; fileRef = DD79042A2792E76D004484B4 /* RCTBootSplash.m */; }; + DD79042B2792E76D004484B4 /* RCTBootSplash.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD79042A2792E76D004484B4 /* RCTBootSplash.mm */; }; DDCB2E57F334C143AC462B43 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D20D83B0E39BA6D21761E72 /* ExpoModulesProvider.swift */; }; E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; E9DF872D2525201700607FDC /* AirshipConfig.plist in Resources */ = {isa = PBXBuildFile; fileRef = E9DF872C2525201700607FDC /* AirshipConfig.plist */; }; ED222ED90E074A5481A854FA /* ExpensifyNeue-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8B28D84EF339436DBD42A203 /* ExpensifyNeue-BoldItalic.otf */; }; + EEAE4F8907465429AA5B5520 /* libPods-NewExpensify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEFE6CD54912D427D19133C7 /* libPods-NewExpensify.a */; }; F0C450EA2705020500FD2970 /* colors.json in Resources */ = {isa = PBXBuildFile; fileRef = F0C450E92705020500FD2970 /* colors.json */; }; FF941A8D48F849269AB85C9A /* ExpensifyNewKansas-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 44BF435285B94E5B95F90994 /* ExpensifyNewKansas-Medium.otf */; }; /* End PBXBuildFile section */ @@ -79,10 +81,9 @@ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00D7E69E5ADD16FD4C44221B /* libPods-NewExpensify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356EE1AD99517003FC87E /* NewExpensifyTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NewExpensifyTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 030F99CEB3AEF1F11B001798 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig"; sourceTree = ""; }; + 076FD9E41E08971BBF51D580 /* libPods-NewExpensify-NewExpensifyTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify-NewExpensifyTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 083353E72B5AB22900C603C0 /* attention.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = attention.mp3; path = ../assets/sounds/attention.mp3; sourceTree = ""; }; 083353E82B5AB22900C603C0 /* done.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = done.mp3; path = ../assets/sounds/done.mp3; sourceTree = ""; }; 083353E92B5AB22900C603C0 /* receive.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = receive.mp3; path = ../assets/sounds/receive.mp3; sourceTree = ""; }; @@ -92,55 +93,71 @@ 0F5BE0CD252686320097D869 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 0F5E534E263B73D5004CA14F /* EnvironmentChecker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EnvironmentChecker.h; sourceTree = ""; }; 0F5E534F263B73FD004CA14F /* EnvironmentChecker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EnvironmentChecker.m; sourceTree = ""; }; - 0FF2BC0D01CA2C62CE94229E /* Pods-NewExpensify.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugdevelopment.xcconfig"; sourceTree = ""; }; - 11B2BA236BB72A603FBB7B99 /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releasedevelopment.xcconfig"; sourceTree = ""; }; - 12EB734390650799DB8AC627 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugdevelopment.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* New Expensify Dev.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "New Expensify Dev.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = NewExpensify/AppDelegate.h; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = NewExpensify/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = NewExpensify/main.m; sourceTree = ""; }; 18D050DF262400AF000D658B /* BridgingFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BridgingFile.swift; sourceTree = ""; }; - 3328C9B8861CA667C42B47F3 /* Pods-NewExpensify.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugproduction.xcconfig"; sourceTree = ""; }; + 1A997AA8204EA3D90907FA80 /* libPods-NotificationServiceExtension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NotificationServiceExtension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DDE5449979A136852B939B5 /* Pods-NewExpensify.release adhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.release adhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.release adhoc.xcconfig"; sourceTree = ""; }; + 25A4587E168FD67CF890B448 /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; sourceTree = ""; }; + 30FFBD291B71222A393D9CC9 /* Pods-NewExpensify.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releasedevelopment.xcconfig"; sourceTree = ""; }; + 32181F72DC539FFD1D1F0CA4 /* Pods-NewExpensify.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releaseproduction.xcconfig"; sourceTree = ""; }; + 34A8FDD1F9AA58B8F15C8380 /* Pods-NewExpensify.release production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.release production.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.release production.xcconfig"; sourceTree = ""; }; 374FB8D528A133A7000D84EF /* OriginImageRequestHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OriginImageRequestHandler.h; path = NewExpensify/OriginImageRequestHandler.h; sourceTree = ""; }; 374FB8D628A133FE000D84EF /* OriginImageRequestHandler.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = OriginImageRequestHandler.mm; path = NewExpensify/OriginImageRequestHandler.mm; sourceTree = ""; }; + 383643672B6D4AE2005BB9AE /* DeviceCheck.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DeviceCheck.framework; path = System/Library/Frameworks/DeviceCheck.framework; sourceTree = SDKROOT; }; + 3BBA44B891E03FAB8255E6F1 /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; sourceTree = ""; }; 44BF435285B94E5B95F90994 /* ExpensifyNewKansas-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-Medium.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-Medium.otf"; sourceTree = ""; }; - 466D03D63F4B48E009C04FA3 /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig"; sourceTree = ""; }; 4D20D83B0E39BA6D21761E72 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-NewExpensify/ExpoModulesProvider.swift"; sourceTree = ""; }; + 4E9593A0EE1C84B8A8EC062F /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; sourceTree = ""; }; 52796131E6554494B2DDB056 /* ExpensifyNeue-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Bold.otf"; path = "../assets/fonts/native/ExpensifyNeue-Bold.otf"; sourceTree = ""; }; - 5A1F158A9A6CBE170EC19D9C /* Pods-NewExpensify.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugadhoc.xcconfig"; sourceTree = ""; }; + 52E63EFD054926BFEA3EC143 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig"; sourceTree = ""; }; + 68F4F270A8D1414FC14F356F /* Pods-NewExpensify.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releaseadhoc.xcconfig"; sourceTree = ""; }; 7041848326A8E40900E09F4D /* RCTStartupTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RCTStartupTimer.h; path = NewExpensify/RCTStartupTimer.h; sourceTree = ""; }; 7041848426A8E47D00E09F4D /* RCTStartupTimer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RCTStartupTimer.m; path = NewExpensify/RCTStartupTimer.m; sourceTree = ""; }; 70CF6E81262E297300711ADC /* BootSplash.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = BootSplash.storyboard; path = NewExpensify/BootSplash.storyboard; sourceTree = ""; }; - 7312B334B72E8BE41A811FAB /* Pods-NewExpensify.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releaseadhoc.xcconfig"; sourceTree = ""; }; + 76BE68DA894BB75DDFE278DC /* Pods-NewExpensify.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releasedevelopment.xcconfig"; sourceTree = ""; }; + 7B318CF669A0F7FE948D5CED /* Pods-NewExpensify.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugadhoc.xcconfig"; sourceTree = ""; }; 7F9DD8D92B2A445B005E3AFA /* ExpError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpError.swift; sourceTree = ""; }; 7FD73C9B2B23CE9500420AF3 /* NotificationServiceExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 7FD73C9D2B23CE9500420AF3 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; 7FD73C9F2B23CE9500420AF3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 802CB9E7554756F188C79554 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugadhoc.xcconfig"; sourceTree = ""; }; + 8709DF3C8D91F0FC1581CDD7 /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; sourceTree = ""; }; 8B28D84EF339436DBD42A203 /* ExpensifyNeue-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-BoldItalic.otf"; path = "../assets/fonts/native/ExpensifyNeue-BoldItalic.otf"; sourceTree = ""; }; - 96ADA7C82BA6A08C4A56344A /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releaseproduction.xcconfig"; sourceTree = ""; }; - 972584042DB4782F830B063A /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig"; sourceTree = ""; }; - 9EADA69D62F2E7B3D96E5B1C /* Pods-NewExpensify.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releaseproduction.xcconfig"; sourceTree = ""; }; - AC9422F6C8A49AE701481721 /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releaseadhoc.xcconfig"; sourceTree = ""; }; - B4CF7147C89747459BAC5BB7 /* Pods-NewExpensify.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releasedevelopment.xcconfig"; sourceTree = ""; }; - B68AEB9429D8BB73F25A188C /* libPods-NewExpensify-NewExpensifyTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify-NewExpensifyTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B944D5699A54FD5197A63866 /* libPods-NotificationServiceExtension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NotificationServiceExtension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D3B36BF88E773E3C1A383FA /* Pods-NewExpensify.debug staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debug staging.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debug staging.xcconfig"; sourceTree = ""; }; + 90E08F0C8C924EDA018C8866 /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releaseproduction.xcconfig"; sourceTree = ""; }; + 96552D489D9F09B6A5ABD81B /* Pods-NewExpensify-NewExpensifyTests.release production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.release production.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.release production.xcconfig"; sourceTree = ""; }; + AB40AC8872A3DD6EF53D8B94 /* libPods-NewExpensify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + AEFE6CD54912D427D19133C7 /* libPods-NewExpensify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NewExpensify.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BCD444BEDDB0AF1745B39049 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-NewExpensify-NewExpensifyTests/ExpoModulesProvider.swift"; sourceTree = ""; }; + BD6E1BA27D6ABE0AC9D70586 /* Pods-NewExpensify-NewExpensifyTests.release development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.release development.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.release development.xcconfig"; sourceTree = ""; }; + BD8828A882E2D6B51362AAC3 /* Pods-NewExpensify.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.releaseadhoc.xcconfig"; sourceTree = ""; }; BF6A4C5167244B9FB8E4D4E3 /* ExpensifyNeue-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Italic.otf"; path = "../assets/fonts/native/ExpensifyNeue-Italic.otf"; sourceTree = ""; }; - CB32BB7E082E2450F04DA6E7 /* Pods-NotificationServiceExtension.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugproduction.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugproduction.xcconfig"; sourceTree = ""; }; - D15262BE5F713CDB4DA576AE /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; sourceTree = ""; }; + C3788801E65E896FA7C77298 /* Pods-NewExpensify.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugproduction.xcconfig"; sourceTree = ""; }; + C3FF914C045A138C061D306E /* Pods-NotificationServiceExtension.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugproduction.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugproduction.xcconfig"; sourceTree = ""; }; + CE2F84BEE9A6DCC228AF7E42 /* Pods-NewExpensify.debugproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugproduction.xcconfig"; sourceTree = ""; }; D2AFB39EC1D44BF9B91D3227 /* ExpensifyNewKansas-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNewKansas-MediumItalic.otf"; path = "../assets/fonts/native/ExpensifyNewKansas-MediumItalic.otf"; sourceTree = ""; }; + D3F458C994019E6A571461B7 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugadhoc.xcconfig"; sourceTree = ""; }; + DB76E0D5C670190A0997C71E /* Pods-NewExpensify-NewExpensifyTests.debug production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debug production.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debug production.xcconfig"; sourceTree = ""; }; DCF33E34FFEC48128CDD41D4 /* ExpensifyMono-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Bold.otf"; path = "../assets/fonts/native/ExpensifyMono-Bold.otf"; sourceTree = ""; }; DD7904292792E76D004484B4 /* RCTBootSplash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTBootSplash.h; path = NewExpensify/RCTBootSplash.h; sourceTree = ""; }; - DD79042A2792E76D004484B4 /* RCTBootSplash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RCTBootSplash.m; path = NewExpensify/RCTBootSplash.m; sourceTree = ""; }; + DD79042A2792E76D004484B4 /* RCTBootSplash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RCTBootSplash.mm; path = NewExpensify/RCTBootSplash.mm; sourceTree = ""; }; + E2C8555C607612465A7473F8 /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; sourceTree = ""; }; + E2F1036F70CBFE39E9352674 /* Pods-NewExpensify-NewExpensifyTests.debug development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debug development.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debug development.xcconfig"; sourceTree = ""; }; + E2F78D2A9B3DB96F0524690B /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig"; sourceTree = ""; }; + E61AD6D2DE65B6FB14945CDF /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releaseadhoc.xcconfig"; sourceTree = ""; }; + E681F80D97E6E4BB26194246 /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig"; sourceTree = ""; }; E704648954784DDFBAADF568 /* ExpensifyMono-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyMono-Regular.otf"; path = "../assets/fonts/native/ExpensifyMono-Regular.otf"; sourceTree = ""; }; - E750C93A45B47BDC5149C5AA /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig"; sourceTree = ""; }; E9DF872C2525201700607FDC /* AirshipConfig.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AirshipConfig.plist; sourceTree = ""; }; + EA58D43E81BC49541F7FC7E7 /* Pods-NewExpensify.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NewExpensify/Pods-NewExpensify.debugdevelopment.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; + F082D95EE104912B48EA98BA /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.releasedevelopment.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.releasedevelopment.xcconfig"; sourceTree = ""; }; F0C450E92705020500FD2970 /* colors.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = colors.json; path = ../colors.json; sourceTree = ""; }; F4F8A052A22040339996324B /* ExpensifyNeue-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "ExpensifyNeue-Regular.otf"; path = "../assets/fonts/native/ExpensifyNeue-Regular.otf"; sourceTree = ""; }; - F98306ABF3F272DF04DF65CC /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig"; sourceTree = ""; }; + FBEBA6FBED49FB41D6F93896 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationServiceExtension.debugdevelopment.xcconfig"; path = "Target Support Files/Pods-NotificationServiceExtension/Pods-NotificationServiceExtension.debugdevelopment.xcconfig"; sourceTree = ""; }; + FF0EADDA6099EF76253FA7AB /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; path = "Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -148,7 +165,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 716815DBCE9F49D420334791 /* libPods-NewExpensify-NewExpensifyTests.a in Frameworks */, + 3661A1374980E5F6804511FE /* libPods-NewExpensify-NewExpensifyTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -156,9 +173,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 383643682B6D4AE2005BB9AE /* DeviceCheck.framework in Frameworks */, E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */, + 976CCB5F8C921482E6AEAE71 /* libPods-NewExpensify.a in Frameworks */, E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */, - 5B8996A7D8B007ECC41919E1 /* libPods-NewExpensify.a in Frameworks */, + EEAE4F8907465429AA5B5520 /* libPods-NewExpensify.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -166,7 +185,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B8A1CD44D011AD7AE180DE14 /* libPods-NotificationServiceExtension.a in Frameworks */, + 059DC4EFD39EF39437E6823D /* libPods-NotificationServiceExtension.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -210,11 +229,13 @@ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { isa = PBXGroup; children = ( + 383643672B6D4AE2005BB9AE /* DeviceCheck.framework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, ED2971642150620600B7C4FE /* JavaScriptCore.framework */, - 00D7E69E5ADD16FD4C44221B /* libPods-NewExpensify.a */, - B68AEB9429D8BB73F25A188C /* libPods-NewExpensify-NewExpensifyTests.a */, - B944D5699A54FD5197A63866 /* libPods-NotificationServiceExtension.a */, + AEFE6CD54912D427D19133C7 /* libPods-NewExpensify.a */, + 1A997AA8204EA3D90907FA80 /* libPods-NotificationServiceExtension.a */, + AB40AC8872A3DD6EF53D8B94 /* libPods-NewExpensify.a */, + 076FD9E41E08971BBF51D580 /* libPods-NewExpensify-NewExpensifyTests.a */, ); name = Frameworks; sourceTree = ""; @@ -260,7 +281,7 @@ 374FB8D628A133FE000D84EF /* OriginImageRequestHandler.mm */, F0C450E92705020500FD2970 /* colors.json */, DD7904292792E76D004484B4 /* RCTBootSplash.h */, - DD79042A2792E76D004484B4 /* RCTBootSplash.m */, + DD79042A2792E76D004484B4 /* RCTBootSplash.mm */, 7041848326A8E40900E09F4D /* RCTStartupTimer.h */, 7041848426A8E47D00E09F4D /* RCTStartupTimer.m */, 18D050DF262400AF000D658B /* BridgingFile.swift */, @@ -319,24 +340,37 @@ EC29677F0A49C2946A495A33 /* Pods */ = { isa = PBXGroup; children = ( - 0FF2BC0D01CA2C62CE94229E /* Pods-NewExpensify.debugdevelopment.xcconfig */, - 5A1F158A9A6CBE170EC19D9C /* Pods-NewExpensify.debugadhoc.xcconfig */, - B4CF7147C89747459BAC5BB7 /* Pods-NewExpensify.releasedevelopment.xcconfig */, - 7312B334B72E8BE41A811FAB /* Pods-NewExpensify.releaseadhoc.xcconfig */, - 9EADA69D62F2E7B3D96E5B1C /* Pods-NewExpensify.releaseproduction.xcconfig */, - E750C93A45B47BDC5149C5AA /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */, - F98306ABF3F272DF04DF65CC /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */, - 972584042DB4782F830B063A /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */, - D15262BE5F713CDB4DA576AE /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */, - 466D03D63F4B48E009C04FA3 /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */, - 12EB734390650799DB8AC627 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */, - 802CB9E7554756F188C79554 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */, - CB32BB7E082E2450F04DA6E7 /* Pods-NotificationServiceExtension.debugproduction.xcconfig */, - 11B2BA236BB72A603FBB7B99 /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */, - AC9422F6C8A49AE701481721 /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */, - 96ADA7C82BA6A08C4A56344A /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */, - 3328C9B8861CA667C42B47F3 /* Pods-NewExpensify.debugproduction.xcconfig */, - 030F99CEB3AEF1F11B001798 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */, + 8D3B36BF88E773E3C1A383FA /* Pods-NewExpensify.debug staging.xcconfig */, + 1DDE5449979A136852B939B5 /* Pods-NewExpensify.release adhoc.xcconfig */, + 34A8FDD1F9AA58B8F15C8380 /* Pods-NewExpensify.release production.xcconfig */, + E2F1036F70CBFE39E9352674 /* Pods-NewExpensify-NewExpensifyTests.debug development.xcconfig */, + DB76E0D5C670190A0997C71E /* Pods-NewExpensify-NewExpensifyTests.debug production.xcconfig */, + BD6E1BA27D6ABE0AC9D70586 /* Pods-NewExpensify-NewExpensifyTests.release development.xcconfig */, + 96552D489D9F09B6A5ABD81B /* Pods-NewExpensify-NewExpensifyTests.release production.xcconfig */, + CE2F84BEE9A6DCC228AF7E42 /* Pods-NewExpensify.debugproduction.xcconfig */, + 30FFBD291B71222A393D9CC9 /* Pods-NewExpensify.releasedevelopment.xcconfig */, + BD8828A882E2D6B51362AAC3 /* Pods-NewExpensify.releaseadhoc.xcconfig */, + 8709DF3C8D91F0FC1581CDD7 /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */, + 25A4587E168FD67CF890B448 /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */, + E2C8555C607612465A7473F8 /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */, + FBEBA6FBED49FB41D6F93896 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */, + D3F458C994019E6A571461B7 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */, + C3FF914C045A138C061D306E /* Pods-NotificationServiceExtension.debugproduction.xcconfig */, + F082D95EE104912B48EA98BA /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */, + E61AD6D2DE65B6FB14945CDF /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */, + 90E08F0C8C924EDA018C8866 /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */, + EA58D43E81BC49541F7FC7E7 /* Pods-NewExpensify.debugdevelopment.xcconfig */, + 7B318CF669A0F7FE948D5CED /* Pods-NewExpensify.debugadhoc.xcconfig */, + C3788801E65E896FA7C77298 /* Pods-NewExpensify.debugproduction.xcconfig */, + 76BE68DA894BB75DDFE278DC /* Pods-NewExpensify.releasedevelopment.xcconfig */, + 68F4F270A8D1414FC14F356F /* Pods-NewExpensify.releaseadhoc.xcconfig */, + 32181F72DC539FFD1D1F0CA4 /* Pods-NewExpensify.releaseproduction.xcconfig */, + 3BBA44B891E03FAB8255E6F1 /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */, + 4E9593A0EE1C84B8A8EC062F /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */, + 52E63EFD054926BFEA3EC143 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */, + E681F80D97E6E4BB26194246 /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */, + FF0EADDA6099EF76253FA7AB /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */, + E2F78D2A9B3DB96F0524690B /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */, ); path = Pods; sourceTree = ""; @@ -348,13 +382,13 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "NewExpensifyTests" */; buildPhases = ( - D128CAF2A1070B0F2B3F12E4 /* [CP] Check Pods Manifest.lock */, + A3D1E02743106A34295E533A /* [CP] Check Pods Manifest.lock */, 04B99F6AA578E2A877802F05 /* [Expo] Configure project */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - CE4668E6E6809DEA0626B5B3 /* [CP] Copy Pods Resources */, - 47778FAEB28E5E04DCCD0D39 /* [CP] Embed Pods Frameworks */, + 822809AAD6B368BF9F9BA00E /* [CP] Embed Pods Frameworks */, + 5CC6761AF98472E1C710DB80 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -370,7 +404,7 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "NewExpensify" */; buildPhases = ( - 5DDD2A7C43E9B381CD68A232 /* [CP] Check Pods Manifest.lock */, + 468C095F6D4C79E555B55A4F /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 5CF45ABA52C0BB0D7B9D139A /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, @@ -378,10 +412,10 @@ 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 50067B6C26F88BAB5F0B478A /* [CP] Embed Pods Frameworks */, - 4E1386759AEE7859543483C9 /* [CP] Copy Pods Resources */, - EEA310C4723D0EF8581FAA1D /* [CP-User] [RNFB] Core Configuration */, - A9A9BDEB11952C562415526C /* [CP-User] [RNFB] Crashlytics Configuration */, + CB8E29994749C6913C3FA05D /* [CP] Embed Pods Frameworks */, + F6E16E41F88F567A8CDD037C /* [CP] Copy Pods Resources */, + 04A2B3BE14CFE4961BE987E8 /* [CP-User] [RNFB] Core Configuration */, + 2D8F47B51A8E72FBA2BA4874 /* [CP-User] [RNFB] Crashlytics Configuration */, ); buildRules = ( ); @@ -397,7 +431,7 @@ isa = PBXNativeTarget; buildConfigurationList = 7FD73CAA2B23CE9500420AF3 /* Build configuration list for PBXNativeTarget "NotificationServiceExtension" */; buildPhases = ( - 7B34459944ACFD30D85D5F85 /* [CP] Check Pods Manifest.lock */, + F3D35ED760B830954BD8A7BB /* [CP] Check Pods Manifest.lock */, 7FD73C972B23CE9500420AF3 /* Sources */, 7FD73C982B23CE9500420AF3 /* Frameworks */, 7FD73C992B23CE9500420AF3 /* Resources */, @@ -515,6 +549,19 @@ shellPath = /bin/sh; shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli')\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n"; }; + 04A2B3BE14CFE4961BE987E8 /* [CP-User] [RNFB] Core Configuration */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", + ); + name = "[CP-User] [RNFB] Core Configuration"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n _JSON_OUTPUT_BASE64=$(python -c 'import json,sys,base64;print(base64.b64encode(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"').read())['${_JSON_ROOT}'])))' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; + }; 04B99F6AA578E2A877802F05 /* [Expo] Configure project */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -534,51 +581,59 @@ shellPath = /bin/sh; shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-NewExpensify-NewExpensifyTests/expo-configure-project.sh\"\n"; }; - 47778FAEB28E5E04DCCD0D39 /* [CP] Embed Pods Frameworks */ = { + 2D8F47B51A8E72FBA2BA4874 /* [CP-User] [RNFB] Crashlytics Configuration */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework", - "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/Onfido/Onfido.framework/Onfido", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/Plaid/LinkKit.framework/LinkKit", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", + "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", + ); + name = "[CP-User] [RNFB] Crashlytics Configuration"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n"; + }; + 468C095F6D4C79E555B55A4F /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Onfido.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LinkKit.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + "$(DERIVED_FILE_DIR)/Pods-NewExpensify-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 4E1386759AEE7859543483C9 /* [CP] Copy Pods Resources */ = { + 5CC6761AF98472E1C710DB80 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipAutomationResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipCoreResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipExtendedActionsResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipMessageCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipPreferenceCenterResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle", "${PODS_ROOT}/../../node_modules/@expensify/react-native-live-markdown/parser/react-native-live-markdown-parser.js", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", ); @@ -589,22 +644,45 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipExtendedActionsResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipMessageCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipPreferenceCenterResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GTMSessionFetcher_Core_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleDataTransport_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/react-native-live-markdown-parser.js", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 50067B6C26F88BAB5F0B478A /* [CP] Embed Pods Frameworks */ = { + 5CF45ABA52C0BB0D7B9D139A /* [Expo] Configure project */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh", + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-NewExpensify/expo-configure-project.sh\"\n"; + }; + 822809AAD6B368BF9F9BA00E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh", "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework", "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework", "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon", @@ -627,51 +705,64 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 5CF45ABA52C0BB0D7B9D139A /* [Expo] Configure project */ = { + A3D1E02743106A34295E533A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "[Expo] Configure project"; + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-NewExpensify-NewExpensifyTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-NewExpensify/expo-configure-project.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 5DDD2A7C43E9B381CD68A232 /* [CP] Check Pods Manifest.lock */ = { + CB8E29994749C6913C3FA05D /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework", + "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Onfido/Onfido.framework/Onfido", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Plaid/LinkKit.framework/LinkKit", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NewExpensify-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Onfido.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LinkKit.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 7B34459944ACFD30D85D5F85 /* [CP] Check Pods Manifest.lock */ = { + F3D35ED760B830954BD8A7BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -693,33 +784,23 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - A9A9BDEB11952C562415526C /* [CP-User] [RNFB] Crashlytics Configuration */ = { + F6E16E41F88F567A8CDD037C /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}", - "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", - ); - name = "[CP-User] [RNFB] Crashlytics Configuration"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n"; - }; - CE4668E6E6809DEA0626B5B3 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipAutomationResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipCoreResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipExtendedActionsResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipMessageCenterResources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Airship/AirshipPreferenceCenterResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher_Core_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle", "${PODS_ROOT}/../../node_modules/@expensify/react-native-live-markdown/parser/react-native-live-markdown-parser.js", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", ); @@ -730,50 +811,19 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipExtendedActionsResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipMessageCenterResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipPreferenceCenterResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GTMSessionFetcher_Core_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleDataTransport_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/react-native-live-markdown-parser.js", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - D128CAF2A1070B0F2B3F12E4 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NewExpensify-NewExpensifyTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-resources.sh\"\n"; showEnvVarsInLog = 0; }; - EEA310C4723D0EF8581FAA1D /* [CP-User] [RNFB] Core Configuration */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)", - ); - name = "[CP-User] [RNFB] Core Configuration"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n _JSON_OUTPUT_BASE64=$(python -c 'import json,sys,base64;print(base64.b64encode(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"').read())['${_JSON_ROOT}'])))' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; - }; FD10A7F022414F080027D42C /* Start Packager */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -815,7 +865,7 @@ 0F5E5350263B73FD004CA14F /* EnvironmentChecker.m in Sources */, 374FB8D728A133FE000D84EF /* OriginImageRequestHandler.mm in Sources */, 7041848526A8E47D00E09F4D /* RCTStartupTimer.m in Sources */, - DD79042B2792E76D004484B4 /* RCTBootSplash.m in Sources */, + DD79042B2792E76D004484B4 /* RCTBootSplash.mm in Sources */, 0CDA8E34287DD650004ECBEC /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, DDCB2E57F334C143AC462B43 /* ExpoModulesProvider.swift in Sources */, @@ -849,7 +899,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* DebugDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E750C93A45B47BDC5149C5AA /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */; + baseConfigurationReference = 3BBA44B891E03FAB8255E6F1 /* Pods-NewExpensify-NewExpensifyTests.debugdevelopment.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -879,7 +929,7 @@ }; 00E356F71AD99517003FC87E /* ReleaseDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 972584042DB4782F830B063A /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */; + baseConfigurationReference = E681F80D97E6E4BB26194246 /* Pods-NewExpensify-NewExpensifyTests.releasedevelopment.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -906,10 +956,11 @@ }; 13B07F941A680F5B00A75B9A /* DebugDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0FF2BC0D01CA2C62CE94229E /* Pods-NewExpensify.debugdevelopment.xcconfig */; + baseConfigurationReference = EA58D43E81BC49541F7FC7E7 /* Pods-NewExpensify.debugdevelopment.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDev; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -945,10 +996,11 @@ }; 13B07F951A680F5B00A75B9A /* ReleaseDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B4CF7147C89747459BAC5BB7 /* Pods-NewExpensify.releasedevelopment.xcconfig */; + baseConfigurationReference = 76BE68DA894BB75DDFE278DC /* Pods-NewExpensify.releasedevelopment.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDev; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -982,7 +1034,7 @@ }; 7FD73CA42B23CE9500420AF3 /* DebugDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 12EB734390650799DB8AC627 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */; + baseConfigurationReference = FBEBA6FBED49FB41D6F93896 /* Pods-NotificationServiceExtension.debugdevelopment.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1068,7 +1120,7 @@ }; 7FD73CA52B23CE9500420AF3 /* DebugAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 802CB9E7554756F188C79554 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */; + baseConfigurationReference = D3F458C994019E6A571461B7 /* Pods-NotificationServiceExtension.debugadhoc.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1153,7 +1205,7 @@ }; 7FD73CA62B23CE9500420AF3 /* DebugProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB32BB7E082E2450F04DA6E7 /* Pods-NotificationServiceExtension.debugproduction.xcconfig */; + baseConfigurationReference = C3FF914C045A138C061D306E /* Pods-NotificationServiceExtension.debugproduction.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1239,7 +1291,7 @@ }; 7FD73CA72B23CE9500420AF3 /* ReleaseDevelopment */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 11B2BA236BB72A603FBB7B99 /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */; + baseConfigurationReference = F082D95EE104912B48EA98BA /* Pods-NotificationServiceExtension.releasedevelopment.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1318,7 +1370,7 @@ }; 7FD73CA82B23CE9500420AF3 /* ReleaseAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AC9422F6C8A49AE701481721 /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */; + baseConfigurationReference = E61AD6D2DE65B6FB14945CDF /* Pods-NotificationServiceExtension.releaseadhoc.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1396,7 +1448,7 @@ }; 7FD73CA92B23CE9500420AF3 /* ReleaseProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 96ADA7C82BA6A08C4A56344A /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */; + baseConfigurationReference = 90E08F0C8C924EDA018C8866 /* Pods-NotificationServiceExtension.releaseproduction.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -1533,13 +1585,15 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1599,13 +1653,15 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; PRODUCT_NAME = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; @@ -1675,13 +1731,15 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1691,10 +1749,11 @@ }; CF9AF93F29EE9276001FA527 /* DebugProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3328C9B8861CA667C42B47F3 /* Pods-NewExpensify.debugproduction.xcconfig */; + baseConfigurationReference = C3788801E65E896FA7C77298 /* Pods-NewExpensify.debugproduction.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -1729,7 +1788,7 @@ }; CF9AF94029EE9276001FA527 /* DebugProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 030F99CEB3AEF1F11B001798 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */; + baseConfigurationReference = 52E63EFD054926BFEA3EC143 /* Pods-NewExpensify-NewExpensifyTests.debugproduction.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -1817,13 +1876,15 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1833,10 +1894,11 @@ }; CF9AF94529EE927A001FA527 /* DebugAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5A1F158A9A6CBE170EC19D9C /* Pods-NewExpensify.debugadhoc.xcconfig */; + baseConfigurationReference = 7B318CF669A0F7FE948D5CED /* Pods-NewExpensify.debugadhoc.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIconAdHoc; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -1871,7 +1933,7 @@ }; CF9AF94629EE927A001FA527 /* DebugAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F98306ABF3F272DF04DF65CC /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */; + baseConfigurationReference = 4E9593A0EE1C84B8A8EC062F /* Pods-NewExpensify-NewExpensifyTests.debugadhoc.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -1951,13 +2013,15 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; PRODUCT_NAME = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; @@ -1969,10 +2033,11 @@ }; CF9AF94829EE928E001FA527 /* ReleaseProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9EADA69D62F2E7B3D96E5B1C /* Pods-NewExpensify.releaseproduction.xcconfig */; + baseConfigurationReference = 32181F72DC539FFD1D1F0CA4 /* Pods-NewExpensify.releaseproduction.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -2005,7 +2070,7 @@ }; CF9AF94929EE928E001FA527 /* ReleaseProduction */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 466D03D63F4B48E009C04FA3 /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */; + baseConfigurationReference = E2F78D2A9B3DB96F0524690B /* Pods-NewExpensify-NewExpensifyTests.releaseproduction.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -2083,13 +2148,15 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( + OTHER_CFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_CPLUSPLUSFLAGS = ( "$(inherited)", - "-Wl", - "-ld_classic", + "-DRN_FABRIC_ENABLED", ); + OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = ""; PRODUCT_NAME = ""; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; @@ -2101,10 +2168,11 @@ }; CF9AF94E29EE9293001FA527 /* ReleaseAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7312B334B72E8BE41A811FAB /* Pods-NewExpensify.releaseadhoc.xcconfig */; + baseConfigurationReference = 68F4F270A8D1414FC14F356F /* Pods-NewExpensify.releaseadhoc.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIconAdHoc; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = NewExpensify/Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; @@ -2137,7 +2205,7 @@ }; CF9AF94F29EE9293001FA527 /* ReleaseAdHoc */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D15262BE5F713CDB4DA576AE /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */; + baseConfigurationReference = FF0EADDA6099EF76253FA7AB /* Pods-NewExpensify-NewExpensifyTests.releaseadhoc.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; diff --git a/ios/NewExpensify.xcodeproj/xcshareddata/xcschemes/New Expensify.xcscheme b/ios/NewExpensify.xcodeproj/xcshareddata/xcschemes/New Expensify.xcscheme index b6b5874506a8..86124ac1a170 100644 --- a/ios/NewExpensify.xcodeproj/xcshareddata/xcschemes/New Expensify.xcscheme +++ b/ios/NewExpensify.xcodeproj/xcshareddata/xcschemes/New Expensify.xcscheme @@ -57,7 +57,7 @@ diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index ad29816ca2d4..8e1b8746afd0 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -40,7 +40,7 @@ CFBundleVersion - 1.4.61.0 + 1.4.61.6 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensify/RCTBootSplash.h b/ios/NewExpensify/RCTBootSplash.h index c25c676feb4a..5dc3def635f2 100644 --- a/ios/NewExpensify/RCTBootSplash.h +++ b/ios/NewExpensify/RCTBootSplash.h @@ -12,6 +12,6 @@ + (void)invalidateBootSplash; + (void)initWithStoryboard:(NSString * _Nonnull)storyboardName - rootView:(RCTRootView * _Nullable)rootView; + rootView:(UIView * _Nullable)rootView; @end diff --git a/ios/NewExpensify/RCTBootSplash.m b/ios/NewExpensify/RCTBootSplash.m deleted file mode 100644 index 6c2baaed4ee0..000000000000 --- a/ios/NewExpensify/RCTBootSplash.m +++ /dev/null @@ -1,147 +0,0 @@ -// -// RCTBootSplash.m -// NewExpensify -// -// Created by Mathieu Acthernoene on 07/01/2022. -// - -#import -#import - -#import "RCTBootSplash.h" - -static NSMutableArray *_resolverQueue = nil; -static RCTRootView *_rootView = nil; -static bool _nativeHidden = false; - -@implementation RCTBootSplash - -RCT_EXPORT_MODULE(); - -+ (BOOL)requiresMainQueueSetup { - return NO; -} - -- (dispatch_queue_t)methodQueue { - return dispatch_get_main_queue(); -} - -+ (void)invalidateBootSplash { - _resolverQueue = nil; - _rootView = nil; - _nativeHidden = false; -} - -+ (void)initWithStoryboard:(NSString * _Nonnull)storyboardName - rootView:(RCTRootView * _Nullable)rootView { - if (rootView == nil || _rootView != nil || RCTRunningInAppExtension()) - return; - - _rootView = rootView; - - [[NSNotificationCenter defaultCenter] removeObserver:rootView - name:RCTContentDidAppearNotification - object:rootView]; - - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; - UIView *loadingView = [[storyboard instantiateInitialViewController] view]; - - if ([self resolverQueueExists]) - return; - - [_rootView setLoadingView:loadingView]; - - [NSTimer scheduledTimerWithTimeInterval:0.35 - repeats:NO - block:^(NSTimer * _Nonnull timer) { - // wait for native iOS launch screen to fade out - _nativeHidden = true; - - // hide has been called before native launch screen fade out - if ([self resolverQueueExists]) - [self hideAndClearResolverQueue]; - }]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(onContentDidAppear) - name:RCTContentDidAppearNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(onJavaScriptDidFailToLoad) - name:RCTJavaScriptDidFailToLoadNotification - object:nil]; -} - -+ (bool)isHidden { - return _rootView == nil || _rootView.loadingView == nil || [_rootView.loadingView isHidden]; -} - -+ (bool)resolverQueueExists { - return _resolverQueue != nil; -} - -+ (void)clearResolverQueue { - if (![self resolverQueueExists]) - return; - - while ([_resolverQueue count] > 0) { - RCTPromiseResolveBlock resolve = [_resolverQueue objectAtIndex:0]; - [_resolverQueue removeObjectAtIndex:0]; - resolve(@(true)); - } -} - -+ (void)hideAndClearResolverQueue { - if (![self isHidden]) { - _rootView.loadingView.hidden = YES; - [_rootView.loadingView removeFromSuperview]; - _rootView.loadingView = nil; - } - - [RCTBootSplash clearResolverQueue]; -} - -+ (void)onContentDidAppear { - [NSTimer scheduledTimerWithTimeInterval:10.0 // Safety call - repeats:false - block:^(NSTimer * _Nonnull timer) { - [timer invalidate]; - - if (_rootView == nil) - return; - - if (_resolverQueue == nil) - _resolverQueue = [[NSMutableArray alloc] init]; - - [self hideAndClearResolverQueue]; - }]; - - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -+ (void)onJavaScriptDidFailToLoad { - [self hideAndClearResolverQueue]; - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -RCT_EXPORT_METHOD(hide:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - if (_resolverQueue == nil) - _resolverQueue = [[NSMutableArray alloc] init]; - - [_resolverQueue addObject:resolve]; - - if ([RCTBootSplash isHidden] || RCTRunningInAppExtension()) - return [RCTBootSplash clearResolverQueue]; - - if (_nativeHidden) - return [RCTBootSplash hideAndClearResolverQueue]; -} - -RCT_EXPORT_METHOD(getVisibilityStatus:(RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) { - resolve([RCTBootSplash isHidden] ? @"hidden" : @"visible"); -} - -@end diff --git a/ios/NewExpensify/RCTBootSplash.mm b/ios/NewExpensify/RCTBootSplash.mm new file mode 100644 index 000000000000..3e4a086f07b1 --- /dev/null +++ b/ios/NewExpensify/RCTBootSplash.mm @@ -0,0 +1,186 @@ +#import "RCTBootSplash.h" + +#import + +#if RCT_NEW_ARCH_ENABLED +#import +#import +#else +#import +#endif + +static NSMutableArray *_resolveQueue = nil; +static UIView *_loadingView = nil; +static UIView *_rootView = nil; +static float _duration = 0; +static bool _nativeHidden = false; +static bool _transitioning = false; + +@implementation RCTBootSplash + +RCT_EXPORT_MODULE(); + +- (dispatch_queue_t)methodQueue { + return dispatch_get_main_queue(); +} + ++ (void)invalidateBootSplash { + _resolveQueue = nil; + _rootView = nil; + _nativeHidden = false; +} + ++ (bool)isLoadingViewHidden { + return _loadingView == nil || [_loadingView isHidden]; +} + ++ (bool)hasResolveQueue { + return _resolveQueue != nil; +} + ++ (void)clearResolveQueue { + if (![self hasResolveQueue]) + return; + + while ([_resolveQueue count] > 0) { + RCTPromiseResolveBlock resolve = [_resolveQueue objectAtIndex:0]; + [_resolveQueue removeObjectAtIndex:0]; + resolve(@(true)); + } +} + ++ (void)hideLoadingView { + if ([self isLoadingViewHidden]) + return [RCTBootSplash clearResolveQueue]; + + if (_duration > 0) { + dispatch_async(dispatch_get_main_queue(), ^{ + _transitioning = true; + + if (_rootView == nil) + return; + + [UIView transitionWithView:_rootView + duration:_duration / 1000.0 + options:UIViewAnimationOptionTransitionCrossDissolve + animations:^{ + _loadingView.hidden = YES; + } + completion:^(__unused BOOL finished) { + [_loadingView removeFromSuperview]; + _loadingView = nil; + + _transitioning = false; + return [RCTBootSplash clearResolveQueue]; + }]; + }); + } else { + _loadingView.hidden = YES; + [_loadingView removeFromSuperview]; + _loadingView = nil; + + return [RCTBootSplash clearResolveQueue]; + } +} + ++ (void)initWithStoryboard:(NSString * _Nonnull)storyboardName + rootView:(UIView * _Nullable)rootView { + if (rootView == nil +#ifdef RCT_NEW_ARCH_ENABLED + || ![rootView isKindOfClass:[RCTSurfaceHostingProxyRootView class]] +#else + || ![rootView isKindOfClass:[RCTRootView class]] +#endif + || _rootView != nil + || [self hasResolveQueue] // hide has already been called, abort init + || RCTRunningInAppExtension()) + return; + +#ifdef RCT_NEW_ARCH_ENABLED + RCTSurfaceHostingProxyRootView *proxy = (RCTSurfaceHostingProxyRootView *)rootView; + _rootView = (RCTSurfaceHostingView *)proxy.surface.view; +#else + _rootView = (RCTRootView *)rootView; +#endif + + UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; + + _loadingView = [[storyboard instantiateInitialViewController] view]; + _loadingView.hidden = NO; + + [_rootView addSubview:_loadingView]; + + [NSTimer scheduledTimerWithTimeInterval:0.35 + repeats:NO + block:^(NSTimer * _Nonnull timer) { + // wait for native iOS launch screen to fade out + _nativeHidden = true; + + // hide has been called before native launch screen fade out + if ([self hasResolveQueue]) + [self hideLoadingView]; + }]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onJavaScriptDidLoad) + name:RCTJavaScriptDidLoadNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onJavaScriptDidFailToLoad) + name:RCTJavaScriptDidFailToLoadNotification + object:nil]; +} + ++ (void)onJavaScriptDidLoad { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + ++ (void)onJavaScriptDidFailToLoad { + [self hideLoadingView]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)hide:(double)duration + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject { + if (_resolveQueue == nil) + _resolveQueue = [[NSMutableArray alloc] init]; + + [_resolveQueue addObject:resolve]; + + if ([RCTBootSplash isLoadingViewHidden] || RCTRunningInAppExtension()) + return [RCTBootSplash clearResolveQueue]; + + _duration = lroundf((float)duration); + + if (_nativeHidden) + return [RCTBootSplash hideLoadingView]; +} + +- (void)getVisibilityStatus:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject { + if ([RCTBootSplash isLoadingViewHidden]) + return resolve(@"hidden"); + else if (_transitioning) + return resolve(@"transitioning"); + else + return resolve(@"visible"); +} + +RCT_REMAP_METHOD(hide, + resolve:(RCTPromiseResolveBlock)resolve + rejecte:(RCTPromiseRejectBlock)reject) { + [self hide:0 + resolve:resolve + reject:reject]; +} + +RCT_REMAP_METHOD(getVisibilityStatus, + getVisibilityStatusWithResolve:(RCTPromiseResolveBlock)resolve + rejecte:(RCTPromiseRejectBlock)reject) { + [self getVisibilityStatus:resolve + reject:reject]; +} + +@end diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 30ebc444e07c..1dccb441b241 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.4.61.0 + 1.4.61.6 diff --git a/ios/NotificationServiceExtension/Info.plist b/ios/NotificationServiceExtension/Info.plist index 5cfad9bf91a6..d3050fa055fb 100644 --- a/ios/NotificationServiceExtension/Info.plist +++ b/ios/NotificationServiceExtension/Info.plist @@ -13,7 +13,7 @@ CFBundleShortVersionString 1.4.61 CFBundleVersion - 1.4.61.0 + 1.4.61.6 NSExtension NSExtensionPointIdentifier diff --git a/ios/Podfile b/ios/Podfile index 83c21797bd0a..4f00eb2adfdd 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -2,6 +2,7 @@ require File.join(File.dirname(`node --print "require.resolve('expo/package.json # Set the type of Mapbox SDK to use # This value is used by $RNMapboxMaps $RNMapboxMapsImpl = 'mapbox' +$VCDisableFrameProcessors = true def node_require(script) # Resolve script with node to allow for hoisting @@ -16,7 +17,7 @@ node_require('react-native/scripts/react_native_pods.rb') node_require('react-native-permissions/scripts/setup.rb') # Our min supported iOS version is higher than the default (min_ios_version_supported) to support libraires such as Airship -platform :ios, 13.4 +platform :ios, 14.0 prepare_react_native_project! setup_permissions([ @@ -73,6 +74,12 @@ target 'NewExpensify' do config = use_native_modules! + # Flags change depending on the env values. + flags = get_default_flags() + + # ENV Variable enables/disables TurboModules + ENV['RCT_NEW_ARCH_ENABLED'] = '1'; + use_react_native!( :path => config[:reactNativePath], # An absolute path to your application root. diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 32a8bca75bcd..2f53f00918bf 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -20,7 +20,7 @@ PODS: - Airship (= 16.12.1) - Airship/MessageCenter (= 16.12.1) - Airship/PreferenceCenter (= 16.12.1) - - AirshipServiceExtension (16.12.5) + - AirshipServiceExtension (17.8.0) - AppAuth (1.6.2): - AppAuth/Core (= 1.6.2) - AppAuth/ExternalUserAgent (= 1.6.2) @@ -50,19 +50,25 @@ PODS: - ExpoModulesCore - ExpoModulesCore (1.11.8): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager - React-NativeModulesApple - React-RCTAppDelegate + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - FBLazyVector (0.73.2) - - FBReactNativeSpec (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.2) - - RCTTypeSafety (= 0.73.2) - - React-Core (= 0.73.2) - - React-jsi (= 0.73.2) - - ReactCommon/turbomodule/core (= 0.73.2) + - Yoga + - FBLazyVector (0.73.4) - Firebase/Analytics (8.8.0): - Firebase/Core - Firebase/Core (8.8.0): @@ -154,41 +160,51 @@ PODS: - GoogleUtilities/Network (~> 7.4) - "GoogleUtilities/NSData+zlib (~> 7.4)" - nanopb (~> 2.30908.0) - - GoogleDataTransport (9.3.0): + - GoogleDataTransport (9.4.1): - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30910.0, >= 2.30908.0) + - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - GoogleSignIn (7.0.0): - AppAuth (~> 1.5) - GTMAppAuth (< 3.0, >= 1.3) - GTMSessionFetcher/Core (< 4.0, >= 1.1) - - GoogleUtilities/AppDelegateSwizzler (7.12.0): + - GoogleUtilities/AppDelegateSwizzler (7.13.0): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (7.12.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (7.13.0): + - GoogleUtilities/Privacy - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/ISASwizzler (7.12.0) - - GoogleUtilities/Logger (7.12.0): + - GoogleUtilities/ISASwizzler (7.13.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (7.13.0): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (7.12.0): + - GoogleUtilities/Privacy + - GoogleUtilities/MethodSwizzler (7.13.0): - GoogleUtilities/Logger - - GoogleUtilities/Network (7.12.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Network (7.13.0): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.12.0)" - - GoogleUtilities/Reachability (7.12.0): + - "GoogleUtilities/NSData+zlib (7.13.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.0) + - GoogleUtilities/Reachability (7.13.0): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (7.12.0): + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (7.13.0): - GoogleUtilities/Logger + - GoogleUtilities/Privacy - GTMAppAuth (2.0.0): - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - - GTMSessionFetcher/Core (3.2.0) - - hermes-engine (0.73.2): - - hermes-engine/Pre-built (= 0.73.2) - - hermes-engine/Pre-built (0.73.2) + - GTMSessionFetcher/Core (3.3.1) + - hermes-engine (0.73.4): + - hermes-engine/Pre-built (= 0.73.4) + - hermes-engine/Pre-built (0.73.4) - libaom (3.0.0): - libvmaf (>= 2.2.0) - libavif (0.11.1): @@ -212,29 +228,63 @@ PODS: - libwebp/webp (1.3.2): - libwebp/sharpyuv - lottie-ios (4.3.4) - - lottie-react-native (6.4.1): + - lottie-react-native (6.5.1): + - glog + - hermes-engine - lottie-ios (~> 4.3.3) + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - MapboxCommon (23.8.6) - - MapboxCoreMaps (10.16.4): - - MapboxCommon (~> 23.8) - - MapboxMaps (10.16.4): - - MapboxCommon (= 23.8.6) - - MapboxCoreMaps (= 10.16.4) + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - MapboxCommon (23.9.1) + - MapboxCoreMaps (10.16.6): + - MapboxCommon (~> 23.9) + - MapboxMaps (10.16.6): + - MapboxCommon (= 23.9.1) + - MapboxCoreMaps (= 10.16.6) - MapboxMobileEvents (= 1.0.10) - - Turf (~> 2.0) + - Turf (= 2.7.0) - MapboxMobileEvents (1.0.10) - nanopb (2.30908.0): - nanopb/decode (= 2.30908.0) - nanopb/encode (= 2.30908.0) - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - - Onfido (29.6.0) + - Onfido (29.7.1) - onfido-react-native-sdk (10.6.0): - - Onfido (~> 29.6.0) - - React - - Plaid (4.7.0) - - PromisesObjC (2.3.1) + - glog + - hermes-engine + - Onfido (~> 29.7.0) + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - Plaid (5.2.1) + - PromisesObjC (2.4.0) - RCT-Folly (2022.05.16.00): - boost - DoubleConversion @@ -257,45 +307,49 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.2) - - RCTTypeSafety (0.73.2): - - FBLazyVector (= 0.73.2) - - RCTRequired (= 0.73.2) - - React-Core (= 0.73.2) - - React (0.73.2): - - React-Core (= 0.73.2) - - React-Core/DevSupport (= 0.73.2) - - React-Core/RCTWebSocket (= 0.73.2) - - React-RCTActionSheet (= 0.73.2) - - React-RCTAnimation (= 0.73.2) - - React-RCTBlob (= 0.73.2) - - React-RCTImage (= 0.73.2) - - React-RCTLinking (= 0.73.2) - - React-RCTNetwork (= 0.73.2) - - React-RCTSettings (= 0.73.2) - - React-RCTText (= 0.73.2) - - React-RCTVibration (= 0.73.2) - - React-callinvoker (0.73.2) - - React-Codegen (0.73.2): + - RCTRequired (0.73.4) + - RCTTypeSafety (0.73.4): + - FBLazyVector (= 0.73.4) + - RCTRequired (= 0.73.4) + - React-Core (= 0.73.4) + - React (0.73.4): + - React-Core (= 0.73.4) + - React-Core/DevSupport (= 0.73.4) + - React-Core/RCTWebSocket (= 0.73.4) + - React-RCTActionSheet (= 0.73.4) + - React-RCTAnimation (= 0.73.4) + - React-RCTBlob (= 0.73.4) + - React-RCTImage (= 0.73.4) + - React-RCTLinking (= 0.73.4) + - React-RCTNetwork (= 0.73.4) + - React-RCTSettings (= 0.73.4) + - React-RCTText (= 0.73.4) + - React-RCTVibration (= 0.73.4) + - React-callinvoker (0.73.4) + - React-Codegen (0.73.4): - DoubleConversion - - FBReactNativeSpec - glog - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-graphics - React-jsi - React-jsiexecutor - React-NativeModulesApple - - React-rncore + - React-rendererdebug + - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.2): + - React-Core (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) + - React-Core/Default (= 0.73.4) - React-cxxreact - React-hermes - React-jsi @@ -305,7 +359,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.2): + - React-Core/CoreModulesHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -319,7 +373,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.2): + - React-Core/Default (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -332,23 +386,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.2): + - React-Core/DevSupport (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) - - React-Core/RCTWebSocket (= 0.73.2) + - React-Core/Default (= 0.73.4) + - React-Core/RCTWebSocket (= 0.73.4) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.2) + - React-jsinspector (= 0.73.4) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.2): + - React-Core/RCTActionSheetHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -362,7 +416,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.2): + - React-Core/RCTAnimationHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -376,7 +430,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.2): + - React-Core/RCTBlobHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -390,7 +444,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.2): + - React-Core/RCTImageHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -404,7 +458,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.2): + - React-Core/RCTLinkingHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -418,7 +472,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.2): + - React-Core/RCTNetworkHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -432,7 +486,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.2): + - React-Core/RCTSettingsHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -446,7 +500,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.2): + - React-Core/RCTTextHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -460,7 +514,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.2): + - React-Core/RCTVibrationHeaders (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -474,11 +528,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.2): + - React-Core/RCTWebSocket (0.73.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) + - React-Core/Default (= 0.73.4) - React-cxxreact - React-hermes - React-jsi @@ -488,33 +542,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.2): + - React-CoreModules (0.73.4): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.2) + - RCTTypeSafety (= 0.73.4) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.2) - - React-jsi (= 0.73.2) + - React-Core/CoreModulesHeaders (= 0.73.4) + - React-jsi (= 0.73.4) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.2) + - React-RCTImage (= 0.73.4) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.2): + - React-cxxreact (0.73.4): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-debug (= 0.73.2) - - React-jsi (= 0.73.2) - - React-jsinspector (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-runtimeexecutor (= 0.73.2) - - React-debug (0.73.2) - - React-Fabric (0.73.2): + - React-callinvoker (= 0.73.4) + - React-debug (= 0.73.4) + - React-jsi (= 0.73.4) + - React-jsinspector (= 0.73.4) + - React-logger (= 0.73.4) + - React-perflogger (= 0.73.4) + - React-runtimeexecutor (= 0.73.4) + - React-debug (0.73.4) + - React-Fabric (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -525,20 +579,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.2) - - React-Fabric/attributedstring (= 0.73.2) - - React-Fabric/componentregistry (= 0.73.2) - - React-Fabric/componentregistrynative (= 0.73.2) - - React-Fabric/components (= 0.73.2) - - React-Fabric/core (= 0.73.2) - - React-Fabric/imagemanager (= 0.73.2) - - React-Fabric/leakchecker (= 0.73.2) - - React-Fabric/mounting (= 0.73.2) - - React-Fabric/scheduler (= 0.73.2) - - React-Fabric/telemetry (= 0.73.2) - - React-Fabric/templateprocessor (= 0.73.2) - - React-Fabric/textlayoutmanager (= 0.73.2) - - React-Fabric/uimanager (= 0.73.2) + - React-Fabric/animations (= 0.73.4) + - React-Fabric/attributedstring (= 0.73.4) + - React-Fabric/componentregistry (= 0.73.4) + - React-Fabric/componentregistrynative (= 0.73.4) + - React-Fabric/components (= 0.73.4) + - React-Fabric/core (= 0.73.4) + - React-Fabric/imagemanager (= 0.73.4) + - React-Fabric/leakchecker (= 0.73.4) + - React-Fabric/mounting (= 0.73.4) + - React-Fabric/scheduler (= 0.73.4) + - React-Fabric/telemetry (= 0.73.4) + - React-Fabric/templateprocessor (= 0.73.4) + - React-Fabric/textlayoutmanager (= 0.73.4) + - React-Fabric/uimanager (= 0.73.4) - React-graphics - React-jsi - React-jsiexecutor @@ -547,7 +601,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.2): + - React-Fabric/animations (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -566,7 +620,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.2): + - React-Fabric/attributedstring (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -585,7 +639,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.2): + - React-Fabric/componentregistry (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -604,7 +658,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.2): + - React-Fabric/componentregistrynative (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -623,7 +677,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.2): + - React-Fabric/components (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -634,17 +688,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.2) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) - - React-Fabric/components/modal (= 0.73.2) - - React-Fabric/components/rncore (= 0.73.2) - - React-Fabric/components/root (= 0.73.2) - - React-Fabric/components/safeareaview (= 0.73.2) - - React-Fabric/components/scrollview (= 0.73.2) - - React-Fabric/components/text (= 0.73.2) - - React-Fabric/components/textinput (= 0.73.2) - - React-Fabric/components/unimplementedview (= 0.73.2) - - React-Fabric/components/view (= 0.73.2) + - React-Fabric/components/inputaccessory (= 0.73.4) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4) + - React-Fabric/components/modal (= 0.73.4) + - React-Fabric/components/rncore (= 0.73.4) + - React-Fabric/components/root (= 0.73.4) + - React-Fabric/components/safeareaview (= 0.73.4) + - React-Fabric/components/scrollview (= 0.73.4) + - React-Fabric/components/text (= 0.73.4) + - React-Fabric/components/textinput (= 0.73.4) + - React-Fabric/components/unimplementedview (= 0.73.4) + - React-Fabric/components/view (= 0.73.4) - React-graphics - React-jsi - React-jsiexecutor @@ -653,7 +707,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.2): + - React-Fabric/components/inputaccessory (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -672,7 +726,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.2): + - React-Fabric/components/legacyviewmanagerinterop (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -691,7 +745,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.2): + - React-Fabric/components/modal (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -710,7 +764,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.2): + - React-Fabric/components/rncore (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -729,7 +783,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.2): + - React-Fabric/components/root (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -748,7 +802,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.2): + - React-Fabric/components/safeareaview (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -767,7 +821,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.2): + - React-Fabric/components/scrollview (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -786,7 +840,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.2): + - React-Fabric/components/text (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -805,7 +859,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.2): + - React-Fabric/components/textinput (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -824,7 +878,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.2): + - React-Fabric/components/unimplementedview (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -843,7 +897,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.2): + - React-Fabric/components/view (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -863,7 +917,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.2): + - React-Fabric/core (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -882,7 +936,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.2): + - React-Fabric/imagemanager (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -901,7 +955,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.2): + - React-Fabric/leakchecker (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -920,7 +974,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.2): + - React-Fabric/mounting (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -939,7 +993,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.2): + - React-Fabric/scheduler (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -958,7 +1012,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.2): + - React-Fabric/telemetry (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -977,7 +1031,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.2): + - React-Fabric/templateprocessor (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -996,7 +1050,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.2): + - React-Fabric/textlayoutmanager (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1016,7 +1070,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.2): + - React-Fabric/uimanager (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1035,42 +1089,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.2): + - React-FabricImage (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.2) - - RCTTypeSafety (= 0.73.2) + - RCTRequired (= 0.73.4) + - RCTTypeSafety (= 0.73.4) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.2) + - React-jsiexecutor (= 0.73.4) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.2): + - React-graphics (0.73.4): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.2) + - React-Core/Default (= 0.73.4) - React-utils - - React-hermes (0.73.2): + - React-hermes (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.2) + - React-cxxreact (= 0.73.4) - React-jsi - - React-jsiexecutor (= 0.73.2) - - React-jsinspector (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-ImageManager (0.73.2): + - React-jsiexecutor (= 0.73.4) + - React-jsinspector (= 0.73.4) + - React-perflogger (= 0.73.4) + - React-ImageManager (0.73.4): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1079,260 +1133,647 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.2): + - React-jserrorhandler (0.73.4): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.2): + - React-jsi (0.73.4): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.2): + - React-jsiexecutor (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-perflogger (= 0.73.2) - - React-jsinspector (0.73.2) - - React-logger (0.73.2): + - React-cxxreact (= 0.73.4) + - React-jsi (= 0.73.4) + - React-perflogger (= 0.73.4) + - React-jsinspector (0.73.4) + - React-jsitracing (0.73.4): + - React-jsi + - React-logger (0.73.4): - glog - - React-Mapbuffer (0.73.2): + - React-Mapbuffer (0.73.4): - glog - React-debug - react-native-airship (15.3.1): - AirshipFrameworkProxy (= 2.1.1) - - React-Core - - react-native-blob-util (0.19.4): - - React-Core - - react-native-cameraroll (7.4.0): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - react-native-config (1.4.6): - - react-native-config/App (= 1.4.6) - - react-native-config/App (1.4.6): - - React-Core - - react-native-document-picker (9.1.1): - - React-Core - - react-native-geolocation (3.0.6): - - React-Core - - react-native-image-picker (7.0.3): - - React-Core - - react-native-key-command (1.0.6): - - React-Core - - react-native-launch-arguments (4.0.2): - - React - - react-native-netinfo (11.2.1): - - React-Core - - react-native-pager-view (6.2.2): - - React-Core - - react-native-pdf (6.7.3): - - React-Core - - react-native-performance (5.1.0): - - React-Core - - react-native-plaid-link-sdk (10.8.0): - - Plaid (~> 4.7.0) - - React-Core - - react-native-quick-sqlite (8.0.0-beta.2): - - React - - React-callinvoker - - React-Core - - react-native-release-profiler (0.1.6): + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-blob-util (0.19.4): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - react-native-render-html (6.3.1): - - React-Core - - react-native-safe-area-context (4.8.2): - - React-Core - - react-native-view-shot (3.8.0): - - React-Core - - react-native-webview (13.6.3): - - React-Core - - React-nativeconfig (0.73.2) - - React-NativeModulesApple (0.73.2): + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-cameraroll (7.4.0): - glog - hermes-engine - - React-callinvoker + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - React-cxxreact - - React-jsi - - React-runtimeexecutor + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.2) - - React-RCTActionSheet (0.73.2): - - React-Core/RCTActionSheetHeaders (= 0.73.2) - - React-RCTAnimation (0.73.2): - - RCT-Folly (= 2022.05.16.00) + - Yoga + - react-native-config (1.5.0): + - react-native-config/App (= 1.5.0) + - react-native-config/App (1.5.0): + - RCT-Folly + - RCTRequired - RCTTypeSafety + - React - React-Codegen - - React-Core/RCTAnimationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTAppDelegate (0.73.2): + - React-RCTFabric + - ReactCommon/turbomodule/core + - react-native-document-picker (9.1.1): - RCT-Folly - RCTRequired - RCTTypeSafety + - React-Codegen - React-Core - - React-CoreModules - - React-hermes - - React-nativeconfig - - React-NativeModulesApple - - React-RCTFabric - - React-RCTImage - - React-RCTNetwork - - React-runtimescheduler - - ReactCommon - - React-RCTBlob (0.73.2): + - ReactCommon/turbomodule/core + - react-native-geolocation (3.0.6): + - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety - React-Codegen - - React-Core/RCTBlobHeaders - - React-Core/RCTWebSocket - - React-jsi - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTFabric (0.73.2): - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - React-Core - React-debug - React-Fabric - - React-FabricImage - React-graphics - React-ImageManager - - React-jsi - - React-nativeconfig - - React-RCTImage - - React-RCTText + - React-NativeModulesApple + - React-RCTFabric - React-rendererdebug - - React-runtimescheduler - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core - Yoga - - React-RCTImage (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety - - React-Codegen - - React-Core/RCTImageHeaders - - React-jsi - - React-NativeModulesApple - - React-RCTNetwork - - ReactCommon - - React-RCTLinking (0.73.2): - - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.2) - - React-jsi (= 0.73.2) - - React-NativeModulesApple - - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.2) - - React-RCTNetwork (0.73.2): - - RCT-Folly (= 2022.05.16.00) + - react-native-image-picker (7.0.3): + - RCT-Folly + - RCTRequired - RCTTypeSafety + - React - React-Codegen - - React-Core/RCTNetworkHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-RCTSettings (0.73.2): + - React-RCTFabric + - ReactCommon/turbomodule/core + - react-native-key-command (1.0.8): + - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired - RCTTypeSafety - React-Codegen - - React-Core/RCTSettingsHeaders - - React-jsi + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager - React-NativeModulesApple - - ReactCommon - - React-RCTText (0.73.2): - - React-Core/RCTTextHeaders (= 0.73.2) + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core - Yoga - - React-RCTVibration (0.73.2): - - RCT-Folly (= 2022.05.16.00) - - React-Codegen - - React-Core/RCTVibrationHeaders - - React-jsi - - React-NativeModulesApple - - ReactCommon - - React-rendererdebug (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - RCT-Folly (= 2022.05.16.00) - - React-debug - - React-rncore (0.73.2) - - React-runtimeexecutor (0.73.2): - - React-jsi (= 0.73.2) - - React-runtimescheduler (0.73.2): + - react-native-launch-arguments (4.0.2): + - React + - react-native-netinfo (11.2.1): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker - - React-cxxreact + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core - React-debug - - React-jsi + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric - React-rendererdebug - - React-runtimeexecutor - React-utils - - React-utils (0.73.2): + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-pager-view (6.2.3): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-debug - - ReactCommon (0.73.2): - - React-logger (= 0.73.2) - - ReactCommon/turbomodule (= 0.73.2) - - ReactCommon/turbomodule (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-pdf (6.7.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-performance (5.1.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-plaid-link-sdk (11.5.0): + - glog + - hermes-engine + - Plaid (~> 5.2.0) + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-quick-sqlite (8.0.0-beta.2): + - React + - React-callinvoker + - React-Core + - react-native-release-profiler (0.1.6): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-render-html (6.3.1): + - React-Core + - react-native-safe-area-context (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common (= 4.8.2) + - react-native-safe-area-context/fabric (= 4.8.2) + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/common (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/fabric (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-view-shot (3.8.0): + - React-Core + - react-native-webview (13.6.4): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.73.4) + - React-NativeModulesApple (0.73.4): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.73.4) + - React-RCTActionSheet (0.73.4): + - React-Core/RCTActionSheetHeaders (= 0.73.4) + - React-RCTAnimation (0.73.4): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTAppDelegate (0.73.4): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-Fabric + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.73.4): + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Codegen + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.73.4): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-graphics + - React-ImageManager + - React-jsi + - React-nativeconfig + - React-RCTImage + - React-RCTText + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.73.4): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.73.4): + - React-Codegen + - React-Core/RCTLinkingHeaders (= 0.73.4) + - React-jsi (= 0.73.4) + - React-NativeModulesApple + - ReactCommon + - ReactCommon/turbomodule/core (= 0.73.4) + - React-RCTNetwork (0.73.4): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTSettings (0.73.4): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTText (0.73.4): + - React-Core/RCTTextHeaders (= 0.73.4) + - Yoga + - React-RCTVibration (0.73.4): + - RCT-Folly (= 2022.05.16.00) + - React-Codegen + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-rendererdebug (0.73.4): + - DoubleConversion + - fmt (~> 6.2.1) + - RCT-Folly (= 2022.05.16.00) + - React-debug + - React-rncore (0.73.4) + - React-RuntimeApple (0.73.4): + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-utils + - React-RuntimeCore (0.73.4): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-runtimeexecutor + - React-runtimescheduler + - React-runtimeexecutor (0.73.4): + - React-jsi (= 0.73.4) + - React-RuntimeHermes (0.73.4): + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-jsi + - React-jsitracing + - React-nativeconfig + - React-utils + - React-runtimescheduler (0.73.4): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-jsi + - React-rendererdebug + - React-runtimeexecutor + - React-utils + - React-utils (0.73.4): + - glog + - RCT-Folly (= 2022.05.16.00) + - React-debug + - ReactCommon (0.73.4): + - React-logger (= 0.73.4) + - ReactCommon/turbomodule (= 0.73.4) + - ReactCommon/turbomodule (0.73.4): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker (= 0.73.4) + - React-cxxreact (= 0.73.4) + - React-jsi (= 0.73.4) + - React-logger (= 0.73.4) + - React-perflogger (= 0.73.4) + - ReactCommon/turbomodule/bridging (= 0.73.4) + - ReactCommon/turbomodule/core (= 0.73.4) + - ReactCommon/turbomodule/bridging (0.73.4): + - DoubleConversion + - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - ReactCommon/turbomodule/bridging (= 0.73.2) - - ReactCommon/turbomodule/core (= 0.73.2) - - ReactCommon/turbomodule/bridging (0.73.2): + - React-callinvoker (= 0.73.4) + - React-cxxreact (= 0.73.4) + - React-jsi (= 0.73.4) + - React-logger (= 0.73.4) + - React-perflogger (= 0.73.4) + - ReactCommon/turbomodule/core (0.73.4): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - ReactCommon/turbomodule/core (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) + - React-callinvoker (= 0.73.4) + - React-cxxreact (= 0.73.4) + - React-jsi (= 0.73.4) + - React-logger (= 0.73.4) + - React-perflogger (= 0.73.4) + - RNAppleAuthentication (2.2.2): + - React-Core + - RNCAsyncStorage (1.21.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNCClipboard (1.13.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNCPicker (2.6.1): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNDeviceInfo (10.3.1): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.2) - - React-cxxreact (= 0.73.2) - - React-jsi (= 0.73.2) - - React-logger (= 0.73.2) - - React-perflogger (= 0.73.2) - - RNAppleAuthentication (2.2.2): - - React-Core - - RNCAsyncStorage (1.21.0): - - React-Core - - RNCClipboard (1.13.2): - - React-Core - - RNCPicker (2.5.1): - - React-Core - - RNDeviceInfo (10.3.0): + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNDevMenu (4.1.1): - React-Core - React-Core/DevSupport @@ -1353,20 +1794,87 @@ PODS: - React-Core - RNFBApp - RNFlashList (1.6.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNFS (2.20.0): - React-Core - RNGestureHandler (2.14.1): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNGoogleSignin (10.0.1): - GoogleSignIn (~> 7.0) - React-Core - RNLiveMarkdown (0.1.38): - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNLiveMarkdown/common (= 0.1.38) + - Yoga + - RNLiveMarkdown/common (0.1.38): + - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNLocalize (2.2.6): - React-Core - rnmapbox-maps (10.1.11): @@ -1376,32 +1884,158 @@ PODS: - rnmapbox-maps/DynamicLibrary (= 10.1.11) - Turf - rnmapbox-maps/DynamicLibrary (10.1.11): + - hermes-engine - MapboxMaps (~> 10.16.4) + - RCT-Folly + - RCTRequired + - RCTTypeSafety - React + - React-Codegen - React-Core + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core - Turf + - Yoga - RNPermissions (3.9.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNReactNativeHapticFeedback (2.2.0): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - ReactCommon/turbomodule/core - RNReanimated (3.7.2): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - Yoga - RNScreens (3.29.0): - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNScreens/common (= 3.29.0) + - Yoga + - RNScreens/common (3.29.0): + - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNShare (10.0.2): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-RCTFabric + - ReactCommon/turbomodule/core - RNSound (0.11.2): - React-Core - RNSound/Core (= 0.11.2) - RNSound/Core (0.11.2): - React-Core - RNSVG (14.1.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNSVG/common (= 14.1.0) + - Yoga + - RNSVG/common (14.1.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - SDWebImage (5.17.0): - SDWebImage/Core (= 5.17.0) - SDWebImage/Core (5.17.0) @@ -1416,9 +2050,24 @@ PODS: - SocketRocket (0.6.1) - Turf (2.7.0) - VisionCamera (4.0.0-beta.13): - - React - - React-callinvoker + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - Yoga (1.14.0) DEPENDENCIES: @@ -1433,7 +2082,6 @@ DEPENDENCIES: - ExpoImageManipulator (from `../node_modules/expo-image-manipulator/ios`) - ExpoModulesCore (from `../node_modules/expo-modules-core`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - libevent (~> 2.1.12) @@ -1460,6 +2108,7 @@ DEPENDENCIES: - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - "react-native-airship (from `../node_modules/@ua/react-native-airship`)" @@ -1498,7 +2147,10 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) @@ -1593,8 +2245,6 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-modules-core" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: @@ -1642,6 +2292,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: :path: "../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: @@ -1718,8 +2370,14 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimeexecutor: :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" React-utils: @@ -1782,7 +2440,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Airship: 2f4510b497a8200780752a5e0304a9072bfffb6d AirshipFrameworkProxy: ea1b6c665c798637b93c465b5e505be3011f1d9d - AirshipServiceExtension: 89c6e25a69f3458d9dbd581c700cffb196b61930 + AirshipServiceExtension: 0a5fb14c3fd1879355ab05a81d10f64512a4f79c AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 boost: d3f49c53809116a5d38da093a8aa78bf551aed09 BVLinearGradient: 421743791a59d259aec53f4c58793aad031da2ca @@ -1792,9 +2450,8 @@ SPEC CHECKSUMS: Expo: 1e3bcf9dd99de57a636127057f6b488f0609681a ExpoImage: 390c524542b258f8173f475c1cc71f016444a7be ExpoImageManipulator: c1d7cb865eacd620a35659f3da34c70531f10b59 - ExpoModulesCore: 96d1751929ad10622773bb729ab28a8423f0dd0c - FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 - FBReactNativeSpec: 86de768f89901ef6ed3207cd686362189d64ac88 + ExpoModulesCore: 83dfc98358de225bd0953401ce5b0c14fa8eabd0 + FBLazyVector: 84f6edbe225f38aebd9deaf1540a4160b1f087d7 Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814 FirebaseABTesting: 10cbce8db9985ae2e3847ea44e9947dd18f94e10 FirebaseAnalytics: 5506ea8b867d8423485a84b4cd612d279f7b0b8a @@ -1807,122 +2464,126 @@ SPEC CHECKSUMS: fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 GoogleAppMeasurement: 5ba1164e3c844ba84272555e916d0a6d3d977e91 - GoogleDataTransport: 57c22343ab29bc686febbf7cbb13bad167c2d8fe + GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842 - GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34 + GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae - GTMSessionFetcher: 41b9ef0b4c08a6db4b7eb51a21ae5183ec99a2c8 - hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 + GTMSessionFetcher: 8a1b34ad97ebe6f909fb8b9b77fba99943007556 + hermes-engine: b2669ce35fc4ac14f523b307aff8896799829fe2 libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libvmaf: 27f523f1e63c694d14d534cd0fddd2fab0ae8711 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 lottie-ios: 3d98679b41fa6fd6aff2352b3953dbd3df8a397e - lottie-react-native: a2ae9c27c273b060b2affff2957bc0ff7fdca353 - MapboxCommon: 90f76693dc02438acbb5ea9a5b266a4c0eb1c875 - MapboxCoreMaps: 7b07d1ca8c454a4381daf09df901b9d6bf90bce0 - MapboxMaps: cbb38845a9bf49b124f0e937975d560a4e01894e + lottie-react-native: 80bda323805fa62005afff0583d2927a89108f20 + MapboxCommon: 20466d839cc43381c44df09d19f7f794b55b9a93 + MapboxCoreMaps: c21f433decbb295874f0c2464e492166db813b56 + MapboxMaps: c3b36646b9038706bbceb5de203bcdd0f411e9d0 MapboxMobileEvents: de50b3a4de180dd129c326e09cd12c8adaaa46d6 nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 - Onfido: c52e797b10cc9e6d29ba91996cb62e501000bfdd - onfido-react-native-sdk: 4e7f0a7a986ed93cb906d2e0b67a6aab9202de0b - Plaid: 431ef9be5314a1345efb451bc5e6b067bfb3b4c6 - PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 + Onfido: 342cbecd7a4383e98dfe7f9c35e98aaece599062 + onfido-react-native-sdk: 81e930e77236a0fc3da90e6a6eb834734d8ec2f5 + Plaid: 7829e84db6d766a751c91a402702946d2977ddcb + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 - RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 - React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc - React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 - React-Codegen: c4447ffa339f4e7a22e0c9c800eec9084f31899c - React-Core: 49f66fecc7695464e9b7bc7dc7cd9473d2c60584 - React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 - React-cxxreact: 345857b5e4be000c0527df78be3b41a0677a20ce - React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 - React-Fabric: 4dfcff8f14d8e5a7a60b11b7862dad2a9d99c65b - React-FabricImage: 4a9e9510b7f28bbde6a743b18c0cb941a142e938 - React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 - React-hermes: a52d183a5cf8ccb7020ce3df4275b89d01e6b53e - React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 - React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 - React-jsi: a182068133f80918cd0eec77875abaf943a0b6be - React-jsiexecutor: dacd00ce8a18fc00a0ae6c25e3015a6437e5d2e8 - React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 - React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 - React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 - react-native-airship: 6ded22e4ca54f2f80db80b7b911c2b9b696d9335 - react-native-blob-util: 30a6c9fd067aadf9177e61a998f2c7efb670598d - react-native-cameraroll: 3301d62d45616ee9da55ceed04be8d788c3de3ef - react-native-config: 7cd105e71d903104e8919261480858940a6b9c0e - react-native-document-picker: 3599b238843369026201d2ef466df53f77ae0452 - react-native-geolocation: 0f7fe8a4c2de477e278b0365cce27d089a8c5903 - react-native-image-picker: 2381c008bbb09e72395a2d043c147b11bd1523d9 - react-native-key-command: 5af6ee30ff4932f78da6a2109017549042932aa5 + RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa + RCTTypeSafety: 63b97ced7b766865057e7154db0e81ce4ee6cf1e + React: 1c87497e50fa40ba9c54e5ea5e53483a0f8eecc0 + React-callinvoker: e3a52a9a93e3eb004d7282c26a4fb27003273fe6 + React-Codegen: 05f85e0e087f402978cfe57822a8debc07127a13 + React-Core: d0ecde72894b792cb8922efaa0990199cbe85169 + React-CoreModules: 2ff1684dd517f0c441495d90a704d499f05e9d0a + React-cxxreact: d9be2fac926741052395da0a6d0bab8d71e2f297 + React-debug: 4678e73a37cb501d784e99ff0f219b4940362a3b + React-Fabric: 460ee9d4b8b9de3382504a711430bfead1d5be1e + React-FabricImage: d0a0631bc8ad9143f42bfccf9d3d533a144cc3d6 + React-graphics: f0d5040263a9649e2a70ebe27b3120c49411afef + React-hermes: b9ac2f7b0c1eeb206eb883583cab7a973d570a6e + React-ImageManager: 6c4bf9d5ed363ead7b5aaf820a3feab221b7063e + React-jserrorhandler: 6e7a7e187583e14dc7a0053a2bdd66c252ea3b21 + React-jsi: 380cd24dd81a705dd042c18989fb10b07182210c + React-jsiexecutor: 8ed7a18b9f119440efdcd424c8257dc7e18067e2 + React-jsinspector: 9ac353eccf6ab54d1e0a33862ba91221d1e88460 + React-jsitracing: e8a2dafb9878dbcad02b6b2b88e66267fb427b74 + React-logger: 0a57b68dd2aec7ff738195f081f0520724b35dab + React-Mapbuffer: 63913773ed7f96b814a2521e13e6d010282096ad + react-native-airship: 2ed75ff2278f11ff1c1ab08ed68f5bf02727b971 + react-native-blob-util: a3ee23cfdde79c769c138d505670055de233b07a + react-native-cameraroll: 95ce0d1a7d2d1fe55bf627ab806b64de6c3e69e9 + react-native-config: 5ce986133b07fc258828b20b9506de0e683efc1c + react-native-document-picker: 8532b8af7c2c930f9e202aac484ac785b0f4f809 + react-native-geolocation: dcc37809bc117ffdb5946fecc127d62319ccd4a9 + react-native-image-picker: f8a13ff106bcc7eb00c71ce11fdc36aac2a44440 + react-native-key-command: 74d18ad516037536c2f671ef0914bcce7739b2f5 react-native-launch-arguments: 5f41e0abf88a15e3c5309b8875d6fd5ac43df49d - react-native-netinfo: 8a7fd3f7130ef4ad2fb4276d5c9f8d3f28d2df3d - react-native-pager-view: 02a5c4962530f7efc10dd51ee9cdabeff5e6c631 - react-native-pdf: b4ca3d37a9a86d9165287741c8b2ef4d8940c00e - react-native-performance: cef2b618d47b277fb5c3280b81a3aad1e72f2886 - react-native-plaid-link-sdk: df1618a85a615d62ff34e34b76abb7a56497fbc1 + react-native-netinfo: 6479e7e2198f936e5abc14a3ec4d469ccbaf81e2 + react-native-pager-view: 9ac6bc0fb3fa31c6d403b253ee361e62ff7ccf7f + react-native-pdf: cd256a00b9d65cb1008dcca2792d7bfb8874838d + react-native-performance: 1aa5960d005159f4ab20be15b44714b53b44e075 + react-native-plaid-link-sdk: 93870f8cd1de8e0acca5cb5020188bdc94e15db6 react-native-quick-sqlite: bcc7a7a250a40222f18913a97cd356bf82d0a6c4 - react-native-release-profiler: 86f2004d5f8c4fff17d90a5580513519a685d7ae + react-native-release-profiler: 42fc8e09b4f6f9b7d14cc5a15c72165e871c0918 react-native-render-html: 96c979fe7452a0a41559685d2f83b12b93edac8c - react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 + react-native-safe-area-context: e8bdd57d9f8d34cc336f0ee6acb30712a8454446 react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 - react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0 - React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb - React-NativeModulesApple: 964f4eeab1b4325e8b6a799cf4444c3fd4eb0a9c - React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e - React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f - React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 - React-RCTAppDelegate: a3ce9b69c0620a1717d08e826d4dc7ad8a3a3cae - React-RCTBlob: 26ea660f2be1e6de62f2d2ad9a9c7b9bfabb786f - React-RCTFabric: bb6dbbff2f80b9489f8b2f1d2554aa040aa2e3cd - React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b - React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da - React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 - React-RCTSettings: 6d7f8d807f05de3d01cfb182d14e5f400716faac - React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 - React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 - React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b - React-rncore: 74030de0ffef7b1a3fb77941168624534cc9ae7f - React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 - React-runtimescheduler: df8945a656356ff10f58f65a70820478bfcf33ad - React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 - ReactCommon: 45b5d4f784e869c44a6f5a8fad5b114ca8f78c53 + react-native-webview: a5f5f316527235f869992aaaf05050776198806d + React-nativeconfig: d7af5bae6da70fa15ce44f045621cf99ed24087c + React-NativeModulesApple: 0123905d5699853ac68519607555a9a4f5c7b3ac + React-perflogger: 8a1e1af5733004bdd91258dcefbde21e0d1faccd + React-RCTActionSheet: 64bbff3a3963664c2d0146f870fe8e0264aee4c4 + React-RCTAnimation: b698168a7269265a4694727196484342d695f0c1 + React-RCTAppDelegate: a84b4bf99b871d87b41d7a768e7860d207fb4e31 + React-RCTBlob: 47f8c3b2b4b7fa2c5f19c43f0b7f77f57fb9d953 + React-RCTFabric: 6067a32d683d0c2b84d444548bc15a263c64abed + React-RCTImage: ac0e77a44c290b20db783649b2b9cddc93e3eb99 + React-RCTLinking: e626fd2900913fe5d25922ea1be394b7aafa09c9 + React-RCTNetwork: d3114bce3977dafe8bd06421b29812f5a8527ba0 + React-RCTSettings: a53511f90d8df637a1a11ac729179a4d2f734481 + React-RCTText: f0176f5f5952f9a4a2c7354f5ae71f7c420aaf34 + React-RCTVibration: 8160223c6eda5b187079fec204f80eca8b8f3177 + React-rendererdebug: ed286b4da8648c27d6ed3ae1410d4b21ba890d5a + React-rncore: 75cbcc46868e809bb7e738d4565ba85f3dbd5cdc + React-RuntimeApple: f4848a388e4c782d3b8d4ca9c48179163418fe56 + React-RuntimeCore: 272998adc56066404df36b1a3a2be9a56c6ee086 + React-runtimeexecutor: e6ab6bb083dbdbdd489cff426ed0bce0652e6edf + React-RuntimeHermes: d2c368065ef82d4f8e6daa662352de5a195bdb57 + React-runtimescheduler: ed48e5faac6751e66ee1261c4bd01643b436f112 + React-utils: 6e5ad394416482ae21831050928ae27348f83487 + ReactCommon: 840a955d37b7f3358554d819446bffcf624b2522 RNAppleAuthentication: 0571c08da8c327ae2afc0261b48b4a515b0286a6 - RNCAsyncStorage: 618d03a5f52fbccb3d7010076bc54712844c18ef - RNCClipboard: 60fed4b71560d7bfe40e9d35dea9762b024da86d - RNCPicker: 529d564911e93598cc399b56cc0769ce3675f8c8 - RNDeviceInfo: 4701f0bf2a06b34654745053db0ce4cb0c53ada7 + RNCAsyncStorage: 559f22cc4b582414e783fd7255974b29e24b451c + RNCClipboard: c73bbc2e9012120161f1012578418827983bfd0c + RNCPicker: c77efa39690952647b83d8085520bf50ebf94ecb + RNDeviceInfo: cbf78fdb515ae73e641ee7c6b474f77a0299e7e6 RNDevMenu: 72807568fe4188bd4c40ce32675d82434b43c45d RNFBAnalytics: f76bfa164ac235b00505deb9fc1776634056898c RNFBApp: 729c0666395b1953198dc4a1ec6deb8fbe1c302e RNFBCrashlytics: 2061ca863e8e2fa1aae9b12477d7dfa8e88ca0f9 RNFBPerf: 389914cda4000fe0d996a752532a591132cbf3f9 - RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a + RNFlashList: 5b0e8311e4cf1ad91e410fd7c8526a89fb5826d1 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 - RNGestureHandler: 25b969a1ffc806b9f9ad2e170d4a3b049c6af85e + RNGestureHandler: 1190c218cdaaf029ee1437076a3fbbc3297d89fb RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: 0f7819903c63a786bbb80fd620baba10d43dfe18 + RNLiveMarkdown: 9d974f060d0bd857f7d96fac0e9a1539363baa5e RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 - rnmapbox-maps: fcf7f1cbdc8bd7569c267d07284e8a5c7bee06ed - RNPermissions: 9b086c8f05b2e2faa587fdc31f4c5ab4509728aa - RNReactNativeHapticFeedback: ec56a5f81c3941206fd85625fa669ffc7b4545f9 - RNReanimated: 3850671fd0c67051ea8e1e648e8c3e86bf3a28eb - RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2 - RNShare: 859ff710211285676b0bcedd156c12437ea1d564 + rnmapbox-maps: 3e273e0e867a079ec33df9ee33bb0482434b897d + RNPermissions: 8990fc2c10da3640938e6db1647cb6416095b729 + RNReactNativeHapticFeedback: 616c35bdec7d20d4c524a7949ca9829c09e35f37 + RNReanimated: 605409e0d0ced6f2e194ae585fedc2f8a1935bf2 + RNScreens: f7b8bb892b4957f6f91e5dfd9a191e7f13ce8baa + RNShare: 2a4cdfc0626ad56b0ef583d424f2038f772afe58 RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852 - RNSVG: ba3e7232f45e34b7b47e74472386cf4e1a676d0a + RNSVG: db32cfcad0a221fd175e0882eff7bcba7690380a SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2 - VisionCamera: 9f26224fce1233ffdad9fa4e56863e3de2190dc0 - Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 + VisionCamera: 3033e0dd5272d46e97bcb406adea4ae0e6907abf + Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312 -PODFILE CHECKSUM: a431c146e1501391834a2f299a74093bac53b530 +PODFILE CHECKSUM: a25a81f2b50270f0c0bd0aff2e2ebe4d0b4ec06d COCOAPODS: 1.13.0 diff --git a/ios/tmp.xcconfig b/ios/tmp.xcconfig deleted file mode 100644 index 8b137891791f..000000000000 --- a/ios/tmp.xcconfig +++ /dev/null @@ -1 +0,0 @@ - diff --git a/package-lock.json b/package-lock.json index 82146ed8e249..6a31f9009d10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "new.expensify", - "version": "1.4.61-0", + "version": "1.4.61-6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "1.4.61-0", + "version": "1.4.61-6", "hasInstallScript": true, "license": "MIT", "dependencies": { "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.38", + "@expensify/react-native-live-markdown": "github:Expensify/react-native-live-markdown#f762be6fa832419dbbecb8a0cf64bf7dce18545b", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", @@ -33,13 +33,13 @@ "@react-native-firebase/crashlytics": "^12.3.0", "@react-native-firebase/perf": "^12.3.0", "@react-native-google-signin/google-signin": "^10.0.1", - "@react-native-picker/picker": "2.5.1", + "@react-native-picker/picker": "2.6.1", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.16", "@react-ng/bounds-observer": "^0.2.1", - "@rnmapbox/maps": "^10.1.11", - "@shopify/flash-list": "^1.6.3", + "@rnmapbox/maps": "10.1.11", + "@shopify/flash-list": "1.6.3", "@ua/react-native-airship": "^15.3.1", "@vue/preload-webpack-plugin": "^2.0.0", "awesome-phonenumber": "^5.4.0", @@ -60,7 +60,7 @@ "jest-expo": "50.0.1", "jest-when": "^3.5.2", "lodash": "4.17.21", - "lottie-react-native": "6.4.1", + "lottie-react-native": "6.5.1", "mapbox-gl": "^2.15.0", "onfido-sdk-ui": "14.15.0", "process": "^0.11.10", @@ -74,13 +74,13 @@ "react-error-boundary": "^4.0.11", "react-fast-pdf": "^1.0.6", "react-map-gl": "^7.1.3", - "react-native": "0.73.2", + "react-native": "0.73.4", "react-native-android-location-enabler": "^2.0.1", "react-native-blob-util": "0.19.4", "react-native-collapsible": "^1.6.1", - "react-native-config": "^1.4.5", + "react-native-config": "1.5.0", "react-native-dev-menu": "^4.1.1", - "react-native-device-info": "^10.3.0", + "react-native-device-info": "10.3.1", "react-native-document-picker": "^9.1.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", @@ -89,18 +89,18 @@ "react-native-haptic-feedback": "^2.2.0", "react-native-image-picker": "^7.0.3", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#bf3ad41a61c4f6f80ed4d497599ef5247a2dd002", - "react-native-key-command": "^1.0.6", + "react-native-key-command": "^1.0.8", "react-native-launch-arguments": "^4.0.2", "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", "react-native-onyx": "2.0.23", - "react-native-pager-view": "6.2.2", + "react-native-pager-view": "6.2.3", "react-native-pdf": "6.7.3", "react-native-performance": "^5.1.0", "react-native-permissions": "^3.9.3", "react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf", - "react-native-plaid-link-sdk": "10.8.0", + "react-native-plaid-link-sdk": "11.5.0", "react-native-qrcode-svg": "^6.2.0", "react-native-quick-sqlite": "^8.0.0-beta.2", "react-native-reanimated": "^3.7.2", @@ -118,7 +118,7 @@ "react-native-web": "^0.19.9", "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", - "react-native-webview": "13.6.3", + "react-native-webview": "13.6.4", "react-pdf": "7.3.3", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", @@ -150,8 +150,8 @@ "@octokit/plugin-paginate-rest": "3.1.0", "@octokit/plugin-throttling": "4.1.0", "@react-native-community/eslint-config": "3.0.0", - "@react-native/babel-preset": "^0.73.19", - "@react-native/metro-config": "^0.73.3", + "@react-native/babel-preset": "^0.73.21", + "@react-native/metro-config": "^0.73.5", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^6.5.9", "@storybook/addon-essentials": "^7.0.0", @@ -3098,8 +3098,12 @@ }, "node_modules/@expensify/react-native-live-markdown": { "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.38.tgz", - "integrity": "sha512-0EcXvK/eqeJdesX8DBibJ+V2KX9n5Gbmg0fWTk93mGOUA70h3W6lO68nuch40X+RgQdOgIf50BMfzbBzzVdJwA==", + "resolved": "git+ssh://git@github.com/Expensify/react-native-live-markdown.git#f762be6fa832419dbbecb8a0cf64bf7dce18545b", + "integrity": "sha512-m8+t3y1AtpvFAt3GAwRCiGwcOhUagOTCvwJ87kMGO5q/SKB2GCBHYMQ0QZaHw2QvAzRE6v2kCdqItX5DY+4MPQ==", + "license": "MIT", + "workspaces": [ + "example" + ], "engines": { "node": ">= 18.0.0" }, @@ -5184,11 +5188,13 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -7899,18 +7905,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "12.3.0", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-clean": "12.3.0", - "@react-native-community/cli-config": "12.3.0", - "@react-native-community/cli-debugger-ui": "12.3.0", - "@react-native-community/cli-doctor": "12.3.0", - "@react-native-community/cli-hermes": "12.3.0", - "@react-native-community/cli-plugin-metro": "12.3.0", - "@react-native-community/cli-server-api": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "@react-native-community/cli-types": "12.3.0", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz", + "integrity": "sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==", + "dependencies": { + "@react-native-community/cli-clean": "12.3.2", + "@react-native-community/cli-config": "12.3.2", + "@react-native-community/cli-debugger-ui": "12.3.2", + "@react-native-community/cli-doctor": "12.3.2", + "@react-native-community/cli-hermes": "12.3.2", + "@react-native-community/cli-plugin-metro": "12.3.2", + "@react-native-community/cli-server-api": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", + "@react-native-community/cli-types": "12.3.2", "chalk": "^4.1.2", "commander": "^9.4.1", "deepmerge": "^4.3.0", @@ -7929,17 +7936,19 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz", + "integrity": "sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==", "dependencies": { - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0" } }, "node_modules/@react-native-community/cli-clean/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -7952,7 +7961,8 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7966,7 +7976,8 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -7976,18 +7987,21 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -7996,10 +8010,11 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.2.tgz", + "integrity": "sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==", "dependencies": { - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -8009,7 +8024,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8022,7 +8038,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8036,7 +8053,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8046,11 +8064,13 @@ }, "node_modules/@react-native-community/cli-config/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-config/node_modules/cosmiconfig": { "version": "5.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dependencies": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", @@ -8063,14 +8083,16 @@ }, "node_modules/@react-native-community/cli-config/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-config/node_modules/import-fresh": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", "dependencies": { "caller-path": "^2.0.0", "resolve-from": "^3.0.0" @@ -8081,7 +8103,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/parse-json": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -8092,14 +8115,16 @@ }, "node_modules/@react-native-community/cli-config/node_modules/resolve-from": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "engines": { "node": ">=4" } }, "node_modules/@react-native-community/cli-config/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8108,20 +8133,22 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz", + "integrity": "sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "12.3.0", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-config": "12.3.0", - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-platform-ios": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz", + "integrity": "sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==", + "dependencies": { + "@react-native-community/cli-config": "12.3.2", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-platform-ios": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "command-exists": "^1.2.8", "deepmerge": "^4.3.0", @@ -8139,7 +8166,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8152,7 +8180,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8166,7 +8195,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8176,11 +8206,13 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } @@ -8192,7 +8224,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -8202,7 +8235,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8211,11 +8245,12 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz", + "integrity": "sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==", "dependencies": { - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -8223,7 +8258,8 @@ }, "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8236,7 +8272,8 @@ }, "node_modules/@react-native-community/cli-hermes/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8250,7 +8287,8 @@ }, "node_modules/@react-native-community/cli-hermes/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8260,11 +8298,13 @@ }, "node_modules/@react-native-community/cli-hermes/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } @@ -8276,7 +8316,8 @@ }, "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8285,10 +8326,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz", + "integrity": "sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==", "dependencies": { - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.2.4", @@ -8298,7 +8340,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8311,7 +8354,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8325,7 +8369,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8335,18 +8380,21 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8355,10 +8403,11 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz", + "integrity": "sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==", "dependencies": { - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-tools": "12.3.2", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -8368,7 +8417,8 @@ }, "node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8381,7 +8431,8 @@ }, "node_modules/@react-native-community/cli-platform-ios/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8395,7 +8446,8 @@ }, "node_modules/@react-native-community/cli-platform-ios/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8405,18 +8457,21 @@ }, "node_modules/@react-native-community/cli-platform-ios/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-platform-ios/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-platform-ios/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8425,15 +8480,17 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "12.3.0", - "license": "MIT" + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz", + "integrity": "sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g==" }, "node_modules/@react-native-community/cli-server-api": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz", + "integrity": "sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==", "dependencies": { - "@react-native-community/cli-debugger-ui": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-debugger-ui": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -8468,14 +8525,16 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-server-api/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8503,7 +8562,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8513,7 +8573,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-server-api/node_modules/has-flag": { "version": "4.0.0", @@ -8525,7 +8586,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { "version": "26.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dependencies": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -8538,7 +8600,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { "version": "17.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/@react-native-community/cli-server-api/node_modules/supports-color": { "version": "7.2.0", @@ -8553,7 +8616,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/ws": { "version": "7.5.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -8571,8 +8635,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz", + "integrity": "sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -8588,7 +8653,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -8601,7 +8667,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8615,7 +8682,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -8625,25 +8693,29 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { "version": "1.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "engines": { "node": ">=4" } }, "node_modules/@react-native-community/cli-tools/node_modules/open": { "version": "6.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dependencies": { "is-wsl": "^1.1.0" }, @@ -8653,7 +8725,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -8662,8 +8735,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "12.3.0", - "license": "MIT", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.2.tgz", + "integrity": "sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==", "dependencies": { "joi": "^17.2.1" } @@ -8991,8 +9065,9 @@ } }, "node_modules/@react-native-picker/picker": { - "version": "2.5.1", - "license": "MIT", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.6.1.tgz", + "integrity": "sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg==", "peerDependencies": { "react": ">=16", "react-native": ">=0.57" @@ -9006,18 +9081,20 @@ } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.73.2", - "license": "MIT", + "version": "0.73.4", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz", + "integrity": "sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==", "dependencies": { - "@react-native/codegen": "0.73.2" + "@react-native/codegen": "0.73.3" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.73.19", - "license": "MIT", + "version": "0.73.21", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.21.tgz", + "integrity": "sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==", "dependencies": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -9058,7 +9135,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.73.2", + "@react-native/babel-plugin-codegen": "0.73.4", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -9077,8 +9154,9 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.73.2", - "license": "MIT", + "version": "0.73.3", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.3.tgz", + "integrity": "sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==", "dependencies": { "@babel/parser": "^7.20.0", "flow-parser": "^0.206.0", @@ -9097,7 +9175,8 @@ }, "node_modules/@react-native/codegen/node_modules/mkdirp": { "version": "0.5.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { "minimist": "^1.2.6" }, @@ -9106,13 +9185,14 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.73.12", - "license": "MIT", + "version": "0.73.16", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz", + "integrity": "sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==", "dependencies": { - "@react-native-community/cli-server-api": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", + "@react-native-community/cli-server-api": "12.3.2", + "@react-native-community/cli-tools": "12.3.2", "@react-native/dev-middleware": "0.73.7", - "@react-native/metro-babel-transformer": "0.73.13", + "@react-native/metro-babel-transformer": "0.73.15", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", @@ -9127,7 +9207,8 @@ }, "node_modules/@react-native/community-cli-plugin/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -9140,7 +9221,8 @@ }, "node_modules/@react-native/community-cli-plugin/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9154,7 +9236,8 @@ }, "node_modules/@react-native/community-cli-plugin/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -9164,18 +9247,21 @@ }, "node_modules/@react-native/community-cli-plugin/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-native/community-cli-plugin/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@react-native/community-cli-plugin/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -9249,11 +9335,12 @@ } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.73.13", - "license": "MIT", + "version": "0.73.15", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz", + "integrity": "sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.73.19", + "@react-native/babel-preset": "0.73.21", "hermes-parser": "0.15.0", "nullthrows": "^1.1.1" }, @@ -9265,12 +9352,13 @@ } }, "node_modules/@react-native/metro-config": { - "version": "0.73.3", + "version": "0.73.5", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.73.5.tgz", + "integrity": "sha512-3bNWoHzOzP/+qoLJtRhOVXrnxKmSY3i4y5PXyMQlIvvOI/GQbXulPpEZxK/yUrf1MmeXHLLFufFbQWlfDEDoxA==", "dev": true, - "license": "MIT", "dependencies": { "@react-native/js-polyfills": "0.73.1", - "@react-native/metro-babel-transformer": "0.73.13", + "@react-native/metro-babel-transformer": "0.73.15", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" }, @@ -9481,19 +9569,22 @@ } }, "node_modules/@sideway/address": { - "version": "4.1.4", - "license": "BSD-3-Clause", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", @@ -20301,7 +20392,8 @@ }, "node_modules/ansi-fragments": { "version": "0.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", "dependencies": { "colorette": "^1.0.7", "slice-ansi": "^2.0.0", @@ -20310,21 +20402,24 @@ }, "node_modules/ansi-fragments/node_modules/astral-regex": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "engines": { "node": ">=4" } }, "node_modules/ansi-fragments/node_modules/is-fullwidth-code-point": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "engines": { "node": ">=4" } }, "node_modules/ansi-fragments/node_modules/slice-ansi": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dependencies": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", @@ -20336,7 +20431,8 @@ }, "node_modules/ansi-fragments/node_modules/strip-ansi": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -20515,7 +20611,8 @@ }, "node_modules/appdirsjs": { "version": "1.2.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" }, "node_modules/application-config-path": { "version": "0.1.1", @@ -21113,7 +21210,8 @@ }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "peerDependencies": { "@babel/core": "^7.0.0-0" } @@ -23275,7 +23373,8 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -24986,7 +25085,8 @@ }, "node_modules/dayjs": { "version": "1.11.10", - "license": "MIT" + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debounce": { "version": "1.2.1", @@ -26126,7 +26226,8 @@ }, "node_modules/errorhandler": { "version": "1.5.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", "dependencies": { "accepts": "~1.3.7", "escape-html": "~1.0.3" @@ -28105,7 +28206,9 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "4.3.2", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz", + "integrity": "sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==", "funding": [ { "type": "github", @@ -28116,7 +28219,6 @@ "url": "https://paypal.me/naturalintelligence" } ], - "license": "MIT", "dependencies": { "strnum": "^1.0.5" }, @@ -28474,7 +28576,8 @@ }, "node_modules/flow-parser": { "version": "0.206.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz", + "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==", "engines": { "node": ">=0.4.0" } @@ -29588,18 +29691,21 @@ }, "node_modules/hermes-estree": { "version": "0.15.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz", + "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==" }, "node_modules/hermes-parser": { "version": "0.15.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz", + "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==", "dependencies": { "hermes-estree": "0.15.0" } }, "node_modules/hermes-profile-transformer": { "version": "0.0.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", "dependencies": { "source-map": "^0.7.3" }, @@ -29609,7 +29715,8 @@ }, "node_modules/hermes-profile-transformer/node_modules/source-map": { "version": "0.7.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -30955,7 +31062,8 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "engines": { "node": ">=8" } @@ -31178,7 +31286,8 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "engines": { "node": ">=10" }, @@ -34032,12 +34141,13 @@ } }, "node_modules/joi": { - "version": "17.11.0", - "license": "BSD-3-Clause", + "version": "17.12.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz", + "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==", "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } @@ -34087,7 +34197,8 @@ }, "node_modules/jscodeshift": { "version": "0.14.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", + "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", "dependencies": { "@babel/core": "^7.13.16", "@babel/parser": "^7.13.16", @@ -34118,7 +34229,8 @@ }, "node_modules/jscodeshift/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -34131,7 +34243,8 @@ }, "node_modules/jscodeshift/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -34145,7 +34258,8 @@ }, "node_modules/jscodeshift/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -34155,18 +34269,21 @@ }, "node_modules/jscodeshift/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -34708,7 +34825,8 @@ }, "node_modules/log-symbols": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -34722,7 +34840,8 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -34735,7 +34854,8 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -34749,7 +34869,8 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -34759,18 +34880,21 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -34780,7 +34904,8 @@ }, "node_modules/logkitty": { "version": "0.7.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", "dependencies": { "ansi-fragments": "^0.2.1", "dayjs": "^1.8.15", @@ -34792,7 +34917,8 @@ }, "node_modules/logkitty/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -34805,14 +34931,16 @@ }, "node_modules/logkitty/node_modules/camelcase": { "version": "5.3.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "engines": { "node": ">=6" } }, "node_modules/logkitty/node_modules/cliui": { "version": "6.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -34821,7 +34949,8 @@ }, "node_modules/logkitty/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -34831,11 +34960,13 @@ }, "node_modules/logkitty/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/logkitty/node_modules/find-up": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -34846,7 +34977,8 @@ }, "node_modules/logkitty/node_modules/locate-path": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { "p-locate": "^4.1.0" }, @@ -34856,7 +34988,8 @@ }, "node_modules/logkitty/node_modules/p-limit": { "version": "2.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { "p-try": "^2.0.0" }, @@ -34869,7 +35002,8 @@ }, "node_modules/logkitty/node_modules/p-locate": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dependencies": { "p-limit": "^2.2.0" }, @@ -34879,14 +35013,16 @@ }, "node_modules/logkitty/node_modules/path-exists": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "engines": { "node": ">=8" } }, "node_modules/logkitty/node_modules/wrap-ansi": { "version": "6.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -34898,7 +35034,8 @@ }, "node_modules/logkitty/node_modules/yargs": { "version": "15.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -34918,7 +35055,8 @@ }, "node_modules/logkitty/node_modules/yargs-parser": { "version": "18.1.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -34945,8 +35083,9 @@ } }, "node_modules/lottie-react-native": { - "version": "6.4.1", - "license": "Apache-2.0", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-6.5.1.tgz", + "integrity": "sha512-pjih71P6qX6Ax5ucUBA+YJO7+fnveI581Bd8LmYeARm3spq3AnoGzEkrWaieM8odnK6WI4d5dwEJsxge/QjFPw==", "peerDependencies": { "@dotlottie/react-player": "^1.6.1", "@lottiefiles/react-lottie-player": "^3.5.3", @@ -36567,7 +36706,8 @@ }, "node_modules/nocache": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", "engines": { "node": ">=12.0.0" } @@ -36702,7 +36842,8 @@ }, "node_modules/node-stream-zip": { "version": "1.15.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", "engines": { "node": ">=0.12.0" }, @@ -37236,7 +37377,8 @@ }, "node_modules/ora": { "version": "5.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -37257,7 +37399,8 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -37270,7 +37413,8 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -37284,7 +37428,8 @@ }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -37294,18 +37439,21 @@ }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -39163,16 +39311,17 @@ } }, "node_modules/react-native": { - "version": "0.73.2", - "license": "MIT", + "version": "0.73.4", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.4.tgz", + "integrity": "sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "12.3.0", - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-platform-ios": "12.3.0", + "@react-native-community/cli": "12.3.2", + "@react-native-community/cli-platform-android": "12.3.2", + "@react-native-community/cli-platform-ios": "12.3.2", "@react-native/assets-registry": "0.73.1", - "@react-native/codegen": "0.73.2", - "@react-native/community-cli-plugin": "0.73.12", + "@react-native/codegen": "0.73.3", + "@react-native/community-cli-plugin": "0.73.16", "@react-native/gradle-plugin": "0.73.4", "@react-native/js-polyfills": "0.73.1", "@react-native/normalize-colors": "0.73.2", @@ -39181,6 +39330,7 @@ "anser": "^1.4.9", "ansi-regex": "^5.0.0", "base64-js": "^1.5.1", + "chalk": "^4.0.0", "deprecated-react-native-prop-types": "^5.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", @@ -39282,8 +39432,9 @@ } }, "node_modules/react-native-config": { - "version": "1.4.6", - "license": "MIT", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.0.tgz", + "integrity": "sha512-slecooA/0tCwhb+RuWEbwLqtKirGh9vWPRpgDfH7uPAraCciqHNH2XjS9ylW+Spn4FUrHg5KWTqUGs9BdBADHg==", "peerDependencies": { "react-native-windows": ">=0.61" }, @@ -39301,8 +39452,9 @@ } }, "node_modules/react-native-device-info": { - "version": "10.3.0", - "license": "MIT", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.3.1.tgz", + "integrity": "sha512-KZU1luB7UrpRT8vYdWOoGJA0e2uAvF5J1Da90QMfLrtYBm1U0tbrlYO99qLCBRq7nQvBISlhqpqikzaS0vDYYw==", "peerDependencies": { "react-native": "*" } @@ -39411,8 +39563,9 @@ "license": "MIT" }, "node_modules/react-native-key-command": { - "version": "1.0.6", - "license": "MIT", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/react-native-key-command/-/react-native-key-command-1.0.8.tgz", + "integrity": "sha512-9iih5hio+4RIYCYP2ZKoJb7w+eGo6E506okTBi+7oenu2oGwhTifBC30GU51Ea+h4SJgUufoQARbUvgjyLbI3w==", "dependencies": { "eventemitter3": "^5.0.1", "underscore": "^1.13.4" @@ -39511,8 +39664,9 @@ } }, "node_modules/react-native-pager-view": { - "version": "6.2.2", - "license": "MIT", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.2.3.tgz", + "integrity": "sha512-dqVpXWFtPNfD3D2QQQr8BP+ullS5MhjRJuF8Z/qml4QTILcrWaW8F5iAxKkQR3Jl0ikcEryG/+SQlNcwlo0Ggg==", "peerDependencies": { "react": "*", "react-native": "*" @@ -39565,14 +39719,12 @@ } }, "node_modules/react-native-plaid-link-sdk": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "react-native-plaid-link-sdk": "^10.4.0" - }, + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/react-native-plaid-link-sdk/-/react-native-plaid-link-sdk-11.5.0.tgz", + "integrity": "sha512-B3fwujxBS9nZwadXFcseU3nrYG7Ptob6p9eG/gXde65cqwErMaq2k1rVv3R17s/rpKnmU5Cx5pKOMmkxPUn08w==", "peerDependencies": { "react": "*", - "react-native": ">=0.66.0" + "react-native": "*" } }, "node_modules/react-native-qrcode-svg": { @@ -39823,8 +39975,9 @@ "license": "MIT" }, "node_modules/react-native-webview": { - "version": "13.6.3", - "license": "MIT", + "version": "13.6.4", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.4.tgz", + "integrity": "sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ==", "dependencies": { "escape-string-regexp": "2.0.0", "invariant": "2.2.4" @@ -40856,7 +41009,8 @@ }, "node_modules/readline": { "version": "1.3.0", - "license": "BSD" + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" }, "node_modules/reassure": { "version": "0.10.1", @@ -40870,7 +41024,8 @@ }, "node_modules/recast": { "version": "0.21.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", + "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", "dependencies": { "ast-types": "0.15.2", "esprima": "~4.0.0", @@ -40883,7 +41038,8 @@ }, "node_modules/recast/node_modules/ast-types": { "version": "0.15.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", + "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", "dependencies": { "tslib": "^2.0.1" }, @@ -41427,7 +41583,8 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -43127,7 +43284,8 @@ }, "node_modules/strnum": { "version": "1.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, "node_modules/structured-headers": { "version": "0.4.1", @@ -43205,7 +43363,8 @@ }, "node_modules/sudo-prompt": { "version": "9.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, "node_modules/sumchecker": { "version": "3.0.1", @@ -43565,7 +43724,8 @@ }, "node_modules/temp": { "version": "0.8.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", "dependencies": { "rimraf": "~2.6.2" }, @@ -43604,7 +43764,8 @@ }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dependencies": { "glob": "^7.1.3" }, diff --git a/package.json b/package.json index e0a2f10f9cf8..ddee8708bc46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.4.61-0", + "version": "1.4.61-6", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", @@ -62,7 +62,7 @@ }, "dependencies": { "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.38", + "@expensify/react-native-live-markdown": "github:Expensify/react-native-live-markdown#f762be6fa832419dbbecb8a0cf64bf7dce18545b", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", @@ -84,13 +84,13 @@ "@react-native-firebase/crashlytics": "^12.3.0", "@react-native-firebase/perf": "^12.3.0", "@react-native-google-signin/google-signin": "^10.0.1", - "@react-native-picker/picker": "2.5.1", + "@react-native-picker/picker": "2.6.1", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.16", "@react-ng/bounds-observer": "^0.2.1", - "@rnmapbox/maps": "^10.1.11", - "@shopify/flash-list": "^1.6.3", + "@rnmapbox/maps": "10.1.11", + "@shopify/flash-list": "1.6.3", "@ua/react-native-airship": "^15.3.1", "@vue/preload-webpack-plugin": "^2.0.0", "awesome-phonenumber": "^5.4.0", @@ -111,7 +111,7 @@ "jest-expo": "50.0.1", "jest-when": "^3.5.2", "lodash": "4.17.21", - "lottie-react-native": "6.4.1", + "lottie-react-native": "6.5.1", "mapbox-gl": "^2.15.0", "onfido-sdk-ui": "14.15.0", "process": "^0.11.10", @@ -125,13 +125,13 @@ "react-error-boundary": "^4.0.11", "react-fast-pdf": "^1.0.6", "react-map-gl": "^7.1.3", - "react-native": "0.73.2", + "react-native": "0.73.4", "react-native-android-location-enabler": "^2.0.1", "react-native-blob-util": "0.19.4", "react-native-collapsible": "^1.6.1", - "react-native-config": "^1.4.5", + "react-native-config": "1.5.0", "react-native-dev-menu": "^4.1.1", - "react-native-device-info": "^10.3.0", + "react-native-device-info": "10.3.1", "react-native-document-picker": "^9.1.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", @@ -140,18 +140,18 @@ "react-native-haptic-feedback": "^2.2.0", "react-native-image-picker": "^7.0.3", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#bf3ad41a61c4f6f80ed4d497599ef5247a2dd002", - "react-native-key-command": "^1.0.6", + "react-native-key-command": "^1.0.8", "react-native-launch-arguments": "^4.0.2", "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", "react-native-onyx": "2.0.23", - "react-native-pager-view": "6.2.2", + "react-native-pager-view": "6.2.3", "react-native-pdf": "6.7.3", "react-native-performance": "^5.1.0", "react-native-permissions": "^3.9.3", "react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf", - "react-native-plaid-link-sdk": "10.8.0", + "react-native-plaid-link-sdk": "11.5.0", "react-native-qrcode-svg": "^6.2.0", "react-native-quick-sqlite": "^8.0.0-beta.2", "react-native-reanimated": "^3.7.2", @@ -169,7 +169,7 @@ "react-native-web": "^0.19.9", "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", - "react-native-webview": "13.6.3", + "react-native-webview": "13.6.4", "react-pdf": "7.3.3", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", @@ -201,8 +201,8 @@ "@octokit/plugin-paginate-rest": "3.1.0", "@octokit/plugin-throttling": "4.1.0", "@react-native-community/eslint-config": "3.0.0", - "@react-native/babel-preset": "^0.73.19", - "@react-native/metro-config": "^0.73.3", + "@react-native/babel-preset": "^0.73.21", + "@react-native/metro-config": "^0.73.5", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^6.5.9", "@storybook/addon-essentials": "^7.0.0", @@ -298,7 +298,7 @@ "yaml": "^2.2.1" }, "overrides": { - "react-native": "$react-native", + "react-native": "0.73.4", "expo": "$expo", "react-native-svg": "$react-native-svg" }, diff --git a/patches/@onfido+react-native-sdk+10.6.0.patch b/patches/@onfido+react-native-sdk+10.6.0.patch index d61f4ab454c9..90e73ec197a1 100644 --- a/patches/@onfido+react-native-sdk+10.6.0.patch +++ b/patches/@onfido+react-native-sdk+10.6.0.patch @@ -1,12 +1,403 @@ +diff --git a/node_modules/@onfido/react-native-sdk/.yarnrc b/node_modules/@onfido/react-native-sdk/.yarnrc +new file mode 100644 +index 0000000..08b5d85 +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/.yarnrc +@@ -0,0 +1 @@ ++registry "https://registry.npmjs.org" +\ No newline at end of file +diff --git a/node_modules/@onfido/react-native-sdk/CHANGELOG.md b/node_modules/@onfido/react-native-sdk/CHANGELOG.md +index 6491cb5..398e154 100644 +--- a/node_modules/@onfido/react-native-sdk/CHANGELOG.md ++++ b/node_modules/@onfido/react-native-sdk/CHANGELOG.md +@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. + The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) + and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + ++## [10.7.0] - 2024-02-01 ++ ++### Changed: ++ ++- Updated underlying Onfido native SDK version: ++ - iOS 29.7.x (up from 29.6.x) ++ - Android 19.6.x (up from 19.5.x) ++ ++### Fixed: ++ ++- Fixed the behaviour when using the configuration option `allowedDocumentTypes`: ++ - The order of steps (and SDK screens) has now been aligned with the native SDKs, for both Android and iOS. The order to be used is: Welcome - Document capture - Proof of address - Face capture - Final screen. ++ - The Welcome screen now correctly takes into account the `welcome` (boolean) flag in the configuration. ++ + ## [10.6.0] - 2023-12-11 + + ### Changed: +diff --git a/node_modules/@onfido/react-native-sdk/README.md b/node_modules/@onfido/react-native-sdk/README.md +index 03fb8da..0159a6f 100644 +--- a/node_modules/@onfido/react-native-sdk/README.md ++++ b/node_modules/@onfido/react-native-sdk/README.md +@@ -30,9 +30,7 @@ + - [Introduction](#introduction) + - [Implementation](#implementation) + - [User data](#user-data) +-- [Creating checks](#creating-checks) +- - [1. Obtaining an API token](#1-obtaining-an-api-token-1) +- - [2. Creating a check](#2-creating-a-check) ++- [Generating verification reports](#generating-verification-reports) + - [Theme Customization](#theme-customization) + - [Android](#android-1) + - [iOS](#ios-1) +@@ -57,7 +55,7 @@ This SDK provides a drop-in set of screens and tools for react native applicatio + > + > If you are integrating using Onfido Studio please see our [Studio integration guide](ONFIDO_STUDIO.md) + +-\* **Note**: the SDK is only responsible for capturing and uploading photos/videos. You still need to access the [Onfido API](https://documentation.onfido.com/) to create and manage checks. ++\* **Note**: The SDK is only responsible for capturing and uploading document photos, live selfies, live videos and motion captures. You still need to access the [Onfido API](https://documentation.onfido.com/) to manage applicants and [Onfido Studio](https://developers.onfido.com/guide/onfido-studio-product) to build verification workflows. + + * Supports iOS 11+ + * Supports Xcode 13+ +@@ -600,34 +598,17 @@ let byteArrayString = mediaResult.fileData; + let base64FileData = Onfido.byteArrayStringToBase64(byteArrayString); + ``` + +-## Creating checks ++## Generating verification reports + +-As the SDK is only responsible for capturing and uploading photos/videos, you would need to start a check on your backend server using the [Onfido API](https://documentation.onfido.com/). ++While the SDK is responsible for capturing and uploading document photos, live selfies, live videos and motion captures, identity verification reports themselves are generated based on workflows created using [Onfido Studio](https://developers.onfido.com/guide/onfido-studio-product). + +-### 1. Obtaining an API token +- +-All API requests must be made with an API token included in the request headers. You can find your API token (not to be mistaken with the mobile SDK token) inside your [Onfido Dashboard](https://onfido.com/dashboard/api/tokens). +- +-Refer to the [Authentication](https://documentation.onfido.com/#authentication) section in the API documentation for details. For testing, you should be using the sandbox, and not the live, token. +- +-### 2. Creating a check +- +-You will need to create a check by making a request to the [create check endpoint](https://documentation.onfido.com/#create-check), using the applicant id. If you are just verifying a document, you only have to include a [document report](https://documentation.onfido.com/#document-report) as part of the check. On the other hand, if you are verifying a document and a face photo/live video, you will also have to include a [facial similarity report](https://documentation.onfido.com/#facial-similarity-report) with the corresponding values: `facial_similarity_photo` for the photo option and `facial_similarity_video` for the video option. +- +-```shell +-$ curl https://api.onfido.com/v3/checks \ +- -H 'Authorization: Token token=YOUR_API_TOKEN' \ +- -d 'applicant_id=YOUR_APPLICANT_ID' \ +- -d 'report_names=[document,facial_similarity_photo]' +-``` +- +-**Note**: You can also submit the POST request in JSON format. ++For a step-by-step walkthrough of creating an identity verification using Onfido Studio and our SDKs, please refer to our [Quick Start Guide](https://developers.onfido.com/guide/quick-start-guide). + +-You will receive a response containing the check id instantly. As document and facial similarity reports do not always return actual [results](https://documentation.onfido.com/#results) straightaway, you need to set up a webhook to get notified when the results are ready. ++Alternatively, you can [create checks](https://documentation.onfido.com/#create-check) and [retrieve report results](https://documentation.onfido.com/#retrieve-report) manually using the Onfido API. You can also configure [webhooks](https://documentation.onfido.com/#webhooks) to be notified asynchronously of report results. + +-Finally, as you are testing with the sandbox token, please be aware that the results are pre-determined. You can learn more about sandbox responses [here](https://documentation.onfido.com/#pre-determined-responses). ++**Note**: If you're using API v2 for API calls, please check out [API v2 to v3 migration guide](https://developers.onfido.com/guide/v2-to-v3-migration-guide#checks-in-api-v3) to understand which changes need to be applied before starting to use API v3. + +-**Note**: If you're using API v2, please check out [API v2 to v3 migration guide](https://developers.onfido.com/guide/v2-to-v3-migration-guide#checks-in-api-v3) to understand which changes need to be applied before starting to use API v3. ++**Note**: If you are testing with a sandbox token, please be aware that report results are pre-determined. You can learn more about sandbox responses [here](https://documentation.onfido.com/#pre-determined-responses). + + ## Theme Customization + +diff --git a/node_modules/@onfido/react-native-sdk/android/.project b/node_modules/@onfido/react-native-sdk/android/.project +deleted file mode 100644 +index 357b6fc..0000000 +--- a/node_modules/@onfido/react-native-sdk/android/.project ++++ /dev/null +@@ -1,34 +0,0 @@ +- +- +- android +- Project android created by Buildship. +- +- +- +- +- org.eclipse.jdt.core.javabuilder +- +- +- +- +- org.eclipse.buildship.core.gradleprojectbuilder +- +- +- +- +- +- org.eclipse.jdt.core.javanature +- org.eclipse.buildship.core.gradleprojectnature +- +- +- +- 1684767677408 +- +- 30 +- +- org.eclipse.core.resources.regexFilterMatcher +- node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ +- +- +- +- +diff --git a/node_modules/@onfido/react-native-sdk/android/bin/README.md b/node_modules/@onfido/react-native-sdk/android/bin/README.md +deleted file mode 100644 +index 6746135..0000000 +--- a/node_modules/@onfido/react-native-sdk/android/bin/README.md ++++ /dev/null +@@ -1,33 +0,0 @@ +-README +-====== +- +-If you want to publish the lib as a maven dependency, follow these steps before publishing a new version to npm: +- +-1. Be sure to have the Android [SDK](https://developer.android.com/studio/index.html) and [NDK](https://developer.android.com/ndk/guides/index.html) installed +-2. Be sure to have a `local.properties` file in this folder that points to the Android SDK and NDK +-``` +-ndk.dir=/Users/{username}/Library/Android/sdk/ndk-bundle +-sdk.dir=/Users/{username}/Library/Android/sdk +-``` +-3. Run `./gradlew publishToMavenLocal` +-4. Go to the `~/.m2` directory. Verify that the pom file was generated successfully with the correct version. +- +- +-How to quickly develop the Android Java code using the TestApp: +-====== +-React Native's "Fast Refresh" feature will not update Java code as you make changes, and reinstalling all npm packages is slow. Instead, you can follow this process to recompile only the Java code when you make changes. +- +-In one console, from the `TestApp/` directory, run the following commands. It may take 2 or more minutes to build. You only need to run this once: leave it running in the background while you develop. +-```shell +-rm -rf node_modules/ && yarn && cd .. && watchman watch-del-all && npx react-native start --reset-cache +-``` +- +-In a second console, from the `TestApp/` directory, update the Android package and launch the virtual device. Run this each time you change Android code. +-```shell +-rsync -av ../ node_modules/@onfido/react-native-sdk/ --exclude=TestApp --exclude=SampleApp --exclude=node_modules --exclude=android/build --exclude=.git && npx react-native run-android +-``` +- +-How to run the tests +-====== +-1. Run "yarn" or "npm install" from the project root. This will download the React Native Facebook bridge library +-2. Run "./gradlew test" from the "/android" directory. +diff --git a/node_modules/@onfido/react-native-sdk/android/bin/build.gradle b/node_modules/@onfido/react-native-sdk/android/bin/build.gradle +deleted file mode 100644 +index d2810b6..0000000 +--- a/node_modules/@onfido/react-native-sdk/android/bin/build.gradle ++++ /dev/null +@@ -1,154 +0,0 @@ +-// android/build.gradle +- +-// based on: +-// +-// * https://github.com/facebook/react-native/blob/0.60-stable/template/android/build.gradle +-// original location: +-// - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/build.gradle +-// +-// * https://github.com/facebook/react-native/blob/0.60-stable/template/android/app/build.gradle +-// original location: +-// - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/app/build.gradle +- +-def DEFAULT_COMPILE_SDK_VERSION = 32 +-def DEFAULT_MIN_SDK_VERSION = 21 +-def DEFAULT_TARGET_SDK_VERSION = 31 +-def NATIVE_ANDROID_SDK_VERSION = "16.3.+" +- +-def safeExtGet(prop, fallback) { +- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +-} +- +-def androidExclusion = [ +- '**/databinding/**/*.*', +- '**/android/databinding/*Binding.*', +- '**/BR.*', +- '**/R.*', +- '**/R$*.*', +- '**/BuildConfig.*', +- '**/Manifest*.*', +- '**/*_MembersInjector.*', +- '**/Dagger*Component.*', +- '**/Dagger*Component$Builder.*', +- '**/*Module_*Factory.*', +- '**/*Fragment*.*', +- '**/*Activity*.*', +- '**/*Adapter*.*', +- '**/*ViewPager*.*', +- '**/*ViewHolder*.*', +- '**/*Module*.*' +-] +- +-buildscript { +- // The Android Gradle plugin is only required when opening the android folder stand-alone. +- // This avoids unnecessary downloads and potential conflicts when the library is included as a +- // module dependency in an application project. +- // ref: https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies +- if (project == rootProject) { +- repositories { +- mavenCentral() +- google() +- jcenter() +- } +- dependencies { +- classpath 'com.android.tools.build:gradle:7.4.2' +- } +- } +-} +- +-apply plugin: 'com.android.library' +-apply plugin: 'maven-publish' +-apply plugin: 'jacoco' +- +-apply from: 'publish.gradle' +- +-android { +- compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) +- defaultConfig { +- minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION) +- targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION) +- versionCode 1 +- versionName "1.0" +- multiDexEnabled true +- consumerProguardFiles 'proguard-rules.pro' +- } +- lintOptions { +- abortOnError false +- } +- +- buildFeatures { +- buildConfig = false +- } +- +- compileOptions { +- sourceCompatibility JavaVersion.VERSION_1_8 +- targetCompatibility JavaVersion.VERSION_1_8 +- } +-} +- +-repositories { +- // ref: https://www.baeldung.com/maven-local-repository +- mavenLocal() +- mavenCentral() +- maven { +- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm +- url "$rootDir/../node_modules/react-native/android" +- } +- maven { +- // Android JSC is installed from npm +- url "$rootDir/../node_modules/jsc-android/dist" +- } +- google() +- jcenter() +-} +- +-dependencies { +- //noinspection GradleDynamicVersion +- implementation 'com.facebook.react:react-native:+' // From node_modules +- implementation "com.onfido.sdk.capture:onfido-capture-sdk:$NATIVE_ANDROID_SDK_VERSION" +- implementation "com.onfido.sdk:onfido-workflow:$NATIVE_ANDROID_SDK_VERSION" +- implementation "com.squareup.okhttp3:logging-interceptor:3.14.9" +- implementation "com.squareup.okhttp3:okhttp:3.14.9" +- // Fix for crash due to 'java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/swiperefreshlayout/widget/SwipeRefreshLayout;'' +- implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' +- +- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1' +- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1' +- testCompileOnly 'junit:junit:4.13.2' +- testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.10.1' +- testImplementation 'org.mockito:mockito-core:2.+' +- testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.9' +- testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: '2.0.9' +-} +- +-afterEvaluate { project -> +- android.libraryVariants.all { variant -> +- def name = variant.name.capitalize() +- def javaCompileTask = variant.javaCompileProvider.get() +- +- task "jar${name}"(type: Jar, dependsOn: javaCompileTask) { +- from javaCompileTask.destinationDir +- } +- } +- +- task codeCoverageReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { +- group = "Reporting" +- description = "Generate Jacoco coverage reports after running tests." +- reports { +- xml.enabled = true +- html.enabled = true +- csv.enabled = true +- } +- classDirectories.setFrom(fileTree( +- dir: 'build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/onfido/reactnative/sdk', +- excludes: androidExclusion +- )) +- sourceDirectories.setFrom(files('src/main/java/com/onfido/reactnative/sdk')) +- executionData.setFrom(files('build/jacoco/testDebugUnitTest.exec')) +- } +- +- task getCoverage(type: Exec, dependsOn: 'codeCoverageReport') { +- group = "Reporting" +- commandLine "open", "$buildDir/reports/jacoco/codeCoverageReport/html/index.html" +- } +-} diff --git a/node_modules/@onfido/react-native-sdk/android/build.gradle b/node_modules/@onfido/react-native-sdk/android/build.gradle -index 33a4229..1720bef 100644 +index 33a4229..895bfd7 100644 --- a/node_modules/@onfido/react-native-sdk/android/build.gradle +++ b/node_modules/@onfido/react-native-sdk/android/build.gradle -@@ -84,6 +84,13 @@ android { +@@ -13,12 +13,20 @@ + def DEFAULT_COMPILE_SDK_VERSION = 33 + def DEFAULT_MIN_SDK_VERSION = 21 + def DEFAULT_TARGET_SDK_VERSION = 31 +-def NATIVE_ANDROID_SDK_VERSION = "19.5.+" ++def NATIVE_ANDROID_SDK_VERSION = "19.6.+" + + def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + ++def isNewArchitectureEnabled() { ++ // To opt-in for the New Architecture, you can either: ++ // - Set `newArchEnabled` to true inside the `gradle.properties` file ++ // - Invoke gradle with `-newArchEnabled=true` ++ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} ++ + def androidExclusion = [ + '**/databinding/**/*.*', + '**/android/databinding/*Binding.*', +@@ -60,10 +68,24 @@ apply plugin: 'com.android.library' + apply plugin: 'maven-publish' + apply plugin: 'jacoco' + ++if (isNewArchitectureEnabled()) { ++ apply plugin: "com.facebook.react" ++} ++ + apply from: 'publish.gradle' + + android { + compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) ++ ++ // Used to override the NDK path/version on internal CI or by allowing ++ // users to customize the NDK path/version from their root project (e.g. for M1 support) ++ if (rootProject.hasProperty("ndkPath")) { ++ ndkPath rootProject.ext.ndkPath ++ } ++ if (rootProject.hasProperty("ndkVersion")) { ++ ndkVersion rootProject.ext.ndkVersion ++ } ++ + defaultConfig { + minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION) + targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION) +@@ -84,6 +106,20 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + ++ sourceSets.main { ++ java { ++ if (!isNewArchitectureEnabled()) { ++ srcDirs += 'src/paper/java' ++ } ++ } ++ } + publishing { + singleVariant('release') { + withSourcesJar() @@ -16,3 +407,902 @@ index 33a4229..1720bef 100644 } repositories { +@@ -103,8 +139,8 @@ repositories { + } + + dependencies { +- //noinspection GradleDynamicVersion +- implementation 'com.facebook.react:react-native:+' // From node_modules ++ implementation 'com.facebook.react:react-native:+' // from node_modules ++ + implementation "com.onfido.sdk.capture:onfido-capture-sdk:$NATIVE_ANDROID_SDK_VERSION" + implementation "com.onfido.sdk:onfido-workflow:$NATIVE_ANDROID_SDK_VERSION" + implementation "com.squareup.okhttp3:logging-interceptor:3.14.9" +diff --git a/node_modules/@onfido/react-native-sdk/android/src/main/AndroidManifest.xml b/node_modules/@onfido/react-native-sdk/android/src/main/AndroidManifest.xml +index 42ad0ca..903b090 100644 +--- a/node_modules/@onfido/react-native-sdk/android/src/main/AndroidManifest.xml ++++ b/node_modules/@onfido/react-native-sdk/android/src/main/AndroidManifest.xml +@@ -8,6 +8,6 @@ + + ++ android:value="10.7.0" /> + + +diff --git a/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkModule.java b/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkModule.java +index 93407a2..13f84fd 100644 +--- a/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkModule.java ++++ b/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkModule.java +@@ -3,14 +3,13 @@ package com.onfido.reactnative.sdk; + import android.annotation.SuppressLint; + import android.app.Activity; + +-import com.facebook.react.bridge.NoSuchKeyException; + import com.facebook.react.bridge.Promise; + import com.facebook.react.bridge.ReactApplicationContext; + import com.facebook.react.bridge.ReactContextBaseJavaModule; + import com.facebook.react.bridge.ReactMethod; + import com.facebook.react.bridge.ReadableArray; + import com.facebook.react.bridge.ReadableMap; +-import com.facebook.react.bridge.UnexpectedNativeTypeException; ++import com.facebook.react.module.annotations.ReactModule; + import com.facebook.react.bridge.WritableMap; + import com.facebook.react.modules.core.DeviceEventManagerModule; + import com.onfido.android.sdk.capture.DocumentType; +@@ -23,7 +22,6 @@ import com.onfido.android.sdk.capture.errors.EnterpriseFeatureNotEnabledExceptio + import com.onfido.android.sdk.capture.errors.EnterpriseFeaturesInvalidLogoCobrandingException; + import com.onfido.android.sdk.capture.ui.camera.face.FaceCaptureStep; + import com.onfido.android.sdk.capture.ui.camera.face.FaceCaptureVariantPhoto; +-import com.onfido.android.sdk.capture.ui.camera.face.FaceCaptureVariantVideo; + import com.onfido.android.sdk.capture.ui.camera.face.stepbuilder.FaceCaptureStepBuilder; + import com.onfido.android.sdk.capture.ui.camera.face.stepbuilder.PhotoCaptureStepBuilder; + import com.onfido.android.sdk.capture.ui.camera.face.stepbuilder.VideoCaptureStepBuilder; +@@ -43,7 +41,10 @@ enum CallbackType { + MEDIA + } + +-public class OnfidoSdkModule extends ReactContextBaseJavaModule { ++@ReactModule(name = OnfidoSdkModule.NAME) ++public class OnfidoSdkModule extends NativeOnfidoModuleSpec { ++ ++ public static final String NAME = "RNOnfidoSdk"; + + /* package */ final Onfido client; + private Promise currentPromise = null; +@@ -70,7 +71,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + + @Override + public String getName() { +- return "OnfidoSdk"; ++ return NAME; + } + + /** +@@ -81,6 +82,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + + @ReactMethod ++ @Override + public void start(final ReadableMap config, final Promise promise) { + + setPromise(promise); +@@ -147,7 +149,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + + OnfidoTheme onfidoTheme = getThemeFromConfig(config); +- if(onfidoTheme != null){ ++ if (onfidoTheme != null) { + onfidoConfigBuilder.withTheme(onfidoTheme); + } + +@@ -184,7 +186,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + + OnfidoTheme onfidoTheme = getThemeFromConfig(config); +- if(onfidoTheme != null){ ++ if (onfidoTheme != null) { + onfidoConfigBuilder.withTheme(onfidoTheme); + } + +@@ -237,9 +239,9 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + return config.hasKey(key) ? config.getString(key) : ""; + } + +- public static OnfidoTheme getThemeFromConfig(final ReadableMap config) throws Exception{ ++ public static OnfidoTheme getThemeFromConfig(final ReadableMap config) throws Exception { + String themeString = config.getString("theme"); +- if(themeString == null){ ++ if (themeString == null) { + return null; + } + OnfidoTheme onfidoTheme; +@@ -252,12 +254,18 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + return onfidoTheme; + } + ++ /* ++ (!) Please note that flow steps must be presented in a specific order, one which is also ++ implemented in the native SDKs, as well as in the iOS RN SDK. ++ ++ As per the Product indications in https://onfido.atlassian.net/browse/SDK-2390, this order ++ should be: Welcome->Doc->POA->Bio ++ */ + public static FlowStep[] getFlowStepsFromConfig( + final ReadableMap config, + OnfidoConfig.Builder configBuilder + ) throws Exception { + try { +- + final ReadableMap flowSteps = config.getMap("flowSteps"); + + final boolean welcomePageIsIncluded; +@@ -268,11 +276,12 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + + final boolean proofOfAddress; +- if(flowSteps.hasKey("proofOfAddress")){ ++ if (flowSteps.hasKey("proofOfAddress")) { + proofOfAddress = flowSteps.getBoolean("proofOfAddress"); +- }else{ ++ } else { + proofOfAddress = false; + } ++ + final List flowStepList = new ArrayList<>(); + + if (welcomePageIsIncluded) { +@@ -283,6 +292,10 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + extractCaptureDocumentStep(flowSteps, flowStepList, configBuilder); + } + ++ if (proofOfAddress) { ++ flowStepList.add(FlowStep.PROOF_OF_ADDRESS); ++ } ++ + final boolean captureFaceEnabled = flowSteps.hasKey("captureFace"); + final ReadableMap captureFace = captureFaceEnabled ? flowSteps.getMap("captureFace") : null; + +@@ -301,7 +314,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + flowStepList.add(faceStepFromMotionDefinition(captureFace)); + break; + default: +- throw new Exception("Invalid face capture type. \"type\" must be VIDEO or PHOTO."); ++ throw new Exception("Invalid face capture type. \"type\" must be VIDEO or PHOTO."); + } + } else { + // Default face capture type is photo. +@@ -309,12 +322,7 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + } + +- if(proofOfAddress){ +- flowStepList.add(FlowStep.PROOF_OF_ADDRESS); +- } +- + final FlowStep[] flowStepsWithOptions = flowStepList.toArray(new FlowStep[0]); +- + return flowStepsWithOptions; + } catch (final Exception e) { + e.printStackTrace(); +@@ -328,29 +336,10 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + List flowStepList, + OnfidoConfig.Builder configBuilder + ) throws Exception { +- ReadableMap captureDocument = null; +- Boolean captureDocumentBoolean = null; +- +- // ReadableMap does not have a way to get multi-typed values without throwing exceptions. +- try { +- captureDocumentBoolean = flowSteps.getBoolean("captureDocument"); +- } catch (final NoSuchKeyException | +- ClassCastException | +- UnexpectedNativeTypeException notFoundException) { +- captureDocument = flowSteps.getMap("captureDocument"); +- } +- +- if (captureDocumentBoolean != null) { +- if (captureDocumentBoolean) { +- flowStepList.add(FlowStep.CAPTURE_DOCUMENT); +- } +- return; +- } +- ++ ReadableMap captureDocument = flowSteps.getMap("captureDocument"); + if (captureDocument == null) { + return; + } +- + extractDocumentCaptureDetails(captureDocument, flowStepList, configBuilder); + } + +@@ -361,35 +350,46 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + ) throws Exception { + final boolean docTypeExists = captureDocument.hasKey("docType"); + final boolean countryCodeExists = captureDocument.hasKey("alpha2CountryCode"); +- final boolean allowedDocumentTypes = captureDocument.hasKey("allowedDocumentTypes"); ++ final boolean withAllowedDocumentTypes = captureDocument.hasKey("allowedDocumentTypes"); + +- if (allowedDocumentTypes && countryCodeExists && docTypeExists) { ++ // Validation: incorrect config - 2 filtering ways provided ++ if (withAllowedDocumentTypes && countryCodeExists && docTypeExists) { + throw new IllegalArgumentException("We can either filter the documents on DocumentSelection screen, or skip the selection and go directly to capture"); + } + +- if (!docTypeExists && !countryCodeExists && !allowedDocumentTypes) { ++ // Case 1: no filtering provided => showing general Doc Capture ++ if (!docTypeExists && !countryCodeExists && !withAllowedDocumentTypes) { + flowStepList.add(FlowStep.CAPTURE_DOCUMENT); + return; + } + ++ // Case 2: filtering for one document, one country + if (docTypeExists && countryCodeExists) { + extractDocTypeAndCountryForCaptureStep(captureDocument, flowStepList); + return; + } +- if (allowedDocumentTypes) { ++ ++ // Case 3: filtering for multiple documents ++ if (withAllowedDocumentTypes) { + extractAllowedDocumentTypes(captureDocument, configBuilder); ++ flowStepList.add(FlowStep.CAPTURE_DOCUMENT); + return; + } + + throw new Exception("For countryCode and docType: both must be specified, or both must be omitted."); + } + +- private static void extractAllowedDocumentTypes(ReadableMap captureDocument, OnfidoConfig.Builder configBuilder) { +- ReadableArray array = captureDocument.getArray("allowedDocumentTypes"); ++ private static void extractAllowedDocumentTypes( ++ ReadableMap captureDocument, ++ OnfidoConfig.Builder configBuilder ++ ) { ++ ReadableArray documentTypes = captureDocument.getArray("allowedDocumentTypes"); + ArrayList types = new ArrayList<>(); + +- for (int i = 0; i < array.size(); i++) { +- types.add(DocumentType.valueOf(array.getString(i))); ++ if (documentTypes != null) { ++ for (int i = 0; i < documentTypes.size(); i++) { ++ types.add(DocumentType.valueOf(documentTypes.getString(i))); ++ } + } + configBuilder.withAllowedDocumentTypes(types); + } +@@ -487,14 +487,14 @@ public class OnfidoSdkModule extends ReactContextBaseJavaModule { + } + + @ReactMethod +- public void removeListeners(int type) { ++ public void removeListeners(double type) { + // Keep: Required for RN build in the Event Emitter Calls + } + + private void sendEvent(String name, WritableMap map) { + getReactApplicationContext() +- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) +- .emit(name, map); ++ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) ++ .emit(name, map); + } + + //region Media +diff --git a/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkPackage.java b/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkPackage.java +index 35c0ee6..16469e2 100644 +--- a/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkPackage.java ++++ b/node_modules/@onfido/react-native-sdk/android/src/main/java/com/onfido/reactnative/sdk/OnfidoSdkPackage.java +@@ -1,23 +1,90 @@ + package com.onfido.reactnative.sdk; + ++import androidx.annotation.Nullable; ++ + import java.util.Arrays; + import java.util.Collections; ++import java.util.HashMap; + import java.util.List; ++import java.util.Map; + +-import com.facebook.react.ReactPackage; ++import com.facebook.react.TurboReactPackage; + import com.facebook.react.bridge.NativeModule; + import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.module.annotations.ReactModule; ++import com.facebook.react.module.annotations.ReactModuleList; ++import com.facebook.react.module.model.ReactModuleInfo; ++import com.facebook.react.module.model.ReactModuleInfoProvider; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; + import com.facebook.react.uimanager.ViewManager; +-import com.facebook.react.bridge.JavaScriptModule; + +-public class OnfidoSdkPackage implements ReactPackage { ++@ReactModuleList( ++ nativeModules = { ++ OnfidoSdkModule.class ++ } ++) ++public class OnfidoSdkPackage extends TurboReactPackage { + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new OnfidoSdkModule(reactContext)); + } + ++ @Nullable ++ @Override ++ public NativeModule getModule(String name, ReactApplicationContext reactApplicationContext) { ++ switch (name) { ++ case OnfidoSdkModule.NAME: ++ return new OnfidoSdkModule(reactApplicationContext); ++ default: ++ return null; ++ } ++ } ++ + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } ++ ++ @Override ++ public ReactModuleInfoProvider getReactModuleInfoProvider() { ++ try { ++ Class reactModuleInfoProviderClass = ++ Class.forName("com.onfido.reactnative.sdk.OnfidoSdkPackage$$ReactModuleInfoProvider"); ++ return (ReactModuleInfoProvider) reactModuleInfoProviderClass.newInstance(); ++ } catch (ClassNotFoundException e) { ++ // ReactModuleSpecProcessor does not run at build-time. Create this ReactModuleInfoProvider by ++ // hand. ++ return new ReactModuleInfoProvider() { ++ @Override ++ public Map getReactModuleInfos() { ++ final Map reactModuleInfoMap = new HashMap<>(); ++ ++ Class[] moduleList = ++ new Class[] { ++ OnfidoSdkModule.class, ++ }; ++ ++ for (Class moduleClass : moduleList) { ++ ReactModule reactModule = moduleClass.getAnnotation(ReactModule.class); ++ ++ reactModuleInfoMap.put( ++ reactModule.name(), ++ new ReactModuleInfo( ++ reactModule.name(), ++ moduleClass.getName(), ++ reactModule.canOverrideExistingModule(), ++ reactModule.needsEagerInit(), ++ reactModule.hasConstants(), ++ reactModule.isCxxModule(), ++ TurboModule.class.isAssignableFrom(moduleClass))); ++ } ++ ++ return reactModuleInfoMap; ++ } ++ }; ++ } catch (InstantiationException | IllegalAccessException e) { ++ throw new RuntimeException( ++ "No ReactModuleInfoProvider for com.onfido.reactnative.sdk.OnfidoSdkPackage$$ReactModuleInfoProvider", e); ++ } ++ } + } +diff --git a/node_modules/@onfido/react-native-sdk/android/src/paper/java/com/onfido/reactnative/sdk/NativeOnfidoModuleSpec.java b/node_modules/@onfido/react-native-sdk/android/src/paper/java/com/onfido/reactnative/sdk/NativeOnfidoModuleSpec.java +new file mode 100644 +index 0000000..16e880e +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/android/src/paper/java/com/onfido/reactnative/sdk/NativeOnfidoModuleSpec.java +@@ -0,0 +1,52 @@ ++ ++/** ++ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++ * ++ * Do not edit this file as changes may cause incorrect behavior and will be lost ++ * once the code is regenerated. ++ * ++ * @generated by codegen project: GenerateModuleJavaSpec.js ++ * ++ * @nolint ++ */ ++ ++package com.onfido.reactnative.sdk; ++ ++import com.facebook.proguard.annotations.DoNotStrip; ++import com.facebook.react.bridge.Promise; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.ReactContextBaseJavaModule; ++import com.facebook.react.bridge.ReactMethod; ++import com.facebook.react.bridge.ReactModuleWithSpec; ++import com.facebook.react.bridge.ReadableMap; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; ++import javax.annotation.Nonnull; ++ ++public abstract class NativeOnfidoModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { ++ public static final String NAME = "RNOnfidoSdk"; ++ ++ public NativeOnfidoModuleSpec(ReactApplicationContext reactContext) { ++ super(reactContext); ++ } ++ ++ @Override ++ public @Nonnull String getName() { ++ return NAME; ++ } ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void start(ReadableMap config, Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void withMediaCallbacksEnabled(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void addListener(String eventName); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void removeListeners(double count); ++} +diff --git a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk-Bridging-Header.h b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk-Bridging-Header.h +index ebf12f6..9acdb99 100644 +--- a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk-Bridging-Header.h ++++ b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk-Bridging-Header.h +@@ -3,4 +3,4 @@ + // + + #import +-#import ++#import "PluginMetadata.h" +diff --git a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.m b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.m +deleted file mode 100644 +index 328de71..0000000 +--- a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.m ++++ /dev/null +@@ -1,14 +0,0 @@ +-#import +-#import +-#import +-@interface RCT_EXTERN_MODULE(OnfidoSdk, RCTEventEmitter) +- +-RCT_EXTERN_METHOD( +- start:(NSDictionary *)config +- resolver:(RCTPromiseResolveBlock)resolve +- rejecter:(RCTPromiseRejectBlock)reject +-) +-RCT_EXTERN_METHOD(supportedEvents) +-RCT_EXTERN_METHOD(withMediaCallbacksEnabled) +- +-@end +diff --git a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.swift b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.swift +index 3829c99..e8788f0 100644 +--- a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.swift ++++ b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.swift +@@ -14,24 +14,31 @@ private enum CallbackType { + } + + @objc(OnfidoSdk) +-final class OnfidoSdk: RCTEventEmitter { ++public final class OnfidoSdk: NSObject { + + private let onfidoFlowBuilder = OnfidoFlowBuilder() + private let configParser = OnfidoConfigParser() + private var callbackTypes: [CallbackType] = [] + + @objc +- func start(_ config: NSDictionary, +- resolver resolve: @escaping RCTPromiseResolveBlock, +- rejecter reject: @escaping RCTPromiseRejectBlock) { ++ public var mediaCallbackHandler: (([String: Any]) -> Void)? ++ ++ // TODO: Using React types here (RCTPromiseResolveBlock and RCTPromiseRejectBlock) causes the project to fail to build. ++ // For some reason marking them as @escaping causes the XCode to add an import to non-existent header file in onfido_react_native_sdk-Swift.h. ++ @objc ++ public func start(_ config: NSDictionary, ++ resolver resolve: @escaping (Any) -> Void, ++ rejecter reject: @escaping (String, String, Error?) -> Void) -> Void { + DispatchQueue.main.async { [weak self] in + self?.run(withConfig: config, resolver: resolve, rejecter: reject) + } + } + ++ // TODO: Same as above + private func run(withConfig config: NSDictionary, +- resolver resolve: @escaping RCTPromiseResolveBlock, +- rejecter reject: @escaping RCTPromiseRejectBlock) { ++ resolver resolve: @escaping (Any) -> Void, ++ rejecter reject: @escaping (String, String, Error?) -> Void) { ++ + do { + let onfidoConfig: OnfidoPluginConfig = try configParser.parse(config) + +@@ -90,27 +97,17 @@ final class OnfidoSdk: RCTEventEmitter { + } + } + +- // MARK: - Callbacks +- +- @objc +- public override func supportedEvents() -> [String] { +- return ["onfidoMediaCallback"] +- } +- +- @objc +- override static func requiresMainQueueSetup() -> Bool { +- return false +- } +- + // MARK: Media + + @objc +- func withMediaCallbacksEnabled() { ++ public func withMediaCallbacksEnabled() { + callbackTypes.append(.media) + } + + private func processMediaResult(_ dictionary: [String: Any]) { +- sendEvent(withName: "onfidoMediaCallback", body: dictionary) ++ if let handler = mediaCallbackHandler { ++ handler(dictionary) ++ } + } + } + +diff --git a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.xcodeproj/project.pbxproj b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.xcodeproj/project.pbxproj +index e87f422..7958454 100644 +--- a/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.xcodeproj/project.pbxproj ++++ b/node_modules/@onfido/react-native-sdk/ios/OnfidoSdk.xcodeproj/project.pbxproj +@@ -65,6 +65,8 @@ + 8517ACCD244290D10077E909 /* OnfidoSdkTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnfidoSdkTests.swift; sourceTree = ""; }; + 899A7F1B3979E0BB4044B867 /* libPods-OnfidoSdk-OnfidoSdkTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OnfidoSdk-OnfidoSdkTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8B8E5FE3BDE0C9C96B5FE8AB /* Pods-OnfidoSdk.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OnfidoSdk.debug.xcconfig"; path = "Target Support Files/Pods-OnfidoSdk/Pods-OnfidoSdk.debug.xcconfig"; sourceTree = ""; }; ++ 9B55F4FF2B61451700EC4D80 /* PluginMetadata.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PluginMetadata.m; sourceTree = ""; }; ++ 9B55F5002B61451700EC4D80 /* PluginMetadata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PluginMetadata.h; sourceTree = ""; }; + 9BF206B12A3C839F00766D77 /* CallbackReceiver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallbackReceiver.swift; sourceTree = ""; }; + 9BF206B22A3C839F00766D77 /* BridgeUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BridgeUtils.swift; sourceTree = ""; }; + 9BF206B32A3C839F00766D77 /* OnfidoAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnfidoAppearance.swift; sourceTree = ""; }; +@@ -138,6 +140,8 @@ + 3AFE501B2408521F00E21479 /* OnfidoSdk-Bridging-Header.h */, + B3E7B5881CC2AC0600A0062D /* OnfidoSdk.h */, + B3E7B5891CC2AC0600A0062D /* OnfidoSdk.m */, ++ 9B55F5002B61451700EC4D80 /* PluginMetadata.h */, ++ 9B55F4FF2B61451700EC4D80 /* PluginMetadata.m */, + 3A9D42CA2412EEF50087A331 /* OnfidoSdkTests */, + 134814211AA4EA7D00B7C361 /* Products */, + 4A3724A27399FEFCC7B1F920 /* Pods */, +diff --git a/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.h b/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.h +new file mode 100644 +index 0000000..c263983 +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.h +@@ -0,0 +1,10 @@ ++#import ++ ++NS_ASSUME_NONNULL_BEGIN ++ ++@interface PluginMetadata : NSObject ++@property (nonatomic, readonly) NSString* pluginPlatform; ++@property (nonatomic, readonly) NSString* pluginVersion; ++@end ++ ++NS_ASSUME_NONNULL_END +diff --git a/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.m b/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.m +new file mode 100644 +index 0000000..3f9109e +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.m +@@ -0,0 +1,15 @@ ++#import "PluginMetadata.h" ++ ++@implementation PluginMetadata ++ ++- (instancetype)init ++{ ++ self = [super init]; ++ if (self) { ++ _pluginPlatform = @"react-native"; ++ _pluginVersion = @"10.7.0"; ++ } ++ return self; ++} ++ ++@end +diff --git a/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.swift b/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.swift +deleted file mode 100644 +index 9e2b0fc..0000000 +--- a/node_modules/@onfido/react-native-sdk/ios/PluginMetadata.swift ++++ /dev/null +@@ -1,11 +0,0 @@ +-// +-// PluginMetadata.swift +-// +-// Copyright © 2016-2023 Onfido. All rights reserved. +-// +- +-@objcMembers +-final class PluginMetadata: NSObject { +- let pluginPlatform = "react-native" +- let pluginVersion = "10.6.0" +-} +diff --git a/node_modules/@onfido/react-native-sdk/ios/Podfile b/node_modules/@onfido/react-native-sdk/ios/Podfile +index 8fc621f..38b66d9 100644 +--- a/node_modules/@onfido/react-native-sdk/ios/Podfile ++++ b/node_modules/@onfido/react-native-sdk/ios/Podfile +@@ -27,7 +27,7 @@ flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : Flip + # end + + target 'OnfidoSdk' do +- pod 'Onfido', '~> 29.6.0' ++ pod 'Onfido', '~> 29.7.0' + + config = use_native_modules! + use_react_native!( +@@ -41,6 +41,17 @@ target 'OnfidoSdk' do + target 'OnfidoSdkTests' do + # inherit! :search_paths + # Pods for testing ++ end + ++ # unary_function and binary_function are no longer provided in C++17 and newer standard modes as part of Xcode 15. ++ # They can be re-enabled with setting _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION ++ # Ref: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#Deprecations ++ # Solution: https://github.com/facebook/react-native/issues/37748#issuecomment-1580589448 ++ post_install do |installer| ++ installer.pods_project.targets.each do |target| ++ target.build_configurations.each do |config| ++ config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION'] ++ end ++ end + end + end +diff --git a/node_modules/@onfido/react-native-sdk/ios/Podfile.lock b/node_modules/@onfido/react-native-sdk/ios/Podfile.lock +index 87765b9..46aa9fb 100644 +--- a/node_modules/@onfido/react-native-sdk/ios/Podfile.lock ++++ b/node_modules/@onfido/react-native-sdk/ios/Podfile.lock +@@ -519,11 +519,11 @@ EXTERNAL SOURCES: + + SPEC CHECKSUMS: + boost: 57d2868c099736d80fcd648bf211b4431e51a558 +- DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de ++ DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 + FBLazyVector: 748c0ef74f2bf4b36cfcccf37916806940a64c32 + FBReactNativeSpec: 966f29e4e697de53a3b366355e8f57375c856ad9 + fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 +- glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 ++ glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b + Onfido: c52e797b10cc9e6d29ba91996cb62e501000bfdd + RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 + RCTRequired: 28469809442eb4eb5528462705f7d852948c8a74 +@@ -560,6 +560,6 @@ SPEC CHECKSUMS: + SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 + Yoga: b76f1acfda8212aa16b7e26bcce3983230c82603 + +-PODFILE CHECKSUM: ee04850b32b0f021f8e865806f0d8fc273717178 ++PODFILE CHECKSUM: b0afaaafeb2272120df31de2529a6e679929c7c5 + + COCOAPODS: 1.14.3 +diff --git a/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.h b/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.h +new file mode 100644 +index 0000000..3b65b7a +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.h +@@ -0,0 +1,16 @@ ++#import ++#import ++#import ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++ ++#import ++@interface RNOnfidoSdk : RCTEventEmitter ++ ++#else ++ ++@interface RNOnfidoSdk : RCTEventEmitter ++ ++#endif ++ ++@end +diff --git a/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.mm b/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.mm +new file mode 100644 +index 0000000..4d21970 +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/ios/RNOnfidoSdk.mm +@@ -0,0 +1,59 @@ ++#import "RNOnfidoSdk.h" ++#import ++ ++@implementation RNOnfidoSdk { ++ OnfidoSdk *_onfidoSdk; ++} ++ ++RCT_EXPORT_MODULE() ++ +++ (BOOL)requiresMainQueueSetup { ++ return NO; ++} ++ ++- (instancetype)init ++{ ++ if (!(self = [super init])) { ++ return nil; ++ } ++ ++ _onfidoSdk = [[OnfidoSdk alloc] init]; ++ ++ // capture weak self reference to prevent retain cycle ++ __weak __typeof__(self) weakSelf = self; ++ ++ _onfidoSdk.mediaCallbackHandler = ^(NSDictionary *data) { ++ __typeof__(self) strongSelf = weakSelf; ++ ++ if (strongSelf != nullptr) { ++ [strongSelf sendEventWithName:@"onfidoMediaCallback" body:data]; ++ } ++ }; ++ ++ return self; ++} ++ ++- (NSArray *)supportedEvents ++{ ++ return @[@"onfidoMediaCallback"]; ++} ++ ++RCT_EXPORT_METHOD(start:(NSDictionary *)config resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) ++{ ++ [_onfidoSdk start:config resolver:resolve rejecter:reject]; ++} ++ ++RCT_EXPORT_METHOD(withMediaCallbacksEnabled) ++{ ++ [_onfidoSdk withMediaCallbacksEnabled]; ++} ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++ ++- (std::shared_ptr)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { ++ return std::make_shared(params); ++} ++ ++#endif ++ ++@end +diff --git a/node_modules/@onfido/react-native-sdk/js/NativeOnfidoModule.ts b/node_modules/@onfido/react-native-sdk/js/NativeOnfidoModule.ts +new file mode 100644 +index 0000000..c48f86e +--- /dev/null ++++ b/node_modules/@onfido/react-native-sdk/js/NativeOnfidoModule.ts +@@ -0,0 +1,13 @@ ++import { TurboModuleRegistry, TurboModule } from "react-native"; ++import { Int32 } from 'react-native/Libraries/Types/CodegenTypes'; ++ ++export interface Spec extends TurboModule { ++ start(config: Object): Promise; ++ withMediaCallbacksEnabled(): void; ++ ++ // those two are here for event emitter methods ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++ ++export default TurboModuleRegistry.getEnforcing("RNOnfidoSdk"); +diff --git a/node_modules/@onfido/react-native-sdk/js/Onfido.ts b/node_modules/@onfido/react-native-sdk/js/Onfido.ts +index db35471..8bb6a57 100644 +--- a/node_modules/@onfido/react-native-sdk/js/Onfido.ts ++++ b/node_modules/@onfido/react-native-sdk/js/Onfido.ts +@@ -1,4 +1,4 @@ +-import {NativeModules, Platform, NativeEventEmitter} from 'react-native'; ++import {Platform, NativeEventEmitter} from 'react-native'; + import { + OnfidoAlpha2CountryCode, + OnfidoCaptureType, +@@ -11,11 +11,9 @@ import { + } from "./config_constants"; + import { Base64 } from 'js-base64'; + +-const {OnfidoSdk} = NativeModules; +- +-const OndifoSdkModule = NativeModules.OnfidoSdk +-const eventEmitter = new NativeEventEmitter(OndifoSdkModule) ++import OnfidoSdk from "./NativeOnfidoModule"; + ++const eventEmitter = new NativeEventEmitter(OnfidoSdk) + + const Onfido = { + start(config: OnfidoConfig): Promise { +@@ -93,7 +91,7 @@ const Onfido = { + return OnfidoSdk.start(config).catch((error: any) => { + console.log(error); + throw error; +- }); ++ }) as Promise; + }, + + addCustomMediaCallback(callback: (result: OnfidoMediaResult) => OnfidoMediaResult) { +diff --git a/node_modules/@onfido/react-native-sdk/onfido-react-native-sdk.podspec b/node_modules/@onfido/react-native-sdk/onfido-react-native-sdk.podspec +index a9de0d0..fcd6d14 100644 +--- a/node_modules/@onfido/react-native-sdk/onfido-react-native-sdk.podspec ++++ b/node_modules/@onfido/react-native-sdk/onfido-react-native-sdk.podspec +@@ -2,6 +2,8 @@ require "json" + + package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + ++fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' ++ + Pod::Spec.new do |s| + s.name = "onfido-react-native-sdk" + s.version = package["version"] +@@ -15,10 +17,15 @@ Pod::Spec.new do |s| + s.platforms = { :ios => "11.0" } + s.source = { :git => "https://github.com/onfido/react-native-sdk.git", :tag => "#{s.version}" } + +- s.source_files = "ios/**/*.{h,m,swift}" ++ s.source_files = "ios/**/*.{h,m,swift,mm}" + s.exclude_files = "ios/OnfidoSdkTests/" + s.requires_arc = true + +- s.dependency "React" +- s.dependency "Onfido", "~> 29.6.0" ++ s.dependency "Onfido", "~> 29.7.0" ++ ++ if defined?(install_modules_dependencies()) != nil ++ install_modules_dependencies(s) ++ else ++ s.dependency "React" ++ end + end +diff --git a/node_modules/@onfido/react-native-sdk/package.json b/node_modules/@onfido/react-native-sdk/package.json +index 50a331b..754c3c0 100644 +--- a/node_modules/@onfido/react-native-sdk/package.json ++++ b/node_modules/@onfido/react-native-sdk/package.json +@@ -24,7 +24,8 @@ + ], + "testPathIgnorePatterns": [ + "/TestApp", +- "/SampleApp" ++ "/SampleApp", ++ "/FabricSample" + ], + "globals": { + "__DEV__": true +@@ -82,6 +83,14 @@ + "react-native": "0.72.6", + "typescript": "^4.6.4" + }, ++ "codegenConfig": { ++ "name": "rnonfidosdk", ++ "type": "modules", ++ "jsSrcsDir": "./js", ++ "android": { ++ "javaPackageName": "com.onfido.reactnative.sdk" ++ } ++ }, + "dependencies": { + "js-base64": "3.7.5" + }, +diff --git a/node_modules/@onfido/react-native-sdk/scripts/update-integration-versions.sh b/node_modules/@onfido/react-native-sdk/scripts/update-integration-versions.sh +index 49f9d4c..1b9f304 100755 +--- a/node_modules/@onfido/react-native-sdk/scripts/update-integration-versions.sh ++++ b/node_modules/@onfido/react-native-sdk/scripts/update-integration-versions.sh +@@ -2,16 +2,16 @@ + + PROJ_DIR=. + MANIFEST_FILE=${PROJ_DIR}/android/src/main/AndroidManifest.xml +-IOS_PLUGIN_FILE=${PROJ_DIR}/ios/PluginMetadata.swift ++IOS_PLUGIN_FILE=${PROJ_DIR}/ios/PluginMetadata.m + + update_manifest() + { +- sed -i -e "s/android:value=\"[0-9]*\.[0-9]*\.[0-9]*\"/android:value=\"$2\"/g" $1 ++ sed -i '' -e "s/android:value=\"[0-9]*\.[0-9]*\.[0-9]*\"/android:value=\"$2\"/g" $1 + } + + update_plugin_file() + { +- sed -i -e "s/pluginVersion = \"[0-9]*\.[0-9]*\.[0-9]*\"/pluginVersion = \"$2\"/g" $1 ++ sed -i '' -e "s/_pluginVersion = @\"[0-9]*\.[0-9]*\.[0-9]*\"/_pluginVersion = @\"$2\"/g" $1 + } + + update_manifest ${MANIFEST_FILE} $PACKAGE_VERSION diff --git a/patches/@react-native+gradle-plugin+0.73.4.patch b/patches/@react-native+gradle-plugin+0.73.4.patch new file mode 100644 index 000000000000..680de81743e7 --- /dev/null +++ b/patches/@react-native+gradle-plugin+0.73.4.patch @@ -0,0 +1,21 @@ +diff --git a/node_modules/@react-native/gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt b/node_modules/@react-native/gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt +index f3b55e0..5ca7316 100644 +--- a/node_modules/@react-native/gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt ++++ b/node_modules/@react-native/gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt +@@ -45,15 +45,9 @@ abstract class PreparePrefabHeadersTask : DefaultTask() { + fs.copy { + it.from(headerPath) + it.include("**/*.h") ++ it.include("**/*.hpp") + it.exclude("**/*.cpp") + it.exclude("**/*.txt") +- // We don't want to copy all the boost headers as they are 250Mb+ +- it.include("boost/config.hpp") +- it.include("boost/config/**/*.hpp") +- it.include("boost/core/*.hpp") +- it.include("boost/detail/workaround.hpp") +- it.include("boost/operators.hpp") +- it.include("boost/preprocessor/**/*.hpp") + it.into(File(outputFolder.asFile, headerPrefix)) + } + } diff --git a/patches/@react-native-community+cli-platform-android+12.3.0.patch b/patches/@react-native-community+cli-platform-android+12.3.2.patch similarity index 100% rename from patches/@react-native-community+cli-platform-android+12.3.0.patch rename to patches/@react-native-community+cli-platform-android+12.3.2.patch diff --git a/patches/@react-native-community+cli-platform-ios+12.3.0.patch b/patches/@react-native-community+cli-platform-ios+12.3.2.patch similarity index 100% rename from patches/@react-native-community+cli-platform-ios+12.3.0.patch rename to patches/@react-native-community+cli-platform-ios+12.3.2.patch diff --git a/patches/@react-native-community+geolocation+3.1.0.patch b/patches/@react-native-community+geolocation+3.1.0.patch new file mode 100644 index 000000000000..5afa0b8e0897 --- /dev/null +++ b/patches/@react-native-community+geolocation+3.1.0.patch @@ -0,0 +1,38 @@ +diff --git a/node_modules/@react-native-community/geolocation/react-native-geolocation.podspec b/node_modules/@react-native-community/geolocation/react-native-geolocation.podspec +index a319e73..c1ea11c 100644 +--- a/node_modules/@react-native-community/geolocation/react-native-geolocation.podspec ++++ b/node_modules/@react-native-community/geolocation/react-native-geolocation.podspec +@@ -1,8 +1,6 @@ + require 'json' + + package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) +-folly_version = '2021.07.22.00' +-folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' + + Pod::Spec.new do |s| + s.name = "react-native-geolocation" +@@ -17,20 +15,11 @@ Pod::Spec.new do |s| + s.source = { :git => "https://github.com/react-native-community/react-native-geolocation.git", :tag => "v#{s.version}" } + s.source_files = "ios/**/*.{h,m,mm}" + +- s.dependency 'React-Core' + s.frameworks = 'CoreLocation' + +- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then +- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" +- s.pod_target_xcconfig = { +- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", +- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" +- } +- +- s.dependency "React-Codegen" +- s.dependency "RCT-Folly", folly_version +- s.dependency "RCTRequired" +- s.dependency "RCTTypeSafety" +- s.dependency "ReactCommon/turbomodule/core" ++ if defined?(install_modules_dependencies()) != nil ++ install_modules_dependencies(s) ++ else ++ s.dependency "React-Core" + end + end diff --git a/patches/@react-native-community+netinfo+11.2.1+001+initial.patch b/patches/@react-native-community+netinfo+11.2.1+001+initial.patch new file mode 100644 index 000000000000..9a5b031c6dc1 --- /dev/null +++ b/patches/@react-native-community+netinfo+11.2.1+001+initial.patch @@ -0,0 +1,8 @@ +diff --git a/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java b/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java +similarity index 100% +rename from node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModule.java +rename to node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java +diff --git a/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.m b/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm +similarity index 100% +rename from node_modules/@react-native-community/netinfo/ios/RNCNetInfo.m +rename to node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm diff --git a/patches/@react-native-community+netinfo+11.2.1+002+turbomodule.patch b/patches/@react-native-community+netinfo+11.2.1+002+turbomodule.patch new file mode 100644 index 000000000000..f8e171008e14 --- /dev/null +++ b/patches/@react-native-community+netinfo+11.2.1+002+turbomodule.patch @@ -0,0 +1,3065 @@ +diff --git a/node_modules/@react-native-community/netinfo/android/build.gradle b/node_modules/@react-native-community/netinfo/android/build.gradle +index 0d617ed..e93d64a 100644 +--- a/node_modules/@react-native-community/netinfo/android/build.gradle ++++ b/node_modules/@react-native-community/netinfo/android/build.gradle +@@ -3,9 +3,10 @@ buildscript { + // This avoids unnecessary downloads and potential conflicts when the library is included as a + // module dependency in an application project. + if (project == rootProject) { +- repositories { +- google() +- mavenCentral() ++ repositories { ++ google() ++ mavenCentral() ++ gradlePluginPortal() + } + + dependencies { +@@ -26,8 +27,54 @@ def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['ReactNativeNetInfo_' + name]).toInteger() + } + ++def isNewArchitectureEnabled() { ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} ++ ++def resolveReactNativeDirectory() { ++ def reactNativeLocation = getExtOrInitialValue("REACT_NATIVE_NODE_MODULES_DIR", null) ++ if (reactNativeLocation != null) { ++ return file(reactNativeLocation) ++ } ++ ++ // monorepo workaround ++ // react-native can be hoisted or in project's own node_modules ++ def reactNativeFromProjectNodeModules = file("${rootProject.projectDir}/../node_modules/react-native") ++ if (reactNativeFromProjectNodeModules.exists()) { ++ return reactNativeFromProjectNodeModules ++ } ++ ++ def reactNativeFromNodeModulesWithRNCNetInfo = file("${projectDir}/../../react-native") ++ if (reactNativeFromNodeModulesWithRNCNetInfo.exists()) { ++ return reactNativeFromNodeModulesWithRNCNetInfo ++ } ++ ++ throw new Exception( ++ "[react-native-netinfo] Unable to resolve react-native location in " + ++ "node_modules. You should add project extension property (in app/build.gradle) " + ++ "`REACT_NATIVE_NODE_MODULES_DIR` with path to react-native." ++ ) ++} ++ ++def getReactNativeMinorVersion() { ++ def REACT_NATIVE_DIR = resolveReactNativeDirectory() ++ ++ def reactProperties = new Properties() ++ file("$REACT_NATIVE_DIR/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) } ++ ++ def REACT_NATIVE_VERSION = reactProperties.getProperty("VERSION_NAME") ++ def REACT_NATIVE_MINOR_VERSION = REACT_NATIVE_VERSION.startsWith("0.0.0-") ? 1000 : REACT_NATIVE_VERSION.split("\\.")[1].toInteger() ++ ++ return REACT_NATIVE_MINOR_VERSION ++} ++ ++ + apply plugin: 'com.android.library' + ++if (isNewArchitectureEnabled()) { ++ apply plugin: 'com.facebook.react' ++} ++ + android { + compileSdkVersion getExtOrIntegerDefault('compileSdkVersion') + +@@ -45,10 +92,21 @@ android { + defaultConfig { + minSdkVersion getExtOrIntegerDefault('minSdkVersion') + targetSdkVersion getExtOrIntegerDefault('targetSdkVersion') ++ buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()) ++ } ++ sourceSets { ++ main { ++ if (isNewArchitectureEnabled()) { ++ java.srcDirs += ['src/newarch'] ++ } else { ++ java.srcDirs += ['src/oldarch'] ++ } ++ } + } + lintOptions{ + abortOnError false + } ++ + } + + repositories { +@@ -63,6 +121,9 @@ repositories { + + dependencies { + //noinspection GradleDynamicVersion +- implementation 'com.facebook.react:react-native:+' +- ++ if (isNewArchitectureEnabled() && getReactNativeMinorVersion() < 71) { ++ implementation project(":ReactAndroid") ++ } else { ++ implementation 'com.facebook.react:react-native:+' ++ } + } +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java b/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java +index 2c3280b..296bbfd 100644 +--- a/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java ++++ b/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoModuleImpl.java +@@ -9,13 +9,11 @@ package com.reactnativecommunity.netinfo; + import android.os.Build; + import com.facebook.react.bridge.Promise; + import com.facebook.react.bridge.ReactApplicationContext; +-import com.facebook.react.bridge.ReactContextBaseJavaModule; + import com.facebook.react.bridge.ReactMethod; + import com.facebook.react.module.annotations.ReactModule; + + /** Module that monitors and provides information about the connectivity state of the device. */ +-@ReactModule(name = NetInfoModule.NAME) +-public class NetInfoModule extends ReactContextBaseJavaModule implements AmazonFireDeviceConnectivityPoller.ConnectivityChangedCallback { ++public class NetInfoModuleImpl implements AmazonFireDeviceConnectivityPoller.ConnectivityChangedCallback { + public static final String NAME = "RNCNetInfo"; + + private final ConnectivityReceiver mConnectivityReceiver; +@@ -23,8 +21,7 @@ public class NetInfoModule extends ReactContextBaseJavaModule implements AmazonF + + private int numberOfListeners = 0; + +- public NetInfoModule(ReactApplicationContext reactContext) { +- super(reactContext); ++ public NetInfoModuleImpl(ReactApplicationContext reactContext) { + // Create the connectivity receiver based on the API level we are running on + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + mConnectivityReceiver = new NetworkCallbackConnectivityReceiver(reactContext); +@@ -35,23 +32,17 @@ public class NetInfoModule extends ReactContextBaseJavaModule implements AmazonF + mAmazonConnectivityChecker = new AmazonFireDeviceConnectivityPoller(reactContext, this); + } + +- @Override ++ + public void initialize() { + mConnectivityReceiver.register(); + mAmazonConnectivityChecker.register(); + } + +- @Override + public void onCatalystInstanceDestroy() { + mAmazonConnectivityChecker.unregister(); + mConnectivityReceiver.unregister(); +- mConnectivityReceiver.hasListener = false; + } + +- @Override +- public String getName() { +- return NAME; +- } + + @ReactMethod + public void getCurrentState(final String requestedInterface, final Promise promise) { +@@ -63,14 +54,14 @@ public class NetInfoModule extends ReactContextBaseJavaModule implements AmazonF + mConnectivityReceiver.setIsInternetReachableOverride(isConnected); + } + +- @ReactMethod ++ + public void addListener(String eventName) { + numberOfListeners++; + mConnectivityReceiver.hasListener = true; + } + +- @ReactMethod +- public void removeListeners(Integer count) { ++ ++ public void removeListeners(double count) { + numberOfListeners -= count; + if (numberOfListeners == 0) { + mConnectivityReceiver.hasListener = false; +diff --git a/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoPackage.java b/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoPackage.java +index fcd4a5e..1bf0b62 100644 +--- a/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoPackage.java ++++ b/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/NetInfoPackage.java +@@ -1,34 +1,46 @@ +-/** +- * Copyright (c) Facebook, Inc. and its affiliates. +- * +- * This source code is licensed under the MIT license found in the +- * LICENSE file in the root directory of this source tree. +- */ + package com.reactnativecommunity.netinfo; + +-import com.facebook.react.ReactPackage; +-import com.facebook.react.bridge.JavaScriptModule; ++import androidx.annotation.Nullable; + import com.facebook.react.bridge.NativeModule; + import com.facebook.react.bridge.ReactApplicationContext; +-import com.facebook.react.uimanager.ViewManager; +-import java.util.Arrays; ++import com.facebook.react.module.model.ReactModuleInfo; ++import com.facebook.react.module.model.ReactModuleInfoProvider; ++import com.facebook.react.TurboReactPackage; ++ + import java.util.Collections; ++import java.util.HashMap; + import java.util.List; ++import java.util.Map; + +-public class NetInfoPackage implements ReactPackage { +- @Override +- public List createNativeModules(ReactApplicationContext reactContext) { +- return Arrays.asList(new NetInfoModule(reactContext)); +- } ++public class NetInfoPackage extends TurboReactPackage { + +- // Deprecated from RN 0.47 +- public List> createJSModules() { +- return Collections.emptyList(); +- } ++ @Nullable ++ @Override ++ public NativeModule getModule(String name, ReactApplicationContext reactContext) { ++ if (name.equals(NetInfoModuleImpl.NAME)) { ++ return new NetInfoModule(reactContext); ++ } else { ++ return null; ++ } ++ } + +- @Override +- @SuppressWarnings("rawtypes") +- public List createViewManagers(ReactApplicationContext reactContext) { +- return Collections.emptyList(); +- } ++ @Override ++ public ReactModuleInfoProvider getReactModuleInfoProvider() { ++ return () -> { ++ final Map moduleInfos = new HashMap<>(); ++ boolean turboModulesEnabled = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; ++ moduleInfos.put( ++ NetInfoModuleImpl.NAME, ++ new ReactModuleInfo( ++ NetInfoModuleImpl.NAME, ++ NetInfoModuleImpl.NAME, ++ false, // canOverrideExistingModule ++ false, // needsEagerInit ++ true, // hasConstants ++ false, // isCxxModule ++ turboModulesEnabled // isTurboModule ++ )); ++ return moduleInfos; ++ }; ++ } + } +diff --git a/node_modules/@react-native-community/netinfo/android/src/newarch/com/reactnativecommunity/netinfo/NetInfoModule.java b/node_modules/@react-native-community/netinfo/android/src/newarch/com/reactnativecommunity/netinfo/NetInfoModule.java +new file mode 100644 +index 0000000..61e44c4 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/android/src/newarch/com/reactnativecommunity/netinfo/NetInfoModule.java +@@ -0,0 +1,51 @@ ++package com.reactnativecommunity.netinfo; ++ ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.Promise; ++import com.facebook.react.bridge.ReactMethod; ++import com.facebook.react.bridge.ReadableMap; ++ ++public class NetInfoModule extends NativeRNCNetInfoSpec { ++ ++ private NetInfoModuleImpl implementation; ++ ++ NetInfoModule(ReactApplicationContext context) { ++ super(context); ++ implementation = new NetInfoModuleImpl(context); ++ } ++ ++ @Override ++ public String getName() { ++ return NetInfoModuleImpl.NAME; ++ } ++ ++ @ReactMethod ++ public void getCurrentState(final String requestedInterface, final Promise promise) { ++ implementation.getCurrentState(requestedInterface, promise); ++ } ++ ++ @ReactMethod ++ public void configure(ReadableMap config) { ++ // iOS only ++ } ++ ++ @ReactMethod ++ public void addListener(String eventName) { ++ implementation.addListener(eventName); ++ } ++ ++ @ReactMethod ++ public void removeListeners(double count) { ++ implementation.removeListeners(count); ++ } ++ ++ @Override ++ public void onCatalystInstanceDestroy() { ++ implementation.onCatalystInstanceDestroy(); ++ } ++ ++ @Override ++ public void initialize() { ++ implementation.initialize(); ++ } ++} +diff --git a/node_modules/@react-native-community/netinfo/android/src/oldarch/com/reactnativecommunity/netinfo/NetInfoModule.java b/node_modules/@react-native-community/netinfo/android/src/oldarch/com/reactnativecommunity/netinfo/NetInfoModule.java +new file mode 100644 +index 0000000..4738d63 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/android/src/oldarch/com/reactnativecommunity/netinfo/NetInfoModule.java +@@ -0,0 +1,59 @@ ++ ++ ++package com.reactnativecommunity.netinfo; ++ ++import com.facebook.react.bridge.NativeModule; ++import com.facebook.react.bridge.Promise; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.ReactContext; ++import com.facebook.react.bridge.ReactContextBaseJavaModule; ++import com.facebook.react.bridge.ReactMethod; ++import java.util.Map; ++import java.util.HashMap; ++import com.facebook.react.bridge.ReadableMap; ++ ++public class NetInfoModule extends ReactContextBaseJavaModule { ++ ++ private NetInfoModuleImpl implementation; ++ ++ NetInfoModule(ReactApplicationContext context) { ++ super(context); ++ implementation = new NetInfoModuleImpl(context); ++ } ++ ++ @Override ++ public String getName() { ++ return NetInfoModuleImpl.NAME; ++ } ++ ++ @ReactMethod ++ public void getCurrentState(final String requestedInterface, final Promise promise) { ++ implementation.getCurrentState(requestedInterface, promise); ++ } ++ ++ @Override ++ public void onCatalystInstanceDestroy() { ++ implementation.onCatalystInstanceDestroy(); ++ } ++ ++ ++ @Override ++ public void initialize() { ++ implementation.initialize(); ++ } ++ ++ @ReactMethod ++ public void addListener(String eventName) { ++ implementation.addListener(eventName); ++ } ++ ++ @ReactMethod ++ public void configure(ReadableMap config) { ++ // iOS only ++ } ++ ++ @ReactMethod ++ public void removeListeners(double count) { ++ implementation.removeListeners(count); ++ } ++} +diff --git a/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm b/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm +index e83b8c4..be520d9 100644 +--- a/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm ++++ b/node_modules/@react-native-community/netinfo/ios/RNCNetInfo.mm +@@ -8,6 +8,10 @@ + #import "RNCNetInfo.h" + #import "RNCConnectionStateWatcher.h" + ++#ifdef RCT_NEW_ARCH_ENABLED ++#import "RNCNetInfoSpec.h" ++#endif ++ + #include + #include + +@@ -15,13 +19,18 @@ + #import + #import + #endif +-@import SystemConfiguration.CaptiveNetwork; ++#import ++ + + #import + #import + #import + ++#ifdef RCT_NEW_ARCH_ENABLED ++@interface RNCNetInfo () ++#else + @interface RNCNetInfo () ++#endif + + @property (nonatomic, strong) RNCConnectionStateWatcher *connectionStateWatcher; + @property (nonatomic) BOOL isObserving; +@@ -97,6 +106,7 @@ - (void)connectionStateWatcher:(RNCConnectionStateWatcher *)connectionStateWatch + resolve([self currentDictionaryFromUpdateState:state withInterface:requestedInterface]); + } + ++ + RCT_EXPORT_METHOD(configure:(NSDictionary *)config) + { + self.config = config; +@@ -265,4 +275,10 @@ - (NSString *)bssid + } + #endif + ++#ifdef RCT_NEW_ARCH_ENABLED ++- (std::shared_ptr)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { ++ return std::make_shared(params); ++} ++#endif ++ + @end +diff --git a/node_modules/@react-native-community/netinfo/jest/netinfo-mock.js b/node_modules/@react-native-community/netinfo/jest/netinfo-mock.js +index 7f5769c..99b1aa3 100644 +--- a/node_modules/@react-native-community/netinfo/jest/netinfo-mock.js ++++ b/node_modules/@react-native-community/netinfo/jest/netinfo-mock.js +@@ -14,18 +14,17 @@ const defaultState = { + }; + + const NetInfoStateType = { +- unknown: "unknown", +- none: "none", +- cellular: "cellular", +- wifi: "wifi", +- bluetooth: "bluetooth", +- ethernet: "ethernet", +- wimax: "wimax", +- vpn: "vpn", +- other: "other", ++ unknown: 'unknown', ++ none: 'none', ++ cellular: 'cellular', ++ wifi: 'wifi', ++ bluetooth: 'bluetooth', ++ ethernet: 'ethernet', ++ wimax: 'wimax', ++ vpn: 'vpn', ++ other: 'other', + }; + +- + const RNCNetInfoMock = { + NetInfoStateType, + configure: jest.fn(), +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/index.js b/node_modules/@react-native-community/netinfo/lib/commonjs/index.js +index f5afe24..8f06bc8 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/index.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/index.js +@@ -11,26 +11,19 @@ var _exportNames = { + useNetInfo: true, + useNetInfoInstance: true + }; ++exports.addEventListener = addEventListener; + exports.configure = configure; ++exports.default = void 0; + exports.fetch = fetch; + exports.refresh = refresh; +-exports.addEventListener = addEventListener; + exports.useNetInfo = useNetInfo; + exports.useNetInfoInstance = useNetInfoInstance; +-exports.default = void 0; +- + var _react = require("react"); +- + var _reactNative = require("react-native"); +- + var _defaultConfiguration = _interopRequireDefault(require("./internal/defaultConfiguration")); +- + var _nativeInterface = _interopRequireDefault(require("./internal/nativeInterface")); +- + var _state2 = _interopRequireDefault(require("./internal/state")); +- + var Types = _interopRequireWildcard(require("./internal/types")); +- + Object.keys(Types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; +@@ -42,13 +35,9 @@ Object.keys(Types).forEach(function (key) { + } + }); + }); +- +-function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +- +-function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +- ++function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } ++function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -57,14 +46,16 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de + * + * @format + */ ++ + // Stores the currently used configuration +-let _configuration = _defaultConfiguration.default; // Stores the singleton reference to the state manager ++let _configuration = _defaultConfiguration.default; + ++// Stores the singleton reference to the state manager + let _state = null; +- + const createState = () => { + return new _state2.default(_configuration); + }; ++ + /** + * Configures the library with the given configuration. Note that calling this will stop all + * previously added listeners from being called again. It is best to call this right when your +@@ -72,23 +63,20 @@ const createState = () => { + * + * @param configuration The new configuration to set. + */ +- +- + function configure(configuration) { +- _configuration = { ..._defaultConfiguration.default, ++ _configuration = { ++ ..._defaultConfiguration.default, + ...configuration + }; +- + if (_state) { + _state.tearDown(); +- + _state = createState(); + } +- + if (_reactNative.Platform.OS === 'ios') { + _nativeInterface.default.configure(configuration); + } + } ++ + /** + * Returns a `Promise` that resolves to a `NetInfoState` object. + * This function operates on the global singleton instance configured using `configure()` +@@ -97,29 +85,25 @@ function configure(configuration) { + * + * @returns A Promise which contains the current connection state. + */ +- +- + function fetch(requestedInterface) { + if (!_state) { + _state = createState(); + } +- + return _state.latest(requestedInterface); + } ++ + /** + * Force-refreshes the internal state of the global singleton managed by this library. + * + * @returns A Promise which contains the updated connection state. + */ +- +- + function refresh() { + if (!_state) { + _state = createState(); + } +- + return _state._fetchCurrentState(); + } ++ + /** + * Subscribe to the global singleton's connection information. The callback is called with a parameter of type + * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener +@@ -131,19 +115,16 @@ function refresh() { + * + * @returns A function which can be called to unsubscribe. + */ +- +- + function addEventListener(listener) { + if (!_state) { + _state = createState(); + } +- + _state.add(listener); +- + return () => { + _state && _state.remove(listener); + }; + } ++ + /** + * A React Hook into this library's singleton which updates when the connection state changes. + * +@@ -151,13 +132,10 @@ function addEventListener(listener) { + * + * @returns The connection state. + */ +- +- + function useNetInfo(configuration) { + if (configuration) { + configure(configuration); + } +- + const [netInfo, setNetInfo] = (0, _react.useState)({ + type: Types.NetInfoStateType.unknown, + isConnected: null, +@@ -169,6 +147,7 @@ function useNetInfo(configuration) { + }, []); + return netInfo; + } ++ + /** + * A React Hook which manages an isolated instance of the network info manager. + * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener, +@@ -178,8 +157,6 @@ function useNetInfo(configuration) { + * + * @returns the netInfo state and a refresh function + */ +- +- + function useNetInfoInstance(isPaused = false, configuration) { + const [networkInfoManager, setNetworkInfoManager] = (0, _react.useState)(); + const [netInfo, setNetInfo] = (0, _react.useState)({ +@@ -192,8 +169,8 @@ function useNetInfoInstance(isPaused = false, configuration) { + if (isPaused) { + return; + } +- +- const config = { ..._defaultConfiguration.default, ++ const config = { ++ ..._defaultConfiguration.default, + ...configuration + }; + const state = new _state2.default(config); +@@ -209,8 +186,7 @@ function useNetInfoInstance(isPaused = false, configuration) { + refresh + }; + } +- +-var _default = { ++var _default = exports.default = { + configure, + fetch, + refresh, +@@ -218,5 +194,4 @@ var _default = { + useNetInfo, + useNetInfoInstance + }; +-exports.default = _default; + //# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/index.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/index.js.map +index c778a40..51f1ed7 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/index.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.ts"],"names":["_configuration","DEFAULT_CONFIGURATION","_state","createState","State","configure","configuration","tearDown","Platform","OS","NativeInterface","fetch","requestedInterface","latest","refresh","_fetchCurrentState","addEventListener","listener","add","remove","useNetInfo","netInfo","setNetInfo","type","Types","NetInfoStateType","unknown","isConnected","isInternetReachable","details","useNetInfoInstance","isPaused","networkInfoManager","setNetworkInfoManager","config","state"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {useState, useEffect, useCallback} from 'react';\nimport {Platform} from 'react-native';\nimport DEFAULT_CONFIGURATION from './internal/defaultConfiguration';\nimport NativeInterface from './internal/nativeInterface';\nimport State from './internal/state';\nimport * as Types from './internal/types';\n\n// Stores the currently used configuration\nlet _configuration = DEFAULT_CONFIGURATION;\n\n// Stores the singleton reference to the state manager\nlet _state: State | null = null;\nconst createState = (): State => {\n return new State(_configuration);\n};\n\n/**\n * Configures the library with the given configuration. Note that calling this will stop all\n * previously added listeners from being called again. It is best to call this right when your\n * application is started to avoid issues. The configuration sets up a global singleton instance.\n *\n * @param configuration The new configuration to set.\n */\nexport function configure(\n configuration: Partial,\n): void {\n _configuration = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n\n if (_state) {\n _state.tearDown();\n _state = createState();\n }\n\n if (Platform.OS === 'ios') {\n NativeInterface.configure(configuration);\n }\n}\n\n/**\n * Returns a `Promise` that resolves to a `NetInfoState` object.\n * This function operates on the global singleton instance configured using `configure()`\n *\n * @param [requestedInterface] interface from which to obtain the information\n *\n * @returns A Promise which contains the current connection state.\n */\nexport function fetch(\n requestedInterface?: string,\n): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state.latest(requestedInterface);\n}\n\n/**\n * Force-refreshes the internal state of the global singleton managed by this library.\n *\n * @returns A Promise which contains the updated connection state.\n */\nexport function refresh(): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state._fetchCurrentState();\n}\n\n/**\n * Subscribe to the global singleton's connection information. The callback is called with a parameter of type\n * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener\n * will be called with the latest information soon after you subscribe and then with any\n * subsequent changes afterwards. You should not assume that the listener is called in the same\n * way across devices or platforms.\n *\n * @param listener The listener which is called when the network state changes.\n *\n * @returns A function which can be called to unsubscribe.\n */\nexport function addEventListener(\n listener: Types.NetInfoChangeHandler,\n): Types.NetInfoSubscription {\n if (!_state) {\n _state = createState();\n }\n\n _state.add(listener);\n return (): void => {\n _state && _state.remove(listener);\n };\n}\n\n/**\n * A React Hook into this library's singleton which updates when the connection state changes.\n *\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns The connection state.\n */\nexport function useNetInfo(\n configuration?: Partial,\n): Types.NetInfoState {\n if (configuration) {\n configure(configuration);\n }\n\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect((): (() => void) => {\n return addEventListener(setNetInfo);\n }, []);\n\n return netInfo;\n}\n\n/**\n * A React Hook which manages an isolated instance of the network info manager.\n * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener,\n * NetInfo.fetch, NetInfo.refresh are performed on a global singleton and have no affect on this hook.\n * @param {boolean} isPaused - Pause the internal network checks.\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns the netInfo state and a refresh function\n */\nexport function useNetInfoInstance(\n isPaused = false,\n configuration?: Partial,\n) {\n const [networkInfoManager, setNetworkInfoManager] = useState();\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect(() => {\n if (isPaused) {\n return;\n }\n const config = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n const state = new State(config);\n setNetworkInfoManager(state);\n state.add(setNetInfo);\n return state.tearDown;\n }, [isPaused, configuration]);\n\n const refresh = useCallback(() => {\n networkInfoManager && networkInfoManager._fetchCurrentState();\n }, [networkInfoManager]);\n\n return {\n netInfo,\n refresh,\n };\n}\n\nexport * from './internal/types';\n\nexport default {\n configure,\n fetch,\n refresh,\n addEventListener,\n useNetInfo,\n useNetInfoInstance,\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["_react","require","_reactNative","_defaultConfiguration","_interopRequireDefault","_nativeInterface","_state2","Types","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","obj","_configuration","DEFAULT_CONFIGURATION","_state","createState","State","configure","configuration","tearDown","Platform","OS","NativeInterface","fetch","requestedInterface","latest","refresh","_fetchCurrentState","addEventListener","listener","add","remove","useNetInfo","netInfo","setNetInfo","useState","type","NetInfoStateType","unknown","isConnected","isInternetReachable","details","useEffect","useNetInfoInstance","isPaused","networkInfoManager","setNetworkInfoManager","config","state","useCallback","_default"],"sources":["index.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {useState, useEffect, useCallback} from 'react';\nimport {Platform} from 'react-native';\nimport DEFAULT_CONFIGURATION from './internal/defaultConfiguration';\nimport NativeInterface from './internal/nativeInterface';\nimport State from './internal/state';\nimport * as Types from './internal/types';\n\n// Stores the currently used configuration\nlet _configuration = DEFAULT_CONFIGURATION;\n\n// Stores the singleton reference to the state manager\nlet _state: State | null = null;\nconst createState = (): State => {\n return new State(_configuration);\n};\n\n/**\n * Configures the library with the given configuration. Note that calling this will stop all\n * previously added listeners from being called again. It is best to call this right when your\n * application is started to avoid issues. The configuration sets up a global singleton instance.\n *\n * @param configuration The new configuration to set.\n */\nexport function configure(\n configuration: Partial,\n): void {\n _configuration = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n\n if (_state) {\n _state.tearDown();\n _state = createState();\n }\n\n if (Platform.OS === 'ios') {\n NativeInterface.configure(configuration);\n }\n}\n\n/**\n * Returns a `Promise` that resolves to a `NetInfoState` object.\n * This function operates on the global singleton instance configured using `configure()`\n *\n * @param [requestedInterface] interface from which to obtain the information\n *\n * @returns A Promise which contains the current connection state.\n */\nexport function fetch(\n requestedInterface?: string,\n): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state.latest(requestedInterface);\n}\n\n/**\n * Force-refreshes the internal state of the global singleton managed by this library.\n *\n * @returns A Promise which contains the updated connection state.\n */\nexport function refresh(): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state._fetchCurrentState();\n}\n\n/**\n * Subscribe to the global singleton's connection information. The callback is called with a parameter of type\n * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener\n * will be called with the latest information soon after you subscribe and then with any\n * subsequent changes afterwards. You should not assume that the listener is called in the same\n * way across devices or platforms.\n *\n * @param listener The listener which is called when the network state changes.\n *\n * @returns A function which can be called to unsubscribe.\n */\nexport function addEventListener(\n listener: Types.NetInfoChangeHandler,\n): Types.NetInfoSubscription {\n if (!_state) {\n _state = createState();\n }\n\n _state.add(listener);\n return (): void => {\n _state && _state.remove(listener);\n };\n}\n\n/**\n * A React Hook into this library's singleton which updates when the connection state changes.\n *\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns The connection state.\n */\nexport function useNetInfo(\n configuration?: Partial,\n): Types.NetInfoState {\n if (configuration) {\n configure(configuration);\n }\n\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect((): (() => void) => {\n return addEventListener(setNetInfo);\n }, []);\n\n return netInfo;\n}\n\n/**\n * A React Hook which manages an isolated instance of the network info manager.\n * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener,\n * NetInfo.fetch, NetInfo.refresh are performed on a global singleton and have no affect on this hook.\n * @param {boolean} isPaused - Pause the internal network checks.\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns the netInfo state and a refresh function\n */\nexport function useNetInfoInstance(\n isPaused = false,\n configuration?: Partial,\n) {\n const [networkInfoManager, setNetworkInfoManager] = useState();\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect(() => {\n if (isPaused) {\n return;\n }\n const config = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n const state = new State(config);\n setNetworkInfoManager(state);\n state.add(setNetInfo);\n return state.tearDown;\n }, [isPaused, configuration]);\n\n const refresh = useCallback(() => {\n networkInfoManager && networkInfoManager._fetchCurrentState();\n }, [networkInfoManager]);\n\n return {\n netInfo,\n refresh,\n };\n}\n\nexport * from './internal/types';\n\nexport default {\n configure,\n fetch,\n refresh,\n addEventListener,\n useNetInfo,\n useNetInfoInstance,\n};\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js +new file mode 100644 +index 0000000..e3949ec +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js +@@ -0,0 +1,10 @@ ++"use strict"; ++ ++Object.defineProperty(exports, "__esModule", { ++ value: true ++}); ++exports.default = void 0; ++var _reactNative = require("react-native"); ++/* eslint-disable @typescript-eslint/ban-types */ ++var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('RNCNetInfo'); ++//# sourceMappingURL=NativeRNCNetInfo.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js.map +new file mode 100644 +index 0000000..86d23d4 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/NativeRNCNetInfo.js.map +@@ -0,0 +1 @@ ++{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sources":["NativeRNCNetInfo.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n configure: (config: Object) => void;\n getCurrentState(requestedInterface?: string): Promise;\n // Events\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n}\n\nexport default TurboModuleRegistry.getEnforcing('RNCNetInfo');\n\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYeC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js +index 166a58d..c5b4e66 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js +@@ -19,6 +19,5 @@ const DEFAULT_CONFIGURATION = { + shouldFetchWiFiSSID: false, + useNativeReachability: true + }; +-var _default = DEFAULT_CONFIGURATION; +-exports.default = _default; ++var _default = exports.default = DEFAULT_CONFIGURATION; + //# sourceMappingURL=defaultConfiguration.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js.map +index 03f9097..be92be9 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["defaultConfiguration.ts"],"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"mappings":";;;;;;AAEA,MAAMA,qBAAiD,GAAG;AACxDC,EAAAA,eAAe,EAAE,0CADuC;AAExDC,EAAAA,kBAAkB,EAAE,MAFoC;AAGxDC,EAAAA,mBAAmB,EAAE,EAHmC;AAIxDC,EAAAA,gBAAgB,EAAGC,QAAD,IAChBC,OAAO,CAACC,OAAR,CAAgBF,QAAQ,CAACG,MAAT,KAAoB,GAApC,CALsD;AAMxDC,EAAAA,wBAAwB,EAAE,IAAI,IAN0B;AAMpB;AACpCC,EAAAA,uBAAuB,EAAE,KAAK,IAP0B;AAOpB;AACpCC,EAAAA,0BAA0B,EAAE,KAAK,IARuB;AAQjB;AACvCC,EAAAA,qBAAqB,EAAE,MAAe,IATkB;AAUxDC,EAAAA,mBAAmB,EAAE,KAVmC;AAWxDC,EAAAA,qBAAqB,EAAE;AAXiC,CAA1D;eAced,qB","sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: 'https://clients3.google.com/generate_204',\n reachabilityMethod: 'HEAD',\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 204),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: false,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION;"]} +\ No newline at end of file ++{"version":3,"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability","_default","exports","default"],"sources":["defaultConfiguration.ts"],"sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: 'https://clients3.google.com/generate_204',\n reachabilityMethod: 'HEAD',\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 204),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: false,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION;"],"mappings":";;;;;;AAEA,MAAMA,qBAAiD,GAAG;EACxDC,eAAe,EAAE,0CAA0C;EAC3DC,kBAAkB,EAAE,MAAM;EAC1BC,mBAAmB,EAAE,CAAC,CAAC;EACvBC,gBAAgB,EAAGC,QAAkB,IACnCC,OAAO,CAACC,OAAO,CAACF,QAAQ,CAACG,MAAM,KAAK,GAAG,CAAC;EAC1CC,wBAAwB,EAAE,CAAC,GAAG,IAAI;EAAE;EACpCC,uBAAuB,EAAE,EAAE,GAAG,IAAI;EAAE;EACpCC,0BAA0B,EAAE,EAAE,GAAG,IAAI;EAAE;EACvCC,qBAAqB,EAAEA,CAAA,KAAe,IAAI;EAC1CC,mBAAmB,EAAE,KAAK;EAC1BC,qBAAqB,EAAE;AACzB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEajB,qBAAqB"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js +index 410b7b0..a1e0456 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js +@@ -19,6 +19,5 @@ const DEFAULT_CONFIGURATION = { + shouldFetchWiFiSSID: true, + useNativeReachability: true + }; +-var _default = DEFAULT_CONFIGURATION; +-exports.default = _default; ++var _default = exports.default = DEFAULT_CONFIGURATION; + //# sourceMappingURL=defaultConfiguration.web.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js.map +index edf0c39..d6ee21a 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/defaultConfiguration.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["defaultConfiguration.web.ts"],"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"mappings":";;;;;;AAEA,MAAMA,qBAAiD,GAAG;AACxDC,EAAAA,eAAe,EAAE,GADuC;AAExDC,EAAAA,kBAAkB,EAAE,MAFoC;AAGxDC,EAAAA,mBAAmB,EAAE,EAHmC;AAIxDC,EAAAA,gBAAgB,EAAGC,QAAD,IAChBC,OAAO,CAACC,OAAR,CAAgBF,QAAQ,CAACG,MAAT,KAAoB,GAApC,CALsD;AAMxDC,EAAAA,wBAAwB,EAAE,IAAI,IAN0B;AAMpB;AACpCC,EAAAA,uBAAuB,EAAE,KAAK,IAP0B;AAOpB;AACpCC,EAAAA,0BAA0B,EAAE,KAAK,IARuB;AAQjB;AACvCC,EAAAA,qBAAqB,EAAE,MAAe,IATkB;AAUxDC,EAAAA,mBAAmB,EAAE,IAVmC;AAWxDC,EAAAA,qBAAqB,EAAE;AAXiC,CAA1D;eAced,qB","sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: '/',\n reachabilityMethod: \"HEAD\",\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 200),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: true,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION"]} +\ No newline at end of file ++{"version":3,"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability","_default","exports","default"],"sources":["defaultConfiguration.web.ts"],"sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: '/',\n reachabilityMethod: \"HEAD\",\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 200),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: true,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION"],"mappings":";;;;;;AAEA,MAAMA,qBAAiD,GAAG;EACxDC,eAAe,EAAE,GAAG;EACpBC,kBAAkB,EAAE,MAAM;EAC1BC,mBAAmB,EAAE,CAAC,CAAC;EACvBC,gBAAgB,EAAGC,QAAkB,IACnCC,OAAO,CAACC,OAAO,CAACF,QAAQ,CAACG,MAAM,KAAK,GAAG,CAAC;EAC1CC,wBAAwB,EAAE,CAAC,GAAG,IAAI;EAAE;EACpCC,uBAAuB,EAAE,EAAE,GAAG,IAAI;EAAE;EACpCC,0BAA0B,EAAE,EAAE,GAAG,IAAI;EAAE;EACvCC,qBAAqB,EAAEA,CAAA,KAAe,IAAI;EAC1CC,mBAAmB,EAAE,IAAI;EACzBC,qBAAqB,EAAE;AACzB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEajB,qBAAqB"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js +index 45296d9..5169ed8 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js +@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- +-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +- ++function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } ++function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } ++function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -15,57 +15,45 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope + * + * @format + */ ++ + class InternetReachability { + constructor(configuration, listener) { + _defineProperty(this, "_configuration", void 0); +- + _defineProperty(this, "_listener", void 0); +- + _defineProperty(this, "_isInternetReachable", undefined); +- + _defineProperty(this, "_currentInternetReachabilityCheckHandler", null); +- + _defineProperty(this, "_currentTimeoutHandle", null); +- + _defineProperty(this, "_setIsInternetReachable", isInternetReachable => { + if (this._isInternetReachable === isInternetReachable) { + return; + } +- + this._isInternetReachable = isInternetReachable; +- + this._listener(this._isInternetReachable); + }); +- + _defineProperty(this, "_setExpectsConnection", expectsConnection => { + // Cancel any pending check + if (this._currentInternetReachabilityCheckHandler !== null) { + this._currentInternetReachabilityCheckHandler.cancel(); +- + this._currentInternetReachabilityCheckHandler = null; +- } // Cancel any pending timeout +- +- ++ } ++ // Cancel any pending timeout + if (this._currentTimeoutHandle !== null) { + clearTimeout(this._currentTimeoutHandle); + this._currentTimeoutHandle = null; + } +- + if (expectsConnection && this._configuration.reachabilityShouldRun()) { + // If we expect a connection, start the process for finding if we have one + // Set the state to "null" if it was previously false + if (!this._isInternetReachable) { + this._setIsInternetReachable(null); +- } // Start a network request to check for internet +- +- ++ } ++ // Start a network request to check for internet + this._currentInternetReachabilityCheckHandler = this._checkInternetReachability(); + } else { + // If we don't expect a connection or don't run reachability check, just change the state to "false" + this._setIsInternetReachable(false); + } + }); +- + _defineProperty(this, "_checkInternetReachability", () => { + const controller = new AbortController(); + const responsePromise = fetch(this._configuration.reachabilityUrl, { +@@ -73,16 +61,17 @@ class InternetReachability { + method: this._configuration.reachabilityMethod, + cache: 'no-cache', + signal: controller.signal +- }); // Create promise that will reject after the request timeout has been reached ++ }); + ++ // Create promise that will reject after the request timeout has been reached + let timeoutHandle; +- const timeoutPromise = new Promise(() => { +- timeoutHandle = setTimeout(() => controller.abort('timedout'), this._configuration.reachabilityRequestTimeout); +- }); // Create promise that makes it possible to cancel a pending request through a reject +- // eslint-disable-next-line @typescript-eslint/no-empty-function ++ const timeoutPromise = new Promise((_, reject) => { ++ timeoutHandle = setTimeout(() => reject('timedout'), this._configuration.reachabilityRequestTimeout); ++ }); + ++ // Create promise that makes it possible to cancel a pending request through a reject ++ // eslint-disable-next-line @typescript-eslint/no-empty-function + let cancel = () => {}; +- + const cancelPromise = new Promise((_, reject) => { + cancel = () => reject('canceled'); + }); +@@ -90,18 +79,25 @@ class InternetReachability { + return this._configuration.reachabilityTest(response); + }).then(result => { + this._setIsInternetReachable(result); +- + const nextTimeoutInterval = this._isInternetReachable ? this._configuration.reachabilityLongTimeout : this._configuration.reachabilityShortTimeout; + this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, nextTimeoutInterval); ++ }).catch(error => { ++ if (error !== 'canceled') { ++ this._setIsInternetReachable(false); ++ this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, this._configuration.reachabilityShortTimeout); ++ } + }).catch(error => { + if ('canceled' === error) { + controller.abort(); + } else { ++ if ('timedout' === error) { ++ controller.abort(); ++ } + this._setIsInternetReachable(false); +- + this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, this._configuration.reachabilityShortTimeout); + } +- }) // Clear request timeout and propagate any errors ++ }) ++ // Clear request timeout and propagate any errors + .then(() => { + clearTimeout(timeoutHandle); + }, error => { +@@ -113,7 +109,6 @@ class InternetReachability { + cancel + }; + }); +- + _defineProperty(this, "update", state => { + if (typeof state.isInternetReachable === 'boolean' && this._configuration.useNativeReachability) { + this._setIsInternetReachable(state.isInternetReachable); +@@ -121,31 +116,25 @@ class InternetReachability { + this._setExpectsConnection(state.isConnected); + } + }); +- + _defineProperty(this, "currentState", () => { + return this._isInternetReachable; + }); +- + _defineProperty(this, "tearDown", () => { + // Cancel any pending check + if (this._currentInternetReachabilityCheckHandler !== null) { + this._currentInternetReachabilityCheckHandler.cancel(); +- + this._currentInternetReachabilityCheckHandler = null; +- } // Cancel any pending timeout +- ++ } + ++ // Cancel any pending timeout + if (this._currentTimeoutHandle !== null) { + clearTimeout(this._currentTimeoutHandle); + this._currentTimeoutHandle = null; + } + }); +- + this._configuration = configuration; + this._listener = listener; + } +- + } +- + exports.default = InternetReachability; + //# sourceMappingURL=internetReachability.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js.map +index 6d12691..63bd2df 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/internetReachability.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["internetReachability.ts"],"names":["InternetReachability","constructor","configuration","listener","undefined","isInternetReachable","_isInternetReachable","_listener","expectsConnection","_currentInternetReachabilityCheckHandler","cancel","_currentTimeoutHandle","clearTimeout","_configuration","reachabilityShouldRun","_setIsInternetReachable","_checkInternetReachability","controller","AbortController","responsePromise","fetch","reachabilityUrl","headers","reachabilityHeaders","method","reachabilityMethod","cache","signal","timeoutHandle","timeoutPromise","Promise","setTimeout","abort","reachabilityRequestTimeout","cancelPromise","_","reject","promise","race","then","response","reachabilityTest","result","nextTimeoutInterval","reachabilityLongTimeout","reachabilityShortTimeout","catch","error","state","useNativeReachability","_setExpectsConnection","isConnected"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport * as PrivateTypes from './privateTypes';\nimport * as Types from './types';\n\ninterface InternetReachabilityCheckHandler {\n promise: Promise;\n cancel: () => void;\n}\n\nexport default class InternetReachability {\n private _configuration: Types.NetInfoConfiguration;\n private _listener: PrivateTypes.NetInfoInternetReachabilityChangeListener;\n private _isInternetReachable: boolean | null | undefined = undefined;\n private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null = null;\n private _currentTimeoutHandle: ReturnType | null = null;\n\n constructor(\n configuration: Types.NetInfoConfiguration,\n listener: PrivateTypes.NetInfoInternetReachabilityChangeListener,\n ) {\n this._configuration = configuration;\n this._listener = listener;\n }\n\n private _setIsInternetReachable = (\n isInternetReachable: boolean | null,\n ): void => {\n if (this._isInternetReachable === isInternetReachable) {\n return;\n }\n\n this._isInternetReachable = isInternetReachable;\n this._listener(this._isInternetReachable);\n };\n\n private _setExpectsConnection = (expectsConnection: boolean | null): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n\n if (expectsConnection && this._configuration.reachabilityShouldRun()) {\n // If we expect a connection, start the process for finding if we have one\n // Set the state to \"null\" if it was previously false\n if (!this._isInternetReachable) {\n this._setIsInternetReachable(null);\n }\n // Start a network request to check for internet\n this._currentInternetReachabilityCheckHandler = this._checkInternetReachability();\n } else {\n // If we don't expect a connection or don't run reachability check, just change the state to \"false\"\n this._setIsInternetReachable(false);\n }\n };\n\n private _checkInternetReachability = (): InternetReachabilityCheckHandler => {\n const controller = new AbortController();\n\n const responsePromise = fetch(this._configuration.reachabilityUrl, {\n headers: this._configuration.reachabilityHeaders,\n method: this._configuration.reachabilityMethod,\n cache: 'no-cache',\n signal: controller.signal,\n });\n\n // Create promise that will reject after the request timeout has been reached\n let timeoutHandle: ReturnType;\n const timeoutPromise = new Promise((): void => {\n timeoutHandle = setTimeout(\n (): void => controller.abort('timedout'),\n this._configuration.reachabilityRequestTimeout,\n );\n });\n\n // Create promise that makes it possible to cancel a pending request through a reject\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let cancel: () => void = (): void => {};\n const cancelPromise = new Promise((_, reject): void => {\n cancel = (): void => reject('canceled');\n });\n\n const promise = Promise.race([\n responsePromise,\n timeoutPromise,\n cancelPromise,\n ])\n .then(\n (response): Promise => {\n return this._configuration.reachabilityTest(response);\n },\n )\n .then(\n (result): void => {\n this._setIsInternetReachable(result);\n const nextTimeoutInterval = this._isInternetReachable\n ? this._configuration.reachabilityLongTimeout\n : this._configuration.reachabilityShortTimeout;\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n nextTimeoutInterval,\n );\n },\n )\n .catch(\n (error: Error | 'timedout' | 'canceled'): void => {\n if ('canceled' === error) {\n controller.abort();\n } else {\n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n },\n )\n // Clear request timeout and propagate any errors\n .then(\n (): void => {\n clearTimeout(timeoutHandle);\n },\n (error: Error): void => {\n clearTimeout(timeoutHandle);\n throw error;\n },\n );\n\n return {\n promise,\n cancel,\n };\n };\n\n public update = (state: PrivateTypes.NetInfoNativeModuleState): void => {\n if (\n typeof state.isInternetReachable === 'boolean' &&\n this._configuration.useNativeReachability\n ) {\n this._setIsInternetReachable(state.isInternetReachable);\n } else {\n this._setExpectsConnection(state.isConnected);\n }\n };\n\n public currentState = (): boolean | null | undefined => {\n return this._isInternetReachable;\n };\n\n public tearDown = (): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n };\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["InternetReachability","constructor","configuration","listener","_defineProperty","undefined","isInternetReachable","_isInternetReachable","_listener","expectsConnection","_currentInternetReachabilityCheckHandler","cancel","_currentTimeoutHandle","clearTimeout","_configuration","reachabilityShouldRun","_setIsInternetReachable","_checkInternetReachability","controller","AbortController","responsePromise","fetch","reachabilityUrl","headers","reachabilityHeaders","method","reachabilityMethod","cache","signal","timeoutHandle","timeoutPromise","Promise","_","reject","setTimeout","reachabilityRequestTimeout","cancelPromise","promise","race","then","response","reachabilityTest","result","nextTimeoutInterval","reachabilityLongTimeout","reachabilityShortTimeout","catch","error","abort","state","useNativeReachability","_setExpectsConnection","isConnected","exports","default"],"sources":["internetReachability.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport * as PrivateTypes from './privateTypes';\nimport * as Types from './types';\n\ninterface InternetReachabilityCheckHandler {\n promise: Promise;\n cancel: () => void;\n}\n\nexport default class InternetReachability {\n private _configuration: Types.NetInfoConfiguration;\n private _listener: PrivateTypes.NetInfoInternetReachabilityChangeListener;\n private _isInternetReachable: boolean | null | undefined = undefined;\n private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null =\n null;\n private _currentTimeoutHandle: ReturnType | null = null;\n\n constructor(\n configuration: Types.NetInfoConfiguration,\n listener: PrivateTypes.NetInfoInternetReachabilityChangeListener,\n ) {\n this._configuration = configuration;\n this._listener = listener;\n }\n\n private _setIsInternetReachable = (\n isInternetReachable: boolean | null,\n ): void => {\n if (this._isInternetReachable === isInternetReachable) {\n return;\n }\n\n this._isInternetReachable = isInternetReachable;\n this._listener(this._isInternetReachable);\n };\n\n private _setExpectsConnection = (expectsConnection: boolean | null): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n\n if (expectsConnection && this._configuration.reachabilityShouldRun()) {\n // If we expect a connection, start the process for finding if we have one\n // Set the state to \"null\" if it was previously false\n if (!this._isInternetReachable) {\n this._setIsInternetReachable(null);\n }\n // Start a network request to check for internet\n this._currentInternetReachabilityCheckHandler =\n this._checkInternetReachability();\n } else {\n // If we don't expect a connection or don't run reachability check, just change the state to \"false\"\n this._setIsInternetReachable(false);\n }\n };\n\n private _checkInternetReachability = (): InternetReachabilityCheckHandler => {\n const controller = new AbortController();\n\n const responsePromise = fetch(this._configuration.reachabilityUrl, {\n headers: this._configuration.reachabilityHeaders,\n method: this._configuration.reachabilityMethod,\n cache: 'no-cache',\n signal: controller.signal,\n });\n\n // Create promise that will reject after the request timeout has been reached\n let timeoutHandle: ReturnType;\n const timeoutPromise = new Promise((_, reject): void => {\n timeoutHandle = setTimeout(\n (): void => reject('timedout'),\n this._configuration.reachabilityRequestTimeout,\n );\n });\n\n // Create promise that makes it possible to cancel a pending request through a reject\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let cancel: () => void = (): void => {};\n const cancelPromise = new Promise((_, reject): void => {\n cancel = (): void => reject('canceled');\n });\n\n const promise = Promise.race([\n responsePromise,\n timeoutPromise,\n cancelPromise,\n ])\n .then((response): Promise => {\n return this._configuration.reachabilityTest(response);\n })\n .then((result): void => {\n this._setIsInternetReachable(result);\n const nextTimeoutInterval = this._isInternetReachable\n ? this._configuration.reachabilityLongTimeout\n : this._configuration.reachabilityShortTimeout;\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n nextTimeoutInterval,\n );\n })\n .catch((error: Error | 'timedout' | 'canceled'): void => {\n if (error !== 'canceled') {\n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n })\n .catch(\n (error: Error | 'timedout' | 'canceled'): void => {\n if ('canceled' === error) {\n controller.abort();\n } else {\n if ('timedout' === error) {\n controller.abort();\n }\n \n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n },\n )\n // Clear request timeout and propagate any errors\n .then(\n (): void => {\n clearTimeout(timeoutHandle);\n },\n (error: Error): void => {\n clearTimeout(timeoutHandle);\n throw error;\n },\n );\n\n return {\n promise,\n cancel,\n };\n };\n\n public update = (state: PrivateTypes.NetInfoNativeModuleState): void => {\n if (\n typeof state.isInternetReachable === 'boolean' &&\n this._configuration.useNativeReachability\n ) {\n this._setIsInternetReachable(state.isInternetReachable);\n } else {\n this._setExpectsConnection(state.isConnected);\n }\n };\n\n public currentState = (): boolean | null | undefined => {\n return this._isInternetReachable;\n };\n\n public tearDown = (): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n };\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js +index 7a50da5..cb7d968 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js +@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- + var _reactNative = require("react-native"); +- + var _nativeModule = _interopRequireDefault(require("./nativeModule")); +- + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -19,6 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de + * + * @format + */ ++ + // Produce an error if we don't have the native module + if (!_nativeModule.default) { + throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps: +@@ -31,27 +28,26 @@ if (!_nativeModule.default) { + + If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`); + } ++ + /** + * We export the native interface in this way to give easy shared access to it between the + * JavaScript code and the tests + */ +- +- + let nativeEventEmitter = null; +-var _default = { ..._nativeModule.default, +- ++var _default = exports.default = { ++ configure: _nativeModule.default.configure, ++ addListener: _nativeModule.default.addListener, ++ removeListeners: _nativeModule.default.removeListeners, ++ getCurrentState: _nativeModule.default.getCurrentState, + get eventEmitter() { + if (!nativeEventEmitter) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + /// @ts-ignore + nativeEventEmitter = new _reactNative.NativeEventEmitter(_nativeModule.default); +- } // eslint-disable-next-line @typescript-eslint/ban-ts-comment ++ } ++ // eslint-disable-next-line @typescript-eslint/ban-ts-comment + /// @ts-ignore +- +- + return nativeEventEmitter; + } +- + }; +-exports.default = _default; + //# sourceMappingURL=nativeInterface.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js.map +index 1e7ac57..33b4bc0 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.ts"],"names":["RNCNetInfo","Error","nativeEventEmitter","eventEmitter","NativeEventEmitter"],"mappings":";;;;;;;AASA;;AACA;;;;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA,IAAI,CAACA,qBAAL,EAAiB;AACf,QAAM,IAAIC,KAAJ,CAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IARQ,CAAN;AASD;AAED;AACA;AACA;AACA;;;AACA,IAAIC,kBAA6C,GAAG,IAApD;eACe,EACb,GAAGF,qBADU;;AAEb,MAAIG,YAAJ,GAAuC;AACrC,QAAI,CAACD,kBAAL,EAAyB;AACvB;AACA;AACAA,MAAAA,kBAAkB,GAAG,IAAIE,+BAAJ,CAAuBJ,qBAAvB,CAArB;AACD,KALoC,CAMrC;AACA;;;AACA,WAAOE,kBAAP;AACD;;AAXY,C","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\n\n// Produce an error if we don't have the native module\nif (!RNCNetInfo) {\n throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:\n\n• Run \\`react-native link @react-native-community/netinfo\\` in the project root.\n• Rebuild and re-run the app.\n• If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n• Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.\n* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`);\n}\n\n/**\n * We export the native interface in this way to give easy shared access to it between the\n * JavaScript code and the tests\n */\nlet nativeEventEmitter: NativeEventEmitter | null = null;\nexport default {\n ...RNCNetInfo,\n get eventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n nativeEventEmitter = new NativeEventEmitter(RNCNetInfo);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n return nativeEventEmitter;\n },\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["_reactNative","require","_nativeModule","_interopRequireDefault","obj","__esModule","default","RNCNetInfo","Error","nativeEventEmitter","_default","exports","configure","addListener","removeListeners","getCurrentState","eventEmitter","NativeEventEmitter"],"sources":["nativeInterface.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\n\n// Produce an error if we don't have the native module\nif (!RNCNetInfo) {\n throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:\n\n• Run \\`react-native link @react-native-community/netinfo\\` in the project root.\n• Rebuild and re-run the app.\n• If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n• Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.\n* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`);\n}\n\n/**\n * We export the native interface in this way to give easy shared access to it between the\n * JavaScript code and the tests\n */\nlet nativeEventEmitter: NativeEventEmitter | null = null;\n\nexport default {\n configure: RNCNetInfo.configure,\n addListener: RNCNetInfo.addListener,\n removeListeners: RNCNetInfo.removeListeners,\n getCurrentState: RNCNetInfo.getCurrentState,\n get eventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n nativeEventEmitter = new NativeEventEmitter(RNCNetInfo);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n return nativeEventEmitter;\n },\n};\n"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAwC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAVxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA,IAAI,CAACG,qBAAU,EAAE;EACf,MAAM,IAAIC,KAAK,CAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I,CAAC;AAC/I;;AAEA;AACA;AACA;AACA;AACA,IAAIC,kBAA6C,GAAG,IAAI;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAE1C;EACbM,SAAS,EAAEL,qBAAU,CAACK,SAAS;EAC/BC,WAAW,EAAEN,qBAAU,CAACM,WAAW;EACnCC,eAAe,EAAEP,qBAAU,CAACO,eAAe;EAC3CC,eAAe,EAAER,qBAAU,CAACQ,eAAe;EAC3C,IAAIC,YAAYA,CAAA,EAAuB;IACrC,IAAI,CAACP,kBAAkB,EAAE;MACvB;MACA;MACAA,kBAAkB,GAAG,IAAIQ,+BAAkB,CAACV,qBAAU,CAAC;IACzD;IACA;IACA;IACA,OAAOE,kBAAkB;EAC3B;AACF,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js +index 5e77388..d591606 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js +@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- + var _reactNative = require("react-native"); +- + var _nativeModule = _interopRequireDefault(require("./nativeModule")); +- + var _privateTypes = require("./privateTypes"); +- + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -21,14 +16,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de + * + * @format + */ +-const nativeEventEmitter = new _reactNative.NativeEventEmitter(); // Listen to connectivity events + ++const nativeEventEmitter = new _reactNative.NativeEventEmitter(); ++ ++// Listen to connectivity events + _nativeModule.default.addListener(_privateTypes.DEVICE_CONNECTIVITY_EVENT, event => { + nativeEventEmitter.emit(_privateTypes.DEVICE_CONNECTIVITY_EVENT, event); + }); +- +-var _default = { ..._nativeModule.default, ++var _default = exports.default = { ++ ..._nativeModule.default, + eventEmitter: nativeEventEmitter + }; +-exports.default = _default; + //# sourceMappingURL=nativeInterface.web.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js.map +index 9fc4a6d..9b6f4b4 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeInterface.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.web.ts"],"names":["nativeEventEmitter","NativeEventEmitter","RNCNetInfo","addListener","DEVICE_CONNECTIVITY_EVENT","event","emit","eventEmitter"],"mappings":";;;;;;;AASA;;AACA;;AACA;;;;AAXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA,MAAMA,kBAAkB,GAAG,IAAIC,+BAAJ,EAA3B,C,CAEA;;AACAC,sBAAWC,WAAX,CACEC,uCADF,EAEGC,KAAD,IAAiB;AACfL,EAAAA,kBAAkB,CAACM,IAAnB,CAAwBF,uCAAxB,EAAmDC,KAAnD;AACD,CAJH;;eAOe,EACb,GAAGH,qBADU;AAEbK,EAAAA,YAAY,EAAEP;AAFD,C","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\nimport {DEVICE_CONNECTIVITY_EVENT} from './privateTypes';\n\nconst nativeEventEmitter = new NativeEventEmitter();\n\n// Listen to connectivity events\nRNCNetInfo.addListener(\n DEVICE_CONNECTIVITY_EVENT,\n (event): void => {\n nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event);\n },\n);\n\nexport default {\n ...RNCNetInfo,\n eventEmitter: nativeEventEmitter,\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["_reactNative","require","_nativeModule","_interopRequireDefault","_privateTypes","obj","__esModule","default","nativeEventEmitter","NativeEventEmitter","RNCNetInfo","addListener","DEVICE_CONNECTIVITY_EVENT","event","emit","_default","exports","eventEmitter"],"sources":["nativeInterface.web.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\nimport {DEVICE_CONNECTIVITY_EVENT} from './privateTypes';\n\nconst nativeEventEmitter = new NativeEventEmitter();\n\n// Listen to connectivity events\nRNCNetInfo.addListener(DEVICE_CONNECTIVITY_EVENT, (event): void => {\n nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event);\n});\n\nexport default {\n ...RNCNetInfo,\n eventEmitter: nativeEventEmitter,\n};\n"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAAyD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAXzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMG,kBAAkB,GAAG,IAAIC,+BAAkB,CAAC,CAAC;;AAEnD;AACAC,qBAAU,CAACC,WAAW,CAACC,uCAAyB,EAAGC,KAAK,IAAW;EACjEL,kBAAkB,CAACM,IAAI,CAACF,uCAAyB,EAAEC,KAAK,CAAC;AAC3D,CAAC,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAEY;EACb,GAAGG,qBAAU;EACbO,YAAY,EAAET;AAChB,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js +index 8fd237d..6d06932 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js +@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- + var _reactNative = require("react-native"); +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -15,7 +13,15 @@ var _reactNative = require("react-native"); + * + * @format + */ +-const RNCNetInfo = _reactNative.NativeModules.RNCNetInfo; +-var _default = RNCNetInfo; +-exports.default = _default; ++ ++// React Native sets `__turboModuleProxy` on global when TurboModules are enabled. ++// Currently, this is the recommended way to detect TurboModules. ++// https://reactnative.dev/docs/the-new-architecture/backward-compatibility-turbomodules#unify-the-javascript-specs ++// eslint-disable-next-line @typescript-eslint/ban-ts-comment ++// @ts-ignore ++const isTurboModuleEnabled = global.__turboModuleProxy != null; ++const RNCNetInfo = isTurboModuleEnabled ? ++// eslint-disable-next-line @typescript-eslint/no-var-requires ++require('./NativeRNCNetInfo').default : _reactNative.NativeModules.RNCNetInfo; ++var _default = exports.default = RNCNetInfo; + //# sourceMappingURL=nativeModule.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js.map +index dcf6159..5d5bb50 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeModule.ts"],"names":["RNCNetInfo","NativeModules"],"mappings":";;;;;;;AASA;;AATA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA,MAAMA,UAA+B,GAAGC,2BAAcD,UAAtD;eAEeA,U","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeModules} from 'react-native';\nimport {NetInfoNativeModule} from './privateTypes';\n\nconst RNCNetInfo: NetInfoNativeModule = NativeModules.RNCNetInfo;\n\nexport default RNCNetInfo;\n"]} +\ No newline at end of file ++{"version":3,"names":["_reactNative","require","isTurboModuleEnabled","global","__turboModuleProxy","RNCNetInfo","default","NativeModules","_default","exports"],"sources":["nativeModule.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeModules} from 'react-native';\nimport {NetInfoNativeModule} from './privateTypes';\n\n// React Native sets `__turboModuleProxy` on global when TurboModules are enabled.\n// Currently, this is the recommended way to detect TurboModules.\n// https://reactnative.dev/docs/the-new-architecture/backward-compatibility-turbomodules#unify-the-javascript-specs\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst isTurboModuleEnabled = global.__turboModuleProxy != null;\n\nconst RNCNetInfo: NetInfoNativeModule = isTurboModuleEnabled\n ? // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('./NativeRNCNetInfo').default\n : NativeModules.RNCNetInfo;\n\nexport default RNCNetInfo;\n"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AATA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,UAA+B,GAAGH,oBAAoB;AACxD;AACAD,OAAO,CAAC,oBAAoB,CAAC,CAACK,OAAO,GACrCC,0BAAa,CAACF,UAAU;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAH,OAAA,GAEdD,UAAU"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js +index ad66cbe..0da582c 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js +@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- + var _privateTypes = require("./privateTypes"); +- + var _types = require("./types"); +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -17,12 +14,23 @@ var _types = require("./types"); + * + * @format + */ ++ ++// See https://wicg.github.io/netinfo/#dom-connectiontype ++ ++// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype ++ ++// https://wicg.github.io/netinfo/#dom-networkinformation-savedata ++ ++// Create (optional) connection APIs on navigator ++ + // Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient, + // but this test correctly detects that window is not available and allows for conditionals before access +-const isWindowPresent = typeof window !== 'undefined'; // Check if window exists and if the browser supports the connection API ++const isWindowPresent = typeof window !== 'undefined'; + +-const connection = isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS') ? window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection : undefined; // Map browser types to native types ++// Check if window exists and if the browser supports the connection API ++const connection = isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS') ? window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection : undefined; + ++// Map browser types to native types + const typeMapping = { + bluetooth: _types.NetInfoStateType.bluetooth, + cellular: _types.NetInfoStateType.cellular, +@@ -39,17 +47,20 @@ const effectiveTypeMapping = { + '3g': _types.NetInfoCellularGeneration['3g'], + '4g': _types.NetInfoCellularGeneration['4g'], + 'slow-2g': _types.NetInfoCellularGeneration['2g'] +-}; // Determine current state of connection ++}; + ++// Determine current state of connection + const getCurrentState = _requestedInterface => { + const isConnected = isWindowPresent ? navigator.onLine : false; + const baseState = { + isInternetReachable: null +- }; // If we don't have a connection object, we return minimal information ++ }; + ++ // If we don't have a connection object, we return minimal information + if (!connection) { + if (isConnected) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type: _types.NetInfoStateType.other, + details: { +@@ -58,22 +69,22 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } +- +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: false, + isInternetReachable: false, + type: _types.NetInfoStateType.none, + details: null + }; + return state; +- } // Otherwise try to return detailed information +- ++ } + ++ // Otherwise try to return detailed information + const isConnectionExpensive = connection.saveData; + const type = connection.type ? typeMapping[connection.type] : isConnected ? _types.NetInfoStateType.other : _types.NetInfoStateType.unknown; +- + if (type === _types.NetInfoStateType.bluetooth) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -82,7 +93,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.cellular) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -93,7 +105,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.ethernet) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -104,7 +117,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.wifi) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -122,7 +136,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.wimax) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -131,7 +146,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.none) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: false, + isInternetReachable: false, + type, +@@ -139,7 +155,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === _types.NetInfoStateType.unknown) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected, + isInternetReachable: null, + type, +@@ -147,8 +164,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } +- +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type: _types.NetInfoStateType.other, + details: { +@@ -157,7 +174,6 @@ const getCurrentState = _requestedInterface => { + }; + return state; + }; +- + const handlers = []; + const nativeHandlers = []; + const RNCNetInfo = { +@@ -168,7 +184,6 @@ const RNCNetInfo = { + const nativeHandler = () => { + handler(getCurrentState()); + }; +- + if (connection) { + connection.addEventListener('change', nativeHandler); + } else { +@@ -176,16 +191,15 @@ const RNCNetInfo = { + window.addEventListener('online', nativeHandler, false); + window.addEventListener('offline', nativeHandler, false); + } +- } // Remember handlers +- ++ } + ++ // Remember handlers + handlers.push(handler); + nativeHandlers.push(nativeHandler); + break; + } + } + }, +- + removeListeners(type, handler) { + switch (type) { + case _privateTypes.DEVICE_CONNECTIVITY_EVENT: +@@ -193,7 +207,6 @@ const RNCNetInfo = { + // Get native handler + const index = handlers.indexOf(handler); + const nativeHandler = nativeHandlers[index]; +- + if (connection) { + connection.removeEventListener('change', nativeHandler); + } else { +@@ -201,25 +214,21 @@ const RNCNetInfo = { + window.removeEventListener('online', nativeHandler); + window.removeEventListener('offline', nativeHandler); + } +- } // Remove handlers +- ++ } + ++ // Remove handlers + handlers.splice(index, 1); + nativeHandlers.splice(index, 1); + break; + } + } + }, +- + async getCurrentState(requestedInterface) { + return getCurrentState(requestedInterface); + }, +- + configure() { + return; + } +- + }; +-var _default = RNCNetInfo; +-exports.default = _default; ++var _default = exports.default = RNCNetInfo; + //# sourceMappingURL=nativeModule.web.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js.map +index 7dcfca9..a0632f9 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/nativeModule.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeModule.web.ts"],"names":["isWindowPresent","window","connection","hasOwnProperty","navigator","mozConnection","webkitConnection","undefined","typeMapping","bluetooth","NetInfoStateType","cellular","ethernet","none","other","unknown","wifi","wimax","mixed","effectiveTypeMapping","NetInfoCellularGeneration","getCurrentState","_requestedInterface","isConnected","onLine","baseState","isInternetReachable","state","type","details","isConnectionExpensive","saveData","cellularGeneration","effectiveType","carrier","ipAddress","subnet","ssid","bssid","strength","frequency","linkSpeed","rxLinkSpeed","txLinkSpeed","handlers","nativeHandlers","RNCNetInfo","addListener","handler","DEVICE_CONNECTIVITY_EVENT","nativeHandler","addEventListener","push","removeListeners","index","indexOf","removeEventListener","splice","requestedInterface","configure"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {\n DEVICE_CONNECTIVITY_EVENT,\n NetInfoNativeModule,\n NetInfoNativeModuleState,\n} from './privateTypes';\nimport {\n NetInfoBluetoothState,\n NetInfoCellularGeneration,\n NetInfoCellularState,\n NetInfoEthernetState,\n NetInfoNoConnectionState,\n NetInfoOtherState,\n NetInfoState,\n NetInfoStateType,\n NetInfoUnknownState,\n NetInfoWifiState,\n NetInfoWimaxState,\n} from './types';\n\n// See https://wicg.github.io/netinfo/#dom-connectiontype\ntype ConnectionType =\n | 'bluetooth'\n | 'cellular'\n | 'ethernet'\n | 'mixed'\n | 'none'\n | 'other'\n | 'unknown'\n | 'wifi'\n | 'wimax';\n\n// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype\ntype ConnectionEffectiveType = '2g' | '3g' | '4g' | 'slow-2g';\n\n// https://wicg.github.io/netinfo/#dom-networkinformation-savedata\ntype ConnectionSaveData = boolean;\n\ninterface Events {\n change: Event;\n}\n\ninterface Connection {\n type: ConnectionType;\n effectiveType: ConnectionEffectiveType;\n saveData: ConnectionSaveData;\n addEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\n// Create (optional) connection APIs on navigator\ndeclare global {\n interface Navigator {\n connection?: Connection;\n mozConnection?: Connection;\n webkitConnection?: Connection;\n }\n}\n// Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient,\n// but this test correctly detects that window is not available and allows for conditionals before access\nconst isWindowPresent = typeof window !== 'undefined';\n\n// Check if window exists and if the browser supports the connection API\nconst connection = (isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS'))\n ? window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection\n : undefined;\n\n// Map browser types to native types\nconst typeMapping: Record = {\n bluetooth: NetInfoStateType.bluetooth,\n cellular: NetInfoStateType.cellular,\n ethernet: NetInfoStateType.ethernet,\n none: NetInfoStateType.none,\n other: NetInfoStateType.other,\n unknown: NetInfoStateType.unknown,\n wifi: NetInfoStateType.wifi,\n wimax: NetInfoStateType.wimax,\n mixed: NetInfoStateType.other,\n};\nconst effectiveTypeMapping: Record<\n ConnectionEffectiveType,\n NetInfoCellularGeneration\n> = {\n '2g': NetInfoCellularGeneration['2g'],\n '3g': NetInfoCellularGeneration['3g'],\n '4g': NetInfoCellularGeneration['4g'],\n 'slow-2g': NetInfoCellularGeneration['2g'],\n};\n\n// Determine current state of connection\nconst getCurrentState = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _requestedInterface?: string,\n): Pick> => {\n const isConnected = isWindowPresent ? navigator.onLine : false;\n const baseState = {\n isInternetReachable: null,\n };\n\n // If we don't have a connection object, we return minimal information\n if (!connection) {\n if (isConnected) {\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive: false,\n },\n };\n return state;\n }\n\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type: NetInfoStateType.none,\n details: null,\n };\n return state;\n }\n\n // Otherwise try to return detailed information\n const isConnectionExpensive = connection.saveData;\n const type: NetInfoStateType = connection.type\n ? typeMapping[connection.type]\n : isConnected\n ? NetInfoStateType.other\n : NetInfoStateType.unknown;\n\n if (type === NetInfoStateType.bluetooth) {\n const state: NetInfoBluetoothState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.cellular) {\n const state: NetInfoCellularState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n cellularGeneration:\n effectiveTypeMapping[connection.effectiveType] || null,\n carrier: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.ethernet) {\n const state: NetInfoEthernetState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ipAddress: null,\n subnet: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wifi) {\n const state: NetInfoWifiState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ssid: null,\n bssid: null,\n strength: null,\n ipAddress: null,\n subnet: null,\n frequency: null,\n linkSpeed: null,\n rxLinkSpeed: null,\n txLinkSpeed: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wimax) {\n const state: NetInfoWimaxState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.none) {\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type,\n details: null,\n };\n return state;\n } else if (type === NetInfoStateType.unknown) {\n const state: NetInfoUnknownState = {\n ...baseState,\n isConnected,\n isInternetReachable: null,\n type,\n details: null,\n };\n return state;\n }\n\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n};\n\nconst handlers: ((state: NetInfoNativeModuleState) => void)[] = [];\nconst nativeHandlers: (() => void)[] = [];\n\nconst RNCNetInfo: NetInfoNativeModule = {\n addListener(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n const nativeHandler = (): void => {\n handler(getCurrentState());\n };\n\n if (connection) {\n connection.addEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.addEventListener('online', nativeHandler, false);\n window.addEventListener('offline', nativeHandler, false);\n }\n }\n\n // Remember handlers\n handlers.push(handler);\n nativeHandlers.push(nativeHandler);\n\n break;\n }\n }\n },\n\n removeListeners(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n // Get native handler\n const index = handlers.indexOf(handler);\n const nativeHandler = nativeHandlers[index];\n\n if (connection) {\n connection.removeEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.removeEventListener('online', nativeHandler);\n window.removeEventListener('offline', nativeHandler);\n }\n }\n\n // Remove handlers\n handlers.splice(index, 1);\n nativeHandlers.splice(index, 1);\n\n break;\n }\n }\n },\n\n async getCurrentState(requestedInterface): Promise {\n return getCurrentState(requestedInterface);\n },\n\n configure(): void {\n return;\n },\n};\n\nexport default RNCNetInfo;\n"]} +\ No newline at end of file ++{"version":3,"names":["_privateTypes","require","_types","isWindowPresent","window","connection","hasOwnProperty","navigator","mozConnection","webkitConnection","undefined","typeMapping","bluetooth","NetInfoStateType","cellular","ethernet","none","other","unknown","wifi","wimax","mixed","effectiveTypeMapping","NetInfoCellularGeneration","getCurrentState","_requestedInterface","isConnected","onLine","baseState","isInternetReachable","state","type","details","isConnectionExpensive","saveData","cellularGeneration","effectiveType","carrier","ipAddress","subnet","ssid","bssid","strength","frequency","linkSpeed","rxLinkSpeed","txLinkSpeed","handlers","nativeHandlers","RNCNetInfo","addListener","handler","DEVICE_CONNECTIVITY_EVENT","nativeHandler","addEventListener","push","removeListeners","index","indexOf","removeEventListener","splice","requestedInterface","configure","_default","exports","default"],"sources":["nativeModule.web.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {\n DEVICE_CONNECTIVITY_EVENT,\n NetInfoNativeModule,\n NetInfoNativeModuleState,\n} from './privateTypes';\nimport {\n NetInfoBluetoothState,\n NetInfoCellularGeneration,\n NetInfoCellularState,\n NetInfoEthernetState,\n NetInfoNoConnectionState,\n NetInfoOtherState,\n NetInfoState,\n NetInfoStateType,\n NetInfoUnknownState,\n NetInfoWifiState,\n NetInfoWimaxState,\n} from './types';\n\n// See https://wicg.github.io/netinfo/#dom-connectiontype\ntype ConnectionType =\n | 'bluetooth'\n | 'cellular'\n | 'ethernet'\n | 'mixed'\n | 'none'\n | 'other'\n | 'unknown'\n | 'wifi'\n | 'wimax';\n\n// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype\ntype ConnectionEffectiveType = '2g' | '3g' | '4g' | 'slow-2g';\n\n// https://wicg.github.io/netinfo/#dom-networkinformation-savedata\ntype ConnectionSaveData = boolean;\n\ninterface Events {\n change: Event;\n}\n\ninterface Connection {\n type: ConnectionType;\n effectiveType: ConnectionEffectiveType;\n saveData: ConnectionSaveData;\n addEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\n// Create (optional) connection APIs on navigator\ndeclare global {\n interface Navigator {\n connection?: Connection;\n mozConnection?: Connection;\n webkitConnection?: Connection;\n }\n}\n// Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient,\n// but this test correctly detects that window is not available and allows for conditionals before access\nconst isWindowPresent = typeof window !== 'undefined';\n\n// Check if window exists and if the browser supports the connection API\nconst connection = (isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS'))\n ? window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection\n : undefined;\n\n// Map browser types to native types\nconst typeMapping: Record = {\n bluetooth: NetInfoStateType.bluetooth,\n cellular: NetInfoStateType.cellular,\n ethernet: NetInfoStateType.ethernet,\n none: NetInfoStateType.none,\n other: NetInfoStateType.other,\n unknown: NetInfoStateType.unknown,\n wifi: NetInfoStateType.wifi,\n wimax: NetInfoStateType.wimax,\n mixed: NetInfoStateType.other,\n};\nconst effectiveTypeMapping: Record<\n ConnectionEffectiveType,\n NetInfoCellularGeneration\n> = {\n '2g': NetInfoCellularGeneration['2g'],\n '3g': NetInfoCellularGeneration['3g'],\n '4g': NetInfoCellularGeneration['4g'],\n 'slow-2g': NetInfoCellularGeneration['2g'],\n};\n\n// Determine current state of connection\nconst getCurrentState = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _requestedInterface?: string,\n): Pick> => {\n const isConnected = isWindowPresent ? navigator.onLine : false;\n const baseState = {\n isInternetReachable: null,\n };\n\n // If we don't have a connection object, we return minimal information\n if (!connection) {\n if (isConnected) {\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive: false,\n },\n };\n return state;\n }\n\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type: NetInfoStateType.none,\n details: null,\n };\n return state;\n }\n\n // Otherwise try to return detailed information\n const isConnectionExpensive = connection.saveData;\n const type: NetInfoStateType = connection.type\n ? typeMapping[connection.type]\n : isConnected\n ? NetInfoStateType.other\n : NetInfoStateType.unknown;\n\n if (type === NetInfoStateType.bluetooth) {\n const state: NetInfoBluetoothState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.cellular) {\n const state: NetInfoCellularState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n cellularGeneration:\n effectiveTypeMapping[connection.effectiveType] || null,\n carrier: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.ethernet) {\n const state: NetInfoEthernetState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ipAddress: null,\n subnet: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wifi) {\n const state: NetInfoWifiState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ssid: null,\n bssid: null,\n strength: null,\n ipAddress: null,\n subnet: null,\n frequency: null,\n linkSpeed: null,\n rxLinkSpeed: null,\n txLinkSpeed: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wimax) {\n const state: NetInfoWimaxState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.none) {\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type,\n details: null,\n };\n return state;\n } else if (type === NetInfoStateType.unknown) {\n const state: NetInfoUnknownState = {\n ...baseState,\n isConnected,\n isInternetReachable: null,\n type,\n details: null,\n };\n return state;\n }\n\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n};\n\nconst handlers: ((state: NetInfoNativeModuleState) => void)[] = [];\nconst nativeHandlers: (() => void)[] = [];\n\nconst RNCNetInfo: NetInfoNativeModule = {\n addListener(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n const nativeHandler = (): void => {\n handler(getCurrentState());\n };\n\n if (connection) {\n connection.addEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.addEventListener('online', nativeHandler, false);\n window.addEventListener('offline', nativeHandler, false);\n }\n }\n\n // Remember handlers\n handlers.push(handler);\n nativeHandlers.push(nativeHandler);\n\n break;\n }\n }\n },\n\n removeListeners(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n // Get native handler\n const index = handlers.indexOf(handler);\n const nativeHandler = nativeHandlers[index];\n\n if (connection) {\n connection.removeEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.removeEventListener('online', nativeHandler);\n window.removeEventListener('offline', nativeHandler);\n }\n }\n\n // Remove handlers\n handlers.splice(index, 1);\n nativeHandlers.splice(index, 1);\n\n break;\n }\n }\n },\n\n async getCurrentState(requestedInterface): Promise {\n return getCurrentState(requestedInterface);\n },\n\n configure(): void {\n return;\n },\n};\n\nexport default RNCNetInfo;\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js +index 3112de1..ca209c1 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js +@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.DEVICE_CONNECTIVITY_EVENT = void 0; +- + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -13,7 +12,8 @@ exports.DEVICE_CONNECTIVITY_EVENT = void 0; + * + * @format + */ +-const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange'; // Certain properties are optional when sent by the native module and are handled by the JS code + +-exports.DEVICE_CONNECTIVITY_EVENT = DEVICE_CONNECTIVITY_EVENT; ++const DEVICE_CONNECTIVITY_EVENT = exports.DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange'; ++ ++// Certain properties are optional when sent by the native module and are handled by the JS code + //# sourceMappingURL=privateTypes.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js.map +index 2838e9a..a56f61c 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/privateTypes.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["privateTypes.ts"],"names":["DEVICE_CONNECTIVITY_EVENT"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIO,MAAMA,yBAAyB,GAAG,gCAAlC,C,CAEP","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NetInfoConfiguration, NetInfoState} from './types';\n\nexport const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange';\n\n// Certain properties are optional when sent by the native module and are handled by the JS code\nexport type NetInfoNativeModuleState = Pick<\n NetInfoState,\n Exclude\n> & {isInternetReachable?: boolean};\n\nexport interface Events {\n [DEVICE_CONNECTIVITY_EVENT]: NetInfoNativeModuleState;\n}\n\nexport interface NetInfoNativeModule {\n configure: (config: Partial) => void;\n getCurrentState: (\n requestedInterface?: string,\n ) => Promise;\n addListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeListeners(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\nexport type NetInfoInternetReachabilityChangeListener = (\n isInternetReachable: boolean | null | undefined,\n) => void;\n"]} +\ No newline at end of file ++{"version":3,"names":["DEVICE_CONNECTIVITY_EVENT","exports"],"sources":["privateTypes.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NetInfoConfiguration, NetInfoState} from './types';\n\nexport const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange';\n\n// Certain properties are optional when sent by the native module and are handled by the JS code\nexport type NetInfoNativeModuleState = Pick<\n NetInfoState,\n Exclude\n> & {isInternetReachable?: boolean};\n\nexport interface Events {\n [DEVICE_CONNECTIVITY_EVENT]: NetInfoNativeModuleState;\n}\n\nexport interface NetInfoNativeModule {\n configure: (config: Partial) => void;\n getCurrentState: (\n requestedInterface?: string,\n ) => Promise;\n addListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeListeners(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\nexport type NetInfoInternetReachabilityChangeListener = (\n isInternetReachable: boolean | null | undefined,\n) => void;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIO,MAAMA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,gCAAgC;;AAEzE"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js +index 80dce38..57b8fbf 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js +@@ -4,84 +4,73 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = void 0; +- + var _nativeInterface = _interopRequireDefault(require("./nativeInterface")); +- + var _internetReachability = _interopRequireDefault(require("./internetReachability")); +- + var PrivateTypes = _interopRequireWildcard(require("./privateTypes")); +- +-function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +- +-function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +- ++function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } ++function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +- +-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +- ++function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } ++function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } ++function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /** ++ * Copyright (c) Facebook, Inc. and its affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ * ++ * @format ++ */ + class State { + constructor(configuration) { + _defineProperty(this, "_nativeEventSubscription", null); +- + _defineProperty(this, "_subscriptions", new Set()); +- + _defineProperty(this, "_latestState", null); +- + _defineProperty(this, "_internetReachability", void 0); +- + _defineProperty(this, "_handleNativeStateUpdate", state => { + // Update the internet reachability module +- this._internetReachability.update(state); // Convert the state from native to JS shape +- +- +- const convertedState = this._convertState(state); // Update the listeners ++ this._internetReachability.update(state); + ++ // Convert the state from native to JS shape ++ const convertedState = this._convertState(state); + ++ // Update the listeners + this._latestState = convertedState; +- + this._subscriptions.forEach(handler => handler(convertedState)); + }); +- + _defineProperty(this, "_handleInternetReachabilityUpdate", isInternetReachable => { + if (!this._latestState) { + return; + } +- +- const nextState = { ...this._latestState, ++ const nextState = { ++ ...this._latestState, + isInternetReachable + }; + this._latestState = nextState; +- + this._subscriptions.forEach(handler => handler(nextState)); + }); +- + _defineProperty(this, "_fetchCurrentState", async requestedInterface => { +- const state = await _nativeInterface.default.getCurrentState(requestedInterface); // Update the internet reachability module +- +- this._internetReachability.update(state); // Convert and store the new state +- ++ const state = await _nativeInterface.default.getCurrentState(requestedInterface); + ++ // Update the internet reachability module ++ this._internetReachability.update(state); ++ // Convert and store the new state + const convertedState = this._convertState(state); +- + if (!requestedInterface) { + this._latestState = convertedState; +- + this._subscriptions.forEach(handler => handler(convertedState)); + } +- + return convertedState; + }); +- + _defineProperty(this, "_convertState", input => { + if (typeof input.isInternetReachable === 'boolean') { + return input; + } else { +- return { ...input, ++ return { ++ ...input, + isInternetReachable: this._internetReachability.currentState() + }; + } + }); +- + _defineProperty(this, "latest", requestedInterface => { + if (requestedInterface) { + return this._fetchCurrentState(requestedInterface); +@@ -91,44 +80,38 @@ class State { + return this._fetchCurrentState(); + } + }); +- + _defineProperty(this, "add", handler => { + // Add the subscription handler to our set +- this._subscriptions.add(handler); // Send it the latest data we have +- ++ this._subscriptions.add(handler); + ++ // Send it the latest data we have + if (this._latestState) { + handler(this._latestState); + } else { + this.latest().then(handler); + } + }); +- + _defineProperty(this, "remove", handler => { + this._subscriptions.delete(handler); + }); +- + _defineProperty(this, "tearDown", () => { + if (this._internetReachability) { + this._internetReachability.tearDown(); + } +- + if (this._nativeEventSubscription) { + this._nativeEventSubscription.remove(); + } +- + this._subscriptions.clear(); + }); +- + // Add the listener to the internet connectivity events +- this._internetReachability = new _internetReachability.default(configuration, this._handleInternetReachabilityUpdate); // Add the subscription to the native events ++ this._internetReachability = new _internetReachability.default(configuration, this._handleInternetReachabilityUpdate); + +- this._nativeEventSubscription = _nativeInterface.default.eventEmitter.addListener(PrivateTypes.DEVICE_CONNECTIVITY_EVENT, this._handleNativeStateUpdate); // Fetch the current state from the native module ++ // Add the subscription to the native events ++ this._nativeEventSubscription = _nativeInterface.default.eventEmitter.addListener(PrivateTypes.DEVICE_CONNECTIVITY_EVENT, this._handleNativeStateUpdate); + ++ // Fetch the current state from the native module + this._fetchCurrentState(); + } +- + } +- + exports.default = State; + //# sourceMappingURL=state.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js.map +index 40ae85c..473e940 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/state.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["state.ts"],"names":["State","constructor","configuration","Set","state","_internetReachability","update","convertedState","_convertState","_latestState","_subscriptions","forEach","handler","isInternetReachable","nextState","requestedInterface","NativeInterface","getCurrentState","input","currentState","_fetchCurrentState","Promise","resolve","add","latest","then","delete","tearDown","_nativeEventSubscription","remove","clear","InternetReachability","_handleInternetReachabilityUpdate","eventEmitter","addListener","PrivateTypes","DEVICE_CONNECTIVITY_EVENT","_handleNativeStateUpdate"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventSubscription} from 'react-native';\nimport NativeInterface from './nativeInterface';\nimport InternetReachability from './internetReachability';\nimport * as Types from './types';\nimport * as PrivateTypes from './privateTypes';\n\nexport default class State {\n private _nativeEventSubscription: NativeEventSubscription | null = null;\n private _subscriptions = new Set();\n private _latestState: Types.NetInfoState | null = null;\n private _internetReachability: InternetReachability;\n\n constructor(configuration: Types.NetInfoConfiguration) {\n // Add the listener to the internet connectivity events\n this._internetReachability = new InternetReachability(\n configuration,\n this._handleInternetReachabilityUpdate,\n );\n\n // Add the subscription to the native events\n this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(\n PrivateTypes.DEVICE_CONNECTIVITY_EVENT,\n this._handleNativeStateUpdate,\n );\n\n // Fetch the current state from the native module\n this._fetchCurrentState();\n }\n\n private _handleNativeStateUpdate = (\n state: PrivateTypes.NetInfoNativeModuleState,\n ): void => {\n // Update the internet reachability module\n this._internetReachability.update(state);\n\n // Convert the state from native to JS shape\n const convertedState = this._convertState(state);\n\n // Update the listeners\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n };\n\n private _handleInternetReachabilityUpdate = (\n isInternetReachable: boolean | null | undefined,\n ): void => {\n if (!this._latestState) {\n return;\n }\n\n const nextState = {\n ...this._latestState,\n isInternetReachable,\n } as Types.NetInfoState;\n this._latestState = nextState;\n this._subscriptions.forEach((handler): void => handler(nextState));\n };\n\n public _fetchCurrentState = async (\n requestedInterface?: string,\n ): Promise => {\n const state = await NativeInterface.getCurrentState(requestedInterface);\n\n // Update the internet reachability module\n this._internetReachability.update(state);\n // Convert and store the new state\n const convertedState = this._convertState(state);\n if (!requestedInterface) {\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n }\n\n return convertedState;\n };\n\n private _convertState = (\n input: PrivateTypes.NetInfoNativeModuleState,\n ): Types.NetInfoState => {\n if (typeof input.isInternetReachable === 'boolean') {\n return input as Types.NetInfoState;\n } else {\n return {\n ...input,\n isInternetReachable: this._internetReachability.currentState(),\n } as Types.NetInfoState;\n }\n };\n\n public latest = (\n requestedInterface?: string,\n ): Promise => {\n if (requestedInterface) {\n return this._fetchCurrentState(requestedInterface);\n } else if (this._latestState) {\n return Promise.resolve(this._latestState);\n } else {\n return this._fetchCurrentState();\n }\n };\n\n public add = (handler: Types.NetInfoChangeHandler): void => {\n // Add the subscription handler to our set\n this._subscriptions.add(handler);\n\n // Send it the latest data we have\n if (this._latestState) {\n handler(this._latestState);\n } else {\n this.latest().then(handler);\n }\n };\n\n public remove = (handler: Types.NetInfoChangeHandler): void => {\n this._subscriptions.delete(handler);\n };\n\n public tearDown = (): void => {\n if (this._internetReachability) {\n this._internetReachability.tearDown();\n }\n\n if (this._nativeEventSubscription) {\n this._nativeEventSubscription.remove();\n }\n\n this._subscriptions.clear();\n };\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["_nativeInterface","_interopRequireDefault","require","_internetReachability","PrivateTypes","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","State","constructor","configuration","Set","state","update","convertedState","_convertState","_latestState","_subscriptions","forEach","handler","isInternetReachable","nextState","requestedInterface","NativeInterface","getCurrentState","currentState","_fetchCurrentState","Promise","resolve","add","latest","then","delete","tearDown","_nativeEventSubscription","remove","clear","InternetReachability","_handleInternetReachabilityUpdate","eventEmitter","addListener","DEVICE_CONNECTIVITY_EVENT","_handleNativeStateUpdate","exports"],"sources":["state.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventSubscription} from 'react-native';\nimport NativeInterface from './nativeInterface';\nimport InternetReachability from './internetReachability';\nimport * as Types from './types';\nimport * as PrivateTypes from './privateTypes';\n\nexport default class State {\n private _nativeEventSubscription: NativeEventSubscription | null = null;\n private _subscriptions = new Set();\n private _latestState: Types.NetInfoState | null = null;\n private _internetReachability: InternetReachability;\n\n constructor(configuration: Types.NetInfoConfiguration) {\n // Add the listener to the internet connectivity events\n this._internetReachability = new InternetReachability(\n configuration,\n this._handleInternetReachabilityUpdate,\n );\n\n // Add the subscription to the native events\n this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(\n PrivateTypes.DEVICE_CONNECTIVITY_EVENT,\n this._handleNativeStateUpdate,\n );\n\n // Fetch the current state from the native module\n this._fetchCurrentState();\n }\n\n private _handleNativeStateUpdate = (\n state: PrivateTypes.NetInfoNativeModuleState,\n ): void => {\n // Update the internet reachability module\n this._internetReachability.update(state);\n\n // Convert the state from native to JS shape\n const convertedState = this._convertState(state);\n\n // Update the listeners\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n };\n\n private _handleInternetReachabilityUpdate = (\n isInternetReachable: boolean | null | undefined,\n ): void => {\n if (!this._latestState) {\n return;\n }\n\n const nextState = {\n ...this._latestState,\n isInternetReachable,\n } as Types.NetInfoState;\n this._latestState = nextState;\n this._subscriptions.forEach((handler): void => handler(nextState));\n };\n\n public _fetchCurrentState = async (\n requestedInterface?: string,\n ): Promise => {\n const state = await NativeInterface.getCurrentState(requestedInterface);\n\n // Update the internet reachability module\n this._internetReachability.update(state);\n // Convert and store the new state\n const convertedState = this._convertState(state);\n if (!requestedInterface) {\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n }\n\n return convertedState;\n };\n\n private _convertState = (\n input: PrivateTypes.NetInfoNativeModuleState,\n ): Types.NetInfoState => {\n if (typeof input.isInternetReachable === 'boolean') {\n return input as Types.NetInfoState;\n } else {\n return {\n ...input,\n isInternetReachable: this._internetReachability.currentState(),\n } as Types.NetInfoState;\n }\n };\n\n public latest = (\n requestedInterface?: string,\n ): Promise => {\n if (requestedInterface) {\n return this._fetchCurrentState(requestedInterface);\n } else if (this._latestState) {\n return Promise.resolve(this._latestState);\n } else {\n return this._fetchCurrentState();\n }\n };\n\n public add = (handler: Types.NetInfoChangeHandler): void => {\n // Add the subscription handler to our set\n this._subscriptions.add(handler);\n\n // Send it the latest data we have\n if (this._latestState) {\n handler(this._latestState);\n } else {\n this.latest().then(handler);\n }\n };\n\n public remove = (handler: Types.NetInfoChangeHandler): void => {\n this._subscriptions.delete(handler);\n };\n\n public tearDown = (): void => {\n if (this._internetReachability) {\n this._internetReachability.tearDown();\n }\n\n if (this._nativeEventSubscription) {\n this._nativeEventSubscription.remove();\n }\n\n this._subscriptions.clear();\n };\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js +index 39e4871..92824aa 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js +@@ -3,8 +3,7 @@ + Object.defineProperty(exports, "__esModule", { + value: true + }); +-exports.NetInfoCellularGeneration = exports.NetInfoStateType = void 0; +- ++exports.NetInfoStateType = exports.NetInfoCellularGeneration = void 0; + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -13,10 +12,7 @@ exports.NetInfoCellularGeneration = exports.NetInfoStateType = void 0; + * + * @format + */ +-let NetInfoStateType; +-exports.NetInfoStateType = NetInfoStateType; +- +-(function (NetInfoStateType) { ++let NetInfoStateType = exports.NetInfoStateType = /*#__PURE__*/function (NetInfoStateType) { + NetInfoStateType["unknown"] = "unknown"; + NetInfoStateType["none"] = "none"; + NetInfoStateType["cellular"] = "cellular"; +@@ -26,15 +22,13 @@ exports.NetInfoStateType = NetInfoStateType; + NetInfoStateType["wimax"] = "wimax"; + NetInfoStateType["vpn"] = "vpn"; + NetInfoStateType["other"] = "other"; +-})(NetInfoStateType || (exports.NetInfoStateType = NetInfoStateType = {})); +- +-let NetInfoCellularGeneration; +-exports.NetInfoCellularGeneration = NetInfoCellularGeneration; +- +-(function (NetInfoCellularGeneration) { ++ return NetInfoStateType; ++}({}); ++let NetInfoCellularGeneration = exports.NetInfoCellularGeneration = /*#__PURE__*/function (NetInfoCellularGeneration) { + NetInfoCellularGeneration["2g"] = "2g"; + NetInfoCellularGeneration["3g"] = "3g"; + NetInfoCellularGeneration["4g"] = "4g"; + NetInfoCellularGeneration["5g"] = "5g"; +-})(NetInfoCellularGeneration || (exports.NetInfoCellularGeneration = NetInfoCellularGeneration = {})); ++ return NetInfoCellularGeneration; ++}({}); + //# sourceMappingURL=types.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js.map b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js.map +index 095dd3b..596ace1 100644 +--- a/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/commonjs/internal/types.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["types.ts"],"names":["NetInfoStateType","NetInfoCellularGeneration"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAEYA,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAcAC,yB;;;WAAAA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;GAAAA,yB,yCAAAA,yB","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nexport enum NetInfoStateType {\n unknown = 'unknown',\n none = 'none',\n cellular = 'cellular',\n wifi = 'wifi',\n bluetooth = 'bluetooth',\n ethernet = 'ethernet',\n wimax = 'wimax',\n vpn = 'vpn',\n other = 'other',\n}\n\nexport type NetInfoMethodType = 'HEAD' | 'GET';\n\nexport enum NetInfoCellularGeneration {\n '2g' = '2g',\n '3g' = '3g',\n '4g' = '4g',\n '5g' = '5g',\n}\n\nexport interface NetInfoConnectedDetails {\n isConnectionExpensive: boolean;\n}\n\ninterface NetInfoConnectedState<\n T extends NetInfoStateType,\n D extends Record = Record\n> {\n type: T;\n isConnected: true;\n isInternetReachable: boolean | null;\n details: D & NetInfoConnectedDetails;\n isWifiEnabled?: boolean;\n}\n\ninterface NetInfoDisconnectedState {\n type: T;\n isConnected: false;\n isInternetReachable: false;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport interface NetInfoUnknownState {\n type: NetInfoStateType.unknown;\n isConnected: boolean | null;\n isInternetReachable: null;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport type NetInfoNoConnectionState = NetInfoDisconnectedState<\n NetInfoStateType.none\n>;\nexport type NetInfoDisconnectedStates =\n | NetInfoUnknownState\n | NetInfoNoConnectionState;\n\nexport type NetInfoCellularState = NetInfoConnectedState<\n NetInfoStateType.cellular,\n {\n cellularGeneration: NetInfoCellularGeneration | null;\n carrier: string | null;\n }\n>;\nexport type NetInfoWifiState = NetInfoConnectedState<\n NetInfoStateType.wifi,\n {\n ssid: string | null;\n bssid: string | null;\n strength: number | null;\n ipAddress: string | null;\n subnet: string | null;\n frequency: number | null;\n linkSpeed: number | null;\n rxLinkSpeed: number | null;\n txLinkSpeed: number | null;\n }\n>;\nexport type NetInfoBluetoothState = NetInfoConnectedState<\n NetInfoStateType.bluetooth\n>;\nexport type NetInfoEthernetState = NetInfoConnectedState<\n NetInfoStateType.ethernet,\n {\n ipAddress: string | null;\n subnet: string | null;\n }\n>;\nexport type NetInfoWimaxState = NetInfoConnectedState;\nexport type NetInfoVpnState = NetInfoConnectedState;\nexport type NetInfoOtherState = NetInfoConnectedState;\nexport type NetInfoConnectedStates =\n | NetInfoCellularState\n | NetInfoWifiState\n | NetInfoBluetoothState\n | NetInfoEthernetState\n | NetInfoWimaxState\n | NetInfoVpnState\n | NetInfoOtherState;\n\nexport type NetInfoState = NetInfoDisconnectedStates | NetInfoConnectedStates;\n\nexport type NetInfoChangeHandler = (state: NetInfoState) => void;\nexport type NetInfoSubscription = () => void;\n\nexport interface NetInfoConfiguration {\n reachabilityUrl: string;\n reachabilityMethod?: NetInfoMethodType;\n reachabilityHeaders?: Record;\n reachabilityTest: (response: Response) => Promise;\n reachabilityLongTimeout: number;\n reachabilityShortTimeout: number;\n reachabilityRequestTimeout: number;\n reachabilityShouldRun: () => boolean;\n shouldFetchWiFiSSID: boolean;\n useNativeReachability: boolean;\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["NetInfoStateType","exports","NetInfoCellularGeneration"],"sources":["types.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nexport enum NetInfoStateType {\n unknown = 'unknown',\n none = 'none',\n cellular = 'cellular',\n wifi = 'wifi',\n bluetooth = 'bluetooth',\n ethernet = 'ethernet',\n wimax = 'wimax',\n vpn = 'vpn',\n other = 'other',\n}\n\nexport type NetInfoMethodType = 'HEAD' | 'GET';\n\nexport enum NetInfoCellularGeneration {\n '2g' = '2g',\n '3g' = '3g',\n '4g' = '4g',\n '5g' = '5g',\n}\n\nexport interface NetInfoConnectedDetails {\n isConnectionExpensive: boolean;\n}\n\ninterface NetInfoConnectedState<\n T extends NetInfoStateType,\n D extends Record = Record,\n> {\n type: T;\n isConnected: true;\n isInternetReachable: boolean | null;\n details: D & NetInfoConnectedDetails;\n isWifiEnabled?: boolean;\n}\n\ninterface NetInfoDisconnectedState {\n type: T;\n isConnected: false;\n isInternetReachable: false;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport interface NetInfoUnknownState {\n type: NetInfoStateType.unknown;\n isConnected: boolean | null;\n isInternetReachable: null;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport type NetInfoNoConnectionState =\n NetInfoDisconnectedState;\nexport type NetInfoDisconnectedStates =\n | NetInfoUnknownState\n | NetInfoNoConnectionState;\n\nexport type NetInfoCellularState = NetInfoConnectedState<\n NetInfoStateType.cellular,\n {\n cellularGeneration: NetInfoCellularGeneration | null;\n carrier: string | null;\n }\n>;\nexport type NetInfoWifiState = NetInfoConnectedState<\n NetInfoStateType.wifi,\n {\n ssid: string | null;\n bssid: string | null;\n strength: number | null;\n ipAddress: string | null;\n subnet: string | null;\n frequency: number | null;\n linkSpeed: number | null;\n rxLinkSpeed: number | null;\n txLinkSpeed: number | null;\n }\n>;\nexport type NetInfoBluetoothState =\n NetInfoConnectedState;\nexport type NetInfoEthernetState = NetInfoConnectedState<\n NetInfoStateType.ethernet,\n {\n ipAddress: string | null;\n subnet: string | null;\n }\n>;\nexport type NetInfoWimaxState = NetInfoConnectedState;\nexport type NetInfoVpnState = NetInfoConnectedState;\nexport type NetInfoOtherState = NetInfoConnectedState;\nexport type NetInfoConnectedStates =\n | NetInfoCellularState\n | NetInfoWifiState\n | NetInfoBluetoothState\n | NetInfoEthernetState\n | NetInfoWimaxState\n | NetInfoVpnState\n | NetInfoOtherState;\n\nexport type NetInfoState = NetInfoDisconnectedStates | NetInfoConnectedStates;\n\nexport type NetInfoChangeHandler = (state: NetInfoState) => void;\nexport type NetInfoSubscription = () => void;\n\nexport interface NetInfoConfiguration {\n reachabilityUrl: string;\n reachabilityMethod?: NetInfoMethodType;\n reachabilityHeaders?: Record;\n reachabilityTest: (response: Response) => Promise;\n reachabilityLongTimeout: number;\n reachabilityShortTimeout: number;\n reachabilityRequestTimeout: number;\n reachabilityShouldRun: () => boolean;\n shouldFetchWiFiSSID: boolean;\n useNativeReachability: boolean;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IASYA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAA,IAchBE,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/index.js b/node_modules/@react-native-community/netinfo/lib/module/index.js +index 147c72e..02aa0db 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/index.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/index.js +@@ -6,20 +6,23 @@ + * + * @format + */ ++ + import { useState, useEffect, useCallback } from 'react'; + import { Platform } from 'react-native'; + import DEFAULT_CONFIGURATION from './internal/defaultConfiguration'; + import NativeInterface from './internal/nativeInterface'; + import State from './internal/state'; +-import * as Types from './internal/types'; // Stores the currently used configuration ++import * as Types from './internal/types'; + +-let _configuration = DEFAULT_CONFIGURATION; // Stores the singleton reference to the state manager ++// Stores the currently used configuration ++let _configuration = DEFAULT_CONFIGURATION; + ++// Stores the singleton reference to the state manager + let _state = null; +- + const createState = () => { + return new State(_configuration); + }; ++ + /** + * Configures the library with the given configuration. Note that calling this will stop all + * previously added listeners from being called again. It is best to call this right when your +@@ -27,23 +30,20 @@ const createState = () => { + * + * @param configuration The new configuration to set. + */ +- +- + export function configure(configuration) { +- _configuration = { ...DEFAULT_CONFIGURATION, ++ _configuration = { ++ ...DEFAULT_CONFIGURATION, + ...configuration + }; +- + if (_state) { + _state.tearDown(); +- + _state = createState(); + } +- + if (Platform.OS === 'ios') { + NativeInterface.configure(configuration); + } + } ++ + /** + * Returns a `Promise` that resolves to a `NetInfoState` object. + * This function operates on the global singleton instance configured using `configure()` +@@ -52,27 +52,25 @@ export function configure(configuration) { + * + * @returns A Promise which contains the current connection state. + */ +- + export function fetch(requestedInterface) { + if (!_state) { + _state = createState(); + } +- + return _state.latest(requestedInterface); + } ++ + /** + * Force-refreshes the internal state of the global singleton managed by this library. + * + * @returns A Promise which contains the updated connection state. + */ +- + export function refresh() { + if (!_state) { + _state = createState(); + } +- + return _state._fetchCurrentState(); + } ++ + /** + * Subscribe to the global singleton's connection information. The callback is called with a parameter of type + * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener +@@ -84,18 +82,16 @@ export function refresh() { + * + * @returns A function which can be called to unsubscribe. + */ +- + export function addEventListener(listener) { + if (!_state) { + _state = createState(); + } +- + _state.add(listener); +- + return () => { + _state && _state.remove(listener); + }; + } ++ + /** + * A React Hook into this library's singleton which updates when the connection state changes. + * +@@ -103,12 +99,10 @@ export function addEventListener(listener) { + * + * @returns The connection state. + */ +- + export function useNetInfo(configuration) { + if (configuration) { + configure(configuration); + } +- + const [netInfo, setNetInfo] = useState({ + type: Types.NetInfoStateType.unknown, + isConnected: null, +@@ -120,6 +114,7 @@ export function useNetInfo(configuration) { + }, []); + return netInfo; + } ++ + /** + * A React Hook which manages an isolated instance of the network info manager. + * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener, +@@ -129,7 +124,6 @@ export function useNetInfo(configuration) { + * + * @returns the netInfo state and a refresh function + */ +- + export function useNetInfoInstance(isPaused = false, configuration) { + const [networkInfoManager, setNetworkInfoManager] = useState(); + const [netInfo, setNetInfo] = useState({ +@@ -142,8 +136,8 @@ export function useNetInfoInstance(isPaused = false, configuration) { + if (isPaused) { + return; + } +- +- const config = { ...DEFAULT_CONFIGURATION, ++ const config = { ++ ...DEFAULT_CONFIGURATION, + ...configuration + }; + const state = new State(config); +diff --git a/node_modules/@react-native-community/netinfo/lib/module/index.js.map b/node_modules/@react-native-community/netinfo/lib/module/index.js.map +index 937c538..268c26e 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/index.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.ts"],"names":["useState","useEffect","useCallback","Platform","DEFAULT_CONFIGURATION","NativeInterface","State","Types","_configuration","_state","createState","configure","configuration","tearDown","OS","fetch","requestedInterface","latest","refresh","_fetchCurrentState","addEventListener","listener","add","remove","useNetInfo","netInfo","setNetInfo","type","NetInfoStateType","unknown","isConnected","isInternetReachable","details","useNetInfoInstance","isPaused","networkInfoManager","setNetworkInfoManager","config","state"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {useState, useEffect, useCallback} from 'react';\nimport {Platform} from 'react-native';\nimport DEFAULT_CONFIGURATION from './internal/defaultConfiguration';\nimport NativeInterface from './internal/nativeInterface';\nimport State from './internal/state';\nimport * as Types from './internal/types';\n\n// Stores the currently used configuration\nlet _configuration = DEFAULT_CONFIGURATION;\n\n// Stores the singleton reference to the state manager\nlet _state: State | null = null;\nconst createState = (): State => {\n return new State(_configuration);\n};\n\n/**\n * Configures the library with the given configuration. Note that calling this will stop all\n * previously added listeners from being called again. It is best to call this right when your\n * application is started to avoid issues. The configuration sets up a global singleton instance.\n *\n * @param configuration The new configuration to set.\n */\nexport function configure(\n configuration: Partial,\n): void {\n _configuration = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n\n if (_state) {\n _state.tearDown();\n _state = createState();\n }\n\n if (Platform.OS === 'ios') {\n NativeInterface.configure(configuration);\n }\n}\n\n/**\n * Returns a `Promise` that resolves to a `NetInfoState` object.\n * This function operates on the global singleton instance configured using `configure()`\n *\n * @param [requestedInterface] interface from which to obtain the information\n *\n * @returns A Promise which contains the current connection state.\n */\nexport function fetch(\n requestedInterface?: string,\n): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state.latest(requestedInterface);\n}\n\n/**\n * Force-refreshes the internal state of the global singleton managed by this library.\n *\n * @returns A Promise which contains the updated connection state.\n */\nexport function refresh(): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state._fetchCurrentState();\n}\n\n/**\n * Subscribe to the global singleton's connection information. The callback is called with a parameter of type\n * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener\n * will be called with the latest information soon after you subscribe and then with any\n * subsequent changes afterwards. You should not assume that the listener is called in the same\n * way across devices or platforms.\n *\n * @param listener The listener which is called when the network state changes.\n *\n * @returns A function which can be called to unsubscribe.\n */\nexport function addEventListener(\n listener: Types.NetInfoChangeHandler,\n): Types.NetInfoSubscription {\n if (!_state) {\n _state = createState();\n }\n\n _state.add(listener);\n return (): void => {\n _state && _state.remove(listener);\n };\n}\n\n/**\n * A React Hook into this library's singleton which updates when the connection state changes.\n *\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns The connection state.\n */\nexport function useNetInfo(\n configuration?: Partial,\n): Types.NetInfoState {\n if (configuration) {\n configure(configuration);\n }\n\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect((): (() => void) => {\n return addEventListener(setNetInfo);\n }, []);\n\n return netInfo;\n}\n\n/**\n * A React Hook which manages an isolated instance of the network info manager.\n * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener,\n * NetInfo.fetch, NetInfo.refresh are performed on a global singleton and have no affect on this hook.\n * @param {boolean} isPaused - Pause the internal network checks.\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns the netInfo state and a refresh function\n */\nexport function useNetInfoInstance(\n isPaused = false,\n configuration?: Partial,\n) {\n const [networkInfoManager, setNetworkInfoManager] = useState();\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect(() => {\n if (isPaused) {\n return;\n }\n const config = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n const state = new State(config);\n setNetworkInfoManager(state);\n state.add(setNetInfo);\n return state.tearDown;\n }, [isPaused, configuration]);\n\n const refresh = useCallback(() => {\n networkInfoManager && networkInfoManager._fetchCurrentState();\n }, [networkInfoManager]);\n\n return {\n netInfo,\n refresh,\n };\n}\n\nexport * from './internal/types';\n\nexport default {\n configure,\n fetch,\n refresh,\n addEventListener,\n useNetInfo,\n useNetInfoInstance,\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["useState","useEffect","useCallback","Platform","DEFAULT_CONFIGURATION","NativeInterface","State","Types","_configuration","_state","createState","configure","configuration","tearDown","OS","fetch","requestedInterface","latest","refresh","_fetchCurrentState","addEventListener","listener","add","remove","useNetInfo","netInfo","setNetInfo","type","NetInfoStateType","unknown","isConnected","isInternetReachable","details","useNetInfoInstance","isPaused","networkInfoManager","setNetworkInfoManager","config","state"],"sources":["index.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {useState, useEffect, useCallback} from 'react';\nimport {Platform} from 'react-native';\nimport DEFAULT_CONFIGURATION from './internal/defaultConfiguration';\nimport NativeInterface from './internal/nativeInterface';\nimport State from './internal/state';\nimport * as Types from './internal/types';\n\n// Stores the currently used configuration\nlet _configuration = DEFAULT_CONFIGURATION;\n\n// Stores the singleton reference to the state manager\nlet _state: State | null = null;\nconst createState = (): State => {\n return new State(_configuration);\n};\n\n/**\n * Configures the library with the given configuration. Note that calling this will stop all\n * previously added listeners from being called again. It is best to call this right when your\n * application is started to avoid issues. The configuration sets up a global singleton instance.\n *\n * @param configuration The new configuration to set.\n */\nexport function configure(\n configuration: Partial,\n): void {\n _configuration = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n\n if (_state) {\n _state.tearDown();\n _state = createState();\n }\n\n if (Platform.OS === 'ios') {\n NativeInterface.configure(configuration);\n }\n}\n\n/**\n * Returns a `Promise` that resolves to a `NetInfoState` object.\n * This function operates on the global singleton instance configured using `configure()`\n *\n * @param [requestedInterface] interface from which to obtain the information\n *\n * @returns A Promise which contains the current connection state.\n */\nexport function fetch(\n requestedInterface?: string,\n): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state.latest(requestedInterface);\n}\n\n/**\n * Force-refreshes the internal state of the global singleton managed by this library.\n *\n * @returns A Promise which contains the updated connection state.\n */\nexport function refresh(): Promise {\n if (!_state) {\n _state = createState();\n }\n return _state._fetchCurrentState();\n}\n\n/**\n * Subscribe to the global singleton's connection information. The callback is called with a parameter of type\n * [`NetInfoState`](README.md#netinfostate) whenever the connection state changes. Your listener\n * will be called with the latest information soon after you subscribe and then with any\n * subsequent changes afterwards. You should not assume that the listener is called in the same\n * way across devices or platforms.\n *\n * @param listener The listener which is called when the network state changes.\n *\n * @returns A function which can be called to unsubscribe.\n */\nexport function addEventListener(\n listener: Types.NetInfoChangeHandler,\n): Types.NetInfoSubscription {\n if (!_state) {\n _state = createState();\n }\n\n _state.add(listener);\n return (): void => {\n _state && _state.remove(listener);\n };\n}\n\n/**\n * A React Hook into this library's singleton which updates when the connection state changes.\n *\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns The connection state.\n */\nexport function useNetInfo(\n configuration?: Partial,\n): Types.NetInfoState {\n if (configuration) {\n configure(configuration);\n }\n\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect((): (() => void) => {\n return addEventListener(setNetInfo);\n }, []);\n\n return netInfo;\n}\n\n/**\n * A React Hook which manages an isolated instance of the network info manager.\n * This is not a hook into a singleton shared state. NetInfo.configure, NetInfo.addEventListener,\n * NetInfo.fetch, NetInfo.refresh are performed on a global singleton and have no affect on this hook.\n * @param {boolean} isPaused - Pause the internal network checks.\n * @param {Partial} configuration - Configure the isolated network checker managed by this hook\n *\n * @returns the netInfo state and a refresh function\n */\nexport function useNetInfoInstance(\n isPaused = false,\n configuration?: Partial,\n) {\n const [networkInfoManager, setNetworkInfoManager] = useState();\n const [netInfo, setNetInfo] = useState({\n type: Types.NetInfoStateType.unknown,\n isConnected: null,\n isInternetReachable: null,\n details: null,\n });\n\n useEffect(() => {\n if (isPaused) {\n return;\n }\n const config = {\n ...DEFAULT_CONFIGURATION,\n ...configuration,\n };\n const state = new State(config);\n setNetworkInfoManager(state);\n state.add(setNetInfo);\n return state.tearDown;\n }, [isPaused, configuration]);\n\n const refresh = useCallback(() => {\n networkInfoManager && networkInfoManager._fetchCurrentState();\n }, [networkInfoManager]);\n\n return {\n netInfo,\n refresh,\n };\n}\n\nexport * from './internal/types';\n\nexport default {\n configure,\n fetch,\n refresh,\n addEventListener,\n useNetInfo,\n useNetInfoInstance,\n};\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js b/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js +new file mode 100644 +index 0000000..54a9e1b +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js +@@ -0,0 +1,5 @@ ++/* eslint-disable @typescript-eslint/ban-types */ ++ ++import { TurboModuleRegistry } from 'react-native'; ++export default TurboModuleRegistry.getEnforcing('RNCNetInfo'); ++//# sourceMappingURL=NativeRNCNetInfo.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js.map +new file mode 100644 +index 0000000..d366286 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/NativeRNCNetInfo.js.map +@@ -0,0 +1 @@ ++{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sources":["NativeRNCNetInfo.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n configure: (config: Object) => void;\n getCurrentState(requestedInterface?: string): Promise;\n // Events\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n}\n\nexport default TurboModuleRegistry.getEnforcing('RNCNetInfo');\n\n"],"mappings":"AAAA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AAUlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.js.map +index 6a190c8..0ec7a12 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["defaultConfiguration.ts"],"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"mappings":"AAEA,MAAMA,qBAAiD,GAAG;AACxDC,EAAAA,eAAe,EAAE,0CADuC;AAExDC,EAAAA,kBAAkB,EAAE,MAFoC;AAGxDC,EAAAA,mBAAmB,EAAE,EAHmC;AAIxDC,EAAAA,gBAAgB,EAAGC,QAAD,IAChBC,OAAO,CAACC,OAAR,CAAgBF,QAAQ,CAACG,MAAT,KAAoB,GAApC,CALsD;AAMxDC,EAAAA,wBAAwB,EAAE,IAAI,IAN0B;AAMpB;AACpCC,EAAAA,uBAAuB,EAAE,KAAK,IAP0B;AAOpB;AACpCC,EAAAA,0BAA0B,EAAE,KAAK,IARuB;AAQjB;AACvCC,EAAAA,qBAAqB,EAAE,MAAe,IATkB;AAUxDC,EAAAA,mBAAmB,EAAE,KAVmC;AAWxDC,EAAAA,qBAAqB,EAAE;AAXiC,CAA1D;AAcA,eAAed,qBAAf","sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: 'https://clients3.google.com/generate_204',\n reachabilityMethod: 'HEAD',\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 204),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: false,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION;"]} +\ No newline at end of file ++{"version":3,"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"sources":["defaultConfiguration.ts"],"sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: 'https://clients3.google.com/generate_204',\n reachabilityMethod: 'HEAD',\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 204),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: false,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION;"],"mappings":"AAEA,MAAMA,qBAAiD,GAAG;EACxDC,eAAe,EAAE,0CAA0C;EAC3DC,kBAAkB,EAAE,MAAM;EAC1BC,mBAAmB,EAAE,CAAC,CAAC;EACvBC,gBAAgB,EAAGC,QAAkB,IACnCC,OAAO,CAACC,OAAO,CAACF,QAAQ,CAACG,MAAM,KAAK,GAAG,CAAC;EAC1CC,wBAAwB,EAAE,CAAC,GAAG,IAAI;EAAE;EACpCC,uBAAuB,EAAE,EAAE,GAAG,IAAI;EAAE;EACpCC,0BAA0B,EAAE,EAAE,GAAG,IAAI;EAAE;EACvCC,qBAAqB,EAAEA,CAAA,KAAe,IAAI;EAC1CC,mBAAmB,EAAE,KAAK;EAC1BC,qBAAqB,EAAE;AACzB,CAAC;AAED,eAAed,qBAAqB"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.web.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.web.js.map +index ba01d7a..011de62 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/defaultConfiguration.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["defaultConfiguration.web.ts"],"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"mappings":"AAEA,MAAMA,qBAAiD,GAAG;AACxDC,EAAAA,eAAe,EAAE,GADuC;AAExDC,EAAAA,kBAAkB,EAAE,MAFoC;AAGxDC,EAAAA,mBAAmB,EAAE,EAHmC;AAIxDC,EAAAA,gBAAgB,EAAGC,QAAD,IAChBC,OAAO,CAACC,OAAR,CAAgBF,QAAQ,CAACG,MAAT,KAAoB,GAApC,CALsD;AAMxDC,EAAAA,wBAAwB,EAAE,IAAI,IAN0B;AAMpB;AACpCC,EAAAA,uBAAuB,EAAE,KAAK,IAP0B;AAOpB;AACpCC,EAAAA,0BAA0B,EAAE,KAAK,IARuB;AAQjB;AACvCC,EAAAA,qBAAqB,EAAE,MAAe,IATkB;AAUxDC,EAAAA,mBAAmB,EAAE,IAVmC;AAWxDC,EAAAA,qBAAqB,EAAE;AAXiC,CAA1D;AAcA,eAAed,qBAAf","sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: '/',\n reachabilityMethod: \"HEAD\",\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 200),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: true,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION"]} +\ No newline at end of file ++{"version":3,"names":["DEFAULT_CONFIGURATION","reachabilityUrl","reachabilityMethod","reachabilityHeaders","reachabilityTest","response","Promise","resolve","status","reachabilityShortTimeout","reachabilityLongTimeout","reachabilityRequestTimeout","reachabilityShouldRun","shouldFetchWiFiSSID","useNativeReachability"],"sources":["defaultConfiguration.web.ts"],"sourcesContent":["import * as Types from './types';\n\nconst DEFAULT_CONFIGURATION: Types.NetInfoConfiguration = {\n reachabilityUrl: '/',\n reachabilityMethod: \"HEAD\",\n reachabilityHeaders: {},\n reachabilityTest: (response: Response): Promise =>\n Promise.resolve(response.status === 200),\n reachabilityShortTimeout: 5 * 1000, // 5s\n reachabilityLongTimeout: 60 * 1000, // 60s\n reachabilityRequestTimeout: 15 * 1000, // 15s\n reachabilityShouldRun: (): boolean => true,\n shouldFetchWiFiSSID: true,\n useNativeReachability: true\n};\n\nexport default DEFAULT_CONFIGURATION"],"mappings":"AAEA,MAAMA,qBAAiD,GAAG;EACxDC,eAAe,EAAE,GAAG;EACpBC,kBAAkB,EAAE,MAAM;EAC1BC,mBAAmB,EAAE,CAAC,CAAC;EACvBC,gBAAgB,EAAGC,QAAkB,IACnCC,OAAO,CAACC,OAAO,CAACF,QAAQ,CAACG,MAAM,KAAK,GAAG,CAAC;EAC1CC,wBAAwB,EAAE,CAAC,GAAG,IAAI;EAAE;EACpCC,uBAAuB,EAAE,EAAE,GAAG,IAAI;EAAE;EACpCC,0BAA0B,EAAE,EAAE,GAAG,IAAI;EAAE;EACvCC,qBAAqB,EAAEA,CAAA,KAAe,IAAI;EAC1CC,mBAAmB,EAAE,IAAI;EACzBC,qBAAqB,EAAE;AACzB,CAAC;AAED,eAAed,qBAAqB"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js b/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js +index 408453a..e373eef 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js +@@ -1,5 +1,6 @@ +-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +- ++function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } ++function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } ++function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -8,57 +9,45 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope + * + * @format + */ ++ + export default class InternetReachability { + constructor(configuration, listener) { + _defineProperty(this, "_configuration", void 0); +- + _defineProperty(this, "_listener", void 0); +- + _defineProperty(this, "_isInternetReachable", undefined); +- + _defineProperty(this, "_currentInternetReachabilityCheckHandler", null); +- + _defineProperty(this, "_currentTimeoutHandle", null); +- + _defineProperty(this, "_setIsInternetReachable", isInternetReachable => { + if (this._isInternetReachable === isInternetReachable) { + return; + } +- + this._isInternetReachable = isInternetReachable; +- + this._listener(this._isInternetReachable); + }); +- + _defineProperty(this, "_setExpectsConnection", expectsConnection => { + // Cancel any pending check + if (this._currentInternetReachabilityCheckHandler !== null) { + this._currentInternetReachabilityCheckHandler.cancel(); +- + this._currentInternetReachabilityCheckHandler = null; +- } // Cancel any pending timeout +- +- ++ } ++ // Cancel any pending timeout + if (this._currentTimeoutHandle !== null) { + clearTimeout(this._currentTimeoutHandle); + this._currentTimeoutHandle = null; + } +- + if (expectsConnection && this._configuration.reachabilityShouldRun()) { + // If we expect a connection, start the process for finding if we have one + // Set the state to "null" if it was previously false + if (!this._isInternetReachable) { + this._setIsInternetReachable(null); +- } // Start a network request to check for internet +- +- ++ } ++ // Start a network request to check for internet + this._currentInternetReachabilityCheckHandler = this._checkInternetReachability(); + } else { + // If we don't expect a connection or don't run reachability check, just change the state to "false" + this._setIsInternetReachable(false); + } + }); +- + _defineProperty(this, "_checkInternetReachability", () => { + const controller = new AbortController(); + const responsePromise = fetch(this._configuration.reachabilityUrl, { +@@ -66,16 +55,17 @@ export default class InternetReachability { + method: this._configuration.reachabilityMethod, + cache: 'no-cache', + signal: controller.signal +- }); // Create promise that will reject after the request timeout has been reached ++ }); + ++ // Create promise that will reject after the request timeout has been reached + let timeoutHandle; +- const timeoutPromise = new Promise(() => { +- timeoutHandle = setTimeout(() => controller.abort('timedout'), this._configuration.reachabilityRequestTimeout); +- }); // Create promise that makes it possible to cancel a pending request through a reject +- // eslint-disable-next-line @typescript-eslint/no-empty-function ++ const timeoutPromise = new Promise((_, reject) => { ++ timeoutHandle = setTimeout(() => reject('timedout'), this._configuration.reachabilityRequestTimeout); ++ }); + ++ // Create promise that makes it possible to cancel a pending request through a reject ++ // eslint-disable-next-line @typescript-eslint/no-empty-function + let cancel = () => {}; +- + const cancelPromise = new Promise((_, reject) => { + cancel = () => reject('canceled'); + }); +@@ -83,18 +73,25 @@ export default class InternetReachability { + return this._configuration.reachabilityTest(response); + }).then(result => { + this._setIsInternetReachable(result); +- + const nextTimeoutInterval = this._isInternetReachable ? this._configuration.reachabilityLongTimeout : this._configuration.reachabilityShortTimeout; + this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, nextTimeoutInterval); ++ }).catch(error => { ++ if (error !== 'canceled') { ++ this._setIsInternetReachable(false); ++ this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, this._configuration.reachabilityShortTimeout); ++ } + }).catch(error => { + if ('canceled' === error) { + controller.abort(); + } else { ++ if ('timedout' === error) { ++ controller.abort(); ++ } + this._setIsInternetReachable(false); +- + this._currentTimeoutHandle = setTimeout(this._checkInternetReachability, this._configuration.reachabilityShortTimeout); + } +- }) // Clear request timeout and propagate any errors ++ }) ++ // Clear request timeout and propagate any errors + .then(() => { + clearTimeout(timeoutHandle); + }, error => { +@@ -106,7 +103,6 @@ export default class InternetReachability { + cancel + }; + }); +- + _defineProperty(this, "update", state => { + if (typeof state.isInternetReachable === 'boolean' && this._configuration.useNativeReachability) { + this._setIsInternetReachable(state.isInternetReachable); +@@ -114,29 +110,24 @@ export default class InternetReachability { + this._setExpectsConnection(state.isConnected); + } + }); +- + _defineProperty(this, "currentState", () => { + return this._isInternetReachable; + }); +- + _defineProperty(this, "tearDown", () => { + // Cancel any pending check + if (this._currentInternetReachabilityCheckHandler !== null) { + this._currentInternetReachabilityCheckHandler.cancel(); +- + this._currentInternetReachabilityCheckHandler = null; +- } // Cancel any pending timeout +- ++ } + ++ // Cancel any pending timeout + if (this._currentTimeoutHandle !== null) { + clearTimeout(this._currentTimeoutHandle); + this._currentTimeoutHandle = null; + } + }); +- + this._configuration = configuration; + this._listener = listener; + } +- + } + //# sourceMappingURL=internetReachability.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js.map +index a998c5f..544e5cb 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/internetReachability.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["internetReachability.ts"],"names":["InternetReachability","constructor","configuration","listener","undefined","isInternetReachable","_isInternetReachable","_listener","expectsConnection","_currentInternetReachabilityCheckHandler","cancel","_currentTimeoutHandle","clearTimeout","_configuration","reachabilityShouldRun","_setIsInternetReachable","_checkInternetReachability","controller","AbortController","responsePromise","fetch","reachabilityUrl","headers","reachabilityHeaders","method","reachabilityMethod","cache","signal","timeoutHandle","timeoutPromise","Promise","setTimeout","abort","reachabilityRequestTimeout","cancelPromise","_","reject","promise","race","then","response","reachabilityTest","result","nextTimeoutInterval","reachabilityLongTimeout","reachabilityShortTimeout","catch","error","state","useNativeReachability","_setExpectsConnection","isConnected"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport * as PrivateTypes from './privateTypes';\nimport * as Types from './types';\n\ninterface InternetReachabilityCheckHandler {\n promise: Promise;\n cancel: () => void;\n}\n\nexport default class InternetReachability {\n private _configuration: Types.NetInfoConfiguration;\n private _listener: PrivateTypes.NetInfoInternetReachabilityChangeListener;\n private _isInternetReachable: boolean | null | undefined = undefined;\n private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null = null;\n private _currentTimeoutHandle: ReturnType | null = null;\n\n constructor(\n configuration: Types.NetInfoConfiguration,\n listener: PrivateTypes.NetInfoInternetReachabilityChangeListener,\n ) {\n this._configuration = configuration;\n this._listener = listener;\n }\n\n private _setIsInternetReachable = (\n isInternetReachable: boolean | null,\n ): void => {\n if (this._isInternetReachable === isInternetReachable) {\n return;\n }\n\n this._isInternetReachable = isInternetReachable;\n this._listener(this._isInternetReachable);\n };\n\n private _setExpectsConnection = (expectsConnection: boolean | null): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n\n if (expectsConnection && this._configuration.reachabilityShouldRun()) {\n // If we expect a connection, start the process for finding if we have one\n // Set the state to \"null\" if it was previously false\n if (!this._isInternetReachable) {\n this._setIsInternetReachable(null);\n }\n // Start a network request to check for internet\n this._currentInternetReachabilityCheckHandler = this._checkInternetReachability();\n } else {\n // If we don't expect a connection or don't run reachability check, just change the state to \"false\"\n this._setIsInternetReachable(false);\n }\n };\n\n private _checkInternetReachability = (): InternetReachabilityCheckHandler => {\n const controller = new AbortController();\n\n const responsePromise = fetch(this._configuration.reachabilityUrl, {\n headers: this._configuration.reachabilityHeaders,\n method: this._configuration.reachabilityMethod,\n cache: 'no-cache',\n signal: controller.signal,\n });\n\n // Create promise that will reject after the request timeout has been reached\n let timeoutHandle: ReturnType;\n const timeoutPromise = new Promise((): void => {\n timeoutHandle = setTimeout(\n (): void => controller.abort('timedout'),\n this._configuration.reachabilityRequestTimeout,\n );\n });\n\n // Create promise that makes it possible to cancel a pending request through a reject\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let cancel: () => void = (): void => {};\n const cancelPromise = new Promise((_, reject): void => {\n cancel = (): void => reject('canceled');\n });\n\n const promise = Promise.race([\n responsePromise,\n timeoutPromise,\n cancelPromise,\n ])\n .then(\n (response): Promise => {\n return this._configuration.reachabilityTest(response);\n },\n )\n .then(\n (result): void => {\n this._setIsInternetReachable(result);\n const nextTimeoutInterval = this._isInternetReachable\n ? this._configuration.reachabilityLongTimeout\n : this._configuration.reachabilityShortTimeout;\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n nextTimeoutInterval,\n );\n },\n )\n .catch(\n (error: Error | 'timedout' | 'canceled'): void => {\n if ('canceled' === error) {\n controller.abort();\n } else {\n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n },\n )\n // Clear request timeout and propagate any errors\n .then(\n (): void => {\n clearTimeout(timeoutHandle);\n },\n (error: Error): void => {\n clearTimeout(timeoutHandle);\n throw error;\n },\n );\n\n return {\n promise,\n cancel,\n };\n };\n\n public update = (state: PrivateTypes.NetInfoNativeModuleState): void => {\n if (\n typeof state.isInternetReachable === 'boolean' &&\n this._configuration.useNativeReachability\n ) {\n this._setIsInternetReachable(state.isInternetReachable);\n } else {\n this._setExpectsConnection(state.isConnected);\n }\n };\n\n public currentState = (): boolean | null | undefined => {\n return this._isInternetReachable;\n };\n\n public tearDown = (): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n };\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["InternetReachability","constructor","configuration","listener","_defineProperty","undefined","isInternetReachable","_isInternetReachable","_listener","expectsConnection","_currentInternetReachabilityCheckHandler","cancel","_currentTimeoutHandle","clearTimeout","_configuration","reachabilityShouldRun","_setIsInternetReachable","_checkInternetReachability","controller","AbortController","responsePromise","fetch","reachabilityUrl","headers","reachabilityHeaders","method","reachabilityMethod","cache","signal","timeoutHandle","timeoutPromise","Promise","_","reject","setTimeout","reachabilityRequestTimeout","cancelPromise","promise","race","then","response","reachabilityTest","result","nextTimeoutInterval","reachabilityLongTimeout","reachabilityShortTimeout","catch","error","abort","state","useNativeReachability","_setExpectsConnection","isConnected"],"sources":["internetReachability.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport * as PrivateTypes from './privateTypes';\nimport * as Types from './types';\n\ninterface InternetReachabilityCheckHandler {\n promise: Promise;\n cancel: () => void;\n}\n\nexport default class InternetReachability {\n private _configuration: Types.NetInfoConfiguration;\n private _listener: PrivateTypes.NetInfoInternetReachabilityChangeListener;\n private _isInternetReachable: boolean | null | undefined = undefined;\n private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null =\n null;\n private _currentTimeoutHandle: ReturnType | null = null;\n\n constructor(\n configuration: Types.NetInfoConfiguration,\n listener: PrivateTypes.NetInfoInternetReachabilityChangeListener,\n ) {\n this._configuration = configuration;\n this._listener = listener;\n }\n\n private _setIsInternetReachable = (\n isInternetReachable: boolean | null,\n ): void => {\n if (this._isInternetReachable === isInternetReachable) {\n return;\n }\n\n this._isInternetReachable = isInternetReachable;\n this._listener(this._isInternetReachable);\n };\n\n private _setExpectsConnection = (expectsConnection: boolean | null): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n\n if (expectsConnection && this._configuration.reachabilityShouldRun()) {\n // If we expect a connection, start the process for finding if we have one\n // Set the state to \"null\" if it was previously false\n if (!this._isInternetReachable) {\n this._setIsInternetReachable(null);\n }\n // Start a network request to check for internet\n this._currentInternetReachabilityCheckHandler =\n this._checkInternetReachability();\n } else {\n // If we don't expect a connection or don't run reachability check, just change the state to \"false\"\n this._setIsInternetReachable(false);\n }\n };\n\n private _checkInternetReachability = (): InternetReachabilityCheckHandler => {\n const controller = new AbortController();\n\n const responsePromise = fetch(this._configuration.reachabilityUrl, {\n headers: this._configuration.reachabilityHeaders,\n method: this._configuration.reachabilityMethod,\n cache: 'no-cache',\n signal: controller.signal,\n });\n\n // Create promise that will reject after the request timeout has been reached\n let timeoutHandle: ReturnType;\n const timeoutPromise = new Promise((_, reject): void => {\n timeoutHandle = setTimeout(\n (): void => reject('timedout'),\n this._configuration.reachabilityRequestTimeout,\n );\n });\n\n // Create promise that makes it possible to cancel a pending request through a reject\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let cancel: () => void = (): void => {};\n const cancelPromise = new Promise((_, reject): void => {\n cancel = (): void => reject('canceled');\n });\n\n const promise = Promise.race([\n responsePromise,\n timeoutPromise,\n cancelPromise,\n ])\n .then((response): Promise => {\n return this._configuration.reachabilityTest(response);\n })\n .then((result): void => {\n this._setIsInternetReachable(result);\n const nextTimeoutInterval = this._isInternetReachable\n ? this._configuration.reachabilityLongTimeout\n : this._configuration.reachabilityShortTimeout;\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n nextTimeoutInterval,\n );\n })\n .catch((error: Error | 'timedout' | 'canceled'): void => {\n if (error !== 'canceled') {\n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n })\n .catch(\n (error: Error | 'timedout' | 'canceled'): void => {\n if ('canceled' === error) {\n controller.abort();\n } else {\n if ('timedout' === error) {\n controller.abort();\n }\n \n this._setIsInternetReachable(false);\n this._currentTimeoutHandle = setTimeout(\n this._checkInternetReachability,\n this._configuration.reachabilityShortTimeout,\n );\n }\n },\n )\n // Clear request timeout and propagate any errors\n .then(\n (): void => {\n clearTimeout(timeoutHandle);\n },\n (error: Error): void => {\n clearTimeout(timeoutHandle);\n throw error;\n },\n );\n\n return {\n promise,\n cancel,\n };\n };\n\n public update = (state: PrivateTypes.NetInfoNativeModuleState): void => {\n if (\n typeof state.isInternetReachable === 'boolean' &&\n this._configuration.useNativeReachability\n ) {\n this._setIsInternetReachable(state.isInternetReachable);\n } else {\n this._setExpectsConnection(state.isConnected);\n }\n };\n\n public currentState = (): boolean | null | undefined => {\n return this._isInternetReachable;\n };\n\n public tearDown = (): void => {\n // Cancel any pending check\n if (this._currentInternetReachabilityCheckHandler !== null) {\n this._currentInternetReachabilityCheckHandler.cancel();\n this._currentInternetReachabilityCheckHandler = null;\n }\n\n // Cancel any pending timeout\n if (this._currentTimeoutHandle !== null) {\n clearTimeout(this._currentTimeoutHandle);\n this._currentTimeoutHandle = null;\n }\n };\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js +index f9a0320..5c9c6bf 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js +@@ -6,9 +6,11 @@ + * + * @format + */ ++ + import { NativeEventEmitter } from 'react-native'; +-import RNCNetInfo from './nativeModule'; // Produce an error if we don't have the native module ++import RNCNetInfo from './nativeModule'; + ++// Produce an error if we don't have the native module + if (!RNCNetInfo) { + throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps: + +@@ -20,26 +22,26 @@ if (!RNCNetInfo) { + + If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`); + } ++ + /** + * We export the native interface in this way to give easy shared access to it between the + * JavaScript code and the tests + */ +- +- + let nativeEventEmitter = null; +-export default { ...RNCNetInfo, +- ++export default { ++ configure: RNCNetInfo.configure, ++ addListener: RNCNetInfo.addListener, ++ removeListeners: RNCNetInfo.removeListeners, ++ getCurrentState: RNCNetInfo.getCurrentState, + get eventEmitter() { + if (!nativeEventEmitter) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + /// @ts-ignore + nativeEventEmitter = new NativeEventEmitter(RNCNetInfo); +- } // eslint-disable-next-line @typescript-eslint/ban-ts-comment ++ } ++ // eslint-disable-next-line @typescript-eslint/ban-ts-comment + /// @ts-ignore +- +- + return nativeEventEmitter; + } +- + }; + //# sourceMappingURL=nativeInterface.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js.map +index 084d180..be2bae7 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.ts"],"names":["NativeEventEmitter","RNCNetInfo","Error","nativeEventEmitter","eventEmitter"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAAQA,kBAAR,QAAiC,cAAjC;AACA,OAAOC,UAAP,MAAuB,gBAAvB,C,CAEA;;AACA,IAAI,CAACA,UAAL,EAAiB;AACf,QAAM,IAAIC,KAAJ,CAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IARQ,CAAN;AASD;AAED;AACA;AACA;AACA;;;AACA,IAAIC,kBAA6C,GAAG,IAApD;AACA,eAAe,EACb,GAAGF,UADU;;AAEb,MAAIG,YAAJ,GAAuC;AACrC,QAAI,CAACD,kBAAL,EAAyB;AACvB;AACA;AACAA,MAAAA,kBAAkB,GAAG,IAAIH,kBAAJ,CAAuBC,UAAvB,CAArB;AACD,KALoC,CAMrC;AACA;;;AACA,WAAOE,kBAAP;AACD;;AAXY,CAAf","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\n\n// Produce an error if we don't have the native module\nif (!RNCNetInfo) {\n throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:\n\n• Run \\`react-native link @react-native-community/netinfo\\` in the project root.\n• Rebuild and re-run the app.\n• If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n• Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.\n* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`);\n}\n\n/**\n * We export the native interface in this way to give easy shared access to it between the\n * JavaScript code and the tests\n */\nlet nativeEventEmitter: NativeEventEmitter | null = null;\nexport default {\n ...RNCNetInfo,\n get eventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n nativeEventEmitter = new NativeEventEmitter(RNCNetInfo);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n return nativeEventEmitter;\n },\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["NativeEventEmitter","RNCNetInfo","Error","nativeEventEmitter","configure","addListener","removeListeners","getCurrentState","eventEmitter"],"sources":["nativeInterface.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\n\n// Produce an error if we don't have the native module\nif (!RNCNetInfo) {\n throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:\n\n• Run \\`react-native link @react-native-community/netinfo\\` in the project root.\n• Rebuild and re-run the app.\n• If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n• Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.\n* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`);\n}\n\n/**\n * We export the native interface in this way to give easy shared access to it between the\n * JavaScript code and the tests\n */\nlet nativeEventEmitter: NativeEventEmitter | null = null;\n\nexport default {\n configure: RNCNetInfo.configure,\n addListener: RNCNetInfo.addListener,\n removeListeners: RNCNetInfo.removeListeners,\n getCurrentState: RNCNetInfo.getCurrentState,\n get eventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n nativeEventEmitter = new NativeEventEmitter(RNCNetInfo);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore\n return nativeEventEmitter;\n },\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQA,kBAAkB,QAAO,cAAc;AAC/C,OAAOC,UAAU,MAAM,gBAAgB;;AAEvC;AACA,IAAI,CAACA,UAAU,EAAE;EACf,MAAM,IAAIC,KAAK,CAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I,CAAC;AAC/I;;AAEA;AACA;AACA;AACA;AACA,IAAIC,kBAA6C,GAAG,IAAI;AAExD,eAAe;EACbC,SAAS,EAAEH,UAAU,CAACG,SAAS;EAC/BC,WAAW,EAAEJ,UAAU,CAACI,WAAW;EACnCC,eAAe,EAAEL,UAAU,CAACK,eAAe;EAC3CC,eAAe,EAAEN,UAAU,CAACM,eAAe;EAC3C,IAAIC,YAAYA,CAAA,EAAuB;IACrC,IAAI,CAACL,kBAAkB,EAAE;MACvB;MACA;MACAA,kBAAkB,GAAG,IAAIH,kBAAkB,CAACC,UAAU,CAAC;IACzD;IACA;IACA;IACA,OAAOE,kBAAkB;EAC3B;AACF,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js +index 2effbe1..90042df 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js +@@ -6,15 +6,18 @@ + * + * @format + */ ++ + import { NativeEventEmitter } from 'react-native'; + import RNCNetInfo from './nativeModule'; + import { DEVICE_CONNECTIVITY_EVENT } from './privateTypes'; +-const nativeEventEmitter = new NativeEventEmitter(); // Listen to connectivity events ++const nativeEventEmitter = new NativeEventEmitter(); + ++// Listen to connectivity events + RNCNetInfo.addListener(DEVICE_CONNECTIVITY_EVENT, event => { + nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event); + }); +-export default { ...RNCNetInfo, ++export default { ++ ...RNCNetInfo, + eventEmitter: nativeEventEmitter + }; + //# sourceMappingURL=nativeInterface.web.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js.map +index 0a0bf4f..c0c0af8 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeInterface.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.web.ts"],"names":["NativeEventEmitter","RNCNetInfo","DEVICE_CONNECTIVITY_EVENT","nativeEventEmitter","addListener","event","emit","eventEmitter"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAAQA,kBAAR,QAAiC,cAAjC;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,SAAQC,yBAAR,QAAwC,gBAAxC;AAEA,MAAMC,kBAAkB,GAAG,IAAIH,kBAAJ,EAA3B,C,CAEA;;AACAC,UAAU,CAACG,WAAX,CACEF,yBADF,EAEGG,KAAD,IAAiB;AACfF,EAAAA,kBAAkB,CAACG,IAAnB,CAAwBJ,yBAAxB,EAAmDG,KAAnD;AACD,CAJH;AAOA,eAAe,EACb,GAAGJ,UADU;AAEbM,EAAAA,YAAY,EAAEJ;AAFD,CAAf","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\nimport {DEVICE_CONNECTIVITY_EVENT} from './privateTypes';\n\nconst nativeEventEmitter = new NativeEventEmitter();\n\n// Listen to connectivity events\nRNCNetInfo.addListener(\n DEVICE_CONNECTIVITY_EVENT,\n (event): void => {\n nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event);\n },\n);\n\nexport default {\n ...RNCNetInfo,\n eventEmitter: nativeEventEmitter,\n};\n"]} +\ No newline at end of file ++{"version":3,"names":["NativeEventEmitter","RNCNetInfo","DEVICE_CONNECTIVITY_EVENT","nativeEventEmitter","addListener","event","emit","eventEmitter"],"sources":["nativeInterface.web.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventEmitter} from 'react-native';\nimport RNCNetInfo from './nativeModule';\nimport {DEVICE_CONNECTIVITY_EVENT} from './privateTypes';\n\nconst nativeEventEmitter = new NativeEventEmitter();\n\n// Listen to connectivity events\nRNCNetInfo.addListener(DEVICE_CONNECTIVITY_EVENT, (event): void => {\n nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event);\n});\n\nexport default {\n ...RNCNetInfo,\n eventEmitter: nativeEventEmitter,\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQA,kBAAkB,QAAO,cAAc;AAC/C,OAAOC,UAAU,MAAM,gBAAgB;AACvC,SAAQC,yBAAyB,QAAO,gBAAgB;AAExD,MAAMC,kBAAkB,GAAG,IAAIH,kBAAkB,CAAC,CAAC;;AAEnD;AACAC,UAAU,CAACG,WAAW,CAACF,yBAAyB,EAAGG,KAAK,IAAW;EACjEF,kBAAkB,CAACG,IAAI,CAACJ,yBAAyB,EAAEG,KAAK,CAAC;AAC3D,CAAC,CAAC;AAEF,eAAe;EACb,GAAGJ,UAAU;EACbM,YAAY,EAAEJ;AAChB,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js +index 11b32ce..4d606d8 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js +@@ -6,7 +6,16 @@ + * + * @format + */ ++ + import { NativeModules } from 'react-native'; +-const RNCNetInfo = NativeModules.RNCNetInfo; ++// React Native sets `__turboModuleProxy` on global when TurboModules are enabled. ++// Currently, this is the recommended way to detect TurboModules. ++// https://reactnative.dev/docs/the-new-architecture/backward-compatibility-turbomodules#unify-the-javascript-specs ++// eslint-disable-next-line @typescript-eslint/ban-ts-comment ++// @ts-ignore ++const isTurboModuleEnabled = global.__turboModuleProxy != null; ++const RNCNetInfo = isTurboModuleEnabled ? ++// eslint-disable-next-line @typescript-eslint/no-var-requires ++require('./NativeRNCNetInfo').default : NativeModules.RNCNetInfo; + export default RNCNetInfo; + //# sourceMappingURL=nativeModule.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js.map +index 4599032..7df218b 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeModule.ts"],"names":["NativeModules","RNCNetInfo"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAAQA,aAAR,QAA4B,cAA5B;AAGA,MAAMC,UAA+B,GAAGD,aAAa,CAACC,UAAtD;AAEA,eAAeA,UAAf","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeModules} from 'react-native';\nimport {NetInfoNativeModule} from './privateTypes';\n\nconst RNCNetInfo: NetInfoNativeModule = NativeModules.RNCNetInfo;\n\nexport default RNCNetInfo;\n"]} +\ No newline at end of file ++{"version":3,"names":["NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","RNCNetInfo","require","default"],"sources":["nativeModule.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeModules} from 'react-native';\nimport {NetInfoNativeModule} from './privateTypes';\n\n// React Native sets `__turboModuleProxy` on global when TurboModules are enabled.\n// Currently, this is the recommended way to detect TurboModules.\n// https://reactnative.dev/docs/the-new-architecture/backward-compatibility-turbomodules#unify-the-javascript-specs\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst isTurboModuleEnabled = global.__turboModuleProxy != null;\n\nconst RNCNetInfo: NetInfoNativeModule = isTurboModuleEnabled\n ? // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('./NativeRNCNetInfo').default\n : NativeModules.RNCNetInfo;\n\nexport default RNCNetInfo;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQA,aAAa,QAAO,cAAc;AAG1C;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,UAA+B,GAAGH,oBAAoB;AACxD;AACAI,OAAO,CAAC,oBAAoB,CAAC,CAACC,OAAO,GACrCN,aAAa,CAACI,UAAU;AAE5B,eAAeA,UAAU"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js +index 32f2ca5..5547977 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js +@@ -6,15 +6,26 @@ + * + * @format + */ ++ + import { DEVICE_CONNECTIVITY_EVENT } from './privateTypes'; +-import { NetInfoCellularGeneration, NetInfoStateType } from './types'; // See https://wicg.github.io/netinfo/#dom-connectiontype ++import { NetInfoCellularGeneration, NetInfoStateType } from './types'; ++ ++// See https://wicg.github.io/netinfo/#dom-connectiontype ++ ++// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype ++ ++// https://wicg.github.io/netinfo/#dom-networkinformation-savedata ++ ++// Create (optional) connection APIs on navigator + + // Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient, + // but this test correctly detects that window is not available and allows for conditionals before access +-const isWindowPresent = typeof window !== 'undefined'; // Check if window exists and if the browser supports the connection API ++const isWindowPresent = typeof window !== 'undefined'; + +-const connection = isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS') ? window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection : undefined; // Map browser types to native types ++// Check if window exists and if the browser supports the connection API ++const connection = isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS') ? window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection : undefined; + ++// Map browser types to native types + const typeMapping = { + bluetooth: NetInfoStateType.bluetooth, + cellular: NetInfoStateType.cellular, +@@ -31,17 +42,20 @@ const effectiveTypeMapping = { + '3g': NetInfoCellularGeneration['3g'], + '4g': NetInfoCellularGeneration['4g'], + 'slow-2g': NetInfoCellularGeneration['2g'] +-}; // Determine current state of connection ++}; + ++// Determine current state of connection + const getCurrentState = _requestedInterface => { + const isConnected = isWindowPresent ? navigator.onLine : false; + const baseState = { + isInternetReachable: null +- }; // If we don't have a connection object, we return minimal information ++ }; + ++ // If we don't have a connection object, we return minimal information + if (!connection) { + if (isConnected) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type: NetInfoStateType.other, + details: { +@@ -50,22 +64,22 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } +- +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: false, + isInternetReachable: false, + type: NetInfoStateType.none, + details: null + }; + return state; +- } // Otherwise try to return detailed information +- ++ } + ++ // Otherwise try to return detailed information + const isConnectionExpensive = connection.saveData; + const type = connection.type ? typeMapping[connection.type] : isConnected ? NetInfoStateType.other : NetInfoStateType.unknown; +- + if (type === NetInfoStateType.bluetooth) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -74,7 +88,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.cellular) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -85,7 +100,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.ethernet) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -96,7 +112,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.wifi) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -114,7 +131,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.wimax) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type, + details: { +@@ -123,7 +141,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.none) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: false, + isInternetReachable: false, + type, +@@ -131,7 +150,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } else if (type === NetInfoStateType.unknown) { +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected, + isInternetReachable: null, + type, +@@ -139,8 +159,8 @@ const getCurrentState = _requestedInterface => { + }; + return state; + } +- +- const state = { ...baseState, ++ const state = { ++ ...baseState, + isConnected: true, + type: NetInfoStateType.other, + details: { +@@ -149,7 +169,6 @@ const getCurrentState = _requestedInterface => { + }; + return state; + }; +- + const handlers = []; + const nativeHandlers = []; + const RNCNetInfo = { +@@ -160,7 +179,6 @@ const RNCNetInfo = { + const nativeHandler = () => { + handler(getCurrentState()); + }; +- + if (connection) { + connection.addEventListener('change', nativeHandler); + } else { +@@ -168,16 +186,15 @@ const RNCNetInfo = { + window.addEventListener('online', nativeHandler, false); + window.addEventListener('offline', nativeHandler, false); + } +- } // Remember handlers +- ++ } + ++ // Remember handlers + handlers.push(handler); + nativeHandlers.push(nativeHandler); + break; + } + } + }, +- + removeListeners(type, handler) { + switch (type) { + case DEVICE_CONNECTIVITY_EVENT: +@@ -185,7 +202,6 @@ const RNCNetInfo = { + // Get native handler + const index = handlers.indexOf(handler); + const nativeHandler = nativeHandlers[index]; +- + if (connection) { + connection.removeEventListener('change', nativeHandler); + } else { +@@ -193,24 +209,21 @@ const RNCNetInfo = { + window.removeEventListener('online', nativeHandler); + window.removeEventListener('offline', nativeHandler); + } +- } // Remove handlers +- ++ } + ++ // Remove handlers + handlers.splice(index, 1); + nativeHandlers.splice(index, 1); + break; + } + } + }, +- + async getCurrentState(requestedInterface) { + return getCurrentState(requestedInterface); + }, +- + configure() { + return; + } +- + }; + export default RNCNetInfo; + //# sourceMappingURL=nativeModule.web.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js.map +index 2b50d96..0bdd63e 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/nativeModule.web.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeModule.web.ts"],"names":["DEVICE_CONNECTIVITY_EVENT","NetInfoCellularGeneration","NetInfoStateType","isWindowPresent","window","connection","hasOwnProperty","navigator","mozConnection","webkitConnection","undefined","typeMapping","bluetooth","cellular","ethernet","none","other","unknown","wifi","wimax","mixed","effectiveTypeMapping","getCurrentState","_requestedInterface","isConnected","onLine","baseState","isInternetReachable","state","type","details","isConnectionExpensive","saveData","cellularGeneration","effectiveType","carrier","ipAddress","subnet","ssid","bssid","strength","frequency","linkSpeed","rxLinkSpeed","txLinkSpeed","handlers","nativeHandlers","RNCNetInfo","addListener","handler","nativeHandler","addEventListener","push","removeListeners","index","indexOf","removeEventListener","splice","requestedInterface","configure"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {\n DEVICE_CONNECTIVITY_EVENT,\n NetInfoNativeModule,\n NetInfoNativeModuleState,\n} from './privateTypes';\nimport {\n NetInfoBluetoothState,\n NetInfoCellularGeneration,\n NetInfoCellularState,\n NetInfoEthernetState,\n NetInfoNoConnectionState,\n NetInfoOtherState,\n NetInfoState,\n NetInfoStateType,\n NetInfoUnknownState,\n NetInfoWifiState,\n NetInfoWimaxState,\n} from './types';\n\n// See https://wicg.github.io/netinfo/#dom-connectiontype\ntype ConnectionType =\n | 'bluetooth'\n | 'cellular'\n | 'ethernet'\n | 'mixed'\n | 'none'\n | 'other'\n | 'unknown'\n | 'wifi'\n | 'wimax';\n\n// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype\ntype ConnectionEffectiveType = '2g' | '3g' | '4g' | 'slow-2g';\n\n// https://wicg.github.io/netinfo/#dom-networkinformation-savedata\ntype ConnectionSaveData = boolean;\n\ninterface Events {\n change: Event;\n}\n\ninterface Connection {\n type: ConnectionType;\n effectiveType: ConnectionEffectiveType;\n saveData: ConnectionSaveData;\n addEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\n// Create (optional) connection APIs on navigator\ndeclare global {\n interface Navigator {\n connection?: Connection;\n mozConnection?: Connection;\n webkitConnection?: Connection;\n }\n}\n// Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient,\n// but this test correctly detects that window is not available and allows for conditionals before access\nconst isWindowPresent = typeof window !== 'undefined';\n\n// Check if window exists and if the browser supports the connection API\nconst connection = (isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS'))\n ? window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection\n : undefined;\n\n// Map browser types to native types\nconst typeMapping: Record = {\n bluetooth: NetInfoStateType.bluetooth,\n cellular: NetInfoStateType.cellular,\n ethernet: NetInfoStateType.ethernet,\n none: NetInfoStateType.none,\n other: NetInfoStateType.other,\n unknown: NetInfoStateType.unknown,\n wifi: NetInfoStateType.wifi,\n wimax: NetInfoStateType.wimax,\n mixed: NetInfoStateType.other,\n};\nconst effectiveTypeMapping: Record<\n ConnectionEffectiveType,\n NetInfoCellularGeneration\n> = {\n '2g': NetInfoCellularGeneration['2g'],\n '3g': NetInfoCellularGeneration['3g'],\n '4g': NetInfoCellularGeneration['4g'],\n 'slow-2g': NetInfoCellularGeneration['2g'],\n};\n\n// Determine current state of connection\nconst getCurrentState = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _requestedInterface?: string,\n): Pick> => {\n const isConnected = isWindowPresent ? navigator.onLine : false;\n const baseState = {\n isInternetReachable: null,\n };\n\n // If we don't have a connection object, we return minimal information\n if (!connection) {\n if (isConnected) {\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive: false,\n },\n };\n return state;\n }\n\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type: NetInfoStateType.none,\n details: null,\n };\n return state;\n }\n\n // Otherwise try to return detailed information\n const isConnectionExpensive = connection.saveData;\n const type: NetInfoStateType = connection.type\n ? typeMapping[connection.type]\n : isConnected\n ? NetInfoStateType.other\n : NetInfoStateType.unknown;\n\n if (type === NetInfoStateType.bluetooth) {\n const state: NetInfoBluetoothState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.cellular) {\n const state: NetInfoCellularState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n cellularGeneration:\n effectiveTypeMapping[connection.effectiveType] || null,\n carrier: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.ethernet) {\n const state: NetInfoEthernetState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ipAddress: null,\n subnet: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wifi) {\n const state: NetInfoWifiState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ssid: null,\n bssid: null,\n strength: null,\n ipAddress: null,\n subnet: null,\n frequency: null,\n linkSpeed: null,\n rxLinkSpeed: null,\n txLinkSpeed: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wimax) {\n const state: NetInfoWimaxState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.none) {\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type,\n details: null,\n };\n return state;\n } else if (type === NetInfoStateType.unknown) {\n const state: NetInfoUnknownState = {\n ...baseState,\n isConnected,\n isInternetReachable: null,\n type,\n details: null,\n };\n return state;\n }\n\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n};\n\nconst handlers: ((state: NetInfoNativeModuleState) => void)[] = [];\nconst nativeHandlers: (() => void)[] = [];\n\nconst RNCNetInfo: NetInfoNativeModule = {\n addListener(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n const nativeHandler = (): void => {\n handler(getCurrentState());\n };\n\n if (connection) {\n connection.addEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.addEventListener('online', nativeHandler, false);\n window.addEventListener('offline', nativeHandler, false);\n }\n }\n\n // Remember handlers\n handlers.push(handler);\n nativeHandlers.push(nativeHandler);\n\n break;\n }\n }\n },\n\n removeListeners(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n // Get native handler\n const index = handlers.indexOf(handler);\n const nativeHandler = nativeHandlers[index];\n\n if (connection) {\n connection.removeEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.removeEventListener('online', nativeHandler);\n window.removeEventListener('offline', nativeHandler);\n }\n }\n\n // Remove handlers\n handlers.splice(index, 1);\n nativeHandlers.splice(index, 1);\n\n break;\n }\n }\n },\n\n async getCurrentState(requestedInterface): Promise {\n return getCurrentState(requestedInterface);\n },\n\n configure(): void {\n return;\n },\n};\n\nexport default RNCNetInfo;\n"]} +\ No newline at end of file ++{"version":3,"names":["DEVICE_CONNECTIVITY_EVENT","NetInfoCellularGeneration","NetInfoStateType","isWindowPresent","window","connection","hasOwnProperty","navigator","mozConnection","webkitConnection","undefined","typeMapping","bluetooth","cellular","ethernet","none","other","unknown","wifi","wimax","mixed","effectiveTypeMapping","getCurrentState","_requestedInterface","isConnected","onLine","baseState","isInternetReachable","state","type","details","isConnectionExpensive","saveData","cellularGeneration","effectiveType","carrier","ipAddress","subnet","ssid","bssid","strength","frequency","linkSpeed","rxLinkSpeed","txLinkSpeed","handlers","nativeHandlers","RNCNetInfo","addListener","handler","nativeHandler","addEventListener","push","removeListeners","index","indexOf","removeEventListener","splice","requestedInterface","configure"],"sources":["nativeModule.web.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {\n DEVICE_CONNECTIVITY_EVENT,\n NetInfoNativeModule,\n NetInfoNativeModuleState,\n} from './privateTypes';\nimport {\n NetInfoBluetoothState,\n NetInfoCellularGeneration,\n NetInfoCellularState,\n NetInfoEthernetState,\n NetInfoNoConnectionState,\n NetInfoOtherState,\n NetInfoState,\n NetInfoStateType,\n NetInfoUnknownState,\n NetInfoWifiState,\n NetInfoWimaxState,\n} from './types';\n\n// See https://wicg.github.io/netinfo/#dom-connectiontype\ntype ConnectionType =\n | 'bluetooth'\n | 'cellular'\n | 'ethernet'\n | 'mixed'\n | 'none'\n | 'other'\n | 'unknown'\n | 'wifi'\n | 'wimax';\n\n// See https://wicg.github.io/netinfo/#dom-effectiveconnectiontype\ntype ConnectionEffectiveType = '2g' | '3g' | '4g' | 'slow-2g';\n\n// https://wicg.github.io/netinfo/#dom-networkinformation-savedata\ntype ConnectionSaveData = boolean;\n\ninterface Events {\n change: Event;\n}\n\ninterface Connection {\n type: ConnectionType;\n effectiveType: ConnectionEffectiveType;\n saveData: ConnectionSaveData;\n addEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeEventListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\n// Create (optional) connection APIs on navigator\ndeclare global {\n interface Navigator {\n connection?: Connection;\n mozConnection?: Connection;\n webkitConnection?: Connection;\n }\n}\n// Use a constant test of this form because in SSR on next.js, optional chaining is not sufficient,\n// but this test correctly detects that window is not available and allows for conditionals before access\nconst isWindowPresent = typeof window !== 'undefined';\n\n// Check if window exists and if the browser supports the connection API\nconst connection = (isWindowPresent && !window.hasOwnProperty('tizen') && !window.hasOwnProperty('webOS'))\n ? window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection\n : undefined;\n\n// Map browser types to native types\nconst typeMapping: Record = {\n bluetooth: NetInfoStateType.bluetooth,\n cellular: NetInfoStateType.cellular,\n ethernet: NetInfoStateType.ethernet,\n none: NetInfoStateType.none,\n other: NetInfoStateType.other,\n unknown: NetInfoStateType.unknown,\n wifi: NetInfoStateType.wifi,\n wimax: NetInfoStateType.wimax,\n mixed: NetInfoStateType.other,\n};\nconst effectiveTypeMapping: Record<\n ConnectionEffectiveType,\n NetInfoCellularGeneration\n> = {\n '2g': NetInfoCellularGeneration['2g'],\n '3g': NetInfoCellularGeneration['3g'],\n '4g': NetInfoCellularGeneration['4g'],\n 'slow-2g': NetInfoCellularGeneration['2g'],\n};\n\n// Determine current state of connection\nconst getCurrentState = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _requestedInterface?: string,\n): Pick> => {\n const isConnected = isWindowPresent ? navigator.onLine : false;\n const baseState = {\n isInternetReachable: null,\n };\n\n // If we don't have a connection object, we return minimal information\n if (!connection) {\n if (isConnected) {\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive: false,\n },\n };\n return state;\n }\n\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type: NetInfoStateType.none,\n details: null,\n };\n return state;\n }\n\n // Otherwise try to return detailed information\n const isConnectionExpensive = connection.saveData;\n const type: NetInfoStateType = connection.type\n ? typeMapping[connection.type]\n : isConnected\n ? NetInfoStateType.other\n : NetInfoStateType.unknown;\n\n if (type === NetInfoStateType.bluetooth) {\n const state: NetInfoBluetoothState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.cellular) {\n const state: NetInfoCellularState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n cellularGeneration:\n effectiveTypeMapping[connection.effectiveType] || null,\n carrier: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.ethernet) {\n const state: NetInfoEthernetState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ipAddress: null,\n subnet: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wifi) {\n const state: NetInfoWifiState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n ssid: null,\n bssid: null,\n strength: null,\n ipAddress: null,\n subnet: null,\n frequency: null,\n linkSpeed: null,\n rxLinkSpeed: null,\n txLinkSpeed: null,\n },\n };\n return state;\n } else if (type === NetInfoStateType.wimax) {\n const state: NetInfoWimaxState = {\n ...baseState,\n isConnected: true,\n type,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n } else if (type === NetInfoStateType.none) {\n const state: NetInfoNoConnectionState = {\n ...baseState,\n isConnected: false,\n isInternetReachable: false,\n type,\n details: null,\n };\n return state;\n } else if (type === NetInfoStateType.unknown) {\n const state: NetInfoUnknownState = {\n ...baseState,\n isConnected,\n isInternetReachable: null,\n type,\n details: null,\n };\n return state;\n }\n\n const state: NetInfoOtherState = {\n ...baseState,\n isConnected: true,\n type: NetInfoStateType.other,\n details: {\n isConnectionExpensive,\n },\n };\n return state;\n};\n\nconst handlers: ((state: NetInfoNativeModuleState) => void)[] = [];\nconst nativeHandlers: (() => void)[] = [];\n\nconst RNCNetInfo: NetInfoNativeModule = {\n addListener(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n const nativeHandler = (): void => {\n handler(getCurrentState());\n };\n\n if (connection) {\n connection.addEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.addEventListener('online', nativeHandler, false);\n window.addEventListener('offline', nativeHandler, false);\n }\n }\n\n // Remember handlers\n handlers.push(handler);\n nativeHandlers.push(nativeHandler);\n\n break;\n }\n }\n },\n\n removeListeners(type, handler): void {\n switch (type) {\n case DEVICE_CONNECTIVITY_EVENT: {\n // Get native handler\n const index = handlers.indexOf(handler);\n const nativeHandler = nativeHandlers[index];\n\n if (connection) {\n connection.removeEventListener('change', nativeHandler);\n } else {\n if (isWindowPresent) {\n window.removeEventListener('online', nativeHandler);\n window.removeEventListener('offline', nativeHandler);\n }\n }\n\n // Remove handlers\n handlers.splice(index, 1);\n nativeHandlers.splice(index, 1);\n\n break;\n }\n }\n },\n\n async getCurrentState(requestedInterface): Promise {\n return getCurrentState(requestedInterface);\n },\n\n configure(): void {\n return;\n },\n};\n\nexport default RNCNetInfo;\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js b/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js +index 4b88052..64831b1 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js +@@ -6,5 +6,8 @@ + * + * @format + */ +-export const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange'; // Certain properties are optional when sent by the native module and are handled by the JS code ++ ++export const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange'; ++ ++// Certain properties are optional when sent by the native module and are handled by the JS code + //# sourceMappingURL=privateTypes.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js.map +index db99fe3..9ef56cb 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/privateTypes.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["privateTypes.ts"],"names":["DEVICE_CONNECTIVITY_EVENT"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA,OAAO,MAAMA,yBAAyB,GAAG,gCAAlC,C,CAEP","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NetInfoConfiguration, NetInfoState} from './types';\n\nexport const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange';\n\n// Certain properties are optional when sent by the native module and are handled by the JS code\nexport type NetInfoNativeModuleState = Pick<\n NetInfoState,\n Exclude\n> & {isInternetReachable?: boolean};\n\nexport interface Events {\n [DEVICE_CONNECTIVITY_EVENT]: NetInfoNativeModuleState;\n}\n\nexport interface NetInfoNativeModule {\n configure: (config: Partial) => void;\n getCurrentState: (\n requestedInterface?: string,\n ) => Promise;\n addListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeListeners(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\nexport type NetInfoInternetReachabilityChangeListener = (\n isInternetReachable: boolean | null | undefined,\n) => void;\n"]} +\ No newline at end of file ++{"version":3,"names":["DEVICE_CONNECTIVITY_EVENT"],"sources":["privateTypes.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NetInfoConfiguration, NetInfoState} from './types';\n\nexport const DEVICE_CONNECTIVITY_EVENT = 'netInfo.networkStatusDidChange';\n\n// Certain properties are optional when sent by the native module and are handled by the JS code\nexport type NetInfoNativeModuleState = Pick<\n NetInfoState,\n Exclude\n> & {isInternetReachable?: boolean};\n\nexport interface Events {\n [DEVICE_CONNECTIVITY_EVENT]: NetInfoNativeModuleState;\n}\n\nexport interface NetInfoNativeModule {\n configure: (config: Partial) => void;\n getCurrentState: (\n requestedInterface?: string,\n ) => Promise;\n addListener(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n removeListeners(\n type: K,\n listener: (event: Events[K]) => void,\n ): void;\n}\n\nexport type NetInfoInternetReachabilityChangeListener = (\n isInternetReachable: boolean | null | undefined,\n) => void;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,MAAMA,yBAAyB,GAAG,gCAAgC;;AAEzE"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/state.js b/node_modules/@react-native-community/netinfo/lib/module/internal/state.js +index 305d286..7d12f6a 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/state.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/state.js +@@ -1,5 +1,6 @@ +-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +- ++function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } ++function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } ++function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } + /** + * Copyright (c) Facebook, Inc. and its affiliates. + * +@@ -8,72 +9,61 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope + * + * @format + */ ++ + import NativeInterface from './nativeInterface'; + import InternetReachability from './internetReachability'; + import * as PrivateTypes from './privateTypes'; + export default class State { + constructor(configuration) { + _defineProperty(this, "_nativeEventSubscription", null); +- + _defineProperty(this, "_subscriptions", new Set()); +- + _defineProperty(this, "_latestState", null); +- + _defineProperty(this, "_internetReachability", void 0); +- + _defineProperty(this, "_handleNativeStateUpdate", state => { + // Update the internet reachability module +- this._internetReachability.update(state); // Convert the state from native to JS shape +- +- +- const convertedState = this._convertState(state); // Update the listeners ++ this._internetReachability.update(state); + ++ // Convert the state from native to JS shape ++ const convertedState = this._convertState(state); + ++ // Update the listeners + this._latestState = convertedState; +- + this._subscriptions.forEach(handler => handler(convertedState)); + }); +- + _defineProperty(this, "_handleInternetReachabilityUpdate", isInternetReachable => { + if (!this._latestState) { + return; + } +- +- const nextState = { ...this._latestState, ++ const nextState = { ++ ...this._latestState, + isInternetReachable + }; + this._latestState = nextState; +- + this._subscriptions.forEach(handler => handler(nextState)); + }); +- + _defineProperty(this, "_fetchCurrentState", async requestedInterface => { +- const state = await NativeInterface.getCurrentState(requestedInterface); // Update the internet reachability module +- +- this._internetReachability.update(state); // Convert and store the new state +- ++ const state = await NativeInterface.getCurrentState(requestedInterface); + ++ // Update the internet reachability module ++ this._internetReachability.update(state); ++ // Convert and store the new state + const convertedState = this._convertState(state); +- + if (!requestedInterface) { + this._latestState = convertedState; +- + this._subscriptions.forEach(handler => handler(convertedState)); + } +- + return convertedState; + }); +- + _defineProperty(this, "_convertState", input => { + if (typeof input.isInternetReachable === 'boolean') { + return input; + } else { +- return { ...input, ++ return { ++ ...input, + isInternetReachable: this._internetReachability.currentState() + }; + } + }); +- + _defineProperty(this, "latest", requestedInterface => { + if (requestedInterface) { + return this._fetchCurrentState(requestedInterface); +@@ -83,42 +73,37 @@ export default class State { + return this._fetchCurrentState(); + } + }); +- + _defineProperty(this, "add", handler => { + // Add the subscription handler to our set +- this._subscriptions.add(handler); // Send it the latest data we have +- ++ this._subscriptions.add(handler); + ++ // Send it the latest data we have + if (this._latestState) { + handler(this._latestState); + } else { + this.latest().then(handler); + } + }); +- + _defineProperty(this, "remove", handler => { + this._subscriptions.delete(handler); + }); +- + _defineProperty(this, "tearDown", () => { + if (this._internetReachability) { + this._internetReachability.tearDown(); + } +- + if (this._nativeEventSubscription) { + this._nativeEventSubscription.remove(); + } +- + this._subscriptions.clear(); + }); +- + // Add the listener to the internet connectivity events +- this._internetReachability = new InternetReachability(configuration, this._handleInternetReachabilityUpdate); // Add the subscription to the native events ++ this._internetReachability = new InternetReachability(configuration, this._handleInternetReachabilityUpdate); + +- this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(PrivateTypes.DEVICE_CONNECTIVITY_EVENT, this._handleNativeStateUpdate); // Fetch the current state from the native module ++ // Add the subscription to the native events ++ this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(PrivateTypes.DEVICE_CONNECTIVITY_EVENT, this._handleNativeStateUpdate); + ++ // Fetch the current state from the native module + this._fetchCurrentState(); + } +- + } + //# sourceMappingURL=state.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/state.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/state.js.map +index e6e8249..053e584 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/state.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/state.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["state.ts"],"names":["NativeInterface","InternetReachability","PrivateTypes","State","constructor","configuration","Set","state","_internetReachability","update","convertedState","_convertState","_latestState","_subscriptions","forEach","handler","isInternetReachable","nextState","requestedInterface","getCurrentState","input","currentState","_fetchCurrentState","Promise","resolve","add","latest","then","delete","tearDown","_nativeEventSubscription","remove","clear","_handleInternetReachabilityUpdate","eventEmitter","addListener","DEVICE_CONNECTIVITY_EVENT","_handleNativeStateUpdate"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventSubscription} from 'react-native';\nimport NativeInterface from './nativeInterface';\nimport InternetReachability from './internetReachability';\nimport * as Types from './types';\nimport * as PrivateTypes from './privateTypes';\n\nexport default class State {\n private _nativeEventSubscription: NativeEventSubscription | null = null;\n private _subscriptions = new Set();\n private _latestState: Types.NetInfoState | null = null;\n private _internetReachability: InternetReachability;\n\n constructor(configuration: Types.NetInfoConfiguration) {\n // Add the listener to the internet connectivity events\n this._internetReachability = new InternetReachability(\n configuration,\n this._handleInternetReachabilityUpdate,\n );\n\n // Add the subscription to the native events\n this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(\n PrivateTypes.DEVICE_CONNECTIVITY_EVENT,\n this._handleNativeStateUpdate,\n );\n\n // Fetch the current state from the native module\n this._fetchCurrentState();\n }\n\n private _handleNativeStateUpdate = (\n state: PrivateTypes.NetInfoNativeModuleState,\n ): void => {\n // Update the internet reachability module\n this._internetReachability.update(state);\n\n // Convert the state from native to JS shape\n const convertedState = this._convertState(state);\n\n // Update the listeners\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n };\n\n private _handleInternetReachabilityUpdate = (\n isInternetReachable: boolean | null | undefined,\n ): void => {\n if (!this._latestState) {\n return;\n }\n\n const nextState = {\n ...this._latestState,\n isInternetReachable,\n } as Types.NetInfoState;\n this._latestState = nextState;\n this._subscriptions.forEach((handler): void => handler(nextState));\n };\n\n public _fetchCurrentState = async (\n requestedInterface?: string,\n ): Promise => {\n const state = await NativeInterface.getCurrentState(requestedInterface);\n\n // Update the internet reachability module\n this._internetReachability.update(state);\n // Convert and store the new state\n const convertedState = this._convertState(state);\n if (!requestedInterface) {\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n }\n\n return convertedState;\n };\n\n private _convertState = (\n input: PrivateTypes.NetInfoNativeModuleState,\n ): Types.NetInfoState => {\n if (typeof input.isInternetReachable === 'boolean') {\n return input as Types.NetInfoState;\n } else {\n return {\n ...input,\n isInternetReachable: this._internetReachability.currentState(),\n } as Types.NetInfoState;\n }\n };\n\n public latest = (\n requestedInterface?: string,\n ): Promise => {\n if (requestedInterface) {\n return this._fetchCurrentState(requestedInterface);\n } else if (this._latestState) {\n return Promise.resolve(this._latestState);\n } else {\n return this._fetchCurrentState();\n }\n };\n\n public add = (handler: Types.NetInfoChangeHandler): void => {\n // Add the subscription handler to our set\n this._subscriptions.add(handler);\n\n // Send it the latest data we have\n if (this._latestState) {\n handler(this._latestState);\n } else {\n this.latest().then(handler);\n }\n };\n\n public remove = (handler: Types.NetInfoChangeHandler): void => {\n this._subscriptions.delete(handler);\n };\n\n public tearDown = (): void => {\n if (this._internetReachability) {\n this._internetReachability.tearDown();\n }\n\n if (this._nativeEventSubscription) {\n this._nativeEventSubscription.remove();\n }\n\n this._subscriptions.clear();\n };\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["NativeInterface","InternetReachability","PrivateTypes","State","constructor","configuration","_defineProperty","Set","state","_internetReachability","update","convertedState","_convertState","_latestState","_subscriptions","forEach","handler","isInternetReachable","nextState","requestedInterface","getCurrentState","input","currentState","_fetchCurrentState","Promise","resolve","add","latest","then","delete","tearDown","_nativeEventSubscription","remove","clear","_handleInternetReachabilityUpdate","eventEmitter","addListener","DEVICE_CONNECTIVITY_EVENT","_handleNativeStateUpdate"],"sources":["state.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport {NativeEventSubscription} from 'react-native';\nimport NativeInterface from './nativeInterface';\nimport InternetReachability from './internetReachability';\nimport * as Types from './types';\nimport * as PrivateTypes from './privateTypes';\n\nexport default class State {\n private _nativeEventSubscription: NativeEventSubscription | null = null;\n private _subscriptions = new Set();\n private _latestState: Types.NetInfoState | null = null;\n private _internetReachability: InternetReachability;\n\n constructor(configuration: Types.NetInfoConfiguration) {\n // Add the listener to the internet connectivity events\n this._internetReachability = new InternetReachability(\n configuration,\n this._handleInternetReachabilityUpdate,\n );\n\n // Add the subscription to the native events\n this._nativeEventSubscription = NativeInterface.eventEmitter.addListener(\n PrivateTypes.DEVICE_CONNECTIVITY_EVENT,\n this._handleNativeStateUpdate,\n );\n\n // Fetch the current state from the native module\n this._fetchCurrentState();\n }\n\n private _handleNativeStateUpdate = (\n state: PrivateTypes.NetInfoNativeModuleState,\n ): void => {\n // Update the internet reachability module\n this._internetReachability.update(state);\n\n // Convert the state from native to JS shape\n const convertedState = this._convertState(state);\n\n // Update the listeners\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n };\n\n private _handleInternetReachabilityUpdate = (\n isInternetReachable: boolean | null | undefined,\n ): void => {\n if (!this._latestState) {\n return;\n }\n\n const nextState = {\n ...this._latestState,\n isInternetReachable,\n } as Types.NetInfoState;\n this._latestState = nextState;\n this._subscriptions.forEach((handler): void => handler(nextState));\n };\n\n public _fetchCurrentState = async (\n requestedInterface?: string,\n ): Promise => {\n const state = await NativeInterface.getCurrentState(requestedInterface);\n\n // Update the internet reachability module\n this._internetReachability.update(state);\n // Convert and store the new state\n const convertedState = this._convertState(state);\n if (!requestedInterface) {\n this._latestState = convertedState;\n this._subscriptions.forEach((handler): void => handler(convertedState));\n }\n\n return convertedState;\n };\n\n private _convertState = (\n input: PrivateTypes.NetInfoNativeModuleState,\n ): Types.NetInfoState => {\n if (typeof input.isInternetReachable === 'boolean') {\n return input as Types.NetInfoState;\n } else {\n return {\n ...input,\n isInternetReachable: this._internetReachability.currentState(),\n } as Types.NetInfoState;\n }\n };\n\n public latest = (\n requestedInterface?: string,\n ): Promise => {\n if (requestedInterface) {\n return this._fetchCurrentState(requestedInterface);\n } else if (this._latestState) {\n return Promise.resolve(this._latestState);\n } else {\n return this._fetchCurrentState();\n }\n };\n\n public add = (handler: Types.NetInfoChangeHandler): void => {\n // Add the subscription handler to our set\n this._subscriptions.add(handler);\n\n // Send it the latest data we have\n if (this._latestState) {\n handler(this._latestState);\n } else {\n this.latest().then(handler);\n }\n };\n\n public remove = (handler: Types.NetInfoChangeHandler): void => {\n this._subscriptions.delete(handler);\n };\n\n public tearDown = (): void => {\n if (this._internetReachability) {\n this._internetReachability.tearDown();\n }\n\n if (this._nativeEventSubscription) {\n this._nativeEventSubscription.remove();\n }\n\n this._subscriptions.clear();\n };\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/types.js b/node_modules/@react-native-community/netinfo/lib/module/internal/types.js +index ac35a3d..ebe70e5 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/types.js ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/types.js +@@ -6,9 +6,8 @@ + * + * @format + */ +-export let NetInfoStateType; + +-(function (NetInfoStateType) { ++export let NetInfoStateType = /*#__PURE__*/function (NetInfoStateType) { + NetInfoStateType["unknown"] = "unknown"; + NetInfoStateType["none"] = "none"; + NetInfoStateType["cellular"] = "cellular"; +@@ -18,14 +17,13 @@ export let NetInfoStateType; + NetInfoStateType["wimax"] = "wimax"; + NetInfoStateType["vpn"] = "vpn"; + NetInfoStateType["other"] = "other"; +-})(NetInfoStateType || (NetInfoStateType = {})); +- +-export let NetInfoCellularGeneration; +- +-(function (NetInfoCellularGeneration) { ++ return NetInfoStateType; ++}({}); ++export let NetInfoCellularGeneration = /*#__PURE__*/function (NetInfoCellularGeneration) { + NetInfoCellularGeneration["2g"] = "2g"; + NetInfoCellularGeneration["3g"] = "3g"; + NetInfoCellularGeneration["4g"] = "4g"; + NetInfoCellularGeneration["5g"] = "5g"; +-})(NetInfoCellularGeneration || (NetInfoCellularGeneration = {})); ++ return NetInfoCellularGeneration; ++}({}); + //# sourceMappingURL=types.js.map +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/module/internal/types.js.map b/node_modules/@react-native-community/netinfo/lib/module/internal/types.js.map +index 340dc4a..afd20ec 100644 +--- a/node_modules/@react-native-community/netinfo/lib/module/internal/types.js.map ++++ b/node_modules/@react-native-community/netinfo/lib/module/internal/types.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["types.ts"],"names":["NetInfoStateType","NetInfoCellularGeneration"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,WAAYA,gBAAZ;;WAAYA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,KAAAA,gB;;AAcZ,WAAYC,yBAAZ;;WAAYA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;AAAAA,EAAAA,yB;GAAAA,yB,KAAAA,yB","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nexport enum NetInfoStateType {\n unknown = 'unknown',\n none = 'none',\n cellular = 'cellular',\n wifi = 'wifi',\n bluetooth = 'bluetooth',\n ethernet = 'ethernet',\n wimax = 'wimax',\n vpn = 'vpn',\n other = 'other',\n}\n\nexport type NetInfoMethodType = 'HEAD' | 'GET';\n\nexport enum NetInfoCellularGeneration {\n '2g' = '2g',\n '3g' = '3g',\n '4g' = '4g',\n '5g' = '5g',\n}\n\nexport interface NetInfoConnectedDetails {\n isConnectionExpensive: boolean;\n}\n\ninterface NetInfoConnectedState<\n T extends NetInfoStateType,\n D extends Record = Record\n> {\n type: T;\n isConnected: true;\n isInternetReachable: boolean | null;\n details: D & NetInfoConnectedDetails;\n isWifiEnabled?: boolean;\n}\n\ninterface NetInfoDisconnectedState {\n type: T;\n isConnected: false;\n isInternetReachable: false;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport interface NetInfoUnknownState {\n type: NetInfoStateType.unknown;\n isConnected: boolean | null;\n isInternetReachable: null;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport type NetInfoNoConnectionState = NetInfoDisconnectedState<\n NetInfoStateType.none\n>;\nexport type NetInfoDisconnectedStates =\n | NetInfoUnknownState\n | NetInfoNoConnectionState;\n\nexport type NetInfoCellularState = NetInfoConnectedState<\n NetInfoStateType.cellular,\n {\n cellularGeneration: NetInfoCellularGeneration | null;\n carrier: string | null;\n }\n>;\nexport type NetInfoWifiState = NetInfoConnectedState<\n NetInfoStateType.wifi,\n {\n ssid: string | null;\n bssid: string | null;\n strength: number | null;\n ipAddress: string | null;\n subnet: string | null;\n frequency: number | null;\n linkSpeed: number | null;\n rxLinkSpeed: number | null;\n txLinkSpeed: number | null;\n }\n>;\nexport type NetInfoBluetoothState = NetInfoConnectedState<\n NetInfoStateType.bluetooth\n>;\nexport type NetInfoEthernetState = NetInfoConnectedState<\n NetInfoStateType.ethernet,\n {\n ipAddress: string | null;\n subnet: string | null;\n }\n>;\nexport type NetInfoWimaxState = NetInfoConnectedState;\nexport type NetInfoVpnState = NetInfoConnectedState;\nexport type NetInfoOtherState = NetInfoConnectedState;\nexport type NetInfoConnectedStates =\n | NetInfoCellularState\n | NetInfoWifiState\n | NetInfoBluetoothState\n | NetInfoEthernetState\n | NetInfoWimaxState\n | NetInfoVpnState\n | NetInfoOtherState;\n\nexport type NetInfoState = NetInfoDisconnectedStates | NetInfoConnectedStates;\n\nexport type NetInfoChangeHandler = (state: NetInfoState) => void;\nexport type NetInfoSubscription = () => void;\n\nexport interface NetInfoConfiguration {\n reachabilityUrl: string;\n reachabilityMethod?: NetInfoMethodType;\n reachabilityHeaders?: Record;\n reachabilityTest: (response: Response) => Promise;\n reachabilityLongTimeout: number;\n reachabilityShortTimeout: number;\n reachabilityRequestTimeout: number;\n reachabilityShouldRun: () => boolean;\n shouldFetchWiFiSSID: boolean;\n useNativeReachability: boolean;\n}\n"]} +\ No newline at end of file ++{"version":3,"names":["NetInfoStateType","NetInfoCellularGeneration"],"sources":["types.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nexport enum NetInfoStateType {\n unknown = 'unknown',\n none = 'none',\n cellular = 'cellular',\n wifi = 'wifi',\n bluetooth = 'bluetooth',\n ethernet = 'ethernet',\n wimax = 'wimax',\n vpn = 'vpn',\n other = 'other',\n}\n\nexport type NetInfoMethodType = 'HEAD' | 'GET';\n\nexport enum NetInfoCellularGeneration {\n '2g' = '2g',\n '3g' = '3g',\n '4g' = '4g',\n '5g' = '5g',\n}\n\nexport interface NetInfoConnectedDetails {\n isConnectionExpensive: boolean;\n}\n\ninterface NetInfoConnectedState<\n T extends NetInfoStateType,\n D extends Record = Record,\n> {\n type: T;\n isConnected: true;\n isInternetReachable: boolean | null;\n details: D & NetInfoConnectedDetails;\n isWifiEnabled?: boolean;\n}\n\ninterface NetInfoDisconnectedState {\n type: T;\n isConnected: false;\n isInternetReachable: false;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport interface NetInfoUnknownState {\n type: NetInfoStateType.unknown;\n isConnected: boolean | null;\n isInternetReachable: null;\n details: null;\n isWifiEnabled?: boolean;\n}\n\nexport type NetInfoNoConnectionState =\n NetInfoDisconnectedState;\nexport type NetInfoDisconnectedStates =\n | NetInfoUnknownState\n | NetInfoNoConnectionState;\n\nexport type NetInfoCellularState = NetInfoConnectedState<\n NetInfoStateType.cellular,\n {\n cellularGeneration: NetInfoCellularGeneration | null;\n carrier: string | null;\n }\n>;\nexport type NetInfoWifiState = NetInfoConnectedState<\n NetInfoStateType.wifi,\n {\n ssid: string | null;\n bssid: string | null;\n strength: number | null;\n ipAddress: string | null;\n subnet: string | null;\n frequency: number | null;\n linkSpeed: number | null;\n rxLinkSpeed: number | null;\n txLinkSpeed: number | null;\n }\n>;\nexport type NetInfoBluetoothState =\n NetInfoConnectedState;\nexport type NetInfoEthernetState = NetInfoConnectedState<\n NetInfoStateType.ethernet,\n {\n ipAddress: string | null;\n subnet: string | null;\n }\n>;\nexport type NetInfoWimaxState = NetInfoConnectedState;\nexport type NetInfoVpnState = NetInfoConnectedState;\nexport type NetInfoOtherState = NetInfoConnectedState;\nexport type NetInfoConnectedStates =\n | NetInfoCellularState\n | NetInfoWifiState\n | NetInfoBluetoothState\n | NetInfoEthernetState\n | NetInfoWimaxState\n | NetInfoVpnState\n | NetInfoOtherState;\n\nexport type NetInfoState = NetInfoDisconnectedStates | NetInfoConnectedStates;\n\nexport type NetInfoChangeHandler = (state: NetInfoState) => void;\nexport type NetInfoSubscription = () => void;\n\nexport interface NetInfoConfiguration {\n reachabilityUrl: string;\n reachabilityMethod?: NetInfoMethodType;\n reachabilityHeaders?: Record;\n reachabilityTest: (response: Response) => Promise;\n reachabilityLongTimeout: number;\n reachabilityShortTimeout: number;\n reachabilityRequestTimeout: number;\n reachabilityShouldRun: () => boolean;\n shouldFetchWiFiSSID: boolean;\n useNativeReachability: boolean;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAYA,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAc5B,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA"} +\ No newline at end of file +diff --git a/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/NativeRNCNetInfo.d.ts b/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/NativeRNCNetInfo.d.ts +new file mode 100644 +index 0000000..b5db384 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/NativeRNCNetInfo.d.ts +@@ -0,0 +1,9 @@ ++import type { TurboModule } from 'react-native'; ++export interface Spec extends TurboModule { ++ configure: (config: Object) => void; ++ getCurrentState(requestedInterface?: string): Promise; ++ addListener: (eventName: string) => void; ++ removeListeners: (count: number) => void; ++} ++declare const _default: Spec; ++export default _default; +diff --git a/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/nativeInterface.d.ts b/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/nativeInterface.d.ts +index 6982220..b515270 100644 +--- a/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/nativeInterface.d.ts ++++ b/node_modules/@react-native-community/netinfo/lib/typescript/src/internal/nativeInterface.d.ts +@@ -8,10 +8,10 @@ + */ + import { NativeEventEmitter } from 'react-native'; + declare const _default: { +- eventEmitter: NativeEventEmitter; + configure: (config: Partial) => void; ++ addListener: (type: K, listener: (event: import("./privateTypes").Events[K]) => void) => void; ++ removeListeners: (type: K_1, listener: (event: import("./privateTypes").Events[K_1]) => void) => void; + getCurrentState: (requestedInterface?: string | undefined) => Promise; +- addListener(type: K, listener: (event: import("./privateTypes").Events[K]) => void): void; +- removeListeners(type: K_1, listener: (event: import("./privateTypes").Events[K_1]) => void): void; ++ readonly eventEmitter: NativeEventEmitter; + }; + export default _default; +diff --git a/node_modules/@react-native-community/netinfo/package.json b/node_modules/@react-native-community/netinfo/package.json +index 3c80db2..61e6564 100644 +--- a/node_modules/@react-native-community/netinfo/package.json ++++ b/node_modules/@react-native-community/netinfo/package.json +@@ -48,6 +48,7 @@ + "network info" + ], + "peerDependencies": { ++ "react": "*", + "react-native": ">=0.59" + }, + "dependencies": {}, +@@ -121,5 +122,13 @@ + "yarn eslint --fix", + "git add" + ] ++ }, ++ "codegenConfig": { ++ "name": "RNCNetInfoSpec", ++ "type": "modules", ++ "jsSrcsDir": "src/internal", ++ "android": { ++ "javaPackageName": "com.reactnativecommunity.netinfo" ++ } + } + } +diff --git a/node_modules/@react-native-community/netinfo/react-native-netinfo.podspec b/node_modules/@react-native-community/netinfo/react-native-netinfo.podspec +index e34e728..9090eb1 100644 +--- a/node_modules/@react-native-community/netinfo/react-native-netinfo.podspec ++++ b/node_modules/@react-native-community/netinfo/react-native-netinfo.podspec +@@ -2,6 +2,8 @@ require 'json' + + package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + ++is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' ++ + Pod::Spec.new do |s| + s.name = "react-native-netinfo" + s.version = package['version'] +@@ -13,7 +15,11 @@ Pod::Spec.new do |s| + s.platforms = { :ios => "9.0", :tvos => "9.2", :osx => "10.14" } + + s.source = { :git => "https://github.com/react-native-community/react-native-netinfo.git", :tag => "v#{s.version}" } +- s.source_files = "ios/**/*.{h,m}" ++ s.source_files = "ios/**/*.{h,m,mm,swift}" + +- s.dependency 'React-Core' ++ if is_new_arch_enabled ++ install_modules_dependencies(s) ++ else ++ s.dependency 'React-Core' ++ end + end +diff --git a/node_modules/@react-native-community/netinfo/src/__tests__/eventListenerCallbacks.spec.ts b/node_modules/@react-native-community/netinfo/src/__tests__/eventListenerCallbacks.spec.ts +index 4ba58e9..9f87df7 100644 +--- a/node_modules/@react-native-community/netinfo/src/__tests__/eventListenerCallbacks.spec.ts ++++ b/node_modules/@react-native-community/netinfo/src/__tests__/eventListenerCallbacks.spec.ts +@@ -32,7 +32,7 @@ beforeAll(() => { + + describe('@react-native-community/netinfo listener', () => { + describe('Event listener callbacks', () => { +- it('should call the listener on listening', done => { ++ it('should call the listener on listening', (done) => { + const listener = jest.fn(); + NetInfo.addEventListener(listener); + +@@ -42,7 +42,7 @@ describe('@react-native-community/netinfo listener', () => { + }, 0); + }); + +- it('should call the listener on listening with multiple listeners', done => { ++ it('should call the listener on listening with multiple listeners', (done) => { + const listener1 = jest.fn(); + const listener2 = jest.fn(); + NetInfo.addEventListener(listener1); +@@ -303,7 +303,7 @@ describe('@react-native-community/netinfo listener', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + NetInfo.configure(testCase.configuration); + +diff --git a/node_modules/@react-native-community/netinfo/src/__tests__/fetch.spec.ts b/node_modules/@react-native-community/netinfo/src/__tests__/fetch.spec.ts +index 4b56e4f..b790659 100644 +--- a/node_modules/@react-native-community/netinfo/src/__tests__/fetch.spec.ts ++++ b/node_modules/@react-native-community/netinfo/src/__tests__/fetch.spec.ts +@@ -69,7 +69,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -131,7 +131,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -193,7 +193,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -255,7 +255,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -317,7 +317,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -361,7 +361,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +@@ -455,7 +455,7 @@ describe('@react-native-community/netinfo fetch', () => { + ]; + } + +- dataProvider().forEach(testCase => { ++ dataProvider().forEach((testCase) => { + it(testCase.description, async () => { + mockNativeModule.getCurrentState.mockResolvedValue( + testCase.expectedConnectionInfo, +diff --git a/node_modules/@react-native-community/netinfo/src/internal/NativeRNCNetInfo.ts b/node_modules/@react-native-community/netinfo/src/internal/NativeRNCNetInfo.ts +new file mode 100644 +index 0000000..deada41 +--- /dev/null ++++ b/node_modules/@react-native-community/netinfo/src/internal/NativeRNCNetInfo.ts +@@ -0,0 +1,14 @@ ++/* eslint-disable @typescript-eslint/ban-types */ ++import type { TurboModule } from 'react-native'; ++import { TurboModuleRegistry } from 'react-native'; ++ ++export interface Spec extends TurboModule { ++ configure: (config: Object) => void; ++ getCurrentState(requestedInterface?: string): Promise; ++ // Events ++ addListener: (eventName: string) => void; ++ removeListeners: (count: number) => void; ++} ++ ++export default TurboModuleRegistry.getEnforcing('RNCNetInfo'); ++ +diff --git a/node_modules/@react-native-community/netinfo/src/internal/internetReachability.ts b/node_modules/@react-native-community/netinfo/src/internal/internetReachability.ts +index 5cf797b..f9940a5 100644 +--- a/node_modules/@react-native-community/netinfo/src/internal/internetReachability.ts ++++ b/node_modules/@react-native-community/netinfo/src/internal/internetReachability.ts +@@ -19,7 +19,8 @@ export default class InternetReachability { + private _configuration: Types.NetInfoConfiguration; + private _listener: PrivateTypes.NetInfoInternetReachabilityChangeListener; + private _isInternetReachable: boolean | null | undefined = undefined; +- private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null = null; ++ private _currentInternetReachabilityCheckHandler: InternetReachabilityCheckHandler | null = ++ null; + private _currentTimeoutHandle: ReturnType | null = null; + + constructor( +@@ -60,7 +61,8 @@ export default class InternetReachability { + this._setIsInternetReachable(null); + } + // Start a network request to check for internet +- this._currentInternetReachabilityCheckHandler = this._checkInternetReachability(); ++ this._currentInternetReachabilityCheckHandler = ++ this._checkInternetReachability(); + } else { + // If we don't expect a connection or don't run reachability check, just change the state to "false" + this._setIsInternetReachable(false); +@@ -79,9 +81,9 @@ export default class InternetReachability { + + // Create promise that will reject after the request timeout has been reached + let timeoutHandle: ReturnType; +- const timeoutPromise = new Promise((): void => { ++ const timeoutPromise = new Promise((_, reject): void => { + timeoutHandle = setTimeout( +- (): void => controller.abort('timedout'), ++ (): void => reject('timedout'), + this._configuration.reachabilityRequestTimeout, + ); + }); +@@ -98,28 +100,37 @@ export default class InternetReachability { + timeoutPromise, + cancelPromise, + ]) +- .then( +- (response): Promise => { +- return this._configuration.reachabilityTest(response); +- }, +- ) +- .then( +- (result): void => { +- this._setIsInternetReachable(result); +- const nextTimeoutInterval = this._isInternetReachable +- ? this._configuration.reachabilityLongTimeout +- : this._configuration.reachabilityShortTimeout; ++ .then((response): Promise => { ++ return this._configuration.reachabilityTest(response); ++ }) ++ .then((result): void => { ++ this._setIsInternetReachable(result); ++ const nextTimeoutInterval = this._isInternetReachable ++ ? this._configuration.reachabilityLongTimeout ++ : this._configuration.reachabilityShortTimeout; ++ this._currentTimeoutHandle = setTimeout( ++ this._checkInternetReachability, ++ nextTimeoutInterval, ++ ); ++ }) ++ .catch((error: Error | 'timedout' | 'canceled'): void => { ++ if (error !== 'canceled') { ++ this._setIsInternetReachable(false); + this._currentTimeoutHandle = setTimeout( + this._checkInternetReachability, +- nextTimeoutInterval, ++ this._configuration.reachabilityShortTimeout, + ); +- }, +- ) ++ } ++ }) + .catch( + (error: Error | 'timedout' | 'canceled'): void => { + if ('canceled' === error) { + controller.abort(); + } else { ++ if ('timedout' === error) { ++ controller.abort(); ++ } ++ + this._setIsInternetReachable(false); + this._currentTimeoutHandle = setTimeout( + this._checkInternetReachability, +diff --git a/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.ts b/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.ts +index c0d9ec4..912a903 100644 +--- a/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.ts ++++ b/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.ts +@@ -28,8 +28,12 @@ If none of these fix the issue, please open an issue on the Github repository: h + * JavaScript code and the tests + */ + let nativeEventEmitter: NativeEventEmitter | null = null; ++ + export default { +- ...RNCNetInfo, ++ configure: RNCNetInfo.configure, ++ addListener: RNCNetInfo.addListener, ++ removeListeners: RNCNetInfo.removeListeners, ++ getCurrentState: RNCNetInfo.getCurrentState, + get eventEmitter(): NativeEventEmitter { + if (!nativeEventEmitter) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment +diff --git a/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.web.ts b/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.web.ts +index b665235..41863a4 100644 +--- a/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.web.ts ++++ b/node_modules/@react-native-community/netinfo/src/internal/nativeInterface.web.ts +@@ -14,12 +14,9 @@ import {DEVICE_CONNECTIVITY_EVENT} from './privateTypes'; + const nativeEventEmitter = new NativeEventEmitter(); + + // Listen to connectivity events +-RNCNetInfo.addListener( +- DEVICE_CONNECTIVITY_EVENT, +- (event): void => { +- nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event); +- }, +-); ++RNCNetInfo.addListener(DEVICE_CONNECTIVITY_EVENT, (event): void => { ++ nativeEventEmitter.emit(DEVICE_CONNECTIVITY_EVENT, event); ++}); + + export default { + ...RNCNetInfo, +diff --git a/node_modules/@react-native-community/netinfo/src/internal/nativeModule.ts b/node_modules/@react-native-community/netinfo/src/internal/nativeModule.ts +index 206a69a..7aff149 100644 +--- a/node_modules/@react-native-community/netinfo/src/internal/nativeModule.ts ++++ b/node_modules/@react-native-community/netinfo/src/internal/nativeModule.ts +@@ -10,6 +10,16 @@ + import {NativeModules} from 'react-native'; + import {NetInfoNativeModule} from './privateTypes'; + +-const RNCNetInfo: NetInfoNativeModule = NativeModules.RNCNetInfo; ++// React Native sets `__turboModuleProxy` on global when TurboModules are enabled. ++// Currently, this is the recommended way to detect TurboModules. ++// https://reactnative.dev/docs/the-new-architecture/backward-compatibility-turbomodules#unify-the-javascript-specs ++// eslint-disable-next-line @typescript-eslint/ban-ts-comment ++// @ts-ignore ++const isTurboModuleEnabled = global.__turboModuleProxy != null; ++ ++const RNCNetInfo: NetInfoNativeModule = isTurboModuleEnabled ++ ? // eslint-disable-next-line @typescript-eslint/no-var-requires ++ require('./NativeRNCNetInfo').default ++ : NativeModules.RNCNetInfo; + + export default RNCNetInfo; +diff --git a/node_modules/@react-native-community/netinfo/src/internal/types.ts b/node_modules/@react-native-community/netinfo/src/internal/types.ts +index 427db82..6a8f94a 100644 +--- a/node_modules/@react-native-community/netinfo/src/internal/types.ts ++++ b/node_modules/@react-native-community/netinfo/src/internal/types.ts +@@ -34,7 +34,7 @@ export interface NetInfoConnectedDetails { + + interface NetInfoConnectedState< + T extends NetInfoStateType, +- D extends Record = Record ++ D extends Record = Record, + > { + type: T; + isConnected: true; +@@ -59,9 +59,8 @@ export interface NetInfoUnknownState { + isWifiEnabled?: boolean; + } + +-export type NetInfoNoConnectionState = NetInfoDisconnectedState< +- NetInfoStateType.none +->; ++export type NetInfoNoConnectionState = ++ NetInfoDisconnectedState; + export type NetInfoDisconnectedStates = + | NetInfoUnknownState + | NetInfoNoConnectionState; +@@ -87,9 +86,8 @@ export type NetInfoWifiState = NetInfoConnectedState< + txLinkSpeed: number | null; + } + >; +-export type NetInfoBluetoothState = NetInfoConnectedState< +- NetInfoStateType.bluetooth +->; ++export type NetInfoBluetoothState = ++ NetInfoConnectedState; + export type NetInfoEthernetState = NetInfoConnectedState< + NetInfoStateType.ethernet, + { +diff --git a/node_modules/@react-native-community/netinfo/windows/.npmignore b/node_modules/@react-native-community/netinfo/windows/.npmignore +deleted file mode 100644 +index 878f7ba..0000000 +--- a/node_modules/@react-native-community/netinfo/windows/.npmignore ++++ /dev/null +@@ -1,92 +0,0 @@ +-*AppPackages* +-*BundleArtifacts* +- +-#OS junk files +-[Tt]humbs.db +-*.DS_Store +- +-#Visual Studio files +-*.[Oo]bj +-*.user +-*.aps +-*.pch +-*.vspscc +-*.vssscc +-*_i.c +-*_p.c +-*.ncb +-*.suo +-*.tlb +-*.tlh +-*.bak +-*.[Cc]ache +-*.ilk +-*.log +-*.lib +-*.sbr +-*.sdf +-*.opensdf +-*.opendb +-*.unsuccessfulbuild +-ipch/ +-[Oo]bj/ +-[Bb]in +-[Dd]ebug*/ +-[Rr]elease*/ +-Ankh.NoLoad +- +-# Visual C++ cache files +-ipch/ +-*.aps +-*.ncb +-*.opendb +-*.opensdf +-*.sdf +-*.cachefile +-*.VC.db +-*.VC.VC.opendb +- +-#MonoDevelop +-*.pidb +-*.userprefs +- +-#Tooling +-_ReSharper*/ +-*.resharper +-[Tt]est[Rr]esult* +-*.sass-cache +- +-#Project files +-[Bb]uild/ +- +-#Subversion files +-.svn +- +-# Office Temp Files +-~$* +- +-# vim Temp Files +-*~ +- +-#NuGet +-packages/ +-*.nupkg +- +-#ncrunch +-*ncrunch* +-*crunch*.local.xml +- +-# visual studio database projects +-*.dbmdl +- +-#Test files +-*.testsettings +- +-#Other files +-*.DotSettings +-.vs/ +-*project.lock.json +- +-#Files generated by the VS build +-**/Generated Files/** +- diff --git a/patches/@react-navigation+stack+6.3.16+003+fixKeyboardFlicker.patch b/patches/@react-navigation+stack+6.3.16+003+fixKeyboardFlicker.patch new file mode 100644 index 000000000000..2b2819f098d2 --- /dev/null +++ b/patches/@react-navigation+stack+6.3.16+003+fixKeyboardFlicker.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/@react-navigation/stack/src/views/Stack/Card.tsx b/node_modules/@react-navigation/stack/src/views/Stack/Card.tsx +index 913218e..ebc2f93 100755 +--- a/node_modules/@react-navigation/stack/src/views/Stack/Card.tsx ++++ b/node_modules/@react-navigation/stack/src/views/Stack/Card.tsx +@@ -517,7 +517,7 @@ export default class Card extends React.Component { + // Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply + collapsable={false} + /> +- ++ + {overlayEnabled ? ( + + {overlay({ style: overlayStyle })} diff --git a/patches/@rnmapbox+maps+10.1.11.patch b/patches/@rnmapbox+maps+10.1.11.patch new file mode 100644 index 000000000000..9f2df5f4ee6e --- /dev/null +++ b/patches/@rnmapbox+maps+10.1.11.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +index dbd6d0b..1d043f2 100644 +--- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt ++++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +@@ -188,7 +188,7 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame + + private fun setInitialCamera() { + mDefaultStop?.let { +- val mapView = mMapView!! ++ val mapView = mMapView ?: return + val map = mapView.getMapboxMap() + + it.setDuration(0) diff --git a/patches/@shopify+flash-list++recyclerlistview+4.2.0.patch b/patches/@shopify+flash-list++recyclerlistview+4.2.0.patch new file mode 100644 index 000000000000..3bfe2597c816 --- /dev/null +++ b/patches/@shopify+flash-list++recyclerlistview+4.2.0.patch @@ -0,0 +1,92 @@ +diff --git a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.js b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.js +index a98072e..67b8f30 100644 +--- a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.js ++++ b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.js +@@ -375,6 +375,12 @@ var RecyclerListView = /** @class */ (function (_super) { + } + return null; + }; ++ RecyclerListView.prototype.getNativeScrollRef = function () { ++ if (this._scrollComponent && this._scrollComponent.getNativeScrollRef) { ++ return this._scrollComponent.getNativeScrollRef(); ++ } ++ return null; ++ }; + RecyclerListView.prototype.renderCompat = function () { + //TODO:Talha + // const { +diff --git a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollComponent.js b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollComponent.js +index 96355ba..4d32c92 100644 +--- a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollComponent.js ++++ b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollComponent.js +@@ -23,6 +23,9 @@ var BaseScrollComponent = /** @class */ (function (_super) { + BaseScrollComponent.prototype.getScrollableNode = function () { + return null; + }; ++ BaseScrollComponent.prototype.getNativeScrollRef = function () { ++ return null; ++ }; + return BaseScrollComponent; + }(React.Component)); + exports.default = BaseScrollComponent; +diff --git a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/platform/reactnative/scrollcomponent/ScrollComponent.js b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/platform/reactnative/scrollcomponent/ScrollComponent.js +index 2f7033c..a559e18 100644 +--- a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/platform/reactnative/scrollcomponent/ScrollComponent.js ++++ b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/dist/reactnative/platform/reactnative/scrollcomponent/ScrollComponent.js +@@ -76,6 +76,9 @@ var ScrollComponent = /** @class */ (function (_super) { + } + return null; + }; ++ ScrollComponent.prototype.getNativeScrollRef = function () { ++ return this._scrollViewRef; ++ }; + ScrollComponent.prototype.render = function () { + var Scroller = TSCast_1.default.cast(this.props.externalScrollView); //TSI + var renderContentContainer = this.props.renderContentContainer ? this.props.renderContentContainer : this._defaultContainer; +diff --git a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/src/core/RecyclerListView.tsx b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/src/core/RecyclerListView.tsx +index 95dd87b..03de7ed 100644 +--- a/node_modules/@shopify/flash-list/node_modules/recyclerlistview/src/core/RecyclerListView.tsx ++++ b/node_modules/@shopify/flash-list/node_modules/recyclerlistview/src/core/RecyclerListView.tsx +@@ -394,6 +394,13 @@ export default class RecyclerListView

(this.props.externalScrollView); //TSI + const renderContentContainer = this.props.renderContentContainer ? this.props.renderContentContainer : this._defaultContainer; diff --git a/patches/@shopify+flash-list+1.6.3.patch b/patches/@shopify+flash-list+1.6.3.patch new file mode 100644 index 000000000000..4910bb20b4ec --- /dev/null +++ b/patches/@shopify+flash-list+1.6.3.patch @@ -0,0 +1,1360 @@ +diff --git a/node_modules/@shopify/flash-list/CHANGELOG.md b/node_modules/@shopify/flash-list/CHANGELOG.md +deleted file mode 100644 +index 9c6bc58..0000000 +--- a/node_modules/@shopify/flash-list/CHANGELOG.md ++++ /dev/null +@@ -1,279 +0,0 @@ +-# Changelog +- +-All notable changes to this project will be documented in this file. +- +-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +-and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +- +-## [Unreleased] +- +-## [1.6.3] - 2023-11-09 +- +-- Changes for RN 0.73 support +- - https://github.com/Shopify/flash-list/pull/930 +- +-## [1.6.2] - 2023-10-19 +- +-- Move shouldRefreshWithAnchoring configuration so it is possible to disable it from outside FlashList by invalidating layout +- - https://github.com/Shopify/flash-list/pull/935 +- +-## [1.6.1] - 2023-09-14 +- +-- Prevent an expired layout provider from being used again +- - https://github.com/Shopify/flash-list/pull/915 +- +-## [1.6.0] - 2023-09-13 +- +-- Update types to match `react-native@0.72` view types. +- - https://github.com/Shopify/flash-list/pull/890 +-- Add option to clear cached layouts on update +- - https://github.com/Shopify/flash-list/pull/910 +- +-## [1.5.0] - 2023-07-12 +- +-- Update kotlin version to 1.8.10 for RN 0.72 compatibility +- - https://github.com/Shopify/flash-list/pull/865 +- +-## [1.4.3] - 2023-04-24 +- +-- Fix definition conflicts with previous value +- - https://github.com/Shopify/flash-list/pull/795 +-- Fix Android unit test +- - https://github.com/Shopify/flash-list/pull/815 +-- Fix performance issues with inverted lists on Android +- - https://github.com/Shopify/flash-list/pull/819 +- +-## [1.4.2] - 2023-03-20 +- +-- Apply layout correction only to consecutive cells +- - https://github.com/Shopify/flash-list/pull/788 +- +-## [1.4.1] - 2023-01-24 +- +-- Prevent overflow of sticky headers +- - https://github.com/Shopify/flash-list/pull/714 +-- Skip footer correction when layout correction is skipped +- - https://github.com/Shopify/flash-list/pull/743 +- +-## [1.4.0] - 2022-11-07 +- +-- Add content padding support to FlashList +- - https://github.com/Shopify/flash-list/pull/626 +-- Upgrade recyclerlistview to v4.2.0 +- - https://github.com/Shopify/flash-list/pull/660 +- +-## [1.3.1] - 2022-10-11 +- +-- Expose `columnIndex` and `columnSpan` to `MasonryFlashList.renderItem` +- - https://github.com/Shopify/flash-list/pull/625 +- +-## [1.3.0] - 2022-09-26 +- +-- Added `MasonryFlashList` which adds support for rendering masonry layouts +- - https://github.com/Shopify/flash-list/pull/587 +- +-## [1.2.2] - 2022-09-06 +- +-- Fixes type checking error in `AutoLayoutView` due to `children` not being an explicit type +- - https://github.com/Shopify/flash-list/pull/567 +- +-## [1.2.1] - 2022-08-03 +- +-- Fixed crash when `estimatedListSize` is used in an empty list +- - https://github.com/Shopify/flash-list/pull/546 +- +-## [1.2.0] - 2022-07-18 +- +-- Fixed out of bound read from data +- - https://github.com/Shopify/flash-list/pull/523 +-- Added JS only fallbacks for unsupported platforms +- - https://github.com/Shopify/flash-list/pull/518 +-- Added footer correction in AutoLayoutView +- - https://github.com/Shopify/flash-list/pull/519 +-- Added `viewPosition` and `viewOffset` support scrollTo methods +- - https://github.com/Shopify/flash-list/pull/521 +-- Fix inverted mode while being horizontal +- - https://github.com/Shopify/flash-list/pull/520 +-- Upgrade recyclerlistview to v4.1.1 +- - https://github.com/Shopify/flash-list/pull/526 +- +-## [1.1.0] - 2022-07-06 +- +-- Added render target info to `renderItem` callback +- - https://github.com/Shopify/flash-list/pull/454 +-- Add Apple TV support +- - https://github.com/Shopify/flash-list/pull/511 +-- Clarify installation instructions in Expo projects +- - https://github.com/Shopify/flash-list/pull/497 +-- Upgrade recyclerlistview to v4.0.1 +- - https://github.com/Shopify/flash-list/pull/507 +-- Add tslib as a dependency +- - https://github.com/Shopify/flash-list/pull/514 +- +-## [1.0.4] - 2022-07-02 +- +-- Build fix for Android projects having `kotlinVersion` defined in `build.gradle`. +-- Allow providing an external scrollview. +- - https://github.com/Shopify/flash-list/pull/502 +- +-## [1.0.3] - 2022-07-01 +- +-- Add kotlin-gradle-plugin to buildscript in project build.gradle +- - https://github.com/Shopify/flash-list/pull/481 +- +-## [1.0.2] - 2022-06-30 +- +-- Minor changes +- +-## [1.0.1] - 2022-06-30 +- +-- `data` prop change will force update items only if `renderItem` is also updated +- - https://github.com/Shopify/flash-list/pull/453 +- +-## [1.0.0] - 2022-06-17 +- +-- Upgrade recyclerlistview to v3.3.0-beta.2 +- - https://github.com/Shopify/flash-list/pull/445 +-- Added web support +- - https://github.com/Shopify/flash-list/pull/444 +-- Added `disableAutoLayout` prop to prevent conflicts with custom `CellRendererComponent` +- - https://github.com/Shopify/flash-list/pull/452 +- +-## [0.6.1] - 2022-05-26 +- +-- Fix amending layout on iOS +- - https://github.com/Shopify/flash-list/pull/412 +-- Define `FlashList` props previously inherited from `VirtualizedList` and `FlatList` explicitly +- - https://github.com/Shopify/flash-list/pull/386 +-- Make `estimatedItemSize` optional +- - https://github.com/Shopify/flash-list/pull/378 +-- Change `overrideItemType` prop name to `getItemType` +- - https://github.com/Shopify/flash-list/pull/369 +-- Added `useBlankAreaTracker` hook for tracking blank area in production +- - https://github.com/Shopify/flash-list/pull/411 +-- Added `CellRendererComponent` prop +- - https://github.com/Shopify/flash-list/pull/362 +-- Added automatic height measurement for horizontal lists even when parent isn't deterministic +- - https://github.com/Shopify/flash-list/pull/409 +- +-## [0.5.0] - 2022-04-29 +- +-- Fix finding props with testId +- - https://github.com/Shopify/flash-list/pull/357 +-- Reuse cached layouts on orientation change +- - https://github.com/Shopify/flash-list/pull/319 +- +-## [0.4.6] - 2022-04-13 +- +-- Match FlashList's empty list behavior with FlatList +- - https://github.com/Shopify/flash-list/pull/312 +- +-## [0.4.5] - 2022-04-13 +- +-- Upgrade recyclerlistview to v3.2.0-beta.4 +- +- - https://github.com/Shopify/flash-list/pull/315 +- +-- Add viewability callbacks +- +- - https://github.com/Shopify/flash-list/pull/301 +- +-- Calculate average item sizes automatically +- - https://github.com/Shopify/flash-list/pull/296 +- +-## [0.4.4] - 2022-04-06 +- +-- Fix `FlashList` mock when no data is provided +- - https://github.com/Shopify/flash-list/pull/295 +- +-## [0.4.3] - 2022-04-04 +- +-- Reduce number of render item calls +- +- - https://github.com/Shopify/flash-list/pull/253 +- +-- Upgrade recyclerlistview to v3.2.0-beta.2 +- - https://github.com/Shopify/flash-list/pull/284 +- +-## [0.4.2] - 2022-04-04 +- +-- Minor changes +- +-## [0.4.1] - 2022-03-29 +- +-- Crash fix for android activity switching (#256) +- +- - https://github.com/Shopify/flash-list/pull/257 +- +-- initialScrollIndex, scrollTo methods will now account for size of header +- +- - https://github.com/Shopify/flash-list/pull/194 +- +-- Added a new mock for easier testing of components with `FlashList` +- - https://github.com/Shopify/flash-list/pull/236 +- +-## [0.4.0] - 2022-03-23 +- +-- Add support for layout animations +- +- - https://github.com/Shopify/flash-list/pull/183 +- +-- Suppress recyclerlistview's bounded size exception for some missing cases. +- +- - https://github.com/Shopify/flash-list/pull/192 +- +-- Expose reference to recyclerlistview and firstItemOffset +- +- - https://github.com/Shopify/flash-list/pull/217 +- +-- recyclerlistview upgraded to v3.1.0-alpha.9 +- - https://github.com/Shopify/flash-list/pull/227 +- +-## [0.3.3] - 2022-03-16 +- +-- Prevent implicit scroll to top on device orientation change +-- Change recyclerlistview's bounded size exception to a warning +- - https://github.com/Shopify/flash-list/pull/187 +- +-## [0.3.2] - 2022-03-15 +- +-- Minor changes +- +-## [0.3.1] - 2022-03-15 +- +-- Revert react-native-safe-area upgrade and minSdkVersion bump +- - https://github.com/Shopify/flash-list/pull/184 +- +-## [0.3.0] - 2022-03-15 +- +-- Fixed untranspiled library code by enforcing stricter TS rules. +- - https://github.com/Shopify/flash-list/pull/181 +- +-## [0.2.4] - 2022-03-14 +- +-- Added `onLoad` event that is called once the list has rendered items. This is required because FlashList doesn't render items in the first cycle. +- - https://github.com/Shopify/flash-list/pull/180 +- +-## [0.2.3] - 2022-03-10 +- +-- Fixing publish steps for transpiled code +- - https://github.com/Shopify/flash-list/pull/150 +- +-## [0.2.2] - 2022-03-10 +- +-- Fixing publish steps for transpiled code +- - https://github.com/Shopify/flash-list/pull/149 +- +-## [0.2.1] - 2022-03-09 +- +-- Bug fix for style and last separator +- - https://github.com/Shopify/flash-list/pull/141 +- +-## [0.2.0] - 2022-03-08 +- +-- Rename the component from `RecyclerFlatList` to `FlashList` +- - https://github.com/Shopify/flash-list/pull/140 +- +-## [0.1.0] - 2022-03-02 +- +-- Initial release +diff --git a/node_modules/@shopify/flash-list/RNFlashList.podspec b/node_modules/@shopify/flash-list/RNFlashList.podspec +index 38ff029..a749f6c 100644 +--- a/node_modules/@shopify/flash-list/RNFlashList.podspec ++++ b/node_modules/@shopify/flash-list/RNFlashList.podspec +@@ -9,14 +9,20 @@ Pod::Spec.new do |s| + s.homepage = package['homepage'] + s.license = package['license'] + s.author = package['author'] +- s.platforms = { :ios => '11.0', :tvos => '12.0' } + s.source = { git: 'https://github.com/shopify/flash-list.git', tag: "v#{s.version}" } + s.source_files = 'ios/Sources/**/*' + s.requires_arc = true + s.swift_version = '5.0' ++ s.pod_target_xcconfig = { 'OTHER_SWIFT_FLAGS' => '-D RCT_NEW_ARCH_ENABLED', } + +- # Dependencies +- s.dependency 'React-Core' ++ if defined?(install_modules_dependencies()) != nil ++ install_modules_dependencies(s) ++ s.ios.deployment_target = "12.4" ++ s.platforms = { :ios => '12.4', :tvos => '12.0' } ++ else ++ s.dependency "React-Core" ++ s.platforms = { :ios => '11.0', :tvos => '12.0' } ++ end + + # Tests spec + s.test_spec 'Tests' do |test_spec| +diff --git a/node_modules/@shopify/flash-list/android/build.gradle b/node_modules/@shopify/flash-list/android/build.gradle +index bed08cd..bad4465 100644 +--- a/node_modules/@shopify/flash-list/android/build.gradle ++++ b/node_modules/@shopify/flash-list/android/build.gradle +@@ -1,7 +1,14 @@ +-apply plugin: 'com.android.library' ++def isNewArchitectureEnabled() { ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} + ++apply plugin: 'com.android.library' + apply plugin: 'kotlin-android' + ++if (isNewArchitectureEnabled()) { ++ apply plugin: 'com.facebook.react' ++} ++ + def _ext = rootProject.ext + + def _reactNativeVersion = _ext.has('reactNative') ? _ext.reactNative : '+' +@@ -40,11 +47,19 @@ android { + debug.java.srcDirs += 'src/debug/kotlin' + test.java.srcDirs += 'src/test/kotlin' + androidTest.java.srcDirs += 'src/androidTest/kotlin' ++ ++ if (isNewArchitectureEnabled()) { ++ main.java.srcDirs += ["${project.buildDir}/generated/source/codegen/java"] ++ main.java.srcDirs += ["src/fabric/java"] ++ } else { ++ main.java.srcDirs += ['src/paper/java'] ++ } + } + + defaultConfig { + minSdkVersion _minSdkVersion + targetSdkVersion _targetSdkVersion ++ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + versionCode 1 + versionName "1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" +@@ -61,7 +76,7 @@ android { + + dependencies { + compileOnly "com.facebook.react:react-native:${_reactNativeVersion}" +- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${_kotlinVersion}" ++ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${_kotlinVersion}" + testImplementation "junit:junit:${_junitVersion}" + testImplementation "org.mockito.kotlin:mockito-kotlin:${_mockitoVersion}" + testImplementation "org.mockito:mockito-inline:${_mockitoVersion}" +diff --git a/node_modules/@shopify/flash-list/android/src/fabric/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt b/node_modules/@shopify/flash-list/android/src/fabric/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt +new file mode 100644 +index 0000000..6e850fe +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/fabric/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt +@@ -0,0 +1,12 @@ ++package com.shopify.reactnative.flash_list ++ ++import com.facebook.react.bridge.ReactContext ++import com.facebook.react.fabric.FabricUIManager ++import com.facebook.react.uimanager.UIManagerHelper ++import com.facebook.react.uimanager.common.UIManagerType ++import com.facebook.react.bridge.WritableMap ++ ++fun ReactContext.dispatchEvent(nativeTag: Int, eventName: String, event: WritableMap) { ++ val fabricUIManager = UIManagerHelper.getUIManager(this, UIManagerType.FABRIC) as FabricUIManager ++ fabricUIManager.receiveEvent(nativeTag, eventName, event) ++} +diff --git a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutView.kt b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutView.kt +index 4571798..c6c3cce 100644 +--- a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutView.kt ++++ b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutView.kt +@@ -2,8 +2,6 @@ package com.shopify.reactnative.flash_list + + import android.content.Context + import android.graphics.Canvas +-import android.util.DisplayMetrics +-import android.util.Log + import android.view.View + import android.view.ViewGroup + import android.widget.HorizontalScrollView +@@ -11,7 +9,6 @@ import android.widget.ScrollView + import com.facebook.react.bridge.Arguments + import com.facebook.react.bridge.ReactContext + import com.facebook.react.bridge.WritableMap +-import com.facebook.react.uimanager.events.RCTEventEmitter + import com.facebook.react.views.view.ReactViewGroup + + +@@ -142,9 +139,8 @@ class AutoLayoutView(context: Context) : ReactViewGroup(context) { + val event: WritableMap = Arguments.createMap() + event.putDouble("offsetStart", alShadow.blankOffsetAtStart / pixelDensity) + event.putDouble("offsetEnd", alShadow.blankOffsetAtEnd / pixelDensity) ++ + val reactContext = context as ReactContext +- reactContext +- .getJSModule(RCTEventEmitter::class.java) +- .receiveEvent(id, "onBlankAreaEvent", event) ++ reactContext.dispatchEvent(id, "onBlankAreaEvent", event) + } + } +diff --git a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutViewManager.kt b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutViewManager.kt +index b646f09..7bda0ea 100644 +--- a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutViewManager.kt ++++ b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/AutoLayoutViewManager.kt +@@ -3,15 +3,22 @@ package com.shopify.reactnative.flash_list + import com.facebook.react.module.annotations.ReactModule + import com.facebook.react.uimanager.ThemedReactContext + import com.facebook.react.uimanager.annotations.ReactProp +-import com.facebook.react.views.view.ReactViewGroup +-import com.facebook.react.views.view.ReactViewManager ++import com.facebook.react.uimanager.ViewGroupManager ++import com.facebook.react.uimanager.ViewManagerDelegate ++import com.facebook.react.viewmanagers.AutoLayoutViewManagerDelegate ++import com.facebook.react.viewmanagers.AutoLayoutViewManagerInterface + import com.facebook.react.common.MapBuilder + import kotlin.math.roundToInt + + /** ViewManager for AutoLayoutView - Container for all RecyclerListView children. Automatically removes all gaps and overlaps for GridLayouts with flexible spans. + * Note: This cannot work for masonry layouts i.e, pinterest like layout */ + @ReactModule(name = AutoLayoutViewManager.REACT_CLASS) +-class AutoLayoutViewManager: ReactViewManager() { ++class AutoLayoutViewManager: ViewGroupManager(), AutoLayoutViewManagerInterface { ++ private val mDelegate: ViewManagerDelegate ++ ++ init { ++ mDelegate = AutoLayoutViewManagerDelegate(this) ++ } + + companion object { + const val REACT_CLASS = "AutoLayoutView" +@@ -21,45 +28,42 @@ class AutoLayoutViewManager: ReactViewManager() { + return REACT_CLASS + } + +- override fun createViewInstance(context: ThemedReactContext): ReactViewGroup { ++ override fun createViewInstance(context: ThemedReactContext): AutoLayoutView { + return AutoLayoutView(context).also { it.pixelDensity = context.resources.displayMetrics.density.toDouble() } + } + +- override fun getExportedCustomDirectEventTypeConstants(): MutableMap { +- return MapBuilder.builder().put( +- "onBlankAreaEvent", +- MapBuilder.of( +- "registrationName", "onBlankAreaEvent") +- ).build(); +- } ++ override fun getExportedCustomDirectEventTypeConstants() = mutableMapOf( ++ "onBlankAreaEvent" to mutableMapOf("registrationName" to "onBlankAreaEvent"), ++ "topOnBlankAreaEvent" to mutableMapOf("registrationName" to "onBlankAreaEvent"), ++ ) + + @ReactProp(name = "horizontal") +- fun setHorizontal(view: AutoLayoutView, isHorizontal: Boolean) { ++ override fun setHorizontal(view: AutoLayoutView, isHorizontal: Boolean) { + view.alShadow.horizontal = isHorizontal + } + + @ReactProp(name = "disableAutoLayout") +- fun setDisableAutoLayout(view: AutoLayoutView, disableAutoLayout: Boolean) { ++ override fun setDisableAutoLayout(view: AutoLayoutView, disableAutoLayout: Boolean) { + view.disableAutoLayout = disableAutoLayout + } + + @ReactProp(name = "scrollOffset") +- fun setScrollOffset(view: AutoLayoutView, scrollOffset: Double) { ++ override fun setScrollOffset(view: AutoLayoutView, scrollOffset: Double) { + view.alShadow.scrollOffset = convertToPixelLayout(scrollOffset, view.pixelDensity) + } + + @ReactProp(name = "windowSize") +- fun setWindowSize(view: AutoLayoutView, windowSize: Double) { ++ override fun setWindowSize(view: AutoLayoutView, windowSize: Double) { + view.alShadow.windowSize = convertToPixelLayout(windowSize, view.pixelDensity) + } + + @ReactProp(name = "renderAheadOffset") +- fun setRenderAheadOffset(view: AutoLayoutView, renderOffset: Double) { ++ override fun setRenderAheadOffset(view: AutoLayoutView, renderOffset: Double) { + view.alShadow.renderOffset = convertToPixelLayout(renderOffset, view.pixelDensity) + } + + @ReactProp(name = "enableInstrumentation") +- fun setEnableInstrumentation(view: AutoLayoutView, enableInstrumentation: Boolean) { ++ override fun setEnableInstrumentation(view: AutoLayoutView, enableInstrumentation: Boolean) { + view.enableInstrumentation = enableInstrumentation + } + +diff --git a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerManager.kt b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerManager.kt +index 1434caa..590ba1d 100644 +--- a/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerManager.kt ++++ b/node_modules/@shopify/flash-list/android/src/main/kotlin/com/shopify/reactnative/flash_list/CellContainerManager.kt +@@ -2,12 +2,20 @@ package com.shopify.reactnative.flash_list + + import com.facebook.react.module.annotations.ReactModule + import com.facebook.react.uimanager.ThemedReactContext ++import com.facebook.react.uimanager.ViewGroupManager ++import com.facebook.react.uimanager.ViewManagerDelegate + import com.facebook.react.uimanager.annotations.ReactProp +-import com.facebook.react.views.view.ReactViewGroup +-import com.facebook.react.views.view.ReactViewManager ++import com.facebook.react.viewmanagers.CellContainerManagerDelegate ++import com.facebook.react.viewmanagers.CellContainerManagerInterface + + @ReactModule(name = AutoLayoutViewManager.REACT_CLASS) +-class CellContainerManager: ReactViewManager() { ++class CellContainerManager: ViewGroupManager(), CellContainerManagerInterface { ++ private val mDelegate: ViewManagerDelegate ++ ++ init { ++ mDelegate = CellContainerManagerDelegate(this); ++ } ++ + companion object { + const val REACT_CLASS = "CellContainer" + } +@@ -16,12 +24,12 @@ class CellContainerManager: ReactViewManager() { + return REACT_CLASS + } + +- override fun createViewInstance(context: ThemedReactContext): ReactViewGroup { ++ override fun createViewInstance(context: ThemedReactContext): CellContainerImpl { + return CellContainerImpl(context) + } + + @ReactProp(name = "index") +- fun setIndex(view: CellContainerImpl, index: Int) { ++ override fun setIndex(view: CellContainerImpl, index: Int) { + view.index = index + } + } +diff --git a/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerDelegate.java b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerDelegate.java +new file mode 100644 +index 0000000..4c90807 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerDelegate.java +@@ -0,0 +1,46 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaDelegate.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++import androidx.annotation.Nullable; ++import com.facebook.react.uimanager.BaseViewManagerDelegate; ++import com.facebook.react.uimanager.BaseViewManagerInterface; ++ ++public class AutoLayoutViewManagerDelegate & AutoLayoutViewManagerInterface> extends BaseViewManagerDelegate { ++ public AutoLayoutViewManagerDelegate(U viewManager) { ++ super(viewManager); ++ } ++ @Override ++ public void setProperty(T view, String propName, @Nullable Object value) { ++ switch (propName) { ++ case "horizontal": ++ mViewManager.setHorizontal(view, value == null ? false : (boolean) value); ++ break; ++ case "scrollOffset": ++ mViewManager.setScrollOffset(view, value == null ? 0f : ((Double) value).doubleValue()); ++ break; ++ case "windowSize": ++ mViewManager.setWindowSize(view, value == null ? 0f : ((Double) value).doubleValue()); ++ break; ++ case "renderAheadOffset": ++ mViewManager.setRenderAheadOffset(view, value == null ? 0f : ((Double) value).doubleValue()); ++ break; ++ case "enableInstrumentation": ++ mViewManager.setEnableInstrumentation(view, value == null ? false : (boolean) value); ++ break; ++ case "disableAutoLayout": ++ mViewManager.setDisableAutoLayout(view, value == null ? false : (boolean) value); ++ break; ++ default: ++ super.setProperty(view, propName, value); ++ } ++ } ++} +diff --git a/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerInterface.java b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerInterface.java +new file mode 100644 +index 0000000..8ad2622 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/AutoLayoutViewManagerInterface.java +@@ -0,0 +1,21 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaInterface.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++ ++public interface AutoLayoutViewManagerInterface { ++ void setHorizontal(T view, boolean value); ++ void setScrollOffset(T view, double value); ++ void setWindowSize(T view, double value); ++ void setRenderAheadOffset(T view, double value); ++ void setEnableInstrumentation(T view, boolean value); ++ void setDisableAutoLayout(T view, boolean value); ++} +diff --git a/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerDelegate.java b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerDelegate.java +new file mode 100644 +index 0000000..2b64af7 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerDelegate.java +@@ -0,0 +1,31 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaDelegate.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++import androidx.annotation.Nullable; ++import com.facebook.react.uimanager.BaseViewManagerDelegate; ++import com.facebook.react.uimanager.BaseViewManagerInterface; ++ ++public class CellContainerManagerDelegate & CellContainerManagerInterface> extends BaseViewManagerDelegate { ++ public CellContainerManagerDelegate(U viewManager) { ++ super(viewManager); ++ } ++ @Override ++ public void setProperty(T view, String propName, @Nullable Object value) { ++ switch (propName) { ++ case "index": ++ mViewManager.setIndex(view, value == null ? 0 : ((Double) value).intValue()); ++ break; ++ default: ++ super.setProperty(view, propName, value); ++ } ++ } ++} +diff --git a/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerInterface.java b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerInterface.java +new file mode 100644 +index 0000000..b37ddbd +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/paper/java/com/facebook/react/viewmanagers/CellContainerManagerInterface.java +@@ -0,0 +1,16 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaInterface.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++ ++public interface CellContainerManagerInterface { ++ void setIndex(T view, int value); ++} +diff --git a/node_modules/@shopify/flash-list/android/src/paper/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt b/node_modules/@shopify/flash-list/android/src/paper/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt +new file mode 100644 +index 0000000..b867c18 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/android/src/paper/java/com/shopify/reactnative/flash_list/ReactContextExtensions.kt +@@ -0,0 +1,10 @@ ++package com.shopify.reactnative.flash_list ++ ++import com.facebook.react.bridge.ReactContext ++import com.facebook.react.uimanager.events.RCTEventEmitter ++import com.facebook.react.bridge.WritableMap ++ ++fun ReactContext.dispatchEvent(nativeTag: Int, eventName: String, event: WritableMap) { ++ this.getJSModule(RCTEventEmitter::class.java) ++ .receiveEvent(nativeTag, eventName, event) ++} +diff --git a/node_modules/@shopify/flash-list/dist/FlashList.d.ts b/node_modules/@shopify/flash-list/dist/FlashList.d.ts +index ed81d7d..1e24103 100644 +--- a/node_modules/@shopify/flash-list/dist/FlashList.d.ts ++++ b/node_modules/@shopify/flash-list/dist/FlashList.d.ts +@@ -103,6 +103,7 @@ declare class FlashList extends React.PureComponent, FlashL + offset: number; + }): void; + getScrollableNode(): number | null; ++ getNativeScrollRef(): number | null; + /** + * Allows access to internal recyclerlistview. This is useful for enabling access to its public APIs. + * Warning: We may swap recyclerlistview for something else in the future. Use with caution. +diff --git a/node_modules/@shopify/flash-list/dist/FlashList.d.ts.map b/node_modules/@shopify/flash-list/dist/FlashList.d.ts.map +index 97c8cc6..a915a05 100644 +--- a/node_modules/@shopify/flash-list/dist/FlashList.d.ts.map ++++ b/node_modules/@shopify/flash-list/dist/FlashList.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"FlashList.d.ts","sourceRoot":"","sources":["../src/FlashList.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"FlashList.d.ts","sourceRoot":"","sources":["../src/FlashList.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/FlashList.js b/node_modules/@shopify/flash-list/dist/FlashList.js +index 1a5d026..37852b8 100644 +--- a/node_modules/@shopify/flash-list/dist/FlashList.js ++++ b/node_modules/@shopify/flash-list/dist/FlashList.js +@@ -478,6 +478,12 @@ var FlashList = /** @class */ (function (_super) { + var _a, _b; + return ((_b = (_a = this.rlvRef) === null || _a === void 0 ? void 0 : _a.getScrollableNode) === null || _b === void 0 ? void 0 : _b.call(_a)) || null; + }; ++ FlashList.prototype.getNativeScrollRef = function () { ++ var _a, _b; ++ // eslint-disable-next-line @typescript-eslint/ban-ts-comment ++ // @ts-ignore ++ return ((_b = (_a = this.rlvRef) === null || _a === void 0 ? void 0 : _a.getNativeScrollRef) === null || _b === void 0 ? void 0 : _b.call(_a)) || null; ++ }; + Object.defineProperty(FlashList.prototype, "recyclerlistview_unsafe", { + /** + * Allows access to internal recyclerlistview. This is useful for enabling access to its public APIs. +diff --git a/node_modules/@shopify/flash-list/dist/FlashList.js.map b/node_modules/@shopify/flash-list/dist/FlashList.js.map +index 375f7fc..8fc9c3f 100644 +--- a/node_modules/@shopify/flash-list/dist/FlashList.js.map ++++ b/node_modules/@shopify/flash-list/dist/FlashList.js.map +@@ -1 +1 @@ +-{"version":3,"file":"FlashList.js","sourceRoot":"","sources":["../src/FlashList.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"FlashList.js","sourceRoot":"","sources":["../src/FlashList.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts +new file mode 100644 +index 0000000..661dc81 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts +@@ -0,0 +1,18 @@ ++import type { ViewProps } from "react-native"; ++import type { Int32, Double, DirectEventHandler } from "react-native/Libraries/Types/CodegenTypes"; ++declare type BlankAreaEvent = Readonly<{ ++ offsetStart: Int32; ++ offsetEnd: Int32; ++}>; ++interface NativeProps extends ViewProps { ++ horizontal?: boolean; ++ scrollOffset?: Double; ++ windowSize?: Double; ++ renderAheadOffset?: Double; ++ enableInstrumentation?: boolean; ++ disableAutoLayout?: boolean; ++ onBlankAreaEvent?: DirectEventHandler; ++} ++declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType; ++export default _default; ++//# sourceMappingURL=AutoLayoutNativeComponent.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts.map b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts.map +new file mode 100644 +index 0000000..25297b9 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"AutoLayoutNativeComponent.d.ts","sourceRoot":"","sources":["../../src/fabric/AutoLayoutNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,KAAK,EACL,MAAM,EACN,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,aAAK,cAAc,GAAG,QAAQ,CAAC;IAC7B,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC,CAAC;AAEH,UAAU,WAAY,SAAQ,SAAS;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;CACvD;;AAED,wBAAqE"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js +new file mode 100644 +index 0000000..c69ba24 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js +@@ -0,0 +1,6 @@ ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++var tslib_1 = require("tslib"); ++var codegenNativeComponent_1 = tslib_1.__importDefault(require("react-native/Libraries/Utilities/codegenNativeComponent")); ++exports.default = (0, codegenNativeComponent_1.default)("AutoLayoutView"); ++//# sourceMappingURL=AutoLayoutNativeComponent.js.map +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js.map b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js.map +new file mode 100644 +index 0000000..890db63 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/AutoLayoutNativeComponent.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"AutoLayoutNativeComponent.js","sourceRoot":"","sources":["../../src/fabric/AutoLayoutNativeComponent.ts"],"names":[],"mappings":";;;AAAA,2HAA6F;AAuB7F,kBAAe,IAAA,gCAAsB,EAAc,gBAAgB,CAAC,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts +new file mode 100644 +index 0000000..bb8f63b +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts +@@ -0,0 +1,8 @@ ++import type { Int32 } from "react-native/Libraries/Types/CodegenTypes"; ++import type { ViewProps } from "react-native"; ++interface NativeProps extends ViewProps { ++ index?: Int32; ++} ++declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType; ++export default _default; ++//# sourceMappingURL=CellContainerNativeComponent.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts.map b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts.map +new file mode 100644 +index 0000000..993a2c3 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"CellContainerNativeComponent.d.ts","sourceRoot":"","sources":["../../src/fabric/CellContainerNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,WAAY,SAAQ,SAAS;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;;AAED,wBAAoE"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js +new file mode 100644 +index 0000000..b21acb7 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js +@@ -0,0 +1,6 @@ ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++var tslib_1 = require("tslib"); ++var codegenNativeComponent_1 = tslib_1.__importDefault(require("react-native/Libraries/Utilities/codegenNativeComponent")); ++exports.default = (0, codegenNativeComponent_1.default)("CellContainer"); ++//# sourceMappingURL=CellContainerNativeComponent.js.map +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js.map b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js.map +new file mode 100644 +index 0000000..d7c2469 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/dist/fabric/CellContainerNativeComponent.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"CellContainerNativeComponent.js","sourceRoot":"","sources":["../../src/fabric/CellContainerNativeComponent.ts"],"names":[],"mappings":";;;AAAA,2HAA6F;AAQ7F,kBAAe,IAAA,gCAAsB,EAAc,eAAe,CAAC,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/dist/tsconfig.tsbuildinfo b/node_modules/@shopify/flash-list/dist/tsconfig.tsbuildinfo +deleted file mode 100644 +index 023b94a..0000000 +--- a/node_modules/@shopify/flash-list/dist/tsconfig.tsbuildinfo ++++ /dev/null +@@ -1 +0,0 @@ +-{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/tslib/tslib.d.ts","../node_modules/@types/react-native/modules/BatchedBridge.d.ts","../node_modules/@types/react-native/modules/Codegen.d.ts","../node_modules/@types/react-native/modules/Devtools.d.ts","../node_modules/@types/react-native/modules/globals.d.ts","../node_modules/@types/react-native/modules/LaunchScreen.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/scheduler/tracing.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/react-native/private/Utilities.d.ts","../node_modules/@types/react-native/public/Insets.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/RendererProxy.d.ts","../node_modules/@types/react-native/public/ReactNativeTypes.d.ts","../node_modules/@types/react-native/Libraries/Types/CoreEventTypes.d.ts","../node_modules/@types/react-native/public/ReactNativeRenderer.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/Touchable.d.ts","../node_modules/@types/react-native/Libraries/Components/View/ViewAccessibility.d.ts","../node_modules/@types/react-native/Libraries/Components/View/ViewPropTypes.d.ts","../node_modules/@types/react-native/Libraries/Components/RefreshControl/RefreshControl.d.ts","../node_modules/@types/react-native/Libraries/Components/ScrollView/ScrollView.d.ts","../node_modules/@types/react-native/Libraries/Components/View/View.d.ts","../node_modules/@types/react-native/Libraries/Image/ImageResizeMode.d.ts","../node_modules/@types/react-native/Libraries/Image/ImageSource.d.ts","../node_modules/@types/react-native/Libraries/Image/Image.d.ts","../node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.d.ts","../node_modules/@react-native/virtualized-lists/index.d.ts","../node_modules/@types/react-native/Libraries/Lists/FlatList.d.ts","../node_modules/@types/react-native/Libraries/Lists/SectionList.d.ts","../node_modules/@types/react-native/Libraries/Text/Text.d.ts","../node_modules/@types/react-native/Libraries/Animated/Animated.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/StyleSheet.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/processColor.d.ts","../node_modules/@types/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts","../node_modules/@types/react-native/Libraries/Alert/Alert.d.ts","../node_modules/@types/react-native/Libraries/Animated/Easing.d.ts","../node_modules/@types/react-native/Libraries/Animated/useAnimatedValue.d.ts","../node_modules/@types/react-native/Libraries/vendor/emitter/EventEmitter.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/AppState/AppState.d.ts","../node_modules/@types/react-native/Libraries/BatchedBridge/NativeModules.d.ts","../node_modules/@types/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts","../node_modules/@types/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts","../node_modules/@types/react-native/Libraries/Components/Clipboard/Clipboard.d.ts","../node_modules/@types/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts","../node_modules/@types/react-native/Libraries/EventEmitter/NativeEventEmitter.d.ts","../node_modules/@types/react-native/Libraries/Components/Keyboard/Keyboard.d.ts","../node_modules/@types/react-native/private/TimerMixin.d.ts","../node_modules/@types/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts","../node_modules/@types/react-native/Libraries/Components/Pressable/Pressable.d.ts","../node_modules/@types/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts","../node_modules/@types/react-native/Libraries/Components/SafeAreaView/SafeAreaView.d.ts","../node_modules/@types/react-native/Libraries/Components/StatusBar/StatusBar.d.ts","../node_modules/@types/react-native/Libraries/Components/Switch/Switch.d.ts","../node_modules/@types/react-native/Libraries/Components/TextInput/InputAccessoryView.d.ts","../node_modules/@types/react-native/Libraries/Components/TextInput/TextInput.d.ts","../node_modules/@types/react-native/Libraries/Components/ToastAndroid/ToastAndroid.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableHighlight.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableOpacity.d.ts","../node_modules/@types/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts","../node_modules/@types/react-native/Libraries/Components/Button.d.ts","../node_modules/@types/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts","../node_modules/@types/react-native/Libraries/Interaction/InteractionManager.d.ts","../node_modules/@types/react-native/Libraries/Interaction/PanResponder.d.ts","../node_modules/@types/react-native/Libraries/LayoutAnimation/LayoutAnimation.d.ts","../node_modules/@types/react-native/Libraries/Linking/Linking.d.ts","../node_modules/@types/react-native/Libraries/LogBox/LogBox.d.ts","../node_modules/@types/react-native/Libraries/Modal/Modal.d.ts","../node_modules/@types/react-native/Libraries/Performance/Systrace.d.ts","../node_modules/@types/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts","../node_modules/@types/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts","../node_modules/@types/react-native/Libraries/Utilities/IPerformanceLogger.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/AppRegistry.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/I18nManager.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/RootTag.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/UIManager.d.ts","../node_modules/@types/react-native/Libraries/ReactNative/requireNativeComponent.d.ts","../node_modules/@types/react-native/Libraries/Settings/Settings.d.ts","../node_modules/@types/react-native/Libraries/Share/Share.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts","../node_modules/@types/react-native/Libraries/StyleSheet/PlatformColorValueTypes.d.ts","../node_modules/@types/react-native/Libraries/TurboModule/RCTExport.d.ts","../node_modules/@types/react-native/Libraries/TurboModule/TurboModuleRegistry.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Appearance.d.ts","../node_modules/@types/react-native/Libraries/Utilities/BackHandler.d.ts","../node_modules/@types/react-native/Libraries/Utilities/DevSettings.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Dimensions.d.ts","../node_modules/@types/react-native/Libraries/Utilities/PixelRatio.d.ts","../node_modules/@types/react-native/Libraries/Utilities/Platform.d.ts","../node_modules/@types/react-native/Libraries/Vibration/Vibration.d.ts","../node_modules/@types/react-native/Libraries/YellowBox/YellowBoxDeprecated.d.ts","../node_modules/@types/react-native/Libraries/vendor/core/ErrorUtils.d.ts","../node_modules/@types/react-native/public/DeprecatedPropertiesAlias.d.ts","../node_modules/@types/react-native/index.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/ContextProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/DataProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/LayoutManager.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/LayoutProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/dependencies/GridLayoutProvider.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/scrollcomponent/BaseScrollView.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ViewabilityTracker.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/VirtualRenderer.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ItemAnimator.d.ts","../node_modules/recyclerlistview/dist/reactnative/utils/ComponentCompat.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/RecyclerListView.d.ts","../node_modules/recyclerlistview/dist/reactnative/utils/AutoScroll.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/layoutmanager/GridLayoutManager.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/ProgressiveListView.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/devutils/debughandlers/resize/ResizeDebugHandler.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/devutils/debughandlers/DebugHandlers.d.ts","../node_modules/recyclerlistview/dist/reactnative/index.d.ts","../node_modules/recyclerlistview/dist/reactnative/core/StickyContainer.d.ts","../node_modules/recyclerlistview/sticky/index.d.ts","../src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts","../src/native/auto-layout/AutoLayoutViewNativeComponent.ts","../src/native/auto-layout/AutoLayoutView.tsx","../src/native/cell-container/CellContainer.tsx","../src/PureComponentWrapper.tsx","../src/viewability/ViewToken.ts","../src/FlashListProps.ts","../src/utils/AverageWindow.ts","../src/utils/ContentContainerUtils.ts","../src/GridLayoutProviderWithProps.ts","../src/errors/CustomError.ts","../src/errors/ExceptionList.ts","../src/errors/Warnings.ts","../src/viewability/ViewabilityHelper.ts","../src/viewability/ViewabilityManager.ts","../node_modules/recyclerlistview/dist/reactnative/platform/reactnative/itemanimators/defaultjsanimator/DefaultJSItemAnimator.d.ts","../src/native/config/PlatformHelper.ts","../src/FlashList.tsx","../src/AnimatedFlashList.ts","../src/MasonryFlashList.tsx","../src/benchmark/AutoScrollHelper.ts","../src/benchmark/roundToDecimalPlaces.ts","../src/benchmark/JSFPSMonitor.ts","../src/benchmark/useBlankAreaTracker.ts","../src/benchmark/useBenchmark.ts","../src/benchmark/useDataMultiplier.ts","../src/benchmark/useFlatListBenchmark.ts","../src/index.ts","../src/__tests__/AverageWindow.test.ts","../src/__tests__/ContentContainerUtils.test.ts","../node_modules/@quilted/react-testing/build/typescript/types.d.ts","../node_modules/@quilted/react-testing/build/typescript/matchers/index.d.ts","../node_modules/@quilted/react-testing/build/typescript/environment.d.ts","../node_modules/@quilted/react-testing/build/typescript/implementations/test-renderer.d.ts","../node_modules/@quilted/react-testing/build/typescript/index.d.ts","../src/__tests__/helpers/mountFlashList.tsx","../src/__tests__/FlashList.test.tsx","../src/__tests__/GridLayoutProviderWithProps.test.ts","../src/__tests__/helpers/mountMasonryFlashList.tsx","../src/__tests__/MasonryFlashList.test.ts","../src/native/config/PlatformHelper.web.ts","../src/__tests__/PlatformHelper.web.test.ts","../src/__tests__/ViewabilityHelper.test.ts","../src/__tests__/useBlankAreaTracker.test.tsx","../src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts","../src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts","../src/native/cell-container/CellContainer.android.ts","../src/native/cell-container/CellContainer.ios.ts","../src/native/cell-container/CellContainer.web.tsx","../src/native/config/PlatformHelper.android.ts","../src/native/config/PlatformHelper.ios.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/react-test-renderer/index.d.ts","../node_modules/@types/scheduler/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/websocket/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e",{"version":"1c0e04c54479b57b49fec4e93556974b3d071b65d0b750897e07b3b7d2145fc5","affectsGlobalScope":true},"bc1852215dc1488e6747ca43ae0605041de22ab9a6eeef39542d29837919c414","ae6da60c852e7bacc4a49ff14a42dc1a3fdbb44e11bd9b4acb1bf3d58866ee71",{"version":"0dab023e564abb43c817779fff766e125017e606db344f9633fdba330c970532","affectsGlobalScope":true},"4cbd76eafece5844dc0a32807e68047aecbdd8d863edba651f34c050624f18df",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"ea0aa24a32c073b8639aa1f3130ba0add0f0f2f76b314d9ba988a5cb91d7e3c4","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"29b8a3a533884705024eab54e56465614ad167f5dd87fdc2567d8e451f747224","affectsGlobalScope":true},"4f2490e3f420ea6345cade9aee5eada76888848e053726956aaf2af8705477ea","b3ac03d0c853c0ac076a10cfef4dc21d810f54dac5899ade2b1c628c35263533","d17a689ac1bd689f37d6f0d3d9a21afac349e60633844044f7a7b7b9d6f7fd83","019650941b03d4978f62d21ae874788a665c02b54e3268ef2029b02d3b4f7561","ae591c8a4d5c7f7fa44b6965016391457d9c1fd763475f68340599a2a2987a24","fbdef0c642b82cc1713b965f07b4da8005bbbb2c026039bfdc15ca2d20769e38","c2c004e7f1a150541d06bc4a408b96e45ac1f08e0b1b35dfd07fc0f678205f95","1f2081eb2cbeb0828f9baa1dd12cf6d207f8104ae0b085ab9975d11adc7f7e6f","cda9069fc4c312ff484c1373455e4297a02d38ae3bd7d0959aad772a2809623c","c028d20108bcaa3b1fdf3514956a8a90ccf680f18672fa3c92ce5acf81d7ab23","1054f6e8774a75aaf17e7cfea4899344f69590b2db1e06da21048ed1e063c693","9533301b8f75664e1b40a8484a4fd9c77efc04aef526409c2447aab7d12ddc63","b78b5b3fdb4e30976c4263c66c0ad38fb81edcc8075a4160a39d99c6dedd35be","032b51d656feaece529823992f5a39fe9e24d44dfa21b3a149982f7787fc7bdf","5bbfdfb694b019cb2a2022fba361a7a857efc1fc2b77a892c92ebc1349b7e984","46bc25e3501d321a70d0878e82a1d47b16ab77bdf017c8fecc76343f50806a0d","42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","49dba0d7a37268e6ae2026e84ad4362eac7e776d816756abf649be7fa177dcd5","5f2b5ab209daae571eb9acc1fd2067ccc94e2a13644579a245875bc4f02b562f","f072acf9547f89b814b9fdb3e72f4ebb1649191591cec99db43d35383906f87f","42450dba65ba1307f27c914a8e45e0b602c6f8f78773c052e42b0b87562f081e","f5870d0ca7b0dfb7e2b9ba9abad3a2e2bffe5c711b53dab2e6e76ca2df58302b","aeb20169389e9f508b1a4eb2a30371b64d64bb7c8543120bc39a3c6b78adfcc9","2a3d3acbab8567057a943f9f56113c0144f5fc561623749fbd6bb5c2b33bf738","9cf21fdcd1beb5142a514887133fa59057e06275bb3070713f3b6d51e830ffa0","0ad4f0b67db47064b404df89c50f99552ce12d6c4bb6154255be61eb6beed094","f8a464b9999126fe1095968c266c0d9c6174612cf256379a1ed1993a87bccdc6","49f981ca657ac160b5de5919ee5602d48bc8f8aac0805107c2ce4fd41dc9a2a1","56e4e08d95a3a7886266a2b4f66b67065c340480d9f1beb73ed7578aa83c639a","eb4360d3818dcd879ee965ae2f4b3fdfdc4149db921b6be338cb7dc7c2bd6710","1c1275f325f13af001aa5873418cb497a26b4b8271f9ad20a45e33f61ea3f9d9","b33e8426136c4f9b349b02c940d23310d350179f790899733aa097ed76457061","05aab001669a230a88820be09a54031c45d9af2488b27d53d4a9c8880ce73e8f","d93a066d4b8b33335dfff910fb25abb8979f8814f8ba45ea902a1360907da1f6","41e97e42d182b4d5f0733ebaad69294faaa507d95e595f317168b8f2325da9ca","debc734fc99b6e1684ed565946bad008913c769d4d2e400d8722c0c23d079c06","5a9f7e087aacb01fa0cdbc36b703a60367239f62beed2507a507199e4c417549","c7c23798fbf564983ed69c1ced3371970d986aaed4801a6e0fb41862550dc034","921f5bce372610ae8948ade7d82decbd2cf56d263de578976189585edd0abac0","ac11f8b13beef593e2f097450a7e214b23dca0d428babd570a2f39582f10e9ab","2499beb5d3e2b4c606977bcc2e08b6ef77b2ecda70e78e0622f5af3bed95c9ba","a11057410396907b84051cbdb8b0cd7f7049d72b58d2b6ac1c14ac2608191a52","bb630c26d487cc45ed107f4f2d3c2a95434716f6367f059de734c40d288c31eb","67cbce0ccdfa96b25de478a93cc493266c152e256c3c96b3d16d1f811e3d881f","19905c928bc4c016d05d915625bb08568447266c4661232faf89f7ddc4417ccc","26204eb4c326e8c975f1b789cbf345c6820205bded6d72e57246a83918d3bc84","618f25b2d41a99216e71817a3bc578991eee86c858c3f0f62a9e70707f4d279d","4cd2947878536ec078e4115b7d53cdcd4dcecd3a8288760caa79098db4f8f61f","2129e984399e94c82b77a32b975f3371ca5ee96341ab9f123474f1a5a1a9921f","798120aaa4952d68cd4b43d6625524c62a135c2f5a3eb705caee98de2355230d","6047365397173788c34bd71fea2bf07a9036d981212efd059b33e52d2c405e97","d7e25d7c03ccf8b10972c2a3a57e29a8d9024e6dbc4ac223baf633a6e8c7145c","6c2e2dead2d80007ee44c429b925d0a7b86f8f3d4c237b2197f7db9f39545dc6","38fbc8f9610fbf4bf619854b26e28c4fbbab16dc1944c4317a4af9bf1ac08d8e","1bd0470a72e6869c330e6e978f15ef32ba2c245249aca097b410448152e8a06b","dd05d7970a92b789f7df3b2252574b2e60f1b9a3758e2839e167b498b8f77159","7092be1889127b2f319efd5d9bdcc0b5cf6fe0740e47247ed039446045518898","0a3d5dbf7c2091017e697ebf9af0a727571f5d99cb4c19e6856212a745c6c355","d05f9c767924db6fb89f6075acb64c042cebdb12779bbd1aaca12c850b772d49","d032678e20ff0f4b8ef6f1e4823b6ae37931b776e8381676dc9141999909b3d7","3e4ab0e8e96e968ac84a2484104892c881ded1757acd81b5e969b6229851f54c","d43a36641f5812794a3b4a941e3dfb5fa070f9fff64cfd6daf5291cb962c8b05","32468df81188116040636844517fbe4f67fc37af4fe565c7592353df8e11d2f3","c12b5f9bf412c891cad443ef00a378ad2d3f1301f140943414308665a7d90af8","cf1b65c20036885ed99ce1c18aa0a0ed66f42acd6d415e99b48a8fa4105c23ed","173aec8be1be982c8244df6f94880d77a9b766c8c1ec3eb0af662c8dc6da7f2e","08188020373062e07955835a996fda1aff97a89e57d469edc6b9210bd9c8926f","cad5c2c0085a3e3b74f58aa199944b25ed8d24f93f51c99ebe2463e4f1694785","3e2d93a797c41ab081fbcd80e959b7c30d5d1c358f091c22a6ebe416ef7c5e19","c440df5735a3305e7db118bf821efb597c8318910861f735372846db9f7b506b","d6d8de719a75e5d2ed9dd9d6a99296d1337259e1c96166579db50797edd72ede","32b4c732e183bf5d123f88d526ac21b71a681089c18d2d761be342df31179d94","212d16020e7dce1b5509f3b9813de73612de57c6a3d74536714eb88787b96dc3","1a63d5212341783aa49cf78d667bf2a6cd03208ea09620b2fc3e647ae07f4e0d","84ea58841272970e6e3247cba4dbb326cf22764c2f4bbcb03f1c634315bbbcb5","86f9fbecdd848d02c90f861cc9839d8f3449c518a77e77ea65362f6a4126c63b","ecdaf317a4a1e7e3540e2f1b6aae38acd78dd99d564b52f98eea7358ac74416d","c30430960f1a0552b3cdaf1ef8164fdd4f289c782a8912df5180d57bc9ddfc03","a348081c01502c9f87d39d9e4b5dd58e1111b34c62686d6e569c595a0417bb35","eff69aee13c76502a16b756cde9c451fb4b5c4234052f3b3bee9dbfe92e1b1d5","9943f44400939f4ff008a882ff71162f70ba0c2f735c9743fd4645ef5c925fc4","b7836eba6c5173a1683aee8aa1771ff339e795cb9c21411590edb910274febe4","6fe447aa7e6fabc4f6c536f2997e3b1116b7f73dbe5bf3fc8d958bad434e4a84","15d3908d453d14be4dae760122ed5d74ad789a19f1fec2edd4034e57217436e9","ef00bc701f382da70870ab7721ed8f6552a38e332e60370b93cf340b6470845c","18891a02fa046e57b43a543dddc7212086fcb04ae6c8e8f28f8605dd3ccf57ed",{"version":"5980a888624dce1b0937a0d21c623f97056501bb61a8da29cbe07f1a0be2c9a8","affectsGlobalScope":true},"590a41ccab332c66a6aa62746612b03ceb2e92cc1da58c140e90fb7ff6e8c851","dc1d2996f23fe7f0da0b2c843e05c0ac170a36b51da11e58de089d344de93c3b","78ff01b50e7e9761f239527ec70b96171bccc28a08d909243e193db03b6f6983","ed18472ee2247563a26d754dd4c8bd66383013df13ce7c2927b03cab1a27b7e8","28ac9ac1fa163e5f2321fafa49b9931908c0076216ed3c82646d79abdf79775e","07dd4bed8ddab685f82a2125bf3aa41b42e36f28c16a5aec7357b727649076fb","fc15a2216f29b825747c0c3a54d6989518dd0f4aa0b580520e5526b4a47bec8f","c656d5baf3d4a8f358fc083db04b0fda8cb8503a613a9ba42327ecbd7909773c","397c2c81eaeae1388f7459699d7606feecfc304b212eb9113407c1315746a578","c2d923e9adc26a3efe5186f3a4a72413d24c80f03b306c68c30fa146690fb101","d34782833b7d5f72486a5fb926d3d96198706ed76aeaf1d435c748ebcf9169fc","b093e56054755189dd891ea832dec40d729d110a0a3f432fff5ea5ab1078cdde","98affe620e6230a3888b445c32376e4edbf6b1b376a71f2bf9c07bee11fcdd65","1e05491bef32ff48393d605d557152735899da3d9b111ba3588a1800f2927f4a","1ff7813974b1b9a0524c1e5a99aa52a05e79fc7df7749ada75ded8c53fe1b7e0","cd8c517f54d4ff3475755b290d741c8799df3265ce73d454d8fafe423f8ff749","bf431147b104ae92d61de6b43e9f25d27e8d3eaeaffd612e0c0d3bb8e2423926","f0f21604ae8f880c0ab529f00303806fdeadc943e32a25ca063fc8fea0fa063c","8dc4f45212fba9381e1674e8bd934a588730efbb8a6681b661cad8cd09b081c5",{"version":"52bf774bd30177ebb3e450c808d8d46f67896848a942e6203ae78b65b33d0106","signature":"688c437017a53e69ff66aac2036a0d7f6263082f676a408c9998cbd87ea2ec73"},{"version":"8b6ee36fd764378c62dca37041c5a12fd5a77b9e853c78908b7ed1c90dc149e4","signature":"03846acca031c757d910dbc017d846c87574faf90bde82316fb9b8537896d5ee"},{"version":"0d089d33f31b56697d142aa7395738c0323cf761b4c79fd6bf65a54ab1ddf02f","signature":"027c87e1cb049497d4f185bc9b922ce91cad59832da8faf3411e6b298b9deb78"},{"version":"ec0982b9e7d6c1b6c80e2829c5909eefb9ecee687e60621e0bb937e8ad5d1d43","signature":"8478b617a5be940f1b4b4d19d2fc6149c21ac69c4a7e00c8a7db2c2c21aa2274"},{"version":"84c5fc9d0d22f4566791b88d5fc2c24f56508b50c9ce894ac549ebaa158b1fca","signature":"677ea66c6fa02f1cebf82df19f416a8302c7a7d10e2de265b162760fcd865eef"},{"version":"8455135ea42310a73404fa2513e212d170af1191584061f583ec1e0f6b75dd91","signature":"83e4298f0b6834e955ee6a76569d3e5b3192065d47f1daf4535bb9edb16e88cb"},{"version":"73529962207605bdc5285d5e745919b8d57b776daa0f22a14b75cd8a92d63af9","signature":"422fcd2a7fd87f05efdfaa6eab382ca607d5d54e1f175ba2efccd4aacd5433ef"},{"version":"ebe927d8a9739c9d32ef4df28c1c36cf82daa9abba7cdf3f79e320c5e99e99d8","signature":"2421f9c6b1ecedd50818719090a77e9d2748c2339c33f3d4817beebf7a39d211"},{"version":"165c56632fea46c85e2a62f1b4eae600b846ea0deacd3c137fde9bacb845c30e","signature":"79bf9e3846b43e706d181c00f3c1c50ae8fc60e587c97a16e521adc150317624"},{"version":"866e1d2cf16a41851b056a2cc0cdc5f0f00df0435376cc2c723a8c609f61fbd0","signature":"5f5bbca60f0bfed6ff714163c4e962a5e260e59db754c89ee2063403accd03e3"},{"version":"ecfa1b63e3829b310ac968b2cc1cc7016ba76ffb8532439aebecbcbc57173b99","signature":"2f1dda63ade2bd085704674523b56ede942bc8c2c37fe8ed9b9b0fdfd69b1262"},{"version":"51d2f746d7e599a5549f5a946565934b4556bb9155be1eed2c474e25f1474872","signature":"c15585fe8935ed5cfedec39b7d41ec49990973f40faaba4b3e14278861643d79"},{"version":"b1d1378906c54a2f4d230ad69d212beedd2552afe3f7ad171b7eacb4cecc26d7","signature":"f9e60e8f79a7f606f19e02e2d39a24995719767dbe587f564f970bb24e3ca29d"},{"version":"f5a156e5b3783ea0399ac0326b7ab31a00e8874c5fa9b5e26fac217da8b5adfd","signature":"cfa7179e0306fc04d93f062c96e7ae8bad58d0cc4a7aa0dd4494ff9d262b101c"},{"version":"3c9fefca9303bcfd5712de11a3cbda20b3d6e85f29019bc75cab24690fb0f90d","signature":"306683152ff5a6038cf05b03ddff85a15b1bc8e18ef268aad26b02fd8e0e8b9d"},"a11c3e55d22d6379fe0949793e2638a6b43aa6e9def4f7452c3e352a296ef8da",{"version":"2770956c9437d7d66650084891c559ff6bb94200b7e2820940fd5d5dd0efa489","signature":"2faaf4f254008bf5be0e145be10dba35dccfac7116e9083f9d697a476a8e7076"},{"version":"ceee917fd557b841b93f7e13103dfdad79d38fe9962408f538f27db03dc9368d","signature":"15003ff6ed10d259dca775c7e5f7a64b272a9c370b6085db2d42a2d4a1d81579"},{"version":"a1691ae6d70af82f3e26d9e2e021dc5063021bd9c335bfdb40dc97d3574d1b3f","signature":"cd1c566b611a70ff987a79d0465da67649a8ed7e7668feddfcdf6dceb01c09a8"},{"version":"a105417dd540f1a400f0665c877e5d7e48e2efe08f01c2e5c7272256e644faa5","signature":"b3a6ee392811d6cddb38378ebaa373d4a39aa7dc4ecac73497c6b33627e6430b"},{"version":"581b44cf6122e3ad267d6bda2428c214fef3d38b6d7249df9fa6bc240a880a78","signature":"0ca09d92d6469d906a3d1c7192a6294c7f65b75f4f7eb8072bbd1b68c7f021e1"},{"version":"2e6426c1a1ff8561aa5f01d9398426bf06e55307f688464939de3196f0d4c143","signature":"5357bd09c9816a9765e617f86a9b49f85133d0bc0f9c5e29e834f2f8e6d52acb"},{"version":"508279c48de5627ae6c30a0aee01f4391bf32450335d7f09d5dd82acbc4d13c5","signature":"11d546a505f70f9c5f8092916027d8045c280a817b709fcaf2c4e63fa026c89c"},{"version":"557f2e0a4e5ac8a59b7c3068b2b30162fb963d72d50152482ab8c414e81caf37","signature":"008eaae28119118f1c589a1e29ea7fd17277f2280d2d3bfddeacd71fd1671bb5"},{"version":"f45c172ca54fb28d64b2dd04e495f17038034e20f37bd286a9f3eeb286cf1388","signature":"75a8761564c8fc5581b062dd339ea698921baf60e52eae055c8177dfa89eba90"},{"version":"ea696a0517ad69afea472e47eb1f904aba1667f54d4557eb98b8c766469d56a2","signature":"7e125d9abc19f62d1480f6c04a45d7bb2c89153316245ae8b8e5a0234b078c4e"},{"version":"902937c505f88d8b5b32829b4c14243eb740013fd0e2f58e6485324bbfe197a6","signature":"dc7de7650e5a64fc010387db18e84d48fe8f562dbd9caac01e54f83681ac976b"},{"version":"842accda78bb1b6f494f264aae307b84d933486d607e91f6e1d3a4d2e4851783","signature":"430d9683c8e5aaab71f0e3b271c4240cd5120a91191f953722985499af51d7e6"},{"version":"45b1a895868587c78a2ddff937967669b4e1968ea72c01e1c2b6dd5993f53b36","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"99cab9373415bac71e9d2c84279782c0a361b59551d0ca8dfaee8d4c08ed3247","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"ba1fed463e8a21ffddb67a53df3f0d818b351991723736e167d065e2de1c7183",{"version":"22e311fec88bcc49b2b1fb3c9a7c082cd84b3388c9bcc7b9ef08253f6fa74e26","affectsGlobalScope":true},"c186097fd9b86681981cdeba08c0b6bbfcd8b562ab490c25656d85fef8f10c79","0b0c483e991e81c3f26e5f2da53ff26a15994c98c8b89cda1e4156dfc2428111","3340eb7b30bdee5f0349107d4068fd6f2f4712e11a2ba68e203b2f2489350317",{"version":"2000d60bd5195730ffff0d4ce9389003917928502c455ed2a9e296d3bf1a4b42","signature":"56335d3c9b867cc8654c05e633c508dd8de0038157f9958eb8794b7c123bb90e"},{"version":"dfceb5b9355a4a9002a7c291b1c3315511977c73cb23d9c123a72567783a18c0","signature":"b1802850887a3ea11a06df1fc1c65c6579332eefba1e63b3967a73dc937a2574"},{"version":"384fc0e3fa5966f524c96f1782b9d7a005346ba1621c43d0d1d819bf39077fbc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7fde517b3f03bb21ec3a46ba5f85c6797f8abf27deacb862183126e2f072788e","signature":"8b310edcfec83da25bc4f3adb20a7583bc5dae56d7d06c5b1431b76d390c1b72"},{"version":"894d93831d2afcd26f7362347e4960dd6d53f4153dad08813f3670e1327e387c","signature":"b1802850887a3ea11a06df1fc1c65c6579332eefba1e63b3967a73dc937a2574"},{"version":"8f9eac2c3ae305c25d4ffeff800b9811c8d3ec6a11b142fe96d08a2bc40f6440","signature":"08d6a2d1b004bbcac4249cd5baf6e9c662adc6139939c266b42e0422ef0c68b3"},{"version":"ac8980bdd810c30c444b59cca584c9b61d5ab274fa9474d778970537f3090240","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1c024431c672cf9c6dcdb4d30c5b625435d81a5423b9d45e8de0082e969af8a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"eee1b57475023853cd09dd79b8d0d6639b6b82c3baee5863c2f2022b710f4102","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"377ba49d29102653a4b0c72b3870f9c599575df7db3a3fae7a21be5327ff84e2","signature":"c47f5db4df0a5031ed84bc6ee192c412b9e2d4d5e94681af77ccdcc25c851839"},{"version":"377ba49d29102653a4b0c72b3870f9c599575df7db3a3fae7a21be5327ff84e2","signature":"c47f5db4df0a5031ed84bc6ee192c412b9e2d4d5e94681af77ccdcc25c851839"},{"version":"39833acf7547216b2f31b2279dcfec3ed1359dec8adc9d1cb87c695ebf9bff94","signature":"7292d4dc9dac6d815dc30245a4a4a4959845d3a2b84ba0166857e4b23f2d033f"},{"version":"39833acf7547216b2f31b2279dcfec3ed1359dec8adc9d1cb87c695ebf9bff94","signature":"7292d4dc9dac6d815dc30245a4a4a4959845d3a2b84ba0166857e4b23f2d033f"},{"version":"529dd364d169ab3dbbb177ccdc4987c4a6f69187f553f3d36460ab65879ad998","signature":"3919e9d5911da2254732c31942e2cdc0057056ebfc2a16d34041c76a9b58d447"},{"version":"ebea587ca6477b9db29baf75d359924c55ab490fecdc38d7c0f16e589f0d27f9","signature":"0688c25f38e78e052338305d23046c7841074b3da5709a8f9e598ed705b9932b"},{"version":"de411013305dbe5c7a1ac13d2ea16dc36e52e6efd255b4e912fe53862058c649","signature":"2faaf4f254008bf5be0e145be10dba35dccfac7116e9083f9d697a476a8e7076"},"e432b56911b58550616fc4d54c1606f65fe98c74875b81d74601f5f965767c60","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","a46a2e69d12afe63876ec1e58d70e5dbee6d3e74132f4468f570c3d69f809f1c","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","dd5647a9ccccb2b074dca8a02b00948ac293091ebe73fdf2e6e98f718819f669","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","7980bf9d2972585cdf76b5a72105f7817be0723ccb2256090f6335f45b462abe","301d7466eb591139c7d456958f732153b3400f3243f68d3321956b43a64769e9","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"2abad7477cf6761b55c18bea4c21b5a5dcf319748c13696df3736b35f8ac149e","affectsGlobalScope":true},"d38e588a10943bbab1d4ce03d94759bf065ff802a9a72fc57aa75a72f1725b71","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","60aaac5fb1858fbd4c4eb40e01706eb227eed9eca5c665564bd146971280dbd3","74b0245c42990ed8a849df955db3f4362c81b13f799ebc981b7bec2d5b414a57","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","4266ccd2cf1d6a281efd9c7ddf9efd7daecf76575364148bd233e18919cac3ed","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","105b9a2234dcb06ae922f2cd8297201136d416503ff7d16c72bfc8791e9895c1"],"options":{"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"jsx":2,"noEmitOnError":false,"noImplicitAny":true,"noUnusedLocals":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strictNullChecks":true,"target":1,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[211,260],[260],[260,273],[53,190,260],[192,194,260],[190,192,193,260],[53,260],[53,140,260],[69,260],[211,212,213,214,215,260],[211,213,260],[233,260,267],[260,269],[260,270],[260,275,277],[217,260],[220,260],[221,226,260],[222,232,233,240,249,259,260],[222,223,232,240,260],[224,260],[225,226,233,241,260],[226,249,256,260],[227,229,232,240,260],[228,260],[229,230,260],[231,232,260],[232,260],[232,233,234,249,259,260],[232,233,234,249,260],[235,240,249,259,260],[232,233,235,236,240,249,256,259,260],[235,237,249,256,259,260],[217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266],[232,238,260],[239,259,260],[229,232,240,249,260],[241,260],[242,260],[220,243,260],[244,258,260,264],[245,260],[246,260],[232,247,260],[247,248,260,262],[232,249,250,251,260],[249,251,260],[249,250,260],[252,260],[253,260],[232,254,255,260],[254,255,260],[226,240,249,256,260],[257,260],[240,258,260],[221,235,246,259,260],[226,260],[249,260,261],[260,262],[260,263],[221,226,232,234,243,249,259,260,262,264],[249,260,265],[76,77,260],[53,58,64,65,68,71,72,73,76,260],[74,260],[84,260],[53,57,82,260],[53,54,57,58,62,75,76,260],[53,76,105,106,260],[53,54,57,58,62,76,260],[82,91,260],[53,54,62,75,76,93,260],[53,55,58,61,62,65,75,76,260],[53,54,57,62,76,260],[53,54,57,62,260],[53,54,55,58,60,62,63,75,76,260],[53,76,260],[53,75,76,260],[53,54,57,58,61,62,75,76,82,93,260],[53,55,58,260],[53,54,57,60,75,76,93,103,260],[53,54,60,76,103,105,260],[53,54,57,60,62,93,103,260],[53,54,55,58,60,61,75,76,93,260],[58,260],[53,55,58,59,60,61,75,76,260],[82,260],[83,260],[53,54,55,57,58,61,66,67,75,76,260],[58,59,260],[53,64,65,70,75,76,260],[53,56,64,70,75,76,260],[53,58,62,260],[53,118,260],[53,57,260],[57,260],[76,260],[75,260],[66,74,76,260],[53,54,57,58,61,75,76,260],[128,260],[53,56,57,260],[91,260],[44,45,46,47,48,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,260],[140,260],[46,260],[49,50,51,52,260],[232,235,237,240,259,260,267],[260,287],[260,275],[260,272,276],[260,274],[151,260],[53,141,142,143,144,146,147,148,149,150,157,260],[53,140,147,150,151,260],[143,144,260],[142,143,144,147,260],[143,260],[155,260],[157,260],[144,260],[53,144,260],[141,142,143,144,145,146,147,149,150,151,152,153,154,156,260],[149,260],[158,260],[43,140,166,177,260],[43,53,140,157,159,162,163,164,166,168,169,170,171,172,174,176,260],[43,53,140,162,165,260],[43,157,166,167,168,260],[43,53,140,165,166,168,170,171,177,260],[43,53,260],[43,167,260],[43,168,260],[43,53,140,157,162,163,166,172,191,195,260],[43,140,157,177,195,260],[43,53,140,157,177,179,191,198,260],[43,200,260],[43,157,170,171,173,260],[43,53,140,166,177,191,194,260],[43,53,140,166,179,191,194,260],[43,53,177,183,194,195,260],[43,260],[43,181,260],[43,53,177,180,181,182,183,260],[43,53,157,162,177,260],[43,53,140,180,182,184,260],[43,162,163,165,166,177,178,179,180,182,183,184,185,186,260],[43,53,140,160,161,260],[43,140,160,260],[43,140,260],[43,53,140,260],[43,157,260],[43,157,175,260],[43,53,140,157,175,260],[43,140,157,166,260],[43,140,157,170,171,260],[43,140,165,173,177,260],[53,140,166],[53,157,166,169],[53,140,162,165],[157,166],[53,140,166,177],[53],[191],[53,166,177,191,194],[53,166,179,191,194],[53,177,182,183,187],[53,162,177],[140,184],[162,163,165,166,177,178,179,180,182,183,184,185,186],[53,140],[140,160],[140],[157],[53,157],[140,157,166],[140,157],[177]],"referencedMap":[[213,1],[211,2],[274,3],[192,4],[193,5],[194,6],[191,4],[190,7],[69,8],[70,9],[273,2],[216,10],[212,1],[214,11],[215,1],[268,12],[269,2],[270,13],[271,14],[278,15],[279,2],[280,2],[217,16],[218,16],[220,17],[221,18],[222,19],[223,20],[224,21],[225,22],[226,23],[227,24],[228,25],[229,26],[230,26],[231,27],[232,28],[233,29],[234,30],[219,2],[266,2],[235,31],[236,32],[237,33],[267,34],[238,35],[239,36],[240,37],[241,38],[242,39],[243,40],[244,41],[245,42],[246,43],[247,44],[248,45],[249,46],[251,47],[250,48],[252,49],[253,50],[254,51],[255,52],[256,53],[257,54],[258,55],[259,56],[260,57],[261,58],[262,59],[263,60],[264,61],[265,62],[281,2],[282,2],[51,2],[78,63],[79,2],[74,64],[80,2],[81,65],[85,66],[86,2],[87,67],[88,68],[107,69],[89,2],[90,70],[92,71],[94,72],[95,73],[96,74],[63,74],[97,75],[64,76],[98,77],[99,68],[100,78],[101,79],[102,2],[60,80],[104,81],[106,82],[105,83],[103,84],[65,75],[61,85],[62,86],[108,2],[91,87],[83,87],[84,88],[68,89],[66,2],[67,2],[109,87],[110,90],[111,2],[112,71],[71,91],[72,92],[113,2],[114,93],[115,2],[116,2],[117,2],[119,94],[120,2],[56,7],[121,7],[122,95],[123,96],[124,2],[125,97],[127,97],[126,97],[76,98],[75,99],[77,97],[73,100],[128,2],[129,101],[58,102],[130,66],[131,66],[132,103],[133,87],[118,2],[134,2],[135,2],[136,2],[137,7],[138,2],[82,2],[140,104],[44,2],[45,105],[46,106],[48,2],[47,2],[93,2],[54,2],[139,105],[55,2],[59,85],[57,7],[283,7],[49,2],[53,107],[284,2],[52,2],[285,2],[286,108],[287,2],[288,109],[272,2],[50,2],[276,110],[277,111],[275,112],[149,2],[154,113],[151,114],[158,115],[147,116],[148,117],[141,2],[142,2],[145,116],[144,118],[156,119],[155,120],[153,116],[143,121],[146,122],[157,123],[175,124],[152,2],[150,7],[159,125],[43,2],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[31,2],[32,2],[33,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[1,2],[42,2],[178,126],[177,127],[166,128],[169,129],[179,130],[164,131],[188,132],[189,133],[196,134],[197,135],[199,136],[201,137],[202,138],[195,139],[198,140],[203,141],[180,142],[182,143],[181,142],[184,144],[183,145],[185,142],[186,146],[170,142],[171,142],[172,142],[187,147],[162,148],[204,149],[205,149],[161,149],[160,131],[206,150],[207,150],[163,151],[208,131],[209,152],[210,152],[176,153],[200,154],[167,142],[168,155],[165,142],[173,156],[174,157]],"exportedModulesMap":[[213,1],[211,2],[274,3],[192,4],[193,5],[194,6],[191,4],[190,7],[69,8],[70,9],[273,2],[216,10],[212,1],[214,11],[215,1],[268,12],[269,2],[270,13],[271,14],[278,15],[279,2],[280,2],[217,16],[218,16],[220,17],[221,18],[222,19],[223,20],[224,21],[225,22],[226,23],[227,24],[228,25],[229,26],[230,26],[231,27],[232,28],[233,29],[234,30],[219,2],[266,2],[235,31],[236,32],[237,33],[267,34],[238,35],[239,36],[240,37],[241,38],[242,39],[243,40],[244,41],[245,42],[246,43],[247,44],[248,45],[249,46],[251,47],[250,48],[252,49],[253,50],[254,51],[255,52],[256,53],[257,54],[258,55],[259,56],[260,57],[261,58],[262,59],[263,60],[264,61],[265,62],[281,2],[282,2],[51,2],[78,63],[79,2],[74,64],[80,2],[81,65],[85,66],[86,2],[87,67],[88,68],[107,69],[89,2],[90,70],[92,71],[94,72],[95,73],[96,74],[63,74],[97,75],[64,76],[98,77],[99,68],[100,78],[101,79],[102,2],[60,80],[104,81],[106,82],[105,83],[103,84],[65,75],[61,85],[62,86],[108,2],[91,87],[83,87],[84,88],[68,89],[66,2],[67,2],[109,87],[110,90],[111,2],[112,71],[71,91],[72,92],[113,2],[114,93],[115,2],[116,2],[117,2],[119,94],[120,2],[56,7],[121,7],[122,95],[123,96],[124,2],[125,97],[127,97],[126,97],[76,98],[75,99],[77,97],[73,100],[128,2],[129,101],[58,102],[130,66],[131,66],[132,103],[133,87],[118,2],[134,2],[135,2],[136,2],[137,7],[138,2],[82,2],[140,104],[44,2],[45,105],[46,106],[48,2],[47,2],[93,2],[54,2],[139,105],[55,2],[59,85],[57,7],[283,7],[49,2],[53,107],[284,2],[52,2],[285,2],[286,108],[287,2],[288,109],[272,2],[50,2],[276,110],[277,111],[275,112],[149,2],[154,113],[151,114],[158,115],[147,116],[148,117],[141,2],[142,2],[145,116],[144,118],[156,119],[155,120],[153,116],[143,121],[146,122],[157,123],[175,124],[152,2],[150,7],[159,125],[43,2],[8,2],[9,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[4,2],[23,2],[20,2],[21,2],[22,2],[24,2],[25,2],[26,2],[5,2],[27,2],[28,2],[29,2],[30,2],[6,2],[31,2],[32,2],[33,2],[34,2],[7,2],[35,2],[40,2],[41,2],[36,2],[37,2],[38,2],[39,2],[1,2],[42,2],[178,158],[177,159],[166,160],[169,161],[179,162],[164,163],[196,164],[199,164],[195,165],[198,166],[184,167],[183,168],[186,169],[187,170],[162,171],[204,172],[205,172],[161,172],[160,163],[206,173],[207,173],[163,171],[208,163],[209,174],[210,174],[176,174],[200,175],[168,176],[173,177],[174,178]],"semanticDiagnosticsPerFile":[213,211,274,192,193,194,191,190,69,70,273,216,212,214,215,268,269,270,271,278,279,280,217,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,219,266,235,236,237,267,238,239,240,241,242,243,244,245,246,247,248,249,251,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,281,282,51,78,79,74,80,81,85,86,87,88,107,89,90,92,94,95,96,63,97,64,98,99,100,101,102,60,104,106,105,103,65,61,62,108,91,83,84,68,66,67,109,110,111,112,71,72,113,114,115,116,117,119,120,56,121,122,123,124,125,127,126,76,75,77,73,128,129,58,130,131,132,133,118,134,135,136,137,138,82,140,44,45,46,48,47,93,54,139,55,59,57,283,49,53,284,52,285,286,287,288,272,50,276,277,275,149,154,151,158,147,148,141,142,145,144,156,155,153,143,146,157,175,152,150,159,43,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,35,40,41,36,37,38,39,1,42,178,177,166,169,179,164,188,189,196,197,199,201,202,195,198,203,180,182,181,184,183,185,186,170,171,172,187,162,204,205,161,160,206,207,163,208,209,210,176,200,167,168,165,173,174]},"version":"4.7.4"} +\ No newline at end of file +diff --git a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift +index f18e92c..af1903c 100644 +--- a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift ++++ b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutView.swift +@@ -4,31 +4,35 @@ import UIKit + + /// Container for all RecyclerListView children. This will automatically remove all gaps and overlaps for GridLayouts with flexible spans. + /// Note: This cannot work for masonry layouts i.e, pinterest like layout +-@objc class AutoLayoutView: UIView { ++@objc public class AutoLayoutView: UIView { ++ #if RCT_NEW_ARCH_ENABLED ++ @objc public var onBlankAreaEventHandler: ((CGFloat, CGFloat) -> Void)? ++ #endif ++ + @objc(onBlankAreaEvent) + var onBlankAreaEvent: RCTDirectEventBlock? + +- @objc func setHorizontal(_ horizontal: Bool) { ++ @objc public func setHorizontal(_ horizontal: Bool) { + self.horizontal = horizontal + } + +- @objc func setScrollOffset(_ scrollOffset: Int) { ++ @objc public func setScrollOffset(_ scrollOffset: Int) { + self.scrollOffset = CGFloat(scrollOffset) + } + +- @objc func setWindowSize(_ windowSize: Int) { ++ @objc public func setWindowSize(_ windowSize: Int) { + self.windowSize = CGFloat(windowSize) + } + +- @objc func setRenderAheadOffset(_ renderAheadOffset: Int) { ++ @objc public func setRenderAheadOffset(_ renderAheadOffset: Int) { + self.renderAheadOffset = CGFloat(renderAheadOffset) + } + +- @objc func setEnableInstrumentation(_ enableInstrumentation: Bool) { ++ @objc public func setEnableInstrumentation(_ enableInstrumentation: Bool) { + self.enableInstrumentation = enableInstrumentation + } + +- @objc func setDisableAutoLayout(_ disableAutoLayout: Bool) { ++ @objc public func setDisableAutoLayout(_ disableAutoLayout: Bool) { + self.disableAutoLayout = disableAutoLayout + } + +@@ -46,7 +50,15 @@ import UIKit + /// Tracks where first pixel is drawn in the visible window + private var lastMinBound: CGFloat = 0 + +- override func layoutSubviews() { ++ private var viewsToLayout: [UIView] { ++ #if RCT_NEW_ARCH_ENABLED ++ return superview?.subviews ?? [] ++ #else ++ return subviews ++ #endif ++ } ++ ++ override public func layoutSubviews() { + fixLayout() + super.layoutSubviews() + +@@ -69,12 +81,16 @@ import UIKit + distanceFromWindowEnd: distanceFromWindowEnd + ) + ++ #if RCT_NEW_ARCH_ENABLED ++ onBlankAreaEventHandler?(blankOffsetStart, blankOffsetEnd) ++ #else + onBlankAreaEvent?( + [ + "offsetStart": blankOffsetStart, + "offsetEnd": blankOffsetEnd, + ] + ) ++ #endif + } + + func getScrollView() -> UIScrollView? { +@@ -85,15 +101,21 @@ import UIKit + /// Performance: Sort is needed. Given relatively low number of views in RecyclerListView render tree this should be a non issue. + private func fixLayout() { + guard +- subviews.count > 1, ++ viewsToLayout.count > 1, + // Fixing layout during animation can interfere with it. + layer.animationKeys()?.isEmpty ?? true, + !disableAutoLayout + else { return } +- let cellContainers = subviews +- .compactMap { subview -> CellContainer? in +- if let cellContainer = subview as? CellContainer { ++ let cellContainers = viewsToLayout ++ .compactMap { subview -> CellContainerComponentView? in ++ if let cellContainer = subview as? CellContainerComponentView { + return cellContainer ++ } else if subview is AutoLayoutView { ++ // On Fabric, due to view flattening children of AutoLayoutView are moved one level up, so they appear ++ // as children of AutoLayoutViewComponentView in view hierarchy. viewsToLayout property takes it under ++ // consideration, returning children of AutoLayoutViewComponentView when on Fabric. Because of that ++ // AutoLayoutView may be on the list, in which case we want to ignore it. ++ return nil + } else { + assertionFailure("CellRendererComponent outer view should always be CellContainer. Learn more here: https://shopify.github.io/flash-list/docs/usage#cellrenderercomponent.") + return nil +@@ -106,7 +128,7 @@ import UIKit + + /// Checks for overlaps or gaps between adjacent items and then applies a correction. + /// Performance: RecyclerListView renders very small number of views and this is not going to trigger multiple layouts on the iOS side. +- private func clearGaps(for cellContainers: [CellContainer]) { ++ private func clearGaps(for cellContainers: [CellContainerComponentView]) { + var maxBound: CGFloat = 0 + var minBound: CGFloat = CGFloat(Int.max) + var maxBoundNextCell: CGFloat = 0 +@@ -192,7 +214,7 @@ import UIKit + lastMinBound = minBound + } + +- private func updateLastMaxBoundOverall(currentCell: CellContainer, nextCell: CellContainer) { ++ private func updateLastMaxBoundOverall(currentCell: CellContainerComponentView, nextCell: CellContainerComponentView) { + lastMaxBoundOverall = max(lastMaxBoundOverall, horizontal ? currentCell.frame.maxX : currentCell.frame.maxY, horizontal ? nextCell.frame.maxX : nextCell.frame.maxY) + } + +@@ -217,7 +239,7 @@ import UIKit + + /// It's important to avoid correcting views outside the render window. An item that isn't being recycled might still remain in the view tree. If views outside get considered then gaps between unused items will cause algorithm to fail. + func isWithinBounds( +- _ cellContainer: CellContainer, ++ _ cellContainer: CellContainerComponentView, + scrollOffset: CGFloat, + renderAheadOffset: CGFloat, + windowSize: CGFloat, +@@ -260,10 +282,10 @@ import UIKit + } + + private func footerDiff() -> CGFloat { +- if subviews.count == 0 { ++ if viewsToLayout.count == 0 { + lastMaxBoundOverall = 0 +- } else if subviews.count == 1 { +- let firstChild = subviews[0] ++ } else if viewsToLayout.count == 1 { ++ let firstChild = viewsToLayout[0] + lastMaxBoundOverall = horizontal ? firstChild.frame.maxX : firstChild.frame.maxY + } + let autoLayoutEnd = horizontal ? frame.width : frame.height +@@ -271,6 +293,13 @@ import UIKit + } + + private func footer() -> UIView? { +- return superview?.subviews.first(where:{($0 as? CellContainer)?.index == -1}) ++ // On Fabric, AutoLayoutView is wrapped with AutoLayoutViewComponentView, so we need to go up one more level ++ #if RCT_NEW_ARCH_ENABLED ++ let parentSubviews = superview?.superview?.subviews ++ #else ++ let parentSubviews = superview?.subviews ++ #endif ++ ++ return parentSubviews?.first(where:{($0 as? CellContainerComponentView)?.index == -1}) + } + } +diff --git a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.h b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.h +new file mode 100644 +index 0000000..1ae0b66 +--- /dev/null ++++ b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.h +@@ -0,0 +1,16 @@ ++#ifndef AutoLayoutViewComponentView_h ++#define AutoLayoutViewComponentView_h ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++ ++#import ++#import ++ ++@interface AutoLayoutViewComponentView : RCTViewComponentView ++ ++@end ++ ++ ++#endif /* RCT_NEW_ARCH_ENABLED */ ++ ++#endif /* AutoLayoutViewComponentView_h */ +diff --git a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.mm b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.mm +new file mode 100644 +index 0000000..2d4295c +--- /dev/null ++++ b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewComponentView.mm +@@ -0,0 +1,80 @@ ++#ifdef RCT_NEW_ARCH_ENABLED ++#import "AutoLayoutViewComponentView.h" ++#import ++#import ++ ++#import ++#import ++#import ++#import ++ ++#import "RCTFabricComponentsPlugins.h" ++#import ++ ++using namespace facebook::react; ++ ++@interface AutoLayoutViewComponentView () ++@end ++ ++@implementation AutoLayoutViewComponentView ++{ ++ AutoLayoutView *_autoLayoutView; ++} ++ ++- (instancetype)initWithFrame:(CGRect)frame ++{ ++ if (self = [super initWithFrame:frame]) { ++ static const auto defaultProps = std::make_shared(); ++ _props = defaultProps; ++ _autoLayoutView = [[AutoLayoutView alloc] initWithFrame:self.bounds]; ++ ++ // Due to view flattening, AutoLayoutView's children get moved to its parent (AutoLayoutViewComponentView) and ++ // AutoLayoutView is positioned above them consuming all events. Turning off userInteraction prevents that. ++ _autoLayoutView.userInteractionEnabled = false; ++ ++ self.contentView = _autoLayoutView; ++ ++ __weak AutoLayoutViewComponentView* weakSelf = self; ++ _autoLayoutView.onBlankAreaEventHandler = ^(CGFloat start, CGFloat end) { ++ AutoLayoutViewComponentView *strongSelf = weakSelf; ++ if (strongSelf != nullptr && strongSelf->_eventEmitter != nullptr) { ++ std::dynamic_pointer_cast(strongSelf->_eventEmitter) ++ ->onBlankAreaEvent(facebook::react::AutoLayoutViewEventEmitter::OnBlankAreaEvent{ ++ .offsetStart = (int) floor(start), ++ .offsetEnd = (int) floor(end), ++ }); ++ } ++ }; ++ } ++ ++ return self; ++} ++ ++#pragma mark - RCTComponentViewProtocol ++ +++ (ComponentDescriptorProvider)componentDescriptorProvider ++{ ++ return concreteComponentDescriptorProvider(); ++} ++ ++- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps ++{ ++ const auto &newProps = *std::static_pointer_cast(props); ++ ++ [_autoLayoutView setHorizontal:newProps.horizontal]; ++ [_autoLayoutView setScrollOffset:newProps.scrollOffset]; ++ [_autoLayoutView setWindowSize:newProps.windowSize]; ++ [_autoLayoutView setRenderAheadOffset:newProps.renderAheadOffset]; ++ [_autoLayoutView setEnableInstrumentation:newProps.enableInstrumentation]; ++ [_autoLayoutView setDisableAutoLayout:newProps.disableAutoLayout]; ++ ++ [super updateProps:props oldProps:oldProps]; ++} ++@end ++ ++Class AutoLayoutViewCls(void) ++{ ++ return AutoLayoutViewComponentView.class; ++} ++ ++#endif /* RCT_NEW_ARCH_ENABLED */ +diff --git a/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewManager.m b/node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewManager.mm +similarity index 100% +rename from node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewManager.m +rename to node_modules/@shopify/flash-list/ios/Sources/AutoLayoutViewManager.mm +diff --git a/node_modules/@shopify/flash-list/ios/Sources/CellContainer.swift b/node_modules/@shopify/flash-list/ios/Sources/CellContainer.swift +deleted file mode 100644 +index 7f09ce7..0000000 +--- a/node_modules/@shopify/flash-list/ios/Sources/CellContainer.swift ++++ /dev/null +@@ -1,9 +0,0 @@ +-import Foundation +- +-@objc class CellContainer: UIView { +- var index: Int = -1 +- +- @objc func setIndex(_ index: Int) { +- self.index = index +- } +-} +diff --git a/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.h b/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.h +new file mode 100644 +index 0000000..ca1cbfe +--- /dev/null ++++ b/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.h +@@ -0,0 +1,18 @@ ++#ifndef CellContainer_h ++#define CellContainer_h ++ ++#import ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++#import ++ ++@interface CellContainerComponentView : RCTViewComponentView ++#else ++@interface CellContainerComponentView : UIView ++#endif ++ ++@property int64_t index; ++ ++@end ++ ++#endif /* CellContainer_h */ +diff --git a/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.mm b/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.mm +new file mode 100644 +index 0000000..3a1c57e +--- /dev/null ++++ b/node_modules/@shopify/flash-list/ios/Sources/CellContainerComponentView.mm +@@ -0,0 +1,57 @@ ++#import "CellContainerComponentView.h" ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++#import ++ ++#import ++#import ++#import ++#import ++ ++#import "RCTFabricComponentsPlugins.h" ++#import ++ ++using namespace facebook::react; ++ ++@interface CellContainerComponentView () ++@end ++ ++@implementation CellContainerComponentView ++ ++- (instancetype)initWithFrame:(CGRect)frame ++{ ++ if (self = [super initWithFrame:frame]) { ++ static const auto defaultProps = std::make_shared(); ++ _props = defaultProps; ++ ++ self.userInteractionEnabled = true; ++ } ++ ++ return self; ++} ++ ++#pragma mark - RCTComponentViewProtocol ++ +++ (ComponentDescriptorProvider)componentDescriptorProvider ++{ ++ return concreteComponentDescriptorProvider(); ++} ++ ++- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps ++{ ++ const auto &newProps = *std::static_pointer_cast(props); ++ ++ self.index = newProps.index; ++ ++ [super updateProps:props oldProps:oldProps]; ++} ++@end ++ ++Class CellContainerCls(void) ++{ ++ return CellContainerComponentView.class; ++} ++#else ++@implementation CellContainerComponentView ++@end ++#endif /* RCT_NEW_ARCH_ENABLED */ +diff --git a/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.m b/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.mm +similarity index 100% +rename from node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.m +rename to node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.mm +diff --git a/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.swift b/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.swift +index a36fccd..dbe6c14 100644 +--- a/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.swift ++++ b/node_modules/@shopify/flash-list/ios/Sources/CellContainerManager.swift +@@ -3,7 +3,7 @@ import Foundation + @objc(CellContainerManager) + class CellContainerManager: RCTViewManager { + override func view() -> UIView! { +- return CellContainer() ++ return CellContainerComponentView() + } + + override static func requiresMainQueueSetup() -> Bool { +diff --git a/node_modules/@shopify/flash-list/ios/Sources/FlatListPro-Bridging-Header.h b/node_modules/@shopify/flash-list/ios/Sources/FlatListPro-Bridging-Header.h +index e3e23d5..7ed83ce 100644 +--- a/node_modules/@shopify/flash-list/ios/Sources/FlatListPro-Bridging-Header.h ++++ b/node_modules/@shopify/flash-list/ios/Sources/FlatListPro-Bridging-Header.h +@@ -4,5 +4,8 @@ + #import + #import + #import ++#import ++ ++#import "CellContainerComponentView.h" + + #endif /* FlatListPro_Bridging_Header_h */ +diff --git a/node_modules/@shopify/flash-list/package.json b/node_modules/@shopify/flash-list/package.json +index b90c287..ccca16d 100644 +--- a/node_modules/@shopify/flash-list/package.json ++++ b/node_modules/@shopify/flash-list/package.json +@@ -25,6 +25,7 @@ + "author": "shopify", + "license": "MIT", + "homepage": "https://shopify.github.io/flash-list/", ++ "react-native": "src/index.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { +@@ -64,7 +65,7 @@ + "@react-native-community/eslint-config": "^3.0.3", + "@shopify/eslint-plugin": "^41.3.1", + "@types/jest": "^28.1.3", +- "@types/react-native": "0.72.2", ++ "@types/react-native": "^0.72.2", + "babel-jest": "^28.1.1", + "enhanced-resolve": "^5.9.3", + "eslint": "8.18.0", +@@ -74,7 +75,7 @@ + "prettier": "^2.7.1", + "react": "17.0.2", + "react-native": "0.68.5", +- "typescript": "^4.7.4" ++ "typescript": "4.8.4" + }, + "files": [ + "android", +@@ -87,5 +88,10 @@ + "dependencies": { + "recyclerlistview": "4.2.0", + "tslib": "2.4.0" ++ }, ++ "codegenConfig": { ++ "name": "rnflashlist", ++ "type": "components", ++ "jsSrcsDir": "./src/fabric" + } + } +diff --git a/node_modules/@shopify/flash-list/src/FlashList.tsx b/node_modules/@shopify/flash-list/src/FlashList.tsx +index 64748fe..87dea16 100644 +--- a/node_modules/@shopify/flash-list/src/FlashList.tsx ++++ b/node_modules/@shopify/flash-list/src/FlashList.tsx +@@ -827,6 +827,12 @@ class FlashList extends React.PureComponent< + return this.rlvRef?.getScrollableNode?.() || null; + } + ++ public getNativeScrollRef(): number | null { ++ // eslint-disable-next-line @typescript-eslint/ban-ts-comment ++ // @ts-ignore ++ return this.rlvRef?.getNativeScrollRef?.() || null; ++ } ++ + /** + * Allows access to internal recyclerlistview. This is useful for enabling access to its public APIs. + * Warning: We may swap recyclerlistview for something else in the future. Use with caution. +diff --git a/node_modules/@shopify/flash-list/src/fabric/AutoLayoutNativeComponent.ts b/node_modules/@shopify/flash-list/src/fabric/AutoLayoutNativeComponent.ts +new file mode 100644 +index 0000000..93750de +--- /dev/null ++++ b/node_modules/@shopify/flash-list/src/fabric/AutoLayoutNativeComponent.ts +@@ -0,0 +1,24 @@ ++import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent"; ++import type { ViewProps } from "react-native"; ++import type { ++ Int32, ++ Double, ++ DirectEventHandler, ++} from "react-native/Libraries/Types/CodegenTypes"; ++ ++type BlankAreaEvent = Readonly<{ ++ offsetStart: Int32; ++ offsetEnd: Int32; ++}>; ++ ++interface NativeProps extends ViewProps { ++ horizontal?: boolean; ++ scrollOffset?: Double; ++ windowSize?: Double; ++ renderAheadOffset?: Double; ++ enableInstrumentation?: boolean; ++ disableAutoLayout?: boolean; ++ onBlankAreaEvent?: DirectEventHandler; ++} ++ ++export default codegenNativeComponent("AutoLayoutView"); +diff --git a/node_modules/@shopify/flash-list/src/fabric/CellContainerNativeComponent.ts b/node_modules/@shopify/flash-list/src/fabric/CellContainerNativeComponent.ts +new file mode 100644 +index 0000000..dd284ac +--- /dev/null ++++ b/node_modules/@shopify/flash-list/src/fabric/CellContainerNativeComponent.ts +@@ -0,0 +1,9 @@ ++import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent"; ++import type { Int32 } from "react-native/Libraries/Types/CodegenTypes"; ++import type { ViewProps } from "react-native"; ++ ++interface NativeProps extends ViewProps { ++ index?: Int32; ++} ++ ++export default codegenNativeComponent("CellContainer"); diff --git a/patches/@ua+react-native-airship+15.3.1.patch b/patches/@ua+react-native-airship+15.3.1.patch new file mode 100644 index 000000000000..1ab11c1f7444 --- /dev/null +++ b/patches/@ua+react-native-airship+15.3.1.patch @@ -0,0 +1,24 @@ +diff --git a/node_modules/@ua/react-native-airship/react-native-airship.podspec b/node_modules/@ua/react-native-airship/react-native-airship.podspec +index 5e0ce2d..4456f61 100644 +--- a/node_modules/@ua/react-native-airship/react-native-airship.podspec ++++ b/node_modules/@ua/react-native-airship/react-native-airship.podspec +@@ -20,18 +20,7 @@ Pod::Spec.new do |s| + + # Don't install the dependencies when we run `pod install` in the old architecture. + if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then +- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" +- s.pod_target_xcconfig = { +- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", +- "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1", +- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" +- } +- s.dependency "React-Codegen" +- s.dependency "React-RCTFabric" +- s.dependency "RCT-Folly" +- s.dependency "RCTRequired" +- s.dependency "RCTTypeSafety" +- s.dependency "ReactCommon/turbomodule/core" ++ install_modules_dependencies(s) + end + + diff --git a/patches/expo-modules-core+1.11.8.patch b/patches/expo-modules-core+1.11.8+001+initial.patch similarity index 100% rename from patches/expo-modules-core+1.11.8.patch rename to patches/expo-modules-core+1.11.8+001+initial.patch diff --git a/patches/expo-modules-core+1.11.8+002+disableViewRecycling.patch b/patches/expo-modules-core+1.11.8+002+disableViewRecycling.patch new file mode 100644 index 000000000000..4546e6cd6244 --- /dev/null +++ b/patches/expo-modules-core+1.11.8+002+disableViewRecycling.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm b/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm +index 96bba7d..6e0b439 100644 +--- a/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm ++++ b/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm +@@ -155,6 +155,11 @@ - (void)updateProps:(const facebook::react::Props::Shared &)props oldProps:(cons + [self viewDidUpdateProps]; + } + +++ (BOOL)shouldBeRecycled ++{ ++ return NO; ++} ++ + - (void)updateEventEmitter:(const react::EventEmitter::Shared &)eventEmitter + { + [super updateEventEmitter:eventEmitter]; diff --git a/patches/lottie-react-native+6.5.1.patch b/patches/lottie-react-native+6.5.1.patch new file mode 100644 index 000000000000..ada142440749 --- /dev/null +++ b/patches/lottie-react-native+6.5.1.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/lottie-react-native/ios/Fabric/LottieAnimationViewComponentView.mm b/node_modules/lottie-react-native/ios/Fabric/LottieAnimationViewComponentView.mm +index a4be628..d8f304e 100644 +--- a/node_modules/lottie-react-native/ios/Fabric/LottieAnimationViewComponentView.mm ++++ b/node_modules/lottie-react-native/ios/Fabric/LottieAnimationViewComponentView.mm +@@ -40,6 +40,11 @@ - (instancetype) initWithFrame:(CGRect)frame + + #pragma mark - RCTComponentViewProtocol + +++ (BOOL)shouldBeRecycled ++{ ++ return NO; ++} ++ + + (ComponentDescriptorProvider)componentDescriptorProvider + { + return concreteComponentDescriptorProvider(); diff --git a/patches/react-native+0.73.2+001+initial.patch b/patches/react-native+0.73.4+001+initial.patch similarity index 100% rename from patches/react-native+0.73.2+001+initial.patch rename to patches/react-native+0.73.4+001+initial.patch diff --git a/patches/react-native+0.73.4+002+SuspenseFix.patch b/patches/react-native+0.73.4+002+SuspenseFix.patch new file mode 100644 index 000000000000..75fc57929a00 --- /dev/null +++ b/patches/react-native+0.73.4+002+SuspenseFix.patch @@ -0,0 +1,74 @@ +diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +index 1c5266e..d072621 100644 +--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js ++++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +@@ -20554,20 +20554,20 @@ function finishConcurrentRender(root, exitStatus, lanes) { + + var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; // Don't bother with a very short suspense time. + +- if (_msUntilTimeout > 10) { +- // Instead of committing the fallback immediately, wait for more data +- // to arrive. +- root.timeoutHandle = scheduleTimeout( +- commitRoot.bind( +- null, +- root, +- workInProgressRootRecoverableErrors, +- workInProgressTransitions +- ), +- _msUntilTimeout +- ); +- break; +- } ++ // if (_msUntilTimeout > 10) { ++ // // Instead of committing the fallback immediately, wait for more data ++ // // to arrive. ++ // root.timeoutHandle = scheduleTimeout( ++ // commitRoot.bind( ++ // null, ++ // root, ++ // workInProgressRootRecoverableErrors, ++ // workInProgressTransitions ++ // ), ++ // _msUntilTimeout ++ // ); ++ // break; ++ // } + } // Commit the placeholder. + + commitRoot( +diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +index b85648d..8adba02 100644 +--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js ++++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +@@ -6702,18 +6702,18 @@ function performConcurrentWorkOnRoot(root, didTimeout) { + : 4320 > lanes + ? 4320 + : 1960 * ceil(lanes / 1960)) - lanes; +- if (10 < lanes) { +- root.timeoutHandle = scheduleTimeout( +- commitRoot.bind( +- null, +- root, +- workInProgressRootRecoverableErrors, +- workInProgressTransitions +- ), +- lanes +- ); +- break; +- } ++ // if (10 < lanes) { ++ // root.timeoutHandle = scheduleTimeout( ++ // commitRoot.bind( ++ // null, ++ // root, ++ // workInProgressRootRecoverableErrors, ++ // workInProgressTransitions ++ // ), ++ // lanes ++ // ); ++ // break; ++ // } + commitRoot( + root, + workInProgressRootRecoverableErrors, diff --git a/patches/react-native+0.73.4+003+iOSFontResolution.patch b/patches/react-native+0.73.4+003+iOSFontResolution.patch new file mode 100644 index 000000000000..99abb9481d20 --- /dev/null +++ b/patches/react-native+0.73.4+003+iOSFontResolution.patch @@ -0,0 +1,57 @@ +diff --git a/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm b/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +index 4f8d5aa..18171a6 100644 +--- a/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm ++++ b/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +@@ -35,9 +35,6 @@ static RCTFontProperties RCTResolveFontProperties( + { + fontProperties.family = fontProperties.family.length ? fontProperties.family : baseFontProperties.family; + fontProperties.size = !isnan(fontProperties.size) ? fontProperties.size : baseFontProperties.size; +- fontProperties.weight = !isnan(fontProperties.weight) ? fontProperties.weight : baseFontProperties.weight; +- fontProperties.style = +- fontProperties.style != RCTFontStyleUndefined ? fontProperties.style : baseFontProperties.style; + fontProperties.variant = + fontProperties.variant != RCTFontVariantUndefined ? fontProperties.variant : baseFontProperties.variant; + return fontProperties; +@@ -116,9 +113,14 @@ static RCTFontStyle RCTGetFontStyle(UIFont *font) + if ([fontProperties.family isEqualToString:defaultFontProperties.family]) { + // Handle system font as special case. This ensures that we preserve + // the specific metrics of the standard system font as closely as possible. ++ fontProperties.weight = !isnan(fontProperties.weight) ? fontProperties.weight : defaultFontProperties.weight; ++ fontProperties.style = ++ fontProperties.style != RCTFontStyleUndefined ? fontProperties.style : defaultFontProperties.style; + font = RCTDefaultFontWithFontProperties(fontProperties); + } else { + NSArray *fontNames = [UIFont fontNamesForFamilyName:fontProperties.family]; ++ UIFontWeight fontWeight = fontProperties.weight; ++ RCTFontStyle fontStyle = fontProperties.style; + + if (fontNames.count == 0) { + // Gracefully handle being given a font name rather than font family, for +@@ -129,18 +131,24 @@ static RCTFontStyle RCTGetFontStyle(UIFont *font) + // Failback to system font. + font = [UIFont systemFontOfSize:effectiveFontSize weight:fontProperties.weight]; + } +- } else { ++ ++ fontNames = [UIFont fontNamesForFamilyName:font.familyName]; ++ fontWeight = isnan(fontWeight) ? RCTGetFontWeight(font) : fontWeight; ++ fontStyle = fontStyle == RCTFontStyleUndefined ? RCTGetFontStyle(font) : fontStyle; ++ } ++ ++ if (fontNames.count != 0) { + // Get the closest font that matches the given weight for the fontFamily + CGFloat closestWeight = INFINITY; + for (NSString *name in fontNames) { + UIFont *fontMatch = [UIFont fontWithName:name size:effectiveFontSize]; + +- if (RCTGetFontStyle(fontMatch) != fontProperties.style) { ++ if (RCTGetFontStyle(fontMatch) != fontStyle) { + continue; + } + + CGFloat testWeight = RCTGetFontWeight(fontMatch); +- if (ABS(testWeight - fontProperties.weight) < ABS(closestWeight - fontProperties.weight)) { ++ if (ABS(testWeight - fontWeight) < ABS(closestWeight - fontWeight)) { + font = fontMatch; + closestWeight = testWeight; + } diff --git a/patches/react-native+0.73.4+004+AndroidModalSize.patch b/patches/react-native+0.73.4+004+AndroidModalSize.patch new file mode 100644 index 000000000000..d7adf15f790d --- /dev/null +++ b/patches/react-native+0.73.4+004+AndroidModalSize.patch @@ -0,0 +1,142 @@ +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.java +deleted file mode 100644 +index 3a226c0..0000000 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.java ++++ /dev/null +@@ -1,63 +0,0 @@ +-/* +- * Copyright (c) Meta Platforms, Inc. and affiliates. +- * +- * This source code is licensed under the MIT license found in the +- * LICENSE file in the root directory of this source tree. +- */ +- +-package com.facebook.react.views.modal; +- +-import android.content.Context; +-import android.content.res.Resources; +-import android.content.res.TypedArray; +-import android.graphics.Point; +-import android.view.Display; +-import android.view.WindowManager; +-import com.facebook.infer.annotation.Assertions; +- +-/** Helper class for Modals. */ +-/*package*/ class ModalHostHelper { +- +- private static final Point MIN_POINT = new Point(); +- private static final Point MAX_POINT = new Point(); +- private static final Point SIZE_POINT = new Point(); +- +- /** +- * To get the size of the screen, we use information from the WindowManager and default Display. +- * We don't use DisplayMetricsHolder, or Display#getSize() because they return values that include +- * the status bar. We only want the values of what will actually be shown on screen. We use +- * Display#getSize() to determine if the screen is in portrait or landscape. We don't use +- * getRotation because the 'natural' rotation will be portrait on phones and landscape on tablets. +- * This should only be called on the native modules/shadow nodes thread. +- */ +- public static Point getModalHostSize(Context context) { +- WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); +- Display display = Assertions.assertNotNull(wm).getDefaultDisplay(); +- // getCurrentSizeRange will return the min and max width and height that the window can be +- display.getCurrentSizeRange(MIN_POINT, MAX_POINT); +- // getSize will return the dimensions of the screen in its current orientation +- display.getSize(SIZE_POINT); +- +- int[] attrs = {android.R.attr.windowFullscreen}; +- Resources.Theme theme = context.getTheme(); +- TypedArray ta = theme.obtainStyledAttributes(attrs); +- boolean windowFullscreen = ta.getBoolean(0, false); +- +- // We need to add the status bar height to the height if we have a fullscreen window, +- // because Display.getCurrentSizeRange doesn't include it. +- Resources resources = context.getResources(); +- int statusBarId = resources.getIdentifier("status_bar_height", "dimen", "android"); +- int statusBarHeight = 0; +- if (windowFullscreen && statusBarId > 0) { +- statusBarHeight = (int) resources.getDimension(statusBarId); +- } +- +- if (SIZE_POINT.x < SIZE_POINT.y) { +- // If we are vertical the width value comes from min width and height comes from max height +- return new Point(MIN_POINT.x, MAX_POINT.y + statusBarHeight); +- } else { +- // If we are horizontal the width value comes from max width and height comes from min height +- return new Point(MAX_POINT.x, MIN_POINT.y + statusBarHeight); +- } +- } +-} +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.java +deleted file mode 100644 +index 7288fe0..0000000 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.java ++++ /dev/null +@@ -1,37 +0,0 @@ +-/* +- * Copyright (c) Meta Platforms, Inc. and affiliates. +- * +- * This source code is licensed under the MIT license found in the +- * LICENSE file in the root directory of this source tree. +- */ +- +-package com.facebook.react.views.modal; +- +-import android.graphics.Point; +-import com.facebook.react.uimanager.LayoutShadowNode; +-import com.facebook.react.uimanager.ReactShadowNodeImpl; +- +-/** +- * We implement the Modal by using an Android Dialog. That will fill the entire window of the +- * application. To get layout to work properly, we need to layout all the elements within the +- * Modal's inner content view as if they can fill the entire window. To do that, we need to +- * explicitly set the styleWidth and styleHeight on the LayoutShadowNode of the child of this node +- * to be the window size. This will then cause the children of the Modal to layout as if they can +- * fill the window. +- */ +-class ModalHostShadowNode extends LayoutShadowNode { +- +- public ModalHostShadowNode() {} +- +- /** +- * We need to set the styleWidth and styleHeight of the one child (represented by the +- * within the in Modal.js. This needs to fill the entire window. +- */ +- @Override +- public void addChildAt(ReactShadowNodeImpl child, int i) { +- super.addChildAt(child, i); +- Point modalSize = ModalHostHelper.getModalHostSize(getThemedContext()); +- child.setStyleWidth(modalSize.x); +- child.setStyleHeight(modalSize.y); +- } +-} +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +index 74c6b8e..0d447e5 100644 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java ++++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +@@ -50,16 +50,6 @@ public class ReactModalHostManager extends ViewGroupManager + return new ReactModalHostView(reactContext); + } + +- @Override +- public LayoutShadowNode createShadowNodeInstance() { +- return new ModalHostShadowNode(); +- } +- +- @Override +- public Class getShadowNodeClass() { +- return ModalHostShadowNode.class; +- } +- + @Override + public void onDropViewInstance(ReactModalHostView view) { + super.onDropViewInstance(view); +@@ -168,8 +158,6 @@ public class ReactModalHostManager extends ViewGroupManager + public Object updateState( + ReactModalHostView view, ReactStylesDiffMap props, StateWrapper stateWrapper) { + view.setStateWrapper(stateWrapper); +- Point modalSize = ModalHostHelper.getModalHostSize(view.getContext()); +- view.updateState(modalSize.x, modalSize.y); + return null; + } + diff --git a/patches/react-native+0.73.4+005+TextInputs.patch b/patches/react-native+0.73.4+005+TextInputs.patch new file mode 100644 index 000000000000..a7ba5ae3b9dd --- /dev/null +++ b/patches/react-native+0.73.4+005+TextInputs.patch @@ -0,0 +1,61 @@ +diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +index e7b69bf..9f691c9 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm ++++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +@@ -115,6 +115,10 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & + [self _setMultiline:newTextInputProps.traits.multiline]; + } + ++ if (newTextInputProps.traits.showSoftInputOnFocus != oldTextInputProps.traits.showSoftInputOnFocus) { ++ [self _setShowSoftInputOnFocus:newTextInputProps.traits.showSoftInputOnFocus]; ++ } ++ + if (newTextInputProps.traits.autocapitalizationType != oldTextInputProps.traits.autocapitalizationType) { + _backedTextInputView.autocapitalizationType = + RCTUITextAutocapitalizationTypeFromAutocapitalizationType(newTextInputProps.traits.autocapitalizationType); +@@ -618,6 +622,25 @@ - (void)_setMultiline:(BOOL)multiline + RCTCopyBackedTextInput(_backedTextInputView, backedTextInputView); + _backedTextInputView = backedTextInputView; + [self addSubview:_backedTextInputView]; ++ ++ auto const ¤tTextInputProps = *std::static_pointer_cast(_props); ++ [self _setShowSoftInputOnFocus:currentTextInputProps.traits.showSoftInputOnFocus]; ++} ++ ++- (void)_setShowSoftInputOnFocus:(BOOL)showSoftInputOnFocus ++{ ++ if (showSoftInputOnFocus) { ++ // Resets to default keyboard. ++ _backedTextInputView.inputView = nil; ++ ++ // Without the call to reloadInputViews, the keyboard will not change until the textInput field (the first // responder) loses and regains focus. ++ if (_backedTextInputView.isFirstResponder) { ++ [_backedTextInputView reloadInputViews]; ++ } ++ } else { ++ // Hides keyboard, but keeps blinking cursor. ++ _backedTextInputView.inputView = [UIView new]; ++ } + } + + - (BOOL)_textOf:(NSAttributedString *)newText equals:(NSAttributedString *)oldText +diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +index 0c9cc69..fee423f 100644 +--- a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp ++++ b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +@@ -159,15 +159,6 @@ void AndroidTextInputShadowNode::updateStateIfNeeded() { + Size AndroidTextInputShadowNode::measureContent( + const LayoutContext& /*layoutContext*/, + const LayoutConstraints& layoutConstraints) const { +- if (getStateData().cachedAttributedStringId != 0) { +- return textLayoutManager_ +- ->measureCachedSpannableById( +- getStateData().cachedAttributedStringId, +- getConcreteProps().paragraphAttributes, +- layoutConstraints) +- .size; +- } +- + // Layout is called right after measure. + // Measure is marked as `const`, and `layout` is not; so State can be updated + // during layout, but not during `measure`. If State is out-of-date in layout, diff --git a/patches/react-native+0.73.4+006+Codegen.patch b/patches/react-native+0.73.4+006+Codegen.patch new file mode 100644 index 000000000000..076faa497825 --- /dev/null +++ b/patches/react-native+0.73.4+006+Codegen.patch @@ -0,0 +1,21 @@ +diff --git a/node_modules/react-native/scripts/cocoapods/new_architecture.rb b/node_modules/react-native/scripts/cocoapods/new_architecture.rb +index ba75b01..e5eaee8 100644 +--- a/node_modules/react-native/scripts/cocoapods/new_architecture.rb ++++ b/node_modules/react-native/scripts/cocoapods/new_architecture.rb +@@ -103,6 +103,7 @@ class NewArchitectureHelper + compiler_flags = hash["compiler_flags"] ? hash["compiler_flags"] : "" + current_config = hash["pod_target_xcconfig"] != nil ? hash["pod_target_xcconfig"] : {} + current_headers = current_config["HEADER_SEARCH_PATHS"] != nil ? current_config["HEADER_SEARCH_PATHS"] : "" ++ current_cpp_flags = current_config["OTHER_CPLUSPLUSFLAGS"] != nil ? current_config["OTHER_CPLUSPLUSFLAGS"] : "" + + header_search_paths = ["\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\""] + if ENV['USE_FRAMEWORKS'] +@@ -135,7 +136,7 @@ class NewArchitectureHelper + spec.dependency "glog" + + if new_arch_enabled +- current_config["OTHER_CPLUSPLUSFLAGS"] = @@new_arch_cpp_flags ++ current_config["OTHER_CPLUSPLUSFLAGS"] = current_cpp_flags.empty? ? @@new_arch_cpp_flags : "#{current_cpp_flags} #{@@new_arch_cpp_flags}" + spec.dependency "React-RCTFabric" # This is for Fabric Component + spec.dependency "React-Codegen" + diff --git a/patches/react-native+0.73.4+007+disableTextInputRecycling.patch b/patches/react-native+0.73.4+007+disableTextInputRecycling.patch new file mode 100644 index 000000000000..683bc91c43ca --- /dev/null +++ b/patches/react-native+0.73.4+007+disableTextInputRecycling.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +index 9f691c9..7ce04da 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm ++++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +@@ -100,6 +100,11 @@ - (NSObject *)accessibilityElement + + #pragma mark - RCTComponentViewProtocol + +++ (BOOL)shouldBeRecycled ++{ ++ return NO; ++} ++ + + (ComponentDescriptorProvider)componentDescriptorProvider + { + return concreteComponentDescriptorProvider(); diff --git a/patches/react-native+0.73.4+008+checkForHashMap.patch b/patches/react-native+0.73.4+008+checkForHashMap.patch new file mode 100644 index 000000000000..e0a73c6325f1 --- /dev/null +++ b/patches/react-native+0.73.4+008+checkForHashMap.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +index 6d07704..88dd74e 100644 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java ++++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +@@ -204,6 +204,11 @@ import java.util.Set; + } + } + } ++ // When providing one event in Kotlin, it will create a SingletonMap by default ++ // which will throw on trying to add new element to it ++ if (!(events instanceof HashMap)) { ++ events = new HashMap(events); ++ } + for (String oldKey : keysToNormalize) { + Object value = events.get(oldKey); + String baseKey = ""; diff --git a/patches/react-native+0.73.4+009+properEventDispatchOrder.patch b/patches/react-native+0.73.4+009+properEventDispatchOrder.patch new file mode 100644 index 000000000000..894aa416bc71 --- /dev/null +++ b/patches/react-native+0.73.4+009+properEventDispatchOrder.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +index 4c3387b..284720f 100644 +--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java ++++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +@@ -38,10 +38,10 @@ public class FabricEventDispatcher implements EventDispatcher, LifecycleEventLis + + @Override + public void dispatchEvent(Event event) { +- event.dispatchModern(mReactEventEmitter); + for (EventDispatcherListener listener : mListeners) { + listener.onEventDispatch(event); + } ++ event.dispatchModern(mReactEventEmitter); + + event.dispose(); + maybePostFrameCallbackFromNonUI(); diff --git a/patches/react-native+0.73.4+010+resetAutoresizingOnView.patch b/patches/react-native+0.73.4+010+resetAutoresizingOnView.patch new file mode 100644 index 000000000000..871d06d91980 --- /dev/null +++ b/patches/react-native+0.73.4+010+resetAutoresizingOnView.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +index d06b0aa..9fe35a8 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm ++++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +@@ -445,6 +445,8 @@ - (void)prepareForRecycle + self.layer.opacity = (float)props.opacity; + } + ++ self.autoresizingMask = UIViewAutoresizingNone; ++ + _propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN = nil; + _eventEmitter.reset(); + _isJSResponder = NO; diff --git a/patches/react-native+0.73.4+011+optionalViewRecycling.patch b/patches/react-native+0.73.4+011+optionalViewRecycling.patch new file mode 100644 index 000000000000..14a20de2ae1c --- /dev/null +++ b/patches/react-native+0.73.4+011+optionalViewRecycling.patch @@ -0,0 +1,62 @@ +diff --git a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h +index b03a464..a2788a9 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h ++++ b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewClassDescriptor.h +@@ -27,6 +27,11 @@ class RCTComponentViewClassDescriptor final { + */ + bool observesMountingTransactionWillMount{false}; + bool observesMountingTransactionDidMount{false}; ++ ++ /* ++ * Whether the component can be recycled or not ++ */ ++ bool shouldBeRecycled{true}; + }; + + NS_ASSUME_NONNULL_END +diff --git a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewDescriptor.h b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewDescriptor.h +index 3ca65d1..fd1c4b9 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewDescriptor.h ++++ b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewDescriptor.h +@@ -29,6 +29,7 @@ class RCTComponentViewDescriptor final { + */ + bool observesMountingTransactionWillMount{false}; + bool observesMountingTransactionDidMount{false}; ++ bool shouldBeRecycled{true}; + }; + + inline bool operator==(const RCTComponentViewDescriptor &lhs, const RCTComponentViewDescriptor &rhs) +diff --git a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewFactory.mm b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewFactory.mm +index 0b15d71..9bf4f2d 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewFactory.mm ++++ b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewFactory.mm +@@ -95,6 +95,8 @@ - (RCTComponentViewClassDescriptor)_componentViewClassDescriptorFromClass:(Class + (bool)class_respondsToSelector(viewClass, @selector(mountingTransactionWillMount:withSurfaceTelemetry:)), + .observesMountingTransactionDidMount = + (bool)class_respondsToSelector(viewClass, @selector(mountingTransactionDidMount:withSurfaceTelemetry:)), ++ .shouldBeRecycled = ++ [viewClass respondsToSelector:@selector(shouldBeRecycled)] ? (bool)[viewClass performSelector:@selector(shouldBeRecycled)] : true, + }; + #pragma clang diagnostic pop + } +@@ -210,6 +212,7 @@ - (RCTComponentViewDescriptor)createComponentViewWithComponentHandle:(facebook:: + .view = [viewClass new], + .observesMountingTransactionWillMount = componentViewClassDescriptor.observesMountingTransactionWillMount, + .observesMountingTransactionDidMount = componentViewClassDescriptor.observesMountingTransactionDidMount, ++ .shouldBeRecycled = componentViewClassDescriptor.shouldBeRecycled, + }; + } + +diff --git a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewRegistry.mm b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewRegistry.mm +index e78e8ae..74ebc31 100644 +--- a/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewRegistry.mm ++++ b/node_modules/react-native/React/Fabric/Mounting/RCTComponentViewRegistry.mm +@@ -107,7 +107,7 @@ - (void)_enqueueComponentViewWithComponentHandle:(ComponentHandle)componentHandl + RCTAssertMainQueue(); + auto &recycledViews = _recyclePool[componentHandle]; + +- if (recycledViews.size() > RCTComponentViewRegistryRecyclePoolMaxSize) { ++ if (recycledViews.size() > RCTComponentViewRegistryRecyclePoolMaxSize || !componentViewDescriptor.shouldBeRecycled) { + return; + } + diff --git a/patches/react-native+0.73.4+012+disableNonTranslucentStatusBar.patch b/patches/react-native+0.73.4+012+disableNonTranslucentStatusBar.patch new file mode 100644 index 000000000000..fedfe544f353 --- /dev/null +++ b/patches/react-native+0.73.4+012+disableNonTranslucentStatusBar.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js b/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js +index 2ac3d1f..5a400bf 100644 +--- a/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js ++++ b/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js +@@ -479,8 +479,7 @@ class StatusBar extends React.Component { + } + // Activities are not translucent by default, so always set if true. + if ( +- !oldProps || +- oldProps.translucent !== mergedProps.translucent || ++ (oldProps && oldProps.translucent !== mergedProps.translucent) || + mergedProps.translucent + ) { + NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent); diff --git a/patches/react-native+0.73.4+013+exposePrefabs.patch b/patches/react-native+0.73.4+013+exposePrefabs.patch new file mode 100644 index 000000000000..001a2dec9894 --- /dev/null +++ b/patches/react-native+0.73.4+013+exposePrefabs.patch @@ -0,0 +1,95 @@ +diff --git a/node_modules/react-native/ReactAndroid/build.gradle b/node_modules/react-native/ReactAndroid/build.gradle +index 78c57eb..ec147fd 100644 +--- a/node_modules/react-native/ReactAndroid/build.gradle ++++ b/node_modules/react-native/ReactAndroid/build.gradle +@@ -125,6 +125,19 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa + "rrc_root", + new Pair("../ReactCommon/react/renderer/components/root/", "react/renderer/components/root/") + ), ++ new PrefabPreprocessingEntry( ++ "rrc_text", ++ [ ++ new Pair("../ReactCommon/react/renderer/components/text/", "react/renderer/components/text/"), ++ new Pair("../ReactCommon/react/renderer/attributedstring", "react/renderer/attributedstring"), ++ ] ++ ), ++ new PrefabPreprocessingEntry( ++ "rrc_textinput", ++ [ ++ new Pair("../ReactCommon/react/renderer/components/textinput/androidtextinput", ""), ++ ] ++ ), + new PrefabPreprocessingEntry( + "rrc_view", + [ +@@ -132,6 +145,13 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa + new Pair("../ReactCommon/react/renderer/components/view/platform/android/", ""), + ] + ), ++ new PrefabPreprocessingEntry( ++ "react_render_textlayoutmanager", ++ [ ++ new Pair("../ReactCommon/react/renderer/textlayoutmanager/", "react/renderer/textlayoutmanager/"), ++ new Pair("../ReactCommon/react/renderer/textlayoutmanager/platform/android/", ""), ++ ] ++ ), + new PrefabPreprocessingEntry( + "rrc_legacyviewmanagerinterop", + new Pair("../ReactCommon/react/renderer/components/legacyviewmanagerinterop/", "react/renderer/components/legacyviewmanagerinterop/") +@@ -559,6 +579,9 @@ android { + "glog", + "fabricjni", + "react_render_mapbuffer", ++ "react_render_textlayoutmanager", ++ "rrc_textinput", ++ "rrc_text", + "yoga", + "folly_runtime", + "react_nativemodule_core", +@@ -683,6 +706,15 @@ android { + rrc_root { + headers(new File(prefabHeadersDir, "rrc_root").absolutePath) + } ++ rrc_text { ++ headers(new File(prefabHeadersDir, "rrc_text").absolutePath) ++ } ++ rrc_textinput { ++ headers(new File(prefabHeadersDir, "rrc_textinput").absolutePath) ++ } ++ react_render_textlayoutmanager { ++ headers(new File(prefabHeadersDir, "react_render_textlayoutmanager").absolutePath) ++ } + rrc_view { + headers(new File(prefabHeadersDir, "rrc_view").absolutePath) + } +diff --git a/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake b/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake +index d49fa9e..3607c69 100644 +--- a/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake ++++ b/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake +@@ -78,11 +78,14 @@ add_library(jsi ALIAS ReactAndroid::jsi) + add_library(glog ALIAS ReactAndroid::glog) + add_library(fabricjni ALIAS ReactAndroid::fabricjni) + add_library(react_render_mapbuffer ALIAS ReactAndroid::react_render_mapbuffer) ++add_library(react_render_textlayoutmanager ALIAS ReactAndroid::react_render_textlayoutmanager) + add_library(yoga ALIAS ReactAndroid::yoga) + add_library(folly_runtime ALIAS ReactAndroid::folly_runtime) + add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core) + add_library(react_render_imagemanager ALIAS ReactAndroid::react_render_imagemanager) + add_library(rrc_image ALIAS ReactAndroid::rrc_image) ++add_library(rrc_text ALIAS ReactAndroid::rrc_text) ++add_library(rrc_textinput ALIAS ReactAndroid::rrc_textinput) + add_library(rrc_legacyviewmanagerinterop ALIAS ReactAndroid::rrc_legacyviewmanagerinterop) + + find_package(fbjni REQUIRED CONFIG) +@@ -105,8 +108,11 @@ target_link_libraries(${CMAKE_PROJECT_NAME} + react_render_graphics # prefab ready + react_render_imagemanager # prefab ready + react_render_mapbuffer # prefab ready ++ react_render_textlayoutmanager # prefab ready + rrc_image # prefab ready + rrc_view # prefab ready ++ rrc_text # prefab ready ++ rrc_textinput # prefab ready + rrc_legacyviewmanagerinterop # prefab ready + runtimeexecutor # prefab ready + turbomodulejsijni # prefab ready diff --git a/patches/react-native-config+1.4.6.patch b/patches/react-native-config+1.4.6.patch deleted file mode 100644 index 880c723ddc37..000000000000 --- a/patches/react-native-config+1.4.6.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/node_modules/react-native-config/android/dotenv.gradle b/node_modules/react-native-config/android/dotenv.gradle -index 2225375..48f94ca 100644 ---- a/node_modules/react-native-config/android/dotenv.gradle -+++ b/node_modules/react-native-config/android/dotenv.gradle -@@ -41,7 +41,8 @@ def loadDotEnv(flavor = getCurrentFlavor()) { - def env = [:] - println("Reading env from: $envFile") - -- File f = new File("$project.rootDir/../$envFile"); -+ def reactNativeProjectRoot = project.hasProperty('reactNativeProject') ? project.reactNativeProject : ".." -+ File f = new File("$project.rootDir/$reactNativeProjectRoot/$envFile"); - if (!f.exists()) { - f = new File("$envFile"); - } -diff --git a/node_modules/react-native-config/react-native-config.podspec b/node_modules/react-native-config/react-native-config.podspec -index 54985dd..c394ec7 100644 ---- a/node_modules/react-native-config/react-native-config.podspec -+++ b/node_modules/react-native-config/react-native-config.podspec -@@ -3,6 +3,7 @@ - require 'json' - - package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) -+REACT_NATIVE_DIR = ENV["REACT_NATIVE_DIR"] || ".." - - Pod::Spec.new do |s| - s.name = 'react-native-config' -@@ -21,7 +22,7 @@ Pod::Spec.new do |s| - name: 'Config codegen', - script: %( - set -ex --HOST_PATH="$SRCROOT/../.." -+HOST_PATH="$SRCROOT/../#{REACT_NATIVE_DIR}" - "${PODS_TARGET_SRCROOT}/ios/ReactNativeConfig/BuildDotenvConfig.rb" "$HOST_PATH" "${PODS_TARGET_SRCROOT}/ios/ReactNativeConfig" - ), - execution_position: :before_compile, -@@ -43,7 +44,7 @@ HOST_PATH="$SRCROOT/../.." - name: 'Config codegen', - script: %( - set -ex -- HOST_PATH="$SRCROOT/../.." -+ HOST_PATH="$SRCROOT/../#{REACT_NATIVE_DIR}" - "${PODS_TARGET_SRCROOT}/ios/ReactNativeConfig/BuildDotenvConfig.rb" "$HOST_PATH" "${PODS_TARGET_SRCROOT}/ios/ReactNativeConfig" - ), - execution_position: :before_compile, diff --git a/patches/react-native-config+1.5.0.patch b/patches/react-native-config+1.5.0.patch new file mode 100644 index 000000000000..4b5a597de4dd --- /dev/null +++ b/patches/react-native-config+1.5.0.patch @@ -0,0 +1,518 @@ +diff --git a/node_modules/react-native-config/README.md b/node_modules/react-native-config/README.md +index 8424402..ca29e39 100644 +--- a/node_modules/react-native-config/README.md ++++ b/node_modules/react-native-config/README.md +@@ -78,13 +78,13 @@ if cocoapods are used in the project then pod has to be installed as well: + **MainApplication.java** + + ```diff +- + import com.lugg.ReactNativeConfig.ReactNativeConfigPackage; ++ + import com.lugg.RNCConfig.RNCConfigPackage; + + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage() +- + new ReactNativeConfigPackage() ++ + new RNCConfigPackage() + ); + } + ``` +diff --git a/node_modules/react-native-config/android/build.gradle b/node_modules/react-native-config/android/build.gradle +index c8f7fd4..86b3e1a 100644 +--- a/node_modules/react-native-config/android/build.gradle ++++ b/node_modules/react-native-config/android/build.gradle +@@ -15,6 +15,55 @@ def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + ++def resolveReactNativeDirectory() { ++ def reactNativeLocation = safeExtGet("REACT_NATIVE_NODE_MODULES_DIR", null) ++ if (reactNativeLocation != null) { ++ return file(reactNativeLocation) ++ } ++ ++ // monorepo workaround ++ // react-native can be hoisted or in project's own node_modules ++ def reactNativeFromProjectNodeModules = file("${rootProject.projectDir}/../node_modules/react-native") ++ if (reactNativeFromProjectNodeModules.exists()) { ++ return reactNativeFromProjectNodeModules ++ } ++ ++ def reactNativeFromNodeModulesWithRNCConfig = file("${projectDir}/../../react-native") ++ if (reactNativeFromNodeModulesWithRNCConfig.exists()) { ++ return reactNativeFromNodeModulesWithRNCConfig ++ } ++ ++ throw new Exception( ++ "[react-native-config] Unable to resolve react-native location in " + ++ "node_modules. You should add project extension property (in app/build.gradle) " + ++ "`REACT_NATIVE_NODE_MODULES_DIR` with path to react-native." ++ ) ++} ++ ++def getReactNativeMinorVersion() { ++ def REACT_NATIVE_DIR = resolveReactNativeDirectory() ++ ++ def reactProperties = new Properties() ++ file("$REACT_NATIVE_DIR/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) } ++ ++ def REACT_NATIVE_VERSION = reactProperties.getProperty("VERSION_NAME") ++ def REACT_NATIVE_MINOR_VERSION = REACT_NATIVE_VERSION.startsWith("0.0.0-") ? 1000 : REACT_NATIVE_VERSION.split("\\.")[1].toInteger() ++ ++ return REACT_NATIVE_MINOR_VERSION ++} ++ ++def isNewArchitectureEnabled() { ++ // To opt-in for the New Architecture, you can either: ++ // - Set `newArchEnabled` to true inside the `gradle.properties` file ++ // - Invoke gradle with `-newArchEnabled=true` ++ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} ++ ++if (isNewArchitectureEnabled()) { ++ apply plugin: "com.facebook.react" ++} ++ + android { + compileSdkVersion rootProject.ext.compileSdkVersion + +@@ -23,10 +72,23 @@ android { + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" ++ ++ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + } + lintOptions { + abortOnError false + } ++ ++ sourceSets.main { ++ java { ++ if (!isNewArchitectureEnabled()) { ++ srcDirs += 'src/paper/java' ++ } else { ++ // This should be done by the RN gradle plugin, for some reason it sometimes doesn't work ++ srcDirs += 'build/generated/source/codegen/java' ++ } ++ } ++ } + } + + repositories { +@@ -34,5 +96,9 @@ repositories { + } + + dependencies { +- implementation "com.facebook.react:react-native:${safeExtGet("reactNative", "+")}" // from node_modules ++ if (isNewArchitectureEnabled() && getReactNativeMinorVersion() < 71) { ++ implementation project(":ReactAndroid") ++ } else { ++ implementation 'com.facebook.react:react-native:+' ++ } + } +diff --git a/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigModule.java b/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigModule.java +index 0b52515..bef2834 100644 +--- a/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigModule.java ++++ b/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigModule.java +@@ -13,20 +13,32 @@ import java.lang.reflect.Field; + import java.util.Map; + import java.util.HashMap; + +-public class RNCConfigModule extends ReactContextBaseJavaModule { ++public class RNCConfigModule extends NativeConfigModuleSpec { ++ public static final String NAME = "RNCConfigModule"; ++ + public RNCConfigModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { +- return "RNCConfigModule"; ++ return NAME; + } + + @Override +- public Map getConstants() { ++ public Map getTypedExportedConstants() { + final Map constants = new HashMap<>(); + ++ // Codegen ensures that the constants defined in the module spec and in the native module implementation ++ // are consistent, which is tad problematic in this case, as the constants are dependant on the `.env` ++ // file. The simple workaround is to define a `constants` object that will contain actual constants. ++ // This way the types between JS and Native side remain consistent, while functionality stays the same. ++ // TL;DR: ++ // instead of exporting { constant1: "value1", constant2: "value2" } ++ // we export { constants: { constant1: "value1", constant2: "value2" } } ++ // because of type safety on the new arch ++ final Map realConstants = new HashMap<>(); ++ + try { + Context context = getReactApplicationContext(); + int resId = context.getResources().getIdentifier("build_config_package", "string", context.getPackageName()); +@@ -40,7 +52,7 @@ public class RNCConfigModule extends ReactContextBaseJavaModule { + Field[] fields = clazz.getDeclaredFields(); + for(Field f: fields) { + try { +- constants.put(f.getName(), f.get(null)); ++ realConstants.put(f.getName(), f.get(null)); + } + catch (IllegalAccessException e) { + Log.d("ReactNative", "ReactConfig: Could not access BuildConfig field " + f.getName()); +@@ -51,6 +63,8 @@ public class RNCConfigModule extends ReactContextBaseJavaModule { + Log.d("ReactNative", "ReactConfig: Could not find BuildConfig class"); + } + ++ constants.put("constants", realConstants); ++ + return constants; + } + } +diff --git a/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigPackage.java b/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigPackage.java +index 9251c09..2edd797 100644 +--- a/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigPackage.java ++++ b/node_modules/react-native-config/android/src/main/java/com/lugg/RNCConfig/RNCConfigPackage.java +@@ -1,29 +1,42 @@ + package com.lugg.RNCConfig; + +-import com.facebook.react.ReactPackage; +-import com.facebook.react.bridge.JavaScriptModule; ++import com.facebook.react.TurboReactPackage; + import com.facebook.react.bridge.NativeModule; + import com.facebook.react.bridge.ReactApplicationContext; +-import com.facebook.react.uimanager.ViewManager; ++import com.facebook.react.module.model.ReactModuleInfo; ++import com.facebook.react.module.model.ReactModuleInfoProvider; + +-import java.util.Arrays; +-import java.util.Collections; +-import java.util.List; ++import java.util.HashMap; ++import java.util.Map; + +-public class RNCConfigPackage implements ReactPackage { +- @Override +- public List createNativeModules(ReactApplicationContext reactContext) { +- return Arrays.asList( +- new RNCConfigModule(reactContext) +- ); +- } ++public class RNCConfigPackage extends TurboReactPackage { + +- public List> createJSModules() { +- return Collections.emptyList(); ++ @Override ++ public NativeModule getModule(String name, ReactApplicationContext reactContext) { ++ if (name.equals(RNCConfigModule.NAME)) { ++ return new RNCConfigModule(reactContext); ++ } else { ++ return null; ++ } + } + + @Override +- public List createViewManagers(ReactApplicationContext reactContext) { +- return Collections.emptyList(); ++ public ReactModuleInfoProvider getReactModuleInfoProvider() { ++ return () -> { ++ final Map moduleInfos = new HashMap<>(); ++ boolean isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; ++ moduleInfos.put( ++ RNCConfigModule.NAME, ++ new ReactModuleInfo( ++ RNCConfigModule.NAME, ++ RNCConfigModule.NAME, ++ false, // canOverrideExistingModule ++ false, // needsEagerInit ++ true, // hasConstants ++ false, // isCxxModule ++ isTurboModule // isTurboModule ++ )); ++ return moduleInfos; ++ }; + } + } +diff --git a/node_modules/react-native-config/android/src/paper/java/com/lugg/RNCConfig/NativeConfigModuleSpec.java b/node_modules/react-native-config/android/src/paper/java/com/lugg/RNCConfig/NativeConfigModuleSpec.java +new file mode 100644 +index 0000000..7a65504 +--- /dev/null ++++ b/node_modules/react-native-config/android/src/paper/java/com/lugg/RNCConfig/NativeConfigModuleSpec.java +@@ -0,0 +1,58 @@ ++ ++/** ++ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++ * ++ * Do not edit this file as changes may cause incorrect behavior and will be lost ++ * once the code is regenerated. ++ * ++ * @generated by codegen project: GenerateModuleJavaSpec.js ++ * ++ * @nolint ++ */ ++ ++package com.lugg.RNCConfig; ++ ++import com.facebook.proguard.annotations.DoNotStrip; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.ReactContextBaseJavaModule; ++import com.facebook.react.bridge.ReactMethod; ++import com.facebook.react.bridge.ReactModuleWithSpec; ++import com.facebook.react.common.build.ReactBuildConfig; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; ++import java.util.Arrays; ++import java.util.HashSet; ++import java.util.Map; ++import java.util.Set; ++import javax.annotation.Nullable; ++ ++public abstract class NativeConfigModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { ++ public NativeConfigModuleSpec(ReactApplicationContext reactContext) { ++ super(reactContext); ++ } ++ ++ protected abstract Map getTypedExportedConstants(); ++ ++ @Override ++ @DoNotStrip ++ public final @Nullable Map getConstants() { ++ Map constants = getTypedExportedConstants(); ++ if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) { ++ Set obligatoryFlowConstants = new HashSet<>(Arrays.asList( ++ "constants" ++ )); ++ Set optionalFlowConstants = new HashSet<>(); ++ Set undeclaredConstants = new HashSet<>(constants.keySet()); ++ undeclaredConstants.removeAll(obligatoryFlowConstants); ++ undeclaredConstants.removeAll(optionalFlowConstants); ++ if (!undeclaredConstants.isEmpty()) { ++ throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants)); ++ } ++ undeclaredConstants = obligatoryFlowConstants; ++ undeclaredConstants.removeAll(constants.keySet()); ++ if (!undeclaredConstants.isEmpty()) { ++ throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants)); ++ } ++ } ++ return constants; ++ } ++} +diff --git a/node_modules/react-native-config/codegen/NativeConfigModule.js b/node_modules/react-native-config/codegen/NativeConfigModule.js +new file mode 100644 +index 0000000..8cc9ac8 +--- /dev/null ++++ b/node_modules/react-native-config/codegen/NativeConfigModule.js +@@ -0,0 +1,11 @@ ++// @flow ++import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport'; ++import { TurboModuleRegistry } from 'react-native'; ++ ++export interface Spec extends TurboModule { ++ +getConstants: () => {| ++ constants: Object, ++ |}; ++} ++ ++export default (TurboModuleRegistry.get('RNCConfigModule'): ?Spec); +diff --git a/node_modules/react-native-config/index.js b/node_modules/react-native-config/index.js +index 70866c4..a8f3624 100644 +--- a/node_modules/react-native-config/index.js ++++ b/node_modules/react-native-config/index.js +@@ -1,9 +1,10 @@ + 'use strict'; + +-// Bridge to: +-// Android: buildConfigField vars set in build.gradle, and exported via ReactConfig +-// iOS: config vars set in xcconfig and exposed via RNCConfig.m +-import { NativeModules } from 'react-native'; ++import { NativeModules, Platform } from 'react-native'; ++ ++// new arch is not supported on Windows yet ++export const Config = Platform.OS === 'windows' ++ ? NativeModules.RNCConfigModule ++ : require('./codegen/NativeConfigModule').default.getConstants().constants; + +-export const Config = NativeModules.RNCConfigModule || {} + export default Config; +diff --git a/node_modules/react-native-config/ios/ReactNativeConfig/GeneratedDotEnv.m b/node_modules/react-native-config/ios/ReactNativeConfig/GeneratedDotEnv.m +index 04a2f3d..59df625 100644 +--- a/node_modules/react-native-config/ios/ReactNativeConfig/GeneratedDotEnv.m ++++ b/node_modules/react-native-config/ios/ReactNativeConfig/GeneratedDotEnv.m +@@ -1 +1 @@ +- #define DOT_ENV @{ }; ++ #define DOT_ENV @{ @"ENV":@"dev",@"API_URL":@"http://localhost" }; +diff --git a/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.h b/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.h +index 755d103..5341aca 100644 +--- a/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.h ++++ b/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.h +@@ -1,3 +1,9 @@ ++#ifdef RCT_NEW_ARCH_ENABLED ++#import "RNCConfigSpec.h" ++ ++@interface RNCConfigModule : NSObject ++#else ++ + #if __has_include() + #import + #elif __has_include("React/RCTBridgeModule.h") +@@ -7,6 +13,7 @@ + #endif + + @interface RNCConfigModule : NSObject ++#endif // RCT_NEW_ARCH_ENABLED + + + (NSDictionary *)env; + + (NSString *)envFor: (NSString *)key; +diff --git a/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.m b/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.m +deleted file mode 100644 +index 5365d4c..0000000 +--- a/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.m ++++ /dev/null +@@ -1,25 +0,0 @@ +-#import "RNCConfig.h" +-#import "RNCConfigModule.h" +- +-@implementation RNCConfigModule +- +-RCT_EXPORT_MODULE() +- +-+ (BOOL)requiresMainQueueSetup +-{ +- return YES; +-} +- +-+ (NSDictionary *)env { +- return RNCConfig.env; +-} +- +-+ (NSString *)envFor: (NSString *)key { +- return [RNCConfig envFor:key]; +-} +- +-- (NSDictionary *)constantsToExport { +- return RNCConfig.env; +-} +- +-@end +diff --git a/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.mm b/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.mm +new file mode 100644 +index 0000000..1cacb65 +--- /dev/null ++++ b/node_modules/react-native-config/ios/ReactNativeConfig/RNCConfigModule.mm +@@ -0,0 +1,37 @@ ++#import "RNCConfig.h" ++#import "RNCConfigModule.h" ++ ++@implementation RNCConfigModule ++ ++RCT_EXPORT_MODULE() ++ +++ (BOOL)requiresMainQueueSetup ++{ ++ return YES; ++} ++ +++ (NSDictionary *)env { ++ return RNCConfig.env; ++} ++ +++ (NSString *)envFor: (NSString *)key { ++ return [RNCConfig envFor:key]; ++} ++ ++- (NSDictionary *)constantsToExport { ++ return @{ @"constants": RNCConfig.env }; ++} ++ ++- (NSDictionary *)getConstants { ++ return self.constantsToExport; ++} ++ ++#ifdef RCT_NEW_ARCH_ENABLED ++- (std::shared_ptr)getTurboModule: ++ (const facebook::react::ObjCTurboModule::InitParams &)params ++{ ++ return std::make_shared(params); ++} ++#endif ++ ++@end +diff --git a/node_modules/react-native-config/package.json b/node_modules/react-native-config/package.json +index b4d1fba..0a018a7 100644 +--- a/node_modules/react-native-config/package.json ++++ b/node_modules/react-native-config/package.json +@@ -26,6 +26,7 @@ + "android/", + "ios/", + "windows/", ++ "codegen/", + "index.js", + "index.d.ts", + "react-native-config.podspec", +@@ -38,11 +39,21 @@ + "semantic-release": "^17.0.4" + }, + "peerDependencies": { ++ "react": "*", ++ "react-native": "*", + "react-native-windows": ">=0.61" + }, + "peerDependenciesMeta": { + "react-native-windows": { + "optional": true + } ++ }, ++ "codegenConfig": { ++ "name": "RNCConfigSpec", ++ "type": "modules", ++ "jsSrcsDir": "./codegen", ++ "android": { ++ "javaPackageName": "com.lugg.RNCConfig" ++ } + } + } +diff --git a/node_modules/react-native-config/react-native-config.podspec b/node_modules/react-native-config/react-native-config.podspec +index 35313d4..56bce4a 100644 +--- a/node_modules/react-native-config/react-native-config.podspec ++++ b/node_modules/react-native-config/react-native-config.podspec +@@ -4,6 +4,8 @@ require 'json' + + package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + ++fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' ++ + Pod::Spec.new do |s| + s.name = 'react-native-config' + s.version = package['version'] +@@ -33,8 +35,27 @@ HOST_PATH="$SRCROOT/../.." + s.default_subspec = 'App' + + s.subspec 'App' do |app| +- app.source_files = 'ios/**/*.{h,m}' +- app.dependency 'React-Core' ++ app.source_files = 'ios/**/*.{h,m,mm}' ++ ++ if fabric_enabled ++ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' ++ ++ app.pod_target_xcconfig = { ++ 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/boost" "$(PODS_ROOT)/boost-for-react-native" "$(PODS_ROOT)/RCT-Folly"', ++ 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', ++ } ++ app.compiler_flags = folly_compiler_flags + ' -DRCT_NEW_ARCH_ENABLED' ++ ++ app.dependency "React" ++ app.dependency "React-RCTFabric" # This is for fabric component ++ app.dependency "React-Codegen" ++ app.dependency "RCT-Folly" ++ app.dependency "RCTRequired" ++ app.dependency "RCTTypeSafety" ++ app.dependency "ReactCommon/turbomodule/core" ++ else ++ app.dependency 'React-Core' ++ end + end + + # Use this subspec for iOS extensions that cannot use React dependency diff --git a/patches/react-native-device-info+10.3.1+001+initial.patch b/patches/react-native-device-info+10.3.1+001+initial.patch new file mode 100644 index 000000000000..819bb3b87e5a --- /dev/null +++ b/patches/react-native-device-info+10.3.1+001+initial.patch @@ -0,0 +1,4 @@ +diff --git a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.m b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm +similarity index 100% +rename from node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.m +rename to node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm diff --git a/patches/react-native-device-info+10.3.1+002+turbomodule.patch b/patches/react-native-device-info+10.3.1+002+turbomodule.patch new file mode 100644 index 000000000000..90b2f7d675f8 --- /dev/null +++ b/patches/react-native-device-info+10.3.1+002+turbomodule.patch @@ -0,0 +1,3500 @@ +diff --git a/node_modules/react-native-device-info/README.md b/node_modules/react-native-device-info/README.md +index 43f5292..962ed46 100644 +--- a/node_modules/react-native-device-info/README.md ++++ b/node_modules/react-native-device-info/README.md +@@ -194,6 +194,7 @@ The example app in this repository shows an example usage of every single API, c + | [isHeadphonesConnected()](#isHeadphonesConnected) | `Promise` | ✅ | ✅ | ❌ | ❌ | + | [isPinOrFingerprintSet()](#ispinorfingerprintset) | `Promise` | ✅ | ✅ | ✅ | ❌ | + | [isTablet()](#istablet) | `boolean` | ✅ | ✅ | ✅ | ❌ | ++| [isDisplayZoomed()](#isdisplayzoomed) | `boolean` | ✅ | ❌ | ❌ | ❌ | + | [isTabletMode()](#istabletmode) | `Promise` | ❌ | ❌ | ✅ | ❌ | + | [supported32BitAbis()](#supported32BitAbis) | `Promise` | ❌ | ✅ | ❌ | ❌ | + | [supported64BitAbis()](#supported64BitAbis) | `Promise` | ❌ | ✅ | ❌ | ❌ | +@@ -1211,6 +1212,19 @@ let isTablet = DeviceInfo.isTablet(); + + --- + ++### isDisplayZoomed() ++ ++Tells if the user changed Display Zoom to Zoomed ++ ++#### Examples ++ ++```js ++let isDisplayZoomed = DeviceInfo.isDisplayZoomed(); ++// true ++``` ++ ++--- ++ + ### isTabletMode() + + Tells if the device is in tablet mode. +diff --git a/node_modules/react-native-device-info/RNDeviceInfo.podspec b/node_modules/react-native-device-info/RNDeviceInfo.podspec +index d07bbad..c7a80fd 100644 +--- a/node_modules/react-native-device-info/RNDeviceInfo.podspec ++++ b/node_modules/react-native-device-info/RNDeviceInfo.podspec +@@ -2,6 +2,8 @@ require 'json' + + package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + ++fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' ++ + Pod::Spec.new do |s| + s.name = "RNDeviceInfo" + s.version = package['version'] +@@ -15,7 +17,13 @@ Pod::Spec.new do |s| + s.tvos.deployment_target = '10.0' + + s.source = { :git => "https://github.com/react-native-device-info/react-native-device-info.git", :tag => "v#{s.version}" } +- s.source_files = "ios/**/*.{h,m}" ++ s.source_files = "ios/**/*.{h,m,mm}" ++ ++ if fabric_enabled ++ install_modules_dependencies(s) ++ else ++ s.platforms = { :ios => "9.0", :tvos => "9.0" } + +- s.dependency 'React-Core' ++ s.dependency "React-Core" ++ end + end +diff --git a/node_modules/react-native-device-info/android/build.gradle b/node_modules/react-native-device-info/android/build.gradle +index de22598..9bfea4b 100644 +--- a/node_modules/react-native-device-info/android/build.gradle ++++ b/node_modules/react-native-device-info/android/build.gradle +@@ -21,7 +21,58 @@ def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback + } + ++ ++def resolveReactNativeDirectory() { ++ // monorepo workaround ++ // react-native can be hoisted or in project's own node_modules ++ def reactNativeFromProjectNodeModules = file("${rootProject.projectDir}/../node_modules/react-native") ++ if (reactNativeFromProjectNodeModules.exists()) { ++ return reactNativeFromProjectNodeModules ++ } ++ ++ def reactNativeFromNodeModulesWithLibrary = file("${projectDir}/../../react-native") ++ if (reactNativeFromNodeModulesWithLibrary.exists()) { ++ return reactNativeFromNodeModulesWithLibrary ++ } ++ ++ throw new Exception( ++ "[react-native-clipboard] Unable to resolve react-native location in " + ++ "node_modules. You should add project extension property (in app/build.gradle) " + ++ "`REACT_NATIVE_NODE_MODULES_DIR` with path to react-native." ++ ) ++} ++ ++def REACT_NATIVE_DIR = resolveReactNativeDirectory() ++ ++def reactProperties = new Properties() ++file("$REACT_NATIVE_DIR/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) } ++ ++def REACT_NATIVE_VERSION = reactProperties.getProperty("VERSION_NAME") ++def REACT_NATIVE_MINOR_VERSION = REACT_NATIVE_VERSION.startsWith("0.0.0-") ? 1000 : REACT_NATIVE_VERSION.split("\\.")[1].toInteger() ++ ++def isNewArchitectureEnabled() { ++ // To opt-in for the New Architecture, you can either: ++ // - Set `newArchEnabled` to true inside the `gradle.properties` file ++ // - Invoke gradle with `-newArchEnabled=true` ++ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} ++ ++if (isNewArchitectureEnabled()) { ++ apply plugin: "com.facebook.react" ++} ++ + android { ++ ++ // Used to override the NDK path/version on internal CI or by allowing ++ // users to customize the NDK path/version from their root project (e.g. for M1 support) ++ if (rootProject.hasProperty("ndkPath")) { ++ ndkPath rootProject.ext.ndkPath ++ } ++ if (rootProject.hasProperty("ndkVersion")) { ++ ndkVersion rootProject.ext.ndkVersion ++ } ++ + compileSdkVersion safeExtGet('compileSdkVersion', 30) + + defaultConfig { +@@ -37,6 +88,14 @@ android { + testOptions { + unitTests.returnDefaultValues = true + } ++ ++ sourceSets.main { ++ java { ++ if (!isNewArchitectureEnabled()) { ++ srcDirs += 'src/paper/java' ++ } ++ } ++ } + } + + repositories { +@@ -49,7 +108,12 @@ repositories { + } + + dependencies { +- implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}" ++ if (isNewArchitectureEnabled() && REACT_NATIVE_MINOR_VERSION < 71) { ++ implementation project(":ReactAndroid") ++ } else { ++ //noinspection GradleDynamicVersion ++ implementation 'com.facebook.react:react-native:+' ++ } + implementation "com.android.installreferrer:installreferrer:${safeExtGet('installReferrerVersion', '1.1.2')}" + def firebaseBomVersion = safeExtGet("firebaseBomVersion", null) + def firebaseIidVersion = safeExtGet('firebaseIidVersion', null) +diff --git a/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfo.java b/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfo.java +deleted file mode 100644 +index e9a08db..0000000 +--- a/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfo.java ++++ /dev/null +@@ -1,39 +0,0 @@ +-package com.learnium.RNDeviceInfo; +- +-import com.facebook.react.ReactPackage; +-import com.facebook.react.bridge.JavaScriptModule; +-import com.facebook.react.bridge.NativeModule; +-import com.facebook.react.bridge.ReactApplicationContext; +-import com.facebook.react.uimanager.ViewManager; +- +-import java.util.ArrayList; +-import java.util.Collections; +-import java.util.List; +- +-import javax.annotation.Nonnull; +- +-@SuppressWarnings("unused") +-public class RNDeviceInfo implements ReactPackage { +- +- @Override +- @Nonnull +- public List createNativeModules(@Nonnull ReactApplicationContext reactContext) { +- List modules = new ArrayList<>(); +- +- modules.add(new RNDeviceModule(reactContext)); +- +- return modules; +- } +- +- // Deprecated RN 0.47 +- public List> createJSModules() { +- return Collections.emptyList(); +- } +- +- @Override +- @Nonnull +- public List createViewManagers(@Nonnull ReactApplicationContext reactContext) { +- return Collections.emptyList(); +- } +- +-} +diff --git a/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfoPackage.java b/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfoPackage.java +new file mode 100644 +index 0000000..e91e5a2 +--- /dev/null ++++ b/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceInfoPackage.java +@@ -0,0 +1,95 @@ ++package com.learnium.RNDeviceInfo; ++ ++import com.facebook.react.TurboReactPackage; ++import com.facebook.react.bridge.NativeModule; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.module.annotations.ReactModule; ++import com.facebook.react.module.annotations.ReactModuleList; ++import com.facebook.react.module.model.ReactModuleInfo; ++import com.facebook.react.module.model.ReactModuleInfoProvider; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; ++import com.facebook.react.uimanager.ViewManager; ++ ++import java.util.ArrayList; ++import java.util.Collections; ++import java.util.HashMap; ++import java.util.List; ++import java.util.Map; ++ ++import javax.annotation.Nonnull; ++ ++@ReactModuleList( ++ nativeModules = { ++ RNDeviceModule.class, ++ }) ++public class RNDeviceInfoPackage extends TurboReactPackage { ++ @Override ++ @Nonnull ++ public List createNativeModules(@Nonnull ReactApplicationContext reactContext) { ++ List modules = new ArrayList<>(); ++ ++ modules.add(new RNDeviceModule(reactContext)); ++ ++ return modules; ++ } ++ ++ @Override ++ public NativeModule getModule(String name, @Nonnull ReactApplicationContext reactContext) { ++ switch (name) { ++ case RNDeviceModule.NAME: ++ return new RNDeviceModule(reactContext); ++ default: ++ return null; ++ } ++ } ++ ++ @Override ++ public ReactModuleInfoProvider getReactModuleInfoProvider() { ++ try { ++ Class reactModuleInfoProviderClass = ++ Class.forName("com.learnium.RNDeviceInfo.RNDeviceInfoPackage$$ReactModuleInfoProvider"); ++ return (ReactModuleInfoProvider) reactModuleInfoProviderClass.newInstance(); ++ } catch (ClassNotFoundException e) { ++ // ReactModuleSpecProcessor does not run at build-time. Create this ReactModuleInfoProvider by ++ // hand. ++ return new ReactModuleInfoProvider() { ++ @Override ++ public Map getReactModuleInfos() { ++ final Map reactModuleInfoMap = new HashMap<>(); ++ ++ Class[] moduleList = ++ new Class[] { ++ RNDeviceModule.class, ++ }; ++ ++ for (Class moduleClass : moduleList) { ++ ReactModule reactModule = moduleClass.getAnnotation(ReactModule.class); ++ ++ reactModuleInfoMap.put( ++ reactModule.name(), ++ new ReactModuleInfo( ++ reactModule.name(), ++ moduleClass.getName(), ++ reactModule.canOverrideExistingModule(), ++ reactModule.needsEagerInit(), ++ reactModule.hasConstants(), ++ reactModule.isCxxModule(), ++ TurboModule.class.isAssignableFrom(moduleClass))); ++ } ++ ++ return reactModuleInfoMap; ++ } ++ }; ++ } catch (InstantiationException | IllegalAccessException e) { ++ throw new RuntimeException( ++ "No ReactModuleInfoProvider for com.learnium.RNDeviceInfo.RNDeviceInfoPackage$$ReactModuleInfoProvider", e); ++ } ++ } ++ ++ @Override ++ @Nonnull ++ public List createViewManagers(@Nonnull ReactApplicationContext reactContext) { ++ return Collections.emptyList(); ++ } ++ ++} +diff --git a/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceModule.java b/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceModule.java +index b01e9d2..9ac1628 100644 +--- a/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceModule.java ++++ b/node_modules/react-native-device-info/android/src/main/java/com/learnium/RNDeviceInfo/RNDeviceModule.java +@@ -20,8 +20,6 @@ import android.os.Environment; + import android.os.PowerManager; + import android.os.StatFs; + import android.os.BatteryManager; +-import android.os.Debug; +-import android.os.Process; + import android.provider.Settings; + import android.webkit.WebSettings; + import android.telephony.TelephonyManager; +@@ -35,7 +33,6 @@ import androidx.annotation.Nullable; + import com.facebook.react.bridge.Arguments; + import com.facebook.react.bridge.ReactApplicationContext; + import com.facebook.react.bridge.ReactContext; +-import com.facebook.react.bridge.ReactContextBaseJavaModule; + import com.facebook.react.bridge.ReactMethod; + import com.facebook.react.bridge.Promise; + import com.facebook.react.bridge.WritableArray; +@@ -66,7 +63,7 @@ import static android.os.BatteryManager.BATTERY_STATUS_FULL; + import static android.provider.Settings.Secure.getString; + + @ReactModule(name = RNDeviceModule.NAME) +-public class RNDeviceModule extends ReactContextBaseJavaModule { ++public class RNDeviceModule extends NativeDeviceInfoModuleSpec { + public static final String NAME = "RNDeviceInfo"; + private final DeviceTypeResolver deviceTypeResolver; + private final DeviceIdResolver deviceIdResolver; +@@ -177,39 +174,13 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + return null; + } + +- @Override +- public Map getConstants() { +- String appVersion, buildNumber, appName; +- +- try { +- appVersion = getPackageInfo().versionName; +- buildNumber = Integer.toString(getPackageInfo().versionCode); +- appName = getReactApplicationContext().getApplicationInfo().loadLabel(getReactApplicationContext().getPackageManager()).toString(); +- } catch (Exception e) { +- appVersion = "unknown"; +- buildNumber = "unknown"; +- appName = "unknown"; +- } +- +- final Map constants = new HashMap<>(); +- +- constants.put("deviceId", Build.BOARD); +- constants.put("bundleId", getReactApplicationContext().getPackageName()); +- constants.put("systemName", "Android"); +- constants.put("systemVersion", Build.VERSION.RELEASE); +- constants.put("appVersion", appVersion); +- constants.put("buildNumber", buildNumber); +- constants.put("isTablet", deviceTypeResolver.isTablet()); +- constants.put("appName", appName); +- constants.put("brand", Build.BRAND); +- constants.put("model", Build.MODEL); +- constants.put("deviceType", deviceTypeResolver.getDeviceType().getValue()); +- +- return constants; ++ @ReactMethod ++ public void addListener(String eventName) { ++ // Keep: Required for RN built in Event Emitter Calls. + } + + @ReactMethod +- public void addListener(String eventName) { ++ public void removeListeners(double count) { + // Keep: Required for RN built in Event Emitter Calls. + } + +@@ -252,7 +223,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + } + + @ReactMethod(isBlockingSynchronousMethod = true) +- public float getFontScaleSync() { return getReactApplicationContext().getResources().getConfiguration().fontScale; } ++ public double getFontScaleSync() { return getReactApplicationContext().getResources().getConfiguration().fontScale; } + @ReactMethod + public void getFontScale(Promise p) { p.resolve(getFontScaleSync()); } + +@@ -265,6 +236,68 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + System.err.println("Unable to determine keyguard status. KeyguardManager was null"); + return false; + } ++ ++ @Override ++ public void isMouseConnected(Promise promise) { ++ promise.reject("DeviceInfo:isMouseConnected", "isMouseConnected is not supported on Android"); ++ } ++ ++ @Override ++ public boolean isMouseConnectedSync() { ++ return false; ++ } ++ ++ @Override ++ public void isKeyboardConnected(Promise promise) { ++ promise.reject("DeviceInfo:isKeyboardConnected", "isKeyboardConnected is not supported on Android"); ++ } ++ ++ @Override ++ public boolean isKeyboardConnectedSync() { ++ return false; ++ } ++ ++ @Override ++ public void isTabletMode(Promise promise) { ++promise.reject("DeviceInfo:isTabletMode", "isTabletMode is not supported on Android"); ++ } ++ ++ @Override ++ public void syncUniqueId(Promise promise) { ++promise.reject("DeviceInfo:syncUniqueId", "syncUniqueId is not supported on Android"); ++ } ++ ++ @Override ++ protected Map getTypedExportedConstants() { ++ String appVersion, buildNumber, appName; ++ ++ try { ++ appVersion = getPackageInfo().versionName; ++ buildNumber = Integer.toString(getPackageInfo().versionCode); ++ appName = getReactApplicationContext().getApplicationInfo().loadLabel(getReactApplicationContext().getPackageManager()).toString(); ++ } catch (Exception e) { ++ appVersion = "unknown"; ++ buildNumber = "unknown"; ++ appName = "unknown"; ++ } ++ ++ final Map constants = new HashMap<>(); ++ ++ constants.put("deviceId", Build.BOARD); ++ constants.put("bundleId", getReactApplicationContext().getPackageName()); ++ constants.put("systemName", "Android"); ++ constants.put("systemVersion", Build.VERSION.RELEASE); ++ constants.put("appVersion", appVersion); ++ constants.put("buildNumber", buildNumber); ++ constants.put("isTablet", deviceTypeResolver.isTablet()); ++ constants.put("appName", appName); ++ constants.put("brand", Build.BRAND); ++ constants.put("model", Build.MODEL); ++ constants.put("deviceType", deviceTypeResolver.getDeviceType().getValue()); ++ ++ return constants; ++ } ++ + @ReactMethod + public void isPinOrFingerprintSet(Promise p) { p.resolve(isPinOrFingerprintSetSync()); } + +@@ -737,6 +770,12 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + + @ReactMethod(isBlockingSynchronousMethod = true) + public String getDeviceSync() { return Build.DEVICE; } ++ ++ @Override ++ public void getDeviceToken(Promise promise) { ++ promise.reject("DeviceInfo:getDeviceToken", "getDeviceToken is not supported on Android"); ++ } ++ + @ReactMethod + public void getDevice(Promise p) { p.resolve(getDeviceSync()); } + +@@ -746,7 +785,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + public void getBuildId(Promise p) { p.resolve(getBuildIdSync()); } + + @ReactMethod(isBlockingSynchronousMethod = true) +- public int getApiLevelSync() { return Build.VERSION.SDK_INT; } ++ public double getApiLevelSync() { return Build.VERSION.SDK_INT; } + @ReactMethod + public void getApiLevel(Promise p) { p.resolve(getApiLevelSync()); } + +@@ -858,11 +897,11 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + public void getBaseOs(Promise p) { p.resolve(getBaseOsSync()); } + + @ReactMethod(isBlockingSynchronousMethod = true) +- public String getPreviewSdkIntSync() { ++ public double getPreviewSdkIntSync() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { +- return Integer.toString(Build.VERSION.PREVIEW_SDK_INT); ++ return Build.VERSION.PREVIEW_SDK_INT; + } +- return "unknown"; ++ return -1; + } + @ReactMethod + public void getPreviewSdkInt(Promise p) { p.resolve(getPreviewSdkIntSync()); } +@@ -889,6 +928,17 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { + return System.getProperty("http.agent"); + } + } ++ ++ @Override ++ public void getBrightness(Promise promise) { ++ promise.reject("DeviceInfo:getBrightness", "getBrightness is not supported on Android"); ++ } ++ ++ @Override ++ public double getBrightnessSync() { ++ return 0; ++ } ++ + @ReactMethod + public void getUserAgent(Promise p) { p.resolve(getUserAgentSync()); } + +diff --git a/node_modules/react-native-device-info/android/src/paper/java/com/learnium/RNDeviceInfo/NativeDeviceInfoModuleSpec.java b/node_modules/react-native-device-info/android/src/paper/java/com/learnium/RNDeviceInfo/NativeDeviceInfoModuleSpec.java +new file mode 100644 +index 0000000..5aad02a +--- /dev/null ++++ b/node_modules/react-native-device-info/android/src/paper/java/com/learnium/RNDeviceInfo/NativeDeviceInfoModuleSpec.java +@@ -0,0 +1,565 @@ ++ ++/** ++ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++ * ++ * Do not edit this file as changes may cause incorrect behavior and will be lost ++ * once the code is regenerated. ++ * ++ * @generated by codegen project: GenerateModuleJavaSpec.js ++ * ++ * @nolint ++ */ ++ ++package com.learnium.RNDeviceInfo; ++ ++import com.facebook.proguard.annotations.DoNotStrip; ++import com.facebook.react.bridge.Promise; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.ReactContextBaseJavaModule; ++import com.facebook.react.bridge.ReactMethod; ++import com.facebook.react.bridge.ReactModuleWithSpec; ++import com.facebook.react.bridge.WritableArray; ++import com.facebook.react.bridge.WritableMap; ++import com.facebook.react.common.build.ReactBuildConfig; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; ++import java.util.Arrays; ++import java.util.HashSet; ++import java.util.Map; ++import java.util.Set; ++import javax.annotation.Nullable; ++ ++public abstract class NativeDeviceInfoModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { ++ public NativeDeviceInfoModuleSpec(ReactApplicationContext reactContext) { ++ super(reactContext); ++ } ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getPowerState(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableMap getPowerStateSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSupported32BitAbis(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableArray getSupported32BitAbisSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSupported64BitAbis(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableArray getSupported64BitAbisSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSupportedAbis(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableArray getSupportedAbisSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSystemManufacturer(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getSystemManufacturerSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getAndroidId(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getAndroidIdSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getApiLevel(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getApiLevelSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getAvailableLocationProviders(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableMap getAvailableLocationProvidersSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getBaseOs(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getBaseOsSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getBatteryLevel(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getBatteryLevelSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getBootloader(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getBootloaderSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getBuildId(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getBuildIdSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getCarrier(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getCarrierSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getCodename(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getCodenameSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getDevice(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getDeviceName(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getDeviceNameSync(); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getDeviceSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getDeviceToken(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getDisplay(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getDisplaySync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getFingerprint(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getFingerprintSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getFirstInstallTime(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getFirstInstallTimeSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getFontScale(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getFontScaleSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getFreeDiskStorage(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getFreeDiskStorageOld(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getFreeDiskStorageSync(); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getFreeDiskStorageOldSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getHardware(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getHardwareSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getHost(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getHostSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getIncremental(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getIncrementalSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getInstallerPackageName(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getInstallerPackageNameSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getInstallReferrer(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getInstallReferrerSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getInstanceId(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getInstanceIdSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getIpAddress(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getIpAddressSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getLastUpdateTime(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getLastUpdateTimeSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getMacAddress(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getMacAddressSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getMaxMemory(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getMaxMemorySync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getPhoneNumber(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getPhoneNumberSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getPreviewSdkInt(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getPreviewSdkIntSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getProduct(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getProductSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSecurityPatch(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getSecurityPatchSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSerialNumber(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getSerialNumberSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getSystemAvailableFeatures(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract WritableArray getSystemAvailableFeaturesSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getTags(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getTagsSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getTotalDiskCapacity(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getTotalDiskCapacityOld(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getTotalDiskCapacitySync(); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getTotalDiskCapacityOldSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getTotalMemory(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getTotalMemorySync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getType(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getTypeSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getUniqueId(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getUniqueIdSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getUsedMemory(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getUsedMemorySync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getUserAgent(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract String getUserAgentSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void getBrightness(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract double getBrightnessSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void hasGms(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean hasGmsSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void hasHms(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean hasHmsSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void hasSystemFeature(String feature, Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean hasSystemFeatureSync(String feature); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isAirplaneMode(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isAirplaneModeSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isBatteryCharging(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isBatteryChargingSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isCameraPresent(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isCameraPresentSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isEmulator(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isEmulatorSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isHeadphonesConnected(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isHeadphonesConnectedSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isLocationEnabled(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isLocationEnabledSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isPinOrFingerprintSet(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isPinOrFingerprintSetSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isMouseConnected(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isMouseConnectedSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isKeyboardConnected(Promise promise); ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ @DoNotStrip ++ public abstract boolean isKeyboardConnectedSync(); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void isTabletMode(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void syncUniqueId(Promise promise); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void addListener(String eventName); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void removeListeners(double count); ++ ++ protected abstract Map getTypedExportedConstants(); ++ ++ @Override ++ @DoNotStrip ++ public final @Nullable Map getConstants() { ++ Map constants = getTypedExportedConstants(); ++ if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) { ++ Set obligatoryFlowConstants = new HashSet<>(Arrays.asList( ++ "appName", ++ "appVersion", ++ "brand", ++ "buildNumber", ++ "bundleId", ++ "deviceId", ++ "deviceType", ++ "isTablet", ++ "model", ++ "systemName", ++ "systemVersion" ++ )); ++ Set optionalFlowConstants = new HashSet<>(Arrays.asList( ++ "isDisplayZoomed" ++ )); ++ Set undeclaredConstants = new HashSet<>(constants.keySet()); ++ undeclaredConstants.removeAll(obligatoryFlowConstants); ++ undeclaredConstants.removeAll(optionalFlowConstants); ++ if (!undeclaredConstants.isEmpty()) { ++ throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants)); ++ } ++ undeclaredConstants = obligatoryFlowConstants; ++ undeclaredConstants.removeAll(constants.keySet()); ++ if (!undeclaredConstants.isEmpty()) { ++ throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants)); ++ } ++ } ++ return constants; ++ } ++} +diff --git a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.h b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.h +index f77b052..01def34 100644 +--- a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.h ++++ b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.h +@@ -9,11 +9,20 @@ + #import + #import + #import ++#ifdef RCT_NEW_ARCH_ENABLED ++#import ++#else + #import ++#endif + #import + #import + +-@interface RNDeviceInfo : RCTEventEmitter ++@interface RNDeviceInfo : RCTEventEmitter ++#ifdef RCT_NEW_ARCH_ENABLED ++ ++#else ++ ++#endif + + @property (nonatomic) float lowBatteryThreshold; + +diff --git a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm +index 67dbd7a..552a5e7 100644 +--- a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm ++++ b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfo.mm +@@ -14,8 +14,9 @@ + #import + #import "RNDeviceInfo.h" + #import "DeviceUID.h" +-#import ++//#import + #import "EnvironmentUtil.h" ++#import "RNDeviceInfoHelper.h" + + #if !(TARGET_OS_TV) + #import +@@ -32,11 +33,6 @@ typedef NS_ENUM(NSInteger, DeviceType) { + + #define DeviceTypeValues [NSArray arrayWithObjects: @"Handset", @"Tablet", @"Tv", @"Desktop", @"unknown", nil] + +-#if !(TARGET_OS_TV) +-@import CoreTelephony; +-@import Darwin.sys.sysctl; +-#endif +- + @implementation RNDeviceInfo + { + bool hasListeners; +@@ -67,6 +63,7 @@ - (NSDictionary *)constantsToExport { + @"brand": @"Apple", + @"model": [self getModel], + @"deviceType": [self getDeviceTypeName], ++ @"isDisplayZoomed": @([self isDisplayZoomed]), + }; + } + +@@ -132,7 +129,7 @@ - (DeviceType) getDeviceType + } + + - (NSDictionary *) getStorageDictionary { +- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); ++ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + return [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: nil]; + } + +@@ -155,10 +152,14 @@ - (NSString *) getDeviceName { + return self.getDeviceName; + } + +-RCT_EXPORT_METHOD(getDeviceName:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getDeviceName:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getDeviceName); + } + ++- (BOOL) isDisplayZoomed { ++ return [UIScreen mainScreen].scale != [UIScreen mainScreen].nativeScale; ++} ++ + - (NSString *) getAppName { + NSString *displayName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]; + NSString *bundleName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]; +@@ -324,42 +325,22 @@ - (NSString *) getModel { + } + + - (NSString *) getCarrier { +-#if (TARGET_OS_TV || TARGET_OS_MACCATALYST) +- return @"unknown"; +-#else +- CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init]; +- CTCarrier *carrier = [netinfo subscriberCellularProvider]; +- if (carrier.carrierName != nil) { +- return carrier.carrierName; +- } +- return @"unknown"; +-#endif ++ return [RNDeviceInfoHelper getCarrier]; + } + + RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getCarrierSync) { + return self.getCarrier; + } + +-RCT_EXPORT_METHOD(getCarrier:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getCarrier:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getCarrier); + } + + - (NSString *) getBuildId { +-#if TARGET_OS_TV +- return @"unknown"; +-#else +- size_t bufferSize = 64; +- NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; +- int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); +- if (status != 0) { +- return @"unknown"; +- } +- NSString* buildId = [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; +- return buildId; +-#endif ++ return [RNDeviceInfoHelper getBuildId]; + } + +-RCT_EXPORT_METHOD(getBuildId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getBuildId:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getBuildId); + } + +@@ -375,11 +356,11 @@ - (NSString *) uniqueId { + return self.uniqueId; + } + +-RCT_EXPORT_METHOD(getUniqueId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getUniqueId:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.uniqueId); + } + +-RCT_EXPORT_METHOD(syncUniqueId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(syncUniqueId:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve([DeviceUID syncUid]); + } + +@@ -407,7 +388,7 @@ - (BOOL) isEmulator { + return @(self.isEmulator); + } + +-RCT_EXPORT_METHOD(isEmulator:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(isEmulator:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.isEmulator)); + } + +@@ -419,28 +400,29 @@ - (BOOL) isTablet { + } + } + +-RCT_EXPORT_METHOD(getDeviceToken:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getDeviceToken:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + if (@available(iOS 11.0, *)) { + if (TARGET_IPHONE_SIMULATOR) { + reject(@"NOT AVAILABLE", @"Device check is only available for physical devices", nil); + return; + } + +- DCDevice *device = DCDevice.currentDevice; +- +- if ([device isSupported]) { +- [DCDevice.currentDevice generateTokenWithCompletionHandler:^(NSData * _Nullable token, NSError * _Nullable error) { +- if (error) { +- reject(@"ERROR GENERATING TOKEN", error.localizedDescription, error); +- return; +- } +- +- resolve([token base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]); +- }]; +- } else { +- reject(@"NOT SUPPORTED", @"Device check is not supported by this device", nil); +- return; +- } ++ reject(@"NOT SUPPORTED", @"Device check is not supported by this device", nil); ++// DCDevice *device = DCDevice.currentDevice; ++// ++// if ([device isSupported]) { ++// [DCDevice.currentDevice generateTokenWithCompletionHandler:^(NSData * _Nullable token, NSError * _Nullable error) { ++// if (error) { ++// reject(@"ERROR GENERATING TOKEN", error.localizedDescription, error); ++// return; ++// } ++// ++// resolve([token base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]); ++// }]; ++// } else { ++// reject(@"NOT SUPPORTED", @"Device check is not supported by this device", nil); ++// return; ++// } + } else { + reject(@"NOT AVAILABLE", @"Device check is only available for iOS > 11", nil); + return; +@@ -484,7 +466,7 @@ - (float) getFontScale { + return @(self.getFontScale); + } + +-RCT_EXPORT_METHOD(getFontScale:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getFontScale:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getFontScale)); + } + +@@ -496,7 +478,7 @@ - (double) getTotalMemory { + return @(self.getTotalMemory); + } + +-RCT_EXPORT_METHOD(getTotalMemory:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getTotalMemory:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getTotalMemory)); + } + +@@ -515,7 +497,7 @@ - (double) getTotalDiskCapacity { + return @(self.getTotalDiskCapacity); + } + +-RCT_EXPORT_METHOD(getTotalDiskCapacity:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getTotalDiskCapacity:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getTotalDiskCapacity)); + } + +@@ -534,7 +516,7 @@ - (double) getFreeDiskStorage { + return @(self.getFreeDiskStorage); + } + +-RCT_EXPORT_METHOD(getFreeDiskStorage:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getFreeDiskStorage:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getFreeDiskStorage)); + } + +@@ -553,7 +535,7 @@ - (NSArray *) getSupportedAbis { + return self.getSupportedAbis; + } + +-RCT_EXPORT_METHOD(getSupportedAbis:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getSupportedAbis:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getSupportedAbis); + } + +@@ -602,7 +584,7 @@ - (NSString *) getIpAddress { + return self.getIpAddress; + } + +-RCT_EXPORT_METHOD(getIpAddress:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getIpAddress:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getIpAddress); + } + +@@ -619,7 +601,7 @@ - (BOOL) isPinOrFingerprintSet { + return @(self.isPinOrFingerprintSet); + } + +-RCT_EXPORT_METHOD(isPinOrFingerprintSet:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(isPinOrFingerprintSet:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.isPinOrFingerprintSet)); + } + +@@ -688,7 +670,7 @@ - (NSDictionary *) powerState { + return self.powerState; + } + +-RCT_EXPORT_METHOD(getPowerState:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getPowerState:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.powerState); + } + +@@ -704,7 +686,7 @@ - (float) getBatteryLevel { + return @(self.getBatteryLevel); + } + +-RCT_EXPORT_METHOD(getBatteryLevel:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getBatteryLevel:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getBatteryLevel)); + } + +@@ -716,7 +698,7 @@ - (BOOL) isBatteryCharging { + return @(self.isBatteryCharging); + } + +-RCT_EXPORT_METHOD(isBatteryCharging:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(isBatteryCharging:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.isBatteryCharging)); + } + +@@ -728,7 +710,7 @@ - (BOOL) isLocationEnabled { + return @(self.isLocationEnabled); + } + +-RCT_EXPORT_METHOD(isLocationEnabled:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(isLocationEnabled:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.isLocationEnabled)); + } + +@@ -752,7 +734,7 @@ - (BOOL) isHeadphonesConnected { + return @(self.isHeadphonesConnected); + } + +-RCT_EXPORT_METHOD(isHeadphonesConnected:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(isHeadphonesConnected:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.isHeadphonesConnected)); + } + +@@ -770,7 +752,7 @@ - (unsigned long) getUsedMemory { + return (unsigned long)info.resident_size; + } + +-RCT_EXPORT_METHOD(getUsedMemory:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getUsedMemory:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + unsigned long usedMemory = self.getUsedMemory; + if (usedMemory == -1) { + reject(@"fetch_error", @"task_info failed", nil); +@@ -783,7 +765,7 @@ - (unsigned long) getUsedMemory { + return @(self.getUsedMemory); + } + +-RCT_EXPORT_METHOD(getUserAgent:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getUserAgent:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + #if TARGET_OS_TV + reject(@"not_available_error", @"not available on tvOS", nil); + #else +@@ -827,7 +809,7 @@ - (NSDictionary *) getAvailableLocationProviders { + return self.getAvailableLocationProviders; + } + +-RCT_EXPORT_METHOD(getAvailableLocationProviders:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getAvailableLocationProviders:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getAvailableLocationProviders); + } + +@@ -837,7 +819,7 @@ - (NSDictionary *) getAvailableLocationProviders { + return [EnvironmentValues objectAtIndex:[EnvironmentUtil currentAppEnvironment]]; + } + +-RCT_EXPORT_METHOD(getInstallerPackageName:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getInstallerPackageName:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve([EnvironmentValues objectAtIndex:[EnvironmentUtil currentAppEnvironment]]); + } + +@@ -853,7 +835,7 @@ - (NSNumber *) getBrightness { + return self.getBrightness; + } + +-RCT_EXPORT_METHOD(getBrightness:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getBrightness:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(self.getBrightness); + } + +@@ -861,10 +843,415 @@ - (NSNumber *) getBrightness { + return @(self.getFirstInstallTime); + } + +-RCT_EXPORT_METHOD(getFirstInstallTime:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { ++RCT_EXPORT_METHOD(getFirstInstallTime:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + resolve(@(self.getFirstInstallTime)); + } + ++- (void)getAndroidId:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getAndroidId", @"getAndroidId is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getAndroidIdSync { ++ RCTLogError(@"DeviceInfo:getAndroidIdSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getApiLevel:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getApiLevel", @"getApiLevel is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getApiLevelSync { ++ RCTLogError(@"DeviceInfo:getApiLevelSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getBaseOs:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getBaseOs", @"getBaseOs is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getBaseOsSync { ++ RCTLogError(@"DeviceInfo:getBaseOsSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getBootloader:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getBootloader", @"getBootloader is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getBootloaderSync { ++ RCTLogError(@"DeviceInfo:getBootloaderSync is not supported on iOS"); ++ return nil; ++} ++ ++- (void)getCodename:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getCodename", @"getCodename is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getCodenameSync { ++ RCTLogError(@"DeviceInfo:getCodenameSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (NSDictionary *)getConstants { ++ return [self constantsToExport]; ++} ++ ++ ++- (void)getDevice:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getDevice", @"getDevice is not supported on iOS", nil); ++} ++ ++- (NSString *)getDeviceSync { ++ RCTLogError(@"DeviceInfo:getDeviceSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getDisplay:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getDisplay", @"getDisplay is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getDisplaySync { ++ RCTLogError(@"DeviceInfo:getDisplaySync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getFingerprint:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getFingerprint", @"getFingerprint is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getFingerprintSync { ++ RCTLogError(@"DeviceInfo:getFingerprintSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getFreeDiskStorageOld:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getFreeDiskStorageOld", @"getFreeDiskStorageOld is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getFreeDiskStorageOldSync { ++ RCTLogError(@"DeviceInfo:getFreeDiskStorageOldSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getHardware:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getHardware", @"getHardware is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getHardwareSync { ++ RCTLogError(@"DeviceInfo:getHardwareSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getHost:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getHost", @"getHost is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getHostSync { ++ RCTLogError(@"DeviceInfo:getHostSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getIncremental:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getIncremental", @"getIncremental is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getIncrementalSync { ++ RCTLogError(@"DeviceInfo:getIncrementalSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getInstallReferrer:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getInstallReferrer", @"getInstallReferrer is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getInstallReferrerSync { ++ RCTLogError(@"DeviceInfo:getInstallReferrerSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getInstanceId:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getInstanceId", @"getInstanceId is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getInstanceIdSync { ++ RCTLogError(@"DeviceInfo:getInstanceIdSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getLastUpdateTime:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getLastUpdateTime", @"getLastUpdateTime is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getLastUpdateTimeSync { ++ RCTLogError(@"DeviceInfo:getLastUpdateTimeSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getMacAddress:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getMacAddress", @"getMacAddress is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getMacAddressSync { ++ RCTLogError(@"DeviceInfo:getMacAddressSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getMaxMemory:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getMaxMemory", @"getMaxMemory is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getMaxMemorySync { ++ RCTLogError(@"DeviceInfo:getMaxMemorySync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getPhoneNumber:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getPhoneNumber", @"getPhoneNumber is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getPhoneNumberSync { ++ RCTLogError(@"DeviceInfo:getPhoneNumberSync is not supported on iOS"); ++ return nil; ++} ++ ++- (void)getPreviewSdkInt:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getPreviewSdkInt", @"getPreviewSdkInt is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getPreviewSdkIntSync { ++ RCTLogError(@"DeviceInfo:getPreviewSdkIntSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getProduct:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getProduct", @"getProduct is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getProductSync { ++ RCTLogError(@"DeviceInfo:getProductSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getSecurityPatch:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSecurityPatch", @"getSecurityPatch is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getSecurityPatchSync { ++ RCTLogError(@"DeviceInfo:getSecurityPatchSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getSerialNumber:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSerialNumber", @"getSerialNumber is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getSerialNumberSync { ++ RCTLogError(@"DeviceInfo:getSerialNumberSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getSupported32BitAbis:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSupported32BitAbis", @"getSupported32BitAbis is not supported on iOS", nil); ++} ++ ++ ++- (NSArray *)getSupported32BitAbisSync { ++ RCTLogError(@"DeviceInfo:getSupported32BitAbisSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getSupported64BitAbis:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSupported64BitAbis", @"getSupported64BitAbis is not supported on iOS", nil); ++} ++ ++ ++- (NSArray *)getSupported64BitAbisSync { ++ RCTLogError(@"DeviceInfo:getSupported64BitAbisSync is not supported on iOS"); ++ return nil; ++} ++ ++- (void)getSystemAvailableFeatures:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSystemAvailableFeatures", @"getSystemAvailableFeatures is not supported on iOS", nil); ++} ++ ++ ++- (NSArray *)getSystemAvailableFeaturesSync { ++ RCTLogError(@"DeviceInfo:getSystemAvailableFeaturesSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getSystemManufacturer:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getSystemManufacturer", @"getSystemManufacturer is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getSystemManufacturerSync { ++ RCTLogError(@"DeviceInfo:getSystemManufacturerSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getTags:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getTags", @"getTags is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getTagsSync { ++ RCTLogError(@"DeviceInfo:getTagsSync is not supported on iOS"); ++ return nil; ++} ++ ++- (void)getTotalDiskCapacityOld:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getTotalDiskCapacityOld", @"getTotalDiskCapacityOld is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)getTotalDiskCapacityOldSync { ++ RCTLogError(@"DeviceInfo:getTotalDiskCapacityOldSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)getType:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:getType", @"getType is not supported on iOS", nil); ++} ++ ++ ++- (NSString *)getTypeSync { ++ RCTLogError(@"DeviceInfo:getTypeSync is not supported on iOS"); ++ return nil; ++} ++ ++- (NSString *)getUserAgentSync { ++ RCTLogError(@"DeviceInfo:getUserAgentSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)hasGms:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:hasGms", @"hasGms is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)hasGmsSync { ++ RCTLogError(@"DeviceInfo:hasGmsSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)hasHms:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:hasHms", @"hasHms is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)hasHmsSync { ++ RCTLogError(@"DeviceInfo:hasHmsSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)hasSystemFeature:(NSString *)feature resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:hasSystemFeature", @"hasSystemFeature is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)hasSystemFeatureSync:(NSString *)feature { ++ RCTLogError(@"DeviceInfo:hasSystemFeatureSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)isAirplaneMode:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:isAirplaneMode", @"isAirplaneMode is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)isAirplaneModeSync { ++ RCTLogError(@"DeviceInfo:isAirplaneModeSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)isCameraPresent:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:isCameraPresent", @"isCameraPresent is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)isCameraPresentSync { ++ RCTLogError(@"DeviceInfo:isCameraPresentSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)isKeyboardConnected:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:isKeyboardConnected", @"isKeyboardConnected is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)isKeyboardConnectedSync { ++ RCTLogError(@"DeviceInfo:isKeyboardConnectedSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)isMouseConnected:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:isMouseConnected", @"isMouseConnected is not supported on iOS", nil); ++} ++ ++ ++- (NSNumber *)isMouseConnectedSync { ++ RCTLogError(@"DeviceInfo:isMouseConnectedSync is not supported on iOS"); ++ return nil; ++} ++ ++ ++- (void)isTabletMode:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { ++ reject(@"DeviceInfo:isTabletMode", @"isTabletMode is not supported on iOS", nil); ++} ++ + - (long long) getFirstInstallTime { + NSURL* urlToDocumentsFolder = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; + NSError *error; +@@ -879,4 +1266,12 @@ - (void)dealloc + [[NSNotificationCenter defaultCenter] removeObserver:self]; + } + ++#ifdef RCT_NEW_ARCH_ENABLED ++- (std::shared_ptr)getTurboModule: ++ (const facebook::react::ObjCTurboModule::InitParams &)params ++{ ++ return std::make_shared(params); ++} ++#endif ++ + @end +diff --git a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.h b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.h +new file mode 100644 +index 0000000..71e7a26 +--- /dev/null ++++ b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.h +@@ -0,0 +1,6 @@ ++#import ++ ++@interface RNDeviceInfoHelper : NSObject +++ (NSString *)getCarrier; +++ (NSString *)getBuildId; ++@end +diff --git a/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.m b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.m +new file mode 100644 +index 0000000..398bc04 +--- /dev/null ++++ b/node_modules/react-native-device-info/ios/RNDeviceInfo/RNDeviceInfoHelper.m +@@ -0,0 +1,38 @@ ++#import "RNDeviceInfoHelper.h" ++ ++#if !(TARGET_OS_TV) ++@import CoreTelephony; ++@import Darwin.sys.sysctl; ++#endif ++ ++@implementation RNDeviceInfoHelper ++ +++ (NSString *)getCarrier { ++#if (TARGET_OS_TV || TARGET_OS_MACCATALYST) ++ return @"unknown"; ++#else ++ CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init]; ++ CTCarrier *carrier = [netinfo subscriberCellularProvider]; ++ if (carrier.carrierName != nil) { ++ return carrier.carrierName; ++ } ++ return @"unknown"; ++#endif ++} ++ +++ (NSString *)getBuildId { ++#if TARGET_OS_TV ++ return @"unknown"; ++#else ++ size_t bufferSize = 64; ++ NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; ++ int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); ++ if (status != 0) { ++ return @"unknown"; ++ } ++ NSString* buildId = [[NSString alloc] initWithCString:(const char *)buffer.mutableBytes encoding:NSUTF8StringEncoding]; ++ return buildId; ++#endif ++} ++ ++@end +diff --git a/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js b/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js +new file mode 100644 +index 0000000..f5d7b6c +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js +@@ -0,0 +1,13 @@ ++"use strict"; ++ ++Object.defineProperty(exports, "__esModule", { ++ value: true ++}); ++exports.default = void 0; ++ ++var _reactNative = require("react-native"); ++ ++var _default = _reactNative.TurboModuleRegistry.get('RNDeviceInfo'); ++ ++exports.default = _default; ++//# sourceMappingURL=NativeDeviceInfoModule.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js.map b/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js.map +new file mode 100644 +index 0000000..e0d9c9d +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/commonjs/fabric/NativeDeviceInfoModule.js.map +@@ -0,0 +1 @@ ++{"version":3,"sources":["NativeDeviceInfoModule.ts"],"names":["TurboModuleRegistry","getEnforcing"],"mappings":";;;;;;;AAAA;;eAuJeA,iCAAoBC,YAApB,CAAuC,cAAvC,C","sourcesContent":["import { TurboModuleRegistry, TurboModule } from 'react-native';\n\nexport interface Spec extends TurboModule {\n getPowerState: () => Promise<{\n batteryLevel: number;\n batteryState: string;\n lowPowerMode: boolean;\n }>;\n getPowerStateSync: () => {\n batteryLevel: number;\n batteryState: string;\n lowPowerMode: boolean;\n }; // should be PowerState\n getSupported32BitAbis: () => Promise;\n getSupported32BitAbisSync: () => string[];\n getSupported64BitAbis: () => Promise;\n getSupported64BitAbisSync: () => string[];\n getSupportedAbis: () => Promise;\n getSupportedAbisSync: () => string[];\n getSystemManufacturer: () => Promise;\n getSystemManufacturerSync: () => string;\n getAndroidId: () => Promise;\n getAndroidIdSync: () => string;\n getApiLevel: () => Promise;\n getApiLevelSync: () => number;\n getAvailableLocationProviders: () => Promise;\n getAvailableLocationProvidersSync: () => Object; // should be LocationProviderInfo\n getBaseOs: () => Promise;\n getBaseOsSync: () => string;\n getBatteryLevel: () => Promise;\n getBatteryLevelSync: () => number;\n getBootloader: () => Promise;\n getBootloaderSync: () => string;\n getBuildId: () => Promise;\n getBuildIdSync: () => string;\n getCarrier: () => Promise;\n getCarrierSync: () => string;\n getCodename: () => Promise;\n getCodenameSync: () => string;\n getDevice: () => Promise;\n getDeviceName: () => Promise;\n getDeviceNameSync: () => string;\n getDeviceSync: () => string;\n getDeviceToken: () => Promise;\n getDisplay: () => Promise;\n getDisplaySync: () => string;\n getFingerprint: () => Promise;\n getFingerprintSync: () => string;\n getFirstInstallTime: () => Promise;\n getFirstInstallTimeSync: () => number;\n getFontScale: () => Promise;\n getFontScaleSync: () => number;\n getFreeDiskStorage: () => Promise;\n getFreeDiskStorageOld: () => Promise;\n getFreeDiskStorageSync: () => number;\n getFreeDiskStorageOldSync: () => number;\n getHardware: () => Promise;\n getHardwareSync: () => string;\n getHost: () => Promise;\n getHostSync: () => string;\n getIncremental: () => Promise;\n getIncrementalSync: () => string;\n getInstallerPackageName: () => Promise;\n getInstallerPackageNameSync: () => string;\n getInstallReferrer: () => Promise;\n getInstallReferrerSync: () => string;\n getInstanceId: () => Promise;\n getInstanceIdSync: () => string;\n getIpAddress: () => Promise;\n getIpAddressSync: () => string;\n getLastUpdateTime: () => Promise;\n getLastUpdateTimeSync: () => number;\n getMacAddress: () => Promise;\n getMacAddressSync: () => string;\n getMaxMemory: () => Promise;\n getMaxMemorySync: () => number;\n getPhoneNumber: () => Promise;\n getPhoneNumberSync: () => string;\n getPreviewSdkInt: () => Promise;\n getPreviewSdkIntSync: () => number;\n getProduct: () => Promise;\n getProductSync: () => string;\n getSecurityPatch: () => Promise;\n getSecurityPatchSync: () => string;\n getSerialNumber: () => Promise;\n getSerialNumberSync: () => string;\n getSystemAvailableFeatures: () => Promise;\n getSystemAvailableFeaturesSync: () => string[];\n getTags: () => Promise;\n getTagsSync: () => string;\n getTotalDiskCapacity: () => Promise;\n getTotalDiskCapacityOld: () => Promise;\n getTotalDiskCapacitySync: () => number;\n getTotalDiskCapacityOldSync: () => number;\n getTotalMemory: () => Promise;\n getTotalMemorySync: () => number;\n getType: () => Promise;\n getTypeSync: () => string;\n getUniqueId: () => Promise;\n getUniqueIdSync: () => string;\n getUsedMemory: () => Promise;\n getUsedMemorySync: () => number;\n getUserAgent: () => Promise;\n getUserAgentSync: () => string;\n getBrightness: () => Promise;\n getBrightnessSync: () => number;\n hasGms: () => Promise;\n hasGmsSync: () => boolean;\n hasHms: () => Promise;\n hasHmsSync: () => boolean;\n hasSystemFeature: (feature: string) => Promise;\n hasSystemFeatureSync: (feature: string) => boolean;\n isAirplaneMode: () => Promise;\n isAirplaneModeSync: () => boolean;\n isBatteryCharging: () => Promise;\n isBatteryChargingSync: () => boolean;\n isCameraPresent: () => Promise;\n isCameraPresentSync: () => boolean;\n isEmulator: () => Promise;\n isEmulatorSync: () => boolean;\n isHeadphonesConnected: () => Promise;\n isHeadphonesConnectedSync: () => boolean;\n isLocationEnabled: () => Promise;\n isLocationEnabledSync: () => boolean;\n isPinOrFingerprintSet: () => Promise;\n isPinOrFingerprintSetSync: () => boolean;\n isMouseConnected: () => Promise;\n isMouseConnectedSync: () => boolean;\n isKeyboardConnected: () => Promise;\n isKeyboardConnectedSync: () => boolean;\n isTabletMode: () => Promise;\n syncUniqueId: () => Promise;\n\n addListener(eventName: string): void;\n removeListeners(count: number): void;\n getConstants(): {\n appName: string;\n appVersion: string;\n brand: string;\n buildNumber: string;\n bundleId: string;\n deviceId: string;\n deviceType: string;\n isTablet: boolean;\n isDisplayZoomed?: boolean;\n model: string;\n systemName: string;\n systemVersion: string;\n };\n}\n\nexport default TurboModuleRegistry.getEnforcing('RNDeviceInfo');\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/index.js b/node_modules/react-native-device-info/lib/commonjs/index.js +index b305e00..46d3643 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/index.js ++++ b/node_modules/react-native-device-info/lib/commonjs/index.js +@@ -3,34 +3,43 @@ + Object.defineProperty(exports, "__esModule", { + value: true + }); +-exports.syncUniqueId = syncUniqueId; ++exports.getDeviceSync = exports.getDeviceNameSync = exports.getDeviceName = exports.getDeviceId = exports.getDevice = exports.getCodenameSync = exports.getCodename = exports.getCarrierSync = exports.getCarrier = exports.getBundleId = exports.getBuildNumber = exports.getBuildIdSync = exports.getBuildId = exports.getBrightnessSync = exports.getBrightness = exports.getBrand = exports.getBootloaderSync = exports.getBootloader = exports.getBatteryLevelSync = exports.getBatteryLevel = exports.getBaseOsSync = exports.getBaseOs = exports.getAvailableLocationProvidersSync = exports.getAvailableLocationProviders = exports.getApplicationName = exports.getApiLevelSync = exports.getApiLevel = exports.getAndroidIdSync = exports.getAndroidId = exports.default = void 0; ++exports.getDeviceToken = getDeviceToken; ++exports.getFreeDiskStorage = exports.getFontScaleSync = exports.getFontScale = exports.getFirstInstallTimeSync = exports.getFirstInstallTime = exports.getFingerprintSync = exports.getFingerprint = exports.getDisplaySync = exports.getDisplay = exports.getDeviceTypeSync = exports.getDeviceType = void 0; ++exports.getFreeDiskStorageOld = getFreeDiskStorageOld; ++exports.getFreeDiskStorageOldSync = getFreeDiskStorageOldSync; ++exports.getLastUpdateTimeSync = exports.getLastUpdateTime = exports.getIpAddressSync = exports.getIpAddress = exports.getInstanceIdSync = exports.getInstanceId = exports.getInstallerPackageNameSync = exports.getInstallerPackageName = exports.getInstallReferrerSync = exports.getInstallReferrer = exports.getIncrementalSync = exports.getIncremental = exports.getHostSync = exports.getHost = exports.getHardwareSync = exports.getHardware = exports.getFreeDiskStorageSync = void 0; + exports.getMacAddress = getMacAddress; + exports.getMacAddressSync = getMacAddressSync; ++exports.getProductSync = exports.getProduct = exports.getPreviewSdkIntSync = exports.getPreviewSdkInt = exports.getPowerStateSync = exports.getPowerState = exports.getPhoneNumberSync = exports.getPhoneNumber = exports.getModel = exports.getMaxMemorySync = exports.getMaxMemory = exports.getManufacturerSync = exports.getManufacturer = void 0; + exports.getReadableVersion = getReadableVersion; +-exports.hasNotch = hasNotch; +-exports.hasDynamicIsland = hasDynamicIsland; ++exports.getTotalDiskCapacity = exports.getTagsSync = exports.getTags = exports.getSystemVersion = exports.getSystemName = exports.getSystemAvailableFeaturesSync = exports.getSystemAvailableFeatures = exports.getSerialNumberSync = exports.getSerialNumber = exports.getSecurityPatchSync = exports.getSecurityPatch = void 0; + exports.getTotalDiskCapacityOld = getTotalDiskCapacityOld; + exports.getTotalDiskCapacityOldSync = getTotalDiskCapacityOldSync; +-exports.getFreeDiskStorageOld = getFreeDiskStorageOld; +-exports.getFreeDiskStorageOldSync = getFreeDiskStorageOldSync; +-exports.isLandscape = isLandscape; +-exports.isLandscapeSync = isLandscapeSync; ++exports.getUserAgent = exports.getUsedMemorySync = exports.getUsedMemory = exports.getUniqueIdSync = exports.getUniqueId = exports.getTypeSync = exports.getType = exports.getTotalMemorySync = exports.getTotalMemory = exports.getTotalDiskCapacitySync = void 0; ++exports.getVersion = exports.getUserAgentSync = exports.getUserAgent = exports.getUsedMemorySync = exports.getUsedMemory = exports.getUniqueIdSync = exports.getUniqueId = exports.getTypeSync = exports.getType = exports.getTotalMemorySync = exports.getTotalMemory = exports.getTotalDiskCapacitySync = void 0; ++exports.hasDynamicIsland = hasDynamicIsland; ++exports.hasHmsSync = exports.hasHms = exports.hasGmsSync = exports.hasGms = void 0; ++exports.hasNotch = hasNotch; + exports.hasSystemFeature = hasSystemFeature; + exports.hasSystemFeatureSync = hasSystemFeatureSync; ++exports.isKeyboardConnectedSync = exports.isKeyboardConnected = exports.isHeadphonesConnectedSync = exports.isHeadphonesConnected = exports.isEmulatorSync = exports.isEmulator = exports.isDisplayZoomed = exports.isCameraPresentSync = exports.isCameraPresent = exports.isBatteryChargingSync = exports.isBatteryCharging = exports.isAirplaneModeSync = exports.isAirplaneMode = void 0; ++exports.isLandscape = isLandscape; ++exports.isLandscapeSync = isLandscapeSync; ++exports.isLocationEnabledSync = exports.isLocationEnabled = void 0; + exports.isLowBatteryLevel = isLowBatteryLevel; +-exports.getDeviceToken = getDeviceToken; ++exports.supportedAbisSync = exports.supportedAbis = exports.supported64BitAbisSync = exports.supported64BitAbis = exports.supported32BitAbisSync = exports.supported32BitAbis = exports.isTabletMode = exports.isTablet = exports.isPinOrFingerprintSetSync = exports.isPinOrFingerprintSet = exports.isMouseConnectedSync = exports.isMouseConnected = void 0; ++exports.syncUniqueId = syncUniqueId; + exports.useBatteryLevel = useBatteryLevel; + exports.useBatteryLevelIsLow = useBatteryLevelIsLow; +-exports.usePowerState = usePowerState; +-exports.useIsHeadphonesConnected = useIsHeadphonesConnected; +-exports.useFirstInstallTime = useFirstInstallTime; ++exports.useBrightness = useBrightness; + exports.useDeviceName = useDeviceName; ++exports.useFirstInstallTime = useFirstInstallTime; + exports.useHasSystemFeature = useHasSystemFeature; + exports.useIsEmulator = useIsEmulator; ++exports.useIsHeadphonesConnected = useIsHeadphonesConnected; + exports.useManufacturer = useManufacturer; +-exports.useBrightness = useBrightness; +-exports.isAirplaneModeSync = exports.isAirplaneMode = exports.isBatteryChargingSync = exports.isBatteryCharging = exports.getPowerStateSync = exports.getPowerState = exports.getBatteryLevelSync = exports.getBatteryLevel = exports.getFreeDiskStorageSync = exports.getFreeDiskStorage = exports.getTotalDiskCapacitySync = exports.getTotalDiskCapacity = exports.getMaxMemorySync = exports.getMaxMemory = exports.getTotalMemorySync = exports.getTotalMemory = exports.getCarrierSync = exports.getCarrier = exports.getPhoneNumberSync = exports.getPhoneNumber = exports.getLastUpdateTimeSync = exports.getLastUpdateTime = exports.getInstallReferrerSync = exports.getInstallReferrer = exports.getFirstInstallTimeSync = exports.getFirstInstallTime = exports.hasHmsSync = exports.hasHms = exports.hasGmsSync = exports.hasGms = exports.isPinOrFingerprintSetSync = exports.isPinOrFingerprintSet = exports.isTablet = exports.isEmulatorSync = exports.isEmulator = exports.getIncrementalSync = exports.getIncremental = exports.getCodenameSync = exports.getCodename = exports.getSecurityPatchSync = exports.getSecurityPatch = exports.getPreviewSdkIntSync = exports.getPreviewSdkInt = exports.getBaseOsSync = exports.getBaseOs = exports.getTypeSync = exports.getType = exports.getTagsSync = exports.getTags = exports.getProductSync = exports.getProduct = exports.getHostSync = exports.getHost = exports.getHardwareSync = exports.getHardware = exports.getFingerprintSync = exports.getFingerprint = exports.getDisplaySync = exports.getDisplay = exports.getDeviceSync = exports.getDevice = exports.getBootloaderSync = exports.getBootloader = exports.getFontScaleSync = exports.getFontScale = exports.getUserAgentSync = exports.getUserAgent = exports.getUsedMemorySync = exports.getUsedMemory = exports.getDeviceNameSync = exports.getDeviceName = exports.getVersion = exports.getBuildNumber = exports.getApplicationName = exports.getInstallerPackageNameSync = exports.getInstallerPackageName = exports.getBundleId = exports.getApiLevelSync = exports.getApiLevel = exports.getBuildIdSync = exports.getBuildId = exports.getSystemVersion = exports.getSystemName = exports.getBrand = exports.getModel = exports.getManufacturerSync = exports.getManufacturer = exports.getDeviceId = exports.isCameraPresentSync = exports.isCameraPresent = exports.getIpAddressSync = exports.getIpAddress = exports.getAndroidIdSync = exports.getAndroidId = exports.getSerialNumberSync = exports.getSerialNumber = exports.getInstanceIdSync = exports.getInstanceId = exports.getUniqueIdSync = exports.getUniqueId = void 0; +-exports.default = exports.getBrightnessSync = exports.getBrightness = exports.getAvailableLocationProvidersSync = exports.getAvailableLocationProviders = exports.isTabletMode = exports.isKeyboardConnectedSync = exports.isKeyboardConnected = exports.isMouseConnectedSync = exports.isMouseConnected = exports.isHeadphonesConnectedSync = exports.isHeadphonesConnected = exports.isLocationEnabledSync = exports.isLocationEnabled = exports.getSystemAvailableFeaturesSync = exports.getSystemAvailableFeatures = exports.supported64BitAbisSync = exports.supported64BitAbis = exports.supported32BitAbisSync = exports.supported32BitAbis = exports.supportedAbisSync = exports.supportedAbis = exports.getDeviceTypeSync = exports.getDeviceType = void 0; ++exports.usePowerState = usePowerState; + + var _react = require("react"); + +@@ -48,6 +57,16 @@ var _supportedPlatformInfo = require("./internal/supported-platform-info"); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + ++let constants; ++ ++function getConstants() { ++ if (constants === undefined) { ++ constants = _nativeInterface.default.getConstants(); ++ } ++ ++ return constants; ++} ++ + const [getUniqueId, getUniqueIdSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ + memoKey: 'uniqueId', + supportedPlatforms: ['android', 'ios', 'windows'], +@@ -136,7 +155,7 @@ function getMacAddressSync() { + const getDeviceId = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ + defaultValue: 'unknown', + memoKey: 'deviceId', +- getter: () => _nativeInterface.default.deviceId, ++ getter: () => getConstants().deviceId, + supportedPlatforms: ['android', 'ios', 'windows'] + }); + +@@ -155,7 +174,7 @@ const getModel = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)( + memoKey: 'model', + defaultValue: 'unknown', + supportedPlatforms: ['ios', 'android', 'windows'], +- getter: () => _nativeInterface.default.model ++ getter: () => getConstants().model + }); + + exports.getModel = getModel; +@@ -164,7 +183,7 @@ const getBrand = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)( + memoKey: 'brand', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.brand ++ getter: () => getConstants().brand + }); + + exports.getBrand = getBrand; +@@ -174,7 +193,7 @@ const getSystemName = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoS + supportedPlatforms: ['ios', 'android', 'windows'], + memoKey: 'systemName', + getter: () => _reactNative.Platform.select({ +- ios: _nativeInterface.default.systemName, ++ ios: getConstants().systemName, + android: 'Android', + windows: 'Windows', + default: 'unknown' +@@ -185,7 +204,7 @@ exports.getSystemName = getSystemName; + + const getSystemVersion = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.systemVersion, ++ getter: () => getConstants().systemVersion, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'systemVersion' + }); +@@ -214,7 +233,7 @@ const getBundleId = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSyn + memoKey: 'bundleId', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.bundleId ++ getter: () => getConstants().bundleId + }); + + exports.getBundleId = getBundleId; +@@ -231,7 +250,7 @@ exports.getInstallerPackageName = getInstallerPackageName; + const getApplicationName = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ + memoKey: 'appName', + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.appName, ++ getter: () => getConstants().appName, + supportedPlatforms: ['android', 'ios', 'windows'] + }); + +@@ -240,7 +259,7 @@ exports.getApplicationName = getApplicationName; + const getBuildNumber = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ + memoKey: 'buildNumber', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => _nativeInterface.default.buildNumber, ++ getter: () => getConstants().buildNumber, + defaultValue: 'unknown' + }); + +@@ -250,7 +269,7 @@ const getVersion = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync + memoKey: 'version', + defaultValue: 'unknown', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => _nativeInterface.default.appVersion ++ getter: () => getConstants().appVersion + }); + + exports.getVersion = getVersion; +@@ -441,10 +460,19 @@ const isTablet = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)( + defaultValue: false, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'tablet', +- getter: () => _nativeInterface.default.isTablet ++ getter: () => getConstants().isTablet + }); + + exports.isTablet = isTablet; ++ ++const isDisplayZoomed = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ ++ defaultValue: false, ++ supportedPlatforms: ['ios'], ++ memoKey: 'zoomed', ++ getter: () => getConstants().isDisplayZoomed ++}); ++ ++exports.isDisplayZoomed = isDisplayZoomed; + const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ + supportedPlatforms: ['android', 'ios', 'windows'], + getter: () => _nativeInterface.default.isPinOrFingerprintSet(), +@@ -457,6 +485,8 @@ let notch; + + function hasNotch() { + if (notch === undefined) { ++ console.log(_nativeInterface.default); ++ + let _brand = getBrand(); + + let _model = getModel(); +@@ -676,7 +706,7 @@ const getDeviceType = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.deviceType ++ getter: () => getConstants().deviceType + }); + }; + +@@ -687,7 +717,7 @@ const getDeviceTypeSync = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => _nativeInterface.default.deviceType ++ getter: () => getConstants().deviceType + }); + }; + +@@ -817,7 +847,7 @@ async function getDeviceToken() { + return 'unknown'; + } + +-const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.RNDeviceInfo); ++const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_nativeInterface.default); + + function useBatteryLevel() { + const [batteryLevel, setBatteryLevel] = (0, _react.useState)(null); +@@ -1052,6 +1082,7 @@ const DeviceInfo = { + isKeyboardConnectedSync, + isTabletMode, + isTablet, ++ isDisplayZoomed, + supported32BitAbis, + supported32BitAbisSync, + supported64BitAbis, +diff --git a/node_modules/react-native-device-info/lib/commonjs/index.js.flow b/node_modules/react-native-device-info/lib/commonjs/index.js.flow +index 02fbb10..fdb85b0 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/index.js.flow ++++ b/node_modules/react-native-device-info/lib/commonjs/index.js.flow +@@ -153,6 +153,7 @@ declare module.exports: { + isKeyboardConnectedSync: () => boolean, + isTabletMode: () => Promise, + isTablet: () => boolean, ++ isDisplayZoomed: () => boolean, + supported32BitAbis: () => Promise, + supported32BitAbisSync: () => string[], + supported64BitAbis: () => Promise, +diff --git a/node_modules/react-native-device-info/lib/commonjs/index.js.map b/node_modules/react-native-device-info/lib/commonjs/index.js.map +index dc07090..0d79f29 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/index.js.map ++++ b/node_modules/react-native-device-info/lib/commonjs/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.ts"],"names":["getUniqueId","getUniqueIdSync","memoKey","supportedPlatforms","getter","RNDeviceInfo","syncGetter","defaultValue","uniqueId","syncUniqueId","Platform","OS","getInstanceId","getInstanceIdSync","getSerialNumber","getSerialNumberSync","getAndroidId","getAndroidIdSync","getIpAddress","getIpAddressSync","isCameraPresent","isCameraPresentSync","getMacAddress","getMacAddressSync","getDeviceId","deviceId","getManufacturer","getManufacturerSync","Promise","resolve","getSystemManufacturer","getSystemManufacturerSync","getModel","model","getBrand","brand","getSystemName","select","ios","systemName","android","windows","default","getSystemVersion","systemVersion","getBuildId","getBuildIdSync","getApiLevel","getApiLevelSync","getBundleId","bundleId","getInstallerPackageName","getInstallerPackageNameSync","getApplicationName","appName","getBuildNumber","buildNumber","getVersion","appVersion","getReadableVersion","getDeviceName","getDeviceNameSync","getUsedMemory","getUsedMemorySync","getUserAgent","getUserAgentSync","getFontScale","getFontScaleSync","getBootloader","getBootloaderSync","getDevice","getDeviceSync","getDisplay","getDisplaySync","getFingerprint","getFingerprintSync","getHardware","getHardwareSync","getHost","getHostSync","getProduct","getProductSync","getTags","getTagsSync","getType","getTypeSync","getBaseOs","getBaseOsSync","getPreviewSdkInt","getPreviewSdkIntSync","getSecurityPatch","getSecurityPatchSync","getCodename","getCodenameSync","getIncremental","getIncrementalSync","isEmulator","isEmulatorSync","isTablet","isPinOrFingerprintSet","isPinOrFingerprintSetSync","notch","hasNotch","undefined","_brand","_model","devicesWithNotch","findIndex","item","toLowerCase","dynamicIsland","hasDynamicIsland","devicesWithDynamicIsland","hasGms","hasGmsSync","hasHms","hasHmsSync","getFirstInstallTime","getFirstInstallTimeSync","getInstallReferrer","getInstallReferrerSync","getLastUpdateTime","getLastUpdateTimeSync","getPhoneNumber","getPhoneNumberSync","getCarrier","getCarrierSync","getTotalMemory","getTotalMemorySync","getMaxMemory","getMaxMemorySync","getTotalDiskCapacity","getTotalDiskCapacitySync","getTotalDiskCapacityOld","getTotalDiskCapacityOldSync","getFreeDiskStorage","getFreeDiskStorageSync","getFreeDiskStorageOld","getFreeDiskStorageOldSync","getBatteryLevel","getBatteryLevelSync","getPowerState","getPowerStateSync","isBatteryCharging","isBatteryChargingSync","isLandscape","isLandscapeSync","height","width","Dimensions","get","isAirplaneMode","isAirplaneModeSync","getDeviceType","deviceType","getDeviceTypeSync","supportedAbis","supportedAbisSync","getSupportedAbis","getSupportedAbisSync","supported32BitAbis","supported32BitAbisSync","getSupported32BitAbis","getSupported32BitAbisSync","supported64BitAbis","supported64BitAbisSync","getSupported64BitAbis","getSupported64BitAbisSync","hasSystemFeature","feature","hasSystemFeatureSync","isLowBatteryLevel","level","getSystemAvailableFeatures","getSystemAvailableFeaturesSync","isLocationEnabled","isLocationEnabledSync","isHeadphonesConnected","isHeadphonesConnectedSync","isMouseConnected","isMouseConnectedSync","isKeyboardConnected","isKeyboardConnectedSync","isTabletMode","getAvailableLocationProviders","getAvailableLocationProvidersSync","getBrightness","getBrightnessSync","getDeviceToken","deviceInfoEmitter","NativeEventEmitter","NativeModules","useBatteryLevel","batteryLevel","setBatteryLevel","setInitialValue","initialValue","onChange","subscription","addListener","remove","useBatteryLevelIsLow","batteryLevelIsLow","setBatteryLevelIsLow","usePowerState","powerState","setPowerState","state","useIsHeadphonesConnected","useFirstInstallTime","useDeviceName","useHasSystemFeature","asyncGetter","useIsEmulator","useManufacturer","useBrightness","brightness","setBrightness","value","DeviceInfo"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { Dimensions, NativeEventEmitter, NativeModules, Platform } from 'react-native';\nimport { useOnEvent, useOnMount } from './internal/asyncHookWrappers';\nimport devicesWithDynamicIsland from \"./internal/devicesWithDynamicIsland\";\nimport devicesWithNotch from './internal/devicesWithNotch';\nimport RNDeviceInfo from './internal/nativeInterface';\nimport {\n getSupportedPlatformInfoAsync,\n getSupportedPlatformInfoFunctions,\n getSupportedPlatformInfoSync,\n} from './internal/supported-platform-info';\nimport { DeviceInfoModule } from './internal/privateTypes';\nimport type {\n AsyncHookResult,\n DeviceType,\n LocationProviderInfo,\n PowerState,\n} from './internal/types';\n\nexport const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'uniqueId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getUniqueId(),\n syncGetter: () => RNDeviceInfo.getUniqueIdSync(),\n defaultValue: 'unknown',\n});\n\nlet uniqueId: string;\nexport async function syncUniqueId() {\n if (Platform.OS === 'ios') {\n uniqueId = await RNDeviceInfo.syncUniqueId();\n } else {\n uniqueId = await getUniqueId();\n }\n return uniqueId;\n}\n\nexport const [getInstanceId, getInstanceIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'instanceId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getInstanceId(),\n syncGetter: () => RNDeviceInfo.getInstanceIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getSerialNumber, getSerialNumberSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'serialNumber',\n supportedPlatforms: ['android', 'windows'],\n getter: () => RNDeviceInfo.getSerialNumber(),\n syncGetter: () => RNDeviceInfo.getSerialNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getAndroidId, getAndroidIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'androidId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getAndroidId(),\n syncGetter: () => RNDeviceInfo.getAndroidIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIpAddress, getIpAddressSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getIpAddress(),\n syncGetter: () => RNDeviceInfo.getIpAddressSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isCameraPresent, isCameraPresentSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.isCameraPresent(),\n syncGetter: () => RNDeviceInfo.isCameraPresentSync(),\n defaultValue: false,\n});\n\nexport async function getMacAddress() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddress();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport function getMacAddressSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddressSync();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport const getDeviceId = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n memoKey: 'deviceId',\n getter: () => RNDeviceInfo.deviceId,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'manufacturer',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () =>\n Platform.OS == 'ios' ? Promise.resolve('Apple') : RNDeviceInfo.getSystemManufacturer(),\n syncGetter: () => (Platform.OS == 'ios' ? 'Apple' : RNDeviceInfo.getSystemManufacturerSync()),\n defaultValue: 'unknown',\n});\n\nexport const getModel = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'model',\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n getter: () => RNDeviceInfo.model,\n });\n\nexport const getBrand = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'brand',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.brand,\n });\n\nexport const getSystemName = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n memoKey: 'systemName',\n getter: () =>\n Platform.select({\n ios: RNDeviceInfo.systemName,\n android: 'Android',\n windows: 'Windows',\n default: 'unknown',\n }),\n });\n\nexport const getSystemVersion = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.systemVersion,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'systemVersion',\n });\n\nexport const [getBuildId, getBuildIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'buildId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getBuildId(),\n syncGetter: () => RNDeviceInfo.getBuildIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getApiLevel, getApiLevelSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'apiLevel',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getApiLevel(),\n syncGetter: () => RNDeviceInfo.getApiLevelSync(),\n defaultValue: -1,\n});\n\nexport const getBundleId = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'bundleId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.bundleId,\n });\n\nexport const [\n getInstallerPackageName,\n getInstallerPackageNameSync,\n] = getSupportedPlatformInfoFunctions({\n memoKey: 'installerPackageName',\n supportedPlatforms: ['android', 'windows', 'ios'],\n getter: () => RNDeviceInfo.getInstallerPackageName(),\n syncGetter: () => RNDeviceInfo.getInstallerPackageNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const getApplicationName = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'appName',\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.appName,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const getBuildNumber = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'buildNumber',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.buildNumber,\n defaultValue: 'unknown',\n });\n\nexport const getVersion = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'version',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.appVersion,\n });\n\nexport function getReadableVersion() {\n return getVersion() + '.' + getBuildNumber();\n}\n\nexport const [getDeviceName, getDeviceNameSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getDeviceName(),\n syncGetter: () => RNDeviceInfo.getDeviceNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getUsedMemory, getUsedMemorySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getUsedMemory(),\n syncGetter: () => RNDeviceInfo.getUsedMemorySync(),\n defaultValue: -1,\n});\n\nexport const getUserAgent = () =>\n getSupportedPlatformInfoAsync({\n memoKey: 'userAgent',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.getUserAgent(),\n });\n\nexport const getUserAgentSync = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'userAgentSync',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.getUserAgentSync(),\n });\n\nexport const [getFontScale, getFontScaleSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFontScale(),\n syncGetter: () => RNDeviceInfo.getFontScaleSync(),\n defaultValue: -1,\n});\n\nexport const [getBootloader, getBootloaderSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'bootloader',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getBootloader(),\n syncGetter: () => RNDeviceInfo.getBootloaderSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getDevice, getDeviceSync] = getSupportedPlatformInfoFunctions({\n getter: () => RNDeviceInfo.getDevice(),\n syncGetter: () => RNDeviceInfo.getDeviceSync(),\n defaultValue: 'unknown',\n memoKey: 'device',\n supportedPlatforms: ['android'],\n});\n\nexport const [getDisplay, getDisplaySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'display',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getDisplay(),\n syncGetter: () => RNDeviceInfo.getDisplaySync(),\n defaultValue: 'unknown',\n});\n\nexport const [getFingerprint, getFingerprintSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'fingerprint',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getFingerprint(),\n syncGetter: () => RNDeviceInfo.getFingerprintSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHardware, getHardwareSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'hardware',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHardware(),\n syncGetter: () => RNDeviceInfo.getHardwareSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHost, getHostSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'host',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHost(),\n syncGetter: () => RNDeviceInfo.getHostSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getProduct, getProductSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'product',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getProduct(),\n syncGetter: () => RNDeviceInfo.getProductSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTags, getTagsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'tags',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getTags(),\n syncGetter: () => RNDeviceInfo.getTagsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getType, getTypeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'type',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getType(),\n syncGetter: () => RNDeviceInfo.getTypeSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getBaseOs, getBaseOsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'baseOs',\n supportedPlatforms: ['android', 'web', 'windows'],\n getter: () => RNDeviceInfo.getBaseOs(),\n syncGetter: () => RNDeviceInfo.getBaseOsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getPreviewSdkInt, getPreviewSdkIntSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'previewSdkInt',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPreviewSdkInt(),\n syncGetter: () => RNDeviceInfo.getPreviewSdkIntSync(),\n defaultValue: -1,\n});\n\nexport const [getSecurityPatch, getSecurityPatchSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'securityPatch',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSecurityPatch(),\n syncGetter: () => RNDeviceInfo.getSecurityPatchSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCodename, getCodenameSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'codeName',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getCodename(),\n syncGetter: () => RNDeviceInfo.getCodenameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIncremental, getIncrementalSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'incremental',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getIncremental(),\n syncGetter: () => RNDeviceInfo.getIncrementalSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isEmulator, isEmulatorSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'emulator',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isEmulator(),\n syncGetter: () => RNDeviceInfo.isEmulatorSync(),\n defaultValue: false,\n});\n\nexport const isTablet = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'tablet',\n getter: () => RNDeviceInfo.isTablet,\n });\n\nexport const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isPinOrFingerprintSet(),\n syncGetter: () => RNDeviceInfo.isPinOrFingerprintSetSync(),\n defaultValue: false,\n }\n);\n\nlet notch: boolean;\nexport function hasNotch() {\n if (notch === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n notch =\n devicesWithNotch.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return notch;\n}\n\nlet dynamicIsland: boolean;\nexport function hasDynamicIsland() {\n if (dynamicIsland === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n dynamicIsland =\n devicesWithDynamicIsland.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return dynamicIsland;\n}\n\nexport const [hasGms, hasGmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasGms(),\n syncGetter: () => RNDeviceInfo.hasGmsSync(),\n defaultValue: false,\n});\n\nexport const [hasHms, hasHmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasHms(),\n syncGetter: () => RNDeviceInfo.hasHmsSync(),\n defaultValue: false,\n});\n\nexport const [getFirstInstallTime, getFirstInstallTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'firstInstallTime',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFirstInstallTime(),\n syncGetter: () => RNDeviceInfo.getFirstInstallTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getInstallReferrer, getInstallReferrerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'installReferrer',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getInstallReferrer(),\n syncGetter: () => RNDeviceInfo.getInstallReferrerSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getLastUpdateTime, getLastUpdateTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'lastUpdateTime',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getLastUpdateTime(),\n syncGetter: () => RNDeviceInfo.getLastUpdateTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getPhoneNumber, getPhoneNumberSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPhoneNumber(),\n syncGetter: () => RNDeviceInfo.getPhoneNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCarrier, getCarrierSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getCarrier(),\n syncGetter: () => RNDeviceInfo.getCarrierSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTotalMemory, getTotalMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'totalMemory',\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalMemory(),\n syncGetter: () => RNDeviceInfo.getTotalMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getMaxMemory, getMaxMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'maxMemory',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getMaxMemory(),\n syncGetter: () => RNDeviceInfo.getMaxMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getTotalDiskCapacity, getTotalDiskCapacitySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalDiskCapacity(),\n syncGetter: () => RNDeviceInfo.getTotalDiskCapacitySync(),\n defaultValue: -1,\n});\n\nexport async function getTotalDiskCapacityOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacity();\n }\n\n return -1;\n}\n\nexport function getTotalDiskCapacityOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacitySync();\n }\n\n return -1;\n}\n\nexport const [getFreeDiskStorage, getFreeDiskStorageSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getFreeDiskStorage(),\n syncGetter: () => RNDeviceInfo.getFreeDiskStorageSync(),\n defaultValue: -1,\n});\n\nexport async function getFreeDiskStorageOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorage();\n }\n\n return -1;\n}\n\nexport function getFreeDiskStorageOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorageSync();\n }\n\n return -1;\n}\n\nexport const [getBatteryLevel, getBatteryLevelSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getBatteryLevel(),\n syncGetter: () => RNDeviceInfo.getBatteryLevelSync(),\n defaultValue: -1,\n});\n\nexport const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFunctions<\n Partial\n>({\n supportedPlatforms: ['ios', 'android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getPowerState(),\n syncGetter: () => RNDeviceInfo.getPowerStateSync(),\n defaultValue: {},\n});\n\nexport const [isBatteryCharging, isBatteryChargingSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.isBatteryCharging(),\n syncGetter: () => RNDeviceInfo.isBatteryChargingSync(),\n defaultValue: false,\n});\n\nexport async function isLandscape() {\n return Promise.resolve(isLandscapeSync());\n}\n\nexport function isLandscapeSync() {\n const { height, width } = Dimensions.get('window');\n return width >= height;\n}\n\nexport const [isAirplaneMode, isAirplaneModeSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.isAirplaneMode(),\n syncGetter: () => RNDeviceInfo.isAirplaneModeSync(),\n defaultValue: false,\n});\n\nexport const getDeviceType = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.deviceType,\n });\n};\n\nexport const getDeviceTypeSync = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.deviceType,\n });\n};\n\nexport const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supportedAbis',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getSupportedAbis(),\n syncGetter: () => RNDeviceInfo.getSupportedAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported32BitAbis, supported32BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported32BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported32BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported32BitAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported64BitAbis, supported64BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported64BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported64BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported64BitAbisSync(),\n defaultValue: [],\n});\n\nexport async function hasSystemFeature(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeature(feature);\n }\n return false;\n}\n\nexport function hasSystemFeatureSync(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeatureSync(feature);\n }\n return false;\n}\n\nexport function isLowBatteryLevel(level: number): boolean {\n if (Platform.OS === 'android') {\n return level < 0.15;\n }\n return level < 0.2;\n}\n\nexport const [\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSystemAvailableFeatures(),\n syncGetter: () => RNDeviceInfo.getSystemAvailableFeaturesSync(),\n defaultValue: [] as string[],\n});\n\nexport const [isLocationEnabled, isLocationEnabledSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.isLocationEnabled(),\n syncGetter: () => RNDeviceInfo.isLocationEnabledSync(),\n defaultValue: false,\n});\n\nexport const [isHeadphonesConnected, isHeadphonesConnectedSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.isHeadphonesConnected(),\n syncGetter: () => RNDeviceInfo.isHeadphonesConnectedSync(),\n defaultValue: false,\n }\n);\n\nexport const [isMouseConnected, isMouseConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isMouseConnected(),\n syncGetter: () => RNDeviceInfo.isMouseConnectedSync(),\n defaultValue: false,\n});\n\nexport const [isKeyboardConnected, isKeyboardConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isKeyboardConnected(),\n syncGetter: () => RNDeviceInfo.isKeyboardConnectedSync(),\n defaultValue: false,\n});\n\nexport const isTabletMode = () =>\n getSupportedPlatformInfoAsync({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isTabletMode(),\n defaultValue: false,\n });\n\nexport const [\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getAvailableLocationProviders(),\n syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync(),\n defaultValue: {},\n});\n\nexport const [getBrightness, getBrightnessSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['ios'],\n getter: () => RNDeviceInfo.getBrightness(),\n syncGetter: () => RNDeviceInfo.getBrightnessSync(),\n defaultValue: -1,\n});\n\nexport async function getDeviceToken() {\n if (Platform.OS === 'ios') {\n return RNDeviceInfo.getDeviceToken();\n }\n return 'unknown';\n}\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\nexport function useBatteryLevel(): number | null {\n const [batteryLevel, setBatteryLevel] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n setBatteryLevel(initialValue);\n };\n\n const onChange = (level: number) => {\n setBatteryLevel(level);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_batteryLevelDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevel;\n}\n\nexport function useBatteryLevelIsLow(): number | null {\n const [batteryLevelIsLow, setBatteryLevelIsLow] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue);\n };\n\n setInitialValue();\n\n const onChange = (level: number) => {\n setBatteryLevelIsLow(level);\n };\n\n const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange);\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevelIsLow;\n}\n\nexport function usePowerState(): Partial {\n const [powerState, setPowerState] = useState>({});\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: Partial = await getPowerState();\n setPowerState(initialValue);\n };\n\n const onChange = (state: PowerState) => {\n setPowerState(state);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_powerStateDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return powerState;\n}\n\nexport function useIsHeadphonesConnected(): AsyncHookResult {\n return useOnEvent('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false);\n}\n\nexport function useFirstInstallTime(): AsyncHookResult {\n return useOnMount(getFirstInstallTime, -1);\n}\n\nexport function useDeviceName(): AsyncHookResult {\n return useOnMount(getDeviceName, 'unknown');\n}\n\nexport function useHasSystemFeature(feature: string): AsyncHookResult {\n const asyncGetter = useCallback(() => hasSystemFeature(feature), [feature]);\n return useOnMount(asyncGetter, false);\n}\n\nexport function useIsEmulator(): AsyncHookResult {\n return useOnMount(isEmulator, false);\n}\n\nexport function useManufacturer(): AsyncHookResult {\n return useOnMount(getManufacturer, 'unknown');\n}\n\nexport function useBrightness(): number | null {\n const [brightness, setBrightness] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBrightness();\n setBrightness(initialValue);\n };\n\n const onChange = (value: number) => {\n setBrightness(value);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_brightnessDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return brightness;\n}\n\nexport type { AsyncHookResult, DeviceType, LocationProviderInfo, PowerState };\n\nconst DeviceInfo: DeviceInfoModule = {\n getAndroidId,\n getAndroidIdSync,\n getApiLevel,\n getApiLevelSync,\n getApplicationName,\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n getBaseOs,\n getBaseOsSync,\n getBatteryLevel,\n getBatteryLevelSync,\n getBootloader,\n getBootloaderSync,\n getBrand,\n getBuildId,\n getBuildIdSync,\n getBuildNumber,\n getBundleId,\n getCarrier,\n getCarrierSync,\n getCodename,\n getCodenameSync,\n getDevice,\n getDeviceId,\n getDeviceName,\n getDeviceNameSync,\n getDeviceSync,\n getDeviceToken,\n getDeviceType,\n getDisplay,\n getDisplaySync,\n getFingerprint,\n getFingerprintSync,\n getFirstInstallTime,\n getFirstInstallTimeSync,\n getFontScale,\n getFontScaleSync,\n getFreeDiskStorage,\n getFreeDiskStorageOld,\n getFreeDiskStorageSync,\n getFreeDiskStorageOldSync,\n getHardware,\n getHardwareSync,\n getHost,\n getHostSync,\n getIncremental,\n getIncrementalSync,\n getInstallerPackageName,\n getInstallerPackageNameSync,\n getInstallReferrer,\n getInstallReferrerSync,\n getInstanceId,\n getInstanceIdSync,\n getIpAddress,\n getIpAddressSync,\n getLastUpdateTime,\n getLastUpdateTimeSync,\n getMacAddress,\n getMacAddressSync,\n getManufacturer,\n getManufacturerSync,\n getMaxMemory,\n getMaxMemorySync,\n getModel,\n getPhoneNumber,\n getPhoneNumberSync,\n getPowerState,\n getPowerStateSync,\n getPreviewSdkInt,\n getPreviewSdkIntSync,\n getProduct,\n getProductSync,\n getReadableVersion,\n getSecurityPatch,\n getSecurityPatchSync,\n getSerialNumber,\n getSerialNumberSync,\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n getSystemName,\n getSystemVersion,\n getTags,\n getTagsSync,\n getTotalDiskCapacity,\n getTotalDiskCapacityOld,\n getTotalDiskCapacitySync,\n getTotalDiskCapacityOldSync,\n getTotalMemory,\n getTotalMemorySync,\n getType,\n getTypeSync,\n getUniqueId,\n getUniqueIdSync,\n getUsedMemory,\n getUsedMemorySync,\n getUserAgent,\n getUserAgentSync,\n getVersion,\n getBrightness,\n getBrightnessSync,\n hasGms,\n hasGmsSync,\n hasHms,\n hasHmsSync,\n hasNotch,\n hasDynamicIsland,\n hasSystemFeature,\n hasSystemFeatureSync,\n isAirplaneMode,\n isAirplaneModeSync,\n isBatteryCharging,\n isBatteryChargingSync,\n isCameraPresent,\n isCameraPresentSync,\n isEmulator,\n isEmulatorSync,\n isHeadphonesConnected,\n isHeadphonesConnectedSync,\n isLandscape,\n isLandscapeSync,\n isLocationEnabled,\n isLocationEnabledSync,\n isPinOrFingerprintSet,\n isPinOrFingerprintSetSync,\n isMouseConnected,\n isMouseConnectedSync,\n isKeyboardConnected,\n isKeyboardConnectedSync,\n isTabletMode,\n isTablet,\n supported32BitAbis,\n supported32BitAbisSync,\n supported64BitAbis,\n supported64BitAbisSync,\n supportedAbis,\n supportedAbisSync,\n syncUniqueId,\n useBatteryLevel,\n useBatteryLevelIsLow,\n useDeviceName,\n useFirstInstallTime,\n useHasSystemFeature,\n useIsEmulator,\n usePowerState,\n useManufacturer,\n useIsHeadphonesConnected,\n useBrightness,\n};\n\nexport default DeviceInfo;\n"]} +\ No newline at end of file ++{"version":3,"sources":["index.ts"],"names":["constants","getConstants","undefined","RNDeviceInfo","getUniqueId","getUniqueIdSync","memoKey","supportedPlatforms","getter","syncGetter","defaultValue","uniqueId","syncUniqueId","Platform","OS","getInstanceId","getInstanceIdSync","getSerialNumber","getSerialNumberSync","getAndroidId","getAndroidIdSync","getIpAddress","getIpAddressSync","isCameraPresent","isCameraPresentSync","getMacAddress","getMacAddressSync","getDeviceId","deviceId","getManufacturer","getManufacturerSync","Promise","resolve","getSystemManufacturer","getSystemManufacturerSync","getModel","model","getBrand","brand","getSystemName","select","ios","systemName","android","windows","default","getSystemVersion","systemVersion","getBuildId","getBuildIdSync","getApiLevel","getApiLevelSync","getBundleId","bundleId","getInstallerPackageName","getInstallerPackageNameSync","getApplicationName","appName","getBuildNumber","buildNumber","getVersion","appVersion","getReadableVersion","getDeviceName","getDeviceNameSync","getUsedMemory","getUsedMemorySync","getUserAgent","getUserAgentSync","getFontScale","getFontScaleSync","getBootloader","getBootloaderSync","getDevice","getDeviceSync","getDisplay","getDisplaySync","getFingerprint","getFingerprintSync","getHardware","getHardwareSync","getHost","getHostSync","getProduct","getProductSync","getTags","getTagsSync","getType","getTypeSync","getBaseOs","getBaseOsSync","getPreviewSdkInt","getPreviewSdkIntSync","getSecurityPatch","getSecurityPatchSync","getCodename","getCodenameSync","getIncremental","getIncrementalSync","isEmulator","isEmulatorSync","isTablet","isDisplayZoomed","isPinOrFingerprintSet","isPinOrFingerprintSetSync","notch","hasNotch","console","log","_brand","_model","devicesWithNotch","findIndex","item","toLowerCase","dynamicIsland","hasDynamicIsland","devicesWithDynamicIsland","hasGms","hasGmsSync","hasHms","hasHmsSync","getFirstInstallTime","getFirstInstallTimeSync","getInstallReferrer","getInstallReferrerSync","getLastUpdateTime","getLastUpdateTimeSync","getPhoneNumber","getPhoneNumberSync","getCarrier","getCarrierSync","getTotalMemory","getTotalMemorySync","getMaxMemory","getMaxMemorySync","getTotalDiskCapacity","getTotalDiskCapacitySync","getTotalDiskCapacityOld","getTotalDiskCapacityOldSync","getFreeDiskStorage","getFreeDiskStorageSync","getFreeDiskStorageOld","getFreeDiskStorageOldSync","getBatteryLevel","getBatteryLevelSync","getPowerState","getPowerStateSync","isBatteryCharging","isBatteryChargingSync","isLandscape","isLandscapeSync","height","width","Dimensions","get","isAirplaneMode","isAirplaneModeSync","getDeviceType","deviceType","getDeviceTypeSync","supportedAbis","supportedAbisSync","getSupportedAbis","getSupportedAbisSync","supported32BitAbis","supported32BitAbisSync","getSupported32BitAbis","getSupported32BitAbisSync","supported64BitAbis","supported64BitAbisSync","getSupported64BitAbis","getSupported64BitAbisSync","hasSystemFeature","feature","hasSystemFeatureSync","isLowBatteryLevel","level","getSystemAvailableFeatures","getSystemAvailableFeaturesSync","isLocationEnabled","isLocationEnabledSync","isHeadphonesConnected","isHeadphonesConnectedSync","isMouseConnected","isMouseConnectedSync","isKeyboardConnected","isKeyboardConnectedSync","isTabletMode","getAvailableLocationProviders","getAvailableLocationProvidersSync","getBrightness","getBrightnessSync","getDeviceToken","deviceInfoEmitter","NativeEventEmitter","useBatteryLevel","batteryLevel","setBatteryLevel","setInitialValue","initialValue","onChange","subscription","addListener","remove","useBatteryLevelIsLow","batteryLevelIsLow","setBatteryLevelIsLow","usePowerState","powerState","setPowerState","state","useIsHeadphonesConnected","useFirstInstallTime","useDeviceName","useHasSystemFeature","asyncGetter","useIsEmulator","useManufacturer","useBrightness","brightness","setBrightness","value","DeviceInfo"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { Dimensions, NativeEventEmitter, Platform } from 'react-native';\nimport { useOnEvent, useOnMount } from './internal/asyncHookWrappers';\nimport devicesWithDynamicIsland from './internal/devicesWithDynamicIsland';\nimport devicesWithNotch from './internal/devicesWithNotch';\nimport RNDeviceInfo from './internal/nativeInterface';\nimport {\n getSupportedPlatformInfoAsync,\n getSupportedPlatformInfoFunctions,\n getSupportedPlatformInfoSync,\n} from './internal/supported-platform-info';\nimport { DeviceInfoModule, NativeConstants } from './internal/privateTypes';\nimport type {\n AsyncHookResult,\n DeviceType,\n LocationProviderInfo,\n PowerState,\n} from './internal/types';\n\nlet constants: NativeConstants;\n\nfunction getConstants() {\n if (constants === undefined) {\n constants = RNDeviceInfo.getConstants() as NativeConstants;\n }\n return constants;\n}\n\nexport const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'uniqueId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getUniqueId(),\n syncGetter: () => RNDeviceInfo.getUniqueIdSync(),\n defaultValue: 'unknown',\n});\n\nlet uniqueId: string;\nexport async function syncUniqueId() {\n if (Platform.OS === 'ios') {\n uniqueId = await RNDeviceInfo.syncUniqueId();\n } else {\n uniqueId = await getUniqueId();\n }\n return uniqueId;\n}\n\nexport const [getInstanceId, getInstanceIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'instanceId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getInstanceId(),\n syncGetter: () => RNDeviceInfo.getInstanceIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getSerialNumber, getSerialNumberSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'serialNumber',\n supportedPlatforms: ['android', 'windows'],\n getter: () => RNDeviceInfo.getSerialNumber(),\n syncGetter: () => RNDeviceInfo.getSerialNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getAndroidId, getAndroidIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'androidId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getAndroidId(),\n syncGetter: () => RNDeviceInfo.getAndroidIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIpAddress, getIpAddressSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getIpAddress(),\n syncGetter: () => RNDeviceInfo.getIpAddressSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isCameraPresent, isCameraPresentSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.isCameraPresent(),\n syncGetter: () => RNDeviceInfo.isCameraPresentSync(),\n defaultValue: false,\n});\n\nexport async function getMacAddress() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddress();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport function getMacAddressSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddressSync();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport const getDeviceId = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n memoKey: 'deviceId',\n getter: () => getConstants().deviceId,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'manufacturer',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () =>\n Platform.OS == 'ios' ? Promise.resolve('Apple') : RNDeviceInfo.getSystemManufacturer(),\n syncGetter: () => (Platform.OS == 'ios' ? 'Apple' : RNDeviceInfo.getSystemManufacturerSync()),\n defaultValue: 'unknown',\n});\n\nexport const getModel = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'model',\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n getter: () => getConstants().model,\n });\n\nexport const getBrand = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'brand',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().brand,\n });\n\nexport const getSystemName = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n memoKey: 'systemName',\n getter: () =>\n Platform.select({\n ios: getConstants().systemName,\n android: 'Android',\n windows: 'Windows',\n default: 'unknown',\n }),\n });\n\nexport const getSystemVersion = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n getter: () => getConstants().systemVersion,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'systemVersion',\n });\n\nexport const [getBuildId, getBuildIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'buildId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getBuildId(),\n syncGetter: () => RNDeviceInfo.getBuildIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getApiLevel, getApiLevelSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'apiLevel',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getApiLevel(),\n syncGetter: () => RNDeviceInfo.getApiLevelSync(),\n defaultValue: -1,\n});\n\nexport const getBundleId = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'bundleId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().bundleId,\n });\n\nexport const [\n getInstallerPackageName,\n getInstallerPackageNameSync,\n] = getSupportedPlatformInfoFunctions({\n memoKey: 'installerPackageName',\n supportedPlatforms: ['android', 'windows', 'ios'],\n getter: () => RNDeviceInfo.getInstallerPackageName(),\n syncGetter: () => RNDeviceInfo.getInstallerPackageNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const getApplicationName = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'appName',\n defaultValue: 'unknown',\n getter: () => getConstants().appName,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const getBuildNumber = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'buildNumber',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => getConstants().buildNumber,\n defaultValue: 'unknown',\n });\n\nexport const getVersion = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'version',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => getConstants().appVersion,\n });\n\nexport function getReadableVersion() {\n return getVersion() + '.' + getBuildNumber();\n}\n\nexport const [getDeviceName, getDeviceNameSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getDeviceName(),\n syncGetter: () => RNDeviceInfo.getDeviceNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getUsedMemory, getUsedMemorySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getUsedMemory(),\n syncGetter: () => RNDeviceInfo.getUsedMemorySync(),\n defaultValue: -1,\n});\n\nexport const getUserAgent = () =>\n getSupportedPlatformInfoAsync({\n memoKey: 'userAgent',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.getUserAgent(),\n });\n\nexport const getUserAgentSync = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'userAgentSync',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.getUserAgentSync(),\n });\n\nexport const [getFontScale, getFontScaleSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFontScale(),\n syncGetter: () => RNDeviceInfo.getFontScaleSync(),\n defaultValue: -1,\n});\n\nexport const [getBootloader, getBootloaderSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'bootloader',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getBootloader(),\n syncGetter: () => RNDeviceInfo.getBootloaderSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getDevice, getDeviceSync] = getSupportedPlatformInfoFunctions({\n getter: () => RNDeviceInfo.getDevice(),\n syncGetter: () => RNDeviceInfo.getDeviceSync(),\n defaultValue: 'unknown',\n memoKey: 'device',\n supportedPlatforms: ['android'],\n});\n\nexport const [getDisplay, getDisplaySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'display',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getDisplay(),\n syncGetter: () => RNDeviceInfo.getDisplaySync(),\n defaultValue: 'unknown',\n});\n\nexport const [getFingerprint, getFingerprintSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'fingerprint',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getFingerprint(),\n syncGetter: () => RNDeviceInfo.getFingerprintSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHardware, getHardwareSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'hardware',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHardware(),\n syncGetter: () => RNDeviceInfo.getHardwareSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHost, getHostSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'host',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHost(),\n syncGetter: () => RNDeviceInfo.getHostSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getProduct, getProductSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'product',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getProduct(),\n syncGetter: () => RNDeviceInfo.getProductSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTags, getTagsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'tags',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getTags(),\n syncGetter: () => RNDeviceInfo.getTagsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getType, getTypeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'type',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getType(),\n syncGetter: () => RNDeviceInfo.getTypeSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getBaseOs, getBaseOsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'baseOs',\n supportedPlatforms: ['android', 'web', 'windows'],\n getter: () => RNDeviceInfo.getBaseOs(),\n syncGetter: () => RNDeviceInfo.getBaseOsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getPreviewSdkInt, getPreviewSdkIntSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'previewSdkInt',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPreviewSdkInt(),\n syncGetter: () => RNDeviceInfo.getPreviewSdkIntSync(),\n defaultValue: -1,\n});\n\nexport const [getSecurityPatch, getSecurityPatchSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'securityPatch',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSecurityPatch(),\n syncGetter: () => RNDeviceInfo.getSecurityPatchSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCodename, getCodenameSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'codeName',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getCodename(),\n syncGetter: () => RNDeviceInfo.getCodenameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIncremental, getIncrementalSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'incremental',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getIncremental(),\n syncGetter: () => RNDeviceInfo.getIncrementalSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isEmulator, isEmulatorSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'emulator',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isEmulator(),\n syncGetter: () => RNDeviceInfo.isEmulatorSync(),\n defaultValue: false,\n});\n\nexport const isTablet = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'tablet',\n getter: () => getConstants().isTablet,\n });\n\nexport const isDisplayZoomed = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['ios'],\n memoKey: 'zoomed',\n getter: () => getConstants().isDisplayZoomed,\n });\n\nexport const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isPinOrFingerprintSet(),\n syncGetter: () => RNDeviceInfo.isPinOrFingerprintSetSync(),\n defaultValue: false,\n }\n);\n\nlet notch: boolean;\nexport function hasNotch() {\n if (notch === undefined) {\n console.log(RNDeviceInfo);\n let _brand = getBrand();\n let _model = getModel();\n notch =\n devicesWithNotch.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return notch;\n}\n\nlet dynamicIsland: boolean;\nexport function hasDynamicIsland() {\n if (dynamicIsland === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n dynamicIsland =\n devicesWithDynamicIsland.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return dynamicIsland;\n}\n\nexport const [hasGms, hasGmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasGms(),\n syncGetter: () => RNDeviceInfo.hasGmsSync(),\n defaultValue: false,\n});\n\nexport const [hasHms, hasHmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasHms(),\n syncGetter: () => RNDeviceInfo.hasHmsSync(),\n defaultValue: false,\n});\n\nexport const [getFirstInstallTime, getFirstInstallTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'firstInstallTime',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFirstInstallTime(),\n syncGetter: () => RNDeviceInfo.getFirstInstallTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getInstallReferrer, getInstallReferrerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'installReferrer',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getInstallReferrer(),\n syncGetter: () => RNDeviceInfo.getInstallReferrerSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getLastUpdateTime, getLastUpdateTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'lastUpdateTime',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getLastUpdateTime(),\n syncGetter: () => RNDeviceInfo.getLastUpdateTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getPhoneNumber, getPhoneNumberSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPhoneNumber(),\n syncGetter: () => RNDeviceInfo.getPhoneNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCarrier, getCarrierSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getCarrier(),\n syncGetter: () => RNDeviceInfo.getCarrierSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTotalMemory, getTotalMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'totalMemory',\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalMemory(),\n syncGetter: () => RNDeviceInfo.getTotalMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getMaxMemory, getMaxMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'maxMemory',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getMaxMemory(),\n syncGetter: () => RNDeviceInfo.getMaxMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getTotalDiskCapacity, getTotalDiskCapacitySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalDiskCapacity(),\n syncGetter: () => RNDeviceInfo.getTotalDiskCapacitySync(),\n defaultValue: -1,\n});\n\nexport async function getTotalDiskCapacityOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacity();\n }\n\n return -1;\n}\n\nexport function getTotalDiskCapacityOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacitySync();\n }\n\n return -1;\n}\n\nexport const [getFreeDiskStorage, getFreeDiskStorageSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getFreeDiskStorage(),\n syncGetter: () => RNDeviceInfo.getFreeDiskStorageSync(),\n defaultValue: -1,\n});\n\nexport async function getFreeDiskStorageOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorage();\n }\n\n return -1;\n}\n\nexport function getFreeDiskStorageOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorageSync();\n }\n\n return -1;\n}\n\nexport const [getBatteryLevel, getBatteryLevelSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getBatteryLevel(),\n syncGetter: () => RNDeviceInfo.getBatteryLevelSync(),\n defaultValue: -1,\n});\n\nexport const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFunctions<\n Partial\n>({\n supportedPlatforms: ['ios', 'android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getPowerState() as Promise>,\n syncGetter: () => RNDeviceInfo.getPowerStateSync() as Partial,\n defaultValue: {},\n});\n\nexport const [isBatteryCharging, isBatteryChargingSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.isBatteryCharging(),\n syncGetter: () => RNDeviceInfo.isBatteryChargingSync(),\n defaultValue: false,\n});\n\nexport async function isLandscape() {\n return Promise.resolve(isLandscapeSync());\n}\n\nexport function isLandscapeSync() {\n const { height, width } = Dimensions.get('window');\n return width >= height;\n}\n\nexport const [isAirplaneMode, isAirplaneModeSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.isAirplaneMode(),\n syncGetter: () => RNDeviceInfo.isAirplaneModeSync(),\n defaultValue: false,\n});\n\nexport const getDeviceType = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().deviceType,\n });\n};\n\nexport const getDeviceTypeSync = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().deviceType,\n });\n};\n\nexport const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supportedAbis',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getSupportedAbis(),\n syncGetter: () => RNDeviceInfo.getSupportedAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported32BitAbis, supported32BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported32BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported32BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported32BitAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported64BitAbis, supported64BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported64BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported64BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported64BitAbisSync(),\n defaultValue: [],\n});\n\nexport async function hasSystemFeature(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeature(feature);\n }\n return false;\n}\n\nexport function hasSystemFeatureSync(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeatureSync(feature);\n }\n return false;\n}\n\nexport function isLowBatteryLevel(level: number): boolean {\n if (Platform.OS === 'android') {\n return level < 0.15;\n }\n return level < 0.2;\n}\n\nexport const [\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSystemAvailableFeatures(),\n syncGetter: () => RNDeviceInfo.getSystemAvailableFeaturesSync(),\n defaultValue: [] as string[],\n});\n\nexport const [isLocationEnabled, isLocationEnabledSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.isLocationEnabled(),\n syncGetter: () => RNDeviceInfo.isLocationEnabledSync(),\n defaultValue: false,\n});\n\nexport const [isHeadphonesConnected, isHeadphonesConnectedSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.isHeadphonesConnected(),\n syncGetter: () => RNDeviceInfo.isHeadphonesConnectedSync(),\n defaultValue: false,\n }\n);\n\nexport const [isMouseConnected, isMouseConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isMouseConnected(),\n syncGetter: () => RNDeviceInfo.isMouseConnectedSync(),\n defaultValue: false,\n});\n\nexport const [isKeyboardConnected, isKeyboardConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isKeyboardConnected(),\n syncGetter: () => RNDeviceInfo.isKeyboardConnectedSync(),\n defaultValue: false,\n});\n\nexport const isTabletMode = () =>\n getSupportedPlatformInfoAsync({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isTabletMode(),\n defaultValue: false,\n });\n\nexport const [\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getAvailableLocationProviders() as Promise,\n syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync() as LocationProviderInfo,\n defaultValue: {},\n});\n\nexport const [getBrightness, getBrightnessSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['ios'],\n getter: () => RNDeviceInfo.getBrightness(),\n syncGetter: () => RNDeviceInfo.getBrightnessSync(),\n defaultValue: -1,\n});\n\nexport async function getDeviceToken() {\n if (Platform.OS === 'ios') {\n return RNDeviceInfo.getDeviceToken();\n }\n return 'unknown';\n}\n\nconst deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo);\nexport function useBatteryLevel(): number | null {\n const [batteryLevel, setBatteryLevel] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n setBatteryLevel(initialValue);\n };\n\n const onChange = (level: number) => {\n setBatteryLevel(level);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_batteryLevelDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevel;\n}\n\nexport function useBatteryLevelIsLow(): number | null {\n const [batteryLevelIsLow, setBatteryLevelIsLow] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue);\n };\n\n setInitialValue();\n\n const onChange = (level: number) => {\n setBatteryLevelIsLow(level);\n };\n\n const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange);\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevelIsLow;\n}\n\nexport function usePowerState(): Partial {\n const [powerState, setPowerState] = useState>({});\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: Partial = await getPowerState();\n setPowerState(initialValue);\n };\n\n const onChange = (state: PowerState) => {\n setPowerState(state);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_powerStateDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return powerState;\n}\n\nexport function useIsHeadphonesConnected(): AsyncHookResult {\n return useOnEvent('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false);\n}\n\nexport function useFirstInstallTime(): AsyncHookResult {\n return useOnMount(getFirstInstallTime, -1);\n}\n\nexport function useDeviceName(): AsyncHookResult {\n return useOnMount(getDeviceName, 'unknown');\n}\n\nexport function useHasSystemFeature(feature: string): AsyncHookResult {\n const asyncGetter = useCallback(() => hasSystemFeature(feature), [feature]);\n return useOnMount(asyncGetter, false);\n}\n\nexport function useIsEmulator(): AsyncHookResult {\n return useOnMount(isEmulator, false);\n}\n\nexport function useManufacturer(): AsyncHookResult {\n return useOnMount(getManufacturer, 'unknown');\n}\n\nexport function useBrightness(): number | null {\n const [brightness, setBrightness] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBrightness();\n setBrightness(initialValue);\n };\n\n const onChange = (value: number) => {\n setBrightness(value);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_brightnessDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return brightness;\n}\n\nexport type { AsyncHookResult, DeviceType, LocationProviderInfo, PowerState };\n\nconst DeviceInfo: DeviceInfoModule = {\n getAndroidId,\n getAndroidIdSync,\n getApiLevel,\n getApiLevelSync,\n getApplicationName,\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n getBaseOs,\n getBaseOsSync,\n getBatteryLevel,\n getBatteryLevelSync,\n getBootloader,\n getBootloaderSync,\n getBrand,\n getBuildId,\n getBuildIdSync,\n getBuildNumber,\n getBundleId,\n getCarrier,\n getCarrierSync,\n getCodename,\n getCodenameSync,\n getDevice,\n getDeviceId,\n getDeviceName,\n getDeviceNameSync,\n getDeviceSync,\n getDeviceToken,\n getDeviceType,\n getDisplay,\n getDisplaySync,\n getFingerprint,\n getFingerprintSync,\n getFirstInstallTime,\n getFirstInstallTimeSync,\n getFontScale,\n getFontScaleSync,\n getFreeDiskStorage,\n getFreeDiskStorageOld,\n getFreeDiskStorageSync,\n getFreeDiskStorageOldSync,\n getHardware,\n getHardwareSync,\n getHost,\n getHostSync,\n getIncremental,\n getIncrementalSync,\n getInstallerPackageName,\n getInstallerPackageNameSync,\n getInstallReferrer,\n getInstallReferrerSync,\n getInstanceId,\n getInstanceIdSync,\n getIpAddress,\n getIpAddressSync,\n getLastUpdateTime,\n getLastUpdateTimeSync,\n getMacAddress,\n getMacAddressSync,\n getManufacturer,\n getManufacturerSync,\n getMaxMemory,\n getMaxMemorySync,\n getModel,\n getPhoneNumber,\n getPhoneNumberSync,\n getPowerState,\n getPowerStateSync,\n getPreviewSdkInt,\n getPreviewSdkIntSync,\n getProduct,\n getProductSync,\n getReadableVersion,\n getSecurityPatch,\n getSecurityPatchSync,\n getSerialNumber,\n getSerialNumberSync,\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n getSystemName,\n getSystemVersion,\n getTags,\n getTagsSync,\n getTotalDiskCapacity,\n getTotalDiskCapacityOld,\n getTotalDiskCapacitySync,\n getTotalDiskCapacityOldSync,\n getTotalMemory,\n getTotalMemorySync,\n getType,\n getTypeSync,\n getUniqueId,\n getUniqueIdSync,\n getUsedMemory,\n getUsedMemorySync,\n getUserAgent,\n getUserAgentSync,\n getVersion,\n getBrightness,\n getBrightnessSync,\n hasGms,\n hasGmsSync,\n hasHms,\n hasHmsSync,\n hasNotch,\n hasDynamicIsland,\n hasSystemFeature,\n hasSystemFeatureSync,\n isAirplaneMode,\n isAirplaneModeSync,\n isBatteryCharging,\n isBatteryChargingSync,\n isCameraPresent,\n isCameraPresentSync,\n isEmulator,\n isEmulatorSync,\n isHeadphonesConnected,\n isHeadphonesConnectedSync,\n isLandscape,\n isLandscapeSync,\n isLocationEnabled,\n isLocationEnabledSync,\n isPinOrFingerprintSet,\n isPinOrFingerprintSetSync,\n isMouseConnected,\n isMouseConnectedSync,\n isKeyboardConnected,\n isKeyboardConnectedSync,\n isTabletMode,\n isTablet,\n isDisplayZoomed,\n supported32BitAbis,\n supported32BitAbisSync,\n supported64BitAbis,\n supported64BitAbisSync,\n supportedAbis,\n supportedAbisSync,\n syncUniqueId,\n useBatteryLevel,\n useBatteryLevelIsLow,\n useDeviceName,\n useFirstInstallTime,\n useHasSystemFeature,\n useIsEmulator,\n usePowerState,\n useManufacturer,\n useIsHeadphonesConnected,\n useBrightness,\n};\n\nexport default DeviceInfo;\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js b/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js +index 2998179..c792b00 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js +@@ -3,14 +3,18 @@ + Object.defineProperty(exports, "__esModule", { + value: true + }); +-exports.useOnMount = useOnMount; +-exports.useOnEvent = useOnEvent; + exports.deviceInfoEmitter = void 0; ++exports.useOnEvent = useOnEvent; ++exports.useOnMount = useOnMount; + + var _react = require("react"); + + var _reactNative = require("react-native"); + ++var _nativeInterface = _interopRequireDefault(require("./nativeInterface")); ++ ++function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } ++ + /** + * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once + * @param asyncGetter async function that 'gets' something +@@ -36,7 +40,7 @@ function useOnMount(asyncGetter, initialResult) { + return response; + } + +-const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.RNDeviceInfo); ++const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_nativeInterface.default); + /** + * simple hook wrapper for handling events + * @param eventName +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js.map b/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js.map +index 1dfb0e4..733e774 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js.map ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/asyncHookWrappers.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["asyncHookWrappers.ts"],"names":["useOnMount","asyncGetter","initialResult","response","setResponse","loading","result","getAsync","deviceInfoEmitter","NativeEventEmitter","NativeModules","RNDeviceInfo","useOnEvent","eventName","initialValueAsyncGetter","defaultValue","setResult","subscription","addListener","remove"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,UAAT,CAAuBC,WAAvB,EAAsDC,aAAtD,EAA4F;AACjG,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0B,qBAA6B;AAC3DC,IAAAA,OAAO,EAAE,IADkD;AAE3DC,IAAAA,MAAM,EAAEJ;AAFmD,GAA7B,CAAhC;AAKA,wBAAU,MAAM;AACd;AACA,UAAMK,QAAQ,GAAG,YAAY;AAC3B,YAAMD,MAAM,GAAG,MAAML,WAAW,EAAhC;AACAG,MAAAA,WAAW,CAAC;AAAEC,QAAAA,OAAO,EAAE,KAAX;AAAkBC,QAAAA;AAAlB,OAAD,CAAX;AACD,KAHD;;AAKAC,IAAAA,QAAQ;AACT,GARD,EAQG,CAACN,WAAD,CARH;AAUA,SAAOE,QAAP;AACD;;AAEM,MAAMK,iBAAiB,GAAG,IAAIC,+BAAJ,CAAuBC,2BAAcC,YAArC,CAA1B;AAEP;AACA;AACA;AACA;AACA;AACA;;;;AACO,SAASC,UAAT,CACLC,SADK,EAELC,uBAFK,EAGLC,YAHK,EAIe;AACpB,QAAM;AAAEV,IAAAA,OAAF;AAAWC,IAAAA,MAAM,EAAEJ;AAAnB,MAAqCF,UAAU,CAACc,uBAAD,EAA0BC,YAA1B,CAArD;AACA,QAAM,CAACT,MAAD,EAASU,SAAT,IAAsB,qBAAYD,YAAZ,CAA5B,CAFoB,CAIpB;;AACA,wBAAU,MAAM;AACdC,IAAAA,SAAS,CAACd,aAAD,CAAT;AACD,GAFD,EAEG,CAACA,aAAD,CAFH,EALoB,CASpB;AACA;;AACA,wBAAU,MAAM;AACd,UAAMe,YAAY,GAAGT,iBAAiB,CAACU,WAAlB,CAA8BL,SAA9B,EAAyCG,SAAzC,CAArB;AACA,WAAO,MAAMC,YAAY,CAACE,MAAb,EAAb;AACD,GAHD,EAGG,CAACN,SAAD,CAHH,EAXoB,CAgBpB;;AACA,SAAO;AAAER,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD","sourcesContent":["import { useState, useEffect } from 'react';\nimport { NativeEventEmitter, NativeModules } from 'react-native';\nimport type { AsyncHookResult } from './types';\n\n/**\n * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once\n * @param asyncGetter async function that 'gets' something\n * @param initialResult -1 | false | 'unknown'\n */\nexport function useOnMount(asyncGetter: () => Promise, initialResult: T): AsyncHookResult {\n const [response, setResponse] = useState>({\n loading: true,\n result: initialResult,\n });\n\n useEffect(() => {\n // async function cuz react complains if useEffect's effect param is an async function\n const getAsync = async () => {\n const result = await asyncGetter();\n setResponse({ loading: false, result });\n };\n\n getAsync();\n }, [asyncGetter]);\n\n return response;\n}\n\nexport const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\n/**\n * simple hook wrapper for handling events\n * @param eventName\n * @param initialValueAsyncGetter\n * @param defaultValue\n */\nexport function useOnEvent(\n eventName: string,\n initialValueAsyncGetter: () => Promise,\n defaultValue: T\n): AsyncHookResult {\n const { loading, result: initialResult } = useOnMount(initialValueAsyncGetter, defaultValue);\n const [result, setResult] = useState(defaultValue);\n\n // sets the result to what the intial value is on mount\n useEffect(() => {\n setResult(initialResult);\n }, [initialResult]);\n\n // - set up the event listener to set the result\n // - set up the clean up function to remove subscription on unmount\n useEffect(() => {\n const subscription = deviceInfoEmitter.addListener(eventName, setResult);\n return () => subscription.remove();\n }, [eventName]);\n\n // loading will only be true while getting the inital value. After that, it will always be false, but a new result may occur\n return { loading, result };\n}\n"]} +\ No newline at end of file ++{"version":3,"sources":["asyncHookWrappers.ts"],"names":["useOnMount","asyncGetter","initialResult","response","setResponse","loading","result","getAsync","deviceInfoEmitter","NativeEventEmitter","RNDeviceInfo","useOnEvent","eventName","initialValueAsyncGetter","defaultValue","setResult","subscription","addListener","remove"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,UAAT,CAAuBC,WAAvB,EAAsDC,aAAtD,EAA4F;AACjG,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0B,qBAA6B;AAC3DC,IAAAA,OAAO,EAAE,IADkD;AAE3DC,IAAAA,MAAM,EAAEJ;AAFmD,GAA7B,CAAhC;AAKA,wBAAU,MAAM;AACd;AACA,UAAMK,QAAQ,GAAG,YAAY;AAC3B,YAAMD,MAAM,GAAG,MAAML,WAAW,EAAhC;AACAG,MAAAA,WAAW,CAAC;AAAEC,QAAAA,OAAO,EAAE,KAAX;AAAkBC,QAAAA;AAAlB,OAAD,CAAX;AACD,KAHD;;AAKAC,IAAAA,QAAQ;AACT,GARD,EAQG,CAACN,WAAD,CARH;AAUA,SAAOE,QAAP;AACD;;AAEM,MAAMK,iBAAiB,GAAG,IAAIC,+BAAJ,CAAuBC,wBAAvB,CAA1B;AAEP;AACA;AACA;AACA;AACA;AACA;;;;AACO,SAASC,UAAT,CACLC,SADK,EAELC,uBAFK,EAGLC,YAHK,EAIe;AACpB,QAAM;AAAET,IAAAA,OAAF;AAAWC,IAAAA,MAAM,EAAEJ;AAAnB,MAAqCF,UAAU,CAACa,uBAAD,EAA0BC,YAA1B,CAArD;AACA,QAAM,CAACR,MAAD,EAASS,SAAT,IAAsB,qBAAYD,YAAZ,CAA5B,CAFoB,CAIpB;;AACA,wBAAU,MAAM;AACdC,IAAAA,SAAS,CAACb,aAAD,CAAT;AACD,GAFD,EAEG,CAACA,aAAD,CAFH,EALoB,CASpB;AACA;;AACA,wBAAU,MAAM;AACd,UAAMc,YAAY,GAAGR,iBAAiB,CAACS,WAAlB,CAA8BL,SAA9B,EAAyCG,SAAzC,CAArB;AACA,WAAO,MAAMC,YAAY,CAACE,MAAb,EAAb;AACD,GAHD,EAGG,CAACN,SAAD,CAHH,EAXoB,CAgBpB;;AACA,SAAO;AAAEP,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD","sourcesContent":["import { useState, useEffect } from 'react';\nimport { NativeEventEmitter } from 'react-native';\nimport RNDeviceInfo from './nativeInterface';\nimport type { AsyncHookResult } from './types';\n\n/**\n * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once\n * @param asyncGetter async function that 'gets' something\n * @param initialResult -1 | false | 'unknown'\n */\nexport function useOnMount(asyncGetter: () => Promise, initialResult: T): AsyncHookResult {\n const [response, setResponse] = useState>({\n loading: true,\n result: initialResult,\n });\n\n useEffect(() => {\n // async function cuz react complains if useEffect's effect param is an async function\n const getAsync = async () => {\n const result = await asyncGetter();\n setResponse({ loading: false, result });\n };\n\n getAsync();\n }, [asyncGetter]);\n\n return response;\n}\n\nexport const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo);\n\n/**\n * simple hook wrapper for handling events\n * @param eventName\n * @param initialValueAsyncGetter\n * @param defaultValue\n */\nexport function useOnEvent(\n eventName: string,\n initialValueAsyncGetter: () => Promise,\n defaultValue: T\n): AsyncHookResult {\n const { loading, result: initialResult } = useOnMount(initialValueAsyncGetter, defaultValue);\n const [result, setResult] = useState(defaultValue);\n\n // sets the result to what the intial value is on mount\n useEffect(() => {\n setResult(initialResult);\n }, [initialResult]);\n\n // - set up the event listener to set the result\n // - set up the clean up function to remove subscription on unmount\n useEffect(() => {\n const subscription = deviceInfoEmitter.addListener(eventName, setResult);\n return () => subscription.remove();\n }, [eventName]);\n\n // loading will only be true while getting the inital value. After that, it will always be false, but a new result may occur\n return { loading, result };\n}\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js +index f00bade..155dc1c 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js +@@ -7,11 +7,7 @@ exports.default = void 0; + + var _reactNative = require("react-native"); + +-let RNDeviceInfo = _reactNative.NativeModules.RNDeviceInfo; // @ts-ignore +- +-if (_reactNative.Platform.OS === 'web' || _reactNative.Platform.OS === 'dom') { +- RNDeviceInfo = require('../web'); +-} ++let RNDeviceInfo = require('../web'); + + if (!RNDeviceInfo) { + // Produce an error if we don't have the native module +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js.map b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js.map +index ef378b6..d6ccc7f 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js.map ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.ts"],"names":["RNDeviceInfo","NativeModules","Platform","OS","require","Error"],"mappings":";;;;;;;AAAA;;AAGA,IAAIA,YAAgD,GAAGC,2BAAcD,YAArE,C,CAEA;;AACA,IAAIE,sBAASC,EAAT,KAAgB,KAAhB,IAAyBD,sBAASC,EAAT,KAAgB,KAA7C,EAAoD;AAClDH,EAAAA,YAAY,GAAGI,OAAO,CAAC,QAAD,CAAtB;AACD;;AAED,IAAI,CAACJ,YAAL,EAAmB;AACjB;AACA,MACEE,sBAASC,EAAT,KAAgB,SAAhB,IACAD,sBAASC,EAAT,KAAgB,KADhB,IAEAD,sBAASC,EAAT,KAAgB,KAFhB,IAGA;AACAD,wBAASC,EAAT,KAAgB,KALlB,EAME;AACA,UAAM,IAAIE,KAAJ,CAAW;AACrB;AACA;AACA;AACA,sJAJU,CAAN;AAKD;AACF;;eAEcL,Y","sourcesContent":["import { Platform, NativeModules } from 'react-native';\nimport { DeviceInfoNativeModule } from './privateTypes';\n\nlet RNDeviceInfo: DeviceInfoNativeModule | undefined = NativeModules.RNDeviceInfo;\n\n// @ts-ignore\nif (Platform.OS === 'web' || Platform.OS === 'dom') {\n RNDeviceInfo = require('../web');\n}\n\nif (!RNDeviceInfo) {\n // Produce an error if we don't have the native module\n if (\n Platform.OS === 'android' ||\n Platform.OS === 'ios' ||\n Platform.OS === 'web' ||\n // @ts-ignore\n Platform.OS === 'dom'\n ) {\n throw new Error(`react-native-device-info: NativeModule.RNDeviceInfo is null. To fix this issue try these steps:\n • For react-native <= 0.59: Run \\`react-native link react-native-device-info\\` in the project root.\n • Rebuild and re-run the app.\n • If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-device-info/react-native-device-info`);\n }\n}\n\nexport default RNDeviceInfo as DeviceInfoNativeModule;\n"]} +\ No newline at end of file ++{"version":3,"sources":["nativeInterface.ts"],"names":["RNDeviceInfo","RNDeviceInfoModule","Platform","OS","require","Error"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,IAAIA,YAAY,GAAGC,+BAAnB,C,CAEA;;AACA,IAAIC,sBAASC,EAAT,KAAgB,KAAhB,IAAyBD,sBAASC,EAAT,KAAgB,KAA7C,EAAoD;AAClDH,EAAAA,YAAY,GAAGI,OAAO,CAAC,QAAD,CAAtB;AACD;;AAED,IAAI,CAACJ,YAAL,EAAmB;AACjB;AACA,MACEE,sBAASC,EAAT,KAAgB,SAAhB,IACAD,sBAASC,EAAT,KAAgB,KADhB,IAEAD,sBAASC,EAAT,KAAgB,KAFhB,IAGA;AACAD,wBAASC,EAAT,KAAgB,KALlB,EAME;AACA,UAAM,IAAIE,KAAJ,CAAW;AACrB;AACA;AACA;AACA,sJAJU,CAAN;AAKD;AACF;;eAEcL,Y","sourcesContent":["import { Platform } from 'react-native';\nimport RNDeviceInfoModule from '../fabric/NativeDeviceInfoModule';\n\nlet RNDeviceInfo = RNDeviceInfoModule;\n\n// @ts-ignore\nif (Platform.OS === 'web' || Platform.OS === 'dom') {\n RNDeviceInfo = require('../web');\n}\n\nif (!RNDeviceInfo) {\n // Produce an error if we don't have the native module\n if (\n Platform.OS === 'android' ||\n Platform.OS === 'ios' ||\n Platform.OS === 'web' ||\n // @ts-ignore\n Platform.OS === 'dom'\n ) {\n throw new Error(`react-native-device-info: NativeModule.RNDeviceInfo is null. To fix this issue try these steps:\n • For react-native <= 0.59: Run \\`react-native link react-native-device-info\\` in the project root.\n • Rebuild and re-run the app.\n • If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-device-info/react-native-device-info`);\n }\n}\n\nexport default RNDeviceInfo;\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.native.js b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.native.js +new file mode 100644 +index 0000000..6e8494e +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/nativeInterface.native.js +@@ -0,0 +1,18 @@ ++"use strict"; ++ ++Object.defineProperty(exports, "__esModule", { ++ value: true ++}); ++exports.default = void 0; ++ ++var _reactNative = require("react-native"); ++ ++var _NativeDeviceInfoModule = _interopRequireDefault(require("../fabric/NativeDeviceInfoModule")); ++ ++function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } ++ ++let RNDeviceInfo = _NativeDeviceInfoModule.default; // @ts-ignore ++ ++var _default = RNDeviceInfo; ++exports.default = _default; ++//# sourceMappingURL=nativeInterface.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js b/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js +index 3053d7f..bb43c78 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js +@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.clearMemo = clearMemo; +-exports.getSupportedPlatformInfoSync = getSupportedPlatformInfoSync; + exports.getSupportedPlatformInfoAsync = getSupportedPlatformInfoAsync; + exports.getSupportedPlatformInfoFunctions = getSupportedPlatformInfoFunctions; ++exports.getSupportedPlatformInfoSync = getSupportedPlatformInfoSync; + + var _reactNative = require("react-native"); + +@@ -37,12 +37,14 @@ function getSupportedFunction(supportedPlatforms, getter, defaultGetter) { + */ + + +-function getSupportedPlatformInfoSync({ +- getter, +- supportedPlatforms, +- defaultValue, +- memoKey +-}) { ++function getSupportedPlatformInfoSync(_ref) { ++ let { ++ getter, ++ supportedPlatforms, ++ defaultValue, ++ memoKey ++ } = _ref; ++ + if (memoKey && memo[memoKey] != undefined) { + return memo[memoKey]; + } else { +@@ -61,12 +63,14 @@ function getSupportedPlatformInfoSync({ + */ + + +-async function getSupportedPlatformInfoAsync({ +- getter, +- supportedPlatforms, +- defaultValue, +- memoKey +-}) { ++async function getSupportedPlatformInfoAsync(_ref2) { ++ let { ++ getter, ++ supportedPlatforms, ++ defaultValue, ++ memoKey ++ } = _ref2; ++ + if (memoKey && memo[memoKey] != undefined) { + return memo[memoKey]; + } else { +@@ -85,10 +89,11 @@ async function getSupportedPlatformInfoAsync({ + */ + + +-function getSupportedPlatformInfoFunctions({ +- syncGetter, +- ...asyncParams +-}) { ++function getSupportedPlatformInfoFunctions(_ref3) { ++ let { ++ syncGetter, ++ ...asyncParams ++ } = _ref3; + return [() => getSupportedPlatformInfoAsync(asyncParams), () => getSupportedPlatformInfoSync({ ...asyncParams, + getter: syncGetter + })]; +diff --git a/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js.map b/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js.map +index 4b5bf6e..079791a 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js.map ++++ b/node_modules/react-native-device-info/lib/commonjs/internal/supported-platform-info.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["supported-platform-info.ts"],"names":["memo","clearMemo","getSupportedFunction","supportedPlatforms","getter","defaultGetter","supportedMap","filter","key","Platform","OS","forEach","select","default","getSupportedPlatformInfoSync","defaultValue","memoKey","undefined","output","getSupportedPlatformInfoAsync","Promise","resolve","getSupportedPlatformInfoFunctions","syncGetter","asyncParams"],"mappings":";;;;;;;;;;AAAA;;AAWA;AACA,IAAIA,IAAc,GAAG,EAArB;;AAEO,SAASC,SAAT,GAAqB;AAC1BD,EAAAA,IAAI,GAAG,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,CACEC,kBADF,EAEEC,MAFF,EAGEC,aAHF,EAIa;AACX,MAAIC,YAAiB,GAAG,EAAxB;AACAH,EAAAA,kBAAkB,CACfI,MADH,CACWC,GAAD,IAASC,sBAASC,EAAT,IAAeF,GADlC,EAEGG,OAFH,CAEYH,GAAD,IAAUF,YAAY,CAACE,GAAD,CAAZ,GAAoBJ,MAFzC;AAGA,SAAOK,sBAASG,MAAT,CAAgB,EACrB,GAAGN,YADkB;AAErBO,IAAAA,OAAO,EAAER;AAFY,GAAhB,CAAP;AAID;AAED;AACA;AACA;AACA;;;AACO,SAASS,4BAAT,CAAyC;AAC9CV,EAAAA,MAD8C;AAE9CD,EAAAA,kBAF8C;AAG9CY,EAAAA,YAH8C;AAI9CC,EAAAA;AAJ8C,CAAzC,EAKsC;AAC3C,MAAIA,OAAO,IAAIhB,IAAI,CAACgB,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOjB,IAAI,CAACgB,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAGhB,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MAAMW,YAAnC,CAApB,EAAf;;AACA,QAAIC,OAAJ,EAAa;AACXhB,MAAAA,IAAI,CAACgB,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AACD,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;;AACO,eAAeC,6BAAf,CAAgD;AACrDf,EAAAA,MADqD;AAErDD,EAAAA,kBAFqD;AAGrDY,EAAAA,YAHqD;AAIrDC,EAAAA;AAJqD,CAAhD,EAKgD;AACrD,MAAIA,OAAO,IAAIhB,IAAI,CAACgB,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOjB,IAAI,CAACgB,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAG,MAAMhB,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MACpEgB,OAAO,CAACC,OAAR,CAAgBN,YAAhB,CADuC,CAApB,EAArB;;AAGA,QAAIC,OAAJ,EAAa;AACXhB,MAAAA,IAAI,CAACgB,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AAED,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;;AACO,SAASI,iCAAT,CAA8C;AACnDC,EAAAA,UADmD;AAEnD,KAAGC;AAFgD,CAA9C,EAGyE;AAC9E,SAAO,CACL,MAAML,6BAA6B,CAACK,WAAD,CAD9B,EAEL,MAAMV,4BAA4B,CAAC,EAAE,GAAGU,WAAL;AAAkBpB,IAAAA,MAAM,EAAEmB;AAA1B,GAAD,CAF7B,CAAP;AAID","sourcesContent":["import { Platform } from 'react-native';\n\nimport {\n PlatformArray,\n Getter,\n GetSupportedPlatformInfoAsyncParams,\n GetSupportedPlatformInfoSyncParams,\n GetSupportedPlatformInfoFunctionsParams,\n} from './privateTypes';\n\ntype MemoType = { [key: string]: any };\n// centralized memo object\nlet memo: MemoType = {};\n\nexport function clearMemo() {\n memo = {};\n}\n\n/**\n * function returns the proper getter based current platform X supported platforms\n * @param supportedPlatforms array of supported platforms (OS)\n * @param getter desired function used to get info\n * @param defaultGetter getter that returns a default value if desired getter is not supported by current platform\n */\nfunction getSupportedFunction(\n supportedPlatforms: PlatformArray,\n getter: Getter,\n defaultGetter: Getter\n): Getter {\n let supportedMap: any = {};\n supportedPlatforms\n .filter((key) => Platform.OS == key)\n .forEach((key) => (supportedMap[key] = getter));\n return Platform.select({\n ...supportedMap,\n default: defaultGetter,\n });\n}\n\n/**\n * function used to get desired info synchronously — with optional memoization\n * @param param0\n */\nexport function getSupportedPlatformInfoSync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoSyncParams): T {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = getSupportedFunction(supportedPlatforms, getter, () => defaultValue)();\n if (memoKey) {\n memo[memoKey] = output;\n }\n return output;\n }\n}\n\n/**\n * function used to get desired info asynchronously — with optional memoization\n * @param param0\n */\nexport async function getSupportedPlatformInfoAsync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoAsyncParams): Promise {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = await getSupportedFunction(supportedPlatforms, getter, () =>\n Promise.resolve(defaultValue)\n )();\n if (memoKey) {\n memo[memoKey] = output;\n }\n\n return output;\n }\n}\n\n/**\n * function that returns array of getter functions [async, sync]\n * @param param0\n */\nexport function getSupportedPlatformInfoFunctions({\n syncGetter,\n ...asyncParams\n}: GetSupportedPlatformInfoFunctionsParams): [Getter>, Getter] {\n return [\n () => getSupportedPlatformInfoAsync(asyncParams),\n () => getSupportedPlatformInfoSync({ ...asyncParams, getter: syncGetter }),\n ];\n}\n"]} +\ No newline at end of file ++{"version":3,"sources":["supported-platform-info.ts"],"names":["memo","clearMemo","getSupportedFunction","supportedPlatforms","getter","defaultGetter","supportedMap","filter","key","Platform","OS","forEach","select","default","getSupportedPlatformInfoSync","defaultValue","memoKey","undefined","output","getSupportedPlatformInfoAsync","Promise","resolve","getSupportedPlatformInfoFunctions","syncGetter","asyncParams"],"mappings":";;;;;;;;;;AAAA;;AAWA;AACA,IAAIA,IAAc,GAAG,EAArB;;AAEO,SAASC,SAAT,GAAqB;AAC1BD,EAAAA,IAAI,GAAG,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,CACEC,kBADF,EAEEC,MAFF,EAGEC,aAHF,EAIa;AACX,MAAIC,YAAiB,GAAG,EAAxB;AACAH,EAAAA,kBAAkB,CACfI,MADH,CACWC,GAAD,IAASC,sBAASC,EAAT,IAAeF,GADlC,EAEGG,OAFH,CAEYH,GAAD,IAAUF,YAAY,CAACE,GAAD,CAAZ,GAAoBJ,MAFzC;AAGA,SAAOK,sBAASG,MAAT,CAAgB,EACrB,GAAGN,YADkB;AAErBO,IAAAA,OAAO,EAAER;AAFY,GAAhB,CAAP;AAID;AAED;AACA;AACA;AACA;;;AACO,SAASS,4BAAT,OAKsC;AAAA,MALG;AAC9CV,IAAAA,MAD8C;AAE9CD,IAAAA,kBAF8C;AAG9CY,IAAAA,YAH8C;AAI9CC,IAAAA;AAJ8C,GAKH;;AAC3C,MAAIA,OAAO,IAAIhB,IAAI,CAACgB,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOjB,IAAI,CAACgB,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAGhB,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MAAMW,YAAnC,CAApB,EAAf;;AACA,QAAIC,OAAJ,EAAa;AACXhB,MAAAA,IAAI,CAACgB,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AACD,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;;AACO,eAAeC,6BAAf,QAKgD;AAAA,MALA;AACrDf,IAAAA,MADqD;AAErDD,IAAAA,kBAFqD;AAGrDY,IAAAA,YAHqD;AAIrDC,IAAAA;AAJqD,GAKA;;AACrD,MAAIA,OAAO,IAAIhB,IAAI,CAACgB,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOjB,IAAI,CAACgB,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAG,MAAMhB,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MACpEgB,OAAO,CAACC,OAAR,CAAgBN,YAAhB,CADuC,CAApB,EAArB;;AAGA,QAAIC,OAAJ,EAAa;AACXhB,MAAAA,IAAI,CAACgB,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AAED,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;;AACO,SAASI,iCAAT,QAGyE;AAAA,MAH3B;AACnDC,IAAAA,UADmD;AAEnD,OAAGC;AAFgD,GAG2B;AAC9E,SAAO,CACL,MAAML,6BAA6B,CAACK,WAAD,CAD9B,EAEL,MAAMV,4BAA4B,CAAC,EAAE,GAAGU,WAAL;AAAkBpB,IAAAA,MAAM,EAAEmB;AAA1B,GAAD,CAF7B,CAAP;AAID","sourcesContent":["import { Platform } from 'react-native';\n\nimport {\n PlatformArray,\n Getter,\n GetSupportedPlatformInfoAsyncParams,\n GetSupportedPlatformInfoSyncParams,\n GetSupportedPlatformInfoFunctionsParams,\n} from './privateTypes';\n\ntype MemoType = { [key: string]: any };\n// centralized memo object\nlet memo: MemoType = {};\n\nexport function clearMemo() {\n memo = {};\n}\n\n/**\n * function returns the proper getter based current platform X supported platforms\n * @param supportedPlatforms array of supported platforms (OS)\n * @param getter desired function used to get info\n * @param defaultGetter getter that returns a default value if desired getter is not supported by current platform\n */\nfunction getSupportedFunction(\n supportedPlatforms: PlatformArray,\n getter: Getter,\n defaultGetter: Getter\n): Getter {\n let supportedMap: any = {};\n supportedPlatforms\n .filter((key) => Platform.OS == key)\n .forEach((key) => (supportedMap[key] = getter));\n return Platform.select({\n ...supportedMap,\n default: defaultGetter,\n });\n}\n\n/**\n * function used to get desired info synchronously — with optional memoization\n * @param param0\n */\nexport function getSupportedPlatformInfoSync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoSyncParams): T {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = getSupportedFunction(supportedPlatforms, getter, () => defaultValue)();\n if (memoKey) {\n memo[memoKey] = output;\n }\n return output;\n }\n}\n\n/**\n * function used to get desired info asynchronously — with optional memoization\n * @param param0\n */\nexport async function getSupportedPlatformInfoAsync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoAsyncParams): Promise {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = await getSupportedFunction(supportedPlatforms, getter, () =>\n Promise.resolve(defaultValue)\n )();\n if (memoKey) {\n memo[memoKey] = output;\n }\n\n return output;\n }\n}\n\n/**\n * function that returns array of getter functions [async, sync]\n * @param param0\n */\nexport function getSupportedPlatformInfoFunctions({\n syncGetter,\n ...asyncParams\n}: GetSupportedPlatformInfoFunctionsParams): [Getter>, Getter] {\n return [\n () => getSupportedPlatformInfoAsync(asyncParams),\n () => getSupportedPlatformInfoSync({ ...asyncParams, getter: syncGetter }),\n ];\n}\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/commonjs/web/index.js b/node_modules/react-native-device-info/lib/commonjs/web/index.js +index d222f30..656b19a 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/web/index.js ++++ b/node_modules/react-native-device-info/lib/commonjs/web/index.js +@@ -3,7 +3,7 @@ + Object.defineProperty(exports, "__esModule", { + value: true + }); +-exports.getPowerStateSync = exports.getPowerState = exports.getTotalMemory = exports.getUsedMemory = exports.getMaxMemory = exports.getFreeDiskStorageSync = exports.getFreeDiskStorage = exports.getTotalDiskCapacitySync = exports.getTotalDiskCapacity = exports.getBaseOs = exports.isAirplaneMode = exports.isLocationEnabled = exports.getBatteryLevelSync = exports.getBatteryLevel = exports.isCameraPresentSync = exports.isCameraPresent = exports.isBatteryChargingSync = exports.isBatteryCharging = exports.getUserAgent = exports.getInstallReferrer = exports.getUsedMemorySync = exports.getTotalMemorySync = exports.isLocationEnabledSync = exports.getUserAgentSync = exports.isAirplaneModeSync = exports.getInstallReferrerSync = exports.getMaxMemorySync = void 0; ++exports.isLocationEnabledSync = exports.isLocationEnabled = exports.isCameraPresentSync = exports.isCameraPresent = exports.isBatteryChargingSync = exports.isBatteryCharging = exports.isAirplaneModeSync = exports.isAirplaneMode = exports.getUserAgentSync = exports.getUserAgent = exports.getUsedMemorySync = exports.getUsedMemory = exports.getTotalMemorySync = exports.getTotalMemory = exports.getTotalDiskCapacitySync = exports.getTotalDiskCapacity = exports.getPowerStateSync = exports.getPowerState = exports.getMaxMemorySync = exports.getMaxMemory = exports.getInstallReferrerSync = exports.getInstallReferrer = exports.getFreeDiskStorageSync = exports.getFreeDiskStorage = exports.getBatteryLevelSync = exports.getBatteryLevel = exports.getBaseOs = void 0; + + var _reactNative = require("react-native"); + +@@ -220,9 +220,12 @@ exports.getBaseOs = getBaseOs; + + const getTotalDiskCapacity = async () => { + if (navigator.storage && navigator.storage.estimate) { +- return navigator.storage.estimate().then(({ +- quota +- }) => quota); ++ return navigator.storage.estimate().then(_ref => { ++ let { ++ quota ++ } = _ref; ++ return quota; ++ }); + } + + return -1; +@@ -239,10 +242,13 @@ exports.getTotalDiskCapacitySync = getTotalDiskCapacitySync; + + const getFreeDiskStorage = async () => { + if (navigator.storage && navigator.storage.estimate) { +- return navigator.storage.estimate().then(({ +- quota, +- usage +- }) => quota - usage); ++ return navigator.storage.estimate().then(_ref2 => { ++ let { ++ quota, ++ usage ++ } = _ref2; ++ return quota - usage; ++ }); + } + + return -1; +diff --git a/node_modules/react-native-device-info/lib/commonjs/web/index.js.map b/node_modules/react-native-device-info/lib/commonjs/web/index.js.map +index 7c4991f..a0e32de 100644 +--- a/node_modules/react-native-device-info/lib/commonjs/web/index.js.map ++++ b/node_modules/react-native-device-info/lib/commonjs/web/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.js"],"names":["deviceInfoEmitter","NativeEventEmitter","NativeModules","RNDeviceInfo","batteryCharging","batteryLevel","powerState","_readPowerState","battery","level","charging","chargingtime","dischargingtime","lowPowerMode","batteryState","getMaxMemorySync","window","performance","memory","jsHeapSizeLimit","getInstallReferrerSync","document","referrer","isAirplaneModeSync","navigator","onLine","getUserAgentSync","userAgent","isLocationEnabledSync","geolocation","getTotalMemorySync","deviceMemory","getUsedMemorySync","usedJSHeapSize","init","getBattery","then","addEventListener","emit","getBaseOsSync","platform","macosPlatforms","windowsPlatforms","iosPlatforms","os","indexOf","test","getInstallReferrer","getUserAgent","isBatteryCharging","isBatteryChargingSync","isCameraPresent","mediaDevices","enumerateDevices","devices","find","d","kind","isCameraPresentSync","console","log","getBatteryLevel","getBatteryLevelSync","isLocationEnabled","isAirplaneMode","getBaseOs","getTotalDiskCapacity","storage","estimate","quota","getTotalDiskCapacitySync","getFreeDiskStorage","usage","getFreeDiskStorageSync","getMaxMemory","getUsedMemory","getTotalMemory","getPowerState","getPowerStateSync"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\nlet batteryCharging = false,\n batteryLevel = -1,\n powerState = {};\n\nconst _readPowerState = (battery) => {\n const { level, charging, chargingtime, dischargingtime } = battery;\n\n return {\n batteryLevel: level,\n lowPowerMode: false,\n batteryState: level === 1 ? 'full' : charging ? 'charging' : 'unplugged',\n chargingtime,\n dischargingtime,\n };\n};\n\nexport const getMaxMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.jsHeapSizeLimit;\n }\n return -1;\n};\n\nexport const getInstallReferrerSync = () => {\n return document.referrer;\n};\n\nexport const isAirplaneModeSync = () => {\n return !!navigator.onLine;\n};\n\nexport const getUserAgentSync = () => {\n return window.navigator.userAgent;\n};\n\nexport const isLocationEnabledSync = () => {\n return !!navigator.geolocation;\n};\n\nexport const getTotalMemorySync = () => {\n if (navigator.deviceMemory) {\n return navigator.deviceMemory * 1000000000;\n }\n return -1;\n};\n\nexport const getUsedMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.usedJSHeapSize;\n }\n return -1;\n};\n\nconst init = () => {\n if (typeof navigator === 'undefined' || !navigator.getBattery) return;\n\n navigator.getBattery().then((battery) => {\n batteryCharging = battery.charging;\n\n battery.addEventListener('chargingchange', () => {\n const { charging } = battery;\n\n batteryCharging = charging;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_powerStateDidChange', powerState);\n });\n\n battery.addEventListener('levelchange', () => {\n const { level } = battery;\n\n batteryLevel = level;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelDidChange', level);\n if (level < 0.2) {\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelIsLow', level);\n }\n });\n });\n};\n\nconst getBaseOsSync = () => {\n const userAgent = window.navigator.userAgent,\n platform = window.navigator.platform,\n macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n let os = platform;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = 'Mac OS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = 'Windows';\n } else if (/Android/.test(userAgent)) {\n os = 'Android';\n } else if (!os && /Linux/.test(platform)) {\n os = 'Linux';\n }\n\n return os;\n};\n\ninit();\n/**\n * react-native-web empty polyfill.\n */\n\nexport const getInstallReferrer = async () => {\n return getInstallReferrerSync();\n};\n\nexport const getUserAgent = async () => {\n return getUserAgentSync();\n};\n\nexport const isBatteryCharging = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.charging);\n }\n return false;\n};\n\nexport const isBatteryChargingSync = () => {\n return batteryCharging;\n};\n\nexport const isCameraPresent = async () => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(devices => {\n return !!devices.find((d) => d.kind === 'videoinput');\n });\n }\n return false;\n};\n\nexport const isCameraPresentSync = () => {\n console.log(\n '[react-native-device-info] isCameraPresentSync not supported - please use isCameraPresent'\n );\n return false;\n};\n\nexport const getBatteryLevel = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.level);\n }\n return -1;\n};\n\nexport const getBatteryLevelSync = () => {\n return batteryLevel;\n};\n\nexport const isLocationEnabled = async () => {\n return isLocationEnabledSync();\n};\n\nexport const isAirplaneMode = async () => {\n return isAirplaneModeSync();\n};\n\nexport const getBaseOs = async () => {\n return getBaseOsSync();\n};\n\nexport const getTotalDiskCapacity = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota }) => quota)\n }\n return -1;\n};\n\nexport const getTotalDiskCapacitySync = () => {\n console.log(\n '[react-native-device-info] getTotalDiskCapacitySync not supported - please use getTotalDiskCapacity'\n );\n return -1;\n};\n\nexport const getFreeDiskStorage = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota, usage }) => quota - usage)\n }\n return -1;\n};\n\nexport const getFreeDiskStorageSync = () => {\n console.log(\n '[react-native-device-info] getFreeDiskStorageSync not supported - please use getFreeDiskStorage'\n );\n return -1;\n};\n\nexport const getMaxMemory = async () => {\n return getMaxMemorySync();\n};\n\nexport const getUsedMemory = async () => {\n return getUsedMemorySync();\n};\n\nexport const getTotalMemory = async () => {\n return getTotalMemorySync();\n};\n\nexport const getPowerState = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then((battery) => _readPowerState(battery))\n }\n return {};\n};\n\nexport const getPowerStateSync = () => {\n return powerState;\n};\n"]} +\ No newline at end of file ++{"version":3,"sources":["index.js"],"names":["deviceInfoEmitter","NativeEventEmitter","NativeModules","RNDeviceInfo","batteryCharging","batteryLevel","powerState","_readPowerState","battery","level","charging","chargingtime","dischargingtime","lowPowerMode","batteryState","getMaxMemorySync","window","performance","memory","jsHeapSizeLimit","getInstallReferrerSync","document","referrer","isAirplaneModeSync","navigator","onLine","getUserAgentSync","userAgent","isLocationEnabledSync","geolocation","getTotalMemorySync","deviceMemory","getUsedMemorySync","usedJSHeapSize","init","getBattery","then","addEventListener","emit","getBaseOsSync","platform","macosPlatforms","windowsPlatforms","iosPlatforms","os","indexOf","test","getInstallReferrer","getUserAgent","isBatteryCharging","isBatteryChargingSync","isCameraPresent","mediaDevices","enumerateDevices","devices","find","d","kind","isCameraPresentSync","console","log","getBatteryLevel","getBatteryLevelSync","isLocationEnabled","isAirplaneMode","getBaseOs","getTotalDiskCapacity","storage","estimate","quota","getTotalDiskCapacitySync","getFreeDiskStorage","usage","getFreeDiskStorageSync","getMaxMemory","getUsedMemory","getTotalMemory","getPowerState","getPowerStateSync"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\nlet batteryCharging = false,\n batteryLevel = -1,\n powerState = {};\n\nconst _readPowerState = (battery) => {\n const { level, charging, chargingtime, dischargingtime } = battery;\n\n return {\n batteryLevel: level,\n lowPowerMode: false,\n batteryState: level === 1 ? 'full' : charging ? 'charging' : 'unplugged',\n chargingtime,\n dischargingtime,\n };\n};\n\nexport const getMaxMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.jsHeapSizeLimit;\n }\n return -1;\n};\n\nexport const getInstallReferrerSync = () => {\n return document.referrer;\n};\n\nexport const isAirplaneModeSync = () => {\n return !!navigator.onLine;\n};\n\nexport const getUserAgentSync = () => {\n return window.navigator.userAgent;\n};\n\nexport const isLocationEnabledSync = () => {\n return !!navigator.geolocation;\n};\n\nexport const getTotalMemorySync = () => {\n if (navigator.deviceMemory) {\n return navigator.deviceMemory * 1000000000;\n }\n return -1;\n};\n\nexport const getUsedMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.usedJSHeapSize;\n }\n return -1;\n};\n\nconst init = () => {\n if (typeof navigator === 'undefined' || !navigator.getBattery) return;\n\n navigator.getBattery().then((battery) => {\n batteryCharging = battery.charging;\n\n battery.addEventListener('chargingchange', () => {\n const { charging } = battery;\n\n batteryCharging = charging;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_powerStateDidChange', powerState);\n });\n\n battery.addEventListener('levelchange', () => {\n const { level } = battery;\n\n batteryLevel = level;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelDidChange', level);\n if (level < 0.2) {\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelIsLow', level);\n }\n });\n });\n};\n\nconst getBaseOsSync = () => {\n const userAgent = window.navigator.userAgent,\n platform = window.navigator.platform,\n macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n let os = platform;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = 'Mac OS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = 'Windows';\n } else if (/Android/.test(userAgent)) {\n os = 'Android';\n } else if (!os && /Linux/.test(platform)) {\n os = 'Linux';\n }\n\n return os;\n};\n\ninit();\n/**\n * react-native-web empty polyfill.\n */\n\nexport const getInstallReferrer = async () => {\n return getInstallReferrerSync();\n};\n\nexport const getUserAgent = async () => {\n return getUserAgentSync();\n};\n\nexport const isBatteryCharging = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.charging);\n }\n return false;\n};\n\nexport const isBatteryChargingSync = () => {\n return batteryCharging;\n};\n\nexport const isCameraPresent = async () => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(devices => {\n return !!devices.find((d) => d.kind === 'videoinput');\n });\n }\n return false;\n};\n\nexport const isCameraPresentSync = () => {\n console.log(\n '[react-native-device-info] isCameraPresentSync not supported - please use isCameraPresent'\n );\n return false;\n};\n\nexport const getBatteryLevel = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.level);\n }\n return -1;\n};\n\nexport const getBatteryLevelSync = () => {\n return batteryLevel;\n};\n\nexport const isLocationEnabled = async () => {\n return isLocationEnabledSync();\n};\n\nexport const isAirplaneMode = async () => {\n return isAirplaneModeSync();\n};\n\nexport const getBaseOs = async () => {\n return getBaseOsSync();\n};\n\nexport const getTotalDiskCapacity = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota }) => quota)\n }\n return -1;\n};\n\nexport const getTotalDiskCapacitySync = () => {\n console.log(\n '[react-native-device-info] getTotalDiskCapacitySync not supported - please use getTotalDiskCapacity'\n );\n return -1;\n};\n\nexport const getFreeDiskStorage = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota, usage }) => quota - usage)\n }\n return -1;\n};\n\nexport const getFreeDiskStorageSync = () => {\n console.log(\n '[react-native-device-info] getFreeDiskStorageSync not supported - please use getFreeDiskStorage'\n );\n return -1;\n};\n\nexport const getMaxMemory = async () => {\n return getMaxMemorySync();\n};\n\nexport const getUsedMemory = async () => {\n return getUsedMemorySync();\n};\n\nexport const getTotalMemory = async () => {\n return getTotalMemorySync();\n};\n\nexport const getPowerState = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then((battery) => _readPowerState(battery))\n }\n return {};\n};\n\nexport const getPowerStateSync = () => {\n return powerState;\n};\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js b/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js +new file mode 100644 +index 0000000..9455226 +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js +@@ -0,0 +1,3 @@ ++import { TurboModuleRegistry } from 'react-native'; ++export default TurboModuleRegistry.get('RNDeviceInfo'); ++//# sourceMappingURL=NativeDeviceInfoModule.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js.map b/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js.map +new file mode 100644 +index 0000000..7915f74 +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/module/fabric/NativeDeviceInfoModule.js.map +@@ -0,0 +1 @@ ++{"version":3,"sources":["NativeDeviceInfoModule.ts"],"names":["TurboModuleRegistry","getEnforcing"],"mappings":"AAAA,SAASA,mBAAT,QAAiD,cAAjD;AAuJA,eAAeA,mBAAmB,CAACC,YAApB,CAAuC,cAAvC,CAAf","sourcesContent":["import { TurboModuleRegistry, TurboModule } from 'react-native';\n\nexport interface Spec extends TurboModule {\n getPowerState: () => Promise<{\n batteryLevel: number;\n batteryState: string;\n lowPowerMode: boolean;\n }>;\n getPowerStateSync: () => {\n batteryLevel: number;\n batteryState: string;\n lowPowerMode: boolean;\n }; // should be PowerState\n getSupported32BitAbis: () => Promise;\n getSupported32BitAbisSync: () => string[];\n getSupported64BitAbis: () => Promise;\n getSupported64BitAbisSync: () => string[];\n getSupportedAbis: () => Promise;\n getSupportedAbisSync: () => string[];\n getSystemManufacturer: () => Promise;\n getSystemManufacturerSync: () => string;\n getAndroidId: () => Promise;\n getAndroidIdSync: () => string;\n getApiLevel: () => Promise;\n getApiLevelSync: () => number;\n getAvailableLocationProviders: () => Promise;\n getAvailableLocationProvidersSync: () => Object; // should be LocationProviderInfo\n getBaseOs: () => Promise;\n getBaseOsSync: () => string;\n getBatteryLevel: () => Promise;\n getBatteryLevelSync: () => number;\n getBootloader: () => Promise;\n getBootloaderSync: () => string;\n getBuildId: () => Promise;\n getBuildIdSync: () => string;\n getCarrier: () => Promise;\n getCarrierSync: () => string;\n getCodename: () => Promise;\n getCodenameSync: () => string;\n getDevice: () => Promise;\n getDeviceName: () => Promise;\n getDeviceNameSync: () => string;\n getDeviceSync: () => string;\n getDeviceToken: () => Promise;\n getDisplay: () => Promise;\n getDisplaySync: () => string;\n getFingerprint: () => Promise;\n getFingerprintSync: () => string;\n getFirstInstallTime: () => Promise;\n getFirstInstallTimeSync: () => number;\n getFontScale: () => Promise;\n getFontScaleSync: () => number;\n getFreeDiskStorage: () => Promise;\n getFreeDiskStorageOld: () => Promise;\n getFreeDiskStorageSync: () => number;\n getFreeDiskStorageOldSync: () => number;\n getHardware: () => Promise;\n getHardwareSync: () => string;\n getHost: () => Promise;\n getHostSync: () => string;\n getIncremental: () => Promise;\n getIncrementalSync: () => string;\n getInstallerPackageName: () => Promise;\n getInstallerPackageNameSync: () => string;\n getInstallReferrer: () => Promise;\n getInstallReferrerSync: () => string;\n getInstanceId: () => Promise;\n getInstanceIdSync: () => string;\n getIpAddress: () => Promise;\n getIpAddressSync: () => string;\n getLastUpdateTime: () => Promise;\n getLastUpdateTimeSync: () => number;\n getMacAddress: () => Promise;\n getMacAddressSync: () => string;\n getMaxMemory: () => Promise;\n getMaxMemorySync: () => number;\n getPhoneNumber: () => Promise;\n getPhoneNumberSync: () => string;\n getPreviewSdkInt: () => Promise;\n getPreviewSdkIntSync: () => number;\n getProduct: () => Promise;\n getProductSync: () => string;\n getSecurityPatch: () => Promise;\n getSecurityPatchSync: () => string;\n getSerialNumber: () => Promise;\n getSerialNumberSync: () => string;\n getSystemAvailableFeatures: () => Promise;\n getSystemAvailableFeaturesSync: () => string[];\n getTags: () => Promise;\n getTagsSync: () => string;\n getTotalDiskCapacity: () => Promise;\n getTotalDiskCapacityOld: () => Promise;\n getTotalDiskCapacitySync: () => number;\n getTotalDiskCapacityOldSync: () => number;\n getTotalMemory: () => Promise;\n getTotalMemorySync: () => number;\n getType: () => Promise;\n getTypeSync: () => string;\n getUniqueId: () => Promise;\n getUniqueIdSync: () => string;\n getUsedMemory: () => Promise;\n getUsedMemorySync: () => number;\n getUserAgent: () => Promise;\n getUserAgentSync: () => string;\n getBrightness: () => Promise;\n getBrightnessSync: () => number;\n hasGms: () => Promise;\n hasGmsSync: () => boolean;\n hasHms: () => Promise;\n hasHmsSync: () => boolean;\n hasSystemFeature: (feature: string) => Promise;\n hasSystemFeatureSync: (feature: string) => boolean;\n isAirplaneMode: () => Promise;\n isAirplaneModeSync: () => boolean;\n isBatteryCharging: () => Promise;\n isBatteryChargingSync: () => boolean;\n isCameraPresent: () => Promise;\n isCameraPresentSync: () => boolean;\n isEmulator: () => Promise;\n isEmulatorSync: () => boolean;\n isHeadphonesConnected: () => Promise;\n isHeadphonesConnectedSync: () => boolean;\n isLocationEnabled: () => Promise;\n isLocationEnabledSync: () => boolean;\n isPinOrFingerprintSet: () => Promise;\n isPinOrFingerprintSetSync: () => boolean;\n isMouseConnected: () => Promise;\n isMouseConnectedSync: () => boolean;\n isKeyboardConnected: () => Promise;\n isKeyboardConnectedSync: () => boolean;\n isTabletMode: () => Promise;\n syncUniqueId: () => Promise;\n\n addListener(eventName: string): void;\n removeListeners(count: number): void;\n getConstants(): {\n appName: string;\n appVersion: string;\n brand: string;\n buildNumber: string;\n bundleId: string;\n deviceId: string;\n deviceType: string;\n isTablet: boolean;\n isDisplayZoomed?: boolean;\n model: string;\n systemName: string;\n systemVersion: string;\n };\n}\n\nexport default TurboModuleRegistry.getEnforcing('RNDeviceInfo');\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/index.js b/node_modules/react-native-device-info/lib/module/index.js +index 9db4a5c..6ba1b7f 100644 +--- a/node_modules/react-native-device-info/lib/module/index.js ++++ b/node_modules/react-native-device-info/lib/module/index.js +@@ -1,10 +1,20 @@ + import { useCallback, useEffect, useState } from 'react'; +-import { Dimensions, NativeEventEmitter, NativeModules, Platform } from 'react-native'; ++import { Dimensions, NativeEventEmitter, Platform } from 'react-native'; + import { useOnEvent, useOnMount } from './internal/asyncHookWrappers'; +-import devicesWithDynamicIsland from "./internal/devicesWithDynamicIsland"; ++import devicesWithDynamicIsland from './internal/devicesWithDynamicIsland'; + import devicesWithNotch from './internal/devicesWithNotch'; + import RNDeviceInfo from './internal/nativeInterface'; + import { getSupportedPlatformInfoAsync, getSupportedPlatformInfoFunctions, getSupportedPlatformInfoSync } from './internal/supported-platform-info'; ++let constants; ++ ++function getConstants() { ++ if (constants === undefined) { ++ constants = RNDeviceInfo.getConstants(); ++ } ++ ++ return constants; ++} ++ + export const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({ + memoKey: 'uniqueId', + supportedPlatforms: ['android', 'ios', 'windows'], +@@ -76,7 +86,7 @@ export function getMacAddressSync() { + export const getDeviceId = () => getSupportedPlatformInfoSync({ + defaultValue: 'unknown', + memoKey: 'deviceId', +- getter: () => RNDeviceInfo.deviceId, ++ getter: () => getConstants().deviceId, + supportedPlatforms: ['android', 'ios', 'windows'] + }); + export const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({ +@@ -90,20 +100,20 @@ export const getModel = () => getSupportedPlatformInfoSync({ + memoKey: 'model', + defaultValue: 'unknown', + supportedPlatforms: ['ios', 'android', 'windows'], +- getter: () => RNDeviceInfo.model ++ getter: () => getConstants().model + }); + export const getBrand = () => getSupportedPlatformInfoSync({ + memoKey: 'brand', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.brand ++ getter: () => getConstants().brand + }); + export const getSystemName = () => getSupportedPlatformInfoSync({ + defaultValue: 'unknown', + supportedPlatforms: ['ios', 'android', 'windows'], + memoKey: 'systemName', + getter: () => Platform.select({ +- ios: RNDeviceInfo.systemName, ++ ios: getConstants().systemName, + android: 'Android', + windows: 'Windows', + default: 'unknown' +@@ -111,7 +121,7 @@ export const getSystemName = () => getSupportedPlatformInfoSync({ + }); + export const getSystemVersion = () => getSupportedPlatformInfoSync({ + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.systemVersion, ++ getter: () => getConstants().systemVersion, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'systemVersion' + }); +@@ -133,7 +143,7 @@ export const getBundleId = () => getSupportedPlatformInfoSync({ + memoKey: 'bundleId', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.bundleId ++ getter: () => getConstants().bundleId + }); + export const [getInstallerPackageName, getInstallerPackageNameSync] = getSupportedPlatformInfoFunctions({ + memoKey: 'installerPackageName', +@@ -145,20 +155,20 @@ export const [getInstallerPackageName, getInstallerPackageNameSync] = getSupport + export const getApplicationName = () => getSupportedPlatformInfoSync({ + memoKey: 'appName', + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.appName, ++ getter: () => getConstants().appName, + supportedPlatforms: ['android', 'ios', 'windows'] + }); + export const getBuildNumber = () => getSupportedPlatformInfoSync({ + memoKey: 'buildNumber', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => RNDeviceInfo.buildNumber, ++ getter: () => getConstants().buildNumber, + defaultValue: 'unknown' + }); + export const getVersion = () => getSupportedPlatformInfoSync({ + memoKey: 'version', + defaultValue: 'unknown', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => RNDeviceInfo.appVersion ++ getter: () => getConstants().appVersion + }); + export function getReadableVersion() { + return getVersion() + '.' + getBuildNumber(); +@@ -302,7 +312,13 @@ export const isTablet = () => getSupportedPlatformInfoSync({ + defaultValue: false, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'tablet', +- getter: () => RNDeviceInfo.isTablet ++ getter: () => getConstants().isTablet ++}); ++export const isDisplayZoomed = () => getSupportedPlatformInfoSync({ ++ defaultValue: false, ++ supportedPlatforms: ['ios'], ++ memoKey: 'zoomed', ++ getter: () => getConstants().isDisplayZoomed + }); + export const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions({ + supportedPlatforms: ['android', 'ios', 'windows'], +@@ -313,6 +329,8 @@ export const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPl + let notch; + export function hasNotch() { + if (notch === undefined) { ++ console.log(RNDeviceInfo); ++ + let _brand = getBrand(); + + let _model = getModel(); +@@ -488,7 +506,7 @@ export const getDeviceType = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.deviceType ++ getter: () => getConstants().deviceType + }); + }; + export const getDeviceTypeSync = () => { +@@ -496,7 +514,7 @@ export const getDeviceTypeSync = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.deviceType ++ getter: () => getConstants().deviceType + }); + }; + export const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({ +@@ -595,7 +613,7 @@ export async function getDeviceToken() { + + return 'unknown'; + } +-const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo); ++const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo); + export function useBatteryLevel() { + const [batteryLevel, setBatteryLevel] = useState(null); + useEffect(() => { +@@ -819,6 +837,7 @@ const DeviceInfo = { + isKeyboardConnectedSync, + isTabletMode, + isTablet, ++ isDisplayZoomed, + supported32BitAbis, + supported32BitAbisSync, + supported64BitAbis, +diff --git a/node_modules/react-native-device-info/lib/module/index.js.flow b/node_modules/react-native-device-info/lib/module/index.js.flow +index 02fbb10..fdb85b0 100644 +--- a/node_modules/react-native-device-info/lib/module/index.js.flow ++++ b/node_modules/react-native-device-info/lib/module/index.js.flow +@@ -153,6 +153,7 @@ declare module.exports: { + isKeyboardConnectedSync: () => boolean, + isTabletMode: () => Promise, + isTablet: () => boolean, ++ isDisplayZoomed: () => boolean, + supported32BitAbis: () => Promise, + supported32BitAbisSync: () => string[], + supported64BitAbis: () => Promise, +diff --git a/node_modules/react-native-device-info/lib/module/index.js.map b/node_modules/react-native-device-info/lib/module/index.js.map +index ee4ed0f..05b2714 100644 +--- a/node_modules/react-native-device-info/lib/module/index.js.map ++++ b/node_modules/react-native-device-info/lib/module/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.ts"],"names":["useCallback","useEffect","useState","Dimensions","NativeEventEmitter","NativeModules","Platform","useOnEvent","useOnMount","devicesWithDynamicIsland","devicesWithNotch","RNDeviceInfo","getSupportedPlatformInfoAsync","getSupportedPlatformInfoFunctions","getSupportedPlatformInfoSync","getUniqueId","getUniqueIdSync","memoKey","supportedPlatforms","getter","syncGetter","defaultValue","uniqueId","syncUniqueId","OS","getInstanceId","getInstanceIdSync","getSerialNumber","getSerialNumberSync","getAndroidId","getAndroidIdSync","getIpAddress","getIpAddressSync","isCameraPresent","isCameraPresentSync","getMacAddress","getMacAddressSync","getDeviceId","deviceId","getManufacturer","getManufacturerSync","Promise","resolve","getSystemManufacturer","getSystemManufacturerSync","getModel","model","getBrand","brand","getSystemName","select","ios","systemName","android","windows","default","getSystemVersion","systemVersion","getBuildId","getBuildIdSync","getApiLevel","getApiLevelSync","getBundleId","bundleId","getInstallerPackageName","getInstallerPackageNameSync","getApplicationName","appName","getBuildNumber","buildNumber","getVersion","appVersion","getReadableVersion","getDeviceName","getDeviceNameSync","getUsedMemory","getUsedMemorySync","getUserAgent","getUserAgentSync","getFontScale","getFontScaleSync","getBootloader","getBootloaderSync","getDevice","getDeviceSync","getDisplay","getDisplaySync","getFingerprint","getFingerprintSync","getHardware","getHardwareSync","getHost","getHostSync","getProduct","getProductSync","getTags","getTagsSync","getType","getTypeSync","getBaseOs","getBaseOsSync","getPreviewSdkInt","getPreviewSdkIntSync","getSecurityPatch","getSecurityPatchSync","getCodename","getCodenameSync","getIncremental","getIncrementalSync","isEmulator","isEmulatorSync","isTablet","isPinOrFingerprintSet","isPinOrFingerprintSetSync","notch","hasNotch","undefined","_brand","_model","findIndex","item","toLowerCase","dynamicIsland","hasDynamicIsland","hasGms","hasGmsSync","hasHms","hasHmsSync","getFirstInstallTime","getFirstInstallTimeSync","getInstallReferrer","getInstallReferrerSync","getLastUpdateTime","getLastUpdateTimeSync","getPhoneNumber","getPhoneNumberSync","getCarrier","getCarrierSync","getTotalMemory","getTotalMemorySync","getMaxMemory","getMaxMemorySync","getTotalDiskCapacity","getTotalDiskCapacitySync","getTotalDiskCapacityOld","getTotalDiskCapacityOldSync","getFreeDiskStorage","getFreeDiskStorageSync","getFreeDiskStorageOld","getFreeDiskStorageOldSync","getBatteryLevel","getBatteryLevelSync","getPowerState","getPowerStateSync","isBatteryCharging","isBatteryChargingSync","isLandscape","isLandscapeSync","height","width","get","isAirplaneMode","isAirplaneModeSync","getDeviceType","deviceType","getDeviceTypeSync","supportedAbis","supportedAbisSync","getSupportedAbis","getSupportedAbisSync","supported32BitAbis","supported32BitAbisSync","getSupported32BitAbis","getSupported32BitAbisSync","supported64BitAbis","supported64BitAbisSync","getSupported64BitAbis","getSupported64BitAbisSync","hasSystemFeature","feature","hasSystemFeatureSync","isLowBatteryLevel","level","getSystemAvailableFeatures","getSystemAvailableFeaturesSync","isLocationEnabled","isLocationEnabledSync","isHeadphonesConnected","isHeadphonesConnectedSync","isMouseConnected","isMouseConnectedSync","isKeyboardConnected","isKeyboardConnectedSync","isTabletMode","getAvailableLocationProviders","getAvailableLocationProvidersSync","getBrightness","getBrightnessSync","getDeviceToken","deviceInfoEmitter","useBatteryLevel","batteryLevel","setBatteryLevel","setInitialValue","initialValue","onChange","subscription","addListener","remove","useBatteryLevelIsLow","batteryLevelIsLow","setBatteryLevelIsLow","usePowerState","powerState","setPowerState","state","useIsHeadphonesConnected","useFirstInstallTime","useDeviceName","useHasSystemFeature","asyncGetter","useIsEmulator","useManufacturer","useBrightness","brightness","setBrightness","value","DeviceInfo"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { Dimensions, NativeEventEmitter, NativeModules, Platform } from 'react-native';\nimport { useOnEvent, useOnMount } from './internal/asyncHookWrappers';\nimport devicesWithDynamicIsland from \"./internal/devicesWithDynamicIsland\";\nimport devicesWithNotch from './internal/devicesWithNotch';\nimport RNDeviceInfo from './internal/nativeInterface';\nimport {\n getSupportedPlatformInfoAsync,\n getSupportedPlatformInfoFunctions,\n getSupportedPlatformInfoSync,\n} from './internal/supported-platform-info';\nimport { DeviceInfoModule } from './internal/privateTypes';\nimport type {\n AsyncHookResult,\n DeviceType,\n LocationProviderInfo,\n PowerState,\n} from './internal/types';\n\nexport const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'uniqueId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getUniqueId(),\n syncGetter: () => RNDeviceInfo.getUniqueIdSync(),\n defaultValue: 'unknown',\n});\n\nlet uniqueId: string;\nexport async function syncUniqueId() {\n if (Platform.OS === 'ios') {\n uniqueId = await RNDeviceInfo.syncUniqueId();\n } else {\n uniqueId = await getUniqueId();\n }\n return uniqueId;\n}\n\nexport const [getInstanceId, getInstanceIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'instanceId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getInstanceId(),\n syncGetter: () => RNDeviceInfo.getInstanceIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getSerialNumber, getSerialNumberSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'serialNumber',\n supportedPlatforms: ['android', 'windows'],\n getter: () => RNDeviceInfo.getSerialNumber(),\n syncGetter: () => RNDeviceInfo.getSerialNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getAndroidId, getAndroidIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'androidId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getAndroidId(),\n syncGetter: () => RNDeviceInfo.getAndroidIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIpAddress, getIpAddressSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getIpAddress(),\n syncGetter: () => RNDeviceInfo.getIpAddressSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isCameraPresent, isCameraPresentSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.isCameraPresent(),\n syncGetter: () => RNDeviceInfo.isCameraPresentSync(),\n defaultValue: false,\n});\n\nexport async function getMacAddress() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddress();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport function getMacAddressSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddressSync();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport const getDeviceId = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n memoKey: 'deviceId',\n getter: () => RNDeviceInfo.deviceId,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'manufacturer',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () =>\n Platform.OS == 'ios' ? Promise.resolve('Apple') : RNDeviceInfo.getSystemManufacturer(),\n syncGetter: () => (Platform.OS == 'ios' ? 'Apple' : RNDeviceInfo.getSystemManufacturerSync()),\n defaultValue: 'unknown',\n});\n\nexport const getModel = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'model',\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n getter: () => RNDeviceInfo.model,\n });\n\nexport const getBrand = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'brand',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.brand,\n });\n\nexport const getSystemName = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n memoKey: 'systemName',\n getter: () =>\n Platform.select({\n ios: RNDeviceInfo.systemName,\n android: 'Android',\n windows: 'Windows',\n default: 'unknown',\n }),\n });\n\nexport const getSystemVersion = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.systemVersion,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'systemVersion',\n });\n\nexport const [getBuildId, getBuildIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'buildId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getBuildId(),\n syncGetter: () => RNDeviceInfo.getBuildIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getApiLevel, getApiLevelSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'apiLevel',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getApiLevel(),\n syncGetter: () => RNDeviceInfo.getApiLevelSync(),\n defaultValue: -1,\n});\n\nexport const getBundleId = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'bundleId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.bundleId,\n });\n\nexport const [\n getInstallerPackageName,\n getInstallerPackageNameSync,\n] = getSupportedPlatformInfoFunctions({\n memoKey: 'installerPackageName',\n supportedPlatforms: ['android', 'windows', 'ios'],\n getter: () => RNDeviceInfo.getInstallerPackageName(),\n syncGetter: () => RNDeviceInfo.getInstallerPackageNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const getApplicationName = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'appName',\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.appName,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const getBuildNumber = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'buildNumber',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.buildNumber,\n defaultValue: 'unknown',\n });\n\nexport const getVersion = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'version',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.appVersion,\n });\n\nexport function getReadableVersion() {\n return getVersion() + '.' + getBuildNumber();\n}\n\nexport const [getDeviceName, getDeviceNameSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getDeviceName(),\n syncGetter: () => RNDeviceInfo.getDeviceNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getUsedMemory, getUsedMemorySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getUsedMemory(),\n syncGetter: () => RNDeviceInfo.getUsedMemorySync(),\n defaultValue: -1,\n});\n\nexport const getUserAgent = () =>\n getSupportedPlatformInfoAsync({\n memoKey: 'userAgent',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.getUserAgent(),\n });\n\nexport const getUserAgentSync = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'userAgentSync',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.getUserAgentSync(),\n });\n\nexport const [getFontScale, getFontScaleSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFontScale(),\n syncGetter: () => RNDeviceInfo.getFontScaleSync(),\n defaultValue: -1,\n});\n\nexport const [getBootloader, getBootloaderSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'bootloader',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getBootloader(),\n syncGetter: () => RNDeviceInfo.getBootloaderSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getDevice, getDeviceSync] = getSupportedPlatformInfoFunctions({\n getter: () => RNDeviceInfo.getDevice(),\n syncGetter: () => RNDeviceInfo.getDeviceSync(),\n defaultValue: 'unknown',\n memoKey: 'device',\n supportedPlatforms: ['android'],\n});\n\nexport const [getDisplay, getDisplaySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'display',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getDisplay(),\n syncGetter: () => RNDeviceInfo.getDisplaySync(),\n defaultValue: 'unknown',\n});\n\nexport const [getFingerprint, getFingerprintSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'fingerprint',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getFingerprint(),\n syncGetter: () => RNDeviceInfo.getFingerprintSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHardware, getHardwareSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'hardware',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHardware(),\n syncGetter: () => RNDeviceInfo.getHardwareSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHost, getHostSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'host',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHost(),\n syncGetter: () => RNDeviceInfo.getHostSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getProduct, getProductSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'product',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getProduct(),\n syncGetter: () => RNDeviceInfo.getProductSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTags, getTagsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'tags',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getTags(),\n syncGetter: () => RNDeviceInfo.getTagsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getType, getTypeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'type',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getType(),\n syncGetter: () => RNDeviceInfo.getTypeSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getBaseOs, getBaseOsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'baseOs',\n supportedPlatforms: ['android', 'web', 'windows'],\n getter: () => RNDeviceInfo.getBaseOs(),\n syncGetter: () => RNDeviceInfo.getBaseOsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getPreviewSdkInt, getPreviewSdkIntSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'previewSdkInt',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPreviewSdkInt(),\n syncGetter: () => RNDeviceInfo.getPreviewSdkIntSync(),\n defaultValue: -1,\n});\n\nexport const [getSecurityPatch, getSecurityPatchSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'securityPatch',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSecurityPatch(),\n syncGetter: () => RNDeviceInfo.getSecurityPatchSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCodename, getCodenameSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'codeName',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getCodename(),\n syncGetter: () => RNDeviceInfo.getCodenameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIncremental, getIncrementalSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'incremental',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getIncremental(),\n syncGetter: () => RNDeviceInfo.getIncrementalSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isEmulator, isEmulatorSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'emulator',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isEmulator(),\n syncGetter: () => RNDeviceInfo.isEmulatorSync(),\n defaultValue: false,\n});\n\nexport const isTablet = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'tablet',\n getter: () => RNDeviceInfo.isTablet,\n });\n\nexport const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isPinOrFingerprintSet(),\n syncGetter: () => RNDeviceInfo.isPinOrFingerprintSetSync(),\n defaultValue: false,\n }\n);\n\nlet notch: boolean;\nexport function hasNotch() {\n if (notch === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n notch =\n devicesWithNotch.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return notch;\n}\n\nlet dynamicIsland: boolean;\nexport function hasDynamicIsland() {\n if (dynamicIsland === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n dynamicIsland =\n devicesWithDynamicIsland.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return dynamicIsland;\n}\n\nexport const [hasGms, hasGmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasGms(),\n syncGetter: () => RNDeviceInfo.hasGmsSync(),\n defaultValue: false,\n});\n\nexport const [hasHms, hasHmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasHms(),\n syncGetter: () => RNDeviceInfo.hasHmsSync(),\n defaultValue: false,\n});\n\nexport const [getFirstInstallTime, getFirstInstallTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'firstInstallTime',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFirstInstallTime(),\n syncGetter: () => RNDeviceInfo.getFirstInstallTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getInstallReferrer, getInstallReferrerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'installReferrer',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getInstallReferrer(),\n syncGetter: () => RNDeviceInfo.getInstallReferrerSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getLastUpdateTime, getLastUpdateTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'lastUpdateTime',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getLastUpdateTime(),\n syncGetter: () => RNDeviceInfo.getLastUpdateTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getPhoneNumber, getPhoneNumberSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPhoneNumber(),\n syncGetter: () => RNDeviceInfo.getPhoneNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCarrier, getCarrierSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getCarrier(),\n syncGetter: () => RNDeviceInfo.getCarrierSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTotalMemory, getTotalMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'totalMemory',\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalMemory(),\n syncGetter: () => RNDeviceInfo.getTotalMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getMaxMemory, getMaxMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'maxMemory',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getMaxMemory(),\n syncGetter: () => RNDeviceInfo.getMaxMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getTotalDiskCapacity, getTotalDiskCapacitySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalDiskCapacity(),\n syncGetter: () => RNDeviceInfo.getTotalDiskCapacitySync(),\n defaultValue: -1,\n});\n\nexport async function getTotalDiskCapacityOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacity();\n }\n\n return -1;\n}\n\nexport function getTotalDiskCapacityOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacitySync();\n }\n\n return -1;\n}\n\nexport const [getFreeDiskStorage, getFreeDiskStorageSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getFreeDiskStorage(),\n syncGetter: () => RNDeviceInfo.getFreeDiskStorageSync(),\n defaultValue: -1,\n});\n\nexport async function getFreeDiskStorageOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorage();\n }\n\n return -1;\n}\n\nexport function getFreeDiskStorageOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorageSync();\n }\n\n return -1;\n}\n\nexport const [getBatteryLevel, getBatteryLevelSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getBatteryLevel(),\n syncGetter: () => RNDeviceInfo.getBatteryLevelSync(),\n defaultValue: -1,\n});\n\nexport const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFunctions<\n Partial\n>({\n supportedPlatforms: ['ios', 'android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getPowerState(),\n syncGetter: () => RNDeviceInfo.getPowerStateSync(),\n defaultValue: {},\n});\n\nexport const [isBatteryCharging, isBatteryChargingSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.isBatteryCharging(),\n syncGetter: () => RNDeviceInfo.isBatteryChargingSync(),\n defaultValue: false,\n});\n\nexport async function isLandscape() {\n return Promise.resolve(isLandscapeSync());\n}\n\nexport function isLandscapeSync() {\n const { height, width } = Dimensions.get('window');\n return width >= height;\n}\n\nexport const [isAirplaneMode, isAirplaneModeSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.isAirplaneMode(),\n syncGetter: () => RNDeviceInfo.isAirplaneModeSync(),\n defaultValue: false,\n});\n\nexport const getDeviceType = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.deviceType,\n });\n};\n\nexport const getDeviceTypeSync = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => RNDeviceInfo.deviceType,\n });\n};\n\nexport const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supportedAbis',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getSupportedAbis(),\n syncGetter: () => RNDeviceInfo.getSupportedAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported32BitAbis, supported32BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported32BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported32BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported32BitAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported64BitAbis, supported64BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported64BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported64BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported64BitAbisSync(),\n defaultValue: [],\n});\n\nexport async function hasSystemFeature(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeature(feature);\n }\n return false;\n}\n\nexport function hasSystemFeatureSync(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeatureSync(feature);\n }\n return false;\n}\n\nexport function isLowBatteryLevel(level: number): boolean {\n if (Platform.OS === 'android') {\n return level < 0.15;\n }\n return level < 0.2;\n}\n\nexport const [\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSystemAvailableFeatures(),\n syncGetter: () => RNDeviceInfo.getSystemAvailableFeaturesSync(),\n defaultValue: [] as string[],\n});\n\nexport const [isLocationEnabled, isLocationEnabledSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.isLocationEnabled(),\n syncGetter: () => RNDeviceInfo.isLocationEnabledSync(),\n defaultValue: false,\n});\n\nexport const [isHeadphonesConnected, isHeadphonesConnectedSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.isHeadphonesConnected(),\n syncGetter: () => RNDeviceInfo.isHeadphonesConnectedSync(),\n defaultValue: false,\n }\n);\n\nexport const [isMouseConnected, isMouseConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isMouseConnected(),\n syncGetter: () => RNDeviceInfo.isMouseConnectedSync(),\n defaultValue: false,\n});\n\nexport const [isKeyboardConnected, isKeyboardConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isKeyboardConnected(),\n syncGetter: () => RNDeviceInfo.isKeyboardConnectedSync(),\n defaultValue: false,\n});\n\nexport const isTabletMode = () =>\n getSupportedPlatformInfoAsync({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isTabletMode(),\n defaultValue: false,\n });\n\nexport const [\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getAvailableLocationProviders(),\n syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync(),\n defaultValue: {},\n});\n\nexport const [getBrightness, getBrightnessSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['ios'],\n getter: () => RNDeviceInfo.getBrightness(),\n syncGetter: () => RNDeviceInfo.getBrightnessSync(),\n defaultValue: -1,\n});\n\nexport async function getDeviceToken() {\n if (Platform.OS === 'ios') {\n return RNDeviceInfo.getDeviceToken();\n }\n return 'unknown';\n}\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\nexport function useBatteryLevel(): number | null {\n const [batteryLevel, setBatteryLevel] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n setBatteryLevel(initialValue);\n };\n\n const onChange = (level: number) => {\n setBatteryLevel(level);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_batteryLevelDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevel;\n}\n\nexport function useBatteryLevelIsLow(): number | null {\n const [batteryLevelIsLow, setBatteryLevelIsLow] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue);\n };\n\n setInitialValue();\n\n const onChange = (level: number) => {\n setBatteryLevelIsLow(level);\n };\n\n const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange);\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevelIsLow;\n}\n\nexport function usePowerState(): Partial {\n const [powerState, setPowerState] = useState>({});\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: Partial = await getPowerState();\n setPowerState(initialValue);\n };\n\n const onChange = (state: PowerState) => {\n setPowerState(state);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_powerStateDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return powerState;\n}\n\nexport function useIsHeadphonesConnected(): AsyncHookResult {\n return useOnEvent('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false);\n}\n\nexport function useFirstInstallTime(): AsyncHookResult {\n return useOnMount(getFirstInstallTime, -1);\n}\n\nexport function useDeviceName(): AsyncHookResult {\n return useOnMount(getDeviceName, 'unknown');\n}\n\nexport function useHasSystemFeature(feature: string): AsyncHookResult {\n const asyncGetter = useCallback(() => hasSystemFeature(feature), [feature]);\n return useOnMount(asyncGetter, false);\n}\n\nexport function useIsEmulator(): AsyncHookResult {\n return useOnMount(isEmulator, false);\n}\n\nexport function useManufacturer(): AsyncHookResult {\n return useOnMount(getManufacturer, 'unknown');\n}\n\nexport function useBrightness(): number | null {\n const [brightness, setBrightness] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBrightness();\n setBrightness(initialValue);\n };\n\n const onChange = (value: number) => {\n setBrightness(value);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_brightnessDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return brightness;\n}\n\nexport type { AsyncHookResult, DeviceType, LocationProviderInfo, PowerState };\n\nconst DeviceInfo: DeviceInfoModule = {\n getAndroidId,\n getAndroidIdSync,\n getApiLevel,\n getApiLevelSync,\n getApplicationName,\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n getBaseOs,\n getBaseOsSync,\n getBatteryLevel,\n getBatteryLevelSync,\n getBootloader,\n getBootloaderSync,\n getBrand,\n getBuildId,\n getBuildIdSync,\n getBuildNumber,\n getBundleId,\n getCarrier,\n getCarrierSync,\n getCodename,\n getCodenameSync,\n getDevice,\n getDeviceId,\n getDeviceName,\n getDeviceNameSync,\n getDeviceSync,\n getDeviceToken,\n getDeviceType,\n getDisplay,\n getDisplaySync,\n getFingerprint,\n getFingerprintSync,\n getFirstInstallTime,\n getFirstInstallTimeSync,\n getFontScale,\n getFontScaleSync,\n getFreeDiskStorage,\n getFreeDiskStorageOld,\n getFreeDiskStorageSync,\n getFreeDiskStorageOldSync,\n getHardware,\n getHardwareSync,\n getHost,\n getHostSync,\n getIncremental,\n getIncrementalSync,\n getInstallerPackageName,\n getInstallerPackageNameSync,\n getInstallReferrer,\n getInstallReferrerSync,\n getInstanceId,\n getInstanceIdSync,\n getIpAddress,\n getIpAddressSync,\n getLastUpdateTime,\n getLastUpdateTimeSync,\n getMacAddress,\n getMacAddressSync,\n getManufacturer,\n getManufacturerSync,\n getMaxMemory,\n getMaxMemorySync,\n getModel,\n getPhoneNumber,\n getPhoneNumberSync,\n getPowerState,\n getPowerStateSync,\n getPreviewSdkInt,\n getPreviewSdkIntSync,\n getProduct,\n getProductSync,\n getReadableVersion,\n getSecurityPatch,\n getSecurityPatchSync,\n getSerialNumber,\n getSerialNumberSync,\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n getSystemName,\n getSystemVersion,\n getTags,\n getTagsSync,\n getTotalDiskCapacity,\n getTotalDiskCapacityOld,\n getTotalDiskCapacitySync,\n getTotalDiskCapacityOldSync,\n getTotalMemory,\n getTotalMemorySync,\n getType,\n getTypeSync,\n getUniqueId,\n getUniqueIdSync,\n getUsedMemory,\n getUsedMemorySync,\n getUserAgent,\n getUserAgentSync,\n getVersion,\n getBrightness,\n getBrightnessSync,\n hasGms,\n hasGmsSync,\n hasHms,\n hasHmsSync,\n hasNotch,\n hasDynamicIsland,\n hasSystemFeature,\n hasSystemFeatureSync,\n isAirplaneMode,\n isAirplaneModeSync,\n isBatteryCharging,\n isBatteryChargingSync,\n isCameraPresent,\n isCameraPresentSync,\n isEmulator,\n isEmulatorSync,\n isHeadphonesConnected,\n isHeadphonesConnectedSync,\n isLandscape,\n isLandscapeSync,\n isLocationEnabled,\n isLocationEnabledSync,\n isPinOrFingerprintSet,\n isPinOrFingerprintSetSync,\n isMouseConnected,\n isMouseConnectedSync,\n isKeyboardConnected,\n isKeyboardConnectedSync,\n isTabletMode,\n isTablet,\n supported32BitAbis,\n supported32BitAbisSync,\n supported64BitAbis,\n supported64BitAbisSync,\n supportedAbis,\n supportedAbisSync,\n syncUniqueId,\n useBatteryLevel,\n useBatteryLevelIsLow,\n useDeviceName,\n useFirstInstallTime,\n useHasSystemFeature,\n useIsEmulator,\n usePowerState,\n useManufacturer,\n useIsHeadphonesConnected,\n useBrightness,\n};\n\nexport default DeviceInfo;\n"]} +\ No newline at end of file ++{"version":3,"sources":["index.ts"],"names":["useCallback","useEffect","useState","Dimensions","NativeEventEmitter","Platform","useOnEvent","useOnMount","devicesWithDynamicIsland","devicesWithNotch","RNDeviceInfo","getSupportedPlatformInfoAsync","getSupportedPlatformInfoFunctions","getSupportedPlatformInfoSync","constants","getConstants","undefined","getUniqueId","getUniqueIdSync","memoKey","supportedPlatforms","getter","syncGetter","defaultValue","uniqueId","syncUniqueId","OS","getInstanceId","getInstanceIdSync","getSerialNumber","getSerialNumberSync","getAndroidId","getAndroidIdSync","getIpAddress","getIpAddressSync","isCameraPresent","isCameraPresentSync","getMacAddress","getMacAddressSync","getDeviceId","deviceId","getManufacturer","getManufacturerSync","Promise","resolve","getSystemManufacturer","getSystemManufacturerSync","getModel","model","getBrand","brand","getSystemName","select","ios","systemName","android","windows","default","getSystemVersion","systemVersion","getBuildId","getBuildIdSync","getApiLevel","getApiLevelSync","getBundleId","bundleId","getInstallerPackageName","getInstallerPackageNameSync","getApplicationName","appName","getBuildNumber","buildNumber","getVersion","appVersion","getReadableVersion","getDeviceName","getDeviceNameSync","getUsedMemory","getUsedMemorySync","getUserAgent","getUserAgentSync","getFontScale","getFontScaleSync","getBootloader","getBootloaderSync","getDevice","getDeviceSync","getDisplay","getDisplaySync","getFingerprint","getFingerprintSync","getHardware","getHardwareSync","getHost","getHostSync","getProduct","getProductSync","getTags","getTagsSync","getType","getTypeSync","getBaseOs","getBaseOsSync","getPreviewSdkInt","getPreviewSdkIntSync","getSecurityPatch","getSecurityPatchSync","getCodename","getCodenameSync","getIncremental","getIncrementalSync","isEmulator","isEmulatorSync","isTablet","isDisplayZoomed","isPinOrFingerprintSet","isPinOrFingerprintSetSync","notch","hasNotch","console","log","_brand","_model","findIndex","item","toLowerCase","dynamicIsland","hasDynamicIsland","hasGms","hasGmsSync","hasHms","hasHmsSync","getFirstInstallTime","getFirstInstallTimeSync","getInstallReferrer","getInstallReferrerSync","getLastUpdateTime","getLastUpdateTimeSync","getPhoneNumber","getPhoneNumberSync","getCarrier","getCarrierSync","getTotalMemory","getTotalMemorySync","getMaxMemory","getMaxMemorySync","getTotalDiskCapacity","getTotalDiskCapacitySync","getTotalDiskCapacityOld","getTotalDiskCapacityOldSync","getFreeDiskStorage","getFreeDiskStorageSync","getFreeDiskStorageOld","getFreeDiskStorageOldSync","getBatteryLevel","getBatteryLevelSync","getPowerState","getPowerStateSync","isBatteryCharging","isBatteryChargingSync","isLandscape","isLandscapeSync","height","width","get","isAirplaneMode","isAirplaneModeSync","getDeviceType","deviceType","getDeviceTypeSync","supportedAbis","supportedAbisSync","getSupportedAbis","getSupportedAbisSync","supported32BitAbis","supported32BitAbisSync","getSupported32BitAbis","getSupported32BitAbisSync","supported64BitAbis","supported64BitAbisSync","getSupported64BitAbis","getSupported64BitAbisSync","hasSystemFeature","feature","hasSystemFeatureSync","isLowBatteryLevel","level","getSystemAvailableFeatures","getSystemAvailableFeaturesSync","isLocationEnabled","isLocationEnabledSync","isHeadphonesConnected","isHeadphonesConnectedSync","isMouseConnected","isMouseConnectedSync","isKeyboardConnected","isKeyboardConnectedSync","isTabletMode","getAvailableLocationProviders","getAvailableLocationProvidersSync","getBrightness","getBrightnessSync","getDeviceToken","deviceInfoEmitter","useBatteryLevel","batteryLevel","setBatteryLevel","setInitialValue","initialValue","onChange","subscription","addListener","remove","useBatteryLevelIsLow","batteryLevelIsLow","setBatteryLevelIsLow","usePowerState","powerState","setPowerState","state","useIsHeadphonesConnected","useFirstInstallTime","useDeviceName","useHasSystemFeature","asyncGetter","useIsEmulator","useManufacturer","useBrightness","brightness","setBrightness","value","DeviceInfo"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { Dimensions, NativeEventEmitter, Platform } from 'react-native';\nimport { useOnEvent, useOnMount } from './internal/asyncHookWrappers';\nimport devicesWithDynamicIsland from './internal/devicesWithDynamicIsland';\nimport devicesWithNotch from './internal/devicesWithNotch';\nimport RNDeviceInfo from './internal/nativeInterface';\nimport {\n getSupportedPlatformInfoAsync,\n getSupportedPlatformInfoFunctions,\n getSupportedPlatformInfoSync,\n} from './internal/supported-platform-info';\nimport { DeviceInfoModule, NativeConstants } from './internal/privateTypes';\nimport type {\n AsyncHookResult,\n DeviceType,\n LocationProviderInfo,\n PowerState,\n} from './internal/types';\n\nlet constants: NativeConstants;\n\nfunction getConstants() {\n if (constants === undefined) {\n constants = RNDeviceInfo.getConstants() as NativeConstants;\n }\n return constants;\n}\n\nexport const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'uniqueId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getUniqueId(),\n syncGetter: () => RNDeviceInfo.getUniqueIdSync(),\n defaultValue: 'unknown',\n});\n\nlet uniqueId: string;\nexport async function syncUniqueId() {\n if (Platform.OS === 'ios') {\n uniqueId = await RNDeviceInfo.syncUniqueId();\n } else {\n uniqueId = await getUniqueId();\n }\n return uniqueId;\n}\n\nexport const [getInstanceId, getInstanceIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'instanceId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getInstanceId(),\n syncGetter: () => RNDeviceInfo.getInstanceIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getSerialNumber, getSerialNumberSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'serialNumber',\n supportedPlatforms: ['android', 'windows'],\n getter: () => RNDeviceInfo.getSerialNumber(),\n syncGetter: () => RNDeviceInfo.getSerialNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getAndroidId, getAndroidIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'androidId',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getAndroidId(),\n syncGetter: () => RNDeviceInfo.getAndroidIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIpAddress, getIpAddressSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getIpAddress(),\n syncGetter: () => RNDeviceInfo.getIpAddressSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isCameraPresent, isCameraPresentSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.isCameraPresent(),\n syncGetter: () => RNDeviceInfo.isCameraPresentSync(),\n defaultValue: false,\n});\n\nexport async function getMacAddress() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddress();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport function getMacAddressSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getMacAddressSync();\n } else if (Platform.OS === 'ios') {\n return '02:00:00:00:00:00';\n }\n return 'unknown';\n}\n\nexport const getDeviceId = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n memoKey: 'deviceId',\n getter: () => getConstants().deviceId,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'manufacturer',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () =>\n Platform.OS == 'ios' ? Promise.resolve('Apple') : RNDeviceInfo.getSystemManufacturer(),\n syncGetter: () => (Platform.OS == 'ios' ? 'Apple' : RNDeviceInfo.getSystemManufacturerSync()),\n defaultValue: 'unknown',\n});\n\nexport const getModel = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'model',\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n getter: () => getConstants().model,\n });\n\nexport const getBrand = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'brand',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().brand,\n });\n\nexport const getSystemName = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n supportedPlatforms: ['ios', 'android', 'windows'],\n memoKey: 'systemName',\n getter: () =>\n Platform.select({\n ios: getConstants().systemName,\n android: 'Android',\n windows: 'Windows',\n default: 'unknown',\n }),\n });\n\nexport const getSystemVersion = () =>\n getSupportedPlatformInfoSync({\n defaultValue: 'unknown',\n getter: () => getConstants().systemVersion,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'systemVersion',\n });\n\nexport const [getBuildId, getBuildIdSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'buildId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getBuildId(),\n syncGetter: () => RNDeviceInfo.getBuildIdSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getApiLevel, getApiLevelSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'apiLevel',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getApiLevel(),\n syncGetter: () => RNDeviceInfo.getApiLevelSync(),\n defaultValue: -1,\n});\n\nexport const getBundleId = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'bundleId',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().bundleId,\n });\n\nexport const [\n getInstallerPackageName,\n getInstallerPackageNameSync,\n] = getSupportedPlatformInfoFunctions({\n memoKey: 'installerPackageName',\n supportedPlatforms: ['android', 'windows', 'ios'],\n getter: () => RNDeviceInfo.getInstallerPackageName(),\n syncGetter: () => RNDeviceInfo.getInstallerPackageNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const getApplicationName = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'appName',\n defaultValue: 'unknown',\n getter: () => getConstants().appName,\n supportedPlatforms: ['android', 'ios', 'windows'],\n });\n\nexport const getBuildNumber = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'buildNumber',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => getConstants().buildNumber,\n defaultValue: 'unknown',\n });\n\nexport const getVersion = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'version',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => getConstants().appVersion,\n });\n\nexport function getReadableVersion() {\n return getVersion() + '.' + getBuildNumber();\n}\n\nexport const [getDeviceName, getDeviceNameSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getDeviceName(),\n syncGetter: () => RNDeviceInfo.getDeviceNameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getUsedMemory, getUsedMemorySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getUsedMemory(),\n syncGetter: () => RNDeviceInfo.getUsedMemorySync(),\n defaultValue: -1,\n});\n\nexport const getUserAgent = () =>\n getSupportedPlatformInfoAsync({\n memoKey: 'userAgent',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.getUserAgent(),\n });\n\nexport const getUserAgentSync = () =>\n getSupportedPlatformInfoSync({\n memoKey: 'userAgentSync',\n defaultValue: 'unknown',\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.getUserAgentSync(),\n });\n\nexport const [getFontScale, getFontScaleSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFontScale(),\n syncGetter: () => RNDeviceInfo.getFontScaleSync(),\n defaultValue: -1,\n});\n\nexport const [getBootloader, getBootloaderSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'bootloader',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getBootloader(),\n syncGetter: () => RNDeviceInfo.getBootloaderSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getDevice, getDeviceSync] = getSupportedPlatformInfoFunctions({\n getter: () => RNDeviceInfo.getDevice(),\n syncGetter: () => RNDeviceInfo.getDeviceSync(),\n defaultValue: 'unknown',\n memoKey: 'device',\n supportedPlatforms: ['android'],\n});\n\nexport const [getDisplay, getDisplaySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'display',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getDisplay(),\n syncGetter: () => RNDeviceInfo.getDisplaySync(),\n defaultValue: 'unknown',\n});\n\nexport const [getFingerprint, getFingerprintSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'fingerprint',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getFingerprint(),\n syncGetter: () => RNDeviceInfo.getFingerprintSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHardware, getHardwareSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'hardware',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHardware(),\n syncGetter: () => RNDeviceInfo.getHardwareSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getHost, getHostSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'host',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getHost(),\n syncGetter: () => RNDeviceInfo.getHostSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getProduct, getProductSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'product',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getProduct(),\n syncGetter: () => RNDeviceInfo.getProductSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTags, getTagsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'tags',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getTags(),\n syncGetter: () => RNDeviceInfo.getTagsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getType, getTypeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'type',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getType(),\n syncGetter: () => RNDeviceInfo.getTypeSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getBaseOs, getBaseOsSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'baseOs',\n supportedPlatforms: ['android', 'web', 'windows'],\n getter: () => RNDeviceInfo.getBaseOs(),\n syncGetter: () => RNDeviceInfo.getBaseOsSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getPreviewSdkInt, getPreviewSdkIntSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'previewSdkInt',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPreviewSdkInt(),\n syncGetter: () => RNDeviceInfo.getPreviewSdkIntSync(),\n defaultValue: -1,\n});\n\nexport const [getSecurityPatch, getSecurityPatchSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'securityPatch',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSecurityPatch(),\n syncGetter: () => RNDeviceInfo.getSecurityPatchSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCodename, getCodenameSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'codeName',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getCodename(),\n syncGetter: () => RNDeviceInfo.getCodenameSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getIncremental, getIncrementalSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'incremental',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getIncremental(),\n syncGetter: () => RNDeviceInfo.getIncrementalSync(),\n defaultValue: 'unknown',\n});\n\nexport const [isEmulator, isEmulatorSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'emulator',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isEmulator(),\n syncGetter: () => RNDeviceInfo.isEmulatorSync(),\n defaultValue: false,\n});\n\nexport const isTablet = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['android', 'ios', 'windows'],\n memoKey: 'tablet',\n getter: () => getConstants().isTablet,\n });\n\nexport const isDisplayZoomed = () =>\n getSupportedPlatformInfoSync({\n defaultValue: false,\n supportedPlatforms: ['ios'],\n memoKey: 'zoomed',\n getter: () => getConstants().isDisplayZoomed,\n });\n\nexport const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.isPinOrFingerprintSet(),\n syncGetter: () => RNDeviceInfo.isPinOrFingerprintSetSync(),\n defaultValue: false,\n }\n);\n\nlet notch: boolean;\nexport function hasNotch() {\n if (notch === undefined) {\n console.log(RNDeviceInfo);\n let _brand = getBrand();\n let _model = getModel();\n notch =\n devicesWithNotch.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return notch;\n}\n\nlet dynamicIsland: boolean;\nexport function hasDynamicIsland() {\n if (dynamicIsland === undefined) {\n let _brand = getBrand();\n let _model = getModel();\n dynamicIsland =\n devicesWithDynamicIsland.findIndex(\n (item) =>\n item.brand.toLowerCase() === _brand.toLowerCase() &&\n item.model.toLowerCase() === _model.toLowerCase()\n ) !== -1;\n }\n return dynamicIsland;\n}\n\nexport const [hasGms, hasGmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasGms(),\n syncGetter: () => RNDeviceInfo.hasGmsSync(),\n defaultValue: false,\n});\n\nexport const [hasHms, hasHmsSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.hasHms(),\n syncGetter: () => RNDeviceInfo.hasHmsSync(),\n defaultValue: false,\n});\n\nexport const [getFirstInstallTime, getFirstInstallTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'firstInstallTime',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getFirstInstallTime(),\n syncGetter: () => RNDeviceInfo.getFirstInstallTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getInstallReferrer, getInstallReferrerSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'installReferrer',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getInstallReferrer(),\n syncGetter: () => RNDeviceInfo.getInstallReferrerSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getLastUpdateTime, getLastUpdateTimeSync] = getSupportedPlatformInfoFunctions({\n memoKey: 'lastUpdateTime',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getLastUpdateTime(),\n syncGetter: () => RNDeviceInfo.getLastUpdateTimeSync(),\n defaultValue: -1,\n});\n\nexport const [getPhoneNumber, getPhoneNumberSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getPhoneNumber(),\n syncGetter: () => RNDeviceInfo.getPhoneNumberSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getCarrier, getCarrierSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getCarrier(),\n syncGetter: () => RNDeviceInfo.getCarrierSync(),\n defaultValue: 'unknown',\n});\n\nexport const [getTotalMemory, getTotalMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'totalMemory',\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalMemory(),\n syncGetter: () => RNDeviceInfo.getTotalMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getMaxMemory, getMaxMemorySync] = getSupportedPlatformInfoFunctions({\n memoKey: 'maxMemory',\n supportedPlatforms: ['android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getMaxMemory(),\n syncGetter: () => RNDeviceInfo.getMaxMemorySync(),\n defaultValue: -1,\n});\n\nexport const [getTotalDiskCapacity, getTotalDiskCapacitySync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getTotalDiskCapacity(),\n syncGetter: () => RNDeviceInfo.getTotalDiskCapacitySync(),\n defaultValue: -1,\n});\n\nexport async function getTotalDiskCapacityOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacity();\n }\n\n return -1;\n}\n\nexport function getTotalDiskCapacityOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getTotalDiskCapacityOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getTotalDiskCapacitySync();\n }\n\n return -1;\n}\n\nexport const [getFreeDiskStorage, getFreeDiskStorageSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getFreeDiskStorage(),\n syncGetter: () => RNDeviceInfo.getFreeDiskStorageSync(),\n defaultValue: -1,\n});\n\nexport async function getFreeDiskStorageOld() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOld();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorage();\n }\n\n return -1;\n}\n\nexport function getFreeDiskStorageOldSync() {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.getFreeDiskStorageOldSync();\n }\n if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {\n return getFreeDiskStorageSync();\n }\n\n return -1;\n}\n\nexport const [getBatteryLevel, getBatteryLevelSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.getBatteryLevel(),\n syncGetter: () => RNDeviceInfo.getBatteryLevelSync(),\n defaultValue: -1,\n});\n\nexport const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFunctions<\n Partial\n>({\n supportedPlatforms: ['ios', 'android', 'windows', 'web'],\n getter: () => RNDeviceInfo.getPowerState() as Promise>,\n syncGetter: () => RNDeviceInfo.getPowerStateSync() as Partial,\n defaultValue: {},\n});\n\nexport const [isBatteryCharging, isBatteryChargingSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'windows', 'web'],\n getter: () => RNDeviceInfo.isBatteryCharging(),\n syncGetter: () => RNDeviceInfo.isBatteryChargingSync(),\n defaultValue: false,\n});\n\nexport async function isLandscape() {\n return Promise.resolve(isLandscapeSync());\n}\n\nexport function isLandscapeSync() {\n const { height, width } = Dimensions.get('window');\n return width >= height;\n}\n\nexport const [isAirplaneMode, isAirplaneModeSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'web'],\n getter: () => RNDeviceInfo.isAirplaneMode(),\n syncGetter: () => RNDeviceInfo.isAirplaneModeSync(),\n defaultValue: false,\n});\n\nexport const getDeviceType = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().deviceType,\n });\n};\n\nexport const getDeviceTypeSync = () => {\n return getSupportedPlatformInfoSync({\n memoKey: 'deviceType',\n supportedPlatforms: ['android', 'ios', 'windows'],\n defaultValue: 'unknown',\n getter: () => getConstants().deviceType,\n });\n};\n\nexport const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supportedAbis',\n supportedPlatforms: ['android', 'ios', 'windows'],\n getter: () => RNDeviceInfo.getSupportedAbis(),\n syncGetter: () => RNDeviceInfo.getSupportedAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported32BitAbis, supported32BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported32BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported32BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported32BitAbisSync(),\n defaultValue: [] as string[],\n});\n\nexport const [supported64BitAbis, supported64BitAbisSync] = getSupportedPlatformInfoFunctions({\n memoKey: '_supported64BitAbis',\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSupported64BitAbis(),\n syncGetter: () => RNDeviceInfo.getSupported64BitAbisSync(),\n defaultValue: [],\n});\n\nexport async function hasSystemFeature(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeature(feature);\n }\n return false;\n}\n\nexport function hasSystemFeatureSync(feature: string) {\n if (Platform.OS === 'android') {\n return RNDeviceInfo.hasSystemFeatureSync(feature);\n }\n return false;\n}\n\nexport function isLowBatteryLevel(level: number): boolean {\n if (Platform.OS === 'android') {\n return level < 0.15;\n }\n return level < 0.2;\n}\n\nexport const [\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android'],\n getter: () => RNDeviceInfo.getSystemAvailableFeatures(),\n syncGetter: () => RNDeviceInfo.getSystemAvailableFeaturesSync(),\n defaultValue: [] as string[],\n});\n\nexport const [isLocationEnabled, isLocationEnabledSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios', 'web'],\n getter: () => RNDeviceInfo.isLocationEnabled(),\n syncGetter: () => RNDeviceInfo.isLocationEnabledSync(),\n defaultValue: false,\n});\n\nexport const [isHeadphonesConnected, isHeadphonesConnectedSync] = getSupportedPlatformInfoFunctions(\n {\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.isHeadphonesConnected(),\n syncGetter: () => RNDeviceInfo.isHeadphonesConnectedSync(),\n defaultValue: false,\n }\n);\n\nexport const [isMouseConnected, isMouseConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isMouseConnected(),\n syncGetter: () => RNDeviceInfo.isMouseConnectedSync(),\n defaultValue: false,\n});\n\nexport const [isKeyboardConnected, isKeyboardConnectedSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isKeyboardConnected(),\n syncGetter: () => RNDeviceInfo.isKeyboardConnectedSync(),\n defaultValue: false,\n});\n\nexport const isTabletMode = () =>\n getSupportedPlatformInfoAsync({\n supportedPlatforms: ['windows'],\n getter: () => RNDeviceInfo.isTabletMode(),\n defaultValue: false,\n });\n\nexport const [\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['android', 'ios'],\n getter: () => RNDeviceInfo.getAvailableLocationProviders() as Promise,\n syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync() as LocationProviderInfo,\n defaultValue: {},\n});\n\nexport const [getBrightness, getBrightnessSync] = getSupportedPlatformInfoFunctions({\n supportedPlatforms: ['ios'],\n getter: () => RNDeviceInfo.getBrightness(),\n syncGetter: () => RNDeviceInfo.getBrightnessSync(),\n defaultValue: -1,\n});\n\nexport async function getDeviceToken() {\n if (Platform.OS === 'ios') {\n return RNDeviceInfo.getDeviceToken();\n }\n return 'unknown';\n}\n\nconst deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo);\nexport function useBatteryLevel(): number | null {\n const [batteryLevel, setBatteryLevel] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n setBatteryLevel(initialValue);\n };\n\n const onChange = (level: number) => {\n setBatteryLevel(level);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_batteryLevelDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevel;\n}\n\nexport function useBatteryLevelIsLow(): number | null {\n const [batteryLevelIsLow, setBatteryLevelIsLow] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBatteryLevel();\n isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue);\n };\n\n setInitialValue();\n\n const onChange = (level: number) => {\n setBatteryLevelIsLow(level);\n };\n\n const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange);\n\n return () => subscription.remove();\n }, []);\n\n return batteryLevelIsLow;\n}\n\nexport function usePowerState(): Partial {\n const [powerState, setPowerState] = useState>({});\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: Partial = await getPowerState();\n setPowerState(initialValue);\n };\n\n const onChange = (state: PowerState) => {\n setPowerState(state);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_powerStateDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return powerState;\n}\n\nexport function useIsHeadphonesConnected(): AsyncHookResult {\n return useOnEvent('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false);\n}\n\nexport function useFirstInstallTime(): AsyncHookResult {\n return useOnMount(getFirstInstallTime, -1);\n}\n\nexport function useDeviceName(): AsyncHookResult {\n return useOnMount(getDeviceName, 'unknown');\n}\n\nexport function useHasSystemFeature(feature: string): AsyncHookResult {\n const asyncGetter = useCallback(() => hasSystemFeature(feature), [feature]);\n return useOnMount(asyncGetter, false);\n}\n\nexport function useIsEmulator(): AsyncHookResult {\n return useOnMount(isEmulator, false);\n}\n\nexport function useManufacturer(): AsyncHookResult {\n return useOnMount(getManufacturer, 'unknown');\n}\n\nexport function useBrightness(): number | null {\n const [brightness, setBrightness] = useState(null);\n\n useEffect(() => {\n const setInitialValue = async () => {\n const initialValue: number = await getBrightness();\n setBrightness(initialValue);\n };\n\n const onChange = (value: number) => {\n setBrightness(value);\n };\n\n setInitialValue();\n\n const subscription = deviceInfoEmitter.addListener(\n 'RNDeviceInfo_brightnessDidChange',\n onChange\n );\n\n return () => subscription.remove();\n }, []);\n\n return brightness;\n}\n\nexport type { AsyncHookResult, DeviceType, LocationProviderInfo, PowerState };\n\nconst DeviceInfo: DeviceInfoModule = {\n getAndroidId,\n getAndroidIdSync,\n getApiLevel,\n getApiLevelSync,\n getApplicationName,\n getAvailableLocationProviders,\n getAvailableLocationProvidersSync,\n getBaseOs,\n getBaseOsSync,\n getBatteryLevel,\n getBatteryLevelSync,\n getBootloader,\n getBootloaderSync,\n getBrand,\n getBuildId,\n getBuildIdSync,\n getBuildNumber,\n getBundleId,\n getCarrier,\n getCarrierSync,\n getCodename,\n getCodenameSync,\n getDevice,\n getDeviceId,\n getDeviceName,\n getDeviceNameSync,\n getDeviceSync,\n getDeviceToken,\n getDeviceType,\n getDisplay,\n getDisplaySync,\n getFingerprint,\n getFingerprintSync,\n getFirstInstallTime,\n getFirstInstallTimeSync,\n getFontScale,\n getFontScaleSync,\n getFreeDiskStorage,\n getFreeDiskStorageOld,\n getFreeDiskStorageSync,\n getFreeDiskStorageOldSync,\n getHardware,\n getHardwareSync,\n getHost,\n getHostSync,\n getIncremental,\n getIncrementalSync,\n getInstallerPackageName,\n getInstallerPackageNameSync,\n getInstallReferrer,\n getInstallReferrerSync,\n getInstanceId,\n getInstanceIdSync,\n getIpAddress,\n getIpAddressSync,\n getLastUpdateTime,\n getLastUpdateTimeSync,\n getMacAddress,\n getMacAddressSync,\n getManufacturer,\n getManufacturerSync,\n getMaxMemory,\n getMaxMemorySync,\n getModel,\n getPhoneNumber,\n getPhoneNumberSync,\n getPowerState,\n getPowerStateSync,\n getPreviewSdkInt,\n getPreviewSdkIntSync,\n getProduct,\n getProductSync,\n getReadableVersion,\n getSecurityPatch,\n getSecurityPatchSync,\n getSerialNumber,\n getSerialNumberSync,\n getSystemAvailableFeatures,\n getSystemAvailableFeaturesSync,\n getSystemName,\n getSystemVersion,\n getTags,\n getTagsSync,\n getTotalDiskCapacity,\n getTotalDiskCapacityOld,\n getTotalDiskCapacitySync,\n getTotalDiskCapacityOldSync,\n getTotalMemory,\n getTotalMemorySync,\n getType,\n getTypeSync,\n getUniqueId,\n getUniqueIdSync,\n getUsedMemory,\n getUsedMemorySync,\n getUserAgent,\n getUserAgentSync,\n getVersion,\n getBrightness,\n getBrightnessSync,\n hasGms,\n hasGmsSync,\n hasHms,\n hasHmsSync,\n hasNotch,\n hasDynamicIsland,\n hasSystemFeature,\n hasSystemFeatureSync,\n isAirplaneMode,\n isAirplaneModeSync,\n isBatteryCharging,\n isBatteryChargingSync,\n isCameraPresent,\n isCameraPresentSync,\n isEmulator,\n isEmulatorSync,\n isHeadphonesConnected,\n isHeadphonesConnectedSync,\n isLandscape,\n isLandscapeSync,\n isLocationEnabled,\n isLocationEnabledSync,\n isPinOrFingerprintSet,\n isPinOrFingerprintSetSync,\n isMouseConnected,\n isMouseConnectedSync,\n isKeyboardConnected,\n isKeyboardConnectedSync,\n isTabletMode,\n isTablet,\n isDisplayZoomed,\n supported32BitAbis,\n supported32BitAbisSync,\n supported64BitAbis,\n supported64BitAbisSync,\n supportedAbis,\n supportedAbisSync,\n syncUniqueId,\n useBatteryLevel,\n useBatteryLevelIsLow,\n useDeviceName,\n useFirstInstallTime,\n useHasSystemFeature,\n useIsEmulator,\n usePowerState,\n useManufacturer,\n useIsHeadphonesConnected,\n useBrightness,\n};\n\nexport default DeviceInfo;\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js b/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js +index 0d5dca5..1a7cae1 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js ++++ b/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js +@@ -1,5 +1,6 @@ + import { useState, useEffect } from 'react'; +-import { NativeEventEmitter, NativeModules } from 'react-native'; ++import { NativeEventEmitter } from 'react-native'; ++import RNDeviceInfo from './nativeInterface'; + + /** + * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once +@@ -25,7 +26,7 @@ export function useOnMount(asyncGetter, initialResult) { + }, [asyncGetter]); + return response; + } +-export const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo); ++export const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo); + /** + * simple hook wrapper for handling events + * @param eventName +diff --git a/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js.map b/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js.map +index 87af78b..9705ec1 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js.map ++++ b/node_modules/react-native-device-info/lib/module/internal/asyncHookWrappers.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["asyncHookWrappers.ts"],"names":["useState","useEffect","NativeEventEmitter","NativeModules","useOnMount","asyncGetter","initialResult","response","setResponse","loading","result","getAsync","deviceInfoEmitter","RNDeviceInfo","useOnEvent","eventName","initialValueAsyncGetter","defaultValue","setResult","subscription","addListener","remove"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,SAASC,kBAAT,EAA6BC,aAA7B,QAAkD,cAAlD;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAT,CAAuBC,WAAvB,EAAsDC,aAAtD,EAA4F;AACjG,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAqB;AAC3DS,IAAAA,OAAO,EAAE,IADkD;AAE3DC,IAAAA,MAAM,EAAEJ;AAFmD,GAArB,CAAxC;AAKAL,EAAAA,SAAS,CAAC,MAAM;AACd;AACA,UAAMU,QAAQ,GAAG,YAAY;AAC3B,YAAMD,MAAM,GAAG,MAAML,WAAW,EAAhC;AACAG,MAAAA,WAAW,CAAC;AAAEC,QAAAA,OAAO,EAAE,KAAX;AAAkBC,QAAAA;AAAlB,OAAD,CAAX;AACD,KAHD;;AAKAC,IAAAA,QAAQ;AACT,GARQ,EAQN,CAACN,WAAD,CARM,CAAT;AAUA,SAAOE,QAAP;AACD;AAED,OAAO,MAAMK,iBAAiB,GAAG,IAAIV,kBAAJ,CAAuBC,aAAa,CAACU,YAArC,CAA1B;AAEP;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,UAAT,CACLC,SADK,EAELC,uBAFK,EAGLC,YAHK,EAIe;AACpB,QAAM;AAAER,IAAAA,OAAF;AAAWC,IAAAA,MAAM,EAAEJ;AAAnB,MAAqCF,UAAU,CAACY,uBAAD,EAA0BC,YAA1B,CAArD;AACA,QAAM,CAACP,MAAD,EAASQ,SAAT,IAAsBlB,QAAQ,CAAIiB,YAAJ,CAApC,CAFoB,CAIpB;;AACAhB,EAAAA,SAAS,CAAC,MAAM;AACdiB,IAAAA,SAAS,CAACZ,aAAD,CAAT;AACD,GAFQ,EAEN,CAACA,aAAD,CAFM,CAAT,CALoB,CASpB;AACA;;AACAL,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMkB,YAAY,GAAGP,iBAAiB,CAACQ,WAAlB,CAA8BL,SAA9B,EAAyCG,SAAzC,CAArB;AACA,WAAO,MAAMC,YAAY,CAACE,MAAb,EAAb;AACD,GAHQ,EAGN,CAACN,SAAD,CAHM,CAAT,CAXoB,CAgBpB;;AACA,SAAO;AAAEN,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD","sourcesContent":["import { useState, useEffect } from 'react';\nimport { NativeEventEmitter, NativeModules } from 'react-native';\nimport type { AsyncHookResult } from './types';\n\n/**\n * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once\n * @param asyncGetter async function that 'gets' something\n * @param initialResult -1 | false | 'unknown'\n */\nexport function useOnMount(asyncGetter: () => Promise, initialResult: T): AsyncHookResult {\n const [response, setResponse] = useState>({\n loading: true,\n result: initialResult,\n });\n\n useEffect(() => {\n // async function cuz react complains if useEffect's effect param is an async function\n const getAsync = async () => {\n const result = await asyncGetter();\n setResponse({ loading: false, result });\n };\n\n getAsync();\n }, [asyncGetter]);\n\n return response;\n}\n\nexport const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\n/**\n * simple hook wrapper for handling events\n * @param eventName\n * @param initialValueAsyncGetter\n * @param defaultValue\n */\nexport function useOnEvent(\n eventName: string,\n initialValueAsyncGetter: () => Promise,\n defaultValue: T\n): AsyncHookResult {\n const { loading, result: initialResult } = useOnMount(initialValueAsyncGetter, defaultValue);\n const [result, setResult] = useState(defaultValue);\n\n // sets the result to what the intial value is on mount\n useEffect(() => {\n setResult(initialResult);\n }, [initialResult]);\n\n // - set up the event listener to set the result\n // - set up the clean up function to remove subscription on unmount\n useEffect(() => {\n const subscription = deviceInfoEmitter.addListener(eventName, setResult);\n return () => subscription.remove();\n }, [eventName]);\n\n // loading will only be true while getting the inital value. After that, it will always be false, but a new result may occur\n return { loading, result };\n}\n"]} +\ No newline at end of file ++{"version":3,"sources":["asyncHookWrappers.ts"],"names":["useState","useEffect","NativeEventEmitter","RNDeviceInfo","useOnMount","asyncGetter","initialResult","response","setResponse","loading","result","getAsync","deviceInfoEmitter","useOnEvent","eventName","initialValueAsyncGetter","defaultValue","setResult","subscription","addListener","remove"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,SAASC,kBAAT,QAAmC,cAAnC;AACA,OAAOC,YAAP,MAAyB,mBAAzB;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAT,CAAuBC,WAAvB,EAAsDC,aAAtD,EAA4F;AACjG,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAqB;AAC3DS,IAAAA,OAAO,EAAE,IADkD;AAE3DC,IAAAA,MAAM,EAAEJ;AAFmD,GAArB,CAAxC;AAKAL,EAAAA,SAAS,CAAC,MAAM;AACd;AACA,UAAMU,QAAQ,GAAG,YAAY;AAC3B,YAAMD,MAAM,GAAG,MAAML,WAAW,EAAhC;AACAG,MAAAA,WAAW,CAAC;AAAEC,QAAAA,OAAO,EAAE,KAAX;AAAkBC,QAAAA;AAAlB,OAAD,CAAX;AACD,KAHD;;AAKAC,IAAAA,QAAQ;AACT,GARQ,EAQN,CAACN,WAAD,CARM,CAAT;AAUA,SAAOE,QAAP;AACD;AAED,OAAO,MAAMK,iBAAiB,GAAG,IAAIV,kBAAJ,CAAuBC,YAAvB,CAA1B;AAEP;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASU,UAAT,CACLC,SADK,EAELC,uBAFK,EAGLC,YAHK,EAIe;AACpB,QAAM;AAAEP,IAAAA,OAAF;AAAWC,IAAAA,MAAM,EAAEJ;AAAnB,MAAqCF,UAAU,CAACW,uBAAD,EAA0BC,YAA1B,CAArD;AACA,QAAM,CAACN,MAAD,EAASO,SAAT,IAAsBjB,QAAQ,CAAIgB,YAAJ,CAApC,CAFoB,CAIpB;;AACAf,EAAAA,SAAS,CAAC,MAAM;AACdgB,IAAAA,SAAS,CAACX,aAAD,CAAT;AACD,GAFQ,EAEN,CAACA,aAAD,CAFM,CAAT,CALoB,CASpB;AACA;;AACAL,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMiB,YAAY,GAAGN,iBAAiB,CAACO,WAAlB,CAA8BL,SAA9B,EAAyCG,SAAzC,CAArB;AACA,WAAO,MAAMC,YAAY,CAACE,MAAb,EAAb;AACD,GAHQ,EAGN,CAACN,SAAD,CAHM,CAAT,CAXoB,CAgBpB;;AACA,SAAO;AAAEL,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD","sourcesContent":["import { useState, useEffect } from 'react';\nimport { NativeEventEmitter } from 'react-native';\nimport RNDeviceInfo from './nativeInterface';\nimport type { AsyncHookResult } from './types';\n\n/**\n * simple hook wrapper for async functions for 'on-mount / componentDidMount' that only need to fired once\n * @param asyncGetter async function that 'gets' something\n * @param initialResult -1 | false | 'unknown'\n */\nexport function useOnMount(asyncGetter: () => Promise, initialResult: T): AsyncHookResult {\n const [response, setResponse] = useState>({\n loading: true,\n result: initialResult,\n });\n\n useEffect(() => {\n // async function cuz react complains if useEffect's effect param is an async function\n const getAsync = async () => {\n const result = await asyncGetter();\n setResponse({ loading: false, result });\n };\n\n getAsync();\n }, [asyncGetter]);\n\n return response;\n}\n\nexport const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo);\n\n/**\n * simple hook wrapper for handling events\n * @param eventName\n * @param initialValueAsyncGetter\n * @param defaultValue\n */\nexport function useOnEvent(\n eventName: string,\n initialValueAsyncGetter: () => Promise,\n defaultValue: T\n): AsyncHookResult {\n const { loading, result: initialResult } = useOnMount(initialValueAsyncGetter, defaultValue);\n const [result, setResult] = useState(defaultValue);\n\n // sets the result to what the intial value is on mount\n useEffect(() => {\n setResult(initialResult);\n }, [initialResult]);\n\n // - set up the event listener to set the result\n // - set up the clean up function to remove subscription on unmount\n useEffect(() => {\n const subscription = deviceInfoEmitter.addListener(eventName, setResult);\n return () => subscription.remove();\n }, [eventName]);\n\n // loading will only be true while getting the inital value. After that, it will always be false, but a new result may occur\n return { loading, result };\n}\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js +index 6b443c3..a6a0640 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js ++++ b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js +@@ -1,9 +1,5 @@ +-import { Platform, NativeModules } from 'react-native'; +-let RNDeviceInfo = NativeModules.RNDeviceInfo; // @ts-ignore +- +-if (Platform.OS === 'web' || Platform.OS === 'dom') { +- RNDeviceInfo = require('../web'); +-} ++import { Platform } from 'react-native'; ++let RNDeviceInfo = require('../web'); + + if (!RNDeviceInfo) { + // Produce an error if we don't have the native module +diff --git a/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js.map b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js.map +index 0cd28c5..bd0d8fa 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js.map ++++ b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["nativeInterface.ts"],"names":["Platform","NativeModules","RNDeviceInfo","OS","require","Error"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,aAAnB,QAAwC,cAAxC;AAGA,IAAIC,YAAgD,GAAGD,aAAa,CAACC,YAArE,C,CAEA;;AACA,IAAIF,QAAQ,CAACG,EAAT,KAAgB,KAAhB,IAAyBH,QAAQ,CAACG,EAAT,KAAgB,KAA7C,EAAoD;AAClDD,EAAAA,YAAY,GAAGE,OAAO,CAAC,QAAD,CAAtB;AACD;;AAED,IAAI,CAACF,YAAL,EAAmB;AACjB;AACA,MACEF,QAAQ,CAACG,EAAT,KAAgB,SAAhB,IACAH,QAAQ,CAACG,EAAT,KAAgB,KADhB,IAEAH,QAAQ,CAACG,EAAT,KAAgB,KAFhB,IAGA;AACAH,EAAAA,QAAQ,CAACG,EAAT,KAAgB,KALlB,EAME;AACA,UAAM,IAAIE,KAAJ,CAAW;AACrB;AACA;AACA;AACA,sJAJU,CAAN;AAKD;AACF;;AAED,eAAeH,YAAf","sourcesContent":["import { Platform, NativeModules } from 'react-native';\nimport { DeviceInfoNativeModule } from './privateTypes';\n\nlet RNDeviceInfo: DeviceInfoNativeModule | undefined = NativeModules.RNDeviceInfo;\n\n// @ts-ignore\nif (Platform.OS === 'web' || Platform.OS === 'dom') {\n RNDeviceInfo = require('../web');\n}\n\nif (!RNDeviceInfo) {\n // Produce an error if we don't have the native module\n if (\n Platform.OS === 'android' ||\n Platform.OS === 'ios' ||\n Platform.OS === 'web' ||\n // @ts-ignore\n Platform.OS === 'dom'\n ) {\n throw new Error(`react-native-device-info: NativeModule.RNDeviceInfo is null. To fix this issue try these steps:\n • For react-native <= 0.59: Run \\`react-native link react-native-device-info\\` in the project root.\n • Rebuild and re-run the app.\n • If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-device-info/react-native-device-info`);\n }\n}\n\nexport default RNDeviceInfo as DeviceInfoNativeModule;\n"]} +\ No newline at end of file ++{"version":3,"sources":["nativeInterface.ts"],"names":["Platform","RNDeviceInfoModule","RNDeviceInfo","OS","require","Error"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;AAEA,IAAIC,YAAY,GAAGD,kBAAnB,C,CAEA;;AACA,IAAID,QAAQ,CAACG,EAAT,KAAgB,KAAhB,IAAyBH,QAAQ,CAACG,EAAT,KAAgB,KAA7C,EAAoD;AAClDD,EAAAA,YAAY,GAAGE,OAAO,CAAC,QAAD,CAAtB;AACD;;AAED,IAAI,CAACF,YAAL,EAAmB;AACjB;AACA,MACEF,QAAQ,CAACG,EAAT,KAAgB,SAAhB,IACAH,QAAQ,CAACG,EAAT,KAAgB,KADhB,IAEAH,QAAQ,CAACG,EAAT,KAAgB,KAFhB,IAGA;AACAH,EAAAA,QAAQ,CAACG,EAAT,KAAgB,KALlB,EAME;AACA,UAAM,IAAIE,KAAJ,CAAW;AACrB;AACA;AACA;AACA,sJAJU,CAAN;AAKD;AACF;;AAED,eAAeH,YAAf","sourcesContent":["import { Platform } from 'react-native';\nimport RNDeviceInfoModule from '../fabric/NativeDeviceInfoModule';\n\nlet RNDeviceInfo = RNDeviceInfoModule;\n\n// @ts-ignore\nif (Platform.OS === 'web' || Platform.OS === 'dom') {\n RNDeviceInfo = require('../web');\n}\n\nif (!RNDeviceInfo) {\n // Produce an error if we don't have the native module\n if (\n Platform.OS === 'android' ||\n Platform.OS === 'ios' ||\n Platform.OS === 'web' ||\n // @ts-ignore\n Platform.OS === 'dom'\n ) {\n throw new Error(`react-native-device-info: NativeModule.RNDeviceInfo is null. To fix this issue try these steps:\n • For react-native <= 0.59: Run \\`react-native link react-native-device-info\\` in the project root.\n • Rebuild and re-run the app.\n • If you are using CocoaPods on iOS, run \\`pod install\\` in the \\`ios\\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-device-info/react-native-device-info`);\n }\n}\n\nexport default RNDeviceInfo;\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/internal/nativeInterface.native.js b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.native.js +new file mode 100644 +index 0000000..fdb1e56 +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/module/internal/nativeInterface.native.js +@@ -0,0 +1,6 @@ ++import { Platform } from 'react-native'; ++import RNDeviceInfoModule from '../fabric/NativeDeviceInfoModule'; ++let RNDeviceInfo = RNDeviceInfoModule; // @ts-ignore ++ ++export default RNDeviceInfo; ++//# sourceMappingURL=nativeInterface.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js b/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js +index 159dece..7af2eda 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js ++++ b/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js +@@ -24,12 +24,14 @@ function getSupportedFunction(supportedPlatforms, getter, defaultGetter) { + */ + + +-export function getSupportedPlatformInfoSync({ +- getter, +- supportedPlatforms, +- defaultValue, +- memoKey +-}) { ++export function getSupportedPlatformInfoSync(_ref) { ++ let { ++ getter, ++ supportedPlatforms, ++ defaultValue, ++ memoKey ++ } = _ref; ++ + if (memoKey && memo[memoKey] != undefined) { + return memo[memoKey]; + } else { +@@ -47,12 +49,14 @@ export function getSupportedPlatformInfoSync({ + * @param param0 + */ + +-export async function getSupportedPlatformInfoAsync({ +- getter, +- supportedPlatforms, +- defaultValue, +- memoKey +-}) { ++export async function getSupportedPlatformInfoAsync(_ref2) { ++ let { ++ getter, ++ supportedPlatforms, ++ defaultValue, ++ memoKey ++ } = _ref2; ++ + if (memoKey && memo[memoKey] != undefined) { + return memo[memoKey]; + } else { +@@ -70,10 +74,11 @@ export async function getSupportedPlatformInfoAsync({ + * @param param0 + */ + +-export function getSupportedPlatformInfoFunctions({ +- syncGetter, +- ...asyncParams +-}) { ++export function getSupportedPlatformInfoFunctions(_ref3) { ++ let { ++ syncGetter, ++ ...asyncParams ++ } = _ref3; + return [() => getSupportedPlatformInfoAsync(asyncParams), () => getSupportedPlatformInfoSync({ ...asyncParams, + getter: syncGetter + })]; +diff --git a/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js.map b/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js.map +index ec1b98e..b5c3120 100644 +--- a/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js.map ++++ b/node_modules/react-native-device-info/lib/module/internal/supported-platform-info.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["supported-platform-info.ts"],"names":["Platform","memo","clearMemo","getSupportedFunction","supportedPlatforms","getter","defaultGetter","supportedMap","filter","key","OS","forEach","select","default","getSupportedPlatformInfoSync","defaultValue","memoKey","undefined","output","getSupportedPlatformInfoAsync","Promise","resolve","getSupportedPlatformInfoFunctions","syncGetter","asyncParams"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAWA;AACA,IAAIC,IAAc,GAAG,EAArB;AAEA,OAAO,SAASC,SAAT,GAAqB;AAC1BD,EAAAA,IAAI,GAAG,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,oBAAT,CACEC,kBADF,EAEEC,MAFF,EAGEC,aAHF,EAIa;AACX,MAAIC,YAAiB,GAAG,EAAxB;AACAH,EAAAA,kBAAkB,CACfI,MADH,CACWC,GAAD,IAAST,QAAQ,CAACU,EAAT,IAAeD,GADlC,EAEGE,OAFH,CAEYF,GAAD,IAAUF,YAAY,CAACE,GAAD,CAAZ,GAAoBJ,MAFzC;AAGA,SAAOL,QAAQ,CAACY,MAAT,CAAgB,EACrB,GAAGL,YADkB;AAErBM,IAAAA,OAAO,EAAEP;AAFY,GAAhB,CAAP;AAID;AAED;AACA;AACA;AACA;;;AACA,OAAO,SAASQ,4BAAT,CAAyC;AAC9CT,EAAAA,MAD8C;AAE9CD,EAAAA,kBAF8C;AAG9CW,EAAAA,YAH8C;AAI9CC,EAAAA;AAJ8C,CAAzC,EAKsC;AAC3C,MAAIA,OAAO,IAAIf,IAAI,CAACe,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOhB,IAAI,CAACe,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAGf,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MAAMU,YAAnC,CAApB,EAAf;;AACA,QAAIC,OAAJ,EAAa;AACXf,MAAAA,IAAI,CAACe,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AACD,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;AACA,OAAO,eAAeC,6BAAf,CAAgD;AACrDd,EAAAA,MADqD;AAErDD,EAAAA,kBAFqD;AAGrDW,EAAAA,YAHqD;AAIrDC,EAAAA;AAJqD,CAAhD,EAKgD;AACrD,MAAIA,OAAO,IAAIf,IAAI,CAACe,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOhB,IAAI,CAACe,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAG,MAAMf,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MACpEe,OAAO,CAACC,OAAR,CAAgBN,YAAhB,CADuC,CAApB,EAArB;;AAGA,QAAIC,OAAJ,EAAa;AACXf,MAAAA,IAAI,CAACe,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AAED,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;AACA,OAAO,SAASI,iCAAT,CAA8C;AACnDC,EAAAA,UADmD;AAEnD,KAAGC;AAFgD,CAA9C,EAGyE;AAC9E,SAAO,CACL,MAAML,6BAA6B,CAACK,WAAD,CAD9B,EAEL,MAAMV,4BAA4B,CAAC,EAAE,GAAGU,WAAL;AAAkBnB,IAAAA,MAAM,EAAEkB;AAA1B,GAAD,CAF7B,CAAP;AAID","sourcesContent":["import { Platform } from 'react-native';\n\nimport {\n PlatformArray,\n Getter,\n GetSupportedPlatformInfoAsyncParams,\n GetSupportedPlatformInfoSyncParams,\n GetSupportedPlatformInfoFunctionsParams,\n} from './privateTypes';\n\ntype MemoType = { [key: string]: any };\n// centralized memo object\nlet memo: MemoType = {};\n\nexport function clearMemo() {\n memo = {};\n}\n\n/**\n * function returns the proper getter based current platform X supported platforms\n * @param supportedPlatforms array of supported platforms (OS)\n * @param getter desired function used to get info\n * @param defaultGetter getter that returns a default value if desired getter is not supported by current platform\n */\nfunction getSupportedFunction(\n supportedPlatforms: PlatformArray,\n getter: Getter,\n defaultGetter: Getter\n): Getter {\n let supportedMap: any = {};\n supportedPlatforms\n .filter((key) => Platform.OS == key)\n .forEach((key) => (supportedMap[key] = getter));\n return Platform.select({\n ...supportedMap,\n default: defaultGetter,\n });\n}\n\n/**\n * function used to get desired info synchronously — with optional memoization\n * @param param0\n */\nexport function getSupportedPlatformInfoSync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoSyncParams): T {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = getSupportedFunction(supportedPlatforms, getter, () => defaultValue)();\n if (memoKey) {\n memo[memoKey] = output;\n }\n return output;\n }\n}\n\n/**\n * function used to get desired info asynchronously — with optional memoization\n * @param param0\n */\nexport async function getSupportedPlatformInfoAsync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoAsyncParams): Promise {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = await getSupportedFunction(supportedPlatforms, getter, () =>\n Promise.resolve(defaultValue)\n )();\n if (memoKey) {\n memo[memoKey] = output;\n }\n\n return output;\n }\n}\n\n/**\n * function that returns array of getter functions [async, sync]\n * @param param0\n */\nexport function getSupportedPlatformInfoFunctions({\n syncGetter,\n ...asyncParams\n}: GetSupportedPlatformInfoFunctionsParams): [Getter>, Getter] {\n return [\n () => getSupportedPlatformInfoAsync(asyncParams),\n () => getSupportedPlatformInfoSync({ ...asyncParams, getter: syncGetter }),\n ];\n}\n"]} +\ No newline at end of file ++{"version":3,"sources":["supported-platform-info.ts"],"names":["Platform","memo","clearMemo","getSupportedFunction","supportedPlatforms","getter","defaultGetter","supportedMap","filter","key","OS","forEach","select","default","getSupportedPlatformInfoSync","defaultValue","memoKey","undefined","output","getSupportedPlatformInfoAsync","Promise","resolve","getSupportedPlatformInfoFunctions","syncGetter","asyncParams"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAWA;AACA,IAAIC,IAAc,GAAG,EAArB;AAEA,OAAO,SAASC,SAAT,GAAqB;AAC1BD,EAAAA,IAAI,GAAG,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,oBAAT,CACEC,kBADF,EAEEC,MAFF,EAGEC,aAHF,EAIa;AACX,MAAIC,YAAiB,GAAG,EAAxB;AACAH,EAAAA,kBAAkB,CACfI,MADH,CACWC,GAAD,IAAST,QAAQ,CAACU,EAAT,IAAeD,GADlC,EAEGE,OAFH,CAEYF,GAAD,IAAUF,YAAY,CAACE,GAAD,CAAZ,GAAoBJ,MAFzC;AAGA,SAAOL,QAAQ,CAACY,MAAT,CAAgB,EACrB,GAAGL,YADkB;AAErBM,IAAAA,OAAO,EAAEP;AAFY,GAAhB,CAAP;AAID;AAED;AACA;AACA;AACA;;;AACA,OAAO,SAASQ,4BAAT,OAKsC;AAAA,MALG;AAC9CT,IAAAA,MAD8C;AAE9CD,IAAAA,kBAF8C;AAG9CW,IAAAA,YAH8C;AAI9CC,IAAAA;AAJ8C,GAKH;;AAC3C,MAAIA,OAAO,IAAIf,IAAI,CAACe,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOhB,IAAI,CAACe,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAGf,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MAAMU,YAAnC,CAApB,EAAf;;AACA,QAAIC,OAAJ,EAAa;AACXf,MAAAA,IAAI,CAACe,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AACD,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;AACA,OAAO,eAAeC,6BAAf,QAKgD;AAAA,MALA;AACrDd,IAAAA,MADqD;AAErDD,IAAAA,kBAFqD;AAGrDW,IAAAA,YAHqD;AAIrDC,IAAAA;AAJqD,GAKA;;AACrD,MAAIA,OAAO,IAAIf,IAAI,CAACe,OAAD,CAAJ,IAAiBC,SAAhC,EAA2C;AACzC,WAAOhB,IAAI,CAACe,OAAD,CAAX;AACD,GAFD,MAEO;AACL,UAAME,MAAM,GAAG,MAAMf,oBAAoB,CAACC,kBAAD,EAAqBC,MAArB,EAA6B,MACpEe,OAAO,CAACC,OAAR,CAAgBN,YAAhB,CADuC,CAApB,EAArB;;AAGA,QAAIC,OAAJ,EAAa;AACXf,MAAAA,IAAI,CAACe,OAAD,CAAJ,GAAgBE,MAAhB;AACD;;AAED,WAAOA,MAAP;AACD;AACF;AAED;AACA;AACA;AACA;;AACA,OAAO,SAASI,iCAAT,QAGyE;AAAA,MAH3B;AACnDC,IAAAA,UADmD;AAEnD,OAAGC;AAFgD,GAG2B;AAC9E,SAAO,CACL,MAAML,6BAA6B,CAACK,WAAD,CAD9B,EAEL,MAAMV,4BAA4B,CAAC,EAAE,GAAGU,WAAL;AAAkBnB,IAAAA,MAAM,EAAEkB;AAA1B,GAAD,CAF7B,CAAP;AAID","sourcesContent":["import { Platform } from 'react-native';\n\nimport {\n PlatformArray,\n Getter,\n GetSupportedPlatformInfoAsyncParams,\n GetSupportedPlatformInfoSyncParams,\n GetSupportedPlatformInfoFunctionsParams,\n} from './privateTypes';\n\ntype MemoType = { [key: string]: any };\n// centralized memo object\nlet memo: MemoType = {};\n\nexport function clearMemo() {\n memo = {};\n}\n\n/**\n * function returns the proper getter based current platform X supported platforms\n * @param supportedPlatforms array of supported platforms (OS)\n * @param getter desired function used to get info\n * @param defaultGetter getter that returns a default value if desired getter is not supported by current platform\n */\nfunction getSupportedFunction(\n supportedPlatforms: PlatformArray,\n getter: Getter,\n defaultGetter: Getter\n): Getter {\n let supportedMap: any = {};\n supportedPlatforms\n .filter((key) => Platform.OS == key)\n .forEach((key) => (supportedMap[key] = getter));\n return Platform.select({\n ...supportedMap,\n default: defaultGetter,\n });\n}\n\n/**\n * function used to get desired info synchronously — with optional memoization\n * @param param0\n */\nexport function getSupportedPlatformInfoSync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoSyncParams): T {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = getSupportedFunction(supportedPlatforms, getter, () => defaultValue)();\n if (memoKey) {\n memo[memoKey] = output;\n }\n return output;\n }\n}\n\n/**\n * function used to get desired info asynchronously — with optional memoization\n * @param param0\n */\nexport async function getSupportedPlatformInfoAsync({\n getter,\n supportedPlatforms,\n defaultValue,\n memoKey,\n}: GetSupportedPlatformInfoAsyncParams): Promise {\n if (memoKey && memo[memoKey] != undefined) {\n return memo[memoKey];\n } else {\n const output = await getSupportedFunction(supportedPlatforms, getter, () =>\n Promise.resolve(defaultValue)\n )();\n if (memoKey) {\n memo[memoKey] = output;\n }\n\n return output;\n }\n}\n\n/**\n * function that returns array of getter functions [async, sync]\n * @param param0\n */\nexport function getSupportedPlatformInfoFunctions({\n syncGetter,\n ...asyncParams\n}: GetSupportedPlatformInfoFunctionsParams): [Getter>, Getter] {\n return [\n () => getSupportedPlatformInfoAsync(asyncParams),\n () => getSupportedPlatformInfoSync({ ...asyncParams, getter: syncGetter }),\n ];\n}\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/module/web/index.js b/node_modules/react-native-device-info/lib/module/web/index.js +index 147a2c5..a4810c0 100644 +--- a/node_modules/react-native-device-info/lib/module/web/index.js ++++ b/node_modules/react-native-device-info/lib/module/web/index.js +@@ -159,9 +159,12 @@ export const getBaseOs = async () => { + }; + export const getTotalDiskCapacity = async () => { + if (navigator.storage && navigator.storage.estimate) { +- return navigator.storage.estimate().then(({ +- quota +- }) => quota); ++ return navigator.storage.estimate().then(_ref => { ++ let { ++ quota ++ } = _ref; ++ return quota; ++ }); + } + + return -1; +@@ -172,10 +175,13 @@ export const getTotalDiskCapacitySync = () => { + }; + export const getFreeDiskStorage = async () => { + if (navigator.storage && navigator.storage.estimate) { +- return navigator.storage.estimate().then(({ +- quota, +- usage +- }) => quota - usage); ++ return navigator.storage.estimate().then(_ref2 => { ++ let { ++ quota, ++ usage ++ } = _ref2; ++ return quota - usage; ++ }); + } + + return -1; +diff --git a/node_modules/react-native-device-info/lib/module/web/index.js.map b/node_modules/react-native-device-info/lib/module/web/index.js.map +index 68c17e6..2f2cfbd 100644 +--- a/node_modules/react-native-device-info/lib/module/web/index.js.map ++++ b/node_modules/react-native-device-info/lib/module/web/index.js.map +@@ -1 +1 @@ +-{"version":3,"sources":["index.js"],"names":["NativeEventEmitter","NativeModules","deviceInfoEmitter","RNDeviceInfo","batteryCharging","batteryLevel","powerState","_readPowerState","battery","level","charging","chargingtime","dischargingtime","lowPowerMode","batteryState","getMaxMemorySync","window","performance","memory","jsHeapSizeLimit","getInstallReferrerSync","document","referrer","isAirplaneModeSync","navigator","onLine","getUserAgentSync","userAgent","isLocationEnabledSync","geolocation","getTotalMemorySync","deviceMemory","getUsedMemorySync","usedJSHeapSize","init","getBattery","then","addEventListener","emit","getBaseOsSync","platform","macosPlatforms","windowsPlatforms","iosPlatforms","os","indexOf","test","getInstallReferrer","getUserAgent","isBatteryCharging","isBatteryChargingSync","isCameraPresent","mediaDevices","enumerateDevices","devices","find","d","kind","isCameraPresentSync","console","log","getBatteryLevel","getBatteryLevelSync","isLocationEnabled","isAirplaneMode","getBaseOs","getTotalDiskCapacity","storage","estimate","quota","getTotalDiskCapacitySync","getFreeDiskStorage","usage","getFreeDiskStorageSync","getMaxMemory","getUsedMemory","getTotalMemory","getPowerState","getPowerStateSync"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\nlet batteryCharging = false,\n batteryLevel = -1,\n powerState = {};\n\nconst _readPowerState = (battery) => {\n const { level, charging, chargingtime, dischargingtime } = battery;\n\n return {\n batteryLevel: level,\n lowPowerMode: false,\n batteryState: level === 1 ? 'full' : charging ? 'charging' : 'unplugged',\n chargingtime,\n dischargingtime,\n };\n};\n\nexport const getMaxMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.jsHeapSizeLimit;\n }\n return -1;\n};\n\nexport const getInstallReferrerSync = () => {\n return document.referrer;\n};\n\nexport const isAirplaneModeSync = () => {\n return !!navigator.onLine;\n};\n\nexport const getUserAgentSync = () => {\n return window.navigator.userAgent;\n};\n\nexport const isLocationEnabledSync = () => {\n return !!navigator.geolocation;\n};\n\nexport const getTotalMemorySync = () => {\n if (navigator.deviceMemory) {\n return navigator.deviceMemory * 1000000000;\n }\n return -1;\n};\n\nexport const getUsedMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.usedJSHeapSize;\n }\n return -1;\n};\n\nconst init = () => {\n if (typeof navigator === 'undefined' || !navigator.getBattery) return;\n\n navigator.getBattery().then((battery) => {\n batteryCharging = battery.charging;\n\n battery.addEventListener('chargingchange', () => {\n const { charging } = battery;\n\n batteryCharging = charging;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_powerStateDidChange', powerState);\n });\n\n battery.addEventListener('levelchange', () => {\n const { level } = battery;\n\n batteryLevel = level;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelDidChange', level);\n if (level < 0.2) {\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelIsLow', level);\n }\n });\n });\n};\n\nconst getBaseOsSync = () => {\n const userAgent = window.navigator.userAgent,\n platform = window.navigator.platform,\n macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n let os = platform;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = 'Mac OS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = 'Windows';\n } else if (/Android/.test(userAgent)) {\n os = 'Android';\n } else if (!os && /Linux/.test(platform)) {\n os = 'Linux';\n }\n\n return os;\n};\n\ninit();\n/**\n * react-native-web empty polyfill.\n */\n\nexport const getInstallReferrer = async () => {\n return getInstallReferrerSync();\n};\n\nexport const getUserAgent = async () => {\n return getUserAgentSync();\n};\n\nexport const isBatteryCharging = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.charging);\n }\n return false;\n};\n\nexport const isBatteryChargingSync = () => {\n return batteryCharging;\n};\n\nexport const isCameraPresent = async () => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(devices => {\n return !!devices.find((d) => d.kind === 'videoinput');\n });\n }\n return false;\n};\n\nexport const isCameraPresentSync = () => {\n console.log(\n '[react-native-device-info] isCameraPresentSync not supported - please use isCameraPresent'\n );\n return false;\n};\n\nexport const getBatteryLevel = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.level);\n }\n return -1;\n};\n\nexport const getBatteryLevelSync = () => {\n return batteryLevel;\n};\n\nexport const isLocationEnabled = async () => {\n return isLocationEnabledSync();\n};\n\nexport const isAirplaneMode = async () => {\n return isAirplaneModeSync();\n};\n\nexport const getBaseOs = async () => {\n return getBaseOsSync();\n};\n\nexport const getTotalDiskCapacity = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota }) => quota)\n }\n return -1;\n};\n\nexport const getTotalDiskCapacitySync = () => {\n console.log(\n '[react-native-device-info] getTotalDiskCapacitySync not supported - please use getTotalDiskCapacity'\n );\n return -1;\n};\n\nexport const getFreeDiskStorage = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota, usage }) => quota - usage)\n }\n return -1;\n};\n\nexport const getFreeDiskStorageSync = () => {\n console.log(\n '[react-native-device-info] getFreeDiskStorageSync not supported - please use getFreeDiskStorage'\n );\n return -1;\n};\n\nexport const getMaxMemory = async () => {\n return getMaxMemorySync();\n};\n\nexport const getUsedMemory = async () => {\n return getUsedMemorySync();\n};\n\nexport const getTotalMemory = async () => {\n return getTotalMemorySync();\n};\n\nexport const getPowerState = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then((battery) => _readPowerState(battery))\n }\n return {};\n};\n\nexport const getPowerStateSync = () => {\n return powerState;\n};\n"]} +\ No newline at end of file ++{"version":3,"sources":["index.js"],"names":["NativeEventEmitter","NativeModules","deviceInfoEmitter","RNDeviceInfo","batteryCharging","batteryLevel","powerState","_readPowerState","battery","level","charging","chargingtime","dischargingtime","lowPowerMode","batteryState","getMaxMemorySync","window","performance","memory","jsHeapSizeLimit","getInstallReferrerSync","document","referrer","isAirplaneModeSync","navigator","onLine","getUserAgentSync","userAgent","isLocationEnabledSync","geolocation","getTotalMemorySync","deviceMemory","getUsedMemorySync","usedJSHeapSize","init","getBattery","then","addEventListener","emit","getBaseOsSync","platform","macosPlatforms","windowsPlatforms","iosPlatforms","os","indexOf","test","getInstallReferrer","getUserAgent","isBatteryCharging","isBatteryChargingSync","isCameraPresent","mediaDevices","enumerateDevices","devices","find","d","kind","isCameraPresentSync","console","log","getBatteryLevel","getBatteryLevelSync","isLocationEnabled","isAirplaneMode","getBaseOs","getTotalDiskCapacity","storage","estimate","quota","getTotalDiskCapacitySync","getFreeDiskStorage","usage","getFreeDiskStorageSync","getMaxMemory","getUsedMemory","getTotalMemory","getPowerState","getPowerStateSync"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);\n\nlet batteryCharging = false,\n batteryLevel = -1,\n powerState = {};\n\nconst _readPowerState = (battery) => {\n const { level, charging, chargingtime, dischargingtime } = battery;\n\n return {\n batteryLevel: level,\n lowPowerMode: false,\n batteryState: level === 1 ? 'full' : charging ? 'charging' : 'unplugged',\n chargingtime,\n dischargingtime,\n };\n};\n\nexport const getMaxMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.jsHeapSizeLimit;\n }\n return -1;\n};\n\nexport const getInstallReferrerSync = () => {\n return document.referrer;\n};\n\nexport const isAirplaneModeSync = () => {\n return !!navigator.onLine;\n};\n\nexport const getUserAgentSync = () => {\n return window.navigator.userAgent;\n};\n\nexport const isLocationEnabledSync = () => {\n return !!navigator.geolocation;\n};\n\nexport const getTotalMemorySync = () => {\n if (navigator.deviceMemory) {\n return navigator.deviceMemory * 1000000000;\n }\n return -1;\n};\n\nexport const getUsedMemorySync = () => {\n if (window.performance && window.performance.memory) {\n return window.performance.memory.usedJSHeapSize;\n }\n return -1;\n};\n\nconst init = () => {\n if (typeof navigator === 'undefined' || !navigator.getBattery) return;\n\n navigator.getBattery().then((battery) => {\n batteryCharging = battery.charging;\n\n battery.addEventListener('chargingchange', () => {\n const { charging } = battery;\n\n batteryCharging = charging;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_powerStateDidChange', powerState);\n });\n\n battery.addEventListener('levelchange', () => {\n const { level } = battery;\n\n batteryLevel = level;\n powerState = _readPowerState(battery);\n\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelDidChange', level);\n if (level < 0.2) {\n deviceInfoEmitter.emit('RNDeviceInfo_batteryLevelIsLow', level);\n }\n });\n });\n};\n\nconst getBaseOsSync = () => {\n const userAgent = window.navigator.userAgent,\n platform = window.navigator.platform,\n macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],\n windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],\n iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n let os = platform;\n\n if (macosPlatforms.indexOf(platform) !== -1) {\n os = 'Mac OS';\n } else if (iosPlatforms.indexOf(platform) !== -1) {\n os = 'iOS';\n } else if (windowsPlatforms.indexOf(platform) !== -1) {\n os = 'Windows';\n } else if (/Android/.test(userAgent)) {\n os = 'Android';\n } else if (!os && /Linux/.test(platform)) {\n os = 'Linux';\n }\n\n return os;\n};\n\ninit();\n/**\n * react-native-web empty polyfill.\n */\n\nexport const getInstallReferrer = async () => {\n return getInstallReferrerSync();\n};\n\nexport const getUserAgent = async () => {\n return getUserAgentSync();\n};\n\nexport const isBatteryCharging = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.charging);\n }\n return false;\n};\n\nexport const isBatteryChargingSync = () => {\n return batteryCharging;\n};\n\nexport const isCameraPresent = async () => {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return navigator.mediaDevices.enumerateDevices().then(devices => {\n return !!devices.find((d) => d.kind === 'videoinput');\n });\n }\n return false;\n};\n\nexport const isCameraPresentSync = () => {\n console.log(\n '[react-native-device-info] isCameraPresentSync not supported - please use isCameraPresent'\n );\n return false;\n};\n\nexport const getBatteryLevel = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then(battery => battery.level);\n }\n return -1;\n};\n\nexport const getBatteryLevelSync = () => {\n return batteryLevel;\n};\n\nexport const isLocationEnabled = async () => {\n return isLocationEnabledSync();\n};\n\nexport const isAirplaneMode = async () => {\n return isAirplaneModeSync();\n};\n\nexport const getBaseOs = async () => {\n return getBaseOsSync();\n};\n\nexport const getTotalDiskCapacity = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota }) => quota)\n }\n return -1;\n};\n\nexport const getTotalDiskCapacitySync = () => {\n console.log(\n '[react-native-device-info] getTotalDiskCapacitySync not supported - please use getTotalDiskCapacity'\n );\n return -1;\n};\n\nexport const getFreeDiskStorage = async () => {\n if (navigator.storage && navigator.storage.estimate) {\n return navigator.storage.estimate().then(({ quota, usage }) => quota - usage)\n }\n return -1;\n};\n\nexport const getFreeDiskStorageSync = () => {\n console.log(\n '[react-native-device-info] getFreeDiskStorageSync not supported - please use getFreeDiskStorage'\n );\n return -1;\n};\n\nexport const getMaxMemory = async () => {\n return getMaxMemorySync();\n};\n\nexport const getUsedMemory = async () => {\n return getUsedMemorySync();\n};\n\nexport const getTotalMemory = async () => {\n return getTotalMemorySync();\n};\n\nexport const getPowerState = async () => {\n if (navigator.getBattery) {\n return navigator.getBattery().then((battery) => _readPowerState(battery))\n }\n return {};\n};\n\nexport const getPowerStateSync = () => {\n return powerState;\n};\n"]} +\ No newline at end of file +diff --git a/node_modules/react-native-device-info/lib/typescript/fabric/NativeDeviceInfoModule.d.ts b/node_modules/react-native-device-info/lib/typescript/fabric/NativeDeviceInfoModule.d.ts +new file mode 100644 +index 0000000..08ca7ee +--- /dev/null ++++ b/node_modules/react-native-device-info/lib/typescript/fabric/NativeDeviceInfoModule.d.ts +@@ -0,0 +1,150 @@ ++import { TurboModule } from 'react-native'; ++export interface Spec extends TurboModule { ++ getPowerState: () => Promise<{ ++ batteryLevel: number; ++ batteryState: string; ++ lowPowerMode: boolean; ++ }>; ++ getPowerStateSync: () => { ++ batteryLevel: number; ++ batteryState: string; ++ lowPowerMode: boolean; ++ }; ++ getSupported32BitAbis: () => Promise; ++ getSupported32BitAbisSync: () => string[]; ++ getSupported64BitAbis: () => Promise; ++ getSupported64BitAbisSync: () => string[]; ++ getSupportedAbis: () => Promise; ++ getSupportedAbisSync: () => string[]; ++ getSystemManufacturer: () => Promise; ++ getSystemManufacturerSync: () => string; ++ getAndroidId: () => Promise; ++ getAndroidIdSync: () => string; ++ getApiLevel: () => Promise; ++ getApiLevelSync: () => number; ++ getAvailableLocationProviders: () => Promise; ++ getAvailableLocationProvidersSync: () => Object; ++ getBaseOs: () => Promise; ++ getBaseOsSync: () => string; ++ getBatteryLevel: () => Promise; ++ getBatteryLevelSync: () => number; ++ getBootloader: () => Promise; ++ getBootloaderSync: () => string; ++ getBuildId: () => Promise; ++ getBuildIdSync: () => string; ++ getCarrier: () => Promise; ++ getCarrierSync: () => string; ++ getCodename: () => Promise; ++ getCodenameSync: () => string; ++ getDevice: () => Promise; ++ getDeviceName: () => Promise; ++ getDeviceNameSync: () => string; ++ getDeviceSync: () => string; ++ getDeviceToken: () => Promise; ++ getDisplay: () => Promise; ++ getDisplaySync: () => string; ++ getFingerprint: () => Promise; ++ getFingerprintSync: () => string; ++ getFirstInstallTime: () => Promise; ++ getFirstInstallTimeSync: () => number; ++ getFontScale: () => Promise; ++ getFontScaleSync: () => number; ++ getFreeDiskStorage: () => Promise; ++ getFreeDiskStorageOld: () => Promise; ++ getFreeDiskStorageSync: () => number; ++ getFreeDiskStorageOldSync: () => number; ++ getHardware: () => Promise; ++ getHardwareSync: () => string; ++ getHost: () => Promise; ++ getHostSync: () => string; ++ getIncremental: () => Promise; ++ getIncrementalSync: () => string; ++ getInstallerPackageName: () => Promise; ++ getInstallerPackageNameSync: () => string; ++ getInstallReferrer: () => Promise; ++ getInstallReferrerSync: () => string; ++ getInstanceId: () => Promise; ++ getInstanceIdSync: () => string; ++ getIpAddress: () => Promise; ++ getIpAddressSync: () => string; ++ getLastUpdateTime: () => Promise; ++ getLastUpdateTimeSync: () => number; ++ getMacAddress: () => Promise; ++ getMacAddressSync: () => string; ++ getMaxMemory: () => Promise; ++ getMaxMemorySync: () => number; ++ getPhoneNumber: () => Promise; ++ getPhoneNumberSync: () => string; ++ getPreviewSdkInt: () => Promise; ++ getPreviewSdkIntSync: () => number; ++ getProduct: () => Promise; ++ getProductSync: () => string; ++ getSecurityPatch: () => Promise; ++ getSecurityPatchSync: () => string; ++ getSerialNumber: () => Promise; ++ getSerialNumberSync: () => string; ++ getSystemAvailableFeatures: () => Promise; ++ getSystemAvailableFeaturesSync: () => string[]; ++ getTags: () => Promise; ++ getTagsSync: () => string; ++ getTotalDiskCapacity: () => Promise; ++ getTotalDiskCapacityOld: () => Promise; ++ getTotalDiskCapacitySync: () => number; ++ getTotalDiskCapacityOldSync: () => number; ++ getTotalMemory: () => Promise; ++ getTotalMemorySync: () => number; ++ getType: () => Promise; ++ getTypeSync: () => string; ++ getUniqueId: () => Promise; ++ getUniqueIdSync: () => string; ++ getUsedMemory: () => Promise; ++ getUsedMemorySync: () => number; ++ getUserAgent: () => Promise; ++ getUserAgentSync: () => string; ++ getBrightness: () => Promise; ++ getBrightnessSync: () => number; ++ hasGms: () => Promise; ++ hasGmsSync: () => boolean; ++ hasHms: () => Promise; ++ hasHmsSync: () => boolean; ++ hasSystemFeature: (feature: string) => Promise; ++ hasSystemFeatureSync: (feature: string) => boolean; ++ isAirplaneMode: () => Promise; ++ isAirplaneModeSync: () => boolean; ++ isBatteryCharging: () => Promise; ++ isBatteryChargingSync: () => boolean; ++ isCameraPresent: () => Promise; ++ isCameraPresentSync: () => boolean; ++ isEmulator: () => Promise; ++ isEmulatorSync: () => boolean; ++ isHeadphonesConnected: () => Promise; ++ isHeadphonesConnectedSync: () => boolean; ++ isLocationEnabled: () => Promise; ++ isLocationEnabledSync: () => boolean; ++ isPinOrFingerprintSet: () => Promise; ++ isPinOrFingerprintSetSync: () => boolean; ++ isMouseConnected: () => Promise; ++ isMouseConnectedSync: () => boolean; ++ isKeyboardConnected: () => Promise; ++ isKeyboardConnectedSync: () => boolean; ++ isTabletMode: () => Promise; ++ syncUniqueId: () => Promise; ++ addListener(eventName: string): void; ++ removeListeners(count: number): void; ++ getConstants(): { ++ appName: string; ++ appVersion: string; ++ brand: string; ++ buildNumber: string; ++ bundleId: string; ++ deviceId: string; ++ deviceType: string; ++ isTablet: boolean; ++ isDisplayZoomed?: boolean; ++ model: string; ++ systemName: string; ++ systemVersion: string; ++ }; ++} ++declare const _default: Spec; ++export default _default; +diff --git a/node_modules/react-native-device-info/lib/typescript/index.d.ts b/node_modules/react-native-device-info/lib/typescript/index.d.ts +index 9ee719c..bf0912a 100644 +--- a/node_modules/react-native-device-info/lib/typescript/index.d.ts ++++ b/node_modules/react-native-device-info/lib/typescript/index.d.ts +@@ -44,6 +44,7 @@ export declare const getCodename: import("./internal/privateTypes").Getter>, getIncrementalSync: import("./internal/privateTypes").Getter; + export declare const isEmulator: import("./internal/privateTypes").Getter>, isEmulatorSync: import("./internal/privateTypes").Getter; + export declare const isTablet: () => boolean; ++export declare const isDisplayZoomed: () => boolean | undefined; + export declare const isPinOrFingerprintSet: import("./internal/privateTypes").Getter>, isPinOrFingerprintSetSync: import("./internal/privateTypes").Getter; + export declare function hasNotch(): boolean; + export declare function hasDynamicIsland(): boolean; +diff --git a/node_modules/react-native-device-info/lib/typescript/internal/nativeInterface.d.ts b/node_modules/react-native-device-info/lib/typescript/internal/nativeInterface.d.ts +index 56c84eb..59f6bc5 100644 +--- a/node_modules/react-native-device-info/lib/typescript/internal/nativeInterface.d.ts ++++ b/node_modules/react-native-device-info/lib/typescript/internal/nativeInterface.d.ts +@@ -1,3 +1,2 @@ +-import { DeviceInfoNativeModule } from './privateTypes'; +-declare const _default: DeviceInfoNativeModule; +-export default _default; ++declare let RNDeviceInfo: import("../fabric/NativeDeviceInfoModule").Spec; ++export default RNDeviceInfo; +diff --git a/node_modules/react-native-device-info/lib/typescript/internal/privateTypes.d.ts b/node_modules/react-native-device-info/lib/typescript/internal/privateTypes.d.ts +index f137e75..129b5ef 100644 +--- a/node_modules/react-native-device-info/lib/typescript/internal/privateTypes.d.ts ++++ b/node_modules/react-native-device-info/lib/typescript/internal/privateTypes.d.ts +@@ -5,7 +5,7 @@ export declare type NotchDevice = { + model: string; + [key: string]: string; + }; +-interface NativeConstants { ++export interface NativeConstants { + appName: string; + appVersion: string; + brand: string; +@@ -14,6 +14,7 @@ interface NativeConstants { + deviceId: string; + deviceType: DeviceType; + isTablet: boolean; ++ isDisplayZoomed?: boolean; + model: string; + systemName: string; + systemVersion: string; +@@ -170,6 +171,7 @@ export interface DeviceInfoModule extends ExposedNativeMethods { + isLandscape: () => Promise; + isLandscapeSync: () => boolean; + isTablet: () => boolean; ++ isDisplayZoomed: () => boolean | undefined; + supported32BitAbis: () => Promise; + supported32BitAbisSync: () => string[]; + supported64BitAbis: () => Promise; +diff --git a/node_modules/react-native-device-info/package.json b/node_modules/react-native-device-info/package.json +index f15e34f..8afd532 100644 +--- a/node_modules/react-native-device-info/package.json ++++ b/node_modules/react-native-device-info/package.json +@@ -104,7 +104,7 @@ + "@testing-library/react-hooks": "^7.0.2", + "@types/jest": "^27.4.1", + "@types/react": "17.0.39", +- "@types/react-native": "^0.67.2", ++ "@types/react-native": "^0.71.3", + "eslint": "^7", + "eslint-plugin-prettier": "^4.0.0", + "husky": "^7.0.4", +@@ -134,5 +134,13 @@ + "module", + "typescript" + ] ++ }, ++ "codegenConfig": { ++ "name": "rndeviceinfomodule", ++ "type": "modules", ++ "jsSrcsDir": "./src/fabric", ++ "android": { ++ "javaPackageName": "com.learnium.RNDeviceInfo" ++ } + } + } +diff --git a/node_modules/react-native-device-info/src/fabric/NativeDeviceInfoModule.ts b/node_modules/react-native-device-info/src/fabric/NativeDeviceInfoModule.ts +new file mode 100644 +index 0000000..0dce963 +--- /dev/null ++++ b/node_modules/react-native-device-info/src/fabric/NativeDeviceInfoModule.ts +@@ -0,0 +1,152 @@ ++import { TurboModuleRegistry, TurboModule } from 'react-native'; ++ ++export interface Spec extends TurboModule { ++ getPowerState: () => Promise<{ ++ batteryLevel: number; ++ batteryState: string; ++ lowPowerMode: boolean; ++ }>; ++ getPowerStateSync: () => { ++ batteryLevel: number; ++ batteryState: string; ++ lowPowerMode: boolean; ++ }; // should be PowerState ++ getSupported32BitAbis: () => Promise; ++ getSupported32BitAbisSync: () => string[]; ++ getSupported64BitAbis: () => Promise; ++ getSupported64BitAbisSync: () => string[]; ++ getSupportedAbis: () => Promise; ++ getSupportedAbisSync: () => string[]; ++ getSystemManufacturer: () => Promise; ++ getSystemManufacturerSync: () => string; ++ getAndroidId: () => Promise; ++ getAndroidIdSync: () => string; ++ getApiLevel: () => Promise; ++ getApiLevelSync: () => number; ++ getAvailableLocationProviders: () => Promise; ++ getAvailableLocationProvidersSync: () => Object; // should be LocationProviderInfo ++ getBaseOs: () => Promise; ++ getBaseOsSync: () => string; ++ getBatteryLevel: () => Promise; ++ getBatteryLevelSync: () => number; ++ getBootloader: () => Promise; ++ getBootloaderSync: () => string; ++ getBuildId: () => Promise; ++ getBuildIdSync: () => string; ++ getCarrier: () => Promise; ++ getCarrierSync: () => string; ++ getCodename: () => Promise; ++ getCodenameSync: () => string; ++ getDevice: () => Promise; ++ getDeviceName: () => Promise; ++ getDeviceNameSync: () => string; ++ getDeviceSync: () => string; ++ getDeviceToken: () => Promise; ++ getDisplay: () => Promise; ++ getDisplaySync: () => string; ++ getFingerprint: () => Promise; ++ getFingerprintSync: () => string; ++ getFirstInstallTime: () => Promise; ++ getFirstInstallTimeSync: () => number; ++ getFontScale: () => Promise; ++ getFontScaleSync: () => number; ++ getFreeDiskStorage: () => Promise; ++ getFreeDiskStorageOld: () => Promise; ++ getFreeDiskStorageSync: () => number; ++ getFreeDiskStorageOldSync: () => number; ++ getHardware: () => Promise; ++ getHardwareSync: () => string; ++ getHost: () => Promise; ++ getHostSync: () => string; ++ getIncremental: () => Promise; ++ getIncrementalSync: () => string; ++ getInstallerPackageName: () => Promise; ++ getInstallerPackageNameSync: () => string; ++ getInstallReferrer: () => Promise; ++ getInstallReferrerSync: () => string; ++ getInstanceId: () => Promise; ++ getInstanceIdSync: () => string; ++ getIpAddress: () => Promise; ++ getIpAddressSync: () => string; ++ getLastUpdateTime: () => Promise; ++ getLastUpdateTimeSync: () => number; ++ getMacAddress: () => Promise; ++ getMacAddressSync: () => string; ++ getMaxMemory: () => Promise; ++ getMaxMemorySync: () => number; ++ getPhoneNumber: () => Promise; ++ getPhoneNumberSync: () => string; ++ getPreviewSdkInt: () => Promise; ++ getPreviewSdkIntSync: () => number; ++ getProduct: () => Promise; ++ getProductSync: () => string; ++ getSecurityPatch: () => Promise; ++ getSecurityPatchSync: () => string; ++ getSerialNumber: () => Promise; ++ getSerialNumberSync: () => string; ++ getSystemAvailableFeatures: () => Promise; ++ getSystemAvailableFeaturesSync: () => string[]; ++ getTags: () => Promise; ++ getTagsSync: () => string; ++ getTotalDiskCapacity: () => Promise; ++ getTotalDiskCapacityOld: () => Promise; ++ getTotalDiskCapacitySync: () => number; ++ getTotalDiskCapacityOldSync: () => number; ++ getTotalMemory: () => Promise; ++ getTotalMemorySync: () => number; ++ getType: () => Promise; ++ getTypeSync: () => string; ++ getUniqueId: () => Promise; ++ getUniqueIdSync: () => string; ++ getUsedMemory: () => Promise; ++ getUsedMemorySync: () => number; ++ getUserAgent: () => Promise; ++ getUserAgentSync: () => string; ++ getBrightness: () => Promise; ++ getBrightnessSync: () => number; ++ hasGms: () => Promise; ++ hasGmsSync: () => boolean; ++ hasHms: () => Promise; ++ hasHmsSync: () => boolean; ++ hasSystemFeature: (feature: string) => Promise; ++ hasSystemFeatureSync: (feature: string) => boolean; ++ isAirplaneMode: () => Promise; ++ isAirplaneModeSync: () => boolean; ++ isBatteryCharging: () => Promise; ++ isBatteryChargingSync: () => boolean; ++ isCameraPresent: () => Promise; ++ isCameraPresentSync: () => boolean; ++ isEmulator: () => Promise; ++ isEmulatorSync: () => boolean; ++ isHeadphonesConnected: () => Promise; ++ isHeadphonesConnectedSync: () => boolean; ++ isLocationEnabled: () => Promise; ++ isLocationEnabledSync: () => boolean; ++ isPinOrFingerprintSet: () => Promise; ++ isPinOrFingerprintSetSync: () => boolean; ++ isMouseConnected: () => Promise; ++ isMouseConnectedSync: () => boolean; ++ isKeyboardConnected: () => Promise; ++ isKeyboardConnectedSync: () => boolean; ++ isTabletMode: () => Promise; ++ syncUniqueId: () => Promise; ++ ++ addListener(eventName: string): void; ++ removeListeners(count: number): void; ++ getConstants(): { ++ appName: string; ++ appVersion: string; ++ brand: string; ++ buildNumber: string; ++ bundleId: string; ++ deviceId: string; ++ deviceType: string; ++ isTablet: boolean; ++ isDisplayZoomed?: boolean; ++ model: string; ++ systemName: string; ++ systemVersion: string; ++ }; ++} ++ ++export default TurboModuleRegistry.get('RNDeviceInfo'); +diff --git a/node_modules/react-native-device-info/src/index.js.flow b/node_modules/react-native-device-info/src/index.js.flow +index 02fbb10..fdb85b0 100644 +--- a/node_modules/react-native-device-info/src/index.js.flow ++++ b/node_modules/react-native-device-info/src/index.js.flow +@@ -153,6 +153,7 @@ declare module.exports: { + isKeyboardConnectedSync: () => boolean, + isTabletMode: () => Promise, + isTablet: () => boolean, ++ isDisplayZoomed: () => boolean, + supported32BitAbis: () => Promise, + supported32BitAbisSync: () => string[], + supported64BitAbis: () => Promise, +diff --git a/node_modules/react-native-device-info/src/index.ts b/node_modules/react-native-device-info/src/index.ts +index 6108ab9..85b1c44 100644 +--- a/node_modules/react-native-device-info/src/index.ts ++++ b/node_modules/react-native-device-info/src/index.ts +@@ -1,7 +1,7 @@ + import { useCallback, useEffect, useState } from 'react'; +-import { Dimensions, NativeEventEmitter, NativeModules, Platform } from 'react-native'; ++import { Dimensions, NativeEventEmitter, Platform } from 'react-native'; + import { useOnEvent, useOnMount } from './internal/asyncHookWrappers'; +-import devicesWithDynamicIsland from "./internal/devicesWithDynamicIsland"; ++import devicesWithDynamicIsland from './internal/devicesWithDynamicIsland'; + import devicesWithNotch from './internal/devicesWithNotch'; + import RNDeviceInfo from './internal/nativeInterface'; + import { +@@ -9,7 +9,7 @@ import { + getSupportedPlatformInfoFunctions, + getSupportedPlatformInfoSync, + } from './internal/supported-platform-info'; +-import { DeviceInfoModule } from './internal/privateTypes'; ++import { DeviceInfoModule, NativeConstants } from './internal/privateTypes'; + import type { + AsyncHookResult, + DeviceType, +@@ -17,6 +17,15 @@ import type { + PowerState, + } from './internal/types'; + ++let constants: NativeConstants; ++ ++function getConstants() { ++ if (constants === undefined) { ++ constants = RNDeviceInfo.getConstants() as NativeConstants; ++ } ++ return constants; ++} ++ + export const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({ + memoKey: 'uniqueId', + supportedPlatforms: ['android', 'ios', 'windows'], +@@ -95,7 +104,7 @@ export const getDeviceId = () => + getSupportedPlatformInfoSync({ + defaultValue: 'unknown', + memoKey: 'deviceId', +- getter: () => RNDeviceInfo.deviceId, ++ getter: () => getConstants().deviceId, + supportedPlatforms: ['android', 'ios', 'windows'], + }); + +@@ -113,7 +122,7 @@ export const getModel = () => + memoKey: 'model', + defaultValue: 'unknown', + supportedPlatforms: ['ios', 'android', 'windows'], +- getter: () => RNDeviceInfo.model, ++ getter: () => getConstants().model, + }); + + export const getBrand = () => +@@ -121,7 +130,7 @@ export const getBrand = () => + memoKey: 'brand', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.brand, ++ getter: () => getConstants().brand, + }); + + export const getSystemName = () => +@@ -131,7 +140,7 @@ export const getSystemName = () => + memoKey: 'systemName', + getter: () => + Platform.select({ +- ios: RNDeviceInfo.systemName, ++ ios: getConstants().systemName, + android: 'Android', + windows: 'Windows', + default: 'unknown', +@@ -141,7 +150,7 @@ export const getSystemName = () => + export const getSystemVersion = () => + getSupportedPlatformInfoSync({ + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.systemVersion, ++ getter: () => getConstants().systemVersion, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'systemVersion', + }); +@@ -167,7 +176,7 @@ export const getBundleId = () => + memoKey: 'bundleId', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.bundleId, ++ getter: () => getConstants().bundleId, + }); + + export const [ +@@ -185,7 +194,7 @@ export const getApplicationName = () => + getSupportedPlatformInfoSync({ + memoKey: 'appName', + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.appName, ++ getter: () => getConstants().appName, + supportedPlatforms: ['android', 'ios', 'windows'], + }); + +@@ -193,7 +202,7 @@ export const getBuildNumber = () => + getSupportedPlatformInfoSync({ + memoKey: 'buildNumber', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => RNDeviceInfo.buildNumber, ++ getter: () => getConstants().buildNumber, + defaultValue: 'unknown', + }); + +@@ -202,7 +211,7 @@ export const getVersion = () => + memoKey: 'version', + defaultValue: 'unknown', + supportedPlatforms: ['android', 'ios', 'windows'], +- getter: () => RNDeviceInfo.appVersion, ++ getter: () => getConstants().appVersion, + }); + + export function getReadableVersion() { +@@ -371,7 +380,15 @@ export const isTablet = () => + defaultValue: false, + supportedPlatforms: ['android', 'ios', 'windows'], + memoKey: 'tablet', +- getter: () => RNDeviceInfo.isTablet, ++ getter: () => getConstants().isTablet, ++ }); ++ ++export const isDisplayZoomed = () => ++ getSupportedPlatformInfoSync({ ++ defaultValue: false, ++ supportedPlatforms: ['ios'], ++ memoKey: 'zoomed', ++ getter: () => getConstants().isDisplayZoomed, + }); + + export const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions( +@@ -386,6 +403,7 @@ export const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPl + let notch: boolean; + export function hasNotch() { + if (notch === undefined) { ++ console.log(RNDeviceInfo); + let _brand = getBrand(); + let _model = getModel(); + notch = +@@ -550,8 +568,8 @@ export const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFuncti + Partial + >({ + supportedPlatforms: ['ios', 'android', 'windows', 'web'], +- getter: () => RNDeviceInfo.getPowerState(), +- syncGetter: () => RNDeviceInfo.getPowerStateSync(), ++ getter: () => RNDeviceInfo.getPowerState() as Promise>, ++ syncGetter: () => RNDeviceInfo.getPowerStateSync() as Partial, + defaultValue: {}, + }); + +@@ -583,7 +601,7 @@ export const getDeviceType = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.deviceType, ++ getter: () => getConstants().deviceType, + }); + }; + +@@ -592,7 +610,7 @@ export const getDeviceTypeSync = () => { + memoKey: 'deviceType', + supportedPlatforms: ['android', 'ios', 'windows'], + defaultValue: 'unknown', +- getter: () => RNDeviceInfo.deviceType, ++ getter: () => getConstants().deviceType, + }); + }; + +@@ -693,8 +711,8 @@ export const [ + getAvailableLocationProvidersSync, + ] = getSupportedPlatformInfoFunctions({ + supportedPlatforms: ['android', 'ios'], +- getter: () => RNDeviceInfo.getAvailableLocationProviders(), +- syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync(), ++ getter: () => RNDeviceInfo.getAvailableLocationProviders() as Promise, ++ syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync() as LocationProviderInfo, + defaultValue: {}, + }); + +@@ -712,7 +730,7 @@ export async function getDeviceToken() { + return 'unknown'; + } + +-const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo); ++const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo); + export function useBatteryLevel(): number | null { + const [batteryLevel, setBatteryLevel] = useState(null); + +@@ -972,6 +990,7 @@ const DeviceInfo: DeviceInfoModule = { + isKeyboardConnectedSync, + isTabletMode, + isTablet, ++ isDisplayZoomed, + supported32BitAbis, + supported32BitAbisSync, + supported64BitAbis, +diff --git a/node_modules/react-native-device-info/src/internal/asyncHookWrappers.ts b/node_modules/react-native-device-info/src/internal/asyncHookWrappers.ts +index 2f39850..aa69cd1 100644 +--- a/node_modules/react-native-device-info/src/internal/asyncHookWrappers.ts ++++ b/node_modules/react-native-device-info/src/internal/asyncHookWrappers.ts +@@ -1,5 +1,6 @@ + import { useState, useEffect } from 'react'; +-import { NativeEventEmitter, NativeModules } from 'react-native'; ++import { NativeEventEmitter } from 'react-native'; ++import RNDeviceInfo from './nativeInterface'; + import type { AsyncHookResult } from './types'; + + /** +@@ -26,7 +27,7 @@ export function useOnMount(asyncGetter: () => Promise, initialResult: T): + return response; + } + +-export const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo); ++export const deviceInfoEmitter = new NativeEventEmitter(RNDeviceInfo); + + /** + * simple hook wrapper for handling events +diff --git a/node_modules/react-native-device-info/src/internal/nativeInterface.native.ts b/node_modules/react-native-device-info/src/internal/nativeInterface.native.ts +new file mode 100644 +index 0000000..6408740 +--- /dev/null ++++ b/node_modules/react-native-device-info/src/internal/nativeInterface.native.ts +@@ -0,0 +1,3 @@ ++import RNDeviceInfoModule from '../fabric/NativeDeviceInfoModule'; ++ ++export default RNDeviceInfoModule; +diff --git a/node_modules/react-native-device-info/src/internal/nativeInterface.ts b/node_modules/react-native-device-info/src/internal/nativeInterface.ts +index 0e47d75..0ce6bc1 100644 +--- a/node_modules/react-native-device-info/src/internal/nativeInterface.ts ++++ b/node_modules/react-native-device-info/src/internal/nativeInterface.ts +@@ -1,12 +1,6 @@ +-import { Platform, NativeModules } from 'react-native'; +-import { DeviceInfoNativeModule } from './privateTypes'; ++import { Platform } from 'react-native'; + +-let RNDeviceInfo: DeviceInfoNativeModule | undefined = NativeModules.RNDeviceInfo; +- +-// @ts-ignore +-if (Platform.OS === 'web' || Platform.OS === 'dom') { +- RNDeviceInfo = require('../web'); +-} ++let RNDeviceInfo = require('../web'); + + if (!RNDeviceInfo) { + // Produce an error if we don't have the native module +@@ -25,4 +19,4 @@ if (!RNDeviceInfo) { + } + } + +-export default RNDeviceInfo as DeviceInfoNativeModule; ++export default RNDeviceInfo; +diff --git a/node_modules/react-native-device-info/src/internal/privateTypes.ts b/node_modules/react-native-device-info/src/internal/privateTypes.ts +index fb71735..9c41855 100644 +--- a/node_modules/react-native-device-info/src/internal/privateTypes.ts ++++ b/node_modules/react-native-device-info/src/internal/privateTypes.ts +@@ -8,7 +8,7 @@ export type NotchDevice = { + [key: string]: string; + }; + +-interface NativeConstants { ++export interface NativeConstants { + appName: string; + appVersion: string; + brand: string; +@@ -17,6 +17,7 @@ interface NativeConstants { + deviceId: string; + deviceType: DeviceType; + isTablet: boolean; ++ isDisplayZoomed?: boolean; + model: string; + systemName: string; + systemVersion: string; +@@ -179,6 +180,7 @@ export interface DeviceInfoModule extends ExposedNativeMethods { + isLandscape: () => Promise; + isLandscapeSync: () => boolean; + isTablet: () => boolean; ++ isDisplayZoomed: () => boolean | undefined; + supported32BitAbis: () => Promise; + supported32BitAbisSync: () => string[]; + supported64BitAbis: () => Promise; diff --git a/patches/react-native-pdf+6.7.3.patch b/patches/react-native-pdf+6.7.3.patch index 63024e7d4c1f..0f0f270cefd1 100644 --- a/patches/react-native-pdf+6.7.3.patch +++ b/patches/react-native-pdf+6.7.3.patch @@ -1,3 +1,33 @@ +diff --git a/node_modules/react-native-pdf/react-native-pdf.podspec b/node_modules/react-native-pdf/react-native-pdf.podspec +index fb36140..5d5f19e 100644 +--- a/node_modules/react-native-pdf/react-native-pdf.podspec ++++ b/node_modules/react-native-pdf/react-native-pdf.podspec +@@ -17,24 +17,11 @@ Pod::Spec.new do |s| + s.framework = "PDFKit" + + if fabric_enabled +- folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' +- +- s.pod_target_xcconfig = { +- 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/boost" "$(PODS_ROOT)/boost-for-react-native" "$(PODS_ROOT)/RCT-Folly"', +- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", +- } + s.platforms = { ios: '11.0', tvos: '11.0' } +- s.compiler_flags = folly_compiler_flags + ' -DRCT_NEW_ARCH_ENABLED' + s.source_files = 'ios/**/*.{h,m,mm,cpp}' + s.requires_arc = true + +- s.dependency "React" +- s.dependency "React-RCTFabric" +- s.dependency "React-Codegen" +- s.dependency "RCT-Folly" +- s.dependency "RCTRequired" +- s.dependency "RCTTypeSafety" +- s.dependency "ReactCommon/turbomodule/core" ++ install_modules_dependencies(s) + else + s.platform = :ios, '8.0' + s.source_files = 'ios/**/*.{h,m,mm}' diff --git a/node_modules/react-native-pdf/index.js b/node_modules/react-native-pdf/index.js index c05de52..bea7af8 100644 --- a/node_modules/react-native-pdf/index.js diff --git a/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch b/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch new file mode 100644 index 000000000000..6035477256b7 --- /dev/null +++ b/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch @@ -0,0 +1,4 @@ +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.m b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm +similarity index 100% +rename from node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.m +rename to node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm diff --git a/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch b/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch new file mode 100644 index 000000000000..7d5aab6c84cf --- /dev/null +++ b/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch @@ -0,0 +1,3287 @@ +diff --git a/node_modules/react-native-plaid-link-sdk/README.md b/node_modules/react-native-plaid-link-sdk/README.md +index 93ebca6..7bea608 100644 +--- a/node_modules/react-native-plaid-link-sdk/README.md ++++ b/node_modules/react-native-plaid-link-sdk/README.md +@@ -49,7 +49,6 @@ cd ios && bundle install && bundle exec pod install + + AutoLinking should handle all of the Android setup. + +- + ### React Native Setup + + - To initialize `PlaidLink`, you will need to first create a `link_token` at [/link/token/create](https://plaid.com/docs/#create-link-token). Check out our [QuickStart guide](https://plaid.com/docs/quickstart/#introduction) for additional API information. +@@ -58,7 +57,13 @@ AutoLinking should handle all of the Android setup. + + ```javascript + import { Text } from 'react-native'; +-import { PlaidLink, LinkSuccess, LinkExit, LinkLogLevel, LinkIOSPresentationStyle } from 'react-native-plaid-link-sdk'; ++import { ++ PlaidLink, ++ LinkSuccess, ++ LinkExit, ++ LinkLogLevel, ++ LinkIOSPresentationStyle, ++} from 'react-native-plaid-link-sdk'; + + const MyPlaidComponent = () => { + return ( +@@ -77,7 +82,7 @@ const MyPlaidComponent = () => { + // UI is always presented in full screen on Android. + iOSPresentationStyle={LinkIOSPresentationStyle.MODAL} + > +- Add Account ++ Add Account + + ); + }; +@@ -92,6 +97,7 @@ const MyPlaidComponent = () => { + ##### Android OAuth Requirements + + ###### Register your app package name ++ + 1. Log into your [Plaid Dashboard](https://dashboard.plaid.com/developers/api) and navigate to the API page under the Developers tab. + 2. Next to Allowed Android package names click "Configure" then "Add New Android Package Name". + 3. Enter your package name, for example `com.plaid.example`. +@@ -100,17 +106,16 @@ const MyPlaidComponent = () => { + ##### iOS OAuth Requirements + + For iOS OAuth to work, specific requirements must be met. ++ + 1. Redirect URIs must be [registered](https://plaid.com/docs/link/ios/#register-your-redirect-uri), and set up as [universal links](https://developer.apple.com/documentation/xcode/supporting-associated-domains). + 2. Your native iOS application, must be configured with your associated domain. See your iOS [set up universal links](https://plaid.com/docs/link/ios/#set-up-universal-links) for more information. + +- + ##### Link Token OAuth Requirements + + - On iOS you must configure your `link_token` with a [redirect_uri](https://plaid.com/docs/api/tokens/#link-token-create-request-redirect-uri) to support OAuth. When creating a `link_token` for initializing Link on Android, `android_package_name` must be specified and `redirect_uri` must be left blank. + + - On Android you must configure your `link_token` with an [android_package_name](https://plaid.com/docs/api/tokens/#link-token-create-request-android-package-name) to support OAuth. When creating a `link_token` for initializing Link on iOS, `android_package_name` must be left blank and `redirect_uri` should be used instead. + +- + #### To receive onEvent callbacks: + + The React Native Plaid module emits `onEvent` events throughout the account linking process — see [details here](https://plaid.com/docs/link/react-native/#onevent). To receive these events in your React Native app, wrap the `PlaidLink` react component with the following in order to listen for those events: +@@ -139,9 +144,9 @@ class PlaidEventContainer extends React.Component { + You can also use the `usePlaidEmitter` hook in react functional components: + + ```javascript +- usePlaidEmitter((event: LinkEvent) => { +- console.log(event) +- }) ++usePlaidEmitter((event: LinkEvent) => { ++ console.log(event); ++}); + ``` + + ## Upgrading +@@ -165,6 +170,8 @@ While these older versions are expected to continue to work without disruption, + | 11.0.2 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 | + | 11.0.1 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 | + | 11.0.0 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 | ++| 10.13.0 | >= 0.66.0 | [3.14.3+] | 21 | 33 | >=4.7.2 | 11.0 | Active, supports Xcode 14 | ++| 10.12.0 | >= 0.66.0 | [3.14.3+] | 21 | 33 | >=4.7.1 | 11.0 | Active, supports Xcode 14 | + | 10.11.0 | >= 0.66.0 | [3.14.1+] | 21 | 33 | >=4.7.1 | 11.0 | Active, supports Xcode 14 | + | ~10.10.0~ | >= 0.66.0 | [3.14.2+] | 21 | 33 | >=4.7.1 | 11.0 | **Deprecated** | + | 10.9.1 | >= 0.66.0 | [3.14.1+] | 21 | 33 | >=4.7.0 | 11.0 | Active, supports Xcode 14 | +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock +deleted file mode 100644 +index b5da584..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin +deleted file mode 100644 +index ef608b4..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin +deleted file mode 100644 +index 0856ae4..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +deleted file mode 100644 +index 12aea68..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/gc.properties +deleted file mode 100644 +index e69de29..0000000 +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin +deleted file mode 100644 +index f76dd23..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock +deleted file mode 100644 +index 752a252..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/gc.properties +deleted file mode 100644 +index e69de29..0000000 +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +deleted file mode 100644 +index 470ca89..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties +deleted file mode 100644 +index 1439672..0000000 +--- a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties ++++ /dev/null +@@ -1,2 +0,0 @@ +-#Thu Nov 09 09:41:17 PST 2023 +-gradle.version=7.4.2 +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock +deleted file mode 100644 +index 34602e1..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin +deleted file mode 100644 +index 2420123..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin +deleted file mode 100644 +index 1081852..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/vcs-1/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/vcs-1/gc.properties +deleted file mode 100644 +index e69de29..0000000 +diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml +deleted file mode 100644 +index 0364d75..0000000 +--- a/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml ++++ /dev/null +@@ -1,14 +0,0 @@ +- +- +- +- +- +- +- +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml +deleted file mode 100644 +index a318cae..0000000 +--- a/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml ++++ /dev/null +@@ -1,9 +0,0 @@ +- +- +- +- +- +- +- +- +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml +deleted file mode 100644 +index 6c0b863..0000000 +--- a/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml ++++ /dev/null +@@ -1,6 +0,0 @@ +- +- +- +- +- +- +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/android/build.gradle b/node_modules/react-native-plaid-link-sdk/android/build.gradle +index 2d9e2ce..e88208b 100644 +--- a/node_modules/react-native-plaid-link-sdk/android/build.gradle ++++ b/node_modules/react-native-plaid-link-sdk/android/build.gradle +@@ -12,7 +12,12 @@ allprojects { + + + buildscript { +- ext.kotlin_version = '1.8.22' ++ ext { ++ kotlin_version = '1.8.22' ++ } ++ ext.safeExtGet = {prop, fallback -> ++ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback ++ } + repositories { + google() + mavenCentral() +@@ -25,10 +30,32 @@ buildscript { + } + } + ++def isNewArchitectureEnabled() { ++ // To opt-in for the New Architecture, you can either: ++ // - Set `newArchEnabled` to true inside the `gradle.properties` file ++ // - Invoke gradle with `-newArchEnabled=true` ++ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` ++ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" ++} ++ ++if (isNewArchitectureEnabled()) { ++ apply plugin: "com.facebook.react" ++} ++ + apply plugin: 'com.android.library' + apply plugin: "kotlin-android" + + android { ++ ++ // Used to override the NDK path/version on internal CI or by allowing ++ // users to customize the NDK path/version from their root project (e.g. for M1 support) ++ if (rootProject.hasProperty("ndkPath")) { ++ ndkPath rootProject.ext.ndkPath ++ } ++ if (rootProject.hasProperty("ndkVersion")) { ++ ndkVersion rootProject.ext.ndkVersion ++ } ++ + def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() + if (agpVersion >= 7) { + namespace 'com.plaid' +@@ -52,6 +79,14 @@ android { + } + } + ++ sourceSets.main { ++ java { ++ if (!isNewArchitectureEnabled()) { ++ srcDirs += 'src/paper/java' ++ } ++ } ++ } ++ + buildTypes { + release { + debuggable = false +diff --git a/node_modules/react-native-plaid-link-sdk/android/local.properties b/node_modules/react-native-plaid-link-sdk/android/local.properties +deleted file mode 100644 +index 0b4e321..0000000 +--- a/node_modules/react-native-plaid-link-sdk/android/local.properties ++++ /dev/null +@@ -1,8 +0,0 @@ +-## This file must *NOT* be checked into Version Control Systems, +-# as it contains information specific to your local configuration. +-# +-# Location of the SDK. This is only used by Gradle. +-# For customization when using a Version Control System, please read the +-# header note. +-#Fri Aug 11 13:58:32 PDT 2023 +-sdk.dir=/Users/dtroupe/Library/Android/sdk +diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt +index c73011f..66fd266 100644 +--- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt ++++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt +@@ -19,9 +19,9 @@ class PLKEmbeddedViewManager : SimpleViewManager() { + } + + override fun getExportedCustomBubblingEventTypeConstants(): Map { +- return mapOf( +- EVENT_NAME to mapOf( +- "phasedRegistrationNames" to mapOf( ++ return mutableMapOf( ++ EVENT_NAME to mutableMapOf( ++ "phasedRegistrationNames" to mutableMapOf( + "bubbled" to EVENT_NAME + ) + )) +diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt +index 293374a..b79352e 100644 +--- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt ++++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt +@@ -24,9 +24,9 @@ import org.json.JSONException + import org.json.JSONObject + import java.util.ArrayList + +-@ReactModule(name = PlaidModule.TAG) ++@ReactModule(name = PlaidModule.NAME) + class PlaidModule internal constructor(reactContext: ReactApplicationContext) : +- ReactContextBaseJavaModule(reactContext), ActivityEventListener { ++ NativePlaidLinkModuleAndroidSpec(reactContext), ActivityEventListener { + + val mActivityResultManager by lazy { ActivityResultManager() } + +@@ -38,11 +38,11 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) : + companion object { + private const val LINK_TOKEN_PREFIX = "link" + +- const val TAG = "PlaidAndroid" ++ const val NAME = "PlaidAndroid" + } + + override fun getName(): String { +- return PlaidModule.TAG ++ return NAME + } + + override fun initialize() { +@@ -78,7 +78,7 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) : + + @ReactMethod + @Suppress("unused") +- fun startLinkActivityForResult( ++ override fun startLinkActivityForResult( + token: String, + noLoadingState: Boolean, + logLevel: String, +@@ -113,6 +113,10 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) : + } + } + ++ override fun addListener(eventName: String?) = Unit ++ ++ override fun removeListeners(count: Double) = Unit ++ + private fun maybeGetStringField(obj: JSONObject, fieldName: String): String? { + if (obj.has(fieldName) && !TextUtils.isEmpty(obj.getString(fieldName))) { + return obj.getString(fieldName) +diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java +index c59299e..d6b310e 100644 +--- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java ++++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java +@@ -6,19 +6,54 @@ import java.util.List; + import java.util.Map; + + import com.facebook.react.TurboReactPackage; ++import com.facebook.react.ViewManagerOnDemandReactPackage; ++import com.facebook.react.bridge.ModuleSpec; + import com.facebook.react.bridge.NativeModule; + import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.module.annotations.ReactModule; ++import com.facebook.react.module.annotations.ReactModuleList; + import com.facebook.react.module.model.ReactModuleInfo; + import com.facebook.react.module.model.ReactModuleInfoProvider; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; + import com.facebook.react.uimanager.ViewManager; + +-@SuppressWarnings("unused") +-public class PlaidPackage extends TurboReactPackage { ++import javax.annotation.Nonnull; ++import javax.annotation.Nullable; + ++@ReactModuleList(nativeModules = {PlaidModule.class}) ++public class PlaidPackage extends TurboReactPackage implements ViewManagerOnDemandReactPackage { ++ ++ /** ++ * {@inheritDoc} ++ */ ++ @Override ++ public List getViewManagerNames(ReactApplicationContext reactContext) { ++ return null; ++ } ++ ++ @Override ++ protected List getViewManagers(ReactApplicationContext reactContext) { ++ return null; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ + @Override +- public NativeModule getModule( +- String name, ReactApplicationContext reactContext) { +- return new PlaidModule(reactContext); ++ public @Nullable ++ ViewManager createViewManager( ++ ReactApplicationContext reactContext, String viewManagerName) { ++ return null; ++ } ++ ++ @Override ++ public NativeModule getModule(String name, @Nonnull ReactApplicationContext reactContext) { ++ switch (name) { ++ case PlaidModule.NAME: ++ return new PlaidModule(reactContext); ++ default: ++ return null; ++ } + } + + @Override +@@ -28,19 +63,44 @@ public class PlaidPackage extends TurboReactPackage { + + @Override + public ReactModuleInfoProvider getReactModuleInfoProvider() { +- return () -> { +- Map map = new HashMap<>(); +- map.put( +- "PlaidAndroid", +- new ReactModuleInfo( +- "PlaidAndroid", +- "com.reactlibrary.PlaidModule", +- false, +- false, +- true, +- false, +- false)); +- return map; +- }; ++ try { ++ Class reactModuleInfoProviderClass = ++ Class.forName("com.plaid.PlaidPackage$$ReactModuleInfoProvider"); ++ return (ReactModuleInfoProvider) reactModuleInfoProviderClass.newInstance(); ++ } catch (ClassNotFoundException e) { ++ // ReactModuleSpecProcessor does not run at build-time. Create this ReactModuleInfoProvider by ++ // hand. ++ return new ReactModuleInfoProvider() { ++ @Override ++ public Map getReactModuleInfos() { ++ final Map reactModuleInfoMap = new HashMap<>(); ++ ++ Class[] moduleList = ++ new Class[]{ ++ PlaidModule.class, ++ }; ++ ++ for (Class moduleClass : moduleList) { ++ ReactModule reactModule = moduleClass.getAnnotation(ReactModule.class); ++ ++ reactModuleInfoMap.put( ++ reactModule.name(), ++ new ReactModuleInfo( ++ reactModule.name(), ++ moduleClass.getName(), ++ reactModule.canOverrideExistingModule(), ++ reactModule.needsEagerInit(), ++ reactModule.hasConstants(), ++ reactModule.isCxxModule(), ++ TurboModule.class.isAssignableFrom(moduleClass))); ++ } ++ ++ return reactModuleInfoMap; ++ } ++ }; ++ } catch (InstantiationException | IllegalAccessException e) { ++ throw new RuntimeException( ++ "No ReactModuleInfoProvider for com.plaid.PlaidPackage$$ReactModuleInfoProvider", e); ++ } + } + } +diff --git a/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java b/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java +new file mode 100644 +index 0000000..fee5a11 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java +@@ -0,0 +1,46 @@ ++ ++/** ++ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++ * ++ * Do not edit this file as changes may cause incorrect behavior and will be lost ++ * once the code is regenerated. ++ * ++ * @generated by codegen project: GenerateModuleJavaSpec.js ++ * ++ * @nolint ++ */ ++ ++package com.plaid; ++ ++import com.facebook.proguard.annotations.DoNotStrip; ++import com.facebook.react.bridge.Callback; ++import com.facebook.react.bridge.ReactApplicationContext; ++import com.facebook.react.bridge.ReactContextBaseJavaModule; ++import com.facebook.react.bridge.ReactMethod; ++import com.facebook.react.turbomodule.core.interfaces.TurboModule; ++import javax.annotation.Nonnull; ++ ++public abstract class NativePlaidLinkModuleAndroidSpec extends ReactContextBaseJavaModule implements TurboModule { ++ public static final String NAME = "PlaidAndroid"; ++ ++ public NativePlaidLinkModuleAndroidSpec(ReactApplicationContext reactContext) { ++ super(reactContext); ++ } ++ ++ @Override ++ public @Nonnull String getName() { ++ return NAME; ++ } ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void startLinkActivityForResult(String token, boolean noLoadingState, String logLevel, Callback onSuccessCallback, Callback onExitCallback); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void addListener(String eventName); ++ ++ @ReactMethod ++ @DoNotStrip ++ public abstract void removeListeners(double count); ++} +diff --git a/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js b/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js +index c7b1e96..c429da7 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js ++++ b/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js +@@ -1,55 +1,69 @@ + import React from 'react'; + import NativeEmbeddedLinkView from './NativeEmbeddedLinkView'; + class EmbeddedEvent { +- constructor(event) { +- this.eventName = event.eventName; +- this.metadata = event.metadata; +- } ++ constructor(event) { ++ this.eventName = event.eventName; ++ this.metadata = event.metadata; ++ } + } + class EmbeddedExit { +- constructor(event) { +- this.error = event.error; +- this.metadata = event.metadata; +- } ++ constructor(event) { ++ this.error = event.error; ++ this.metadata = event.metadata; ++ } + } + class EmbeddedSuccess { +- constructor(event) { +- this.publicToken = event.publicToken; +- this.metadata = event.metadata; +- } ++ constructor(event) { ++ this.publicToken = event.publicToken; ++ this.metadata = event.metadata; ++ } + } +-export const EmbeddedLinkView = (props) => { +- const { token, iOSPresentationStyle, onEvent, onSuccess, onExit, style } = props; +- const onEmbeddedEvent = (event) => { +- switch (event.nativeEvent.embeddedEventName) { +- case 'onSuccess': { +- if (!onSuccess) { +- return; +- } +- const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent); +- onSuccess(embeddedSuccess); +- break; +- } +- case 'onExit': { +- if (!onExit) { +- return; +- } +- const embeddedExit = new EmbeddedExit(event.nativeEvent); +- onExit(embeddedExit); +- break; +- } +- case 'onEvent': { +- if (!onEvent) { +- return; +- } +- const embeddedEvent = new EmbeddedEvent(event.nativeEvent); +- onEvent(embeddedEvent); +- break; +- } +- default: { +- return; +- } ++export const EmbeddedLinkView = props => { ++ const { ++ token, ++ iOSPresentationStyle, ++ onEvent, ++ onSuccess, ++ onExit, ++ style, ++ } = props; ++ const onEmbeddedEvent = event => { ++ switch (event.nativeEvent.embeddedEventName) { ++ case 'onSuccess': { ++ if (!onSuccess) { ++ return; + } +- }; +- return ; ++ const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent); ++ onSuccess(embeddedSuccess); ++ break; ++ } ++ case 'onExit': { ++ if (!onExit) { ++ return; ++ } ++ const embeddedExit = new EmbeddedExit(event.nativeEvent); ++ onExit(embeddedExit); ++ break; ++ } ++ case 'onEvent': { ++ if (!onEvent) { ++ return; ++ } ++ const embeddedEvent = new EmbeddedEvent(event.nativeEvent); ++ onEvent(embeddedEvent); ++ break; ++ } ++ default: { ++ return; ++ } ++ } ++ }; ++ return ( ++ ++ ); + }; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts +index a48b319..43205dd 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts ++++ b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts +@@ -4,9 +4,9 @@ import { LinkEventListener, PlaidLinkComponentProps, PlaidLinkProps } from './Ty + * A hook that registers a listener on the Plaid emitter for the 'onEvent' type. + * The listener is cleaned up when this view is unmounted + * +- * @param LinkEventListener the listener to call ++ * @param linkEventListener the listener to call + */ +-export declare const usePlaidEmitter: (LinkEventListener: LinkEventListener) => void; ++export declare const usePlaidEmitter: (linkEventListener: LinkEventListener) => void; + export declare const openLink: (props: PlaidLinkProps) => Promise; + export declare const dismissLink: () => void; + export declare const PlaidLink: (props: PlaidLinkComponentProps) => React.JSX.Element; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js +index 21da2bc..6c43633 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js ++++ b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js +@@ -1,83 +1,146 @@ +-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { +- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } +- return new (P || (P = Promise))(function (resolve, reject) { +- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } +- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } +- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } +- step((generator = generator.apply(thisArg, _arguments || [])).next()); ++var __awaiter = ++ (this && this.__awaiter) || ++ function(thisArg, _arguments, P, generator) { ++ function adopt(value) { ++ return value instanceof P ++ ? value ++ : new P(function(resolve) { ++ resolve(value); ++ }); ++ } ++ return new (P || (P = Promise))(function(resolve, reject) { ++ function fulfilled(value) { ++ try { ++ step(generator.next(value)); ++ } catch (e) { ++ reject(e); ++ } ++ } ++ function rejected(value) { ++ try { ++ step(generator['throw'](value)); ++ } catch (e) { ++ reject(e); ++ } ++ } ++ function step(result) { ++ result.done ++ ? resolve(result.value) ++ : adopt(result.value).then(fulfilled, rejected); ++ } ++ step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +-}; ++ }; ++var _a; + import React, { useEffect } from 'react'; +-import { NativeEventEmitter, NativeModules, Platform, TouchableOpacity, } from 'react-native'; +-import { LinkIOSPresentationStyle, LinkLogLevel, } from './Types'; ++import { NativeEventEmitter, Platform, TouchableOpacity } from 'react-native'; ++import { LinkIOSPresentationStyle, LinkLogLevel } from './Types'; ++import RNLinksdkAndroid from './fabric/NativePlaidLinkModuleAndroid'; ++import RNLinksdkiOS from './fabric/NativePlaidLinkModuleiOS'; ++const RNLinksdk = ++ (_a = Platform.OS === 'android' ? RNLinksdkAndroid : RNLinksdkiOS) !== null && ++ _a !== void 0 ++ ? _a ++ : undefined; + /** + * A hook that registers a listener on the Plaid emitter for the 'onEvent' type. + * The listener is cleaned up when this view is unmounted + * +- * @param LinkEventListener the listener to call ++ * @param linkEventListener the listener to call + */ +-export const usePlaidEmitter = (LinkEventListener) => { +- useEffect(() => { +- const emitter = new NativeEventEmitter(Platform.OS === 'ios' +- ? NativeModules.RNLinksdk +- : NativeModules.PlaidAndroid); +- const listener = emitter.addListener('onEvent', LinkEventListener); +- // Clean up after this effect: +- return function cleanup() { +- listener.remove(); +- }; +- }, []); ++export const usePlaidEmitter = linkEventListener => { ++ useEffect(() => { ++ const emitter = new NativeEventEmitter(RNLinksdk); ++ const listener = emitter.addListener('onEvent', linkEventListener); ++ // Clean up after this effect: ++ return function cleanup() { ++ listener.remove(); ++ }; ++ }, []); + }; +-export const openLink = (props) => __awaiter(void 0, void 0, void 0, function* () { +- var _a, _b; ++export const openLink = props => ++ __awaiter(void 0, void 0, void 0, function*() { ++ var _b, _c; + let config = props.tokenConfig; +- let noLoadingState = (_a = config.noLoadingState) !== null && _a !== void 0 ? _a : false; ++ let noLoadingState = ++ (_b = config.noLoadingState) !== null && _b !== void 0 ? _b : false; + if (Platform.OS === 'android') { +- NativeModules.PlaidAndroid.startLinkActivityForResult(config.token, noLoadingState, (_b = config.logLevel) !== null && _b !== void 0 ? _b : LinkLogLevel.ERROR, (result) => { +- if (props.onSuccess != null) { +- props.onSuccess(result); +- } +- }, (result) => { +- if (props.onExit != null) { +- if (result.error != null && result.error.displayMessage != null) { +- //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update. +- result.error.errorDisplayMessage = result.error.displayMessage; +- } +- props.onExit(result); ++ if (RNLinksdkAndroid === null) { ++ throw new Error( ++ '[react-native-plaid-link-sdk] RNLinksdkAndroid is not defined', ++ ); ++ } ++ RNLinksdkAndroid.startLinkActivityForResult( ++ config.token, ++ noLoadingState, ++ (_c = config.logLevel) !== null && _c !== void 0 ++ ? _c ++ : LinkLogLevel.ERROR, ++ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap ++ result => { ++ if (props.onSuccess != null) { ++ props.onSuccess(result); ++ } ++ }, ++ result => { ++ if (props.onExit != null) { ++ if (result.error != null && result.error.displayMessage != null) { ++ //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update. ++ result.error.errorDisplayMessage = result.error.displayMessage; + } +- }); +- } +- else { +- NativeModules.RNLinksdk.create(config.token, noLoadingState); +- let presentFullScreen = props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN; +- NativeModules.RNLinksdk.open(presentFullScreen, (result) => { +- if (props.onSuccess != null) { +- props.onSuccess(result); +- } +- }, (error, result) => { +- if (props.onExit != null) { +- if (error) { +- var data = result || {}; +- data.error = error; +- props.onExit(data); +- } +- else { +- props.onExit(result); +- } ++ props.onExit(result); ++ } ++ }, ++ ); ++ } else { ++ if (RNLinksdkiOS === null) { ++ throw new Error( ++ '[react-native-plaid-link-sdk] RNLinksdkiOS is not defined', ++ ); ++ } ++ RNLinksdkiOS.create(config.token, noLoadingState); ++ let presentFullScreen = ++ props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN; ++ RNLinksdkiOS.open( ++ presentFullScreen, ++ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap ++ result => { ++ if (props.onSuccess != null) { ++ props.onSuccess(result); ++ } ++ }, ++ (error, result) => { ++ if (props.onExit != null) { ++ if (error) { ++ var data = result || {}; ++ data.error = error; ++ props.onExit(data); ++ } else { ++ props.onExit(result); + } +- }); ++ } ++ }, ++ ); + } +-}); ++ }); + export const dismissLink = () => { +- if (Platform.OS === 'ios') { +- NativeModules.RNLinksdk.dismiss(); ++ if (Platform.OS === 'ios') { ++ if (RNLinksdkiOS === null) { ++ throw new Error( ++ '[react-native-plaid-link-sdk] RNLinksdkiOS is not defined', ++ ); + } ++ RNLinksdkiOS.dismiss(); ++ } + }; +-export const PlaidLink = (props) => { +- function onPress() { +- var _a; +- (_a = props.onPress) === null || _a === void 0 ? void 0 : _a.call(props); +- openLink(props); +- } +- return {props.children}; ++export const PlaidLink = props => { ++ function onPress() { ++ var _a; ++ (_a = props.onPress) === null || _a === void 0 ? void 0 : _a.call(props); ++ openLink(props); ++ } ++ return ( ++ // @ts-ignore some types directories misconfiguration ++ {props.children} ++ ); + }; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/Types.js b/node_modules/react-native-plaid-link-sdk/dist/Types.js +index 184adad..11b34e3 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/Types.js ++++ b/node_modules/react-native-plaid-link-sdk/dist/Types.js +@@ -1,430 +1,681 @@ + export var LinkLogLevel; +-(function (LinkLogLevel) { +- LinkLogLevel["DEBUG"] = "debug"; +- LinkLogLevel["INFO"] = "info"; +- LinkLogLevel["WARN"] = "warn"; +- LinkLogLevel["ERROR"] = "error"; ++(function(LinkLogLevel) { ++ LinkLogLevel['DEBUG'] = 'debug'; ++ LinkLogLevel['INFO'] = 'info'; ++ LinkLogLevel['WARN'] = 'warn'; ++ LinkLogLevel['ERROR'] = 'error'; + })(LinkLogLevel || (LinkLogLevel = {})); + export var PlaidEnvironment; +-(function (PlaidEnvironment) { +- PlaidEnvironment["PRODUCTION"] = "production"; +- PlaidEnvironment["DEVELOPMENT"] = "development"; +- PlaidEnvironment["SANDBOX"] = "sandbox"; ++(function(PlaidEnvironment) { ++ PlaidEnvironment['PRODUCTION'] = 'production'; ++ PlaidEnvironment['DEVELOPMENT'] = 'development'; ++ PlaidEnvironment['SANDBOX'] = 'sandbox'; + })(PlaidEnvironment || (PlaidEnvironment = {})); + export var PlaidProduct; +-(function (PlaidProduct) { +- PlaidProduct["ASSETS"] = "assets"; +- PlaidProduct["AUTH"] = "auth"; +- PlaidProduct["DEPOSIT_SWITCH"] = "deposit_switch"; +- PlaidProduct["IDENTITY"] = "identity"; +- PlaidProduct["INCOME"] = "income"; +- PlaidProduct["INVESTMENTS"] = "investments"; +- PlaidProduct["LIABILITIES"] = "liabilities"; +- PlaidProduct["LIABILITIES_REPORT"] = "liabilities_report"; +- PlaidProduct["PAYMENT_INITIATION"] = "payment_initiation"; +- PlaidProduct["TRANSACTIONS"] = "transactions"; ++(function(PlaidProduct) { ++ PlaidProduct['ASSETS'] = 'assets'; ++ PlaidProduct['AUTH'] = 'auth'; ++ PlaidProduct['DEPOSIT_SWITCH'] = 'deposit_switch'; ++ PlaidProduct['IDENTITY'] = 'identity'; ++ PlaidProduct['INCOME'] = 'income'; ++ PlaidProduct['INVESTMENTS'] = 'investments'; ++ PlaidProduct['LIABILITIES'] = 'liabilities'; ++ PlaidProduct['LIABILITIES_REPORT'] = 'liabilities_report'; ++ PlaidProduct['PAYMENT_INITIATION'] = 'payment_initiation'; ++ PlaidProduct['TRANSACTIONS'] = 'transactions'; + })(PlaidProduct || (PlaidProduct = {})); + export var LinkAccountType; +-(function (LinkAccountType) { +- LinkAccountType["CREDIT"] = "credit"; +- LinkAccountType["DEPOSITORY"] = "depository"; +- LinkAccountType["INVESTMENT"] = "investment"; +- LinkAccountType["LOAN"] = "loan"; +- LinkAccountType["OTHER"] = "other"; ++(function(LinkAccountType) { ++ LinkAccountType['CREDIT'] = 'credit'; ++ LinkAccountType['DEPOSITORY'] = 'depository'; ++ LinkAccountType['INVESTMENT'] = 'investment'; ++ LinkAccountType['LOAN'] = 'loan'; ++ LinkAccountType['OTHER'] = 'other'; + })(LinkAccountType || (LinkAccountType = {})); + export var LinkAccountSubtypes; +-(function (LinkAccountSubtypes) { +- LinkAccountSubtypes["ALL"] = "all"; +- LinkAccountSubtypes["CREDIT_CARD"] = "credit card"; +- LinkAccountSubtypes["PAYPAL"] = "paypal"; +- LinkAccountSubtypes["AUTO"] = "auto"; +- LinkAccountSubtypes["BUSINESS"] = "business"; +- LinkAccountSubtypes["COMMERCIAL"] = "commercial"; +- LinkAccountSubtypes["CONSTRUCTION"] = "construction"; +- LinkAccountSubtypes["CONSUMER"] = "consumer"; +- LinkAccountSubtypes["HOME_EQUITY"] = "home equity"; +- LinkAccountSubtypes["LINE_OF_CREDIT"] = "line of credit"; +- LinkAccountSubtypes["LOAN"] = "loan"; +- LinkAccountSubtypes["MORTGAGE"] = "mortgage"; +- LinkAccountSubtypes["OVERDRAFT"] = "overdraft"; +- LinkAccountSubtypes["STUDENT"] = "student"; +- LinkAccountSubtypes["CASH_MANAGEMENT"] = "cash management"; +- LinkAccountSubtypes["CD"] = "cd"; +- LinkAccountSubtypes["CHECKING"] = "checking"; +- LinkAccountSubtypes["EBT"] = "ebt"; +- LinkAccountSubtypes["HSA"] = "hsa"; +- LinkAccountSubtypes["MONEY_MARKET"] = "money market"; +- LinkAccountSubtypes["PREPAID"] = "prepaid"; +- LinkAccountSubtypes["SAVINGS"] = "savings"; +- LinkAccountSubtypes["FOUR_0_1_A"] = "401a"; +- LinkAccountSubtypes["FOUR_0_1_K"] = "401k"; +- LinkAccountSubtypes["FOUR_0_3_B"] = "403B"; +- LinkAccountSubtypes["FOUR_5_7_B"] = "457b"; +- LinkAccountSubtypes["FIVE_2_9"] = "529"; +- LinkAccountSubtypes["BROKERAGE"] = "brokerage"; +- LinkAccountSubtypes["CASH_ISA"] = "cash isa"; +- LinkAccountSubtypes["EDUCATION_SAVINGS_ACCOUNT"] = "education savings account"; +- LinkAccountSubtypes["FIXED_ANNUNITY"] = "fixed annuity"; +- LinkAccountSubtypes["GIC"] = "gic"; +- LinkAccountSubtypes["HEALTH_REIMBURSEMENT_ARRANGEMENT"] = "health reimbursement arrangement"; +- LinkAccountSubtypes["IRA"] = "ira"; +- LinkAccountSubtypes["ISA"] = "isa"; +- LinkAccountSubtypes["KEOGH"] = "keogh"; +- LinkAccountSubtypes["LIF"] = "lif"; +- LinkAccountSubtypes["LIRA"] = "lira"; +- LinkAccountSubtypes["LRIF"] = "lrif"; +- LinkAccountSubtypes["LRSP"] = "lrsp"; +- LinkAccountSubtypes["MUTUAL_FUND"] = "mutual fund"; +- LinkAccountSubtypes["NON_TAXABLE_BROKERAGE_ACCOUNT"] = "non-taxable brokerage account"; +- LinkAccountSubtypes["PENSION"] = "pension"; +- LinkAccountSubtypes["PLAN"] = "plan"; +- LinkAccountSubtypes["PRIF"] = "prif"; +- LinkAccountSubtypes["PROFIT_SHARING_PLAN"] = "profit sharing plan"; +- LinkAccountSubtypes["RDSP"] = "rdsp"; +- LinkAccountSubtypes["RESP"] = "resp"; +- LinkAccountSubtypes["RETIREMENT"] = "retirement"; +- LinkAccountSubtypes["RLIF"] = "rlif"; +- LinkAccountSubtypes["ROTH_401K"] = "roth 401k"; +- LinkAccountSubtypes["ROTH"] = "roth"; +- LinkAccountSubtypes["RRIF"] = "rrif"; +- LinkAccountSubtypes["RRSP"] = "rrsp"; +- LinkAccountSubtypes["SARSEP"] = "sarsep"; +- LinkAccountSubtypes["SEP_IRA"] = "sep ira"; +- LinkAccountSubtypes["SIMPLE_IRA"] = "simple ira"; +- LinkAccountSubtypes["SIPP"] = "sipp"; +- LinkAccountSubtypes["STOCK_PLAN"] = "stock plan"; +- LinkAccountSubtypes["TFSA"] = "tfsa"; +- LinkAccountSubtypes["THRIFT_SAVINGS_PLAN"] = "thrift savings plan"; +- LinkAccountSubtypes["TRUST"] = "trust"; +- LinkAccountSubtypes["UGMA"] = "ugma"; +- LinkAccountSubtypes["UTMA"] = "utma"; +- LinkAccountSubtypes["VARIABLE_ANNUITY"] = "variable annuity"; ++(function(LinkAccountSubtypes) { ++ LinkAccountSubtypes['ALL'] = 'all'; ++ LinkAccountSubtypes['CREDIT_CARD'] = 'credit card'; ++ LinkAccountSubtypes['PAYPAL'] = 'paypal'; ++ LinkAccountSubtypes['AUTO'] = 'auto'; ++ LinkAccountSubtypes['BUSINESS'] = 'business'; ++ LinkAccountSubtypes['COMMERCIAL'] = 'commercial'; ++ LinkAccountSubtypes['CONSTRUCTION'] = 'construction'; ++ LinkAccountSubtypes['CONSUMER'] = 'consumer'; ++ LinkAccountSubtypes['HOME_EQUITY'] = 'home equity'; ++ LinkAccountSubtypes['LINE_OF_CREDIT'] = 'line of credit'; ++ LinkAccountSubtypes['LOAN'] = 'loan'; ++ LinkAccountSubtypes['MORTGAGE'] = 'mortgage'; ++ LinkAccountSubtypes['OVERDRAFT'] = 'overdraft'; ++ LinkAccountSubtypes['STUDENT'] = 'student'; ++ LinkAccountSubtypes['CASH_MANAGEMENT'] = 'cash management'; ++ LinkAccountSubtypes['CD'] = 'cd'; ++ LinkAccountSubtypes['CHECKING'] = 'checking'; ++ LinkAccountSubtypes['EBT'] = 'ebt'; ++ LinkAccountSubtypes['HSA'] = 'hsa'; ++ LinkAccountSubtypes['MONEY_MARKET'] = 'money market'; ++ LinkAccountSubtypes['PREPAID'] = 'prepaid'; ++ LinkAccountSubtypes['SAVINGS'] = 'savings'; ++ LinkAccountSubtypes['FOUR_0_1_A'] = '401a'; ++ LinkAccountSubtypes['FOUR_0_1_K'] = '401k'; ++ LinkAccountSubtypes['FOUR_0_3_B'] = '403B'; ++ LinkAccountSubtypes['FOUR_5_7_B'] = '457b'; ++ LinkAccountSubtypes['FIVE_2_9'] = '529'; ++ LinkAccountSubtypes['BROKERAGE'] = 'brokerage'; ++ LinkAccountSubtypes['CASH_ISA'] = 'cash isa'; ++ LinkAccountSubtypes['EDUCATION_SAVINGS_ACCOUNT'] = ++ 'education savings account'; ++ LinkAccountSubtypes['FIXED_ANNUNITY'] = 'fixed annuity'; ++ LinkAccountSubtypes['GIC'] = 'gic'; ++ LinkAccountSubtypes['HEALTH_REIMBURSEMENT_ARRANGEMENT'] = ++ 'health reimbursement arrangement'; ++ LinkAccountSubtypes['IRA'] = 'ira'; ++ LinkAccountSubtypes['ISA'] = 'isa'; ++ LinkAccountSubtypes['KEOGH'] = 'keogh'; ++ LinkAccountSubtypes['LIF'] = 'lif'; ++ LinkAccountSubtypes['LIRA'] = 'lira'; ++ LinkAccountSubtypes['LRIF'] = 'lrif'; ++ LinkAccountSubtypes['LRSP'] = 'lrsp'; ++ LinkAccountSubtypes['MUTUAL_FUND'] = 'mutual fund'; ++ LinkAccountSubtypes['NON_TAXABLE_BROKERAGE_ACCOUNT'] = ++ 'non-taxable brokerage account'; ++ LinkAccountSubtypes['PENSION'] = 'pension'; ++ LinkAccountSubtypes['PLAN'] = 'plan'; ++ LinkAccountSubtypes['PRIF'] = 'prif'; ++ LinkAccountSubtypes['PROFIT_SHARING_PLAN'] = 'profit sharing plan'; ++ LinkAccountSubtypes['RDSP'] = 'rdsp'; ++ LinkAccountSubtypes['RESP'] = 'resp'; ++ LinkAccountSubtypes['RETIREMENT'] = 'retirement'; ++ LinkAccountSubtypes['RLIF'] = 'rlif'; ++ LinkAccountSubtypes['ROTH_401K'] = 'roth 401k'; ++ LinkAccountSubtypes['ROTH'] = 'roth'; ++ LinkAccountSubtypes['RRIF'] = 'rrif'; ++ LinkAccountSubtypes['RRSP'] = 'rrsp'; ++ LinkAccountSubtypes['SARSEP'] = 'sarsep'; ++ LinkAccountSubtypes['SEP_IRA'] = 'sep ira'; ++ LinkAccountSubtypes['SIMPLE_IRA'] = 'simple ira'; ++ LinkAccountSubtypes['SIPP'] = 'sipp'; ++ LinkAccountSubtypes['STOCK_PLAN'] = 'stock plan'; ++ LinkAccountSubtypes['TFSA'] = 'tfsa'; ++ LinkAccountSubtypes['THRIFT_SAVINGS_PLAN'] = 'thrift savings plan'; ++ LinkAccountSubtypes['TRUST'] = 'trust'; ++ LinkAccountSubtypes['UGMA'] = 'ugma'; ++ LinkAccountSubtypes['UTMA'] = 'utma'; ++ LinkAccountSubtypes['VARIABLE_ANNUITY'] = 'variable annuity'; + })(LinkAccountSubtypes || (LinkAccountSubtypes = {})); + export class LinkAccountSubtypeCredit { +- constructor(type, subtype) { +- this.type = type; +- this.subtype = subtype; +- } ++ constructor(type, subtype) { ++ this.type = type; ++ this.subtype = subtype; ++ } + } +-LinkAccountSubtypeCredit.ALL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL); +-LinkAccountSubtypeCredit.CREDIT_CARD = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.CREDIT_CARD); +-LinkAccountSubtypeCredit.PAYPAL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.PAYPAL); ++LinkAccountSubtypeCredit.ALL = new LinkAccountSubtypeCredit( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.ALL, ++); ++LinkAccountSubtypeCredit.CREDIT_CARD = new LinkAccountSubtypeCredit( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.CREDIT_CARD, ++); ++LinkAccountSubtypeCredit.PAYPAL = new LinkAccountSubtypeCredit( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.PAYPAL, ++); + export class LinkAccountSubtypeDepository { +- constructor(type, subtype) { +- this.type = type; +- this.subtype = subtype; +- } ++ constructor(type, subtype) { ++ this.type = type; ++ this.subtype = subtype; ++ } + } +-LinkAccountSubtypeDepository.ALL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.ALL); +-LinkAccountSubtypeDepository.CASH_MANAGEMENT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CASH_MANAGEMENT); +-LinkAccountSubtypeDepository.CD = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CD); +-LinkAccountSubtypeDepository.CHECKING = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CHECKING); +-LinkAccountSubtypeDepository.EBT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.EBT); +-LinkAccountSubtypeDepository.HSA = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.HSA); +-LinkAccountSubtypeDepository.MONEY_MARKET = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.MONEY_MARKET); +-LinkAccountSubtypeDepository.PAYPAL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PAYPAL); +-LinkAccountSubtypeDepository.PREPAID = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PREPAID); +-LinkAccountSubtypeDepository.SAVINGS = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.SAVINGS); ++LinkAccountSubtypeDepository.ALL = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.ALL, ++); ++LinkAccountSubtypeDepository.CASH_MANAGEMENT = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.CASH_MANAGEMENT, ++); ++LinkAccountSubtypeDepository.CD = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.CD, ++); ++LinkAccountSubtypeDepository.CHECKING = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.CHECKING, ++); ++LinkAccountSubtypeDepository.EBT = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.EBT, ++); ++LinkAccountSubtypeDepository.HSA = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.HSA, ++); ++LinkAccountSubtypeDepository.MONEY_MARKET = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.MONEY_MARKET, ++); ++LinkAccountSubtypeDepository.PAYPAL = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.PAYPAL, ++); ++LinkAccountSubtypeDepository.PREPAID = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.PREPAID, ++); ++LinkAccountSubtypeDepository.SAVINGS = new LinkAccountSubtypeDepository( ++ LinkAccountType.DEPOSITORY, ++ LinkAccountSubtypes.SAVINGS, ++); + export class LinkAccountSubtypeInvestment { +- constructor(type, subtype) { +- this.type = type; +- this.subtype = subtype; +- } ++ constructor(type, subtype) { ++ this.type = type; ++ this.subtype = subtype; ++ } + } +-LinkAccountSubtypeInvestment.ALL = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ALL); +-LinkAccountSubtypeInvestment.BROKERAGE = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.BROKERAGE); +-LinkAccountSubtypeInvestment.CASH_ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.CASH_ISA); +-LinkAccountSubtypeInvestment.EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT); +-LinkAccountSubtypeInvestment.FIXED_ANNUNITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIXED_ANNUNITY); +-LinkAccountSubtypeInvestment.GIC = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.GIC); +-LinkAccountSubtypeInvestment.HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT); +-LinkAccountSubtypeInvestment.HSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HSA); +-LinkAccountSubtypeInvestment.INVESTMENT_401A = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_A); +-LinkAccountSubtypeInvestment.INVESTMENT_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_K); +-LinkAccountSubtypeInvestment.INVESTMENT_403B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_3_B); +-LinkAccountSubtypeInvestment.INVESTMENT_457B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_5_7_B); +-LinkAccountSubtypeInvestment.INVESTMENT_529 = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIVE_2_9); +-LinkAccountSubtypeInvestment.IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.IRA); +-LinkAccountSubtypeInvestment.ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ISA); +-LinkAccountSubtypeInvestment.KEOGH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.KEOGH); +-LinkAccountSubtypeInvestment.LIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIF); +-LinkAccountSubtypeInvestment.LIRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIRA); +-LinkAccountSubtypeInvestment.LRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRIF); +-LinkAccountSubtypeInvestment.LRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRSP); +-LinkAccountSubtypeInvestment.MUTUAL_FUND = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.MUTUAL_FUND); +-LinkAccountSubtypeInvestment.NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT); +-LinkAccountSubtypeInvestment.PENSION = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PENSION); +-LinkAccountSubtypeInvestment.PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PLAN); +-LinkAccountSubtypeInvestment.PRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PRIF); +-LinkAccountSubtypeInvestment.PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PROFIT_SHARING_PLAN); +-LinkAccountSubtypeInvestment.RDSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RDSP); +-LinkAccountSubtypeInvestment.RESP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RESP); +-LinkAccountSubtypeInvestment.RETIREMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RETIREMENT); +-LinkAccountSubtypeInvestment.RLIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RLIF); +-LinkAccountSubtypeInvestment.ROTH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH); +-LinkAccountSubtypeInvestment.ROTH_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH_401K); +-LinkAccountSubtypeInvestment.RRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRIF); +-LinkAccountSubtypeInvestment.RRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRSP); +-LinkAccountSubtypeInvestment.SARSEP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SARSEP); +-LinkAccountSubtypeInvestment.SEP_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SEP_IRA); +-LinkAccountSubtypeInvestment.SIMPLE_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIMPLE_IRA); +-LinkAccountSubtypeInvestment.SIIP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIPP); +-LinkAccountSubtypeInvestment.STOCK_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.STOCK_PLAN); +-LinkAccountSubtypeInvestment.TFSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TFSA); +-LinkAccountSubtypeInvestment.THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.THRIFT_SAVINGS_PLAN); +-LinkAccountSubtypeInvestment.TRUST = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TRUST); +-LinkAccountSubtypeInvestment.UGMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UGMA); +-LinkAccountSubtypeInvestment.UTMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UTMA); +-LinkAccountSubtypeInvestment.VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.VARIABLE_ANNUITY); ++LinkAccountSubtypeInvestment.ALL = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.ALL, ++); ++LinkAccountSubtypeInvestment.BROKERAGE = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.BROKERAGE, ++); ++LinkAccountSubtypeInvestment.CASH_ISA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.CASH_ISA, ++); ++LinkAccountSubtypeInvestment.EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT, ++); ++LinkAccountSubtypeInvestment.FIXED_ANNUNITY = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FIXED_ANNUNITY, ++); ++LinkAccountSubtypeInvestment.GIC = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.GIC, ++); ++LinkAccountSubtypeInvestment.HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT, ++); ++LinkAccountSubtypeInvestment.HSA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.HSA, ++); ++LinkAccountSubtypeInvestment.INVESTMENT_401A = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FOUR_0_1_A, ++); ++LinkAccountSubtypeInvestment.INVESTMENT_401K = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FOUR_0_1_K, ++); ++LinkAccountSubtypeInvestment.INVESTMENT_403B = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FOUR_0_3_B, ++); ++LinkAccountSubtypeInvestment.INVESTMENT_457B = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FOUR_5_7_B, ++); ++LinkAccountSubtypeInvestment.INVESTMENT_529 = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.FIVE_2_9, ++); ++LinkAccountSubtypeInvestment.IRA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.IRA, ++); ++LinkAccountSubtypeInvestment.ISA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.ISA, ++); ++LinkAccountSubtypeInvestment.KEOGH = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.KEOGH, ++); ++LinkAccountSubtypeInvestment.LIF = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.LIF, ++); ++LinkAccountSubtypeInvestment.LIRA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.LIRA, ++); ++LinkAccountSubtypeInvestment.LRIF = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.LRIF, ++); ++LinkAccountSubtypeInvestment.LRSP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.LRSP, ++); ++LinkAccountSubtypeInvestment.MUTUAL_FUND = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.MUTUAL_FUND, ++); ++LinkAccountSubtypeInvestment.NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT, ++); ++LinkAccountSubtypeInvestment.PENSION = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.PENSION, ++); ++LinkAccountSubtypeInvestment.PLAN = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.PLAN, ++); ++LinkAccountSubtypeInvestment.PRIF = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.PRIF, ++); ++LinkAccountSubtypeInvestment.PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.PROFIT_SHARING_PLAN, ++); ++LinkAccountSubtypeInvestment.RDSP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RDSP, ++); ++LinkAccountSubtypeInvestment.RESP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RESP, ++); ++LinkAccountSubtypeInvestment.RETIREMENT = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RETIREMENT, ++); ++LinkAccountSubtypeInvestment.RLIF = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RLIF, ++); ++LinkAccountSubtypeInvestment.ROTH = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.ROTH, ++); ++LinkAccountSubtypeInvestment.ROTH_401K = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.ROTH_401K, ++); ++LinkAccountSubtypeInvestment.RRIF = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RRIF, ++); ++LinkAccountSubtypeInvestment.RRSP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.RRSP, ++); ++LinkAccountSubtypeInvestment.SARSEP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.SARSEP, ++); ++LinkAccountSubtypeInvestment.SEP_IRA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.SEP_IRA, ++); ++LinkAccountSubtypeInvestment.SIMPLE_IRA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.SIMPLE_IRA, ++); ++LinkAccountSubtypeInvestment.SIIP = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.SIPP, ++); ++LinkAccountSubtypeInvestment.STOCK_PLAN = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.STOCK_PLAN, ++); ++LinkAccountSubtypeInvestment.TFSA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.TFSA, ++); ++LinkAccountSubtypeInvestment.THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.THRIFT_SAVINGS_PLAN, ++); ++LinkAccountSubtypeInvestment.TRUST = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.TRUST, ++); ++LinkAccountSubtypeInvestment.UGMA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.UGMA, ++); ++LinkAccountSubtypeInvestment.UTMA = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.UTMA, ++); ++LinkAccountSubtypeInvestment.VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment( ++ LinkAccountType.INVESTMENT, ++ LinkAccountSubtypes.VARIABLE_ANNUITY, ++); + export class LinkAccountSubtypeLoan { +- constructor(type, subtype) { +- this.type = type; +- this.subtype = subtype; +- } ++ constructor(type, subtype) { ++ this.type = type; ++ this.subtype = subtype; ++ } + } +-LinkAccountSubtypeLoan.ALL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL); +-LinkAccountSubtypeLoan.AUTO = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.AUTO); +-LinkAccountSubtypeLoan.BUSINESS = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.BUSINESS); +-LinkAccountSubtypeLoan.COMMERCIAL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.COMMERCIAL); +-LinkAccountSubtypeLoan.CONSTRUCTION = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSTRUCTION); +-LinkAccountSubtypeLoan.CONSUMER = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSUMER); +-LinkAccountSubtypeLoan.HOME_EQUITY = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.HOME_EQUITY); +-LinkAccountSubtypeLoan.LINE_OF_CREDIT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LINE_OF_CREDIT); +-LinkAccountSubtypeLoan.LOAN = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LOAN); +-LinkAccountSubtypeLoan.MORTGAGE = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.MORTGAGE); +-LinkAccountSubtypeLoan.OVERDRAFT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.OVERDRAFT); +-LinkAccountSubtypeLoan.STUDENT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.STUDENT); ++LinkAccountSubtypeLoan.ALL = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.ALL, ++); ++LinkAccountSubtypeLoan.AUTO = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.AUTO, ++); ++LinkAccountSubtypeLoan.BUSINESS = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.BUSINESS, ++); ++LinkAccountSubtypeLoan.COMMERCIAL = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.COMMERCIAL, ++); ++LinkAccountSubtypeLoan.CONSTRUCTION = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.CONSTRUCTION, ++); ++LinkAccountSubtypeLoan.CONSUMER = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.CONSUMER, ++); ++LinkAccountSubtypeLoan.HOME_EQUITY = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.HOME_EQUITY, ++); ++LinkAccountSubtypeLoan.LINE_OF_CREDIT = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.LINE_OF_CREDIT, ++); ++LinkAccountSubtypeLoan.LOAN = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.LOAN, ++); ++LinkAccountSubtypeLoan.MORTGAGE = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.MORTGAGE, ++); ++LinkAccountSubtypeLoan.OVERDRAFT = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.OVERDRAFT, ++); ++LinkAccountSubtypeLoan.STUDENT = new LinkAccountSubtypeLoan( ++ LinkAccountType.CREDIT, ++ LinkAccountSubtypes.STUDENT, ++); + export class LinkAccountSubtypeUnknown { +- constructor(type, subtype) { +- this.type = type; +- this.subtype = subtype; +- } ++ constructor(type, subtype) { ++ this.type = type; ++ this.subtype = subtype; ++ } + } + export var LinkAccountVerificationStatus; +-(function (LinkAccountVerificationStatus) { +- LinkAccountVerificationStatus["PENDING_AUTOMATIC_VERIFICATION"] = "pending_automatic_verification"; +- LinkAccountVerificationStatus["PENDING_MANUAL_VERIFICATION"] = "pending_manual_verification"; +- LinkAccountVerificationStatus["MANUALLY_VERIFIED"] = "manually_verified"; ++(function(LinkAccountVerificationStatus) { ++ LinkAccountVerificationStatus['PENDING_AUTOMATIC_VERIFICATION'] = ++ 'pending_automatic_verification'; ++ LinkAccountVerificationStatus['PENDING_MANUAL_VERIFICATION'] = ++ 'pending_manual_verification'; ++ LinkAccountVerificationStatus['MANUALLY_VERIFIED'] = 'manually_verified'; + })(LinkAccountVerificationStatus || (LinkAccountVerificationStatus = {})); + export var LinkExitMetadataStatus; +-(function (LinkExitMetadataStatus) { +- LinkExitMetadataStatus["CONNECTED"] = "connected"; +- LinkExitMetadataStatus["CHOOSE_DEVICE"] = "choose_device"; +- LinkExitMetadataStatus["REQUIRES_ACCOUNT_SELECTION"] = "requires_account_selection"; +- LinkExitMetadataStatus["REQUIRES_CODE"] = "requires_code"; +- LinkExitMetadataStatus["REQUIRES_CREDENTIALS"] = "requires_credentials"; +- LinkExitMetadataStatus["REQUIRES_EXTERNAL_ACTION"] = "requires_external_action"; +- LinkExitMetadataStatus["REQUIRES_OAUTH"] = "requires_oauth"; +- LinkExitMetadataStatus["REQUIRES_QUESTIONS"] = "requires_questions"; +- LinkExitMetadataStatus["REQUIRES_RECAPTCHA"] = "requires_recaptcha"; +- LinkExitMetadataStatus["REQUIRES_SELECTIONS"] = "requires_selections"; +- LinkExitMetadataStatus["REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION"] = "requires_deposit_switch_allocation_configuration"; +- LinkExitMetadataStatus["REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION"] = "requires_deposit_switch_allocation_selection"; ++(function(LinkExitMetadataStatus) { ++ LinkExitMetadataStatus['CONNECTED'] = 'connected'; ++ LinkExitMetadataStatus['CHOOSE_DEVICE'] = 'choose_device'; ++ LinkExitMetadataStatus['REQUIRES_ACCOUNT_SELECTION'] = ++ 'requires_account_selection'; ++ LinkExitMetadataStatus['REQUIRES_CODE'] = 'requires_code'; ++ LinkExitMetadataStatus['REQUIRES_CREDENTIALS'] = 'requires_credentials'; ++ LinkExitMetadataStatus['REQUIRES_EXTERNAL_ACTION'] = ++ 'requires_external_action'; ++ LinkExitMetadataStatus['REQUIRES_OAUTH'] = 'requires_oauth'; ++ LinkExitMetadataStatus['REQUIRES_QUESTIONS'] = 'requires_questions'; ++ LinkExitMetadataStatus['REQUIRES_RECAPTCHA'] = 'requires_recaptcha'; ++ LinkExitMetadataStatus['REQUIRES_SELECTIONS'] = 'requires_selections'; ++ LinkExitMetadataStatus['REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION'] = ++ 'requires_deposit_switch_allocation_configuration'; ++ LinkExitMetadataStatus['REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION'] = ++ 'requires_deposit_switch_allocation_selection'; + })(LinkExitMetadataStatus || (LinkExitMetadataStatus = {})); + export var LinkErrorCode; +-(function (LinkErrorCode) { +- // ITEM_ERROR +- LinkErrorCode["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS"; +- LinkErrorCode["INVALID_MFA"] = "INVALID_MFA"; +- LinkErrorCode["ITEM_LOGIN_REQUIRED"] = "ITEM_LOGIN_REQUIRED"; +- LinkErrorCode["INSUFFICIENT_CREDENTIALS"] = "INSUFFICIENT_CREDENTIALS"; +- LinkErrorCode["ITEM_LOCKED"] = "ITEM_LOCKED"; +- LinkErrorCode["USER_SETUP_REQUIRED"] = "USER_SETUP_REQUIRED"; +- LinkErrorCode["MFA_NOT_SUPPORTED"] = "MFA_NOT_SUPPORTED"; +- LinkErrorCode["INVALID_SEND_METHOD"] = "INVALID_SEND_METHOD"; +- LinkErrorCode["NO_ACCOUNTS"] = "NO_ACCOUNTS"; +- LinkErrorCode["ITEM_NOT_SUPPORTED"] = "ITEM_NOT_SUPPORTED"; +- LinkErrorCode["TOO_MANY_VERIFICATION_ATTEMPTS"] = "TOO_MANY_VERIFICATION_ATTEMPTS"; +- LinkErrorCode["INVALD_UPDATED_USERNAME"] = "INVALD_UPDATED_USERNAME"; +- LinkErrorCode["INVALID_UPDATED_USERNAME"] = "INVALID_UPDATED_USERNAME"; +- LinkErrorCode["ITEM_NO_ERROR"] = "ITEM_NO_ERROR"; +- LinkErrorCode["item_no_error"] = "item-no-error"; +- LinkErrorCode["NO_AUTH_ACCOUNTS"] = "NO_AUTH_ACCOUNTS"; +- LinkErrorCode["NO_INVESTMENT_ACCOUNTS"] = "NO_INVESTMENT_ACCOUNTS"; +- LinkErrorCode["NO_INVESTMENT_AUTH_ACCOUNTS"] = "NO_INVESTMENT_AUTH_ACCOUNTS"; +- LinkErrorCode["NO_LIABILITY_ACCOUNTS"] = "NO_LIABILITY_ACCOUNTS"; +- LinkErrorCode["PRODUCTS_NOT_SUPPORTED"] = "PRODUCTS_NOT_SUPPORTED"; +- LinkErrorCode["ITEM_NOT_FOUND"] = "ITEM_NOT_FOUND"; +- LinkErrorCode["ITEM_PRODUCT_NOT_READY"] = "ITEM_PRODUCT_NOT_READY"; +- // INSTITUTION_ERROR +- LinkErrorCode["INSTITUTION_DOWN"] = "INSTITUTION_DOWN"; +- LinkErrorCode["INSTITUTION_NOT_RESPONDING"] = "INSTITUTION_NOT_RESPONDING"; +- LinkErrorCode["INSTITUTION_NOT_AVAILABLE"] = "INSTITUTION_NOT_AVAILABLE"; +- LinkErrorCode["INSTITUTION_NO_LONGER_SUPPORTED"] = "INSTITUTION_NO_LONGER_SUPPORTED"; +- // API_ERROR +- LinkErrorCode["INTERNAL_SERVER_ERROR"] = "INTERNAL_SERVER_ERROR"; +- LinkErrorCode["PLANNED_MAINTENANCE"] = "PLANNED_MAINTENANCE"; +- // ASSET_REPORT_ERROR +- LinkErrorCode["PRODUCT_NOT_ENABLED"] = "PRODUCT_NOT_ENABLED"; +- LinkErrorCode["DATA_UNAVAILABLE"] = "DATA_UNAVAILABLE"; +- LinkErrorCode["ASSET_PRODUCT_NOT_READY"] = "ASSET_PRODUCT_NOT_READY"; +- LinkErrorCode["ASSET_REPORT_GENERATION_FAILED"] = "ASSET_REPORT_GENERATION_FAILED"; +- LinkErrorCode["INVALID_PARENT"] = "INVALID_PARENT"; +- LinkErrorCode["INSIGHTS_NOT_ENABLED"] = "INSIGHTS_NOT_ENABLED"; +- LinkErrorCode["INSIGHTS_PREVIOUSLY_NOT_ENABLED"] = "INSIGHTS_PREVIOUSLY_NOT_ENABLED"; +- // BANK_TRANSFER_ERROR +- LinkErrorCode["BANK_TRANSFER_LIMIT_EXCEEDED"] = "BANK_TRANSFER_LIMIT_EXCEEDED"; +- LinkErrorCode["BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT"] = "BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT"; +- LinkErrorCode["BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT"] = "BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT"; +- LinkErrorCode["BANK_TRANSFER_ACCOUNT_BLOCKED"] = "BANK_TRANSFER_ACCOUNT_BLOCKED"; +- LinkErrorCode["BANK_TRANSFER_INSUFFICIENT_FUNDS"] = "BANK_TRANSFER_INSUFFICIENT_FUNDS"; +- LinkErrorCode["BANK_TRANSFER_NOT_CANCELLABLE"] = "BANK_TRANSFER_NOT_CANCELLABLE"; +- LinkErrorCode["BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE"] = "BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE"; +- LinkErrorCode["BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT"] = "BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT"; +- // SANDBOX_ERROR +- LinkErrorCode["SANDBOX_PRODUCT_NOT_ENABLED"] = "SANDBOX_PRODUCT_NOT_ENABLED"; +- LinkErrorCode["SANDBOX_WEBHOOK_INVALID"] = "SANDBOX_WEBHOOK_INVALID"; +- LinkErrorCode["SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID"] = "SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID"; +- // INVALID_REQUEST +- LinkErrorCode["MISSING_FIELDS"] = "MISSING_FIELDS"; +- LinkErrorCode["UNKNOWN_FIELDS"] = "UNKNOWN_FIELDS"; +- LinkErrorCode["INVALID_FIELD"] = "INVALID_FIELD"; +- LinkErrorCode["INCOMPATIBLE_API_VERSION"] = "INCOMPATIBLE_API_VERSION"; +- LinkErrorCode["INVALID_BODY"] = "INVALID_BODY"; +- LinkErrorCode["INVALID_HEADERS"] = "INVALID_HEADERS"; +- LinkErrorCode["NOT_FOUND"] = "NOT_FOUND"; +- LinkErrorCode["NO_LONGER_AVAILABLE"] = "NO_LONGER_AVAILABLE"; +- LinkErrorCode["SANDBOX_ONLY"] = "SANDBOX_ONLY"; +- LinkErrorCode["INVALID_ACCOUNT_NUMBER"] = "INVALID_ACCOUNT_NUMBER"; +- // INVALID_INPUT +- // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS", +- LinkErrorCode["INCORRECT_DEPOSIT_AMOUNTS"] = "INCORRECT_DEPOSIT_AMOUNTS"; +- LinkErrorCode["UNAUTHORIZED_ENVIRONMENT"] = "UNAUTHORIZED_ENVIRONMENT"; +- LinkErrorCode["INVALID_PRODUCT"] = "INVALID_PRODUCT"; +- LinkErrorCode["UNAUTHORIZED_ROUTE_ACCESS"] = "UNAUTHORIZED_ROUTE_ACCESS"; +- LinkErrorCode["DIRECT_INTEGRATION_NOT_ENABLED"] = "DIRECT_INTEGRATION_NOT_ENABLED"; +- LinkErrorCode["INVALID_API_KEYS"] = "INVALID_API_KEYS"; +- LinkErrorCode["INVALID_ACCESS_TOKEN"] = "INVALID_ACCESS_TOKEN"; +- LinkErrorCode["INVALID_PUBLIC_TOKEN"] = "INVALID_PUBLIC_TOKEN"; +- LinkErrorCode["INVALID_LINK_TOKEN"] = "INVALID_LINK_TOKEN"; +- LinkErrorCode["INVALID_PROCESSOR_TOKEN"] = "INVALID_PROCESSOR_TOKEN"; +- LinkErrorCode["INVALID_AUDIT_COPY_TOKEN"] = "INVALID_AUDIT_COPY_TOKEN"; +- LinkErrorCode["INVALID_ACCOUNT_ID"] = "INVALID_ACCOUNT_ID"; +- LinkErrorCode["MICRODEPOSITS_ALREADY_VERIFIED"] = "MICRODEPOSITS_ALREADY_VERIFIED"; +- // INVALID_RESULT +- LinkErrorCode["PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA"] = "PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA"; +- // RATE_LIMIT_EXCEEDED +- LinkErrorCode["ACCOUNTS_LIMIT"] = "ACCOUNTS_LIMIT"; +- LinkErrorCode["ADDITION_LIMIT"] = "ADDITION_LIMIT"; +- LinkErrorCode["AUTH_LIMIT"] = "AUTH_LIMIT"; +- LinkErrorCode["BALANCE_LIMIT"] = "BALANCE_LIMIT"; +- LinkErrorCode["IDENTITY_LIMIT"] = "IDENTITY_LIMIT"; +- LinkErrorCode["ITEM_GET_LIMIT"] = "ITEM_GET_LIMIT"; +- LinkErrorCode["RATE_LIMIT"] = "RATE_LIMIT"; +- LinkErrorCode["TRANSACTIONS_LIMIT"] = "TRANSACTIONS_LIMIT"; +- // RECAPTCHA_ERROR +- LinkErrorCode["RECAPTCHA_REQUIRED"] = "RECAPTCHA_REQUIRED"; +- LinkErrorCode["RECAPTCHA_BAD"] = "RECAPTCHA_BAD"; +- // OAUTH_ERROR +- LinkErrorCode["INCORRECT_OAUTH_NONCE"] = "INCORRECT_OAUTH_NONCE"; +- LinkErrorCode["OAUTH_STATE_ID_ALREADY_PROCESSED"] = "OAUTH_STATE_ID_ALREADY_PROCESSED"; ++(function(LinkErrorCode) { ++ // ITEM_ERROR ++ LinkErrorCode['INVALID_CREDENTIALS'] = 'INVALID_CREDENTIALS'; ++ LinkErrorCode['INVALID_MFA'] = 'INVALID_MFA'; ++ LinkErrorCode['ITEM_LOGIN_REQUIRED'] = 'ITEM_LOGIN_REQUIRED'; ++ LinkErrorCode['INSUFFICIENT_CREDENTIALS'] = 'INSUFFICIENT_CREDENTIALS'; ++ LinkErrorCode['ITEM_LOCKED'] = 'ITEM_LOCKED'; ++ LinkErrorCode['USER_SETUP_REQUIRED'] = 'USER_SETUP_REQUIRED'; ++ LinkErrorCode['MFA_NOT_SUPPORTED'] = 'MFA_NOT_SUPPORTED'; ++ LinkErrorCode['INVALID_SEND_METHOD'] = 'INVALID_SEND_METHOD'; ++ LinkErrorCode['NO_ACCOUNTS'] = 'NO_ACCOUNTS'; ++ LinkErrorCode['ITEM_NOT_SUPPORTED'] = 'ITEM_NOT_SUPPORTED'; ++ LinkErrorCode['TOO_MANY_VERIFICATION_ATTEMPTS'] = ++ 'TOO_MANY_VERIFICATION_ATTEMPTS'; ++ LinkErrorCode['INVALD_UPDATED_USERNAME'] = 'INVALD_UPDATED_USERNAME'; ++ LinkErrorCode['INVALID_UPDATED_USERNAME'] = 'INVALID_UPDATED_USERNAME'; ++ LinkErrorCode['ITEM_NO_ERROR'] = 'ITEM_NO_ERROR'; ++ LinkErrorCode['item_no_error'] = 'item-no-error'; ++ LinkErrorCode['NO_AUTH_ACCOUNTS'] = 'NO_AUTH_ACCOUNTS'; ++ LinkErrorCode['NO_INVESTMENT_ACCOUNTS'] = 'NO_INVESTMENT_ACCOUNTS'; ++ LinkErrorCode['NO_INVESTMENT_AUTH_ACCOUNTS'] = 'NO_INVESTMENT_AUTH_ACCOUNTS'; ++ LinkErrorCode['NO_LIABILITY_ACCOUNTS'] = 'NO_LIABILITY_ACCOUNTS'; ++ LinkErrorCode['PRODUCTS_NOT_SUPPORTED'] = 'PRODUCTS_NOT_SUPPORTED'; ++ LinkErrorCode['ITEM_NOT_FOUND'] = 'ITEM_NOT_FOUND'; ++ LinkErrorCode['ITEM_PRODUCT_NOT_READY'] = 'ITEM_PRODUCT_NOT_READY'; ++ // INSTITUTION_ERROR ++ LinkErrorCode['INSTITUTION_DOWN'] = 'INSTITUTION_DOWN'; ++ LinkErrorCode['INSTITUTION_NOT_RESPONDING'] = 'INSTITUTION_NOT_RESPONDING'; ++ LinkErrorCode['INSTITUTION_NOT_AVAILABLE'] = 'INSTITUTION_NOT_AVAILABLE'; ++ LinkErrorCode['INSTITUTION_NO_LONGER_SUPPORTED'] = ++ 'INSTITUTION_NO_LONGER_SUPPORTED'; ++ // API_ERROR ++ LinkErrorCode['INTERNAL_SERVER_ERROR'] = 'INTERNAL_SERVER_ERROR'; ++ LinkErrorCode['PLANNED_MAINTENANCE'] = 'PLANNED_MAINTENANCE'; ++ // ASSET_REPORT_ERROR ++ LinkErrorCode['PRODUCT_NOT_ENABLED'] = 'PRODUCT_NOT_ENABLED'; ++ LinkErrorCode['DATA_UNAVAILABLE'] = 'DATA_UNAVAILABLE'; ++ LinkErrorCode['ASSET_PRODUCT_NOT_READY'] = 'ASSET_PRODUCT_NOT_READY'; ++ LinkErrorCode['ASSET_REPORT_GENERATION_FAILED'] = ++ 'ASSET_REPORT_GENERATION_FAILED'; ++ LinkErrorCode['INVALID_PARENT'] = 'INVALID_PARENT'; ++ LinkErrorCode['INSIGHTS_NOT_ENABLED'] = 'INSIGHTS_NOT_ENABLED'; ++ LinkErrorCode['INSIGHTS_PREVIOUSLY_NOT_ENABLED'] = ++ 'INSIGHTS_PREVIOUSLY_NOT_ENABLED'; ++ // BANK_TRANSFER_ERROR ++ LinkErrorCode['BANK_TRANSFER_LIMIT_EXCEEDED'] = ++ 'BANK_TRANSFER_LIMIT_EXCEEDED'; ++ LinkErrorCode['BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT'] = ++ 'BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT'; ++ LinkErrorCode['BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT'] = ++ 'BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT'; ++ LinkErrorCode['BANK_TRANSFER_ACCOUNT_BLOCKED'] = ++ 'BANK_TRANSFER_ACCOUNT_BLOCKED'; ++ LinkErrorCode['BANK_TRANSFER_INSUFFICIENT_FUNDS'] = ++ 'BANK_TRANSFER_INSUFFICIENT_FUNDS'; ++ LinkErrorCode['BANK_TRANSFER_NOT_CANCELLABLE'] = ++ 'BANK_TRANSFER_NOT_CANCELLABLE'; ++ LinkErrorCode['BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE'] = ++ 'BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE'; ++ LinkErrorCode['BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT'] = ++ 'BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT'; ++ // SANDBOX_ERROR ++ LinkErrorCode['SANDBOX_PRODUCT_NOT_ENABLED'] = 'SANDBOX_PRODUCT_NOT_ENABLED'; ++ LinkErrorCode['SANDBOX_WEBHOOK_INVALID'] = 'SANDBOX_WEBHOOK_INVALID'; ++ LinkErrorCode['SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID'] = ++ 'SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID'; ++ // INVALID_REQUEST ++ LinkErrorCode['MISSING_FIELDS'] = 'MISSING_FIELDS'; ++ LinkErrorCode['UNKNOWN_FIELDS'] = 'UNKNOWN_FIELDS'; ++ LinkErrorCode['INVALID_FIELD'] = 'INVALID_FIELD'; ++ LinkErrorCode['INCOMPATIBLE_API_VERSION'] = 'INCOMPATIBLE_API_VERSION'; ++ LinkErrorCode['INVALID_BODY'] = 'INVALID_BODY'; ++ LinkErrorCode['INVALID_HEADERS'] = 'INVALID_HEADERS'; ++ LinkErrorCode['NOT_FOUND'] = 'NOT_FOUND'; ++ LinkErrorCode['NO_LONGER_AVAILABLE'] = 'NO_LONGER_AVAILABLE'; ++ LinkErrorCode['SANDBOX_ONLY'] = 'SANDBOX_ONLY'; ++ LinkErrorCode['INVALID_ACCOUNT_NUMBER'] = 'INVALID_ACCOUNT_NUMBER'; ++ // INVALID_INPUT ++ // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS", ++ LinkErrorCode['INCORRECT_DEPOSIT_AMOUNTS'] = 'INCORRECT_DEPOSIT_AMOUNTS'; ++ LinkErrorCode['UNAUTHORIZED_ENVIRONMENT'] = 'UNAUTHORIZED_ENVIRONMENT'; ++ LinkErrorCode['INVALID_PRODUCT'] = 'INVALID_PRODUCT'; ++ LinkErrorCode['UNAUTHORIZED_ROUTE_ACCESS'] = 'UNAUTHORIZED_ROUTE_ACCESS'; ++ LinkErrorCode['DIRECT_INTEGRATION_NOT_ENABLED'] = ++ 'DIRECT_INTEGRATION_NOT_ENABLED'; ++ LinkErrorCode['INVALID_API_KEYS'] = 'INVALID_API_KEYS'; ++ LinkErrorCode['INVALID_ACCESS_TOKEN'] = 'INVALID_ACCESS_TOKEN'; ++ LinkErrorCode['INVALID_PUBLIC_TOKEN'] = 'INVALID_PUBLIC_TOKEN'; ++ LinkErrorCode['INVALID_LINK_TOKEN'] = 'INVALID_LINK_TOKEN'; ++ LinkErrorCode['INVALID_PROCESSOR_TOKEN'] = 'INVALID_PROCESSOR_TOKEN'; ++ LinkErrorCode['INVALID_AUDIT_COPY_TOKEN'] = 'INVALID_AUDIT_COPY_TOKEN'; ++ LinkErrorCode['INVALID_ACCOUNT_ID'] = 'INVALID_ACCOUNT_ID'; ++ LinkErrorCode['MICRODEPOSITS_ALREADY_VERIFIED'] = ++ 'MICRODEPOSITS_ALREADY_VERIFIED'; ++ // INVALID_RESULT ++ LinkErrorCode['PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA'] = ++ 'PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA'; ++ // RATE_LIMIT_EXCEEDED ++ LinkErrorCode['ACCOUNTS_LIMIT'] = 'ACCOUNTS_LIMIT'; ++ LinkErrorCode['ADDITION_LIMIT'] = 'ADDITION_LIMIT'; ++ LinkErrorCode['AUTH_LIMIT'] = 'AUTH_LIMIT'; ++ LinkErrorCode['BALANCE_LIMIT'] = 'BALANCE_LIMIT'; ++ LinkErrorCode['IDENTITY_LIMIT'] = 'IDENTITY_LIMIT'; ++ LinkErrorCode['ITEM_GET_LIMIT'] = 'ITEM_GET_LIMIT'; ++ LinkErrorCode['RATE_LIMIT'] = 'RATE_LIMIT'; ++ LinkErrorCode['TRANSACTIONS_LIMIT'] = 'TRANSACTIONS_LIMIT'; ++ // RECAPTCHA_ERROR ++ LinkErrorCode['RECAPTCHA_REQUIRED'] = 'RECAPTCHA_REQUIRED'; ++ LinkErrorCode['RECAPTCHA_BAD'] = 'RECAPTCHA_BAD'; ++ // OAUTH_ERROR ++ LinkErrorCode['INCORRECT_OAUTH_NONCE'] = 'INCORRECT_OAUTH_NONCE'; ++ LinkErrorCode['OAUTH_STATE_ID_ALREADY_PROCESSED'] = ++ 'OAUTH_STATE_ID_ALREADY_PROCESSED'; + })(LinkErrorCode || (LinkErrorCode = {})); + export var LinkErrorType; +-(function (LinkErrorType) { +- LinkErrorType["BANK_TRANSFER"] = "BANK_TRANSFER_ERROR"; +- LinkErrorType["INVALID_REQUEST"] = "INVALID_REQUEST"; +- LinkErrorType["INVALID_RESULT"] = "INVALID_RESULT"; +- LinkErrorType["INVALID_INPUT"] = "INVALID_INPUT"; +- LinkErrorType["INSTITUTION_ERROR"] = "INSTITUTION_ERROR"; +- LinkErrorType["RATE_LIMIT_EXCEEDED"] = "RATE_LIMIT_EXCEEDED"; +- LinkErrorType["API_ERROR"] = "API_ERROR"; +- LinkErrorType["ITEM_ERROR"] = "ITEM_ERROR"; +- LinkErrorType["AUTH_ERROR"] = "AUTH_ERROR"; +- LinkErrorType["ASSET_REPORT_ERROR"] = "ASSET_REPORT_ERROR"; +- LinkErrorType["SANDBOX_ERROR"] = "SANDBOX_ERROR"; +- LinkErrorType["RECAPTCHA_ERROR"] = "RECAPTCHA_ERROR"; +- LinkErrorType["OAUTH_ERROR"] = "OAUTH_ERROR"; ++(function(LinkErrorType) { ++ LinkErrorType['BANK_TRANSFER'] = 'BANK_TRANSFER_ERROR'; ++ LinkErrorType['INVALID_REQUEST'] = 'INVALID_REQUEST'; ++ LinkErrorType['INVALID_RESULT'] = 'INVALID_RESULT'; ++ LinkErrorType['INVALID_INPUT'] = 'INVALID_INPUT'; ++ LinkErrorType['INSTITUTION_ERROR'] = 'INSTITUTION_ERROR'; ++ LinkErrorType['RATE_LIMIT_EXCEEDED'] = 'RATE_LIMIT_EXCEEDED'; ++ LinkErrorType['API_ERROR'] = 'API_ERROR'; ++ LinkErrorType['ITEM_ERROR'] = 'ITEM_ERROR'; ++ LinkErrorType['AUTH_ERROR'] = 'AUTH_ERROR'; ++ LinkErrorType['ASSET_REPORT_ERROR'] = 'ASSET_REPORT_ERROR'; ++ LinkErrorType['SANDBOX_ERROR'] = 'SANDBOX_ERROR'; ++ LinkErrorType['RECAPTCHA_ERROR'] = 'RECAPTCHA_ERROR'; ++ LinkErrorType['OAUTH_ERROR'] = 'OAUTH_ERROR'; + })(LinkErrorType || (LinkErrorType = {})); + export var LinkEventName; +-(function (LinkEventName) { +- LinkEventName["BANK_INCOME_INSIGHTS_COMPLETED"] = "BANK_INCOME_INSIGHTS_COMPLETED"; +- LinkEventName["CLOSE_OAUTH"] = "CLOSE_OAUTH"; +- LinkEventName["ERROR"] = "ERROR"; +- LinkEventName["EXIT"] = "EXIT"; +- LinkEventName["FAIL_OAUTH"] = "FAIL_OAUTH"; +- LinkEventName["HANDOFF"] = "HANDOFF"; +- LinkEventName["IDENTITY_VERIFICATION_START_STEP"] = "IDENTITY_VERIFICATION_START_STEP"; +- LinkEventName["IDENTITY_VERIFICATION_PASS_STEP"] = "IDENTITY_VERIFICATION_PASS_STEP"; +- LinkEventName["IDENTITY_VERIFICATION_FAIL_STEP"] = "IDENTITY_VERIFICATION_FAIL_STEP"; +- LinkEventName["IDENTITY_VERIFICATION_PENDING_REVIEW_STEP"] = "IDENTITY_VERIFICATION_PENDING_REVIEW_STEP"; +- LinkEventName["IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION"] = "IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION"; +- LinkEventName["IDENTITY_VERIFICATION_CREATE_SESSION"] = "IDENTITY_VERIFICATION_CREATE_SESSION"; +- LinkEventName["IDENTITY_VERIFICATION_RESUME_SESSION"] = "IDENTITY_VERIFICATION_RESUME_SESSION"; +- LinkEventName["IDENTITY_VERIFICATION_PASS_SESSION"] = "IDENTITY_VERIFICATION_PASS_SESSION"; +- LinkEventName["IDENTITY_VERIFICATION_FAIL_SESSION"] = "IDENTITY_VERIFICATION_FAIL_SESSION"; +- LinkEventName["IDENTITY_VERIFICATION_OPEN_UI"] = "IDENTITY_VERIFICATION_OPEN_UI"; +- LinkEventName["IDENTITY_VERIFICATION_RESUME_UI"] = "IDENTITY_VERIFICATION_RESUME_UI"; +- LinkEventName["IDENTITY_VERIFICATION_CLOSE_UI"] = "IDENTITY_VERIFICATION_CLOSE_UI"; +- LinkEventName["MATCHED_CONSENT"] = "MATCHED_CONSENT"; +- LinkEventName["MATCHED_SELECT_INSTITUTION"] = "MATCHED_SELECT_INSTITUTION"; +- LinkEventName["MATCHED_SELECT_VERIFY_METHOD"] = "MATCHED_SELECT_VERIFY_METHOD"; +- LinkEventName["OPEN"] = "OPEN"; +- LinkEventName["OPEN_MY_PLAID"] = "OPEN_MY_PLAID"; +- LinkEventName["OPEN_OAUTH"] = "OPEN_OAUTH"; +- LinkEventName["SEARCH_INSTITUTION"] = "SEARCH_INSTITUTION"; +- LinkEventName["SELECT_DEGRADED_INSTITUTION"] = "SELECT_DEGRADED_INSTITUTION"; +- LinkEventName["SELECT_DOWN_INSTITUTION"] = "SELECT_DOWN_INSTITUTION"; +- LinkEventName["SELECT_FILTERED_INSTITUTION"] = "SELECT_FILTERED_INSTITUTION"; +- LinkEventName["SELECT_INSTITUTION"] = "SELECT_INSTITUTION"; +- LinkEventName["SELECT_BRAND"] = "SELECT_BRAND"; +- LinkEventName["SELECT_AUTH_TYPE"] = "SELECT_AUTH_TYPE"; +- LinkEventName["SUBMIT_ACCOUNT_NUMBER"] = "SUBMIT_ACCOUNT_NUMBER"; +- LinkEventName["SUBMIT_DOCUMENTS"] = "SUBMIT_DOCUMENTS"; +- LinkEventName["SUBMIT_DOCUMENTS_SUCCESS"] = "SUBMIT_DOCUMENTS_SUCCESS"; +- LinkEventName["SUBMIT_DOCUMENTS_ERROR"] = "SUBMIT_DOCUMENTS_ERROR"; +- LinkEventName["SUBMIT_ROUTING_NUMBER"] = "SUBMIT_ROUTING_NUMBER"; +- LinkEventName["VIEW_DATA_TYPES"] = "VIEW_DATA_TYPES"; +- LinkEventName["SUBMIT_PHONE"] = "SUBMIT_PHONE"; +- LinkEventName["SKIP_SUBMIT_PHONE"] = "SKIP_SUBMIT_PHONE"; +- LinkEventName["VERIFY_PHONE"] = "VERIFY_PHONE"; +- LinkEventName["SUBMIT_CREDENTIALS"] = "SUBMIT_CREDENTIALS"; +- LinkEventName["SUBMIT_MFA"] = "SUBMIT_MFA"; +- LinkEventName["TRANSITION_VIEW"] = "TRANSITION_VIEW"; +- LinkEventName["CONNECT_NEW_INSTITUTION"] = "CONNECT_NEW_INSTITUTION"; ++(function(LinkEventName) { ++ LinkEventName['BANK_INCOME_INSIGHTS_COMPLETED'] = ++ 'BANK_INCOME_INSIGHTS_COMPLETED'; ++ LinkEventName['CLOSE_OAUTH'] = 'CLOSE_OAUTH'; ++ LinkEventName['ERROR'] = 'ERROR'; ++ LinkEventName['EXIT'] = 'EXIT'; ++ LinkEventName['FAIL_OAUTH'] = 'FAIL_OAUTH'; ++ LinkEventName['HANDOFF'] = 'HANDOFF'; ++ LinkEventName['IDENTITY_VERIFICATION_START_STEP'] = ++ 'IDENTITY_VERIFICATION_START_STEP'; ++ LinkEventName['IDENTITY_VERIFICATION_PASS_STEP'] = ++ 'IDENTITY_VERIFICATION_PASS_STEP'; ++ LinkEventName['IDENTITY_VERIFICATION_FAIL_STEP'] = ++ 'IDENTITY_VERIFICATION_FAIL_STEP'; ++ LinkEventName['IDENTITY_VERIFICATION_PENDING_REVIEW_STEP'] = ++ 'IDENTITY_VERIFICATION_PENDING_REVIEW_STEP'; ++ LinkEventName['IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION'] = ++ 'IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION'; ++ LinkEventName['IDENTITY_VERIFICATION_CREATE_SESSION'] = ++ 'IDENTITY_VERIFICATION_CREATE_SESSION'; ++ LinkEventName['IDENTITY_VERIFICATION_RESUME_SESSION'] = ++ 'IDENTITY_VERIFICATION_RESUME_SESSION'; ++ LinkEventName['IDENTITY_VERIFICATION_PASS_SESSION'] = ++ 'IDENTITY_VERIFICATION_PASS_SESSION'; ++ LinkEventName['IDENTITY_VERIFICATION_FAIL_SESSION'] = ++ 'IDENTITY_VERIFICATION_FAIL_SESSION'; ++ LinkEventName['IDENTITY_VERIFICATION_OPEN_UI'] = ++ 'IDENTITY_VERIFICATION_OPEN_UI'; ++ LinkEventName['IDENTITY_VERIFICATION_RESUME_UI'] = ++ 'IDENTITY_VERIFICATION_RESUME_UI'; ++ LinkEventName['IDENTITY_VERIFICATION_CLOSE_UI'] = ++ 'IDENTITY_VERIFICATION_CLOSE_UI'; ++ LinkEventName['MATCHED_CONSENT'] = 'MATCHED_CONSENT'; ++ LinkEventName['MATCHED_SELECT_INSTITUTION'] = 'MATCHED_SELECT_INSTITUTION'; ++ LinkEventName['MATCHED_SELECT_VERIFY_METHOD'] = ++ 'MATCHED_SELECT_VERIFY_METHOD'; ++ LinkEventName['OPEN'] = 'OPEN'; ++ LinkEventName['OPEN_MY_PLAID'] = 'OPEN_MY_PLAID'; ++ LinkEventName['OPEN_OAUTH'] = 'OPEN_OAUTH'; ++ LinkEventName['SEARCH_INSTITUTION'] = 'SEARCH_INSTITUTION'; ++ LinkEventName['SELECT_DEGRADED_INSTITUTION'] = 'SELECT_DEGRADED_INSTITUTION'; ++ LinkEventName['SELECT_DOWN_INSTITUTION'] = 'SELECT_DOWN_INSTITUTION'; ++ LinkEventName['SELECT_FILTERED_INSTITUTION'] = 'SELECT_FILTERED_INSTITUTION'; ++ LinkEventName['SELECT_INSTITUTION'] = 'SELECT_INSTITUTION'; ++ LinkEventName['SELECT_BRAND'] = 'SELECT_BRAND'; ++ LinkEventName['SELECT_AUTH_TYPE'] = 'SELECT_AUTH_TYPE'; ++ LinkEventName['SUBMIT_ACCOUNT_NUMBER'] = 'SUBMIT_ACCOUNT_NUMBER'; ++ LinkEventName['SUBMIT_DOCUMENTS'] = 'SUBMIT_DOCUMENTS'; ++ LinkEventName['SUBMIT_DOCUMENTS_SUCCESS'] = 'SUBMIT_DOCUMENTS_SUCCESS'; ++ LinkEventName['SUBMIT_DOCUMENTS_ERROR'] = 'SUBMIT_DOCUMENTS_ERROR'; ++ LinkEventName['SUBMIT_ROUTING_NUMBER'] = 'SUBMIT_ROUTING_NUMBER'; ++ LinkEventName['VIEW_DATA_TYPES'] = 'VIEW_DATA_TYPES'; ++ LinkEventName['SUBMIT_PHONE'] = 'SUBMIT_PHONE'; ++ LinkEventName['SKIP_SUBMIT_PHONE'] = 'SKIP_SUBMIT_PHONE'; ++ LinkEventName['VERIFY_PHONE'] = 'VERIFY_PHONE'; ++ LinkEventName['SUBMIT_CREDENTIALS'] = 'SUBMIT_CREDENTIALS'; ++ LinkEventName['SUBMIT_MFA'] = 'SUBMIT_MFA'; ++ LinkEventName['TRANSITION_VIEW'] = 'TRANSITION_VIEW'; ++ LinkEventName['CONNECT_NEW_INSTITUTION'] = 'CONNECT_NEW_INSTITUTION'; + })(LinkEventName || (LinkEventName = {})); + export var LinkEventViewName; +-(function (LinkEventViewName) { +- LinkEventViewName["ACCEPT_TOS"] = "ACCEPT_TOS"; +- LinkEventViewName["CONNECTED"] = "CONNECTED"; +- LinkEventViewName["CONSENT"] = "CONSENT"; +- LinkEventViewName["CREDENTIAL"] = "CREDENTIAL"; +- LinkEventViewName["DATA_TRANSPARENCY"] = "DATA_TRANSPARENCY"; +- LinkEventViewName["DATA_TRANSPARENCY_CONSENT"] = "DATA_TRANSPARENCY_CONSENT"; +- LinkEventViewName["DOCUMENTARY_VERIFICATION"] = "DOCUMENTARY_VERIFICATION"; +- LinkEventViewName["ERROR"] = "ERROR"; +- LinkEventViewName["EXIT"] = "EXIT"; +- LinkEventViewName["KYC_CHECK"] = "KYC_CHECK"; +- LinkEventViewName["SELFIE_CHECK"] = "SELFIE_CHECK"; +- LinkEventViewName["LOADING"] = "LOADING"; +- LinkEventViewName["MATCHED_CONSENT"] = "MATCHED_CONSENT"; +- LinkEventViewName["MATCHED_CREDENTIAL"] = "MATCHED_CREDENTIAL"; +- LinkEventViewName["MATCHED_MFA"] = "MATCHED_MFA"; +- LinkEventViewName["MFA"] = "MFA"; +- LinkEventViewName["NUMBERS"] = "NUMBERS"; +- LinkEventViewName["NUMBERS_SELECT_INSTITUTION"] = "NUMBERS_SELECT_INSTITUTION"; +- LinkEventViewName["OAUTH"] = "OAUTH"; +- LinkEventViewName["RECAPTCHA"] = "RECAPTCHA"; +- LinkEventViewName["RISK_CHECK"] = "RISK_CHECK"; +- LinkEventViewName["SCREENING"] = "SCREENING"; +- LinkEventViewName["SELECT_ACCOUNT"] = "SELECT_ACCOUNT"; +- LinkEventViewName["SELECT_AUTH_TYPE"] = "SELECT_AUTH_TYPE"; +- LinkEventViewName["SUBMIT_PHONE"] = "SUBMIT_PHONE"; +- LinkEventViewName["VERIFY_PHONE"] = "VERIFY_PHONE"; +- LinkEventViewName["SELECT_SAVED_INSTITUTION"] = "SELECT_SAVED_INSTITUTION"; +- LinkEventViewName["SELECT_SAVED_ACCOUNT"] = "SELECT_SAVED_ACCOUNT"; +- LinkEventViewName["SELECT_BRAND"] = "SELECT_BRAND"; +- LinkEventViewName["SELECT_INSTITUTION"] = "SELECT_INSTITUTION"; +- LinkEventViewName["SUBMIT_DOCUMENTS"] = "SUBMIT_DOCUMENTS"; +- LinkEventViewName["SUBMIT_DOCUMENTS_SUCCESS"] = "SUBMIT_DOCUMENTS_SUCCESS"; +- LinkEventViewName["SUBMIT_DOCUMENTS_ERROR"] = "SUBMIT_DOCUMENTS_ERROR"; +- LinkEventViewName["UPLOAD_DOCUMENTS"] = "UPLOAD_DOCUMENTS"; +- LinkEventViewName["VERIFY_SMS"] = "VERIFY_SMS"; ++(function(LinkEventViewName) { ++ LinkEventViewName['ACCEPT_TOS'] = 'ACCEPT_TOS'; ++ LinkEventViewName['CONNECTED'] = 'CONNECTED'; ++ LinkEventViewName['CONSENT'] = 'CONSENT'; ++ LinkEventViewName['CREDENTIAL'] = 'CREDENTIAL'; ++ LinkEventViewName['DATA_TRANSPARENCY'] = 'DATA_TRANSPARENCY'; ++ LinkEventViewName['DATA_TRANSPARENCY_CONSENT'] = 'DATA_TRANSPARENCY_CONSENT'; ++ LinkEventViewName['DOCUMENTARY_VERIFICATION'] = 'DOCUMENTARY_VERIFICATION'; ++ LinkEventViewName['ERROR'] = 'ERROR'; ++ LinkEventViewName['EXIT'] = 'EXIT'; ++ LinkEventViewName['KYC_CHECK'] = 'KYC_CHECK'; ++ LinkEventViewName['SELFIE_CHECK'] = 'SELFIE_CHECK'; ++ LinkEventViewName['LOADING'] = 'LOADING'; ++ LinkEventViewName['MATCHED_CONSENT'] = 'MATCHED_CONSENT'; ++ LinkEventViewName['MATCHED_CREDENTIAL'] = 'MATCHED_CREDENTIAL'; ++ LinkEventViewName['MATCHED_MFA'] = 'MATCHED_MFA'; ++ LinkEventViewName['MFA'] = 'MFA'; ++ LinkEventViewName['NUMBERS'] = 'NUMBERS'; ++ LinkEventViewName['NUMBERS_SELECT_INSTITUTION'] = ++ 'NUMBERS_SELECT_INSTITUTION'; ++ LinkEventViewName['OAUTH'] = 'OAUTH'; ++ LinkEventViewName['RECAPTCHA'] = 'RECAPTCHA'; ++ LinkEventViewName['RISK_CHECK'] = 'RISK_CHECK'; ++ LinkEventViewName['SCREENING'] = 'SCREENING'; ++ LinkEventViewName['SELECT_ACCOUNT'] = 'SELECT_ACCOUNT'; ++ LinkEventViewName['SELECT_AUTH_TYPE'] = 'SELECT_AUTH_TYPE'; ++ LinkEventViewName['SUBMIT_PHONE'] = 'SUBMIT_PHONE'; ++ LinkEventViewName['VERIFY_PHONE'] = 'VERIFY_PHONE'; ++ LinkEventViewName['SELECT_SAVED_INSTITUTION'] = 'SELECT_SAVED_INSTITUTION'; ++ LinkEventViewName['SELECT_SAVED_ACCOUNT'] = 'SELECT_SAVED_ACCOUNT'; ++ LinkEventViewName['SELECT_BRAND'] = 'SELECT_BRAND'; ++ LinkEventViewName['SELECT_INSTITUTION'] = 'SELECT_INSTITUTION'; ++ LinkEventViewName['SUBMIT_DOCUMENTS'] = 'SUBMIT_DOCUMENTS'; ++ LinkEventViewName['SUBMIT_DOCUMENTS_SUCCESS'] = 'SUBMIT_DOCUMENTS_SUCCESS'; ++ LinkEventViewName['SUBMIT_DOCUMENTS_ERROR'] = 'SUBMIT_DOCUMENTS_ERROR'; ++ LinkEventViewName['UPLOAD_DOCUMENTS'] = 'UPLOAD_DOCUMENTS'; ++ LinkEventViewName['VERIFY_SMS'] = 'VERIFY_SMS'; + })(LinkEventViewName || (LinkEventViewName = {})); + /// Methods to present Link on iOS. + /// FULL_SCREEN is the converts to UIModalPresentationOverFullScreen on the native side. + /// MODAL will use the default presentation style for iOS which is UIModalPresentationAutomatic. + export var LinkIOSPresentationStyle; +-(function (LinkIOSPresentationStyle) { +- LinkIOSPresentationStyle["FULL_SCREEN"] = "FULL_SCREEN"; +- LinkIOSPresentationStyle["MODAL"] = "MODAL"; ++(function(LinkIOSPresentationStyle) { ++ LinkIOSPresentationStyle['FULL_SCREEN'] = 'FULL_SCREEN'; ++ LinkIOSPresentationStyle['MODAL'] = 'MODAL'; + })(LinkIOSPresentationStyle || (LinkIOSPresentationStyle = {})); +diff --git a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts +index cd4ccde..cb0ff5c 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts ++++ b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts +@@ -1 +1 @@ +-declare const Types: any; ++export {}; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js +index 831866b..f38aff8 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js ++++ b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js +@@ -1,14 +1,14 @@ +-"use strict"; + const Types = require('./../Types'); + test('test token configuration', () => { +- const linkTokenConfiguration = { +- token: "test-token", +- noLoadingState: false, +- logLevel: Types.LinkLogLevel.DEBUG, +- extras: null, +- }; +- expect(linkTokenConfiguration.noLoadingState).toBe(false); +- expect(linkTokenConfiguration.token).toBe("test-token"); +- expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG); +- expect(linkTokenConfiguration.extras).toBe(null); ++ const linkTokenConfiguration = { ++ token: 'test-token', ++ noLoadingState: false, ++ logLevel: Types.LinkLogLevel.DEBUG, ++ extras: null, ++ }; ++ expect(linkTokenConfiguration.noLoadingState).toBe(false); ++ expect(linkTokenConfiguration.token).toBe('test-token'); ++ expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG); ++ expect(linkTokenConfiguration.extras).toBe(null); + }); ++export {}; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts +new file mode 100644 +index 0000000..cb0ff5c +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts +@@ -0,0 +1 @@ ++export {}; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js +new file mode 100644 +index 0000000..34a47d4 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js +@@ -0,0 +1,15 @@ ++'use strict'; ++const fs = require('fs'); ++const rn_version = JSON.parse(fs.readFileSync('package.json', 'utf-8'))[ ++ 'version' ++]; ++const android_version = fs ++ .readFileSync('android/src/main/AndroidManifest.xml', 'utf-8') ++ .match(/(?<=value=").*(?=")/)[0]; ++if (rn_version != android_version) { ++ console.error('Commit failed SDK version mismatch'); ++ console.error( ++ 'Please ensure package.json and android/src/main/AndroidManifest.xml have the same version', ++ ); ++ process.exit(-1); ++} +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts +new file mode 100644 +index 0000000..1de3019 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts +@@ -0,0 +1,14 @@ ++import { TurboModule } from 'react-native'; ++import { Int32 } from 'react-native/Libraries/Types/CodegenTypes'; ++import { LinkSuccess as UnsafeObject, LinkExit as Double, LinkError as Float } from '../Types'; ++export interface Spec extends TurboModule { ++ continueFromRedirectUriString(redirectUriString: string): void; ++ create(configuration: Object): void; ++ open(onSuccess: (success: UnsafeObject) => void, onExit: (error: Float, result: Double) => void): void; ++ dismiss(): void; ++ startLinkActivityForResult(data: string, onSuccessCallback: (result: UnsafeObject) => void, onExitCallback: (result: Double) => void): void; ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++declare const _default: Spec; ++export default _default; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js +new file mode 100644 +index 0000000..310a9c5 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js +@@ -0,0 +1,4 @@ ++// we use Object type because methods on the native side use NSDictionary and ReadableMap ++// and we want to stay compatible with those ++import { TurboModuleRegistry } from 'react-native'; ++export default TurboModuleRegistry.getEnforcing('RNLinksdk'); +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts +new file mode 100644 +index 0000000..82f29a1 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts +@@ -0,0 +1,9 @@ ++import { TurboModule } from 'react-native'; ++import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; ++export interface Spec extends TurboModule { ++ startLinkActivityForResult(token: string, noLoadingState: boolean, logLevel: string, onSuccessCallback: (result: UnsafeObject) => void, onExitCallback: (result: UnsafeObject) => void): void; ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++declare const _default: Spec | null; ++export default _default; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js +new file mode 100644 +index 0000000..d0ea456 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js +@@ -0,0 +1,4 @@ ++// we use Object type because methods on the native side use NSDictionary and ReadableMap ++// and we want to stay compatible with those ++import { TurboModuleRegistry } from 'react-native'; ++export default TurboModuleRegistry.get('PlaidAndroid'); +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts +new file mode 100644 +index 0000000..aefee8c +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts +@@ -0,0 +1,11 @@ ++import { TurboModule } from 'react-native'; ++import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; ++export interface Spec extends TurboModule { ++ create(token: string, noLoadingState: boolean): void; ++ open(fullScreen: boolean, onSuccess: (success: UnsafeObject) => void, onExit: (error: UnsafeObject, result: UnsafeObject) => void): void; ++ dismiss(): void; ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++declare const _default: Spec | null; ++export default _default; +diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js +new file mode 100644 +index 0000000..99845a1 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js +@@ -0,0 +1,4 @@ ++// we use Object type because methods on the native side use NSDictionary and ReadableMap ++// and we want to stay compatible with those ++import { TurboModuleRegistry } from 'react-native'; ++export default TurboModuleRegistry.get('RNLinksdk'); +diff --git a/node_modules/react-native-plaid-link-sdk/dist/index.js b/node_modules/react-native-plaid-link-sdk/dist/index.js +index 68c2d4b..acad079 100644 +--- a/node_modules/react-native-plaid-link-sdk/dist/index.js ++++ b/node_modules/react-native-plaid-link-sdk/dist/index.js +@@ -1,6 +1,6 @@ +-import { openLink, dismissLink, usePlaidEmitter, PlaidLink, } from './PlaidLink'; ++import { openLink, dismissLink, usePlaidEmitter, PlaidLink } from './PlaidLink'; + export * from './Types'; + export default PlaidLink; +-export { PlaidLink, openLink, dismissLink, usePlaidEmitter, }; ++export { PlaidLink, openLink, dismissLink, usePlaidEmitter }; + // Components + export { EmbeddedLinkView } from './EmbeddedLink/EmbeddedLinkView'; +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h +index 8a1c350..035b91c 100644 +--- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h ++++ b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h +@@ -1,15 +1,17 @@ +- +-#if __has_include() +-#import +-#import +-#else +-#import "RCTBridgeModule.h" +-#import "RCTEventEmitter.h" ++#ifdef RCT_NEW_ARCH_ENABLED ++#import + #endif ++#import ++#import "RCTEventEmitter.h" + + #import + +-@interface RNLinksdk : RCTEventEmitter ++@interface RNLinksdk : RCTEventEmitter ++#ifdef RCT_NEW_ARCH_ENABLED ++ ++#else ++ ++#endif + + + (NSDictionary *)dictionaryFromSuccess:(PLKLinkSuccess *)success; + + (NSDictionary *)dictionaryFromEvent:(PLKLinkEvent *)event; +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm +index ef3fe85..b3b92d6 100644 +--- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm ++++ b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm +@@ -1,4 +1,5 @@ + #import "RNLinksdk.h" ++#import "RNPlaidHelper.h" + + #import + #import +@@ -66,11 +67,11 @@ - (void)stopObserving { + self.hasObservers = NO; + } + +-RCT_EXPORT_METHOD(create:(NSString*)token :(BOOL)noLoadingState) { +- __weak typeof(self) weakSelf = self; ++RCT_EXPORT_METHOD(create:(NSString*)token noLoadingState:(BOOL)noLoadingState) { ++ __weak RNLinksdk *weakSelf = self; + + void (^onSuccess)(PLKLinkSuccess *) = ^(PLKLinkSuccess *success) { +- __typeof(weakSelf) strongSelf = weakSelf; ++ RNLinksdk *strongSelf = weakSelf; + + if (strongSelf.successCallback) { + NSDictionary *jsMetadata = [RNLinksdk dictionaryFromSuccess:success]; +@@ -80,7 +81,7 @@ - (void)stopObserving { + }; + + void (^onExit)(PLKLinkExit *) = ^(PLKLinkExit *exit) { +- __typeof(weakSelf) strongSelf = weakSelf; ++ RNLinksdk *strongSelf = weakSelf; + + if (strongSelf.exitCallback) { + NSDictionary *exitMetadata = [RNLinksdk dictionaryFromExit:exit]; +@@ -94,7 +95,7 @@ - (void)stopObserving { + }; + + void (^onEvent)(PLKLinkEvent *) = ^(PLKLinkEvent *event) { +- __typeof(weakSelf) strongSelf = weakSelf; ++ RNLinksdk *strongSelf = weakSelf; + if (strongSelf.hasObservers) { + NSDictionary *eventDictionary = [RNLinksdk dictionaryFromEvent:event]; + [strongSelf sendEventWithName:kRNLinkKitOnEventEvent +@@ -108,11 +109,11 @@ - (void)stopObserving { + config.noLoadingState = noLoadingState; + + NSError *creationError = nil; +- self.linkHandler = [PLKPlaid createWithLinkTokenConfiguration:config error:&creationError]; ++ self.linkHandler = [RNPlaidHelper createWithLinkTokenConfiguration:config error:&creationError]; + self.creationError = creationError; + } + +-RCT_EXPORT_METHOD(open: (BOOL)fullScreen :(RCTResponseSenderBlock)onSuccess :(RCTResponseSenderBlock)onExit) { ++RCT_EXPORT_METHOD(open:(BOOL)fullScreen onSuccess:(RCTResponseSenderBlock)onSuccess onExit:(RCTResponseSenderBlock)onExit) { + if (self.linkHandler) { + self.successCallback = onSuccess; + self.exitCallback = onExit; +@@ -122,7 +123,7 @@ - (void)stopObserving { + // unnecessarily invoked. + __block bool didPresent = NO; + +- __weak typeof(self) weakSelf = self; ++ __weak RNLinksdk *weakSelf = self; + void(^presentationHandler)(UIViewController *) = ^(UIViewController *linkViewController) { + + if (fullScreen) { +@@ -619,4 +620,12 @@ + (NSDictionary *)dictionaryFromExit:(PLKLinkExit *)exit { + }; + } + ++#if RCT_NEW_ARCH_ENABLED ++- (std::shared_ptr)getTurboModule: ++ (const facebook::react::ObjCTurboModule::InitParams &)params ++{ ++ return std::make_shared(params); ++} ++#endif ++ + @end +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +deleted file mode 100644 +index 919434a..0000000 +--- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata ++++ /dev/null +@@ -1,7 +0,0 @@ +- +- +- +- +- +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +deleted file mode 100644 +index 18d9810..0000000 +--- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ++++ /dev/null +@@ -1,8 +0,0 @@ +- +- +- +- +- IDEDidComputeMac32BitWarning +- +- +- +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate +deleted file mode 100644 +index 47e9cc2..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist +deleted file mode 100644 +index 5b4fa70..0000000 +--- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist ++++ /dev/null +@@ -1,19 +0,0 @@ +- +- +- +- +- SchemeUserState +- +- RNLinksdk.xcscheme_^#shared#^_ +- +- orderHint +- 0 +- +- RNLinksdkUnitTests.xcscheme_^#shared#^_ +- +- orderHint +- 1 +- +- +- +- +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate +deleted file mode 100644 +index 824773d..0000000 +Binary files a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h +new file mode 100644 +index 0000000..535d333 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h +@@ -0,0 +1,7 @@ ++#import ++ ++@interface RNPlaidHelper : NSObject ++ +++ (id _Nullable)createWithLinkTokenConfiguration:(PLKLinkTokenConfiguration * _Nonnull)linkTokenConfiguration error:(NSError * _Nullable * _Nullable)error; ++ ++@end +diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m +new file mode 100644 +index 0000000..2288299 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m +@@ -0,0 +1,10 @@ ++#import "RNPlaidHelper.h" ++ ++@implementation RNPlaidHelper ++ +++ (id _Nullable)createWithLinkTokenConfiguration:(PLKLinkTokenConfiguration * _Nonnull)linkTokenConfiguration error:(NSError * _Nullable * _Nullable)error ++{ ++ return [PLKPlaid createWithLinkTokenConfiguration:linkTokenConfiguration error:error]; ++} ++ ++@end +diff --git a/node_modules/react-native-plaid-link-sdk/package.json b/node_modules/react-native-plaid-link-sdk/package.json +index 22c7d2c..3d1b85c 100644 +--- a/node_modules/react-native-plaid-link-sdk/package.json ++++ b/node_modules/react-native-plaid-link-sdk/package.json +@@ -4,11 +4,13 @@ + "description": "React Native Plaid Link SDK", + "main": "dist/index.js", + "types": "dist/index.d.ts", ++ "react-native": "src/index.ts", + "files": [ + "dist/**/*", + "android/**/*", +- "ios", +- "react-native-plaid-link-sdk.podspec" ++ "ios/**/*", ++ "react-native-plaid-link-sdk.podspec", ++ "src/**/*" + ], + "scripts": { + "lint": "eslint \"./**/*.{js,jsx}\" --fix", +@@ -47,7 +49,7 @@ + "@react-native-community/eslint-plugin": "^1.1.0", + "@types/jest": "^26.0.14", + "@types/react": "^16.14.20", +- "@types/react-native": "^0.66.0", ++ "@types/react-native": "^0.71.3", + "@types/react-test-renderer": "^16.9.3", + "@typescript-eslint/eslint-plugin": "^4.33.0", + "@typescript-eslint/parser": "^4.33.0", +@@ -62,5 +64,16 @@ + "react": "18.0.0", + "react-native": "0.69.9", + "typescript": "^4.9.5" ++ }, ++ "dependencies": { ++ "react-native-plaid-link-sdk": "^10.4.0" ++ }, ++ "codegenConfig": { ++ "name": "rnplaidlink", ++ "type": "modules", ++ "jsSrcsDir": "./src/fabric", ++ "android": { ++ "javaPackageName": "com.plaid" ++ } + } + } +diff --git a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec +index ee59a19..40ac7df 100644 +--- a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec ++++ b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec +@@ -2,6 +2,8 @@ require 'json' + + package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + ++fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1' ++ + Pod::Spec.new do |s| + s.name = package['name'] + s.version = package['version'] +@@ -13,8 +15,13 @@ Pod::Spec.new do |s| + s.platform = :ios, "14.0" + + s.source = { :git => "https://github.com/plaid/react-native-plaid-link-sdk.git", :tag => "v#{s.version}" } +- s.source_files = "ios/*.{h,m,swift}" ++ s.source_files = "ios/**/*.{h,m,mm,swift}" ++ ++ if fabric_enabled ++ install_modules_dependencies(s) ++ else ++ s.dependency "React-Core" ++ end + +- s.dependency 'React-Core' + s.dependency 'Plaid', '~> 5.2.0' + end +diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx +new file mode 100644 +index 0000000..0243de2 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx +@@ -0,0 +1,95 @@ ++import React from 'react'; ++import { StyleProp, ViewStyle } from 'react-native'; ++import NativeEmbeddedLinkView from './NativeEmbeddedLinkView'; ++import { ++ LinkSuccessListener, ++ LinkSuccess, ++ LinkExitListener, ++ LinkExit, ++ LinkIOSPresentationStyle, ++ LinkOnEventListener, ++ LinkEvent, ++ LinkEventName, ++ LinkEventMetadata, ++ LinkError, ++ LinkExitMetadata, ++ LinkSuccessMetadata, ++} from '../Types'; ++ ++type EmbeddedLinkProps = { ++ token: String, ++ iOSPresentationStyle: LinkIOSPresentationStyle, ++ onEvent: LinkOnEventListener | undefined, ++ onSuccess: LinkSuccessListener, ++ onExit: LinkExitListener | undefined, ++ style: StyleProp | undefined, ++} ++ ++class EmbeddedEvent implements LinkEvent { ++ eventName: LinkEventName; ++ metadata: LinkEventMetadata; ++ ++ constructor(event: any) { ++ this.eventName = event.eventName ++ this.metadata = event.metadata ++ } ++} ++ ++class EmbeddedExit implements LinkExit { ++ error: LinkError | undefined; ++ metadata: LinkExitMetadata; ++ ++ constructor(event: any) { ++ this.error = event.error; ++ this.metadata = event.metadata; ++ } ++} ++ ++class EmbeddedSuccess implements LinkSuccess { ++ publicToken: string; ++ metadata: LinkSuccessMetadata; ++ ++ constructor(event: any) { ++ this.publicToken = event.publicToken; ++ this.metadata = event.metadata; ++ } ++} ++ ++export const EmbeddedLinkView: React.FC = (props) => { ++ ++ const {token, iOSPresentationStyle, onEvent, onSuccess, onExit, style} = props; ++ ++ const onEmbeddedEvent = (event: any) => { ++ ++ switch (event.nativeEvent.embeddedEventName) { ++ case 'onSuccess': { ++ if (!onSuccess) { return; } ++ const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent); ++ onSuccess(embeddedSuccess); ++ break; ++ } ++ case 'onExit': { ++ if (!onExit) {return; } ++ const embeddedExit = new EmbeddedExit(event.nativeEvent); ++ onExit(embeddedExit); ++ break; ++ } ++ case 'onEvent': { ++ if (!onEvent) { return; } ++ const embeddedEvent = new EmbeddedEvent(event.nativeEvent); ++ onEvent(embeddedEvent); ++ break; ++ } ++ default: { ++ return; ++ } ++ } ++ } ++ ++ return ++}; +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx +new file mode 100644 +index 0000000..7a71609 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx +@@ -0,0 +1,5 @@ ++// EmbeddedLinkView.web.tsx is a shim file which causes web bundlers to ignore the EmbeddedLinkView.tsx file ++// which imports requireNativeComponent (causing a runtime error with react-native-web). ++// Ref - https://github.com/plaid/react-native-plaid-link-sdk/issues/564 ++import React from 'react'; ++export const EmbeddedLinkView = () => null; +diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx +new file mode 100644 +index 0000000..da05fb1 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx +@@ -0,0 +1,9 @@ ++import { requireNativeComponent } from 'react-native'; ++ ++// Error "Tried to register two views with the same name PLKEmbeddedView" ++// will be thrown during hot reload when any change is made to the ++// file that is calling this requireNativeComponent('PLKEmbeddedView') call. ++// Leaving this in its own file resolves this issue. ++const NativeEmbeddedLinkView = requireNativeComponent('PLKEmbeddedView'); ++ ++export default NativeEmbeddedLinkView; +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx b/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx +new file mode 100644 +index 0000000..b35c06f +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx +@@ -0,0 +1,117 @@ ++import React, { useEffect } from 'react'; ++import { NativeEventEmitter, Platform, TouchableOpacity } from 'react-native'; ++import { ++ LinkError, ++ LinkEventListener, ++ LinkExit, ++ LinkIOSPresentationStyle, ++ LinkLogLevel, ++ LinkSuccess, ++ PlaidLinkComponentProps, ++ PlaidLinkProps, ++} from './Types'; ++import RNLinksdkAndroid from './fabric/NativePlaidLinkModuleAndroid'; ++import RNLinksdkiOS from './fabric/NativePlaidLinkModuleiOS'; ++ ++const RNLinksdk = (Platform.OS === 'android' ? RNLinksdkAndroid : RNLinksdkiOS) ?? undefined; ++ ++/** ++ * A hook that registers a listener on the Plaid emitter for the 'onEvent' type. ++ * The listener is cleaned up when this view is unmounted ++ * ++ * @param linkEventListener the listener to call ++ */ ++export const usePlaidEmitter = (linkEventListener: LinkEventListener) => { ++ useEffect(() => { ++ const emitter = new NativeEventEmitter(RNLinksdk); ++ const listener = emitter.addListener('onEvent', linkEventListener); ++ // Clean up after this effect: ++ return function cleanup() { ++ listener.remove(); ++ }; ++ }, []); ++}; ++ ++export const openLink = async (props: PlaidLinkProps) => { ++ let config = props.tokenConfig; ++ let noLoadingState = config.noLoadingState ?? false; ++ ++ if (Platform.OS === 'android') { ++ if (RNLinksdkAndroid === null) { ++ throw new Error('[react-native-plaid-link-sdk] RNLinksdkAndroid is not defined'); ++ } ++ ++ RNLinksdkAndroid.startLinkActivityForResult( ++ config.token, ++ noLoadingState, ++ config.logLevel ?? LinkLogLevel.ERROR, ++ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap ++ (result: LinkSuccess) => { ++ if (props.onSuccess != null) { ++ props.onSuccess(result); ++ } ++ }, ++ (result: LinkExit) => { ++ if (props.onExit != null) { ++ if (result.error != null && result.error.displayMessage != null) { ++ //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update. ++ result.error.errorDisplayMessage = result.error.displayMessage; ++ } ++ props.onExit(result); ++ } ++ }, ++ ); ++ } else { ++ if (RNLinksdkiOS === null) { ++ throw new Error('[react-native-plaid-link-sdk] RNLinksdkiOS is not defined'); ++ } ++ ++ RNLinksdkiOS.create(config.token, noLoadingState); ++ ++ let presentFullScreen = ++ props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN; ++ ++ RNLinksdkiOS.open( ++ presentFullScreen, ++ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap ++ (result: LinkSuccess) => { ++ if (props.onSuccess != null) { ++ props.onSuccess(result); ++ } ++ }, ++ (error: LinkError, result: LinkExit) => { ++ if (props.onExit != null) { ++ if (error) { ++ var data = result || {}; ++ data.error = error; ++ props.onExit(data); ++ } else { ++ props.onExit(result); ++ } ++ } ++ }, ++ ); ++ } ++}; ++ ++export const dismissLink = () => { ++ if (Platform.OS === 'ios') { ++ if (RNLinksdkiOS === null) { ++ throw new Error('[react-native-plaid-link-sdk] RNLinksdkiOS is not defined'); ++ } ++ ++ RNLinksdkiOS.dismiss(); ++ } ++}; ++ ++export const PlaidLink = (props: PlaidLinkComponentProps) => { ++ function onPress() { ++ props.onPress?.(); ++ openLink(props); ++ } ++ ++ return ( ++ // @ts-ignore some types directories misconfiguration ++ {props.children} ++ ); ++}; +diff --git a/node_modules/react-native-plaid-link-sdk/src/Types.ts b/node_modules/react-native-plaid-link-sdk/src/Types.ts +new file mode 100644 +index 0000000..a7d30c6 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/Types.ts +@@ -0,0 +1,550 @@ ++interface CommonPlaidLinkOptions { ++ logLevel?: LinkLogLevel; ++ extras?: Record; ++} ++ ++export type LinkTokenConfiguration = (CommonPlaidLinkOptions & { ++ token: string; ++ // A `Bool` indicating that Link should skip displaying a loading animation until the Link UI is fully loaded. ++ // This can be used to display custom loading UI while Link content is loading (and will skip any initial loading UI in Link). ++ // Note: Dismiss custom loading UI on the OPEN & EXIT events. ++ // ++ // Note: This should be set to `true` when setting the `eu_config.headless` field in /link/token/create requests to `true`. ++ // For reference, see https://plaid.com/docs/api/tokens/#link-token-create-request-eu-config-headless ++ noLoadingState?: boolean; ++}); ++ ++export enum LinkLogLevel { ++ DEBUG="debug", ++ INFO="info", ++ WARN="warn", ++ ERROR="error", ++} ++ ++export enum PlaidEnvironment { ++ PRODUCTION = 'production', ++ DEVELOPMENT = 'development', ++ SANDBOX = 'sandbox', ++} ++ ++export enum PlaidProduct { ++ ASSETS="assets", ++ AUTH="auth", ++ DEPOSIT_SWITCH="deposit_switch", ++ IDENTITY="identity", ++ INCOME="income", ++ INVESTMENTS="investments", ++ LIABILITIES="liabilities", ++ LIABILITIES_REPORT="liabilities_report", ++ PAYMENT_INITIATION="payment_initiation", ++ TRANSACTIONS="transactions", ++} ++ ++export enum LinkAccountType { ++ CREDIT = 'credit', ++ DEPOSITORY = 'depository', ++ INVESTMENT = 'investment', ++ LOAN = 'loan', ++ OTHER = 'other', ++} ++ ++export enum LinkAccountSubtypes { ++ ALL = 'all', ++ CREDIT_CARD = 'credit card', ++ PAYPAL = 'paypal', ++ AUTO = 'auto', ++ BUSINESS = 'business', ++ COMMERCIAL = 'commercial', ++ CONSTRUCTION = 'construction', ++ CONSUMER = 'consumer', ++ HOME_EQUITY = 'home equity', ++ LINE_OF_CREDIT = 'line of credit', ++ LOAN = 'loan', ++ MORTGAGE = 'mortgage', ++ OVERDRAFT = 'overdraft', ++ STUDENT = 'student', ++ CASH_MANAGEMENT = 'cash management', ++ CD = 'cd', ++ CHECKING = 'checking', ++ EBT = 'ebt', ++ HSA = 'hsa', ++ MONEY_MARKET = 'money market', ++ PREPAID = 'prepaid', ++ SAVINGS = 'savings', ++ FOUR_0_1_A = '401a', ++ FOUR_0_1_K = '401k', ++ FOUR_0_3_B = '403B', ++ FOUR_5_7_B = '457b', ++ FIVE_2_9 = '529', ++ BROKERAGE = 'brokerage', ++ CASH_ISA = 'cash isa', ++ EDUCATION_SAVINGS_ACCOUNT = 'education savings account', ++ FIXED_ANNUNITY = 'fixed annuity', ++ GIC = 'gic', ++ HEALTH_REIMBURSEMENT_ARRANGEMENT = 'health reimbursement arrangement', ++ IRA = 'ira', ++ ISA = 'isa', ++ KEOGH = 'keogh', ++ LIF = 'lif', ++ LIRA = 'lira', ++ LRIF = 'lrif', ++ LRSP = 'lrsp', ++ MUTUAL_FUND = 'mutual fund', ++ NON_TAXABLE_BROKERAGE_ACCOUNT = 'non-taxable brokerage account', ++ PENSION = 'pension', ++ PLAN = 'plan', ++ PRIF = 'prif', ++ PROFIT_SHARING_PLAN = 'profit sharing plan', ++ RDSP = 'rdsp', ++ RESP = 'resp', ++ RETIREMENT = 'retirement', ++ RLIF = 'rlif', ++ ROTH_401K = 'roth 401k', ++ ROTH = 'roth', ++ RRIF = 'rrif', ++ RRSP = 'rrsp', ++ SARSEP = 'sarsep', ++ SEP_IRA = 'sep ira', ++ SIMPLE_IRA = 'simple ira', ++ SIPP = 'sipp', ++ STOCK_PLAN = 'stock plan', ++ TFSA = 'tfsa', ++ THRIFT_SAVINGS_PLAN = 'thrift savings plan', ++ TRUST = 'trust', ++ UGMA = 'ugma', ++ UTMA = 'utma', ++ VARIABLE_ANNUITY = 'variable annuity' ++} ++ ++export interface LinkAccountSubtype { ++} ++ ++export class LinkAccountSubtypeCredit implements LinkAccountSubtype { ++ public static readonly ALL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL); ++ public static readonly CREDIT_CARD = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.CREDIT_CARD); ++ public static readonly PAYPAL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.PAYPAL); ++ ++ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { } ++} ++ ++export class LinkAccountSubtypeDepository implements LinkAccountSubtype { ++ public static readonly ALL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.ALL); ++ public static readonly CASH_MANAGEMENT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CASH_MANAGEMENT); ++ public static readonly CD = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CD); ++ public static readonly CHECKING = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CHECKING); ++ public static readonly EBT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.EBT); ++ public static readonly HSA = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.HSA); ++ public static readonly MONEY_MARKET = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.MONEY_MARKET); ++ public static readonly PAYPAL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PAYPAL); ++ public static readonly PREPAID = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PREPAID); ++ public static readonly SAVINGS = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.SAVINGS); ++ ++ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { } ++} ++ ++export class LinkAccountSubtypeInvestment implements LinkAccountSubtype { ++ public static readonly ALL = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ALL); ++ public static readonly BROKERAGE = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.BROKERAGE); ++ public static readonly CASH_ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.CASH_ISA); ++ public static readonly EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT); ++ public static readonly FIXED_ANNUNITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIXED_ANNUNITY); ++ public static readonly GIC = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.GIC); ++ public static readonly HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT); ++ public static readonly HSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HSA); ++ public static readonly INVESTMENT_401A = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_A); ++ public static readonly INVESTMENT_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_K); ++ public static readonly INVESTMENT_403B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_3_B); ++ public static readonly INVESTMENT_457B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_5_7_B); ++ public static readonly INVESTMENT_529 = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIVE_2_9); ++ public static readonly IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.IRA); ++ public static readonly ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ISA); ++ public static readonly KEOGH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.KEOGH); ++ public static readonly LIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIF); ++ public static readonly LIRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIRA); ++ public static readonly LRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRIF); ++ public static readonly LRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRSP); ++ public static readonly MUTUAL_FUND = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.MUTUAL_FUND); ++ public static readonly NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT); ++ public static readonly PENSION = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PENSION); ++ public static readonly PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PLAN); ++ public static readonly PRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PRIF); ++ public static readonly PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PROFIT_SHARING_PLAN); ++ public static readonly RDSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RDSP); ++ public static readonly RESP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RESP); ++ public static readonly RETIREMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RETIREMENT); ++ public static readonly RLIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RLIF); ++ public static readonly ROTH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH); ++ public static readonly ROTH_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH_401K); ++ public static readonly RRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRIF); ++ public static readonly RRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRSP); ++ public static readonly SARSEP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SARSEP); ++ public static readonly SEP_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SEP_IRA); ++ public static readonly SIMPLE_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIMPLE_IRA); ++ public static readonly SIIP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIPP); ++ public static readonly STOCK_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.STOCK_PLAN); ++ public static readonly TFSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TFSA); ++ public static readonly THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.THRIFT_SAVINGS_PLAN); ++ public static readonly TRUST = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TRUST); ++ public static readonly UGMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UGMA); ++ public static readonly UTMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UTMA); ++ public static readonly VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.VARIABLE_ANNUITY); ++ ++ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { } ++} ++ ++export class LinkAccountSubtypeLoan implements LinkAccountSubtype { ++ public static readonly ALL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL); ++ public static readonly AUTO = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.AUTO); ++ public static readonly BUSINESS = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.BUSINESS); ++ public static readonly COMMERCIAL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.COMMERCIAL); ++ public static readonly CONSTRUCTION = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSTRUCTION); ++ public static readonly CONSUMER = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSUMER); ++ public static readonly HOME_EQUITY = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.HOME_EQUITY); ++ public static readonly LINE_OF_CREDIT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LINE_OF_CREDIT); ++ public static readonly LOAN = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LOAN); ++ public static readonly MORTGAGE = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.MORTGAGE); ++ public static readonly OVERDRAFT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.OVERDRAFT); ++ public static readonly STUDENT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.STUDENT); ++ ++ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { } ++} ++ ++export class LinkAccountSubtypeUnknown implements LinkAccountSubtype { ++ constructor(public readonly type: string, public readonly subtype: string) { } ++} ++ ++export interface LinkSuccess { ++ publicToken: string; ++ metadata: LinkSuccessMetadata; ++} ++ ++export interface LinkSuccessMetadata { ++ institution?: LinkInstitution; ++ accounts: LinkAccount[]; ++ linkSessionId: string; ++ metadataJson?: string; ++} ++ ++export interface LinkAccount { ++ id: string; ++ name?: string; ++ mask?: string; ++ type: LinkAccountType; ++ subtype: LinkAccountSubtype; ++ verificationStatus?: LinkAccountVerificationStatus; ++} ++ ++export enum LinkAccountVerificationStatus { ++ PENDING_AUTOMATIC_VERIFICATION = 'pending_automatic_verification', ++ PENDING_MANUAL_VERIFICATION = 'pending_manual_verification', ++ MANUALLY_VERIFIED = 'manually_verified', ++} ++ ++export interface LinkInstitution { ++ id: string; ++ name: string; ++} ++ ++export interface LinkExit { ++ error?: LinkError; ++ metadata: LinkExitMetadata; ++} ++ ++export interface LinkExitMetadata { ++ status?: LinkExitMetadataStatus; ++ institution?: LinkInstitution; ++ linkSessionId: string; ++ requestId: string; ++ metadataJson?: string; ++} ++ ++export enum LinkExitMetadataStatus { ++ CONNECTED = 'connected', ++ CHOOSE_DEVICE = 'choose_device', ++ REQUIRES_ACCOUNT_SELECTION = 'requires_account_selection', ++ REQUIRES_CODE = 'requires_code', ++ REQUIRES_CREDENTIALS = 'requires_credentials', ++ REQUIRES_EXTERNAL_ACTION = 'requires_external_action', ++ REQUIRES_OAUTH = 'requires_oauth', ++ REQUIRES_QUESTIONS = 'requires_questions', ++ REQUIRES_RECAPTCHA = 'requires_recaptcha', ++ REQUIRES_SELECTIONS = 'requires_selections', ++ REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION = 'requires_deposit_switch_allocation_configuration', ++ REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION = 'requires_deposit_switch_allocation_selection', ++} ++ ++export interface LinkError { ++ errorCode: LinkErrorCode; ++ errorType: LinkErrorType; ++ errorMessage: string; ++ /** @deprecated DO NOT USE, data not guaranteed. Use `displayMessage` instead */ ++ errorDisplayMessage?: string; ++ displayMessage?: string; ++ errorJson?: string; ++} ++ ++export enum LinkErrorCode { ++ // ITEM_ERROR ++ INVALID_CREDENTIALS = "INVALID_CREDENTIALS", ++ INVALID_MFA = "INVALID_MFA", ++ ITEM_LOGIN_REQUIRED = "ITEM_LOGIN_REQUIRED", ++ INSUFFICIENT_CREDENTIALS = "INSUFFICIENT_CREDENTIALS", ++ ITEM_LOCKED = "ITEM_LOCKED", ++ USER_SETUP_REQUIRED = "USER_SETUP_REQUIRED", ++ MFA_NOT_SUPPORTED = "MFA_NOT_SUPPORTED", ++ INVALID_SEND_METHOD = "INVALID_SEND_METHOD", ++ NO_ACCOUNTS = "NO_ACCOUNTS", ++ ITEM_NOT_SUPPORTED = "ITEM_NOT_SUPPORTED", ++ TOO_MANY_VERIFICATION_ATTEMPTS = "TOO_MANY_VERIFICATION_ATTEMPTS", ++ ++ INVALD_UPDATED_USERNAME = "INVALD_UPDATED_USERNAME", ++ INVALID_UPDATED_USERNAME = "INVALID_UPDATED_USERNAME", ++ ++ ITEM_NO_ERROR = "ITEM_NO_ERROR", ++ item_no_error = "item-no-error", ++ NO_AUTH_ACCOUNTS = "NO_AUTH_ACCOUNTS", ++ NO_INVESTMENT_ACCOUNTS = "NO_INVESTMENT_ACCOUNTS", ++ NO_INVESTMENT_AUTH_ACCOUNTS = "NO_INVESTMENT_AUTH_ACCOUNTS", ++ NO_LIABILITY_ACCOUNTS = "NO_LIABILITY_ACCOUNTS", ++ PRODUCTS_NOT_SUPPORTED = "PRODUCTS_NOT_SUPPORTED", ++ ITEM_NOT_FOUND = "ITEM_NOT_FOUND", ++ ITEM_PRODUCT_NOT_READY = "ITEM_PRODUCT_NOT_READY", ++ ++ // INSTITUTION_ERROR ++ INSTITUTION_DOWN = "INSTITUTION_DOWN", ++ INSTITUTION_NOT_RESPONDING = "INSTITUTION_NOT_RESPONDING", ++ INSTITUTION_NOT_AVAILABLE = "INSTITUTION_NOT_AVAILABLE", ++ INSTITUTION_NO_LONGER_SUPPORTED = "INSTITUTION_NO_LONGER_SUPPORTED", ++ ++ // API_ERROR ++ INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR", ++ PLANNED_MAINTENANCE = "PLANNED_MAINTENANCE", ++ ++ // ASSET_REPORT_ERROR ++ PRODUCT_NOT_ENABLED = "PRODUCT_NOT_ENABLED", ++ DATA_UNAVAILABLE = "DATA_UNAVAILABLE", ++ ASSET_PRODUCT_NOT_READY = "ASSET_PRODUCT_NOT_READY", ++ ASSET_REPORT_GENERATION_FAILED = "ASSET_REPORT_GENERATION_FAILED", ++ INVALID_PARENT = "INVALID_PARENT", ++ INSIGHTS_NOT_ENABLED = "INSIGHTS_NOT_ENABLED", ++ INSIGHTS_PREVIOUSLY_NOT_ENABLED = "INSIGHTS_PREVIOUSLY_NOT_ENABLED", ++ ++ // BANK_TRANSFER_ERROR ++ BANK_TRANSFER_LIMIT_EXCEEDED = "BANK_TRANSFER_LIMIT_EXCEEDED", ++ BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT = "BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT", ++ BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT = "BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT", ++ BANK_TRANSFER_ACCOUNT_BLOCKED = "BANK_TRANSFER_ACCOUNT_BLOCKED", ++ BANK_TRANSFER_INSUFFICIENT_FUNDS = "BANK_TRANSFER_INSUFFICIENT_FUNDS", ++ BANK_TRANSFER_NOT_CANCELLABLE = "BANK_TRANSFER_NOT_CANCELLABLE", ++ BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE = "BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE", ++ BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT = "BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT", ++ ++ // SANDBOX_ERROR ++ SANDBOX_PRODUCT_NOT_ENABLED = "SANDBOX_PRODUCT_NOT_ENABLED", ++ SANDBOX_WEBHOOK_INVALID = "SANDBOX_WEBHOOK_INVALID", ++ SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID = "SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID", ++ ++ // INVALID_REQUEST ++ MISSING_FIELDS = "MISSING_FIELDS", ++ UNKNOWN_FIELDS = "UNKNOWN_FIELDS", ++ INVALID_FIELD = "INVALID_FIELD", ++ INCOMPATIBLE_API_VERSION = "INCOMPATIBLE_API_VERSION", ++ INVALID_BODY = "INVALID_BODY", ++ INVALID_HEADERS = "INVALID_HEADERS", ++ NOT_FOUND = "NOT_FOUND", ++ NO_LONGER_AVAILABLE = "NO_LONGER_AVAILABLE", ++ SANDBOX_ONLY = "SANDBOX_ONLY", ++ INVALID_ACCOUNT_NUMBER = "INVALID_ACCOUNT_NUMBER", ++ ++ // INVALID_INPUT ++ // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS", ++ INCORRECT_DEPOSIT_AMOUNTS = "INCORRECT_DEPOSIT_AMOUNTS", ++ UNAUTHORIZED_ENVIRONMENT = "UNAUTHORIZED_ENVIRONMENT", ++ INVALID_PRODUCT = "INVALID_PRODUCT", ++ UNAUTHORIZED_ROUTE_ACCESS = "UNAUTHORIZED_ROUTE_ACCESS", ++ DIRECT_INTEGRATION_NOT_ENABLED = "DIRECT_INTEGRATION_NOT_ENABLED", ++ INVALID_API_KEYS = "INVALID_API_KEYS", ++ INVALID_ACCESS_TOKEN = "INVALID_ACCESS_TOKEN", ++ INVALID_PUBLIC_TOKEN = "INVALID_PUBLIC_TOKEN", ++ INVALID_LINK_TOKEN = "INVALID_LINK_TOKEN", ++ INVALID_PROCESSOR_TOKEN = "INVALID_PROCESSOR_TOKEN", ++ INVALID_AUDIT_COPY_TOKEN = "INVALID_AUDIT_COPY_TOKEN", ++ INVALID_ACCOUNT_ID = "INVALID_ACCOUNT_ID", ++ MICRODEPOSITS_ALREADY_VERIFIED = "MICRODEPOSITS_ALREADY_VERIFIED", ++ ++ // INVALID_RESULT ++ PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA = "PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA", ++ ++ // RATE_LIMIT_EXCEEDED ++ ACCOUNTS_LIMIT = "ACCOUNTS_LIMIT", ++ ADDITION_LIMIT = "ADDITION_LIMIT", ++ AUTH_LIMIT = "AUTH_LIMIT", ++ BALANCE_LIMIT = "BALANCE_LIMIT", ++ IDENTITY_LIMIT = "IDENTITY_LIMIT", ++ ITEM_GET_LIMIT = "ITEM_GET_LIMIT", ++ RATE_LIMIT = "RATE_LIMIT", ++ TRANSACTIONS_LIMIT = "TRANSACTIONS_LIMIT", ++ ++ // RECAPTCHA_ERROR ++ RECAPTCHA_REQUIRED = "RECAPTCHA_REQUIRED", ++ RECAPTCHA_BAD = "RECAPTCHA_BAD", ++ ++ // OAUTH_ERROR ++ INCORRECT_OAUTH_NONCE = "INCORRECT_OAUTH_NONCE", ++ OAUTH_STATE_ID_ALREADY_PROCESSED = "OAUTH_STATE_ID_ALREADY_PROCESSED", ++} ++ ++export enum LinkErrorType { ++ BANK_TRANSFER = 'BANK_TRANSFER_ERROR', ++ INVALID_REQUEST = 'INVALID_REQUEST', ++ INVALID_RESULT = 'INVALID_RESULT', ++ INVALID_INPUT = 'INVALID_INPUT', ++ INSTITUTION_ERROR = 'INSTITUTION_ERROR', ++ RATE_LIMIT_EXCEEDED = 'RATE_LIMIT_EXCEEDED', ++ API_ERROR = 'API_ERROR', ++ ITEM_ERROR = 'ITEM_ERROR', ++ AUTH_ERROR = 'AUTH_ERROR', ++ ASSET_REPORT_ERROR = 'ASSET_REPORT_ERROR', ++ SANDBOX_ERROR = 'SANDBOX_ERROR', ++ RECAPTCHA_ERROR = 'RECAPTCHA_ERROR', ++ OAUTH_ERROR = 'OAUTH_ERROR', ++} ++ ++export type LinkEventListener = (linkEvent: LinkEvent) => void ++ ++export interface LinkEvent { ++ eventName: LinkEventName; ++ metadata: LinkEventMetadata; ++} ++ ++export interface LinkEventMetadata { ++ accountNumberMask?: string; ++ linkSessionId: string; ++ mfaType?: string; ++ requestId?: string; ++ viewName: LinkEventViewName; ++ errorCode?: string; ++ errorMessage?: string; ++ errorType?: string; ++ exitStatus?: string; ++ institutionId?: string; ++ institutionName?: string; ++ institutionSearchQuery?: string; ++ isUpdateMode?: string; ++ matchReason?: string; ++ // see possible values for selection at https://plaid.com/docs/link/web/#link-web-onevent-selection ++ selection?: null | string; ++ timestamp: string; ++} ++ ++export enum LinkEventName { ++ BANK_INCOME_INSIGHTS_COMPLETED = "BANK_INCOME_INSIGHTS_COMPLETED", ++ CLOSE_OAUTH = 'CLOSE_OAUTH', ++ ERROR = 'ERROR', ++ EXIT = 'EXIT', ++ FAIL_OAUTH = 'FAIL_OAUTH', ++ HANDOFF = 'HANDOFF', ++ IDENTITY_VERIFICATION_START_STEP = 'IDENTITY_VERIFICATION_START_STEP', ++ IDENTITY_VERIFICATION_PASS_STEP = 'IDENTITY_VERIFICATION_PASS_STEP', ++ IDENTITY_VERIFICATION_FAIL_STEP = 'IDENTITY_VERIFICATION_FAIL_STEP', ++ IDENTITY_VERIFICATION_PENDING_REVIEW_STEP = 'IDENTITY_VERIFICATION_PENDING_REVIEW_STEP', ++ IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION = 'IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION', ++ IDENTITY_VERIFICATION_CREATE_SESSION = 'IDENTITY_VERIFICATION_CREATE_SESSION', ++ IDENTITY_VERIFICATION_RESUME_SESSION = 'IDENTITY_VERIFICATION_RESUME_SESSION', ++ IDENTITY_VERIFICATION_PASS_SESSION = 'IDENTITY_VERIFICATION_PASS_SESSION', ++ IDENTITY_VERIFICATION_FAIL_SESSION = 'IDENTITY_VERIFICATION_FAIL_SESSION', ++ IDENTITY_VERIFICATION_OPEN_UI = 'IDENTITY_VERIFICATION_OPEN_UI', ++ IDENTITY_VERIFICATION_RESUME_UI = 'IDENTITY_VERIFICATION_RESUME_UI', ++ IDENTITY_VERIFICATION_CLOSE_UI = 'IDENTITY_VERIFICATION_CLOSE_UI', ++ MATCHED_CONSENT = 'MATCHED_CONSENT', ++ MATCHED_SELECT_INSTITUTION = 'MATCHED_SELECT_INSTITUTION', ++ MATCHED_SELECT_VERIFY_METHOD = 'MATCHED_SELECT_VERIFY_METHOD', ++ OPEN = 'OPEN', ++ OPEN_MY_PLAID = 'OPEN_MY_PLAID', ++ OPEN_OAUTH = 'OPEN_OAUTH', ++ SEARCH_INSTITUTION = 'SEARCH_INSTITUTION', ++ SELECT_DEGRADED_INSTITUTION = 'SELECT_DEGRADED_INSTITUTION', ++ SELECT_DOWN_INSTITUTION = 'SELECT_DOWN_INSTITUTION', ++ SELECT_FILTERED_INSTITUTION = 'SELECT_FILTERED_INSTITUTION', ++ SELECT_INSTITUTION = 'SELECT_INSTITUTION', ++ SELECT_BRAND = 'SELECT_BRAND', ++ SELECT_AUTH_TYPE = 'SELECT_AUTH_TYPE', ++ SUBMIT_ACCOUNT_NUMBER = 'SUBMIT_ACCOUNT_NUMBER', ++ SUBMIT_DOCUMENTS = 'SUBMIT_DOCUMENTS', ++ SUBMIT_DOCUMENTS_SUCCESS = 'SUBMIT_DOCUMENTS_SUCCESS', ++ SUBMIT_DOCUMENTS_ERROR = 'SUBMIT_DOCUMENTS_ERROR', ++ SUBMIT_ROUTING_NUMBER = 'SUBMIT_ROUTING_NUMBER', ++ VIEW_DATA_TYPES = 'VIEW_DATA_TYPES', ++ SUBMIT_PHONE = 'SUBMIT_PHONE', ++ SKIP_SUBMIT_PHONE = 'SKIP_SUBMIT_PHONE', ++ VERIFY_PHONE = 'VERIFY_PHONE', ++ SUBMIT_CREDENTIALS = 'SUBMIT_CREDENTIALS', ++ SUBMIT_MFA = 'SUBMIT_MFA', ++ TRANSITION_VIEW = 'TRANSITION_VIEW', ++ CONNECT_NEW_INSTITUTION = 'CONNECT_NEW_INSTITUTION', ++} ++ ++export enum LinkEventViewName { ++ ACCEPT_TOS = 'ACCEPT_TOS', ++ CONNECTED = 'CONNECTED', ++ CONSENT = 'CONSENT', ++ CREDENTIAL = 'CREDENTIAL', ++ DATA_TRANSPARENCY = 'DATA_TRANSPARENCY', ++ DATA_TRANSPARENCY_CONSENT = 'DATA_TRANSPARENCY_CONSENT', ++ DOCUMENTARY_VERIFICATION = 'DOCUMENTARY_VERIFICATION', ++ ERROR = 'ERROR', ++ EXIT = 'EXIT', ++ KYC_CHECK = 'KYC_CHECK', ++ SELFIE_CHECK = 'SELFIE_CHECK', ++ LOADING = 'LOADING', ++ MATCHED_CONSENT = 'MATCHED_CONSENT', ++ MATCHED_CREDENTIAL = 'MATCHED_CREDENTIAL', ++ MATCHED_MFA = 'MATCHED_MFA', ++ MFA = 'MFA', ++ NUMBERS = 'NUMBERS', ++ NUMBERS_SELECT_INSTITUTION = 'NUMBERS_SELECT_INSTITUTION', ++ OAUTH = 'OAUTH', ++ RECAPTCHA = 'RECAPTCHA', ++ RISK_CHECK = 'RISK_CHECK', ++ SCREENING = 'SCREENING', ++ SELECT_ACCOUNT = 'SELECT_ACCOUNT', ++ SELECT_AUTH_TYPE = 'SELECT_AUTH_TYPE', ++ SUBMIT_PHONE = 'SUBMIT_PHONE', ++ VERIFY_PHONE = 'VERIFY_PHONE', ++ SELECT_SAVED_INSTITUTION = 'SELECT_SAVED_INSTITUTION', ++ SELECT_SAVED_ACCOUNT = 'SELECT_SAVED_ACCOUNT', ++ SELECT_BRAND = 'SELECT_BRAND', ++ SELECT_INSTITUTION = 'SELECT_INSTITUTION', ++ SUBMIT_DOCUMENTS = 'SUBMIT_DOCUMENTS', ++ SUBMIT_DOCUMENTS_SUCCESS = 'SUBMIT_DOCUMENTS_SUCCESS', ++ SUBMIT_DOCUMENTS_ERROR = 'SUBMIT_DOCUMENTS_ERROR', ++ UPLOAD_DOCUMENTS = 'UPLOAD_DOCUMENTS', ++ VERIFY_SMS = 'VERIFY_SMS', ++} ++ ++/// Methods to present Link on iOS. ++/// FULL_SCREEN is the converts to UIModalPresentationOverFullScreen on the native side. ++/// MODAL will use the default presentation style for iOS which is UIModalPresentationAutomatic. ++export enum LinkIOSPresentationStyle { ++ FULL_SCREEN = 'FULL_SCREEN', ++ MODAL = 'MODAL' ++} ++ ++export type LinkSuccessListener = (LinkSuccess: LinkSuccess) => void ++ ++export type LinkExitListener = (LinkExit: LinkExit) => void ++ ++export type LinkOnEventListener = (LinkEvent: LinkEvent) => void ++ ++export interface PlaidLinkProps { ++ tokenConfig: LinkTokenConfiguration ++ onSuccess: LinkSuccessListener ++ onExit?: LinkExitListener ++ iOSPresentationStyle?: LinkIOSPresentationStyle ++ logLevel?: LinkLogLevel ++ onPress?(): any ++} ++ ++export type PlaidLinkComponentProps = (PlaidLinkProps & { ++ children: React.ReactNode ++}); +diff --git a/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts b/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts +new file mode 100644 +index 0000000..2dd7a54 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts +@@ -0,0 +1,15 @@ ++const Types = require('./../Types'); ++ ++test('test token configuration', () => { ++ const linkTokenConfiguration = { ++ token: "test-token", ++ noLoadingState: false, ++ logLevel: Types.LinkLogLevel.DEBUG, ++ extras: null, ++ }; ++ ++ expect(linkTokenConfiguration.noLoadingState).toBe(false); ++ expect(linkTokenConfiguration.token).toBe("test-token"); ++ expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG); ++ expect(linkTokenConfiguration.extras).toBe(null); ++}); +\ No newline at end of file +diff --git a/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts +new file mode 100644 +index 0000000..d1e4062 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts +@@ -0,0 +1,20 @@ ++// we use Object type because methods on the native side use NSDictionary and ReadableMap ++// and we want to stay compatible with those ++import {TurboModuleRegistry, TurboModule} from 'react-native'; ++import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; ++ ++export interface Spec extends TurboModule { ++ startLinkActivityForResult( ++ token: string, ++ noLoadingState: boolean, ++ logLevel: string, ++ onSuccessCallback: (result: UnsafeObject) => void, ++ onExitCallback: (result: UnsafeObject) => void ++ ): void; ++ ++ // those two are here for event emitter methods ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++ ++export default TurboModuleRegistry.get('PlaidAndroid'); +diff --git a/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts +new file mode 100644 +index 0000000..d1b3565 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts +@@ -0,0 +1,19 @@ ++// we use Object type because methods on the native side use NSDictionary and ReadableMap ++// and we want to stay compatible with those ++import {TurboModuleRegistry, TurboModule} from 'react-native'; ++import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; ++ ++export interface Spec extends TurboModule { ++ create(token: string, noLoadingState: boolean): void; ++ open( ++ fullScreen: boolean, ++ onSuccess: (success: UnsafeObject) => void, ++ onExit: (error: UnsafeObject, result: UnsafeObject) => void, ++ ): void; ++ dismiss(): void; ++ // those two are here for event emitter methods ++ addListener(eventName: string): void; ++ removeListeners(count: Int32): void; ++} ++ ++export default TurboModuleRegistry.get('RNLinksdk'); +diff --git a/node_modules/react-native-plaid-link-sdk/src/index.ts b/node_modules/react-native-plaid-link-sdk/src/index.ts +new file mode 100644 +index 0000000..23ef946 +--- /dev/null ++++ b/node_modules/react-native-plaid-link-sdk/src/index.ts +@@ -0,0 +1,21 @@ ++import { ++ openLink, ++ dismissLink, ++ usePlaidEmitter, ++ PlaidLink, ++} from './PlaidLink'; ++ ++export * from './Types'; ++ ++export default PlaidLink; ++ ++export { ++ PlaidLink, ++ openLink, ++ dismissLink, ++ usePlaidEmitter, ++}; ++ ++// Components ++ ++export { EmbeddedLinkView } from './EmbeddedLink/EmbeddedLinkView'; +\ No newline at end of file diff --git a/patches/react-native-screens+3.29.0+001+initial.patch b/patches/react-native-screens+3.29.0+001+initial.patch new file mode 100644 index 000000000000..dbe65b2abf3f --- /dev/null +++ b/patches/react-native-screens+3.29.0+001+initial.patch @@ -0,0 +1,49 @@ +diff --git a/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt b/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +index d9e0e58..2d946c4 100644 +--- a/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt ++++ b/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +@@ -3,7 +3,6 @@ package com.swmansion.rnscreens + import android.view.ViewGroup + import androidx.annotation.UiThread + import com.facebook.react.bridge.ReactContext +-import com.facebook.react.bridge.ReadableMap + import com.facebook.react.bridge.WritableMap + import com.facebook.react.bridge.WritableNativeMap + import com.facebook.react.uimanager.FabricViewStateManager +@@ -13,6 +12,9 @@ import kotlin.math.abs + abstract class FabricEnabledViewGroup constructor(context: ReactContext?) : ViewGroup(context), FabricViewStateManager.HasFabricViewStateManager { + private val mFabricViewStateManager: FabricViewStateManager = FabricViewStateManager() + ++ private var lastSetWidth = 0f ++ private var lastSetHeight = 0f ++ + override fun getFabricViewStateManager(): FabricViewStateManager { + return mFabricViewStateManager + } +@@ -28,17 +30,16 @@ abstract class FabricEnabledViewGroup constructor(context: ReactContext?) : View + + // Check incoming state values. If they're already the correct value, return early to prevent + // infinite UpdateState/SetState loop. +- val currentState: ReadableMap? = mFabricViewStateManager.getStateData() +- if (currentState != null) { +- val delta = 0.9f +- val stateFrameHeight: Float = if (currentState.hasKey("frameHeight")) currentState.getDouble("frameHeight").toFloat() else 0f +- val stateFrameWidth: Float = if (currentState.hasKey("frameWidth")) currentState.getDouble("frameWidth").toFloat() else 0f +- if (abs(stateFrameWidth - realWidth) < delta && +- abs(stateFrameHeight - realHeight) < delta +- ) { +- return +- } ++ val delta = 0.9f ++ if (abs(lastSetWidth - realWidth) < delta && ++ abs(lastSetHeight - realHeight) < delta ++ ) { ++ return + } ++ ++ lastSetWidth = realWidth ++ lastSetHeight = realHeight ++ + mFabricViewStateManager.setState { + val map: WritableMap = WritableNativeMap() + map.putDouble("frameWidth", realWidth.toDouble()) diff --git a/patches/react-native-screens+3.29.0+002+fixLayoutIssues.patch b/patches/react-native-screens+3.29.0+002+fixLayoutIssues.patch new file mode 100644 index 000000000000..9654c9cfcb42 --- /dev/null +++ b/patches/react-native-screens+3.29.0+002+fixLayoutIssues.patch @@ -0,0 +1,214 @@ +diff --git a/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt b/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +index 2d946c4..ccda8f3 100644 +--- a/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt ++++ b/node_modules/react-native-screens/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +@@ -12,38 +12,36 @@ import kotlin.math.abs + abstract class FabricEnabledViewGroup constructor(context: ReactContext?) : ViewGroup(context), FabricViewStateManager.HasFabricViewStateManager { + private val mFabricViewStateManager: FabricViewStateManager = FabricViewStateManager() + +- private var lastSetWidth = 0f +- private var lastSetHeight = 0f ++ private var lastHeaderHeight: Double = 0.0 + + override fun getFabricViewStateManager(): FabricViewStateManager { + return mFabricViewStateManager + } + +- protected fun updateScreenSizeFabric(width: Int, height: Int) { +- updateState(width, height) ++ protected fun updateScreenSizeFabric(width: Int, height: Int, headerHeight: Double) { ++ updateState(width, height, headerHeight) + } + + @UiThread +- fun updateState(width: Int, height: Int) { ++ fun updateState(width: Int, height: Int, headerHeight: Double) { + val realWidth: Float = PixelUtil.toDIPFromPixel(width.toFloat()) + val realHeight: Float = PixelUtil.toDIPFromPixel(height.toFloat()) + + // Check incoming state values. If they're already the correct value, return early to prevent + // infinite UpdateState/SetState loop. +- val delta = 0.9f +- if (abs(lastSetWidth - realWidth) < delta && +- abs(lastSetHeight - realHeight) < delta +- ) { ++ val delta = 0.9 ++ if (abs(lastHeaderHeight - headerHeight) < delta) { + return + } + +- lastSetWidth = realWidth +- lastSetHeight = realHeight ++ lastHeaderHeight = headerHeight + + mFabricViewStateManager.setState { + val map: WritableMap = WritableNativeMap() + map.putDouble("frameWidth", realWidth.toDouble()) + map.putDouble("frameHeight", realHeight.toDouble()) ++ map.putDouble("contentOffsetX", 0.0) ++ map.putDouble("contentOffsetY", headerHeight) + map + } + } +diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt +index a7d28f9..e0b0d8e 100644 +--- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt ++++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt +@@ -72,9 +72,9 @@ class Screen constructor(context: ReactContext?) : FabricEnabledViewGroup(contex + val width = r - l + val height = b - t + +- calculateHeaderHeight() ++ val headerHeight = if (container is ScreenStack) calculateHeaderHeight().first else 0.0 + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { +- updateScreenSizeFabric(width, height) ++ updateScreenSizeFabric(width, height, headerHeight) + } else { + updateScreenSizePaper(width, height) + } +@@ -246,7 +246,7 @@ class Screen constructor(context: ReactContext?) : FabricEnabledViewGroup(contex + mNativeBackButtonDismissalEnabled = enableNativeBackButtonDismissal + } + +- private fun calculateHeaderHeight() { ++ private fun calculateHeaderHeight(): Pair { + val actionBarTv = TypedValue() + val resolvedActionBarSize = context.theme.resolveAttribute(android.R.attr.actionBarSize, actionBarTv, true) + +@@ -265,6 +265,8 @@ class Screen constructor(context: ReactContext?) : FabricEnabledViewGroup(contex + val totalHeight = actionBarHeight + statusBarHeight + UIManagerHelper.getEventDispatcherForReactTag(context as ReactContext, id) + ?.dispatchEvent(HeaderHeightChangeEvent(id, totalHeight)) ++ ++ return actionBarHeight to statusBarHeight + } + + enum class StackPresentation { +diff --git a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +index 67194d3..c1a1b40 100644 +--- a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h ++++ b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +@@ -13,7 +13,7 @@ class RNSScreenComponentDescriptor final + using ConcreteComponentDescriptor::ConcreteComponentDescriptor; + + void adopt(ShadowNode& shadowNode) const override { +- react_native_assert( ++ react_native_assert( + dynamic_cast(&shadowNode)); + auto& screenShadowNode = + static_cast(shadowNode); +@@ -28,10 +28,7 @@ class RNSScreenComponentDescriptor final + shadowNode.getState()); + auto stateData = state->getData(); + +- if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) { +- layoutableShadowNode.setSize( +- Size{stateData.frameSize.width, stateData.frameSize.height}); +- } ++ layoutableShadowNode.setPadding({.bottom = stateData.contentOffset.y}); + + ConcreteComponentDescriptor::adopt(shadowNode); + } +diff --git a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +index ba61ed8..0e3746e 100644 +--- a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp ++++ b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +@@ -5,5 +5,11 @@ namespace react { + + extern const char RNSScreenComponentName[] = "RNSScreen"; + ++Point RNSScreenShadowNode::getContentOriginOffset() const { ++ auto stateData = getStateData(); ++ auto contentOffset = stateData.contentOffset; ++ return {contentOffset.x, contentOffset.y}; ++} ++ + } // namespace react + } // namespace facebook +diff --git a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +index ef25dd1..bbd7599 100644 +--- a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h ++++ b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +@@ -19,9 +19,11 @@ class JSI_EXPORT RNSScreenShadowNode final : public ConcreteViewShadowNode< + public: + using ConcreteViewShadowNode::ConcreteViewShadowNode; + ++ Point getContentOriginOffset() const override; ++ + static ShadowNodeTraits BaseTraits() { + auto traits = ConcreteViewShadowNode::BaseTraits(); +- traits.set(ShadowNodeTraits::Trait::RootNodeKind); ++ // traits.set(ShadowNodeTraits::Trait::RootNodeKind); + return traits; + } + }; +diff --git a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +index 69c77a6..6c3b8ca 100644 +--- a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp ++++ b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +@@ -6,8 +6,8 @@ namespace react { + #ifdef ANDROID + folly::dynamic RNSScreenState::getDynamic() const { + return folly::dynamic::object("frameWidth", frameSize.width)( +- "frameHeight", frameSize.height); +-} ++ "frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)("contentOffsetY", contentOffset.y); ++ } + #endif + + } // namespace react +diff --git a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +index ce09807..e26d411 100644 +--- a/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h ++++ b/node_modules/react-native-screens/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +@@ -17,7 +17,7 @@ class JSI_EXPORT RNSScreenState final { + using Shared = std::shared_ptr; + + RNSScreenState(){}; +- RNSScreenState(Size frameSize_) : frameSize(frameSize_){}; ++ RNSScreenState(Size frameSize_, Point contentOffset_) : frameSize(frameSize_), contentOffset(contentOffset_){}; + + #ifdef ANDROID + RNSScreenState( +@@ -25,10 +25,14 @@ class JSI_EXPORT RNSScreenState final { + folly::dynamic data) + : frameSize(Size{ + (Float)data["frameWidth"].getDouble(), +- (Float)data["frameHeight"].getDouble()}){}; ++ (Float)data["frameHeight"].getDouble()}), ++ contentOffset(Point{ ++ (Float)data["contentOffsetX"].getDouble(), ++ (Float)data["contentOffsetY"].getDouble()}){}; + #endif + + const Size frameSize{}; ++ Point contentOffset; + + #ifdef ANDROID + folly::dynamic getDynamic() const; +diff --git a/node_modules/react-native-screens/ios/RNSScreen.h b/node_modules/react-native-screens/ios/RNSScreen.h +index f1bd9d8..797fc12 100644 +--- a/node_modules/react-native-screens/ios/RNSScreen.h ++++ b/node_modules/react-native-screens/ios/RNSScreen.h +@@ -42,6 +42,7 @@ namespace react = facebook::react; + #ifdef RCT_NEW_ARCH_ENABLED + - (void)setViewToSnapshot:(UIView *)snapshot; + - (void)resetViewToScreen; ++- (CGFloat)calculateHeaderHeightIsModal:(BOOL)isModal; + #endif + + @end +diff --git a/node_modules/react-native-screens/ios/RNSScreen.mm b/node_modules/react-native-screens/ios/RNSScreen.mm +index 4b24cff..8f480ca 100644 +--- a/node_modules/react-native-screens/ios/RNSScreen.mm ++++ b/node_modules/react-native-screens/ios/RNSScreen.mm +@@ -107,7 +107,8 @@ - (void)updateBounds + { + #ifdef RCT_NEW_ARCH_ENABLED + if (_state != nullptr) { +- auto newState = react::RNSScreenState{RCTSizeFromCGSize(self.bounds.size)}; ++ CGFloat headerHeight = [_controller calculateHeaderHeightIsModal:self.isPresentedAsNativeModal]; ++ auto newState = react::RNSScreenState{RCTSizeFromCGSize(self.bounds.size), RCTPointFromCGPoint(CGPointMake(0, headerHeight))}; + _state->updateState(std::move(newState)); + UINavigationController *navctr = _controller.navigationController; + [navctr.view setNeedsLayout]; diff --git a/patches/react-native-screens+3.29.0+003+fixIOSHeaderHeight.patch b/patches/react-native-screens+3.29.0+003+fixIOSHeaderHeight.patch new file mode 100644 index 000000000000..ae162204a692 --- /dev/null +++ b/patches/react-native-screens+3.29.0+003+fixIOSHeaderHeight.patch @@ -0,0 +1,35 @@ +diff --git a/node_modules/react-native-screens/ios/RNSScreen.mm b/node_modules/react-native-screens/ios/RNSScreen.mm +index 8f480ca..4cc5e7b 100644 +--- a/node_modules/react-native-screens/ios/RNSScreen.mm ++++ b/node_modules/react-native-screens/ios/RNSScreen.mm +@@ -108,7 +108,7 @@ - (void)updateBounds + #ifdef RCT_NEW_ARCH_ENABLED + if (_state != nullptr) { + CGFloat headerHeight = [_controller calculateHeaderHeightIsModal:self.isPresentedAsNativeModal]; +- auto newState = react::RNSScreenState{RCTSizeFromCGSize(self.bounds.size), RCTPointFromCGPoint(CGPointMake(0, headerHeight))}; ++ auto newState = react::RNSScreenState{RCTSizeFromCGSize(self.bounds.size), RCTPointFromCGPoint(CGPointMake(0, 0))}; + _state->updateState(std::move(newState)); + UINavigationController *navctr = _controller.navigationController; + [navctr.view setNeedsLayout]; +@@ -1106,17 +1106,11 @@ - (CGFloat)calculateHeaderHeightIsModal:(BOOL)isModal + { + UINavigationController *navctr = [self getVisibleNavigationControllerIsModal:isModal]; + +- // If navigation controller doesn't exists (or it is hidden) we want to handle two possible cases. +- // If there's no navigation controller for the modal, we simply don't want to return header height, as modal possibly +- // does not have header and we don't want to count status bar. If there's no navigation controller for the view we +- // just want to return status bar height (if it's hidden, it will simply return 0). ++ // If there's no navigation controller for the modal (or the navigation bar is hidden), we simply don't want to ++ // return header height, as modal possibly does not have header when navigation controller is nil, ++ // and we don't want to count status bar if navigation bar is hidden (inset could be negative). + if (navctr == nil || navctr.isNavigationBarHidden) { +- if (isModal) { +- return 0; +- } else { +- CGSize statusBarSize = [self getStatusBarHeightIsModal:isModal]; +- return MIN(statusBarSize.width, statusBarSize.height); +- } ++ return 0; + } + + CGFloat navbarHeight = navctr.navigationBar.frame.size.height; diff --git a/patches/react-native-tab-view+3.5.2.patch b/patches/react-native-tab-view+3.5.2.patch new file mode 100644 index 000000000000..ac00788a3bf5 --- /dev/null +++ b/patches/react-native-tab-view+3.5.2.patch @@ -0,0 +1,25 @@ +diff --git a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx +index cb7073e..7d2448b 100644 +--- a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx ++++ b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx +@@ -130,9 +130,10 @@ export function PagerViewAdapter({ + }; + }, []); + ++ const [forceRender, setForceRender] = React.useState(0) + const memoizedPosition = React.useMemo( + () => Animated.add(position, offset), +- [offset, position] ++ [offset, position, forceRender] + ); + + return children({ +@@ -162,6 +163,8 @@ export function PagerViewAdapter({ + onPageSelected={(e) => { + const index = e.nativeEvent.position; + indexRef.current = index; ++ position.setValue(index); ++ setForceRender((fr) => fr+1) + onIndexChange(index); + }} + onPageScrollStateChanged={onPageScrollStateChanged} diff --git a/patches/react-native-vision-camera+4.0.0-beta.13.patch b/patches/react-native-vision-camera+4.0.0-beta.13.patch new file mode 100644 index 000000000000..6a1cd1c74576 --- /dev/null +++ b/patches/react-native-vision-camera+4.0.0-beta.13.patch @@ -0,0 +1,2106 @@ +diff --git a/node_modules/react-native-vision-camera/VisionCamera.podspec b/node_modules/react-native-vision-camera/VisionCamera.podspec +index 3a0e313..357a282 100644 +--- a/node_modules/react-native-vision-camera/VisionCamera.podspec ++++ b/node_modules/react-native-vision-camera/VisionCamera.podspec +@@ -40,6 +40,7 @@ Pod::Spec.new do |s| + # Note how this does not include headers, since those can nameclash. + s.source_files = [ + # Core ++ "ios/VisionCamera.h", + "ios/*.{m,mm,swift}", + "ios/Core/*.{m,mm,swift}", + "ios/Extensions/*.{m,mm,swift}", +@@ -47,6 +48,7 @@ Pod::Spec.new do |s| + "ios/React Utils/*.{m,mm,swift}", + "ios/Types/*.{m,mm,swift}", + "ios/CameraBridge.h", ++ "ios/RNCameraView.h", + + # Frame Processors + hasWorklets ? "ios/Frame Processor/*.{m,mm,swift}" : "", +@@ -66,9 +68,10 @@ Pod::Spec.new do |s| + "ios/**/*.h" + ] + +- s.dependency "React" +- s.dependency "React-Core" +- s.dependency "React-callinvoker" ++ s.pod_target_xcconfig = { ++ "OTHER_SWIFT_FLAGS" => "-DRCT_NEW_ARCH_ENABLED" ++ } ++ install_modules_dependencies(s) + + if hasWorklets + s.dependency "react-native-worklets-core" +diff --git a/node_modules/react-native-vision-camera/android/.editorconfig b/node_modules/react-native-vision-camera/android/.editorconfig +new file mode 100644 +index 0000000..2f08d6d +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/.editorconfig +@@ -0,0 +1,15 @@ ++[*.{kt,kts}] ++indent_style=space ++indent_size=2 ++continuation_indent_size=4 ++insert_final_newline=true ++max_line_length=140 ++ktlint_code_style=android_studio ++ktlint_standard=enabled ++ktlint_experimental=enabled ++ktlint_standard_filename=disabled # dont require PascalCase filenames ++ktlint_standard_no-wildcard-imports=disabled # allow .* imports ++ktlint_function_signature_rule_force_multiline_when_parameter_count_greater_or_equal_than=5 ++ktlint_function_signature_body_expression_wrapping=multiline ++ij_kotlin_allow_trailing_comma_on_call_site=false ++ij_kotlin_allow_trailing_comma=false +diff --git a/node_modules/react-native-vision-camera/android/.project b/node_modules/react-native-vision-camera/android/.project +new file mode 100644 +index 0000000..0e0a1ba +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/.project +@@ -0,0 +1,17 @@ ++ ++ ++ android_ ++ Project android_ created by Buildship. ++ ++ ++ ++ ++ org.eclipse.buildship.core.gradleprojectbuilder ++ ++ ++ ++ ++ ++ org.eclipse.buildship.core.gradleprojectnature ++ ++ +diff --git a/node_modules/react-native-vision-camera/android/build.gradle b/node_modules/react-native-vision-camera/android/build.gradle +index 86e6290..eb59c56 100644 +--- a/node_modules/react-native-vision-camera/android/build.gradle ++++ b/node_modules/react-native-vision-camera/android/build.gradle +@@ -129,6 +129,12 @@ android { + sourceSets { + main { + manifest.srcFile androidManifestPath ++ ++ java { ++ if (!isNewArchitectureEnabled()) { ++ srcDirs += 'oldarch/src/main/java' ++ } ++ } + } + } + +diff --git a/node_modules/react-native-vision-camera/android/gradlew b/node_modules/react-native-vision-camera/android/gradlew +new file mode 100755 +index 0000000..1b6c787 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/gradlew +@@ -0,0 +1,234 @@ ++#!/bin/sh ++ ++# ++# Copyright © 2015-2021 the original authors. ++# ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# https://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++# ++ ++############################################################################## ++# ++# Gradle start up script for POSIX generated by Gradle. ++# ++# Important for running: ++# ++# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is ++# noncompliant, but you have some other compliant shell such as ksh or ++# bash, then to run this script, type that shell name before the whole ++# command line, like: ++# ++# ksh Gradle ++# ++# Busybox and similar reduced shells will NOT work, because this script ++# requires all of these POSIX shell features: ++# * functions; ++# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», ++# «${var#prefix}», «${var%suffix}», and «$( cmd )»; ++# * compound commands having a testable exit status, especially «case»; ++# * various built-in commands including «command», «set», and «ulimit». ++# ++# Important for patching: ++# ++# (2) This script targets any POSIX shell, so it avoids extensions provided ++# by Bash, Ksh, etc; in particular arrays are avoided. ++# ++# The "traditional" practice of packing multiple parameters into a ++# space-separated string is a well documented source of bugs and security ++# problems, so this is (mostly) avoided, by progressively accumulating ++# options in "$@", and eventually passing that to Java. ++# ++# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, ++# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; ++# see the in-line comments for details. ++# ++# There are tweaks for specific operating systems such as AIX, CygWin, ++# Darwin, MinGW, and NonStop. ++# ++# (3) This script is generated from the Groovy template ++# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt ++# within the Gradle project. ++# ++# You can find Gradle at https://github.com/gradle/gradle/. ++# ++############################################################################## ++ ++# Attempt to set APP_HOME ++ ++# Resolve links: $0 may be a link ++app_path=$0 ++ ++# Need this for daisy-chained symlinks. ++while ++ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path ++ [ -h "$app_path" ] ++do ++ ls=$( ls -ld "$app_path" ) ++ link=${ls#*' -> '} ++ case $link in #( ++ /*) app_path=$link ;; #( ++ *) app_path=$APP_HOME$link ;; ++ esac ++done ++ ++APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit ++ ++APP_NAME="Gradle" ++APP_BASE_NAME=${0##*/} ++ ++# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. ++DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' ++ ++# Use the maximum available, or set MAX_FD != -1 to use that value. ++MAX_FD=maximum ++ ++warn () { ++ echo "$*" ++} >&2 ++ ++die () { ++ echo ++ echo "$*" ++ echo ++ exit 1 ++} >&2 ++ ++# OS specific support (must be 'true' or 'false'). ++cygwin=false ++msys=false ++darwin=false ++nonstop=false ++case "$( uname )" in #( ++ CYGWIN* ) cygwin=true ;; #( ++ Darwin* ) darwin=true ;; #( ++ MSYS* | MINGW* ) msys=true ;; #( ++ NONSTOP* ) nonstop=true ;; ++esac ++ ++CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar ++ ++ ++# Determine the Java command to use to start the JVM. ++if [ -n "$JAVA_HOME" ] ; then ++ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then ++ # IBM's JDK on AIX uses strange locations for the executables ++ JAVACMD=$JAVA_HOME/jre/sh/java ++ else ++ JAVACMD=$JAVA_HOME/bin/java ++ fi ++ if [ ! -x "$JAVACMD" ] ; then ++ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME ++ ++Please set the JAVA_HOME variable in your environment to match the ++location of your Java installation." ++ fi ++else ++ JAVACMD=java ++ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. ++ ++Please set the JAVA_HOME variable in your environment to match the ++location of your Java installation." ++fi ++ ++# Increase the maximum file descriptors if we can. ++if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then ++ case $MAX_FD in #( ++ max*) ++ MAX_FD=$( ulimit -H -n ) || ++ warn "Could not query maximum file descriptor limit" ++ esac ++ case $MAX_FD in #( ++ '' | soft) :;; #( ++ *) ++ ulimit -n "$MAX_FD" || ++ warn "Could not set maximum file descriptor limit to $MAX_FD" ++ esac ++fi ++ ++# Collect all arguments for the java command, stacking in reverse order: ++# * args from the command line ++# * the main class name ++# * -classpath ++# * -D...appname settings ++# * --module-path (only if needed) ++# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. ++ ++# For Cygwin or MSYS, switch paths to Windows format before running java ++if "$cygwin" || "$msys" ; then ++ APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) ++ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) ++ ++ JAVACMD=$( cygpath --unix "$JAVACMD" ) ++ ++ # Now convert the arguments - kludge to limit ourselves to /bin/sh ++ for arg do ++ if ++ case $arg in #( ++ -*) false ;; # don't mess with options #( ++ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath ++ [ -e "$t" ] ;; #( ++ *) false ;; ++ esac ++ then ++ arg=$( cygpath --path --ignore --mixed "$arg" ) ++ fi ++ # Roll the args list around exactly as many times as the number of ++ # args, so each arg winds up back in the position where it started, but ++ # possibly modified. ++ # ++ # NB: a `for` loop captures its iteration list before it begins, so ++ # changing the positional parameters here affects neither the number of ++ # iterations, nor the values presented in `arg`. ++ shift # remove old arg ++ set -- "$@" "$arg" # push replacement arg ++ done ++fi ++ ++# Collect all arguments for the java command; ++# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of ++# shell script including quotes and variable substitutions, so put them in ++# double quotes to make sure that they get re-expanded; and ++# * put everything else in single quotes, so that it's not re-expanded. ++ ++set -- \ ++ "-Dorg.gradle.appname=$APP_BASE_NAME" \ ++ -classpath "$CLASSPATH" \ ++ org.gradle.wrapper.GradleWrapperMain \ ++ "$@" ++ ++# Use "xargs" to parse quoted args. ++# ++# With -n1 it outputs one arg per line, with the quotes and backslashes removed. ++# ++# In Bash we could simply go: ++# ++# readarray ARGS < <( xargs -n1 <<<"$var" ) && ++# set -- "${ARGS[@]}" "$@" ++# ++# but POSIX shell has neither arrays nor command substitution, so instead we ++# post-process each arg (as a line of input to sed) to backslash-escape any ++# character that might be a shell metacharacter, then use eval to reverse ++# that process (while maintaining the separation between arguments), and wrap ++# the whole thing up as a single "set" statement. ++# ++# This will of course break if any of these variables contains a newline or ++# an unmatched quote. ++# ++ ++eval "set -- $( ++ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | ++ xargs -n1 | ++ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | ++ tr '\n' ' ' ++ )" '"$@"' ++ ++exec "$JAVACMD" "$@" +diff --git a/node_modules/react-native-vision-camera/android/gradlew.bat b/node_modules/react-native-vision-camera/android/gradlew.bat +new file mode 100644 +index 0000000..107acd3 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/gradlew.bat +@@ -0,0 +1,89 @@ ++@rem ++@rem Copyright 2015 the original author or authors. ++@rem ++@rem Licensed under the Apache License, Version 2.0 (the "License"); ++@rem you may not use this file except in compliance with the License. ++@rem You may obtain a copy of the License at ++@rem ++@rem https://www.apache.org/licenses/LICENSE-2.0 ++@rem ++@rem Unless required by applicable law or agreed to in writing, software ++@rem distributed under the License is distributed on an "AS IS" BASIS, ++@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++@rem See the License for the specific language governing permissions and ++@rem limitations under the License. ++@rem ++ ++@if "%DEBUG%" == "" @echo off ++@rem ########################################################################## ++@rem ++@rem Gradle startup script for Windows ++@rem ++@rem ########################################################################## ++ ++@rem Set local scope for the variables with windows NT shell ++if "%OS%"=="Windows_NT" setlocal ++ ++set DIRNAME=%~dp0 ++if "%DIRNAME%" == "" set DIRNAME=. ++set APP_BASE_NAME=%~n0 ++set APP_HOME=%DIRNAME% ++ ++@rem Resolve any "." and ".." in APP_HOME to make it shorter. ++for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi ++ ++@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. ++set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" ++ ++@rem Find java.exe ++if defined JAVA_HOME goto findJavaFromJavaHome ++ ++set JAVA_EXE=java.exe ++%JAVA_EXE% -version >NUL 2>&1 ++if "%ERRORLEVEL%" == "0" goto execute ++ ++echo. ++echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. ++echo. ++echo Please set the JAVA_HOME variable in your environment to match the ++echo location of your Java installation. ++ ++goto fail ++ ++:findJavaFromJavaHome ++set JAVA_HOME=%JAVA_HOME:"=% ++set JAVA_EXE=%JAVA_HOME%/bin/java.exe ++ ++if exist "%JAVA_EXE%" goto execute ++ ++echo. ++echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% ++echo. ++echo Please set the JAVA_HOME variable in your environment to match the ++echo location of your Java installation. ++ ++goto fail ++ ++:execute ++@rem Setup the command line ++ ++set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar ++ ++ ++@rem Execute Gradle ++"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* ++ ++:end ++@rem End local scope for the variables with windows NT shell ++if "%ERRORLEVEL%"=="0" goto mainEnd ++ ++:fail ++rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of ++rem the _cmd.exe /c_ return code! ++if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 ++exit /b 1 ++ ++:mainEnd ++if "%OS%"=="Windows_NT" endlocal ++ ++:omega +diff --git a/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerDelegate.java b/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerDelegate.java +new file mode 100644 +index 0000000..afafa8a +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerDelegate.java +@@ -0,0 +1,113 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaDelegate.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++import androidx.annotation.Nullable; ++import com.facebook.react.bridge.ReadableMap; ++import com.facebook.react.uimanager.BaseViewManagerDelegate; ++import com.facebook.react.uimanager.BaseViewManagerInterface; ++ ++public class CameraViewManagerDelegate & CameraViewManagerInterface> extends BaseViewManagerDelegate { ++ public CameraViewManagerDelegate(U viewManager) { ++ super(viewManager); ++ } ++ @Override ++ public void setProperty(T view, String propName, @Nullable Object value) { ++ switch (propName) { ++ case "enableGpuBuffers": ++ mViewManager.setEnableGpuBuffers(view, value == null ? false : (boolean) value); ++ break; ++ case "androidPreviewViewType": ++ mViewManager.setAndroidPreviewViewType(view, value == null ? null : (String) value); ++ break; ++ case "codeScannerOptions": ++ mViewManager.setCodeScannerOptions(view, (ReadableMap) value); ++ break; ++ case "cameraId": ++ mViewManager.setCameraId(view, value == null ? null : (String) value); ++ break; ++ case "enableFrameProcessor": ++ mViewManager.setEnableFrameProcessor(view, value == null ? false : (boolean) value); ++ break; ++ case "enableLocation": ++ mViewManager.setEnableLocation(view, value == null ? false : (boolean) value); ++ break; ++ case "enableBufferCompression": ++ mViewManager.setEnableBufferCompression(view, value == null ? false : (boolean) value); ++ break; ++ case "photoQualityBalance": ++ mViewManager.setPhotoQualityBalance(view, value == null ? null : (String) value); ++ break; ++ case "isActive": ++ mViewManager.setIsActive(view, value == null ? false : (boolean) value); ++ break; ++ case "photo": ++ mViewManager.setPhoto(view, value == null ? false : (boolean) value); ++ break; ++ case "video": ++ mViewManager.setVideo(view, value == null ? false : (boolean) value); ++ break; ++ case "audio": ++ mViewManager.setAudio(view, value == null ? false : (boolean) value); ++ break; ++ case "torch": ++ mViewManager.setTorch(view, value == null ? null : (String) value); ++ break; ++ case "zoom": ++ mViewManager.setZoom(view, value == null ? 0f : ((Double) value).doubleValue()); ++ break; ++ case "exposure": ++ mViewManager.setExposure(view, value == null ? 0f : ((Double) value).doubleValue()); ++ break; ++ case "enableZoomGesture": ++ mViewManager.setEnableZoomGesture(view, value == null ? false : (boolean) value); ++ break; ++ case "enableFpsGraph": ++ mViewManager.setEnableFpsGraph(view, value == null ? false : (boolean) value); ++ break; ++ case "resizeMode": ++ mViewManager.setResizeMode(view, value == null ? null : (String) value); ++ break; ++ case "format": ++ mViewManager.setFormat(view, (ReadableMap) value); ++ break; ++ case "pixelFormat": ++ mViewManager.setPixelFormat(view, value == null ? null : (String) value); ++ break; ++ case "fps": ++ mViewManager.setFps(view, value == null ? 0 : ((Double) value).intValue()); ++ break; ++ case "videoHdr": ++ mViewManager.setVideoHdr(view, value == null ? false : (boolean) value); ++ break; ++ case "photoHdr": ++ mViewManager.setPhotoHdr(view, value == null ? false : (boolean) value); ++ break; ++ case "lowLightBoost": ++ mViewManager.setLowLightBoost(view, value == null ? false : (boolean) value); ++ break; ++ case "videoStabilizationMode": ++ mViewManager.setVideoStabilizationMode(view, value == null ? null : (String) value); ++ break; ++ case "enableDepthData": ++ mViewManager.setEnableDepthData(view, value == null ? false : (boolean) value); ++ break; ++ case "enablePortraitEffectsMatteDelivery": ++ mViewManager.setEnablePortraitEffectsMatteDelivery(view, value == null ? false : (boolean) value); ++ break; ++ case "orientation": ++ mViewManager.setOrientation(view, value == null ? null : (String) value); ++ break; ++ default: ++ super.setProperty(view, propName, value); ++ } ++ } ++} +diff --git a/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerInterface.java b/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerInterface.java +new file mode 100644 +index 0000000..94079b2 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/oldarch/src/main/java/com/facebook/react/viewmanagers/CameraViewManagerInterface.java +@@ -0,0 +1,45 @@ ++/** ++* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). ++* ++* Do not edit this file as changes may cause incorrect behavior and will be lost ++* once the code is regenerated. ++* ++* @generated by codegen project: GeneratePropsJavaInterface.js ++*/ ++ ++package com.facebook.react.viewmanagers; ++ ++import android.view.View; ++import androidx.annotation.Nullable; ++import com.facebook.react.bridge.ReadableMap; ++ ++public interface CameraViewManagerInterface { ++ void setEnableGpuBuffers(T view, boolean value); ++ void setAndroidPreviewViewType(T view, @Nullable String value); ++ void setCodeScannerOptions(T view, @Nullable ReadableMap value); ++ void setCameraId(T view, @Nullable String value); ++ void setEnableFrameProcessor(T view, boolean value); ++ void setEnableLocation(T view, boolean value); ++ void setEnableBufferCompression(T view, boolean value); ++ void setPhotoQualityBalance(T view, @Nullable String value); ++ void setIsActive(T view, boolean value); ++ void setPhoto(T view, boolean value); ++ void setVideo(T view, boolean value); ++ void setAudio(T view, boolean value); ++ void setTorch(T view, @Nullable String value); ++ void setZoom(T view, double value); ++ void setExposure(T view, double value); ++ void setEnableZoomGesture(T view, boolean value); ++ void setEnableFpsGraph(T view, boolean value); ++ void setResizeMode(T view, @Nullable String value); ++ void setFormat(T view, @Nullable ReadableMap value); ++ void setPixelFormat(T view, @Nullable String value); ++ void setFps(T view, int value); ++ void setVideoHdr(T view, boolean value); ++ void setPhotoHdr(T view, boolean value); ++ void setLowLightBoost(T view, boolean value); ++ void setVideoStabilizationMode(T view, @Nullable String value); ++ void setEnableDepthData(T view, boolean value); ++ void setEnablePortraitEffectsMatteDelivery(T view, boolean value); ++ void setOrientation(T view, @Nullable String value); ++} +diff --git a/node_modules/react-native-vision-camera/android/settings.gradle b/node_modules/react-native-vision-camera/android/settings.gradle +new file mode 100644 +index 0000000..56a6c3d +--- /dev/null ++++ b/node_modules/react-native-vision-camera/android/settings.gradle +@@ -0,0 +1,3 @@ ++rootProject.name = 'VisionCamera' ++ ++include ':VisionCamera' +diff --git a/node_modules/react-native-vision-camera/android/src/main/.DS_Store b/node_modules/react-native-vision-camera/android/src/main/.DS_Store +new file mode 100644 +index 0000000..63b728b +Binary files /dev/null and b/node_modules/react-native-vision-camera/android/src/main/.DS_Store differ +diff --git a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt +index a7c8358..a935ef6 100644 +--- a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt ++++ b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraDevicesManager.kt +@@ -20,7 +20,7 @@ import kotlinx.coroutines.launch + + class CameraDevicesManager(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { + companion object { +- private const val TAG = "CameraDevices" ++ public const val TAG = "CameraDevices" + } + private val executor = CameraQueues.cameraExecutor + private val coroutineScope = CoroutineScope(executor.asCoroutineDispatcher()) +diff --git a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraPackage.kt b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraPackage.kt +index 25e1f55..33b9dd3 100644 +--- a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraPackage.kt ++++ b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraPackage.kt +@@ -1,11 +1,14 @@ + package com.mrousavy.camera + +-import com.facebook.react.ReactPackage ++import com.facebook.react.TurboReactPackage + import com.facebook.react.bridge.NativeModule + import com.facebook.react.bridge.ReactApplicationContext ++import com.facebook.react.module.model.ReactModuleInfo ++import com.facebook.react.module.model.ReactModuleInfoProvider + import com.facebook.react.uimanager.ViewManager + +-class CameraPackage : ReactPackage { ++ ++class CameraPackage : TurboReactPackage() { + override fun createNativeModules(reactContext: ReactApplicationContext): List = + listOf( + CameraViewModule(reactContext), +@@ -13,4 +16,39 @@ class CameraPackage : ReactPackage { + ) + + override fun createViewManagers(reactContext: ReactApplicationContext): List> = listOf(CameraViewManager()) ++ ++ override fun getModule(name: String, context: ReactApplicationContext): NativeModule? { ++ return when (name) { ++ CameraViewModule.TAG -> CameraViewModule(context) ++ CameraDevicesManager.TAG -> CameraDevicesManager(context) ++ else -> null ++ } ++ } ++ ++ override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { ++ return ReactModuleInfoProvider { ++ val moduleInfos: MutableMap = HashMap() ++ ++ moduleInfos[CameraViewModule.TAG] = ReactModuleInfo( ++ CameraViewModule.TAG, ++ CameraViewModule.TAG, ++ false, // canOverrideExistingModule ++ true, // needsEagerInit ++ true, // hasConstants ++ false, // isCxxModule ++ false // isTurboModule ++ ) ++ ++ moduleInfos[CameraDevicesManager.TAG] = ReactModuleInfo( ++ CameraDevicesManager.TAG, ++ CameraDevicesManager.TAG, ++ false, // canOverrideExistingModule ++ true, // needsEagerInit ++ true, // hasConstants ++ false, // isCxxModule ++ false // isTurboModule ++ ) ++ moduleInfos ++ } ++ } + } +diff --git a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraViewManager.kt b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraViewManager.kt +index f2b284c..e348e5c 100644 +--- a/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraViewManager.kt ++++ b/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/CameraViewManager.kt +@@ -4,7 +4,10 @@ import com.facebook.react.bridge.ReadableMap + import com.facebook.react.common.MapBuilder + import com.facebook.react.uimanager.ThemedReactContext + import com.facebook.react.uimanager.ViewGroupManager ++import com.facebook.react.uimanager.ViewManagerDelegate + import com.facebook.react.uimanager.annotations.ReactProp ++import com.facebook.react.viewmanagers.CameraViewManagerDelegate ++import com.facebook.react.viewmanagers.CameraViewManagerInterface + import com.mrousavy.camera.types.CameraDeviceFormat + import com.mrousavy.camera.types.CodeScannerOptions + import com.mrousavy.camera.types.Orientation +@@ -16,10 +19,19 @@ import com.mrousavy.camera.types.Torch + import com.mrousavy.camera.types.VideoStabilizationMode + + @Suppress("unused") +-class CameraViewManager : ViewGroupManager() { ++class CameraViewManager : ViewGroupManager(), CameraViewManagerInterface { + companion object { + const val TAG = "CameraView" + } ++ ++ private val mDelegate: ViewManagerDelegate ++ ++ init { ++ mDelegate = CameraViewManagerDelegate(this) ++ } ++ ++ override fun getDelegate() = mDelegate ++ + public override fun createViewInstance(context: ThemedReactContext): CameraView = CameraView(context) + + override fun onAfterUpdateTransaction(view: CameraView) { +@@ -46,37 +58,37 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "cameraId") +- fun setCameraId(view: CameraView, cameraId: String) { ++ override fun setCameraId(view: CameraView, cameraId: String?) { + view.cameraId = cameraId + } + + @ReactProp(name = "photo") +- fun setPhoto(view: CameraView, photo: Boolean) { ++ override fun setPhoto(view: CameraView, photo: Boolean) { + view.photo = photo + } + + @ReactProp(name = "video") +- fun setVideo(view: CameraView, video: Boolean) { ++ override fun setVideo(view: CameraView, video: Boolean) { + view.video = video + } + + @ReactProp(name = "audio") +- fun setAudio(view: CameraView, audio: Boolean) { ++ override fun setAudio(view: CameraView, audio: Boolean) { + view.audio = audio + } + + @ReactProp(name = "enableLocation") +- fun setEnableLocation(view: CameraView, enableLocation: Boolean) { ++ override fun setEnableLocation(view: CameraView, enableLocation: Boolean) { + view.enableLocation = enableLocation + } + + @ReactProp(name = "enableFrameProcessor") +- fun setEnableFrameProcessor(view: CameraView, enableFrameProcessor: Boolean) { ++ override fun setEnableFrameProcessor(view: CameraView, enableFrameProcessor: Boolean) { + view.enableFrameProcessor = enableFrameProcessor + } + + @ReactProp(name = "pixelFormat") +- fun setPixelFormat(view: CameraView, pixelFormat: String?) { ++ override fun setPixelFormat(view: CameraView, pixelFormat: String?) { + if (pixelFormat != null) { + val newPixelFormat = PixelFormat.fromUnionValue(pixelFormat) + view.pixelFormat = newPixelFormat +@@ -86,27 +98,27 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "enableDepthData") +- fun setEnableDepthData(view: CameraView, enableDepthData: Boolean) { ++ override fun setEnableDepthData(view: CameraView, enableDepthData: Boolean) { + view.enableDepthData = enableDepthData + } + + @ReactProp(name = "enableZoomGesture") +- fun setEnableZoomGesture(view: CameraView, enableZoomGesture: Boolean) { ++ override fun setEnableZoomGesture(view: CameraView, enableZoomGesture: Boolean) { + view.enableZoomGesture = enableZoomGesture + } + + @ReactProp(name = "enableFpsGraph") +- fun setEnableFpsGraph(view: CameraView, enableFpsGraph: Boolean) { ++ override fun setEnableFpsGraph(view: CameraView, enableFpsGraph: Boolean) { + view.enableFpsGraph = enableFpsGraph + } + + @ReactProp(name = "enableGpuBuffers") +- fun setEnableGpuBuffers(view: CameraView, enableGpuBuffers: Boolean) { ++ override fun setEnableGpuBuffers(view: CameraView, enableGpuBuffers: Boolean) { + view.enableGpuBuffers = enableGpuBuffers + } + + @ReactProp(name = "videoStabilizationMode") +- fun setVideoStabilizationMode(view: CameraView, videoStabilizationMode: String?) { ++ override fun setVideoStabilizationMode(view: CameraView, videoStabilizationMode: String?) { + if (videoStabilizationMode != null) { + val newMode = VideoStabilizationMode.fromUnionValue(videoStabilizationMode) + view.videoStabilizationMode = newMode +@@ -116,12 +128,12 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "enablePortraitEffectsMatteDelivery") +- fun setEnablePortraitEffectsMatteDelivery(view: CameraView, enablePortraitEffectsMatteDelivery: Boolean) { ++ override fun setEnablePortraitEffectsMatteDelivery(view: CameraView, enablePortraitEffectsMatteDelivery: Boolean) { + view.enablePortraitEffectsMatteDelivery = enablePortraitEffectsMatteDelivery + } + + @ReactProp(name = "format") +- fun setFormat(view: CameraView, format: ReadableMap?) { ++ override fun setFormat(view: CameraView, format: ReadableMap?) { + if (format != null) { + val newFormat = CameraDeviceFormat.fromJSValue(format) + view.format = newFormat +@@ -131,7 +143,7 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "resizeMode") +- fun setResizeMode(view: CameraView, resizeMode: String?) { ++ override fun setResizeMode(view: CameraView, resizeMode: String?) { + if (resizeMode != null) { + val newMode = ResizeMode.fromUnionValue(resizeMode) + view.resizeMode = newMode +@@ -141,7 +153,7 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "androidPreviewViewType") +- fun setAndroidPreviewViewType(view: CameraView, androidPreviewViewType: String?) { ++ override fun setAndroidPreviewViewType(view: CameraView, androidPreviewViewType: String?) { + if (androidPreviewViewType != null) { + val newMode = PreviewViewType.fromUnionValue(androidPreviewViewType) + view.androidPreviewViewType = newMode +@@ -154,17 +166,17 @@ class CameraViewManager : ViewGroupManager() { + // We're treating -1 as "null" here, because when I make the fps parameter + // of type "Int?" the react bridge throws an error. + @ReactProp(name = "fps", defaultInt = -1) +- fun setFps(view: CameraView, fps: Int) { ++ override fun setFps(view: CameraView, fps: Int) { + view.fps = if (fps > 0) fps else null + } + + @ReactProp(name = "photoHdr") +- fun setPhotoHdr(view: CameraView, photoHdr: Boolean) { ++ override fun setPhotoHdr(view: CameraView, photoHdr: Boolean) { + view.photoHdr = photoHdr + } + + @ReactProp(name = "photoQualityBalance") +- fun setPhotoQualityBalance(view: CameraView, photoQualityBalance: String?) { ++ override fun setPhotoQualityBalance(view: CameraView, photoQualityBalance: String?) { + if (photoQualityBalance != null) { + val newMode = QualityBalance.fromUnionValue(photoQualityBalance) + view.photoQualityBalance = newMode +@@ -174,22 +186,22 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "videoHdr") +- fun setVideoHdr(view: CameraView, videoHdr: Boolean) { ++ override fun setVideoHdr(view: CameraView, videoHdr: Boolean) { + view.videoHdr = videoHdr + } + + @ReactProp(name = "lowLightBoost") +- fun setLowLightBoost(view: CameraView, lowLightBoost: Boolean) { ++ override fun setLowLightBoost(view: CameraView, lowLightBoost: Boolean) { + view.lowLightBoost = lowLightBoost + } + + @ReactProp(name = "isActive") +- fun setIsActive(view: CameraView, isActive: Boolean) { ++ override fun setIsActive(view: CameraView, isActive: Boolean) { + view.isActive = isActive + } + + @ReactProp(name = "torch") +- fun setTorch(view: CameraView, torch: String?) { ++ override fun setTorch(view: CameraView, torch: String?) { + if (torch != null) { + val newMode = Torch.fromUnionValue(torch) + view.torch = newMode +@@ -199,17 +211,17 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "zoom") +- fun setZoom(view: CameraView, zoom: Double) { ++ override fun setZoom(view: CameraView, zoom: Double) { + view.zoom = zoom.toFloat() + } + + @ReactProp(name = "exposure") +- fun setExposure(view: CameraView, exposure: Double) { ++ override fun setExposure(view: CameraView, exposure: Double) { + view.exposure = exposure + } + + @ReactProp(name = "orientation") +- fun setOrientation(view: CameraView, orientation: String?) { ++ override fun setOrientation(view: CameraView, orientation: String?) { + if (orientation != null) { + val newMode = Orientation.fromUnionValue(orientation) + view.orientation = newMode +@@ -219,7 +231,7 @@ class CameraViewManager : ViewGroupManager() { + } + + @ReactProp(name = "codeScannerOptions") +- fun setCodeScanner(view: CameraView, codeScannerOptions: ReadableMap?) { ++ override fun setCodeScannerOptions(view: CameraView, codeScannerOptions: ReadableMap?) { + if (codeScannerOptions != null) { + val newCodeScannerOptions = CodeScannerOptions.fromJSValue(codeScannerOptions) + view.codeScannerOptions = newCodeScannerOptions +@@ -227,4 +239,8 @@ class CameraViewManager : ViewGroupManager() { + view.codeScannerOptions = null + } + } ++ ++ override fun setEnableBufferCompression(view: CameraView?, value: Boolean) { ++ // ios only ++ } + } +diff --git a/node_modules/react-native-vision-camera/ios/.swift-version b/node_modules/react-native-vision-camera/ios/.swift-version +new file mode 100644 +index 0000000..ef425ca +--- /dev/null ++++ b/node_modules/react-native-vision-camera/ios/.swift-version +@@ -0,0 +1 @@ ++5.2 +diff --git a/node_modules/react-native-vision-camera/ios/.swiftformat b/node_modules/react-native-vision-camera/ios/.swiftformat +new file mode 100644 +index 0000000..95e71c1 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/ios/.swiftformat +@@ -0,0 +1,12 @@ ++--allman false ++--indent 2 ++--exclude Pods,Generated ++ ++--disable andOperator ++--disable redundantReturn ++--disable wrapMultilineStatementBraces ++--disable organizeDeclarations ++ ++--enable markTypes ++ ++--enable isEmpty +diff --git a/node_modules/react-native-vision-camera/ios/.swiftlint.yml b/node_modules/react-native-vision-camera/ios/.swiftlint.yml +new file mode 100644 +index 0000000..6999c33 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/ios/.swiftlint.yml +@@ -0,0 +1,52 @@ ++disabled_rules: ++ - identifier_name ++ - trailing_comma ++ - todo ++ - type_body_length ++ - cyclomatic_complexity ++ - function_body_length ++ - for_where ++opt_in_rules: ++ - contains_over_filter_count ++ - contains_over_filter_is_empty ++ - contains_over_first_not_nil ++ - contains_over_range_nil_comparison ++ - empty_collection_literal ++ - empty_count ++ - empty_string ++ - first_where ++ - flatmap_over_map_reduce ++ - last_where ++ - reduce_boolean ++ - reduce_into ++ - yoda_condition ++ - vertical_whitespace_opening_braces ++ - vertical_whitespace_closing_braces ++ - vertical_parameter_alignment_on_call ++ - untyped_error_in_catch ++ - unowned_variable_capture ++ - unavailable_function ++ - switch_case_on_newline ++ - static_operator ++ - strict_fileprivate ++ - sorted_imports ++ - sorted_first_last ++ - required_enum_case ++ - redundant_type_annotation ++ - redundant_nil_coalescing ++ - attributes ++ - convenience_type ++analyzer_rules: ++ - explicit_self ++ - unused_declaration ++ - unused_import ++ ++excluded: # paths to ignore during linting. Takes precedence over `included`. ++ - Pods ++ ++# Adjust rule numbers ++line_length: 160 ++file_length: 500 ++ ++# reporter type (xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging) ++reporter: "xcode" +diff --git a/node_modules/react-native-vision-camera/ios/CameraView.swift b/node_modules/react-native-vision-camera/ios/CameraView.swift +index 1aca0c6..cbb4849 100644 +--- a/node_modules/react-native-vision-camera/ios/CameraView.swift ++++ b/node_modules/react-native-vision-camera/ios/CameraView.swift +@@ -23,39 +23,42 @@ import UIKit + public final class CameraView: UIView, CameraSessionDelegate { + // pragma MARK: React Properties + // props that require reconfiguring +- @objc var cameraId: NSString? +- @objc var enableDepthData = false +- @objc var enablePortraitEffectsMatteDelivery = false +- @objc var enableBufferCompression = false ++ @objc public var cameraId: NSString? ++ @objc public var enableDepthData = false ++ @objc public var enablePortraitEffectsMatteDelivery = false ++ @objc public var enableBufferCompression = false + // use cases +- @objc var photo = false +- @objc var video = false +- @objc var audio = false +- @objc var enableFrameProcessor = false +- @objc var codeScannerOptions: NSDictionary? +- @objc var pixelFormat: NSString? +- @objc var enableLocation = false ++ @objc public var photo = false ++ @objc public var video = false ++ @objc public var audio = false ++ @objc public var enableFrameProcessor = false ++ @objc public var codeScannerOptions: NSDictionary? ++ @objc public var pixelFormat: NSString? ++ @objc public var enableLocation = false + // props that require format reconfiguring +- @objc var format: NSDictionary? +- @objc var fps: NSNumber? +- @objc var videoHdr = false +- @objc var photoHdr = false +- @objc var photoQualityBalance: NSString? +- @objc var lowLightBoost = false +- @objc var orientation: NSString? ++ @objc public var format: NSDictionary? ++ @objc public var fps: NSNumber? ++ @objc public var videoHdr = false ++ @objc public var photoHdr = false ++ @objc public var photoQualityBalance: NSString? ++ @objc public var lowLightBoost = false ++ @objc public var orientation: NSString? + // other props +- @objc var isActive = false +- @objc var torch = "off" +- @objc var zoom: NSNumber = 1.0 // in "factor" +- @objc var exposure: NSNumber = 1.0 +- @objc var enableFpsGraph = false +- @objc var videoStabilizationMode: NSString? +- @objc var resizeMode: NSString = "cover" { ++ @objc public var isActive = false ++ @objc public var torch = "off" ++ @objc public var zoom: NSNumber = 1.0 // in "factor" ++ @objc public var exposure: NSNumber = 1.0 ++ @objc public var enableFpsGraph = false ++ @objc public var videoStabilizationMode: NSString? ++ @objc public var resizeMode: NSString = "cover" { + didSet { + let parsed = try? ResizeMode(jsValue: resizeMode as String) + previewView.resizeMode = parsed ?? .cover + } + } ++#if RCT_NEW_ARCH_ENABLED ++ @objc public var delegate: RNCameraViewDirectEventDelegate? ++#else + + // events + @objc var onInitialized: RCTDirectEventBlock? +@@ -65,8 +68,9 @@ public final class CameraView: UIView, CameraSessionDelegate { + @objc var onShutter: RCTDirectEventBlock? + @objc var onViewReady: RCTDirectEventBlock? + @objc var onCodeScanned: RCTDirectEventBlock? ++#endif + // zoom +- @objc var enableZoomGesture = false { ++ @objc public var enableZoomGesture = false { + didSet { + if enableZoomGesture { + addPinchGestureRecognizer() +@@ -117,7 +121,14 @@ public final class CameraView: UIView, CameraSessionDelegate { + if newSuperview != nil { + if !isMounted { + isMounted = true +- onViewReady?(nil) ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onViewReady() ++#else ++ onViewReady?(nil) ++#endif + } + } + } +@@ -287,10 +298,6 @@ public final class CameraView: UIView, CameraSessionDelegate { + + func onError(_ error: CameraError) { + ReactLogger.log(level: .error, message: "Invoking onError(): \(error.message)") +- guard let onError = onError else { +- return +- } +- + var causeDictionary: [String: Any]? + if case let .unknown(_, cause) = error, + let cause = cause { +@@ -301,44 +308,86 @@ public final class CameraView: UIView, CameraSessionDelegate { + "details": cause.userInfo, + ] + } ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onError(error:[ ++ "code": error.code, ++ "message": error.message, ++ "cause": causeDictionary ?? NSNull(), ++ ]) ++#else ++guard let onError = onError else { return } + onError([ + "code": error.code, + "message": error.message, + "cause": causeDictionary ?? NSNull(), + ]) ++#endif + } + + func onSessionInitialized() { + ReactLogger.log(level: .info, message: "Camera initialized!") ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onInitialized() ++#else + guard let onInitialized = onInitialized else { + return + } + onInitialized([:]) ++#endif + } + + func onCameraStarted() { + ReactLogger.log(level: .info, message: "Camera started!") ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onStarted() ++#else + guard let onStarted = onStarted else { + return + } + onStarted([:]) ++#endif + } + + func onCameraStopped() { + ReactLogger.log(level: .info, message: "Camera stopped!") ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onStopped() ++#else + guard let onStopped = onStopped else { + return + } + onStopped([:]) ++#endif + } + + func onCaptureShutter(shutterType: ShutterType) { ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onShutter(message:[ ++ "type": shutterType.jsValue, ++ ]) ++#else + guard let onShutter = onShutter else { + return + } + onShutter([ + "type": shutterType.jsValue, + ]) ++#endif + } + + func onFrame(sampleBuffer: CMSampleBuffer) { +@@ -365,6 +414,15 @@ public final class CameraView: UIView, CameraSessionDelegate { + } + + func onCodeScanned(codes: [CameraSession.Code], scannerFrame: CameraSession.CodeScannerFrame) { ++#if RCT_NEW_ARCH_ENABLED ++ guard let delegate = delegate else { ++ return ++ } ++ delegate.onCodeScanned(message:[ ++ "codes": codes.map { $0.toJSValue() }, ++ "frame": scannerFrame.toJSValue(), ++ ]) ++#else + guard let onCodeScanned = onCodeScanned else { + return + } +@@ -372,6 +430,7 @@ public final class CameraView: UIView, CameraSessionDelegate { + "codes": codes.map { $0.toJSValue() }, + "frame": scannerFrame.toJSValue(), + ]) ++#endif + } + + /** +@@ -396,3 +455,13 @@ public final class CameraView: UIView, CameraSessionDelegate { + } + } + } ++ ++@objc public protocol RNCameraViewDirectEventDelegate: AnyObject { //TODO: Move to a separate file ++ func onInitialized() ++ func onError(error: NSDictionary) ++ func onViewReady() ++ func onStarted() ++ func onStopped() ++ func onShutter(message: NSDictionary) ++ func onCodeScanned(message: NSDictionary) ++} +diff --git a/node_modules/react-native-vision-camera/ios/CameraViewManager.swift b/node_modules/react-native-vision-camera/ios/CameraViewManager.swift +index ecfcf3d..4b2c201 100644 +--- a/node_modules/react-native-vision-camera/ios/CameraViewManager.swift ++++ b/node_modules/react-native-vision-camera/ios/CameraViewManager.swift +@@ -141,7 +141,8 @@ final class CameraViewManager: RCTViewManager { + + private func getCameraView(withTag tag: NSNumber) -> CameraView { + // swiftlint:disable force_cast +- return bridge.uiManager.view(forReactTag: tag) as! CameraView ++ let cameraView = bridge.uiManager.view(forReactTag: tag) ++ return ((cameraView?.isKind(of: CameraView.self))! ? cameraView : cameraView?.value(forKey: "contentView") as? UIView) as! CameraView + // swiftlint:enable force_cast + } + } +diff --git a/node_modules/react-native-vision-camera/ios/RNCameraView.h b/node_modules/react-native-vision-camera/ios/RNCameraView.h +new file mode 100644 +index 0000000..46c2c2c +--- /dev/null ++++ b/node_modules/react-native-vision-camera/ios/RNCameraView.h +@@ -0,0 +1,14 @@ ++// This guard prevent this file to be compiled in the old architecture. ++#ifdef RCT_NEW_ARCH_ENABLED ++#import ++#import ++ ++ ++NS_ASSUME_NONNULL_BEGIN ++ ++@interface RNCameraView : RCTViewComponentView ++@end ++ ++NS_ASSUME_NONNULL_END ++ ++#endif /* RCT_NEW_ARCH_ENABLED */ +diff --git a/node_modules/react-native-vision-camera/ios/RNCameraView.mm b/node_modules/react-native-vision-camera/ios/RNCameraView.mm +new file mode 100644 +index 0000000..63fb00f +--- /dev/null ++++ b/node_modules/react-native-vision-camera/ios/RNCameraView.mm +@@ -0,0 +1,373 @@ ++// This guard prevent the code from being compiled in the old architecture ++#ifdef RCT_NEW_ARCH_ENABLED ++//#import "RNCameraView.h" ++#import ++ ++#import ++#import ++#import ++#import ++ ++#import "RCTFabricComponentsPlugins.h" ++#import ++#import ++#import ++#import ++#import "VisionCamera-Swift.h" ++ ++@interface RNCameraView : RCTViewComponentView ++@end ++ ++ ++using namespace facebook::react; ++ ++@implementation RNCameraView { ++ CameraView * _view; ++} ++ +++ (ComponentDescriptorProvider)componentDescriptorProvider ++{ ++ return concreteComponentDescriptorProvider(); ++} ++ ++- (instancetype)initWithFrame:(CGRect)frame ++{ ++ self = [super initWithFrame:frame]; ++if (self) { ++ static const auto defaultProps = std::make_shared(); ++ _props = defaultProps; ++ ++ //The remaining part of the initializer is standard Objective-C code to create views and layout them with AutoLayout. Here we can change whatever we want to. ++ _view = [[CameraView alloc] init]; ++ _view.delegate = self; ++ ++ self.contentView = _view; ++} ++ ++return self; ++} ++ ++// why we need this func -> https://reactnative.dev/docs/next/the-new-architecture/pillars-fabric-components#write-the-native-ios-code ++- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps ++{ ++ const auto &newViewProps = *std::static_pointer_cast(props); ++ const auto &oldViewProps = *std::static_pointer_cast(_props); ++ ++ NSMutableArray* changedProps = [[NSMutableArray alloc] init]; ++ ++ if(oldViewProps.isActive != newViewProps.isActive){ ++ _view.isActive = newViewProps.isActive; ++ [changedProps addObject:@"isActive"]; ++ } ++ if(oldViewProps.cameraId != newViewProps.cameraId){ ++ _view.cameraId = RCTNSStringFromString(newViewProps.cameraId); ++ [changedProps addObject:@"cameraId"]; ++ } ++ if(oldViewProps.photoQualityBalance != newViewProps.photoQualityBalance){ ++ _view.photoQualityBalance = RCTNSStringFromString(newViewProps.photoQualityBalance); ++ [changedProps addObject:@"photoQualityBalance"]; ++ } ++ if(oldViewProps.enableDepthData != newViewProps.enableDepthData){ ++ _view.enableDepthData = newViewProps.enableDepthData; ++ [changedProps addObject:@"enableDepthData"]; ++ } ++ if(oldViewProps.enablePortraitEffectsMatteDelivery != newViewProps.enablePortraitEffectsMatteDelivery){ ++ _view.enablePortraitEffectsMatteDelivery = newViewProps.enablePortraitEffectsMatteDelivery; ++ [changedProps addObject:@"enablePortraitEffectsMatteDelivery"]; ++ } ++ if(oldViewProps.photo != newViewProps.photo){ ++ _view.photo = [NSNumber numberWithBool:newViewProps.photo]; ++ [changedProps addObject:@"photo"]; ++ } ++ if(oldViewProps.video != newViewProps.video){ ++ _view.video = [NSNumber numberWithBool:newViewProps.video]; ++ [changedProps addObject:@"video"]; ++ } ++ if(oldViewProps.audio != newViewProps.audio){ ++ _view.audio = [NSNumber numberWithBool:newViewProps.audio]; ++ [changedProps addObject:@"audio"]; ++ } ++ if(oldViewProps.enableFrameProcessor != newViewProps.enableFrameProcessor){ ++ _view.enableFrameProcessor = newViewProps.enableFrameProcessor; ++ [changedProps addObject:@"enableFrameProcessor"]; ++ } ++ if(oldViewProps.enableLocation != newViewProps.enableLocation){ ++ _view.enableLocation = newViewProps.enableLocation; ++ [changedProps addObject:@"enableLocation"]; ++ } ++ if(oldViewProps.enableBufferCompression != newViewProps.enableBufferCompression){ ++ _view.enableBufferCompression = newViewProps.enableBufferCompression; ++ [changedProps addObject:@"enableBufferCompression"]; ++ } ++ if(oldViewProps.fps != newViewProps.fps){ ++ _view.fps = [NSNumber numberWithInt:newViewProps.fps]; ++ [changedProps addObject:@"fps"]; ++ } ++ if(oldViewProps.videoHdr != newViewProps.videoHdr){ ++ _view.videoHdr = newViewProps.videoHdr; ++ [changedProps addObject:@"videoHdr"]; ++ } ++ if(oldViewProps.photoHdr != newViewProps.photoHdr){ ++ _view.photoHdr = newViewProps.photoHdr; ++ [changedProps addObject:@"photoHdr"]; ++ } ++ if(oldViewProps.lowLightBoost != newViewProps.lowLightBoost){ ++ _view.lowLightBoost = newViewProps.lowLightBoost; ++ [changedProps addObject:@"lowLightBoost"]; ++ } ++ if(oldViewProps.videoStabilizationMode != newViewProps.videoStabilizationMode){ ++ _view.videoStabilizationMode = RCTNSStringFromString(newViewProps.videoStabilizationMode); ++ [changedProps addObject:@"videoStabilizationMode"]; ++ } ++ if(oldViewProps.torch != newViewProps.torch){ ++ _view.torch = RCTNSStringFromString(newViewProps.torch); ++ [changedProps addObject:@"torch"]; ++ } ++ if(oldViewProps.orientation != newViewProps.orientation){ ++ _view.orientation = RCTNSStringFromString(newViewProps.orientation); ++ [changedProps addObject:@"orientation"]; ++ } ++ if(oldViewProps.resizeMode != newViewProps.resizeMode){ ++ _view.resizeMode = RCTNSStringFromString(newViewProps.resizeMode); ++ [changedProps addObject:@"resizeMode"]; ++ } ++ if(oldViewProps.pixelFormat != newViewProps.pixelFormat){ ++ _view.pixelFormat = RCTNSStringFromString(newViewProps.pixelFormat); ++ [changedProps addObject:@"pixelFormat"]; ++ } ++ if(oldViewProps.zoom != newViewProps.zoom){ ++ _view.zoom = [NSNumber numberWithDouble:newViewProps.zoom]; ++ [changedProps addObject:@"zoom"]; ++ } ++ if(oldViewProps.exposure != newViewProps.exposure){ ++ _view.exposure = [NSNumber numberWithDouble:newViewProps.exposure]; ++ [changedProps addObject:@"exposure"]; ++ } ++ if(oldViewProps.enableZoomGesture != newViewProps.enableZoomGesture){ ++ _view.enableZoomGesture = newViewProps.enableZoomGesture; ++ [changedProps addObject:@"enableZoomGesture"]; ++ } ++ if(oldViewProps.enableFpsGraph != newViewProps.enableFpsGraph){ ++ _view.enableFpsGraph = newViewProps.enableFpsGraph; ++ [changedProps addObject:@"enableFpsGraph"]; ++ } ++ ++ ++ if(_view.format == nil){ ++ _view.format =[ [NSMutableDictionary alloc] init]; ++ } ++ ++ ++ //Checking format props, TODO: find cleaner way to do it ++ if(oldViewProps.format.supportsDepthCapture != newViewProps.format.supportsDepthCapture){ ++ NSNumber* supportsDepthCapture = newViewProps.format.supportsDepthCapture ? @1 : @0; ++ [_view.format setValue:supportsDepthCapture forKey:@"supportsDepthCapture"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.autoFocusSystem != newViewProps.format.autoFocusSystem){ ++ [_view.format setValue:RCTNSStringFromString(newViewProps.format.autoFocusSystem) forKey:@"autoFocusSystem"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.pixelFormats.size() != newViewProps.format.pixelFormats.size()){ ++ NSMutableArray* newPixelFormats = [[NSMutableArray alloc] init]; ++ for(int i = 0; i < newViewProps.format.pixelFormats.size(); i++){ ++ [newPixelFormats addObject:RCTNSStringFromString(newViewProps.format.pixelFormats.at(i))]; ++ } ++ [_view.format setValue:newPixelFormats forKey:@"pixelFormats"]; ++ [changedProps addObject:@"format"]; ++ } ++ ++ if(oldViewProps.format.videoStabilizationModes.size() != newViewProps.format.videoStabilizationModes.size()){ ++ NSMutableArray* newVideoStabilizationModes = [[NSMutableArray alloc] init]; ++ for(int i = 0; i < newViewProps.format.videoStabilizationModes.size(); i++){ ++ [newVideoStabilizationModes addObject:RCTNSStringFromString(newViewProps.format.videoStabilizationModes.at(i))]; ++ } ++ [_view.format setValue:newVideoStabilizationModes forKey:@"videoStabilizationModes"]; ++ [changedProps addObject:@"format"]; ++ } ++ ++ if(oldViewProps.format.photoHeight != newViewProps.format.photoHeight){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.photoHeight] forKey:@"photoHeight"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.photoWidth != newViewProps.format.photoWidth){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.photoWidth] forKey:@"photoWidth"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.videoHeight != newViewProps.format.videoHeight){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.videoHeight] forKey:@"videoHeight"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.videoWidth != newViewProps.format.videoWidth){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.videoWidth] forKey:@"videoWidth"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.maxISO != newViewProps.format.maxISO){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.maxISO] forKey:@"maxISO"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.minISO != newViewProps.format.minISO){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.minISO] forKey:@"minISO"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.maxFps != newViewProps.format.maxFps){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.maxFps] forKey:@"maxFps"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.minFps != newViewProps.format.minFps){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.minFps] forKey:@"minFps"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.fieldOfView != newViewProps.format.fieldOfView){ ++ [_view.format setValue:[NSNumber numberWithDouble:newViewProps.format.fieldOfView] forKey:@"fieldOfView"]; ++ [changedProps addObject:@"format"]; ++ } ++ ++ if(oldViewProps.format.supportsVideoHDR != newViewProps.format.supportsVideoHDR){ ++ NSNumber* supportsVideoHDR = newViewProps.format.supportsVideoHDR ? @1 : @0; ++ [_view.format setValue:supportsVideoHDR forKey:@"supportsVideoHDR"]; ++ [changedProps addObject:@"format"]; ++ } ++ if(oldViewProps.format.supportsPhotoHDR != newViewProps.format.supportsPhotoHDR){ ++ NSNumber* supportsPhotoHDR = newViewProps.format.supportsPhotoHDR ? @1 : @0; ++ [_view.format setValue:supportsPhotoHDR forKey:@"supportsPhotoHDR"]; ++ [changedProps addObject:@"format"]; ++ } ++ ++ if (_view.format.count == 0) { ++ _view.format = nil; ++ } ++ ++ if(_view.codeScannerOptions == nil){ ++ _view.codeScannerOptions =[[NSMutableDictionary alloc] init]; ++ } ++ ++ if(oldViewProps.codeScannerOptions.codeTypes.size() != newViewProps.codeScannerOptions.codeTypes.size()){ ++ NSMutableArray* newCodeTypes = [[NSMutableArray alloc] init]; ++ for(int i = 0; i < newViewProps.codeScannerOptions.codeTypes.size(); i++){ ++ [newCodeTypes addObject:RCTNSStringFromString(newViewProps.codeScannerOptions.codeTypes.at(i))]; ++ } ++ [_view.codeScannerOptions setValue:newCodeTypes forKey:@"codeTypes"]; ++ [changedProps addObject:@"codeScannerOptions"]; ++ } ++ ++ if(oldViewProps.codeScannerOptions.interval != newViewProps.codeScannerOptions.interval){ ++ [_view.codeScannerOptions setValue:[NSNumber numberWithDouble:newViewProps.codeScannerOptions.interval] forKey:@"interval"]; ++ [changedProps addObject:@"codeScannerOptions"]; ++ } ++ ++ if( ++ oldViewProps.codeScannerOptions.regionOfInterest.x != newViewProps.codeScannerOptions.regionOfInterest.x || ++ oldViewProps.codeScannerOptions.regionOfInterest.y != newViewProps.codeScannerOptions.regionOfInterest.y || ++ oldViewProps.codeScannerOptions.regionOfInterest.width != newViewProps.codeScannerOptions.regionOfInterest.width || ++ oldViewProps.codeScannerOptions.regionOfInterest.height != newViewProps.codeScannerOptions.regionOfInterest.height ++ ){ ++ NSDictionary *newRegionOfInterest = @{ ++ @"x": @(newViewProps.codeScannerOptions.regionOfInterest.x), ++ @"y": @(newViewProps.codeScannerOptions.regionOfInterest.y), ++ @"width": @(newViewProps.codeScannerOptions.regionOfInterest.width), ++ @"height": @(newViewProps.codeScannerOptions.regionOfInterest.height), ++ }; ++ [_view.codeScannerOptions setValue:newRegionOfInterest forKey:@"regionOfInterest"]; ++ [changedProps addObject:@"codeScannerOptions"]; ++ } ++ ++ if (_view.codeScannerOptions.count == 0) { ++ _view.codeScannerOptions = nil; ++ } ++ ++ [_view didSetProps:changedProps]; ++ ++ [super updateProps:props oldProps:oldProps]; ++} ++ ++- (void)onViewReady{ ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onViewReady( CameraViewEventEmitter::OnViewReady{}); ++ } ++} ++ ++- (void)onErrorWithError:(NSDictionary *)error{ ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onError( CameraViewEventEmitter::OnError{ ++ .code = std::string([(error != nil ? [error objectForKey:@"code"] : @"") UTF8String]), ++ .message = std::string([(error != nil ? [error objectForKey:@"message"] : @"") UTF8String]), ++ .cause = { ++ .code = std::string([(error != nil ? [[error objectForKey:@"cause"] objectForKey:@"code"] : @"") UTF8String]), // TODO: Further secure type safety to prevent crashes ++ .domain = std::string([(error != nil ? [[error objectForKey:@"cause"] objectForKey:@"domain"] : @"") UTF8String]), ++ .message = std::string([(error != nil ? [[error objectForKey:@"cause"] objectForKey:@"message"] : @"") UTF8String]), ++ .details = std::string([(error != nil ? [[error objectForKey:@"cause"] objectForKey:@"details"] : @"") UTF8String]) ++ } ++ }); ++ } ++} ++ ++- (void)onInitialized{ ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onInitialized( CameraViewEventEmitter::OnInitialized{}); ++ } ++} ++ ++- (void)onCodeScannedWithMessage:(NSDictionary *)message { ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onCodeScanned( CameraViewEventEmitter::OnCodeScanned{ ++ .codes = { ++ .type = std::string([(message != nil ? [[message objectForKey:@"codes"] objectForKey:@"type"] : @"") UTF8String]), ++ .value = std::string([(message != nil ? [[message objectForKey:@"codes"] objectForKey:@"value"] : @"") UTF8String]), ++ .frame = { ++ .x = [(message != nil ? [[[message objectForKey:@"codes"] objectForKey:@"frame"] objectForKey:@"x"] : @0) doubleValue], ++ .y = [(message != nil ? [[[message objectForKey:@"codes"] objectForKey:@"frame"] objectForKey:@"y"] : @0) doubleValue], ++ .width = [(message != nil ? [[[message objectForKey:@"codes"] objectForKey:@"frame"] objectForKey:@"width"] : @0) doubleValue], ++ .height = [(message != nil ? [[[message objectForKey:@"codes"] objectForKey:@"frame"] objectForKey:@"height"] : @0) doubleValue], ++ }, ++ }, ++ .frame = { ++ .width = [(message != nil ? [[message objectForKey:@"frame"] objectForKey:@"width"] : @0) intValue], ++ .height = [(message != nil ? [[message objectForKey:@"frame"] objectForKey:@"height"] : @0) intValue], ++ }, ++ // nothing is sent here from CameraView ++ .corners = { ++ .x = [(message != nil ? [[message objectForKey:@"corners"] objectForKey:@"x"] : @0) doubleValue], ++ .y = [(message != nil ? [[message objectForKey:@"corners"] objectForKey:@"y"] : @0) doubleValue], ++ } ++ }); ++ } ++} ++ ++ ++- (void)onShutterWithMessage:(NSDictionary *)message { ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onShutter( CameraViewEventEmitter::OnShutter{ ++ .type = std::string([(message != nil ? [message objectForKey:@"type"] : @"") UTF8String]), ++ }); ++ } ++} ++ ++ ++- (void)onStarted { ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onStarted( CameraViewEventEmitter::OnStarted{}); ++ } ++} ++ ++ ++- (void)onStopped { ++ if(_eventEmitter){ ++ std::dynamic_pointer_cast(_eventEmitter) ++ ->onViewReady( CameraViewEventEmitter::OnViewReady{}); ++ } ++} ++ ++Class CameraViewCls(void) ++{ ++ return RNCameraView.class; ++} ++ ++@end ++#endif +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/Camera.js b/node_modules/react-native-vision-camera/lib/commonjs/Camera.js +index ac08791..6e691b9 100644 +--- a/node_modules/react-native-vision-camera/lib/commonjs/Camera.js ++++ b/node_modules/react-native-vision-camera/lib/commonjs/Camera.js +@@ -10,8 +10,11 @@ var _CameraError = require("./CameraError"); + var _NativeCameraModule = require("./NativeCameraModule"); + var _FrameProcessorPlugins = require("./FrameProcessorPlugins"); + var _CameraDevices = require("./CameraDevices"); ++var _CameraViewNativeComponent = _interopRequireDefault(require("./specs/CameraViewNativeComponent")); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } ++const NativeCameraView = _CameraViewNativeComponent.default; ++ + //#region Types + + //#endregion +@@ -552,10 +555,5 @@ class Camera extends _react.default.PureComponent { + } + } + //#endregion +- +-// requireNativeComponent automatically resolves 'CameraView' to 'CameraViewManager' + exports.Camera = Camera; +-const NativeCameraView = (0, _reactNative.requireNativeComponent)('CameraView', +-// @ts-expect-error because the type declarations are kinda wrong, no? +-Camera); + //# sourceMappingURL=Camera.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/Camera.js.map b/node_modules/react-native-vision-camera/lib/commonjs/Camera.js.map +index 808f69a..02a8590 100644 +--- a/node_modules/react-native-vision-camera/lib/commonjs/Camera.js.map ++++ b/node_modules/react-native-vision-camera/lib/commonjs/Camera.js.map +@@ -1 +1 @@ +-{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_CameraError","_NativeCameraModule","_FrameProcessorPlugins","_CameraDevices","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","Camera","React","PureComponent","displayName","isNativeViewMounted","constructor","props","onViewReady","onInitialized","onStarted","onStopped","onShutter","onError","onCodeScanned","ref","createRef","lastFrameProcessor","undefined","state","isRecordingWithFlash","handle","nodeHandle","findNodeHandle","current","CameraRuntimeError","takePhoto","options","CameraModule","e","tryParseNativeCameraError","takeSnapshot","getBitRateMultiplier","bitRate","startRecording","onRecordingError","onRecordingFinished","videoBitRate","passThruOptions","flash","setState","nativeOptions","videoBitRateOverride","videoBitRateMultiplier","onRecordCallback","video","error","pauseRecording","resumeRecording","stopRecording","cancelRecording","focus","point","getAvailableCameraDevices","CameraDevices","addCameraDevicesChangedListener","listener","getCameraPermissionStatus","getMicrophonePermissionStatus","getLocationPermissionStatus","requestCameraPermission","requestMicrophonePermission","requestLocationPermission","event","nativeEvent","cause","isErrorWithCause","cameraError","code","message","console","_this$props$onInitial","_this$props","_this$props$onStarted","_this$props2","_this$props$onStopped","_this$props3","_this$props$onShutter","_this$props4","codeScanner","codes","frame","setFrameProcessor","frameProcessor","VisionCameraProxy","unsetFrameProcessor","removeFrameProcessor","componentDidUpdate","render","device","shouldEnableBufferCompression","pixelFormat","torch","createElement","NativeCameraView","cameraId","id","codeScannerOptions","enableFrameProcessor","enableBufferCompression","enableFpsGraph","exports","requireNativeComponent"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaqB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAMtB,gCAAY,CAACsB,eAAe,CAAC,IAAI,CAAC7B,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOQ,CAAC,EAAE;MACV,MAAM,IAAAC,sCAAyB,EAACD,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAasB,KAAKA,CAACC,KAAY,EAAiB;IAC9C,IAAI;MACF,OAAO,MAAMxB,gCAAY,CAACuB,KAAK,CAAC,IAAI,CAAC9B,MAAM,EAAE+B,KAAK,CAAC;IACrD,CAAC,CAAC,OAAOvB,CAAC,EAAE;MACV,MAAM,IAAAC,sCAAyB,EAACD,CAAC,CAAC;IACpC;EACF;EACA;;EAEA;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcwB,yBAAyBA,CAAA,EAAmB;IACxD,OAAOC,4BAAa,CAACD,yBAAyB,CAAC,CAAC;EAClD;EACA;AACF;AACA;AACA;AACA;AACA;EACE,OAAcE,+BAA+BA,CAACC,QAA8C,EAAuB;IACjH,OAAOF,4BAAa,CAACC,+BAA+B,CAACC,QAAQ,CAAC;EAChE;EACA;AACF;AACA;AACA;AACA;AACA;EACE,OAAcC,yBAAyBA,CAAA,EAA2B;IAChE,OAAO7B,gCAAY,CAAC6B,yBAAyB,CAAC,CAAC;EACjD;EACA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAcC,6BAA6BA,CAAA,EAA2B;IACpE,OAAO9B,gCAAY,CAAC8B,6BAA6B,CAAC,CAAC;EACrD;EACA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAcC,2BAA2BA,CAAA,EAA2B;IAClE,OAAO/B,gCAAY,CAAC+B,2BAA2B,CAAC,CAAC;EACnD;EACA;AACF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"} +\ No newline at end of file ++{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_CameraError","_NativeCameraModule","_FrameProcessorPlugins","_CameraDevices","_CameraViewNativeComponent","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","NativeCameraView","NativeCameraViewCodegen","Camera","React","PureComponent","displayName","isNativeViewMounted","constructor","props","onViewReady","onInitialized","onStarted","onStopped","onShutter","onError","onCodeScanned","ref","createRef","lastFrameProcessor","undefined","state","isRecordingWithFlash","handle","nodeHandle","findNodeHandle","current","CameraRuntimeError","takePhoto","options","CameraModule","e","tryParseNativeCameraError","takeSnapshot","getBitRateMultiplier","bitRate","startRecording","onRecordingError","onRecordingFinished","videoBitRate","passThruOptions","flash","setState","nativeOptions","videoBitRateOverride","videoBitRateMultiplier","onRecordCallback","video","error","pauseRecording","resumeRecording","stopRecording","cancelRecording","focus","point","getAvailableCameraDevices","CameraDevices","addCameraDevicesChangedListener","listener","getCameraPermissionStatus","getMicrophonePermissionStatus","getLocationPermissionStatus","requestCameraPermission","requestMicrophonePermission","requestLocationPermission","event","nativeEvent","cause","isErrorWithCause","cameraError","code","message","console","_this$props$onInitial","_this$props","_this$props$onStarted","_this$props2","_this$props$onStopped","_this$props3","_this$props$onShutter","_this$props4","codeScanner","codes","frame","setFrameProcessor","frameProcessor","VisionCameraProxy","unsetFrameProcessor","removeFrameProcessor","componentDidUpdate","render","device","shouldEnableBufferCompression","pixelFormat","torch","createElement","cameraId","id","codeScannerOptions","enableFrameProcessor","enableBufferCompression","enableFpsGraph","exports"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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B,EAACD,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaqB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAMtB,gCAAY,CAACsB,eAAe,CAAC,IAAI,CAAC7B,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOQ,CAAC,EAAE;MACV,MAAM,IAAAC,sCAAyB,EAACD,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAasB,KAAKA,CAACC,KAAY,EAAiB;IAC9C,IAAI;MACF,OAAO,MAAMxB,gCAAY,CAACuB,KAAK,CAAC,IAAI,CAAC9B,MAAM,EAAE+B,KAAK,CAAC;IACrD,CAAC,CAAC,OAAOvB,CAAC,EAAE;MACV,MAAM,IAAAC,sCAAyB,EAACD,CAAC,CAAC;IACpC;EACF;EACA;;EAEA;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcwB,yBAAyBA,CAAA,EAAmB;IACxD,OAAOC,4BAAa,CAACD,yBAAyB,CAAC,CAAC;EAClD;EACA;AACF;AACA;AACA;AACA;AACA;EACE,OAAcE,+BAA+BA,CAACC,QAA8C,EAAuB;IACjH,OAAOF,4BAAa,CAACC,+BAA+B,CAACC,QAAQ,CAAC;EAChE;EACA;AACF;AACA;AACA;AACA;AACA;EACE,OAAcC,yBAAyBA,CAAA,EAA2B;IAChE,OAAO7B,gCAAY,CAAC6B,yBAAyB,CAAC,CAAC;EACjD;EACA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAcC,6BAA6BA,CAAA,EAA2B;IACpE,OAAO9B,gCAAY,CAAC8B,6BAA6B,CAAC,CAAC;EACrD;EACA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAcC,2BAA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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js b/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js +index cc2179c..3581e20 100644 +--- a/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js ++++ b/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js +@@ -70,7 +70,7 @@ try { + isAsyncContextBusy.value = false; + } + }, asyncContext); +- hasWorklets = true; ++ // hasWorklets = true + } catch (e) { + // Worklets are not installed, so Frame Processors are disabled. + } +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js.map b/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js.map +index cab0ad6..4e34f24 100644 +--- a/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js.map ++++ b/node_modules/react-native-vision-camera/lib/commonjs/FrameProcessorPlugins.js.map +@@ -1 +1 @@ +-{"version":3,"names":["_CameraError","require","_NativeCameraModule","_JSIHelper","errorMessage","hasWorklets","isAsyncContextBusy","value","runOnAsyncContext","_frame","_func","CameraRuntimeError","throwJSError","error","assertJSIAvailable","Worklets","throwErrorOnJS","createRunInJsFn","message","stack","Error","name","jsEngine","global","ErrorUtils","reportFatalError","safeError","createSharedValue","asyncContext","createContext","createRunInContextFn","frame","func","e","internal","decrementRefCount","proxy","initFrameProcessorPlugin","removeFrameProcessor","setFrameProcessor","result","CameraModule","installFrameProcessorBindings","VisionCameraProxy","exports","getFrameProcessorPlugin","options","console","warn","getLastFrameProcessorCall","frameProcessorFuncId","_global$__frameProces","__frameProcessorRunAtTargetFpsMap","setLastFrameProcessorCall","runAtTargetFps","fps","funcId","__workletHash","targetIntervalMs","now","performance","diffToLastCall","undefined","runAsync","incrementRefCount"],"sourceRoot":"../../src","sources":["FrameProcessorPlugins.ts"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["_CameraError","require","_NativeCameraModule","_JSIHelper","errorMessage","hasWorklets","isAsyncContextBusy","value","runOnAsyncContext","_frame","_func","CameraRuntimeError","throwJSError","error","assertJSIAvailable","Worklets","throwErrorOnJS","createRunInJsFn","message","stack","Error","name","jsEngine","global","ErrorUtils","reportFatalError","safeError","createSharedValue","asyncContext","createContext","createRunInContextFn","frame","func","e","internal","decrementRefCount","proxy","initFrameProcessorPlugin","removeFrameProcessor","setFrameProcessor","result","CameraModule","installFrameProcessorBindings","VisionCameraProxy","exports","getFrameProcessorPlugin","options","console","warn","getLastFrameProcessorCall","frameProcessorFuncId","_global$__frameProces","__frameProcessorRunAtTargetFpsMap","setLastFrameProcessorCall","runAtTargetFps","fps","funcId","__workletHash","targetIntervalMs","now","performance","diffToLastCall","undefined","runAsync","incrementRefCount"],"sourceRoot":"../../src","sources":["FrameProcessorPlugins.ts"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js b/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js +new file mode 100644 +index 0000000..7008471 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js +@@ -0,0 +1,11 @@ ++"use strict"; ++ ++Object.defineProperty(exports, "__esModule", { ++ value: true ++}); ++exports.default = void 0; ++var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent")); ++function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } ++/* eslint-disable @typescript-eslint/ban-types */ ++var _default = exports.default = (0, _codegenNativeComponent.default)('CameraView'); ++//# sourceMappingURL=CameraViewNativeComponent.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js.map b/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js.map +new file mode 100644 +index 0000000..d1b3d81 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/commonjs/specs/CameraViewNativeComponent.js.map +@@ -0,0 +1 @@ ++{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/CameraViewNativeComponent.ts"],"mappings":";;;;;;AAGA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAH7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GA0Fe,IAAAG,+BAAsB,EAAc,YAAY,CAAC"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/module/Camera.js b/node_modules/react-native-vision-camera/lib/module/Camera.js +index b5bbf8b..3f44fdd 100644 +--- a/node_modules/react-native-vision-camera/lib/module/Camera.js ++++ b/node_modules/react-native-vision-camera/lib/module/Camera.js +@@ -1,10 +1,12 @@ + function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + import React from 'react'; +-import { requireNativeComponent, findNodeHandle } from 'react-native'; ++import { findNodeHandle } from 'react-native'; + import { CameraRuntimeError, tryParseNativeCameraError, isErrorWithCause } from './CameraError'; + import { CameraModule } from './NativeCameraModule'; + import { VisionCameraProxy } from './FrameProcessorPlugins'; + import { CameraDevices } from './CameraDevices'; ++import NativeCameraViewCodegen from './specs/CameraViewNativeComponent'; ++const NativeCameraView = NativeCameraViewCodegen; + + //#region Types + +@@ -546,9 +548,4 @@ export class Camera extends React.PureComponent { + } + } + //#endregion +- +-// requireNativeComponent automatically resolves 'CameraView' to 'CameraViewManager' +-const NativeCameraView = requireNativeComponent('CameraView', +-// @ts-expect-error because the type declarations are kinda wrong, no? +-Camera); + //# sourceMappingURL=Camera.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/module/Camera.js.map b/node_modules/react-native-vision-camera/lib/module/Camera.js.map +index 42aa7ea..0205781 100644 +--- a/node_modules/react-native-vision-camera/lib/module/Camera.js.map ++++ b/node_modules/react-native-vision-camera/lib/module/Camera.js.map +@@ -1 +1 @@ +-{"version":3,"names":["React","requireNativeComponent","findNodeHandle","CameraRuntimeError","tryParseNativeCameraError","isErrorWithCause","CameraModule","VisionCameraProxy","CameraDevices","Camera","PureComponent","displayName","isNativeViewMounted","constructor","props","onViewReady","bind","onInitialized","onStarted","onStopped","onShutter","onError","onCodeScanned","ref","createRef","lastFrameProcessor","undefined","state","isRecordingWithFlash","handle","nodeHandle","current","takePhoto","options","e","takeSnapshot","getBitRateMultiplier","bitRate","startRecording","onRecordingError","onRecordingFinished","videoBitRate","passThruOptions","flash","setState","nativeOptions","videoBitRateOverride","videoBitRateMultiplier","onRecordCallback","video","error","pauseRecording","resumeRecording","stopRecording","cancelRecording","focus","point","getAvailableCameraDevices","addCameraDevicesChangedListener","listener","getCameraPermissionStatus","getMicrophonePermissionStatus","getLocationPermissionStatus","requestCameraPermission","requestMicrophonePermission","requestLocationPermission","event","nativeEvent","cause","cameraError","code","message","console","_this$props$onInitial","_this$props","call","_this$props$onStarted","_this$props2","_this$props$onStopped","_this$props3","_this$props$onShutter","_this$props4","codeScanner","codes","frame","setFrameProcessor","frameProcessor","unsetFrameProcessor","removeFrameProcessor","componentDidUpdate","render","device","shouldEnableBufferCompression","pixelFormat","torch","createElement","NativeCameraView","_extends","cameraId","id","codeScannerOptions","enableFrameProcessor","enableBufferCompression","enableFpsGraph"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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3C,IAAI;MACF,OAAO,MAAM7C,YAAY,CAAC6C,cAAc,CAAC,IAAI,CAACtB,MAAM,CAAC;IACvD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAM9B,yBAAyB,CAAC8B,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAakB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAM9C,YAAY,CAAC8C,eAAe,CAAC,IAAI,CAACvB,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAM9B,yBAAyB,CAAC8B,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAamB,aAAaA,CAAA,EAAkB;IAC1C,IAAI;MACF,OAAO,MAAM/C,YAAY,CAAC+C,aAAa,CAAC,IAAI,CAACxB,MAAM,CAAC;IACtD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAM9B,yBAAyB,CAAC8B,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaoB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAMhD,YAAY,CAACgD,eAAe,CAAC,IAAI,CAACzB,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAM9B,yBAAyB,CAAC8B,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaqB,KAAKA,CAACC,KAAY,EAAiB;IAC9C,IAAI;MACF,OAAO,MAAMlD,YAAY,CAACiD,KAAK,CAAC,IAA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"} +\ No newline at end of file ++{"version":3,"names":["React","findNodeHandle","CameraRuntimeError","tryParseNativeCameraError","isErrorWithCause","CameraModule","VisionCameraProxy","CameraDevices","NativeCameraViewCodegen","NativeCameraView","Camera","PureComponent","displayName","isNativeViewMounted","constructor","props","onViewReady","bind","onInitialized","onStarted","onStopped","onShutter","onError","onCodeScanned","ref","createRef","lastFrameProcessor","undefined","state","isRecordingWithFlash","handle","nodeHandle","current","takePhoto","options","e","takeSnapshot","getBitRateMultiplier","bitRate","startRecording","onRecordingError","onRecordingFinished","videoBitRate","passThruOptions","flash","setState","nativeOptions","videoBitRateOverride","videoBitRateMultiplier","onRecordCallback","video","error","pauseRecording","resumeRecording","stopRecording","cancelRecording","focus","point","getAvailableCameraDevices","addCameraDevicesChangedListener","listener","getCameraPermissionStatus","getMicrophonePermissionStatus","getLocationPermissionStatus","requestCameraPermission","requestMicrophonePermission","requestLocationPermission","event","nativeEvent","cause","cameraError","code","message","console","_this$props$onInitial","_this$props","call","_this$props$onStarted","_this$props2","_this$props$onStopped","_this$props3","_this$props$onShutter","_this$props4","codeScanner","codes","frame","setFrameProcessor","frameProcessor","unsetFrameProcessor","removeFrameProcessor","componentDidUpdate","render","device","shouldEnableBufferCompression","pixelFormat","torch","createElement","_extends","cameraId","id","codeScannerOptions","enableFrameProcessor","enableBufferCompression","enableFpsGraph"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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CA;AACA;AACA;AACA;EACE,MAAaiB,cAAcA,CAAA,EAAkB;IAC3C,IAAI;MACF,OAAO,MAAM/C,YAAY,CAAC+C,cAAc,CAAC,IAAI,CAACtB,MAAM,CAAC;IACvD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAMhC,yBAAyB,CAACgC,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAakB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAMhD,YAAY,CAACgD,eAAe,CAAC,IAAI,CAACvB,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAMhC,yBAAyB,CAACgC,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAamB,aAAaA,CAAA,EAAkB;IAC1C,IAAI;MACF,OAAO,MAAMjD,YAAY,CAACiD,aAAa,CAAC,IAAI,CAACxB,MAAM,CAAC;IACtD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAMhC,yBAAyB,CAACgC,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaoB,eAAeA,CAAA,EAAkB;IAC5C,IAAI;MACF,OAAO,MAAMlD,YAAY,CAACkD,eAAe,CAAC,IAAI,CAACzB,MAAM,CAAC;IACxD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAMhC,yBAAyB,CAACgC,CAAC,CAAC;IACpC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAaqB,KAAKA,CAACC,KAAY,EAAiB;IAC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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js b/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js +index a0ee374..f1f08c1 100644 +--- a/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js ++++ b/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js +@@ -64,7 +64,7 @@ try { + isAsyncContextBusy.value = false; + } + }, asyncContext); +- hasWorklets = true; ++ // hasWorklets = true + } catch (e) { + // Worklets are not installed, so Frame Processors are disabled. + } +diff --git a/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js.map b/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js.map +index baf8705..1b73944 100644 +--- a/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js.map ++++ b/node_modules/react-native-vision-camera/lib/module/FrameProcessorPlugins.js.map +@@ -1 +1 @@ +-{"version":3,"names":["CameraRuntimeError","CameraModule","assertJSIAvailable","errorMessage","hasWorklets","isAsyncContextBusy","value","runOnAsyncContext","_frame","_func","throwJSError","error","Worklets","require","throwErrorOnJS","createRunInJsFn","message","stack","Error","name","jsEngine","global","ErrorUtils","reportFatalError","safeError","createSharedValue","asyncContext","createContext","createRunInContextFn","frame","func","e","internal","decrementRefCount","proxy","initFrameProcessorPlugin","removeFrameProcessor","setFrameProcessor","result","installFrameProcessorBindings","VisionCameraProxy","getFrameProcessorPlugin","options","console","warn","getLastFrameProcessorCall","frameProcessorFuncId","_global$__frameProces","__frameProcessorRunAtTargetFpsMap","setLastFrameProcessorCall","runAtTargetFps","fps","funcId","__workletHash","targetIntervalMs","now","performance","diffToLastCall","undefined","runAsync","incrementRefCount"],"sourceRoot":"../../src","sources":["FrameProcessorPlugins.ts"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["CameraRuntimeError","CameraModule","assertJSIAvailable","errorMessage","hasWorklets","isAsyncContextBusy","value","runOnAsyncContext","_frame","_func","throwJSError","error","Worklets","require","throwErrorOnJS","createRunInJsFn","message","stack","Error","name","jsEngine","global","ErrorUtils","reportFatalError","safeError","createSharedValue","asyncContext","createContext","createRunInContextFn","frame","func","e","internal","decrementRefCount","proxy","initFrameProcessorPlugin","removeFrameProcessor","setFrameProcessor","result","installFrameProcessorBindings","VisionCameraProxy","getFrameProcessorPlugin","options","console","warn","getLastFrameProcessorCall","frameProcessorFuncId","_global$__frameProces","__frameProcessorRunAtTargetFpsMap","setLastFrameProcessorCall","runAtTargetFps","fps","funcId","__workletHash","targetIntervalMs","now","performance","diffToLastCall","undefined","runAsync","incrementRefCount"],"sourceRoot":"../../src","sources":["FrameProcessorPlugins.ts"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js b/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js +new file mode 100644 +index 0000000..9a7c100 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js +@@ -0,0 +1,5 @@ ++/* eslint-disable @typescript-eslint/ban-types */ ++ ++import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; ++export default codegenNativeComponent('CameraView'); ++//# sourceMappingURL=CameraViewNativeComponent.js.map +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js.map b/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js.map +new file mode 100644 +index 0000000..4052494 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/module/specs/CameraViewNativeComponent.js.map +@@ -0,0 +1 @@ ++{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/CameraViewNativeComponent.ts"],"mappings":"AAAA;;AAGA,OAAOA,sBAAsB,MAAM,yDAAyD;AAuF5F,eAAeA,sBAAsB,CAAc,YAAY,CAAC"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/typescript/Camera.d.ts.map b/node_modules/react-native-vision-camera/lib/typescript/Camera.d.ts.map +index 71cc59b..d6ebc1c 100644 +--- a/node_modules/react-native-vision-camera/lib/typescript/Camera.d.ts.map ++++ b/node_modules/react-native-vision-camera/lib/typescript/Camera.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../src/Camera.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../src/Camera.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts b/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts +new file mode 100644 +index 0000000..e7717c6 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts +@@ -0,0 +1,100 @@ ++/// ++/// ++import type { HostComponent, ViewProps } from 'react-native'; ++import type { DirectEventHandler, Double, Int32 } from 'react-native/Libraries/Types/CodegenTypes'; ++export type VisionCameraComponentType = HostComponent; ++export interface NativeProps extends ViewProps { ++ enableGpuBuffers: boolean; ++ androidPreviewViewType?: string; ++ cameraId: string; ++ enableFrameProcessor: boolean; ++ enableLocation: boolean; ++ enableBufferCompression: boolean; ++ photoQualityBalance: string; ++ isActive: boolean; ++ photo?: boolean; ++ video?: boolean; ++ audio?: boolean; ++ torch?: string; ++ zoom?: Double; ++ exposure?: Double; ++ enableZoomGesture?: boolean; ++ enableFpsGraph?: boolean; ++ resizeMode?: string; ++ format?: Readonly<{ ++ supportsDepthCapture?: boolean; ++ photoHeight: Double; ++ photoWidth: Double; ++ videoHeight: Double; ++ videoWidth: Double; ++ maxISO: Double; ++ minISO: Double; ++ maxFps: Double; ++ minFps: Double; ++ fieldOfView: Double; ++ supportsVideoHDR: boolean; ++ supportsPhotoHDR: boolean; ++ autoFocusSystem: string; ++ videoStabilizationModes: string[]; ++ pixelFormats: string[]; ++ }>; ++ pixelFormat: string; ++ fps?: Int32; ++ videoHdr?: boolean; ++ photoHdr?: boolean; ++ lowLightBoost?: boolean; ++ videoStabilizationMode?: string; ++ enableDepthData?: boolean; ++ enablePortraitEffectsMatteDelivery?: boolean; ++ orientation?: string; ++ codeScannerOptions?: Readonly<{ ++ codeTypes?: string[]; ++ interval?: Double; ++ regionOfInterest?: Readonly<{ ++ x?: Double; ++ y?: Double; ++ width?: Double; ++ height?: Double; ++ }>; ++ }>; ++ onCodeScanned?: DirectEventHandler; ++ }>; ++ frame?: Readonly<{ ++ width: Int32; ++ height: Int32; ++ }>; ++ corners?: Readonly<{ ++ x: Double; ++ y: Double; ++ }>; ++ }>>; ++ onShutter?: DirectEventHandler>; ++ onStarted?: DirectEventHandler>; ++ onStopped?: DirectEventHandler>; ++ onInitialized?: DirectEventHandler>; ++ onError?: DirectEventHandler; ++ }>>; ++ onViewReady: DirectEventHandler>; ++} ++declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType; ++export default _default; ++//# sourceMappingURL=CameraViewNativeComponent.d.ts.map +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts.map b/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts.map +new file mode 100644 +index 0000000..e47e42f +--- /dev/null ++++ b/node_modules/react-native-vision-camera/lib/typescript/specs/CameraViewNativeComponent.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"CameraViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/specs/CameraViewNativeComponent.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-vision-camera/package.json b/node_modules/react-native-vision-camera/package.json +index 86352fa..7af9577 100644 +--- a/node_modules/react-native-vision-camera/package.json ++++ b/node_modules/react-native-vision-camera/package.json +@@ -166,5 +166,13 @@ + ] + ] + }, +- "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" ++ "codegenConfig": { ++ "name": "RNVisioncameraSpec", ++ "type": "all", ++ "jsSrcsDir": "./src/specs", ++ "android": { ++ "javaPackageName": "com.mrousavy.camera" ++ } ++ }, ++ "packageManager": "yarn@1.22.19" + } +diff --git a/node_modules/react-native-vision-camera/src/Camera.tsx b/node_modules/react-native-vision-camera/src/Camera.tsx +index 18733ba..1668322 100644 +--- a/node_modules/react-native-vision-camera/src/Camera.tsx ++++ b/node_modules/react-native-vision-camera/src/Camera.tsx +@@ -1,5 +1,5 @@ + import React from 'react' +-import { requireNativeComponent, NativeSyntheticEvent, findNodeHandle, NativeMethods } from 'react-native' ++import { NativeSyntheticEvent, findNodeHandle, NativeMethods } from 'react-native' + import type { CameraDevice } from './CameraDevice' + import type { ErrorWithCause } from './CameraError' + import { CameraCaptureError, CameraRuntimeError, tryParseNativeCameraError, isErrorWithCause } from './CameraError' +@@ -10,9 +10,12 @@ import type { Point } from './Point' + import type { RecordVideoOptions, VideoFile } from './VideoFile' + import { VisionCameraProxy } from './FrameProcessorPlugins' + import { CameraDevices } from './CameraDevices' +-import type { EmitterSubscription } from 'react-native' ++import type { EmitterSubscription, requireNativeComponent } from 'react-native' + import type { Code, CodeScanner, CodeScannerFrame } from './CodeScanner' + import { TakeSnapshotOptions } from './Snapshot' ++import NativeCameraViewCodegen from './specs/CameraViewNativeComponent' ++ ++const NativeCameraView = NativeCameraViewCodegen as unknown as ReturnType> + + //#region Types + export type CameraPermissionStatus = 'granted' | 'not-determined' | 'denied' | 'restricted' +@@ -604,10 +607,3 @@ export class Camera extends React.PureComponent { + } + } + //#endregion +- +-// requireNativeComponent automatically resolves 'CameraView' to 'CameraViewManager' +-const NativeCameraView = requireNativeComponent( +- 'CameraView', +- // @ts-expect-error because the type declarations are kinda wrong, no? +- Camera, +-) +diff --git a/node_modules/react-native-vision-camera/src/FrameProcessorPlugins.ts b/node_modules/react-native-vision-camera/src/FrameProcessorPlugins.ts +index aa9d5ee..e7a3fa8 100644 +--- a/node_modules/react-native-vision-camera/src/FrameProcessorPlugins.ts ++++ b/node_modules/react-native-vision-camera/src/FrameProcessorPlugins.ts +@@ -98,7 +98,7 @@ try { + isAsyncContextBusy.value = false + } + }, asyncContext) +- hasWorklets = true ++ // hasWorklets = true + } catch (e) { + // Worklets are not installed, so Frame Processors are disabled. + } +diff --git a/node_modules/react-native-vision-camera/src/specs/CameraViewNativeComponent.ts b/node_modules/react-native-vision-camera/src/specs/CameraViewNativeComponent.ts +new file mode 100644 +index 0000000..70f4572 +--- /dev/null ++++ b/node_modules/react-native-vision-camera/src/specs/CameraViewNativeComponent.ts +@@ -0,0 +1,91 @@ ++/* eslint-disable @typescript-eslint/ban-types */ ++import type { HostComponent, ViewProps } from 'react-native'; ++import type { DirectEventHandler, Double, Int32 } from 'react-native/Libraries/Types/CodegenTypes'; ++import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; ++ ++export type VisionCameraComponentType = HostComponent; ++ ++export interface NativeProps extends ViewProps { ++ enableGpuBuffers: boolean; ++ androidPreviewViewType?: string; ++ cameraId: string; ++ enableFrameProcessor: boolean; ++ enableLocation: boolean; ++ enableBufferCompression: boolean; ++ photoQualityBalance: string; ++ isActive: boolean; ++ photo?: boolean; ++ video?: boolean; ++ audio?: boolean; ++ torch?: string; ++ zoom?: Double; ++ exposure?: Double; ++ enableZoomGesture?: boolean; ++ enableFpsGraph?: boolean; ++ resizeMode?: string; ++ format?: Readonly<{ ++ supportsDepthCapture?: boolean; ++ photoHeight: Double; ++ photoWidth: Double; ++ videoHeight: Double; ++ videoWidth: Double; ++ maxISO: Double; ++ minISO: Double; ++ maxFps: Double; ++ minFps: Double; ++ fieldOfView: Double; ++ supportsVideoHDR: boolean; ++ supportsPhotoHDR: boolean; ++ autoFocusSystem: string; ++ videoStabilizationModes: string[]; ++ pixelFormats: string[]; ++ }>; ++ pixelFormat: string; ++ fps?: Int32; ++ videoHdr?: boolean; // not sure why was int on native side ++ photoHdr?: boolean; // not sure why was int on native side ++ lowLightBoost?: boolean; // same ++ videoStabilizationMode?: string; ++ enableDepthData?: boolean; ++ enablePortraitEffectsMatteDelivery?: boolean; ++ orientation?: string; ++ codeScannerOptions?: Readonly<{ ++ codeTypes?: string[]; ++ interval?: Double; ++ regionOfInterest?: Readonly<{ ++ x?: Double, ++ y?: Double, ++ width?: Double, ++ height?: Double, ++ }>; ++ }>; ++ onCodeScanned?: DirectEventHandler< ++ Readonly<{ ++ codes?: Readonly<{ ++ type?: string; ++ value?: string; ++ frame?: Readonly<{ x: Double, y: Double, width: Double, height: Double}>; ++ }>; ++ frame?: Readonly<{ width: Int32, height: Int32 }>; ++ corners?: Readonly<{ x: Double, y: Double }>; ++ }> ++ >; ++ onShutter?: DirectEventHandler< ++ Readonly<{ ++ type: string; ++ }> ++ >; ++ onStarted?: DirectEventHandler>; ++ onStopped?: DirectEventHandler>; ++ onInitialized?: DirectEventHandler>; ++ onError?: DirectEventHandler< ++ Readonly<{ ++ code: string; ++ message: string; ++ cause: Readonly<{ code: string; domain: string; message: string; details: string }>; ++ }> ++ >; ++ onViewReady: DirectEventHandler>; ++} ++ ++export default codegenNativeComponent('CameraView'); diff --git a/patches/react-native-webview+13.6.4.patch b/patches/react-native-webview+13.6.4.patch new file mode 100644 index 000000000000..ce035fd01852 --- /dev/null +++ b/patches/react-native-webview+13.6.4.patch @@ -0,0 +1,55 @@ +diff --git a/node_modules/react-native-webview/apple/RNCWebView.mm b/node_modules/react-native-webview/apple/RNCWebView.mm +index 70d5ee4..6c3467d 100644 +--- a/node_modules/react-native-webview/apple/RNCWebView.mm ++++ b/node_modules/react-native-webview/apple/RNCWebView.mm +@@ -313,24 +313,28 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const & + + if (oldViewProps.dataDetectorTypes != newViewProps.dataDetectorTypes) { + WKDataDetectorTypes dataDetectorTypes = WKDataDetectorTypeNone; +- if (dataDetectorTypes & RNCWebViewDataDetectorTypes::Address) { ++ for (const auto& type : newViewProps.dataDetectorTypes) { ++ if (type == "address") { + dataDetectorTypes |= WKDataDetectorTypeAddress; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::Link) { ++ } else if (type == "link") { + dataDetectorTypes |= WKDataDetectorTypeLink; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::CalendarEvent) { ++ } else if (type == "calendarEvent") { + dataDetectorTypes |= WKDataDetectorTypeCalendarEvent; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::TrackingNumber) { ++ } else if (type == "trackingNumber") { + dataDetectorTypes |= WKDataDetectorTypeTrackingNumber; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::FlightNumber) { ++ } else if (type == "flightNumber") { + dataDetectorTypes |= WKDataDetectorTypeFlightNumber; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::LookupSuggestion) { ++ } else if (type == "lookupSuggestion") { + dataDetectorTypes |= WKDataDetectorTypeLookupSuggestion; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::PhoneNumber) { ++ } else if (type == "phoneNumber") { + dataDetectorTypes |= WKDataDetectorTypePhoneNumber; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::All) { ++ } else if (type == "all") { + dataDetectorTypes |= WKDataDetectorTypeAll; +- } else if (dataDetectorTypes & RNCWebViewDataDetectorTypes::None) { ++ break; ++ } else if (type == "none") { + dataDetectorTypes = WKDataDetectorTypeNone; ++ break; ++ } + } + [_view setDataDetectorTypes:dataDetectorTypes]; + } +diff --git a/node_modules/react-native-webview/src/RNCWebViewNativeComponent.ts b/node_modules/react-native-webview/src/RNCWebViewNativeComponent.ts +index ae52bc8..d035207 100644 +--- a/node_modules/react-native-webview/src/RNCWebViewNativeComponent.ts ++++ b/node_modules/react-native-webview/src/RNCWebViewNativeComponent.ts +@@ -187,7 +187,7 @@ export interface NativeProps extends ViewProps { + contentMode?: WithDefault<'recommended' | 'mobile' | 'desktop', 'recommended'>; + dataDetectorTypes?: WithDefault< + // eslint-disable-next-line @typescript-eslint/array-type +- ReadonlyArray<'address' | 'link' | 'calendarEvent' | 'trackingNumber' | 'flightNumber' | 'lookupSuggestion' | 'phoneNumber' | 'all' | 'none'>, ++ ReadonlyArray, + 'phoneNumber' + >; + decelerationRate?: Double; diff --git a/src/CONST.ts b/src/CONST.ts index f9229d5185b4..b07b622cec05 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -874,6 +874,7 @@ const CONST = { CALCULATE_MOST_RECENT_LAST_MODIFIED_ACTION: 'calc_most_recent_last_modified_action', SEARCH_RENDER: 'search_render', CHAT_RENDER: 'chat_render', + OPEN_REPORT: 'open_report', HOMEPAGE_INITIAL_RENDER: 'homepage_initial_render', REPORT_INITIAL_RENDER: 'report_initial_render', SWITCH_REPORT: 'switch_report', @@ -1199,6 +1200,24 @@ const CONST = { EXPENSIFY_EMAIL_DOMAIN: '@expensify.com', }, + INTEGRATION_ENTITY_MAP_TYPES: { + DEFAULT: 'DEFAULT', + NONE: 'NONE', + TAG: 'TAG', + REPORT_FIELD: 'REPORT_FIELD', + NOT_IMPORTED: 'NOT_IMPORTED', + IMPORTED: 'IMPORTED', + }, + QUICK_BOOKS_ONLINE: 'quickbooksOnline', + + QUICK_BOOKS_IMPORTS: { + SYNC_CLASSES: 'syncClasses', + ENABLE_NEW_CATEGORIES: 'enableNewCategories', + SYNC_CUSTOMERS: 'syncCustomers', + SYNC_LOCATIONS: 'syncLocations', + SYNC_TAXES: 'syncTaxes', + }, + ACCOUNT_ID: { ACCOUNTING: Number(Config?.EXPENSIFY_ACCOUNT_ID_ACCOUNTING ?? 9645353), ADMIN: Number(Config?.EXPENSIFY_ACCOUNT_ID_ADMIN ?? -1), @@ -1569,6 +1588,28 @@ const CONST = { AUTOREPORTING_OFFSET: 'autoReportingOffset', GENERAL_SETTINGS: 'generalSettings', }, + CONNECTIONS: { + SYNC_STATUS: { + STARTING: 'starting', + FINISHED: 'finished', + PROGRESS: 'progress', + }, + NAME: { + // Here we will add other connections names when we add support for them + QBO: 'quickbooksOnline', + }, + SYNC_STAGE_NAME: { + STARTING_IMPORT: 'startingImport', + QBO_CUSTOMERS: 'quickbooksOnlineImportCustomers', + QBO_EMPLOYEES: 'quickbooksOnlineImportEmployees', + QBO_ACCOUNTS: 'quickbooksOnlineImportAccounts', + QBO_CLASSES: 'quickbooksOnlineImportClasses', + QBO_LOCATIONS: 'quickbooksOnlineImportLocations', + QBO_PROCESSING: 'quickbooksOnlineImportProcessing', + QBO_PAYMENTS: 'quickbooksOnlineSyncBillPayments', + QBO_TAX_CODES: 'quickbooksOnlineSyncTaxCodes', + }, + }, }, CUSTOM_UNITS: { diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index 0a21cb17df7e..506f969b9ad1 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -349,6 +349,8 @@ const ONYXKEYS = { /** This is deprecated, but needed for a migration, so we still need to include it here so that it will be initialized in Onyx.init */ DEPRECATED_POLICY_MEMBER_LIST: 'policyMemberList_', + + POLICY_CONNECTION_SYNC_PROGRESS: 'policyConnectionSyncProgress_', }, /** List of Form ids */ @@ -545,6 +547,7 @@ type OnyxCollectionValuesMapping = { [ONYXKEYS.COLLECTION.PRIVATE_NOTES_DRAFT]: string; [ONYXKEYS.COLLECTION.NEXT_STEP]: OnyxTypes.ReportNextStep; [ONYXKEYS.COLLECTION.POLICY_JOIN_MEMBER]: OnyxTypes.PolicyJoinMember; + [ONYXKEYS.COLLECTION.POLICY_CONNECTION_SYNC_PROGRESS]: OnyxTypes.PolicyConnectionSyncProgress; }; type OnyxValuesMapping = { diff --git a/src/ROUTES.ts b/src/ROUTES.ts index cb6902698b40..31c2af8f4e58 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -1,5 +1,6 @@ import type {IsEqual, ValueOf} from 'type-fest'; import type CONST from './CONST'; +import type {IOURequestType} from './libs/actions/IOU'; // This is a file containing constants for all the routes we want to be able to go to @@ -387,7 +388,7 @@ const ROUTES = { // straight to those flows without needing to have optimistic transaction and report IDs. MONEY_REQUEST_START: { route: 'start/:iouType/:iouRequestType', - getRoute: (iouType: ValueOf, iouRequestType: ValueOf) => `start/${iouType}/${iouRequestType}` as const, + getRoute: (iouType: ValueOf, iouRequestType: IOURequestType) => `start/${iouType}/${iouRequestType}` as const, }, MONEY_REQUEST_CREATE_TAB_DISTANCE: { route: ':action/:iouType/start/:transactionID/:reportID/distance', @@ -544,6 +545,10 @@ const ROUTES = { route: 'settings/workspaces/:policyID/members', getRoute: (policyID: string) => `settings/workspaces/${policyID}/members` as const, }, + WORKSPACE_ACCOUNTING: { + route: 'settings/workspaces/:policyID/accounting', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting` as const, + }, WORKSPACE_CATEGORIES: { route: 'settings/workspaces/:policyID/categories', getRoute: (policyID: string) => `settings/workspaces/${policyID}/categories` as const, @@ -639,15 +644,15 @@ const ROUTES = { }, WORKSPACE_TAX_EDIT: { route: 'settings/workspaces/:policyID/tax/:taxID', - getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURI(taxID)}` as const, + getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURIComponent(taxID)}` as const, }, WORKSPACE_TAX_NAME: { route: 'settings/workspaces/:policyID/tax/:taxID/name', - getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURI(taxID)}/name` as const, + getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURIComponent(taxID)}/name` as const, }, WORKSPACE_TAX_VALUE: { route: 'settings/workspaces/:policyID/tax/:taxID/value', - getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURI(taxID)}/value` as const, + getRoute: (policyID: string, taxID: string) => `settings/workspaces/${policyID}/tax/${encodeURIComponent(taxID)}/value` as const, }, WORKSPACE_DISTANCE_RATES: { route: 'settings/workspaces/:policyID/distance-rates', @@ -684,6 +689,30 @@ const ROUTES = { route: 'r/:reportID/transaction/:transactionID/receipt', getRoute: (reportID: string, transactionID: string) => `r/${reportID}/transaction/${transactionID}/receipt` as const, }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_IMPORT: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import` as const, + }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/accounts', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/accounts` as const, + }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CLASSES: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/classes', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/classes` as const, + }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CUSTOMERS: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/customers', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/customers` as const, + }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_LOCATIONS: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/locations', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/locations` as const, + }, + WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_TAXES: { + route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/taxes', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/taxes` as const, + }, } as const; /** diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 6c9262deeeb3..b3c2012e90d2 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -213,6 +213,7 @@ const SCREENS = { INVOICES: 'Workspace_Invoices', TRAVEL: 'Workspace_Travel', MEMBERS: 'Workspace_Members', + ACCOUNTING: 'Workspace_Accounting', INVITE: 'Workspace_Invite', INVITE_MESSAGE: 'Workspace_Invite_Message', CATEGORIES: 'Workspace_Categories', @@ -252,6 +253,12 @@ const SCREENS = { DISTANCE_RATES: 'Distance_Rates', CREATE_DISTANCE_RATE: 'Create_Distance_Rate', DISTANCE_RATES_SETTINGS: 'Distance_Rates_Settings', + QUICKBOOKS_ONLINE_IMPORT: 'Workspace_Accounting_Quickbooks_Online_Import', + QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS: 'Workspace_Accounting_Quickbooks_Online_Import_Chart_Of_Accounts', + QUICKBOOKS_ONLINE_CLASSES: 'Workspace_Accounting_Quickbooks_Online_Import_Classes', + QUICKBOOKS_ONLINE_CUSTOMERS: 'Workspace_Accounting_Quickbooks_Online_Import_Customers', + QUICKBOOKS_ONLINE_LOCATIONS: 'Workspace_Accounting_Quickbooks_Online_Import_Locations', + QUICKBOOKS_ONLINE_TAXES: 'Workspace_Accounting_Quickbooks_Online_Import_Taxes', DISTANCE_RATE_DETAILS: 'Distance_Rate_Details', DISTANCE_RATE_EDIT: 'Distance_Rate_Edit', }, diff --git a/src/components/AddressForm.tsx b/src/components/AddressForm.tsx index 362ba88440a0..9ad4643e834a 100644 --- a/src/components/AddressForm.tsx +++ b/src/components/AddressForm.tsx @@ -159,7 +159,7 @@ function AddressForm({ city: INPUT_IDS.CITY, state: INPUT_IDS.STATE, zipCode: INPUT_IDS.ZIP_POST_CODE, - country: INPUT_IDS.COUNTRY, + country: INPUT_IDS.COUNTRY as Country, }} maxInputLength={CONST.FORM_CHARACTER_LIMIT} shouldSaveDraft={shouldSaveDraft} diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx index d0aa2e206eb2..31ccfc954513 100644 --- a/src/components/AddressSearch/index.tsx +++ b/src/components/AddressSearch/index.tsx @@ -20,9 +20,10 @@ import type {GeolocationErrorCodeType} from '@libs/getCurrentPosition/getCurrent import * as GooglePlacesUtils from '@libs/GooglePlacesUtils'; import variables from '@styles/variables'; import CONST from '@src/CONST'; +import type {Address} from '@src/types/onyx/PrivatePersonalDetails'; import CurrentLocationButton from './CurrentLocationButton'; import isCurrentTargetInsideContainer from './isCurrentTargetInsideContainer'; -import type {AddressSearchProps, RenamedInputKeysProps} from './types'; +import type {AddressSearchProps} from './types'; // The error that's being thrown below will be ignored until we fork the // react-native-google-places-autocomplete repo and replace the @@ -213,7 +214,7 @@ function AddressSearch( if (inputID) { Object.entries(values).forEach(([key, inputValue]) => { - const inputKey = renamedInputKeys?.[key as keyof RenamedInputKeysProps] ?? key; + const inputKey = renamedInputKeys?.[key as keyof Address] ?? key; if (!inputKey) { return; } diff --git a/src/components/AddressSearch/types.ts b/src/components/AddressSearch/types.ts index efbcc6374341..bc7acf3f7e40 100644 --- a/src/components/AddressSearch/types.ts +++ b/src/components/AddressSearch/types.ts @@ -3,6 +3,7 @@ import type {NativeSyntheticEvent, StyleProp, TextInputFocusEventData, View, Vie import type {Place} from 'react-native-google-places-autocomplete'; import type {MaybePhraseKey} from '@libs/Localize'; import type Locale from '@src/types/onyx/Locale'; +import type {Address} from '@src/types/onyx/PrivatePersonalDetails'; type CurrentLocationButtonProps = { /** Callback that is called when the button is clicked */ @@ -12,18 +13,6 @@ type CurrentLocationButtonProps = { isDisabled?: boolean; }; -type RenamedInputKeysProps = { - street: string; - street2: string; - city: string; - state: string; - lat?: string; - lng?: string; - zipCode: string; - address?: string; - country?: string; -}; - type OnPressProps = { address: string; lat: number; @@ -61,7 +50,7 @@ type AddressSearchProps = { defaultValue?: string; /** A callback function when the value of this field has changed */ - onInputChange?: (value: string | number | RenamedInputKeysProps | StreetValue, key?: string) => void; + onInputChange?: (value: string | number | Address | StreetValue, key?: string) => void; /** A callback function when an address has been auto-selected */ onPress?: (props: OnPressProps) => void; @@ -79,7 +68,7 @@ type AddressSearchProps = { predefinedPlaces?: Place[] | null; /** A map of inputID key names */ - renamedInputKeys?: RenamedInputKeysProps; + renamedInputKeys?: Address; /** Maximum number of characters allowed in search input */ maxInputLength?: number; @@ -96,4 +85,4 @@ type AddressSearchProps = { type IsCurrentTargetInsideContainerType = (event: FocusEvent | NativeSyntheticEvent, containerRef: RefObject) => boolean; -export type {CurrentLocationButtonProps, AddressSearchProps, RenamedInputKeysProps, IsCurrentTargetInsideContainerType, StreetValue}; +export type {CurrentLocationButtonProps, AddressSearchProps, IsCurrentTargetInsideContainerType, StreetValue}; diff --git a/src/components/AttachmentModal.tsx b/src/components/AttachmentModal.tsx old mode 100755 new mode 100644 index c915b2f227aa..7d13524b78df --- a/src/components/AttachmentModal.tsx +++ b/src/components/AttachmentModal.tsx @@ -614,6 +614,7 @@ export default withOnyx({ const transactionID = parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.IOU ? parentReportAction?.originalMessage.IOUTransactionID ?? '0' : '0'; return `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`; }, + initWithStoredValues: false, }, parentReport: { key: ({report}) => `${ONYXKEYS.COLLECTION.REPORT}${report ? report.parentReportID : '0'}`, diff --git a/src/components/Attachments/AttachmentCarousel/extractAttachmentsFromReport.ts b/src/components/Attachments/AttachmentCarousel/extractAttachmentsFromReport.ts index 342afa1d5366..d1185f88ccd5 100644 --- a/src/components/Attachments/AttachmentCarousel/extractAttachmentsFromReport.ts +++ b/src/components/Attachments/AttachmentCarousel/extractAttachmentsFromReport.ts @@ -76,9 +76,9 @@ function extractAttachmentsFromReport(parentReportAction?: OnyxEntry', `data-flagged="${hasBeenFlagged}" data-id="${action.reportActionID}"/>`); + const html = (action?.message?.[0]?.html ?? '').replace('/>', `data-flagged="${hasBeenFlagged}" data-id="${action.reportActionID}"/>`); htmlParser.write(html); }); htmlParser.end(); diff --git a/src/components/AvatarWithDisplayName.tsx b/src/components/AvatarWithDisplayName.tsx index 396c10151fbf..f6afb4dae2d6 100644 --- a/src/components/AvatarWithDisplayName.tsx +++ b/src/components/AvatarWithDisplayName.tsx @@ -141,6 +141,7 @@ function AvatarWithDisplayName({ )} diff --git a/src/components/CardPreview.tsx b/src/components/CardPreview.tsx index 3ac56d6b26a8..acdf8a92fb5e 100644 --- a/src/components/CardPreview.tsx +++ b/src/components/CardPreview.tsx @@ -3,7 +3,6 @@ import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import ExpensifyCardImage from '@assets/images/expensify-card.svg'; -import usePrivatePersonalDetails from '@hooks/usePrivatePersonalDetails'; import useThemeStyles from '@hooks/useThemeStyles'; import variables from '@styles/variables'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -22,7 +21,6 @@ type CardPreviewProps = CardPreviewOnyxProps; function CardPreview({privatePersonalDetails, session}: CardPreviewProps) { const styles = useThemeStyles(); - usePrivatePersonalDetails(); const {legalFirstName, legalLastName} = privatePersonalDetails ?? {}; const cardHolder = legalFirstName && legalLastName ? `${legalFirstName} ${legalLastName}` : session?.email ?? ''; diff --git a/src/components/CategoryPicker.tsx b/src/components/CategoryPicker.tsx index 0307b67114e5..f26d7c25c7e2 100644 --- a/src/components/CategoryPicker.tsx +++ b/src/components/CategoryPicker.tsx @@ -21,7 +21,7 @@ type CategoryPickerProps = CategoryPickerOnyxProps & { /** It's used by withOnyx HOC */ // eslint-disable-next-line react/no-unused-prop-types policyID: string; - selectedCategory: string; + selectedCategory?: string; onSubmit: (item: ListItem) => void; }; @@ -38,7 +38,7 @@ function CategoryPicker({selectedCategory, policyCategories, policyRecentlyUsedC { name: selectedCategory, enabled: true, - accountID: null, + accountID: undefined, isSelected: true, }, ]; diff --git a/src/components/DatePicker/index.tsx b/src/components/DatePicker/index.tsx index 96047d4f5578..3ca60c8a6edb 100644 --- a/src/components/DatePicker/index.tsx +++ b/src/components/DatePicker/index.tsx @@ -112,7 +112,10 @@ function DatePicker( readOnly /> - + {uniqueMessages.map((message, i) => isReceiptError(message) ? ( - { - fileDownload(message.source, message.filename); - }} + style={styles.offlineFeedback.text} > - {Localize.translateLocal('iou.error.receiptFailureMessage')} + { + fileDownload(message.source, message.filename); + }} > - {Localize.translateLocal('iou.error.receiptFailureMessage')} - {Localize.translateLocal('iou.error.saveFileMessage')} - {Localize.translateLocal('iou.error.loseFileMessage')} - - + {Localize.translateLocal('iou.error.saveFileMessage')} + + + {Localize.translateLocal('iou.error.loseFileMessage')} + ) : ( & { shouldSetModalVisibility?: boolean; /** List of menu items for more(three dots) menu */ - threeDotsMenuItems?: ThreeDotsMenuItem[]; + threeDotsMenuItems?: PopoverMenuItem[]; /** The anchor position of the menu */ threeDotsAnchorPosition?: AnchorPosition; diff --git a/src/components/Icon/Expensicons.ts b/src/components/Icon/Expensicons.ts index 1fcf0d07276c..877e4972a3ec 100644 --- a/src/components/Icon/Expensicons.ts +++ b/src/components/Icon/Expensicons.ts @@ -84,6 +84,8 @@ import Hourglass from '@assets/images/hourglass.svg'; import ImageCropCircleMask from '@assets/images/image-crop-circle-mask.svg'; import ImageCropSquareMask from '@assets/images/image-crop-square-mask.svg'; import Info from '@assets/images/info.svg'; +import QBOSquare from '@assets/images/integrationicons/qbo-icon-square.svg'; +import XeroSquare from '@assets/images/integrationicons/xero-icon-square.svg'; import Invoice from '@assets/images/invoice.svg'; import Key from '@assets/images/key.svg'; import Keyboard from '@assets/images/keyboard.svg'; @@ -280,6 +282,7 @@ export { Plus, Printer, Profile, + QBOSquare, QrCode, QuestionMark, Receipt, @@ -308,6 +311,7 @@ export { Wallet, Workflows, Workspace, + XeroSquare, Zoom, Twitter, Youtube, diff --git a/src/components/LHNOptionsList/OptionRowLHN.tsx b/src/components/LHNOptionsList/OptionRowLHN.tsx index fbcb7d4b373d..25cc53340dd5 100644 --- a/src/components/LHNOptionsList/OptionRowLHN.tsx +++ b/src/components/LHNOptionsList/OptionRowLHN.tsx @@ -20,6 +20,7 @@ import useWindowDimensions from '@hooks/useWindowDimensions'; import DateUtils from '@libs/DateUtils'; import DomUtils from '@libs/DomUtils'; import * as OptionsListUtils from '@libs/OptionsListUtils'; +import Performance from '@libs/Performance'; import ReportActionComposeFocusManager from '@libs/ReportActionComposeFocusManager'; import * as ReportUtils from '@libs/ReportUtils'; import * as ReportActionContextMenu from '@pages/home/report/ContextMenu/ReportActionContextMenu'; @@ -123,6 +124,8 @@ function OptionRowLHN({reportID, isFocused = false, onSelectRow = () => {}, opti { + Performance.markStart(CONST.TIMING.OPEN_REPORT); + event?.preventDefault(); // Enable Composer to focus on clicking the same chat after opening the context menu. ReportActionComposeFocusManager.focus(); diff --git a/src/components/Modal/BaseModal.tsx b/src/components/Modal/BaseModal.tsx index f20e34d45f44..2448f65a75f4 100644 --- a/src/components/Modal/BaseModal.tsx +++ b/src/components/Modal/BaseModal.tsx @@ -34,6 +34,7 @@ function BaseModal( animationIn, animationOut, useNativeDriver: useNativeDriverProp, + useNativeDriverForBackdrop, hideModalContentWhileAnimating = false, animationInTiming, animationOutTiming, @@ -189,49 +190,59 @@ function BaseModal( }); return ( - e.stopPropagation()} - onBackdropPress={handleBackdropPress} - // Note: Escape key on web/desktop will trigger onBackButtonPress callback - // eslint-disable-next-line react/jsx-props-no-multi-spaces - onBackButtonPress={Modal.closeTop} - onModalShow={handleShowModal} - propagateSwipe={propagateSwipe} - onModalHide={hideModal} - onModalWillShow={saveFocusState} - onDismiss={handleDismissModal} - onSwipeComplete={() => onClose?.()} - swipeDirection={swipeDirection} - isVisible={isVisible} - backdropColor={theme.overlay} - backdropOpacity={!shouldUseCustomBackdrop && hideBackdrop ? 0 : variables.overlayOpacity} - backdropTransitionOutTiming={0} - hasBackdrop={fullscreen} - coverScreen={fullscreen} - style={modalStyle} - deviceHeight={windowHeight} - deviceWidth={windowWidth} - animationIn={animationIn ?? modalStyleAnimationIn} - animationOut={animationOut ?? modalStyleAnimationOut} - useNativeDriver={useNativeDriverProp && useNativeDriver} - hideModalContentWhileAnimating={hideModalContentWhileAnimating} - animationInTiming={animationInTiming} - animationOutTiming={animationOutTiming} - statusBarTranslucent={statusBarTranslucent} - onLayout={onLayout} - avoidKeyboard={avoidKeyboard} - customBackdrop={shouldUseCustomBackdrop ? : undefined} + // this is a workaround for modal not being visible on the new arch in some cases + // it's necessary to have a non-collapseable view as a parent of the modal to prevent + // a conflict between RN core and Reanimated shadow tree operations + // position absolute is needed to prevent the view from interfering with flex layout + - - - {children} - - - + e.stopPropagation()} + onBackdropPress={handleBackdropPress} + // Note: Escape key on web/desktop will trigger onBackButtonPress callback + // eslint-disable-next-line react/jsx-props-no-multi-spaces + onBackButtonPress={Modal.closeTop} + onModalShow={handleShowModal} + propagateSwipe={propagateSwipe} + onModalHide={hideModal} + onModalWillShow={saveFocusState} + onDismiss={handleDismissModal} + onSwipeComplete={() => onClose?.()} + swipeDirection={swipeDirection} + isVisible={isVisible} + backdropColor={theme.overlay} + backdropOpacity={!shouldUseCustomBackdrop && hideBackdrop ? 0 : variables.overlayOpacity} + backdropTransitionOutTiming={0} + hasBackdrop={fullscreen} + coverScreen={fullscreen} + style={modalStyle} + deviceHeight={windowHeight} + deviceWidth={windowWidth} + animationIn={animationIn ?? modalStyleAnimationIn} + animationOut={animationOut ?? modalStyleAnimationOut} + useNativeDriver={useNativeDriverProp && useNativeDriver} + useNativeDriverForBackdrop={useNativeDriverForBackdrop && useNativeDriver} + hideModalContentWhileAnimating={hideModalContentWhileAnimating} + animationInTiming={animationInTiming} + animationOutTiming={animationOutTiming} + statusBarTranslucent={statusBarTranslucent} + onLayout={onLayout} + avoidKeyboard={avoidKeyboard} + customBackdrop={shouldUseCustomBackdrop ? : undefined} + > + + + {children} + + + + ); } diff --git a/src/components/Modal/index.android.tsx b/src/components/Modal/index.android.tsx index 7cb2c6083752..c5d777c096e1 100644 --- a/src/components/Modal/index.android.tsx +++ b/src/components/Modal/index.android.tsx @@ -8,6 +8,7 @@ function Modal({useNativeDriver = true, ...rest}: BaseModalProps) { return ( diff --git a/src/components/Modal/index.ios.tsx b/src/components/Modal/index.ios.tsx index b26ba6cd0f89..c04b1c0ec54a 100644 --- a/src/components/Modal/index.ios.tsx +++ b/src/components/Modal/index.ios.tsx @@ -5,6 +5,7 @@ import type BaseModalProps from './types'; function Modal({children, ...rest}: BaseModalProps) { return ( diff --git a/src/components/OnboardingWelcomeVideo.tsx b/src/components/OnboardingWelcomeVideo.tsx index f38bd4edcc10..257bd1b9c457 100644 --- a/src/components/OnboardingWelcomeVideo.tsx +++ b/src/components/OnboardingWelcomeVideo.tsx @@ -1,6 +1,7 @@ import type {VideoReadyForDisplayEvent} from 'expo-av'; import React, {useCallback, useEffect, useState} from 'react'; import {View} from 'react-native'; +import {GestureHandlerRootView} from 'react-native-gesture-handler'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useOnboardingLayout from '@hooks/useOnboardingLayout'; @@ -134,22 +135,24 @@ function OnboardingWelcomeVideo() { : {}), }} > - - {getWelcomeVideo()} - - - {translate('onboarding.welcomeVideo.title')} - {translate('onboarding.welcomeVideo.description')} + + + {getWelcomeVideo()} + + + {translate('onboarding.welcomeVideo.title')} + {translate('onboarding.welcomeVideo.description')} + +