@verdaccio/proxy 9.0.0-next-9.1 → 9.0.0-next-9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/proxy.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import type { Agents, Delays, RetryOptions, Headers as gotHeaders } from 'got-cjs';
4
2
  import { Options } from 'got-cjs';
5
3
  import type Stream from 'node:stream';
package/build/proxy.js CHANGED
@@ -236,7 +236,7 @@ var ProxyStorage = exports.ProxyStorage = /*#__PURE__*/function () {
236
236
  value: function () {
237
237
  var _getRemoteMetadata = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(name, options) {
238
238
  var _this = this;
239
- var headers, method, uri, response, responseLength, _options$retry, _response, retry, etag, data, message, code, error, _t;
239
+ var headers, method, uri, response, responseLength, _options$retry, _response, retry, etag, data, err, message, code, error, _t;
240
240
  return _regenerator().w(function (_context) {
241
241
  while (1) switch (_context.p = _context.n) {
242
242
  case 0:
@@ -324,12 +324,14 @@ var ProxyStorage = exports.ProxyStorage = /*#__PURE__*/function () {
324
324
  response = _context.v;
325
325
  etag = response.headers.etag;
326
326
  data = response.body; // not modified status (304) registry does not return any payload
327
- // it is handled as an error
327
+ // it is handled as an error with the original 304 status preserved
328
328
  if (!(((_response = response) === null || _response === void 0 ? void 0 : _response.statusCode) === _core.HTTP_STATUS.NOT_MODIFIED)) {
329
329
  _context.n = 4;
330
330
  break;
331
331
  }
332
- throw _core.errorUtils.getCode(_core.HTTP_STATUS.NOT_MODIFIED, _core.API_ERROR.NOT_MODIFIED_NO_DATA);
332
+ err = _core.errorUtils.getNotFound(_core.API_ERROR.NOT_MODIFIED_NO_DATA);
333
+ err.code = _core.HTTP_STATUS.NOT_MODIFIED;
334
+ throw err;
333
335
  case 4:
334
336
  debug('uri %s success', uri);
335
337
  message = "@{!status}, req: '@{request.method} @{request.url}'";
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","names":["_JSONStream","_interopRequireDefault","require","_debug","_gotCjs","_interopRequireWildcard","_lodash","_nodeStream","_nodeUrl","_core","_agent","_proxyUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t3","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_regenerator","toStringTag","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","_classCallCheck","_defineProperties","key","_createClass","_toPrimitive","toPrimitive","String","Number","debug","buildDebug","encode","thing","encodeURIComponent","replace","jsonContentType","HEADERS","JSON","contentTypeAccept","concat","setConfig","config","def","_","isNil","ProxyStorage","exports","uplinkName","mainConfig","logger","agent","_mainConfig$user_agen","_this$config$max_fail","_this$max_fails","failed_requests","userAgent","user_agent","ca","server_id","agent_options","keepAlive","maxSockets","maxFreeSockets","url","URL","isHTTPS","protocol","_setupProxy","hostname","getAgent","timeout","warn","join","maxage","parseInterval","request","max_fails","fail_timeout","strict_ssl","Boolean","retry","limit","agentInstance","CustomAgents","proxy","getHeaders","headers","undefined","accept","ACCEPT","acceptEncoding","ACCEPT_ENCODING","USER_AGENT","setAuthNext","auth","AUTHORIZATION","isObject","token","_throwErrorAuth","tokenConf","isString","token_env","process","env","NPM_TOKEN","error","constants","ERROR_CODE","token_required","type","TOKEN_BASIC","_setHeaderAuthorization","message","Error","_type","toLowerCase","TOKEN_BEARER","authUtils","buildToken","applyUplinkHeaders","_getRemoteMetadata","_callee","name","options","_this","method","uri","response","responseLength","_options$retry","_response","etag","data","code","_t","_context","_ifRequestFailure","errorUtils","getInternalError","API_ERROR","UPLINK_OFFLINE","addProxyHeaders","remoteAddress","NONE_MATCH","got","responseType","hooks","afterResponse","statusCode","HTTP_STATUS","OK","MULTIPLE_CHOICES","host","beforeRetry","count","info","retryCount","on","last_request_time","Date","now","eventResponse","http","status","isNull","progress","total","body","NOT_MODIFIED","getCode","NOT_MODIFIED_NO_DATA","bytes","json","stringify","out","NOT_FOUND","getNotFound","NOT_PACKAGE_UPLINK","BAD_STATUS_CODE","remoteStatus","_isRequestTimeout","getServiceUnavailable","SERVER_TIME_OUT","getRemoteMetadata","_x","_x2","fetchTarball","overrideOptions","_this$retry","_this2","readStream","stream","_search","_callee2","_ref","abort","res","streamSearch","streamResponse","_t2","_context2","href","uplink","signal","text","parse","PassThrough","objectMode","Readable","from","pipe","JSONStream","end","errorMessage","search","_x3","FORWARDED_FOR","Math","abs","err","_err$response","REQUEST_TIMEOUT","BAD_GATEWAY","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","mainconfig","noProxyList","proxy_key","no_proxy","split","isArray","noProxyItem","endsWith","rule"],"sources":["../src/proxy.ts"],"sourcesContent":["import JSONStream from 'JSONStream';\nimport buildDebug from 'debug';\nimport type { Agents, Delays, RequestError, RetryOptions, Headers as gotHeaders } from 'got-cjs';\nimport got, { Options } from 'got-cjs';\nimport _ from 'lodash';\nimport type Stream from 'node:stream';\nimport { PassThrough, Readable } from 'node:stream';\nimport { URL } from 'node:url';\n\nimport type { searchUtils } from '@verdaccio/core';\nimport {\n API_ERROR,\n HEADERS,\n HTTP_STATUS,\n TOKEN_BASIC,\n TOKEN_BEARER,\n authUtils,\n constants,\n errorUtils,\n} from '@verdaccio/core';\nimport type { AgentOptionsConf, Config, Logger, Manifest, UpLinkConf } from '@verdaccio/types';\n\nimport CustomAgents from './agent';\nimport { parseInterval } from './proxy-utils';\n\nconst debug = buildDebug('verdaccio:proxy');\n\nconst encode = function (thing): string {\n return encodeURIComponent(thing).replace(/^%40/, '@');\n};\n\nconst jsonContentType = HEADERS.JSON;\nconst contentTypeAccept = `${jsonContentType};`;\n\n/**\n * Just a helper (`config[key] || default` doesn't work because of zeroes)\n */\nconst setConfig = (config: UpLinkConfLocal, key: string, def): string => {\n return _.isNil(config[key]) === false ? config[key] : def;\n};\n\nexport type UpLinkConfLocal = UpLinkConf & {\n no_proxy?: string;\n};\n\nexport interface ProxyList {\n [key: string]: IProxy;\n}\n\nexport type ProxySearchParams = {\n url: string;\n abort: AbortController;\n query?: searchUtils.SearchQuery;\n headers?: Headers;\n retry?: Partial<RetryOptions>;\n};\nexport interface IProxy {\n uplinkName: string;\n config: UpLinkConfLocal;\n failed_requests: number;\n userAgent: string;\n ca?: string | void;\n logger: Logger;\n server_id: string;\n url: URL;\n maxage: number;\n timeout: Delays;\n max_fails: number;\n fail_timeout: number;\n search(options: ProxySearchParams): Promise<Stream.Readable>;\n getRemoteMetadata(\n name: string,\n options: Partial<ISyncUplinksOptions>\n ): Promise<[Manifest, string]>;\n fetchTarball(\n url: string,\n options: Partial<Pick<ISyncUplinksOptions, 'remoteAddress' | 'etag' | 'retry'>>\n ): PassThrough;\n}\n\n// this type is need it by storage\nexport { Options as FetchOptions };\n\nexport interface ISyncUplinksOptions extends Options {\n uplinksLook?: boolean;\n etag?: string;\n remoteAddress?: string;\n}\n\n/**\n * Implements Storage interface\n * (same for storage.js, local-storage.js, up-storage.js)\n */\nclass ProxyStorage implements IProxy {\n public uplinkName: string;\n public config: UpLinkConfLocal;\n public failed_requests: number;\n public userAgent: string;\n public ca: string | void;\n public logger: Logger;\n public server_id: string;\n public url: URL;\n public maxage: number;\n public timeout: Delays;\n public max_fails: number;\n public fail_timeout: number;\n public agent_options: AgentOptionsConf;\n public proxy: string | undefined;\n private agent: Agents;\n // @ts-ignore\n public last_request_time: number | null;\n public strict_ssl: boolean;\n private retry: Partial<RetryOptions>;\n\n public constructor(\n uplinkName: string,\n config: UpLinkConfLocal,\n mainConfig: Config,\n logger: Logger,\n agent?: Agents\n ) {\n this.uplinkName = uplinkName;\n this.config = config;\n this.failed_requests = 0;\n this.userAgent = mainConfig.user_agent ?? 'hidden';\n this.ca = config.ca;\n this.logger = logger;\n this.server_id = mainConfig.server_id;\n this.agent_options = setConfig(this.config, 'agent_options', {\n keepAlive: true,\n maxSockets: 40,\n maxFreeSockets: 10,\n }) as AgentOptionsConf;\n this.url = new URL(this.config.url);\n const isHTTPS = this.url.protocol === 'https:';\n this._setupProxy(this.url.hostname, config, mainConfig, isHTTPS);\n this.agent = agent ?? this.getAgent();\n this.config.url = this.config.url.replace(/\\/$/, '');\n\n if (this.config.timeout && Number(this.config.timeout) >= 1000) {\n this.logger.warn(\n [\n 'Too big timeout value: ' + this.config.timeout,\n 'We changed time format to nginx-like one',\n '(see http://nginx.org/en/docs/syntax.html)',\n 'so please update your config accordingly',\n ].join('\\n')\n );\n }\n\n // a bunch of different configurable timers\n this.maxage = parseInterval(setConfig(this.config, 'maxage', '2m'));\n // https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md\n this.timeout = {\n request: parseInterval(setConfig(this.config, 'timeout', '30s')),\n };\n debug('set timeout %s', this.timeout);\n this.max_fails = Number(setConfig(this.config, 'max_fails', this.config.max_fails ?? 2));\n this.fail_timeout = parseInterval(setConfig(this.config, 'fail_timeout', '5m'));\n this.strict_ssl = Boolean(setConfig(this.config, 'strict_ssl', true));\n this.retry = { limit: this.max_fails ?? 2 };\n }\n\n private getAgent() {\n if (!this.agent) {\n // TODO: the config.ca (certificates) is not yet injected here\n const agentInstance = new CustomAgents(this.config.url, this.proxy, this.agent_options);\n return agentInstance.get();\n } else {\n return this.agent;\n }\n }\n\n public getHeaders(headers = {}): gotHeaders {\n const accept = HEADERS.ACCEPT;\n const acceptEncoding = HEADERS.ACCEPT_ENCODING;\n const userAgent = HEADERS.USER_AGENT;\n\n headers[accept] = headers[accept] || contentTypeAccept;\n headers[acceptEncoding] = headers[acceptEncoding] || 'gzip';\n // registry.npmjs.org will only return search result if user-agent include string 'npm'\n headers[userAgent] = headers[userAgent] || `npm (${this.userAgent})`;\n return this.setAuthNext(headers);\n }\n\n /**\n * Validate configuration auth and assign Header authorization\n * @param {Object} headers\n * @return {Object}\n * @private\n */\n private setAuthNext(headers: gotHeaders): gotHeaders {\n const { auth } = this.config;\n if (typeof auth === 'undefined' || typeof headers[HEADERS.AUTHORIZATION] === 'string') {\n return headers;\n }\n\n if (_.isObject(auth) === false && _.isObject((auth as any).token) === false) {\n this._throwErrorAuth('Auth invalid');\n }\n\n // get NPM_TOKEN http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules\n // or get other variable export in env\n // https://github.com/verdaccio/verdaccio/releases/tag/v2.5.0\n let token: any;\n const tokenConf: any = auth;\n if (_.isNil(tokenConf.token) === false && _.isString(tokenConf.token)) {\n debug('use token from config');\n token = tokenConf.token;\n } else if (_.isNil(tokenConf.token_env) === false) {\n if (typeof tokenConf.token_env === 'string') {\n debug('use token from env %o', tokenConf.token_env);\n token = process.env[tokenConf.token_env];\n } else if (typeof tokenConf.token_env === 'boolean' && tokenConf.token_env) {\n debug('use token from env NPM_TOKEN');\n token = process.env.NPM_TOKEN;\n } else {\n this.logger.error(constants.ERROR_CODE.token_required);\n this._throwErrorAuth(constants.ERROR_CODE.token_required);\n }\n } else {\n debug('use token from env NPM_TOKEN');\n token = process.env.NPM_TOKEN;\n }\n\n if (typeof token === 'undefined') {\n this._throwErrorAuth(constants.ERROR_CODE.token_required);\n }\n\n // define type Auth allow basic and bearer\n const type = tokenConf.type || TOKEN_BASIC;\n debug('token type %o', type);\n this._setHeaderAuthorization(headers, type, token);\n\n return headers;\n }\n\n /**\n * @param {string} message\n * @throws {Error}\n * @private\n */\n private _throwErrorAuth(message: string): Error {\n this.logger.error(message);\n throw new Error(message);\n }\n\n /**\n * Assign Header authorization with type authentication\n * @param {Object} headers\n * @param {string} type\n * @param {string} token\n * @private\n */\n private _setHeaderAuthorization(headers: any, type: string, token: any): void {\n const _type: string = type.toLowerCase();\n\n if (_type !== TOKEN_BEARER.toLowerCase() && _type !== TOKEN_BASIC.toLowerCase()) {\n this._throwErrorAuth(`Auth type '${_type}' not allowed`);\n }\n\n headers[HEADERS.AUTHORIZATION] = authUtils.buildToken(type, token);\n }\n\n /**\n * It will add or override specified headers from config file.\n *\n * Eg:\n *\n * uplinks:\n npmjs:\n url: https://registry.npmjs.org/\n headers:\n Accept: \"application/vnd.npm.install-v2+json; q=1.0\"\n verdaccio-staging:\n url: https://mycompany.com/npm\n headers:\n Accept: \"application/json\"\n authorization: \"Basic YourBase64EncodedCredentials==\"\n\n * @param {Object} headers\n * @private\n */\n private applyUplinkHeaders(headers: gotHeaders): gotHeaders {\n if (!this.config.headers) {\n return headers;\n }\n\n // add/override headers specified in the config\n /* eslint guard-for-in: 0 */\n for (const key in this.config.headers) {\n headers[key] = this.config.headers[key];\n }\n return headers;\n }\n\n public async getRemoteMetadata(\n name: string,\n options: Partial<ISyncUplinksOptions>\n ): Promise<[Manifest, string]> {\n if (this._ifRequestFailure()) {\n throw errorUtils.getInternalError(API_ERROR.UPLINK_OFFLINE);\n }\n\n // FUTURE: allow mix headers that comes from the client\n debug('getting metadata for package %s', name);\n let headers = this.getHeaders(options?.headers);\n headers = this.addProxyHeaders(headers, options.remoteAddress);\n headers = this.applyUplinkHeaders(headers);\n // the following headers cannot be overwritten\n if (_.isNil(options.etag) === false) {\n headers[HEADERS.NONE_MATCH] = options.etag;\n headers[HEADERS.ACCEPT] = contentTypeAccept;\n }\n const method = options.method || 'GET';\n const uri = this.config.url + `/${encode(name)}`;\n debug('set retry limit is %s', this.retry.limit);\n let response;\n let responseLength = 0;\n try {\n const retry = options?.retry ?? this.retry;\n debug('retry initial count %s', retry);\n response = await got(uri, {\n headers,\n responseType: 'json',\n method,\n agent: this.agent,\n retry,\n timeout: this.timeout,\n hooks: {\n afterResponse: [\n (afterResponse) => {\n const code = afterResponse.statusCode;\n debug('after response code is %s', code);\n if (code >= HTTP_STATUS.OK && code < HTTP_STATUS.MULTIPLE_CHOICES) {\n if (this.failed_requests >= this.max_fails) {\n this.failed_requests = 0;\n this.logger.warn(\n {\n host: this.url.host,\n },\n 'host @{host} is now online'\n );\n }\n }\n\n return afterResponse;\n },\n ],\n beforeRetry: [\n (error: RequestError, count: number) => {\n debug('retry %s count: %s', uri, count);\n this.failed_requests = count ?? 0;\n this.logger.info(\n {\n request: {\n method: method,\n url: uri,\n },\n error: error.message,\n retryCount: this.failed_requests,\n },\n \"retry @{retryCount} req: '@{request.method} @{request.url}'\"\n );\n if (this.failed_requests >= this.max_fails) {\n this.logger.warn(\n {\n host: this.url.host,\n },\n 'host @{host} is now offline'\n );\n }\n },\n ],\n },\n })\n .on('request', () => {\n this.last_request_time = Date.now();\n })\n .on<any>('response', (eventResponse) => {\n const message = \"@{!status}, req: '@{request.method} @{request.url}' (streaming)\";\n this.logger.http(\n {\n request: {\n method: method,\n url: uri,\n },\n status: _.isNull(eventResponse) === false ? eventResponse.statusCode : 'ERR',\n },\n message\n );\n })\n .on('downloadProgress', (progress) => {\n if (progress.total) {\n debug('responseLength %s', progress.total);\n responseLength = progress.total;\n }\n });\n const etag = response.headers.etag as string;\n const data = response.body;\n\n // not modified status (304) registry does not return any payload\n // it is handled as an error\n if (response?.statusCode === HTTP_STATUS.NOT_MODIFIED) {\n throw errorUtils.getCode(HTTP_STATUS.NOT_MODIFIED, API_ERROR.NOT_MODIFIED_NO_DATA);\n }\n\n debug('uri %s success', uri);\n const message = \"@{!status}, req: '@{request.method} @{request.url}'\";\n this.logger.http(\n {\n // if error is null/false change this to undefined so it wont log\n request: { method: method, url: uri },\n status: response.statusCode,\n bytes: {\n in: options?.json ? JSON.stringify(options?.json).length : 0,\n out: responseLength || 0,\n },\n },\n message\n );\n return [data, etag];\n } catch (err: any) {\n debug('error %s on uri %s', err.code, uri);\n if (err.code === 'ERR_NON_2XX_3XX_RESPONSE') {\n const code = err.response.statusCode;\n debug('error code %s', code);\n if (code === HTTP_STATUS.NOT_FOUND) {\n throw errorUtils.getNotFound(API_ERROR.NOT_PACKAGE_UPLINK);\n }\n\n if (!(code >= HTTP_STATUS.OK && code < HTTP_STATUS.MULTIPLE_CHOICES)) {\n const error = errorUtils.getInternalError(`${API_ERROR.BAD_STATUS_CODE}: ${code}`);\n // we need this code to identify outside which status code triggered the error\n error.remoteStatus = code;\n throw error;\n }\n } else if (this._isRequestTimeout(err)) {\n debug('error code timeout');\n throw errorUtils.getServiceUnavailable(API_ERROR.SERVER_TIME_OUT);\n }\n throw err;\n }\n }\n\n // FIXME: handle stream and retry\n public fetchTarball(\n url: string,\n overrideOptions: Pick<ISyncUplinksOptions, 'remoteAddress' | 'etag' | 'retry'>\n ): any {\n debug('fetching url for %s', url);\n const options = { ...this.config, ...overrideOptions };\n let headers = this.getHeaders(options?.headers);\n headers = this.addProxyHeaders(headers, options.remoteAddress);\n headers = this.applyUplinkHeaders(headers);\n // the following headers cannot be overwritten\n if (_.isNil(options.etag) === false) {\n headers[HEADERS.NONE_MATCH] = options.etag;\n headers[HEADERS.ACCEPT] = contentTypeAccept;\n }\n const method = 'GET';\n // const uri = this.config.url + `/${encode(name)}`;\n debug('request uri for %s', url);\n\n const readStream = got\n .stream(url, {\n headers,\n method,\n agent: this.agent,\n // FIXME: this should be taken from construtor as priority\n retry: this.retry ?? options?.retry,\n timeout: this.timeout,\n })\n .on('request', () => {\n this.last_request_time = Date.now();\n });\n\n return readStream;\n }\n\n /**\n * Perform a stream search.\n * @param {*} options request options\n * @return {Stream}\n */\n public async search({ url, abort, retry }: ProxySearchParams): Promise<Stream.Readable> {\n try {\n // Incoming URL is relative ie /-/v1/search...\n const uri = new URL(url, this.url).href;\n this.logger.http(\n { uri, uplink: this.uplinkName },\n 'search request to uplink @{uplink} - @{uri}'\n );\n debug('searching on %o', uri);\n const response = got(uri, {\n signal: abort ? abort.signal : {},\n agent: this.agent,\n timeout: this.timeout,\n retry: retry ?? this.retry,\n });\n\n const res = await response.text();\n const total = JSON.parse(res).total;\n debug('number of packages found: %o', total);\n const streamSearch = new PassThrough({ objectMode: true });\n const streamResponse = Readable.from(res);\n // objects is one of the properties on the body, it ignores date and total\n streamResponse.pipe(JSONStream.parse('objects')).pipe(streamSearch, { end: true });\n return streamSearch;\n } catch (err: any) {\n debug('search error %s', err);\n if (err.response.statusCode === 409) {\n throw errorUtils.getInternalError(`bad status code ${err.response.statusCode} from uplink`);\n }\n this.logger.error(\n { errorMessage: err?.message, name: this.uplinkName },\n 'proxy uplink @{name} search error: @{errorMessage}'\n );\n throw err;\n }\n }\n\n private addProxyHeaders(headers: gotHeaders, remoteAddress?: string): gotHeaders {\n // Only submit X-Forwarded-For field if we don't have a proxy selected\n // in the config file.\n //\n // Otherwise misconfigured proxy could return 407\n if (!this.proxy) {\n headers[HEADERS.FORWARDED_FOR] =\n (headers['x-forwarded-for'] ? headers['x-forwarded-for'] + ', ' : '') + remoteAddress;\n }\n\n // always attach Via header to avoid loops, even if we're not proxying\n headers['via'] = headers['via'] ? headers['via'] + ', ' : '';\n headers['via'] += '1.1 ' + this.server_id + ' (Verdaccio)';\n\n return headers;\n }\n\n /**\n * If the request failure.\n * @return {boolean}\n * @private\n */\n private _ifRequestFailure(): boolean {\n return (\n this.failed_requests >= this.max_fails &&\n Math.abs(Date.now() - (this.last_request_time as number)) < this.fail_timeout\n );\n }\n\n /**\n * Check if the request timed out (network or http errors).\n * @param {RequestError} err\n * @return {boolean}\n */\n private _isRequestTimeout(err: RequestError): boolean {\n const code = err?.response?.statusCode;\n return (\n err.code === 'ETIMEDOUT' ||\n err.code === 'ESOCKETTIMEDOUT' ||\n err.code === 'ECONNRESET' ||\n code === HTTP_STATUS.REQUEST_TIMEOUT ||\n code === HTTP_STATUS.BAD_GATEWAY ||\n code === HTTP_STATUS.SERVICE_UNAVAILABLE ||\n code === HTTP_STATUS.GATEWAY_TIMEOUT\n );\n }\n\n /**\n * Set up a proxy.\n * @param {*} hostname\n * @param {*} config\n * @param {*} mainconfig\n * @param {*} isHTTPS\n */\n private _setupProxy(\n hostname: string,\n config: UpLinkConfLocal,\n mainconfig: Config,\n isHTTPS: boolean\n ): void {\n let noProxyList;\n const proxy_key: string = isHTTPS ? 'https_proxy' : 'http_proxy';\n debug('looking for %o', proxy_key);\n\n // get http_proxy and no_proxy configs\n if (proxy_key in config) {\n this.proxy = config[proxy_key];\n debug('found %o in uplink config', this.proxy);\n } else if (proxy_key in mainconfig) {\n this.proxy = mainconfig[proxy_key];\n debug('found %o in main config', this.proxy);\n }\n if ('no_proxy' in config) {\n noProxyList = config.no_proxy;\n } else if ('no_proxy' in mainconfig) {\n noProxyList = mainconfig.no_proxy;\n }\n\n // use wget-like algorithm to determine if proxy shouldn't be used\n if (hostname[0] !== '.') {\n hostname = '.' + hostname;\n }\n\n if (_.isString(noProxyList) && noProxyList.length) {\n noProxyList = noProxyList.split(',');\n }\n\n if (_.isArray(noProxyList)) {\n for (let i = 0; i < noProxyList.length; i++) {\n let noProxyItem = noProxyList[i];\n if (noProxyItem[0] !== '.') {\n noProxyItem = '.' + noProxyItem;\n }\n if (hostname.endsWith(noProxyItem)) {\n if (this.proxy) {\n debug('not using proxy, excluded by @{rule}', noProxyItem);\n this.logger.debug(\n { url: this.url.href, rule: noProxyItem },\n 'not using proxy for @{url}, excluded by @{rule} rule'\n );\n this.proxy = undefined;\n }\n break;\n }\n }\n }\n\n if (typeof this.proxy === 'string') {\n debug('using proxy @{proxy} for @{url}', this.proxy, this.url.href);\n this.logger.debug(\n { url: this.url.href, proxy: this.proxy },\n 'using proxy @{proxy} for @{url}'\n );\n }\n }\n}\n\nexport { ProxyStorage };\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAGA,IAAAO,KAAA,GAAAP,OAAA;AAYA,IAAAQ,MAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAA8C,SAAAG,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,wBAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,GAAA,IAAAd,CAAA,gBAAAc,GAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,GAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,GAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,GAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,GAAA,IAAAd,CAAA,CAAAc,GAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAZ,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,gBAAAA,CAAA;AAAA,SAAAU,QAAAJ,CAAA,sCAAAI,OAAA,wBAAAU,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAf,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAc,MAAA,IAAAd,CAAA,CAAAgB,WAAA,KAAAF,MAAA,IAAAd,CAAA,KAAAc,MAAA,CAAAG,SAAA,qBAAAjB,CAAA,KAAAI,OAAA,CAAAJ,CAAA;AAAA,SAAAkB,QAAAxB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAQ,IAAA,CAAAzB,CAAA,OAAAiB,MAAA,CAAAS,qBAAA,QAAApB,CAAA,GAAAW,MAAA,CAAAS,qBAAA,CAAA1B,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAqB,MAAA,WAAAxB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAyB,UAAA,OAAA3B,CAAA,CAAA4B,IAAA,CAAAC,KAAA,CAAA7B,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA8B,cAAA/B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAA6B,SAAA,CAAAC,MAAA,EAAA9B,CAAA,UAAAF,CAAA,WAAA+B,SAAA,CAAA7B,CAAA,IAAA6B,SAAA,CAAA7B,CAAA,QAAAA,CAAA,OAAAqB,OAAA,CAAAP,MAAA,CAAAhB,CAAA,OAAAiC,OAAA,WAAA/B,CAAA,IAAAgC,eAAA,CAAAnC,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAArC,CAAA,EAAAiB,MAAA,CAAAmB,yBAAA,CAAAnC,CAAA,KAAAuB,OAAA,CAAAP,MAAA,CAAAhB,CAAA,GAAAiC,OAAA,WAAA/B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAAmC,gBAAAnC,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAmC,cAAA,CAAAnC,CAAA,MAAAH,CAAA,GAAAiB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,IAAAoC,KAAA,EAAAtC,CAAA,EAAA2B,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAAzC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAA0C,aAAA,IAtB9C,uKAAA1C,CAAA,EAAAC,CAAA,EAAAE,CAAA,wBAAAiB,MAAA,GAAAA,MAAA,OAAAhB,CAAA,GAAAD,CAAA,CAAAkB,QAAA,kBAAAf,CAAA,GAAAH,CAAA,CAAAwC,WAAA,8BAAApC,EAAAJ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAC,CAAA,QAAAqC,CAAA,GAAAxC,CAAA,IAAAA,CAAA,CAAAmB,SAAA,YAAAsB,SAAA,GAAAzC,CAAA,GAAAyC,SAAA,EAAAC,CAAA,GAAA7B,MAAA,CAAA8B,MAAA,CAAAH,CAAA,CAAArB,SAAA,UAAAyB,mBAAA,CAAAF,CAAA,uBAAA3C,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAC,CAAA,EAAAqC,CAAA,EAAAE,CAAA,EAAAtC,CAAA,MAAAyC,CAAA,GAAA3C,CAAA,QAAA4C,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA7C,CAAA,KAAAgD,CAAA,EAAApD,CAAA,EAAAqD,CAAA,EAAAC,CAAA,EAAA9C,CAAA,EAAA8C,CAAA,CAAAC,IAAA,CAAAvD,CAAA,MAAAsD,CAAA,WAAAA,EAAArD,CAAA,EAAAE,CAAA,WAAAI,CAAA,GAAAN,CAAA,EAAA2C,CAAA,MAAAE,CAAA,GAAA9C,CAAA,EAAAmD,CAAA,CAAA/C,CAAA,GAAAD,CAAA,EAAAkD,CAAA,gBAAAC,EAAAnD,CAAA,EAAAC,CAAA,SAAAwC,CAAA,GAAAzC,CAAA,EAAA2C,CAAA,GAAA1C,CAAA,EAAAH,CAAA,OAAAiD,CAAA,IAAA1C,CAAA,KAAAF,CAAA,IAAAL,CAAA,GAAAgD,CAAA,CAAAhB,MAAA,EAAAhC,CAAA,UAAAK,CAAA,EAAAC,CAAA,GAAA0C,CAAA,CAAAhD,CAAA,GAAAqD,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAjD,CAAA,KAAAJ,CAAA,QAAAG,CAAA,GAAAkD,CAAA,KAAApD,CAAA,MAAA0C,CAAA,GAAAvC,CAAA,EAAAqC,CAAA,GAAArC,CAAA,YAAAqC,CAAA,WAAArC,CAAA,MAAAA,CAAA,MAAAP,CAAA,IAAAO,CAAA,OAAA+C,CAAA,MAAAhD,CAAA,GAAAH,CAAA,QAAAmD,CAAA,GAAA/C,CAAA,QAAAqC,CAAA,MAAAO,CAAA,CAAAC,CAAA,GAAAhD,CAAA,EAAA+C,CAAA,CAAA/C,CAAA,GAAAG,CAAA,OAAA+C,CAAA,GAAAE,CAAA,KAAAlD,CAAA,GAAAH,CAAA,QAAAI,CAAA,MAAAH,CAAA,IAAAA,CAAA,GAAAoD,CAAA,MAAAjD,CAAA,MAAAJ,CAAA,EAAAI,CAAA,MAAAH,CAAA,EAAA+C,CAAA,CAAA/C,CAAA,GAAAoD,CAAA,EAAAZ,CAAA,cAAAtC,CAAA,IAAAH,CAAA,aAAAkD,CAAA,QAAAH,CAAA,OAAA9C,CAAA,qBAAAE,CAAA,EAAA2C,CAAA,EAAAO,CAAA,QAAAhD,CAAA,YAAAiD,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAZ,CAAA,GAAAK,CAAA,EAAAH,CAAA,GAAAU,CAAA,GAAAvD,CAAA,GAAA2C,CAAA,OAAA5C,CAAA,GAAA8C,CAAA,MAAAI,CAAA,KAAA3C,CAAA,KAAAqC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAO,CAAA,CAAA/C,CAAA,QAAAkD,CAAA,CAAAV,CAAA,EAAAE,CAAA,KAAAK,CAAA,CAAA/C,CAAA,GAAA0C,CAAA,GAAAK,CAAA,CAAAC,CAAA,GAAAN,CAAA,aAAAtC,CAAA,MAAAD,CAAA,QAAAqC,CAAA,KAAAtC,CAAA,YAAAL,CAAA,GAAAM,CAAA,CAAAD,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAAe,IAAA,CAAAT,CAAA,EAAAuC,CAAA,UAAAW,SAAA,2CAAAxD,CAAA,CAAAyD,IAAA,SAAAzD,CAAA,EAAA6C,CAAA,GAAA7C,CAAA,CAAAsC,KAAA,EAAAK,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAA3C,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAe,IAAA,CAAAT,CAAA,GAAAqC,CAAA,SAAAE,CAAA,GAAAW,SAAA,uCAAAnD,CAAA,gBAAAsC,CAAA,OAAArC,CAAA,GAAAP,CAAA,cAAAC,CAAA,IAAAiD,CAAA,GAAAC,CAAA,CAAA/C,CAAA,QAAA0C,CAAA,GAAA3C,CAAA,CAAAa,IAAA,CAAAZ,CAAA,EAAA+C,CAAA,OAAAE,CAAA,kBAAApD,CAAA,IAAAM,CAAA,GAAAP,CAAA,EAAA4C,CAAA,MAAAE,CAAA,GAAA7C,CAAA,cAAAO,CAAA,mBAAA+B,KAAA,EAAAtC,CAAA,EAAAyD,IAAA,EAAAR,CAAA,SAAA/C,CAAA,EAAAG,CAAA,EAAAC,CAAA,QAAAuC,CAAA,QAAAO,CAAA,gBAAAR,UAAA,cAAAc,kBAAA,cAAAC,2BAAA,KAAA3D,CAAA,GAAAgB,MAAA,CAAA4C,cAAA,MAAAjB,CAAA,MAAAxC,CAAA,IAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,SAAA4C,mBAAA,CAAA/C,CAAA,OAAAG,CAAA,iCAAAH,CAAA,GAAA6C,CAAA,GAAAc,0BAAA,CAAArC,SAAA,GAAAsB,SAAA,CAAAtB,SAAA,GAAAN,MAAA,CAAA8B,MAAA,CAAAH,CAAA,YAAApC,EAAAR,CAAA,WAAAiB,MAAA,CAAA6C,cAAA,GAAA7C,MAAA,CAAA6C,cAAA,CAAA9D,CAAA,EAAA4D,0BAAA,KAAA5D,CAAA,CAAAS,SAAA,GAAAmD,0BAAA,EAAAZ,mBAAA,CAAAhD,CAAA,EAAAM,CAAA,yBAAAN,CAAA,CAAAuB,SAAA,GAAAN,MAAA,CAAA8B,MAAA,CAAAD,CAAA,GAAA9C,CAAA,WAAA2D,iBAAA,CAAApC,SAAA,GAAAqC,0BAAA,EAAAZ,mBAAA,CAAAF,CAAA,iBAAAc,0BAAA,GAAAZ,mBAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAI,WAAA,wBAAAf,mBAAA,CAAAY,0BAAA,EAAAtD,CAAA,wBAAA0C,mBAAA,CAAAF,CAAA,GAAAE,mBAAA,CAAAF,CAAA,EAAAxC,CAAA,gBAAA0C,mBAAA,CAAAF,CAAA,EAAA1C,CAAA,iCAAA4C,mBAAA,CAAAF,CAAA,8DAAAJ,YAAA,YAAAA,aAAA,aAAAsB,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAzD,CAAA;AAAA,SAAAwC,oBAAAhD,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA,QAAAM,CAAA,GAAAU,MAAA,CAAAC,cAAA,QAAAX,CAAA,uBAAAP,CAAA,IAAAO,CAAA,QAAAyC,mBAAA,YAAAkB,mBAAAlE,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA,aAAAK,EAAAH,CAAA,EAAAC,CAAA,IAAA4C,mBAAA,CAAAhD,CAAA,EAAAG,CAAA,YAAAH,CAAA,gBAAAmE,OAAA,CAAAhE,CAAA,EAAAC,CAAA,EAAAJ,CAAA,SAAAG,CAAA,GAAAI,CAAA,GAAAA,CAAA,CAAAP,CAAA,EAAAG,CAAA,IAAAoC,KAAA,EAAAnC,CAAA,EAAAwB,UAAA,GAAA3B,CAAA,EAAAuC,YAAA,GAAAvC,CAAA,EAAAwC,QAAA,GAAAxC,CAAA,MAAAD,CAAA,CAAAG,CAAA,IAAAC,CAAA,IAAAE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAA0C,mBAAA,CAAAhD,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA;AAAA,SAAAmE,mBAAAhE,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAG,CAAA,EAAAG,CAAA,EAAA+C,CAAA,EAAAT,CAAA,cAAArC,CAAA,GAAAH,CAAA,CAAAiD,CAAA,EAAAT,CAAA,GAAAE,CAAA,GAAAvC,CAAA,CAAAgC,KAAA,WAAAnC,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAAG,CAAA,CAAAmD,IAAA,GAAAzD,CAAA,CAAA6C,CAAA,IAAAuB,OAAA,CAAAC,OAAA,CAAAxB,CAAA,EAAAyB,IAAA,CAAApE,CAAA,EAAAG,CAAA;AAAA,SAAAkE,kBAAApE,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAgC,SAAA,aAAAqC,OAAA,WAAAlE,CAAA,EAAAG,CAAA,QAAA+C,CAAA,GAAAjD,CAAA,CAAA0B,KAAA,CAAA7B,CAAA,EAAAD,CAAA,YAAAyE,MAAArE,CAAA,IAAAgE,kBAAA,CAAAf,CAAA,EAAAlD,CAAA,EAAAG,CAAA,EAAAmE,KAAA,EAAAC,MAAA,UAAAtE,CAAA,cAAAsE,OAAAtE,CAAA,IAAAgE,kBAAA,CAAAf,CAAA,EAAAlD,CAAA,EAAAG,CAAA,EAAAmE,KAAA,EAAAC,MAAA,WAAAtE,CAAA,KAAAqE,KAAA;AAAA,SAAAE,gBAAAtB,CAAA,EAAAjD,CAAA,UAAAiD,CAAA,YAAAjD,CAAA,aAAAqD,SAAA;AAAA,SAAAmB,kBAAA5E,CAAA,EAAAG,CAAA,aAAAF,CAAA,MAAAA,CAAA,GAAAE,CAAA,CAAA8B,MAAA,EAAAhC,CAAA,UAAAK,CAAA,GAAAH,CAAA,CAAAF,CAAA,GAAAK,CAAA,CAAAsB,UAAA,GAAAtB,CAAA,CAAAsB,UAAA,QAAAtB,CAAA,CAAAkC,YAAA,kBAAAlC,CAAA,KAAAA,CAAA,CAAAmC,QAAA,QAAAxB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAsC,cAAA,CAAAhC,CAAA,CAAAuE,GAAA,GAAAvE,CAAA;AAAA,SAAAwE,aAAA9E,CAAA,EAAAG,CAAA,EAAAF,CAAA,WAAAE,CAAA,IAAAyE,iBAAA,CAAA5E,CAAA,CAAAuB,SAAA,EAAApB,CAAA,GAAAF,CAAA,IAAA2E,iBAAA,CAAA5E,CAAA,EAAAC,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,iBAAAyC,QAAA,SAAAzC,CAAA;AAAA,SAAAsC,eAAArC,CAAA,QAAAM,CAAA,GAAAwE,YAAA,CAAA9E,CAAA,gCAAAS,OAAA,CAAAH,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAwE,aAAA9E,CAAA,EAAAE,CAAA,oBAAAO,OAAA,CAAAT,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAmB,MAAA,CAAA4D,WAAA,kBAAAhF,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAgB,IAAA,CAAAf,CAAA,EAAAE,CAAA,gCAAAO,OAAA,CAAAH,CAAA,UAAAA,CAAA,YAAAkD,SAAA,yEAAAtD,CAAA,GAAA8E,MAAA,GAAAC,MAAA,EAAAjF,CAAA;AAwBA,IAAMkF,KAAK,GAAG,IAAAC,iBAAU,EAAC,iBAAiB,CAAC;AAE3C,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAaC,KAAK,EAAU;EACtC,OAAOC,kBAAkB,CAACD,KAAK,CAAC,CAACE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACvD,CAAC;AAED,IAAMC,eAAe,GAAGC,aAAO,CAACC,IAAI;AACpC,IAAMC,iBAAiB,MAAAC,MAAA,CAAMJ,eAAe,MAAG;;AAE/C;AACA;AACA;AACA,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,MAAuB,EAAElB,GAAW,EAAEmB,GAAG,EAAa;EACvE,OAAOC,kBAAC,CAACC,KAAK,CAACH,MAAM,CAAClB,GAAG,CAAC,CAAC,KAAK,KAAK,GAAGkB,MAAM,CAAClB,GAAG,CAAC,GAAGmB,GAAG;AAC3D,CAAC;;AAyCD;AASA;AACA;AACA;AACA;AAHA,IAIMG,YAAY,GAAAC,OAAA,CAAAD,YAAA;EAgBhB;;EAKA,SAAAA,aACEE,UAAkB,EAClBN,MAAuB,EACvBO,UAAkB,EAClBC,MAAc,EACdC,KAAc,EACd;IAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,eAAA;IAAAhC,eAAA,OAAAwB,YAAA;IACA,IAAI,CAACE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACN,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACa,eAAe,GAAG,CAAC;IACxB,IAAI,CAACC,SAAS,IAAAJ,qBAAA,GAAGH,UAAU,CAACQ,UAAU,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,QAAQ;IAClD,IAAI,CAACM,EAAE,GAAGhB,MAAM,CAACgB,EAAE;IACnB,IAAI,CAACR,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACS,SAAS,GAAGV,UAAU,CAACU,SAAS;IACrC,IAAI,CAACC,aAAa,GAAGnB,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,eAAe,EAAE;MAC3DmB,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,EAAE;MACdC,cAAc,EAAE;IAClB,CAAC,CAAqB;IACtB,IAAI,CAACC,GAAG,GAAG,IAAIC,YAAG,CAAC,IAAI,CAACvB,MAAM,CAACsB,GAAG,CAAC;IACnC,IAAME,OAAO,GAAG,IAAI,CAACF,GAAG,CAACG,QAAQ,KAAK,QAAQ;IAC9C,IAAI,CAACC,WAAW,CAAC,IAAI,CAACJ,GAAG,CAACK,QAAQ,EAAE3B,MAAM,EAAEO,UAAU,EAAEiB,OAAO,CAAC;IAChE,IAAI,CAACf,KAAK,GAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI,CAACmB,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC5B,MAAM,CAACsB,GAAG,GAAG,IAAI,CAACtB,MAAM,CAACsB,GAAG,CAAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAEpD,IAAI,IAAI,CAACO,MAAM,CAAC6B,OAAO,IAAI1C,MAAM,CAAC,IAAI,CAACa,MAAM,CAAC6B,OAAO,CAAC,IAAI,IAAI,EAAE;MAC9D,IAAI,CAACrB,MAAM,CAACsB,IAAI,CACd,CACE,yBAAyB,GAAG,IAAI,CAAC9B,MAAM,CAAC6B,OAAO,EAC/C,0CAA0C,EAC1C,4CAA4C,EAC5C,0CAA0C,CAC3C,CAACE,IAAI,CAAC,IAAI,CACb,CAAC;IACH;;IAEA;IACA,IAAI,CAACC,MAAM,GAAG,IAAAC,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnE;IACA,IAAI,CAAC6B,OAAO,GAAG;MACbK,OAAO,EAAE,IAAAD,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IACjE,CAAC;IACDZ,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAACyC,OAAO,CAAC;IACrC,IAAI,CAACM,SAAS,GAAGhD,MAAM,CAACY,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,WAAW,GAAAW,qBAAA,GAAE,IAAI,CAACX,MAAM,CAACmC,SAAS,cAAAxB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAC;IACxF,IAAI,CAACyB,YAAY,GAAG,IAAAH,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/E,IAAI,CAACqC,UAAU,GAAGC,OAAO,CAACvC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,IAAI,CAACuC,KAAK,GAAG;MAAEC,KAAK,GAAA5B,eAAA,GAAE,IAAI,CAACuB,SAAS,cAAAvB,eAAA,cAAAA,eAAA,GAAI;IAAE,CAAC;EAC7C;EAAC,OAAA7B,YAAA,CAAAqB,YAAA;IAAAtB,GAAA;IAAAtC,KAAA,EAED,SAAQoF,QAAQA,CAAA,EAAG;MACjB,IAAI,CAAC,IAAI,CAACnB,KAAK,EAAE;QACf;QACA,IAAMgC,aAAa,GAAG,IAAIC,iBAAY,CAAC,IAAI,CAAC1C,MAAM,CAACsB,GAAG,EAAE,IAAI,CAACqB,KAAK,EAAE,IAAI,CAACzB,aAAa,CAAC;QACvF,OAAOuB,aAAa,CAAC5H,GAAG,CAAC,CAAC;MAC5B,CAAC,MAAM;QACL,OAAO,IAAI,CAAC4F,KAAK;MACnB;IACF;EAAC;IAAA3B,GAAA;IAAAtC,KAAA,EAED,SAAOoG,UAAUA,CAAA,EAA2B;MAAA,IAA1BC,OAAO,GAAA5G,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6G,SAAA,GAAA7G,SAAA,MAAG,CAAC,CAAC;MAC5B,IAAM8G,MAAM,GAAGpD,aAAO,CAACqD,MAAM;MAC7B,IAAMC,cAAc,GAAGtD,aAAO,CAACuD,eAAe;MAC9C,IAAMpC,SAAS,GAAGnB,aAAO,CAACwD,UAAU;MAEpCN,OAAO,CAACE,MAAM,CAAC,GAAGF,OAAO,CAACE,MAAM,CAAC,IAAIlD,iBAAiB;MACtDgD,OAAO,CAACI,cAAc,CAAC,GAAGJ,OAAO,CAACI,cAAc,CAAC,IAAI,MAAM;MAC3D;MACAJ,OAAO,CAAC/B,SAAS,CAAC,GAAG+B,OAAO,CAAC/B,SAAS,CAAC,YAAAhB,MAAA,CAAY,IAAI,CAACgB,SAAS,MAAG;MACpE,OAAO,IAAI,CAACsC,WAAW,CAACP,OAAO,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA/D,GAAA;IAAAtC,KAAA,EAMA,SAAQ4G,WAAWA,CAACP,OAAmB,EAAc;MACnD,IAAQQ,IAAI,GAAK,IAAI,CAACrD,MAAM,CAApBqD,IAAI;MACZ,IAAI,OAAOA,IAAI,KAAK,WAAW,IAAI,OAAOR,OAAO,CAAClD,aAAO,CAAC2D,aAAa,CAAC,KAAK,QAAQ,EAAE;QACrF,OAAOT,OAAO;MAChB;MAEA,IAAI3C,kBAAC,CAACqD,QAAQ,CAACF,IAAI,CAAC,KAAK,KAAK,IAAInD,kBAAC,CAACqD,QAAQ,CAAEF,IAAI,CAASG,KAAK,CAAC,KAAK,KAAK,EAAE;QAC3E,IAAI,CAACC,eAAe,CAAC,cAAc,CAAC;MACtC;;MAEA;MACA;MACA;MACA,IAAID,KAAU;MACd,IAAME,SAAc,GAAGL,IAAI;MAC3B,IAAInD,kBAAC,CAACC,KAAK,CAACuD,SAAS,CAACF,KAAK,CAAC,KAAK,KAAK,IAAItD,kBAAC,CAACyD,QAAQ,CAACD,SAAS,CAACF,KAAK,CAAC,EAAE;QACrEpE,KAAK,CAAC,uBAAuB,CAAC;QAC9BoE,KAAK,GAAGE,SAAS,CAACF,KAAK;MACzB,CAAC,MAAM,IAAItD,kBAAC,CAACC,KAAK,CAACuD,SAAS,CAACE,SAAS,CAAC,KAAK,KAAK,EAAE;QACjD,IAAI,OAAOF,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;UAC3CxE,KAAK,CAAC,uBAAuB,EAAEsE,SAAS,CAACE,SAAS,CAAC;UACnDJ,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACJ,SAAS,CAACE,SAAS,CAAC;QAC1C,CAAC,MAAM,IAAI,OAAOF,SAAS,CAACE,SAAS,KAAK,SAAS,IAAIF,SAAS,CAACE,SAAS,EAAE;UAC1ExE,KAAK,CAAC,8BAA8B,CAAC;UACrCoE,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACC,SAAS;QAC/B,CAAC,MAAM;UACL,IAAI,CAACvD,MAAM,CAACwD,KAAK,CAACC,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;UACtD,IAAI,CAACV,eAAe,CAACQ,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;QAC3D;MACF,CAAC,MAAM;QACL/E,KAAK,CAAC,8BAA8B,CAAC;QACrCoE,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACC,SAAS;MAC/B;MAEA,IAAI,OAAOP,KAAK,KAAK,WAAW,EAAE;QAChC,IAAI,CAACC,eAAe,CAACQ,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;MAC3D;;MAEA;MACA,IAAMC,IAAI,GAAGV,SAAS,CAACU,IAAI,IAAIC,iBAAW;MAC1CjF,KAAK,CAAC,eAAe,EAAEgF,IAAI,CAAC;MAC5B,IAAI,CAACE,uBAAuB,CAACzB,OAAO,EAAEuB,IAAI,EAAEZ,KAAK,CAAC;MAElD,OAAOX,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA/D,GAAA;IAAAtC,KAAA,EAKA,SAAQiH,eAAeA,CAACc,OAAe,EAAS;MAC9C,IAAI,CAAC/D,MAAM,CAACwD,KAAK,CAACO,OAAO,CAAC;MAC1B,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAzF,GAAA;IAAAtC,KAAA,EAOA,SAAQ8H,uBAAuBA,CAACzB,OAAY,EAAEuB,IAAY,EAAEZ,KAAU,EAAQ;MAC5E,IAAMiB,KAAa,GAAGL,IAAI,CAACM,WAAW,CAAC,CAAC;MAExC,IAAID,KAAK,KAAKE,kBAAY,CAACD,WAAW,CAAC,CAAC,IAAID,KAAK,KAAKJ,iBAAW,CAACK,WAAW,CAAC,CAAC,EAAE;QAC/E,IAAI,CAACjB,eAAe,eAAA3D,MAAA,CAAe2E,KAAK,kBAAe,CAAC;MAC1D;MAEA5B,OAAO,CAAClD,aAAO,CAAC2D,aAAa,CAAC,GAAGsB,eAAS,CAACC,UAAU,CAACT,IAAI,EAAEZ,KAAK,CAAC;IACpE;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAjBE;IAAA1E,GAAA;IAAAtC,KAAA,EAmBA,SAAQsI,kBAAkBA,CAACjC,OAAmB,EAAc;MAC1D,IAAI,CAAC,IAAI,CAAC7C,MAAM,CAAC6C,OAAO,EAAE;QACxB,OAAOA,OAAO;MAChB;;MAEA;MACA;MACA,KAAK,IAAM/D,IAAG,IAAI,IAAI,CAACkB,MAAM,CAAC6C,OAAO,EAAE;QACrCA,OAAO,CAAC/D,IAAG,CAAC,GAAG,IAAI,CAACkB,MAAM,CAAC6C,OAAO,CAAC/D,IAAG,CAAC;MACzC;MACA,OAAO+D,OAAO;IAChB;EAAC;IAAA/D,GAAA;IAAAtC,KAAA;MAAA,IAAAuI,kBAAA,GAAAtG,iBAAA,cAAA9B,YAAA,GAAAuB,CAAA,CAED,SAAA8G,QACEC,IAAY,EACZC,OAAqC;QAAA,IAAAC,KAAA;QAAA,IAAAtC,OAAA,EAAAuC,MAAA,EAAAC,GAAA,EAAAC,QAAA,EAAAC,cAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAlD,KAAA,EAAAmD,IAAA,EAAAC,IAAA,EAAApB,OAAA,EAAAqB,IAAA,EAAA5B,KAAA,EAAA6B,EAAA;QAAA,OAAAlJ,YAAA,GAAAsB,CAAA,WAAA6H,QAAA;UAAA,kBAAAA,QAAA,CAAA5I,CAAA,GAAA4I,QAAA,CAAAzL,CAAA;YAAA;cAAA,KAEjC,IAAI,CAAC0L,iBAAiB,CAAC,CAAC;gBAAAD,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cAAA,MACpB2L,gBAAU,CAACC,gBAAgB,CAACC,eAAS,CAACC,cAAc,CAAC;YAAA;cAG7D;cACA/G,KAAK,CAAC,iCAAiC,EAAE6F,IAAI,CAAC;cAC1CpC,OAAO,GAAG,IAAI,CAACD,UAAU,CAACsC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErC,OAAO,CAAC;cAC/CA,OAAO,GAAG,IAAI,CAACuD,eAAe,CAACvD,OAAO,EAAEqC,OAAO,CAACmB,aAAa,CAAC;cAC9DxD,OAAO,GAAG,IAAI,CAACiC,kBAAkB,CAACjC,OAAO,CAAC;cAC1C;cACA,IAAI3C,kBAAC,CAACC,KAAK,CAAC+E,OAAO,CAACQ,IAAI,CAAC,KAAK,KAAK,EAAE;gBACnC7C,OAAO,CAAClD,aAAO,CAAC2G,UAAU,CAAC,GAAGpB,OAAO,CAACQ,IAAI;gBAC1C7C,OAAO,CAAClD,aAAO,CAACqD,MAAM,CAAC,GAAGnD,iBAAiB;cAC7C;cACMuF,MAAM,GAAGF,OAAO,CAACE,MAAM,IAAI,KAAK;cAChCC,GAAG,GAAG,IAAI,CAACrF,MAAM,CAACsB,GAAG,OAAAxB,MAAA,CAAOR,MAAM,CAAC2F,IAAI,CAAC,CAAE;cAChD7F,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAACmD,KAAK,CAACC,KAAK,CAAC;cAE5C+C,cAAc,GAAG,CAAC;cAAAO,QAAA,CAAA5I,CAAA;cAEdqF,KAAK,IAAAiD,cAAA,GAAGN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3C,KAAK,cAAAiD,cAAA,cAAAA,cAAA,GAAI,IAAI,CAACjD,KAAK;cAC1CnD,KAAK,CAAC,wBAAwB,EAAEmD,KAAK,CAAC;cAACuD,QAAA,CAAAzL,CAAA;cAAA,OACtB,IAAAkM,kBAAG,EAAClB,GAAG,EAAE;gBACxBxC,OAAO,EAAPA,OAAO;gBACP2D,YAAY,EAAE,MAAM;gBACpBpB,MAAM,EAANA,MAAM;gBACN3E,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjB8B,KAAK,EAALA,KAAK;gBACLV,OAAO,EAAE,IAAI,CAACA,OAAO;gBACrB4E,KAAK,EAAE;kBACLC,aAAa,EAAE,CACb,UAACA,aAAa,EAAK;oBACjB,IAAMd,IAAI,GAAGc,aAAa,CAACC,UAAU;oBACrCvH,KAAK,CAAC,2BAA2B,EAAEwG,IAAI,CAAC;oBACxC,IAAIA,IAAI,IAAIgB,iBAAW,CAACC,EAAE,IAAIjB,IAAI,GAAGgB,iBAAW,CAACE,gBAAgB,EAAE;sBACjE,IAAI3B,KAAI,CAACtE,eAAe,IAAIsE,KAAI,CAAChD,SAAS,EAAE;wBAC1CgD,KAAI,CAACtE,eAAe,GAAG,CAAC;wBACxBsE,KAAI,CAAC3E,MAAM,CAACsB,IAAI,CACd;0BACEiF,IAAI,EAAE5B,KAAI,CAAC7D,GAAG,CAACyF;wBACjB,CAAC,EACD,4BACF,CAAC;sBACH;oBACF;oBAEA,OAAOL,aAAa;kBACtB,CAAC,CACF;kBACDM,WAAW,EAAE,CACX,UAAChD,KAAmB,EAAEiD,KAAa,EAAK;oBACtC7H,KAAK,CAAC,oBAAoB,EAAEiG,GAAG,EAAE4B,KAAK,CAAC;oBACvC9B,KAAI,CAACtE,eAAe,GAAGoG,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC;oBACjC9B,KAAI,CAAC3E,MAAM,CAAC0G,IAAI,CACd;sBACEhF,OAAO,EAAE;wBACPkD,MAAM,EAAEA,MAAM;wBACd9D,GAAG,EAAE+D;sBACP,CAAC;sBACDrB,KAAK,EAAEA,KAAK,CAACO,OAAO;sBACpB4C,UAAU,EAAEhC,KAAI,CAACtE;oBACnB,CAAC,EACD,6DACF,CAAC;oBACD,IAAIsE,KAAI,CAACtE,eAAe,IAAIsE,KAAI,CAAChD,SAAS,EAAE;sBAC1CgD,KAAI,CAAC3E,MAAM,CAACsB,IAAI,CACd;wBACEiF,IAAI,EAAE5B,KAAI,CAAC7D,GAAG,CAACyF;sBACjB,CAAC,EACD,6BACF,CAAC;oBACH;kBACF,CAAC;gBAEL;cACF,CAAC,CAAC,CACCK,EAAE,CAAC,SAAS,EAAE,YAAM;gBACnBjC,KAAI,CAACkC,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;cACrC,CAAC,CAAC,CACDH,EAAE,CAAM,UAAU,EAAE,UAACI,aAAa,EAAK;gBACtC,IAAMjD,OAAO,GAAG,iEAAiE;gBACjFY,KAAI,CAAC3E,MAAM,CAACiH,IAAI,CACd;kBACEvF,OAAO,EAAE;oBACPkD,MAAM,EAAEA,MAAM;oBACd9D,GAAG,EAAE+D;kBACP,CAAC;kBACDqC,MAAM,EAAExH,kBAAC,CAACyH,MAAM,CAACH,aAAa,CAAC,KAAK,KAAK,GAAGA,aAAa,CAACb,UAAU,GAAG;gBACzE,CAAC,EACDpC,OACF,CAAC;cACH,CAAC,CAAC,CACD6C,EAAE,CAAC,kBAAkB,EAAE,UAACQ,QAAQ,EAAK;gBACpC,IAAIA,QAAQ,CAACC,KAAK,EAAE;kBAClBzI,KAAK,CAAC,mBAAmB,EAAEwI,QAAQ,CAACC,KAAK,CAAC;kBAC1CtC,cAAc,GAAGqC,QAAQ,CAACC,KAAK;gBACjC;cACF,CAAC,CAAC;YAAA;cA3EJvC,QAAQ,GAAAQ,QAAA,CAAAzI,CAAA;cA4EFqI,IAAI,GAAGJ,QAAQ,CAACzC,OAAO,CAAC6C,IAAI;cAC5BC,IAAI,GAAGL,QAAQ,CAACwC,IAAI,EAE1B;cACA;cAAA,MACI,EAAArC,SAAA,GAAAH,QAAQ,cAAAG,SAAA,uBAARA,SAAA,CAAUkB,UAAU,MAAKC,iBAAW,CAACmB,YAAY;gBAAAjC,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cAAA,MAC7C2L,gBAAU,CAACgC,OAAO,CAACpB,iBAAW,CAACmB,YAAY,EAAE7B,eAAS,CAAC+B,oBAAoB,CAAC;YAAA;cAGpF7I,KAAK,CAAC,gBAAgB,EAAEiG,GAAG,CAAC;cACtBd,OAAO,GAAG,qDAAqD;cACrE,IAAI,CAAC/D,MAAM,CAACiH,IAAI,CACd;gBACE;gBACAvF,OAAO,EAAE;kBAAEkD,MAAM,EAAEA,MAAM;kBAAE9D,GAAG,EAAE+D;gBAAI,CAAC;gBACrCqC,MAAM,EAAEpC,QAAQ,CAACqB,UAAU;gBAC3BuB,KAAK,EAAE;kBACL,MAAIhD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEiD,IAAI,GAAGvI,IAAI,CAACwI,SAAS,CAAClD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiD,IAAI,CAAC,CAACjM,MAAM,GAAG,CAAC;kBAC5DmM,GAAG,EAAE9C,cAAc,IAAI;gBACzB;cACF,CAAC,EACDhB,OACF,CAAC;cAAC,OAAAuB,QAAA,CAAAxI,CAAA,IACK,CAACqI,IAAI,EAAED,IAAI,CAAC;YAAA;cAAAI,QAAA,CAAA5I,CAAA;cAAA2I,EAAA,GAAAC,QAAA,CAAAzI,CAAA;cAEnB+B,KAAK,CAAC,oBAAoB,EAAEyG,EAAA,CAAID,IAAI,EAAEP,GAAG,CAAC;cAAC,MACvCQ,EAAA,CAAID,IAAI,KAAK,0BAA0B;gBAAAE,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cACnCuL,IAAI,GAAGC,EAAA,CAAIP,QAAQ,CAACqB,UAAU;cACpCvH,KAAK,CAAC,eAAe,EAAEwG,IAAI,CAAC;cAAC,MACzBA,IAAI,KAAKgB,iBAAW,CAAC0B,SAAS;gBAAAxC,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cAAA,MAC1B2L,gBAAU,CAACuC,WAAW,CAACrC,eAAS,CAACsC,kBAAkB,CAAC;YAAA;cAAA,IAGtD5C,IAAI,IAAIgB,iBAAW,CAACC,EAAE,IAAIjB,IAAI,GAAGgB,iBAAW,CAACE,gBAAgB;gBAAAhB,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cAC3D2J,KAAK,GAAGgC,gBAAU,CAACC,gBAAgB,IAAAnG,MAAA,CAAIoG,eAAS,CAACuC,eAAe,QAAA3I,MAAA,CAAK8F,IAAI,CAAE,CAAC,EAClF;cACA5B,KAAK,CAAC0E,YAAY,GAAG9C,IAAI;cAAC,MACpB5B,KAAK;YAAA;cAAA8B,QAAA,CAAAzL,CAAA;cAAA;YAAA;cAAA,KAEJ,IAAI,CAACsO,iBAAiB,CAAA9C,EAAI,CAAC;gBAAAC,QAAA,CAAAzL,CAAA;gBAAA;cAAA;cACpC+E,KAAK,CAAC,oBAAoB,CAAC;cAAC,MACtB4G,gBAAU,CAAC4C,qBAAqB,CAAC1C,eAAS,CAAC2C,eAAe,CAAC;YAAA;cAAA,MAAAhD,EAAA;YAAA;cAAA,OAAAC,QAAA,CAAAxI,CAAA;UAAA;QAAA,GAAA0H,OAAA;MAAA,CAItE;MAAA,SAnJY8D,iBAAiBA,CAAAC,EAAA,EAAAC,GAAA;QAAA,OAAAjE,kBAAA,CAAAhJ,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAjB6M,iBAAiB;IAAA,IAqJ9B;EAAA;IAAAhK,GAAA;IAAAtC,KAAA,EACA,SAAOyM,YAAYA,CACjB3H,GAAW,EACX4H,eAA8E,EACzE;MAAA,IAAAC,WAAA;QAAAC,MAAA;MACLhK,KAAK,CAAC,qBAAqB,EAAEkC,GAAG,CAAC;MACjC,IAAM4D,OAAO,GAAAlJ,aAAA,CAAAA,aAAA,KAAQ,IAAI,CAACgE,MAAM,GAAKkJ,eAAe,CAAE;MACtD,IAAIrG,OAAO,GAAG,IAAI,CAACD,UAAU,CAACsC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErC,OAAO,CAAC;MAC/CA,OAAO,GAAG,IAAI,CAACuD,eAAe,CAACvD,OAAO,EAAEqC,OAAO,CAACmB,aAAa,CAAC;MAC9DxD,OAAO,GAAG,IAAI,CAACiC,kBAAkB,CAACjC,OAAO,CAAC;MAC1C;MACA,IAAI3C,kBAAC,CAACC,KAAK,CAAC+E,OAAO,CAACQ,IAAI,CAAC,KAAK,KAAK,EAAE;QACnC7C,OAAO,CAAClD,aAAO,CAAC2G,UAAU,CAAC,GAAGpB,OAAO,CAACQ,IAAI;QAC1C7C,OAAO,CAAClD,aAAO,CAACqD,MAAM,CAAC,GAAGnD,iBAAiB;MAC7C;MACA,IAAMuF,MAAM,GAAG,KAAK;MACpB;MACAhG,KAAK,CAAC,oBAAoB,EAAEkC,GAAG,CAAC;MAEhC,IAAM+H,UAAU,GAAG9C,kBAAG,CACnB+C,MAAM,CAAChI,GAAG,EAAE;QACXuB,OAAO,EAAPA,OAAO;QACPuC,MAAM,EAANA,MAAM;QACN3E,KAAK,EAAE,IAAI,CAACA,KAAK;QACjB;QACA8B,KAAK,GAAA4G,WAAA,GAAE,IAAI,CAAC5G,KAAK,cAAA4G,WAAA,cAAAA,WAAA,GAAIjE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3C,KAAK;QACnCV,OAAO,EAAE,IAAI,CAACA;MAChB,CAAC,CAAC,CACDuF,EAAE,CAAC,SAAS,EAAE,YAAM;QACnBgC,MAAI,CAAC/B,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrC,CAAC,CAAC;MAEJ,OAAO8B,UAAU;IACnB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAvK,GAAA;IAAAtC,KAAA;MAAA,IAAA+M,OAAA,GAAA9K,iBAAA,cAAA9B,YAAA,GAAAuB,CAAA,CAKA,SAAAsL,SAAAC,IAAA;QAAA,IAAAnI,GAAA,EAAAoI,KAAA,EAAAnH,KAAA,EAAA8C,GAAA,EAAAC,QAAA,EAAAqE,GAAA,EAAA9B,KAAA,EAAA+B,YAAA,EAAAC,cAAA,EAAAC,GAAA;QAAA,OAAAnN,YAAA,GAAAsB,CAAA,WAAA8L,SAAA;UAAA,kBAAAA,SAAA,CAAA7M,CAAA,GAAA6M,SAAA,CAAA1P,CAAA;YAAA;cAAsBiH,GAAG,GAAAmI,IAAA,CAAHnI,GAAG,EAAEoI,KAAK,GAAAD,IAAA,CAALC,KAAK,EAAEnH,KAAK,GAAAkH,IAAA,CAALlH,KAAK;cAAAwH,SAAA,CAAA7M,CAAA;cAEnC;cACMmI,GAAG,GAAG,IAAI9D,YAAG,CAACD,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC,CAAC0I,IAAI;cACvC,IAAI,CAACxJ,MAAM,CAACiH,IAAI,CACd;gBAAEpC,GAAG,EAAHA,GAAG;gBAAE4E,MAAM,EAAE,IAAI,CAAC3J;cAAW,CAAC,EAChC,6CACF,CAAC;cACDlB,KAAK,CAAC,iBAAiB,EAAEiG,GAAG,CAAC;cACvBC,QAAQ,GAAG,IAAAiB,kBAAG,EAAClB,GAAG,EAAE;gBACxB6E,MAAM,EAAER,KAAK,GAAGA,KAAK,CAACQ,MAAM,GAAG,CAAC,CAAC;gBACjCzJ,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjBoB,OAAO,EAAE,IAAI,CAACA,OAAO;gBACrBU,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI,CAACA;cACvB,CAAC,CAAC;cAAAwH,SAAA,CAAA1P,CAAA;cAAA,OAEgBiL,QAAQ,CAAC6E,IAAI,CAAC,CAAC;YAAA;cAA3BR,GAAG,GAAAI,SAAA,CAAA1M,CAAA;cACHwK,KAAK,GAAGjI,IAAI,CAACwK,KAAK,CAACT,GAAG,CAAC,CAAC9B,KAAK;cACnCzI,KAAK,CAAC,8BAA8B,EAAEyI,KAAK,CAAC;cACtC+B,YAAY,GAAG,IAAIS,uBAAW,CAAC;gBAAEC,UAAU,EAAE;cAAK,CAAC,CAAC;cACpDT,cAAc,GAAGU,oBAAQ,CAACC,IAAI,CAACb,GAAG,CAAC,EACzC;cACAE,cAAc,CAACY,IAAI,CAACC,sBAAU,CAACN,KAAK,CAAC,SAAS,CAAC,CAAC,CAACK,IAAI,CAACb,YAAY,EAAE;gBAAEe,GAAG,EAAE;cAAK,CAAC,CAAC;cAAC,OAAAZ,SAAA,CAAAzM,CAAA,IAC5EsM,YAAY;YAAA;cAAAG,SAAA,CAAA7M,CAAA;cAAA4M,GAAA,GAAAC,SAAA,CAAA1M,CAAA;cAEnB+B,KAAK,CAAC,iBAAiB,EAAA0K,GAAK,CAAC;cAAC,MAC1BA,GAAA,CAAIxE,QAAQ,CAACqB,UAAU,KAAK,GAAG;gBAAAoD,SAAA,CAAA1P,CAAA;gBAAA;cAAA;cAAA,MAC3B2L,gBAAU,CAACC,gBAAgB,oBAAAnG,MAAA,CAAoBgK,GAAA,CAAIxE,QAAQ,CAACqB,UAAU,iBAAc,CAAC;YAAA;cAE7F,IAAI,CAACnG,MAAM,CAACwD,KAAK,CACf;gBAAE4G,YAAY,EAAAd,GAAA,aAAAA,GAAA,uBAAEA,GAAA,CAAKvF,OAAO;gBAAEU,IAAI,EAAE,IAAI,CAAC3E;cAAW,CAAC,EACrD,oDACF,CAAC;cAAC,MAAAwJ,GAAA;YAAA;cAAA,OAAAC,SAAA,CAAAzM,CAAA;UAAA;QAAA,GAAAkM,QAAA;MAAA,CAGL;MAAA,SAnCYqB,MAAMA,CAAAC,GAAA;QAAA,OAAAvB,OAAA,CAAAxN,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAN4O,MAAM;IAAA;EAAA;IAAA/L,GAAA;IAAAtC,KAAA,EAqCnB,SAAQ4J,eAAeA,CAACvD,OAAmB,EAAEwD,aAAsB,EAAc;MAC/E;MACA;MACA;MACA;MACA,IAAI,CAAC,IAAI,CAAC1D,KAAK,EAAE;QACfE,OAAO,CAAClD,aAAO,CAACoL,aAAa,CAAC,GAC5B,CAAClI,OAAO,CAAC,iBAAiB,CAAC,GAAGA,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,EAAE,IAAIwD,aAAa;MACzF;;MAEA;MACAxD,OAAO,CAAC,KAAK,CAAC,GAAGA,OAAO,CAAC,KAAK,CAAC,GAAGA,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;MAC5DA,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC5B,SAAS,GAAG,cAAc;MAE1D,OAAO4B,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA/D,GAAA;IAAAtC,KAAA,EAKA,SAAQuJ,iBAAiBA,CAAA,EAAY;MACnC,OACE,IAAI,CAAClF,eAAe,IAAI,IAAI,CAACsB,SAAS,IACtC6I,IAAI,CAACC,GAAG,CAAC3D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAI,IAAI,CAACF,iBAA4B,CAAC,GAAG,IAAI,CAACjF,YAAY;IAEjF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAtD,GAAA;IAAAtC,KAAA,EAKA,SAAQmM,iBAAiBA,CAACuC,GAAiB,EAAW;MAAA,IAAAC,aAAA;MACpD,IAAMvF,IAAI,GAAGsF,GAAG,aAAHA,GAAG,gBAAAC,aAAA,GAAHD,GAAG,CAAE5F,QAAQ,cAAA6F,aAAA,uBAAbA,aAAA,CAAexE,UAAU;MACtC,OACEuE,GAAG,CAACtF,IAAI,KAAK,WAAW,IACxBsF,GAAG,CAACtF,IAAI,KAAK,iBAAiB,IAC9BsF,GAAG,CAACtF,IAAI,KAAK,YAAY,IACzBA,IAAI,KAAKgB,iBAAW,CAACwE,eAAe,IACpCxF,IAAI,KAAKgB,iBAAW,CAACyE,WAAW,IAChCzF,IAAI,KAAKgB,iBAAW,CAAC0E,mBAAmB,IACxC1F,IAAI,KAAKgB,iBAAW,CAAC2E,eAAe;IAExC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAzM,GAAA;IAAAtC,KAAA,EAOA,SAAQkF,WAAWA,CACjBC,QAAgB,EAChB3B,MAAuB,EACvBwL,UAAkB,EAClBhK,OAAgB,EACV;MACN,IAAIiK,WAAW;MACf,IAAMC,SAAiB,GAAGlK,OAAO,GAAG,aAAa,GAAG,YAAY;MAChEpC,KAAK,CAAC,gBAAgB,EAAEsM,SAAS,CAAC;;MAElC;MACA,IAAIA,SAAS,IAAI1L,MAAM,EAAE;QACvB,IAAI,CAAC2C,KAAK,GAAG3C,MAAM,CAAC0L,SAAS,CAAC;QAC9BtM,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAACuD,KAAK,CAAC;MAChD,CAAC,MAAM,IAAI+I,SAAS,IAAIF,UAAU,EAAE;QAClC,IAAI,CAAC7I,KAAK,GAAG6I,UAAU,CAACE,SAAS,CAAC;QAClCtM,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAACuD,KAAK,CAAC;MAC9C;MACA,IAAI,UAAU,IAAI3C,MAAM,EAAE;QACxByL,WAAW,GAAGzL,MAAM,CAAC2L,QAAQ;MAC/B,CAAC,MAAM,IAAI,UAAU,IAAIH,UAAU,EAAE;QACnCC,WAAW,GAAGD,UAAU,CAACG,QAAQ;MACnC;;MAEA;MACA,IAAIhK,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACvBA,QAAQ,GAAG,GAAG,GAAGA,QAAQ;MAC3B;MAEA,IAAIzB,kBAAC,CAACyD,QAAQ,CAAC8H,WAAW,CAAC,IAAIA,WAAW,CAACvP,MAAM,EAAE;QACjDuP,WAAW,GAAGA,WAAW,CAACG,KAAK,CAAC,GAAG,CAAC;MACtC;MAEA,IAAI1L,kBAAC,CAAC2L,OAAO,CAACJ,WAAW,CAAC,EAAE;QAC1B,KAAK,IAAIjR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiR,WAAW,CAACvP,MAAM,EAAE1B,CAAC,EAAE,EAAE;UAC3C,IAAIsR,WAAW,GAAGL,WAAW,CAACjR,CAAC,CAAC;UAChC,IAAIsR,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1BA,WAAW,GAAG,GAAG,GAAGA,WAAW;UACjC;UACA,IAAInK,QAAQ,CAACoK,QAAQ,CAACD,WAAW,CAAC,EAAE;YAClC,IAAI,IAAI,CAACnJ,KAAK,EAAE;cACdvD,KAAK,CAAC,sCAAsC,EAAE0M,WAAW,CAAC;cAC1D,IAAI,CAACtL,MAAM,CAACpB,KAAK,CACf;gBAAEkC,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC0I,IAAI;gBAAEgC,IAAI,EAAEF;cAAY,CAAC,EACzC,sDACF,CAAC;cACD,IAAI,CAACnJ,KAAK,GAAGG,SAAS;YACxB;YACA;UACF;QACF;MACF;MAEA,IAAI,OAAO,IAAI,CAACH,KAAK,KAAK,QAAQ,EAAE;QAClCvD,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAACuD,KAAK,EAAE,IAAI,CAACrB,GAAG,CAAC0I,IAAI,CAAC;QACnE,IAAI,CAACxJ,MAAM,CAACpB,KAAK,CACf;UAAEkC,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC0I,IAAI;UAAErH,KAAK,EAAE,IAAI,CAACA;QAAM,CAAC,EACzC,iCACF,CAAC;MACH;IACF;EAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"proxy.js","names":["_JSONStream","_interopRequireDefault","require","_debug","_gotCjs","_interopRequireWildcard","_lodash","_nodeStream","_nodeUrl","_core","_agent","_proxyUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t3","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_regenerator","toStringTag","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","_next","_throw","_classCallCheck","_defineProperties","key","_createClass","_toPrimitive","toPrimitive","String","Number","debug","buildDebug","encode","thing","encodeURIComponent","replace","jsonContentType","HEADERS","JSON","contentTypeAccept","concat","setConfig","config","def","_","isNil","ProxyStorage","exports","uplinkName","mainConfig","logger","agent","_mainConfig$user_agen","_this$config$max_fail","_this$max_fails","failed_requests","userAgent","user_agent","ca","server_id","agent_options","keepAlive","maxSockets","maxFreeSockets","url","URL","isHTTPS","protocol","_setupProxy","hostname","getAgent","timeout","warn","join","maxage","parseInterval","request","max_fails","fail_timeout","strict_ssl","Boolean","retry","limit","agentInstance","CustomAgents","proxy","getHeaders","headers","undefined","accept","ACCEPT","acceptEncoding","ACCEPT_ENCODING","USER_AGENT","setAuthNext","auth","AUTHORIZATION","isObject","token","_throwErrorAuth","tokenConf","isString","token_env","process","env","NPM_TOKEN","error","constants","ERROR_CODE","token_required","type","TOKEN_BASIC","_setHeaderAuthorization","message","Error","_type","toLowerCase","TOKEN_BEARER","authUtils","buildToken","applyUplinkHeaders","_getRemoteMetadata","_callee","name","options","_this","method","uri","response","responseLength","_options$retry","_response","etag","data","err","code","_t","_context","_ifRequestFailure","errorUtils","getInternalError","API_ERROR","UPLINK_OFFLINE","addProxyHeaders","remoteAddress","NONE_MATCH","got","responseType","hooks","afterResponse","statusCode","HTTP_STATUS","OK","MULTIPLE_CHOICES","host","beforeRetry","count","info","retryCount","on","last_request_time","Date","now","eventResponse","http","status","isNull","progress","total","body","NOT_MODIFIED","getNotFound","NOT_MODIFIED_NO_DATA","bytes","json","stringify","out","NOT_FOUND","NOT_PACKAGE_UPLINK","BAD_STATUS_CODE","remoteStatus","_isRequestTimeout","getServiceUnavailable","SERVER_TIME_OUT","getRemoteMetadata","_x","_x2","fetchTarball","overrideOptions","_this$retry","_this2","readStream","stream","_search","_callee2","_ref","abort","res","streamSearch","streamResponse","_t2","_context2","href","uplink","signal","text","parse","PassThrough","objectMode","Readable","from","pipe","JSONStream","end","errorMessage","search","_x3","FORWARDED_FOR","Math","abs","_err$response","REQUEST_TIMEOUT","BAD_GATEWAY","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","mainconfig","noProxyList","proxy_key","no_proxy","split","isArray","noProxyItem","endsWith","rule"],"sources":["../src/proxy.ts"],"sourcesContent":["import JSONStream from 'JSONStream';\nimport buildDebug from 'debug';\nimport type { Agents, Delays, RequestError, RetryOptions, Headers as gotHeaders } from 'got-cjs';\nimport got, { Options } from 'got-cjs';\nimport _ from 'lodash';\nimport type Stream from 'node:stream';\nimport { PassThrough, Readable } from 'node:stream';\nimport { URL } from 'node:url';\n\nimport type { searchUtils } from '@verdaccio/core';\nimport {\n API_ERROR,\n HEADERS,\n HTTP_STATUS,\n TOKEN_BASIC,\n TOKEN_BEARER,\n authUtils,\n constants,\n errorUtils,\n} from '@verdaccio/core';\nimport type { AgentOptionsConf, Config, Logger, Manifest, UpLinkConf } from '@verdaccio/types';\n\nimport CustomAgents from './agent';\nimport { parseInterval } from './proxy-utils';\n\nconst debug = buildDebug('verdaccio:proxy');\n\nconst encode = function (thing): string {\n return encodeURIComponent(thing).replace(/^%40/, '@');\n};\n\nconst jsonContentType = HEADERS.JSON;\nconst contentTypeAccept = `${jsonContentType};`;\n\n/**\n * Just a helper (`config[key] || default` doesn't work because of zeroes)\n */\nconst setConfig = (config: UpLinkConfLocal, key: string, def): string => {\n return _.isNil(config[key]) === false ? config[key] : def;\n};\n\nexport type UpLinkConfLocal = UpLinkConf & {\n no_proxy?: string;\n};\n\nexport interface ProxyList {\n [key: string]: IProxy;\n}\n\nexport type ProxySearchParams = {\n url: string;\n abort: AbortController;\n query?: searchUtils.SearchQuery;\n headers?: Headers;\n retry?: Partial<RetryOptions>;\n};\nexport interface IProxy {\n uplinkName: string;\n config: UpLinkConfLocal;\n failed_requests: number;\n userAgent: string;\n ca?: string | void;\n logger: Logger;\n server_id: string;\n url: URL;\n maxage: number;\n timeout: Delays;\n max_fails: number;\n fail_timeout: number;\n search(options: ProxySearchParams): Promise<Stream.Readable>;\n getRemoteMetadata(\n name: string,\n options: Partial<ISyncUplinksOptions>\n ): Promise<[Manifest, string]>;\n fetchTarball(\n url: string,\n options: Partial<Pick<ISyncUplinksOptions, 'remoteAddress' | 'etag' | 'retry'>>\n ): PassThrough;\n}\n\n// this type is need it by storage\nexport { Options as FetchOptions };\n\nexport interface ISyncUplinksOptions extends Options {\n uplinksLook?: boolean;\n etag?: string;\n remoteAddress?: string;\n}\n\n/**\n * Implements Storage interface\n * (same for storage.js, local-storage.js, up-storage.js)\n */\nclass ProxyStorage implements IProxy {\n public uplinkName: string;\n public config: UpLinkConfLocal;\n public failed_requests: number;\n public userAgent: string;\n public ca: string | void;\n public logger: Logger;\n public server_id: string;\n public url: URL;\n public maxage: number;\n public timeout: Delays;\n public max_fails: number;\n public fail_timeout: number;\n public agent_options: AgentOptionsConf;\n public proxy: string | undefined;\n private agent: Agents;\n // @ts-ignore\n public last_request_time: number | null;\n public strict_ssl: boolean;\n private retry: Partial<RetryOptions>;\n\n public constructor(\n uplinkName: string,\n config: UpLinkConfLocal,\n mainConfig: Config,\n logger: Logger,\n agent?: Agents\n ) {\n this.uplinkName = uplinkName;\n this.config = config;\n this.failed_requests = 0;\n this.userAgent = mainConfig.user_agent ?? 'hidden';\n this.ca = config.ca;\n this.logger = logger;\n this.server_id = mainConfig.server_id;\n this.agent_options = setConfig(this.config, 'agent_options', {\n keepAlive: true,\n maxSockets: 40,\n maxFreeSockets: 10,\n }) as AgentOptionsConf;\n this.url = new URL(this.config.url);\n const isHTTPS = this.url.protocol === 'https:';\n this._setupProxy(this.url.hostname, config, mainConfig, isHTTPS);\n this.agent = agent ?? this.getAgent();\n this.config.url = this.config.url.replace(/\\/$/, '');\n\n if (this.config.timeout && Number(this.config.timeout) >= 1000) {\n this.logger.warn(\n [\n 'Too big timeout value: ' + this.config.timeout,\n 'We changed time format to nginx-like one',\n '(see http://nginx.org/en/docs/syntax.html)',\n 'so please update your config accordingly',\n ].join('\\n')\n );\n }\n\n // a bunch of different configurable timers\n this.maxage = parseInterval(setConfig(this.config, 'maxage', '2m'));\n // https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md\n this.timeout = {\n request: parseInterval(setConfig(this.config, 'timeout', '30s')),\n };\n debug('set timeout %s', this.timeout);\n this.max_fails = Number(setConfig(this.config, 'max_fails', this.config.max_fails ?? 2));\n this.fail_timeout = parseInterval(setConfig(this.config, 'fail_timeout', '5m'));\n this.strict_ssl = Boolean(setConfig(this.config, 'strict_ssl', true));\n this.retry = { limit: this.max_fails ?? 2 };\n }\n\n private getAgent() {\n if (!this.agent) {\n // TODO: the config.ca (certificates) is not yet injected here\n const agentInstance = new CustomAgents(this.config.url, this.proxy, this.agent_options);\n return agentInstance.get();\n } else {\n return this.agent;\n }\n }\n\n public getHeaders(headers = {}): gotHeaders {\n const accept = HEADERS.ACCEPT;\n const acceptEncoding = HEADERS.ACCEPT_ENCODING;\n const userAgent = HEADERS.USER_AGENT;\n\n headers[accept] = headers[accept] || contentTypeAccept;\n headers[acceptEncoding] = headers[acceptEncoding] || 'gzip';\n // registry.npmjs.org will only return search result if user-agent include string 'npm'\n headers[userAgent] = headers[userAgent] || `npm (${this.userAgent})`;\n return this.setAuthNext(headers);\n }\n\n /**\n * Validate configuration auth and assign Header authorization\n * @param {Object} headers\n * @return {Object}\n * @private\n */\n private setAuthNext(headers: gotHeaders): gotHeaders {\n const { auth } = this.config;\n if (typeof auth === 'undefined' || typeof headers[HEADERS.AUTHORIZATION] === 'string') {\n return headers;\n }\n\n if (_.isObject(auth) === false && _.isObject((auth as any).token) === false) {\n this._throwErrorAuth('Auth invalid');\n }\n\n // get NPM_TOKEN http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules\n // or get other variable export in env\n // https://github.com/verdaccio/verdaccio/releases/tag/v2.5.0\n let token: any;\n const tokenConf: any = auth;\n if (_.isNil(tokenConf.token) === false && _.isString(tokenConf.token)) {\n debug('use token from config');\n token = tokenConf.token;\n } else if (_.isNil(tokenConf.token_env) === false) {\n if (typeof tokenConf.token_env === 'string') {\n debug('use token from env %o', tokenConf.token_env);\n token = process.env[tokenConf.token_env];\n } else if (typeof tokenConf.token_env === 'boolean' && tokenConf.token_env) {\n debug('use token from env NPM_TOKEN');\n token = process.env.NPM_TOKEN;\n } else {\n this.logger.error(constants.ERROR_CODE.token_required);\n this._throwErrorAuth(constants.ERROR_CODE.token_required);\n }\n } else {\n debug('use token from env NPM_TOKEN');\n token = process.env.NPM_TOKEN;\n }\n\n if (typeof token === 'undefined') {\n this._throwErrorAuth(constants.ERROR_CODE.token_required);\n }\n\n // define type Auth allow basic and bearer\n const type = tokenConf.type || TOKEN_BASIC;\n debug('token type %o', type);\n this._setHeaderAuthorization(headers, type, token);\n\n return headers;\n }\n\n /**\n * @param {string} message\n * @throws {Error}\n * @private\n */\n private _throwErrorAuth(message: string): Error {\n this.logger.error(message);\n throw new Error(message);\n }\n\n /**\n * Assign Header authorization with type authentication\n * @param {Object} headers\n * @param {string} type\n * @param {string} token\n * @private\n */\n private _setHeaderAuthorization(headers: any, type: string, token: any): void {\n const _type: string = type.toLowerCase();\n\n if (_type !== TOKEN_BEARER.toLowerCase() && _type !== TOKEN_BASIC.toLowerCase()) {\n this._throwErrorAuth(`Auth type '${_type}' not allowed`);\n }\n\n headers[HEADERS.AUTHORIZATION] = authUtils.buildToken(type, token);\n }\n\n /**\n * It will add or override specified headers from config file.\n *\n * Eg:\n *\n * uplinks:\n npmjs:\n url: https://registry.npmjs.org/\n headers:\n Accept: \"application/vnd.npm.install-v2+json; q=1.0\"\n verdaccio-staging:\n url: https://mycompany.com/npm\n headers:\n Accept: \"application/json\"\n authorization: \"Basic YourBase64EncodedCredentials==\"\n\n * @param {Object} headers\n * @private\n */\n private applyUplinkHeaders(headers: gotHeaders): gotHeaders {\n if (!this.config.headers) {\n return headers;\n }\n\n // add/override headers specified in the config\n /* eslint guard-for-in: 0 */\n for (const key in this.config.headers) {\n headers[key] = this.config.headers[key];\n }\n return headers;\n }\n\n public async getRemoteMetadata(\n name: string,\n options: Partial<ISyncUplinksOptions>\n ): Promise<[Manifest, string]> {\n if (this._ifRequestFailure()) {\n throw errorUtils.getInternalError(API_ERROR.UPLINK_OFFLINE);\n }\n\n // FUTURE: allow mix headers that comes from the client\n debug('getting metadata for package %s', name);\n let headers = this.getHeaders(options?.headers);\n headers = this.addProxyHeaders(headers, options.remoteAddress);\n headers = this.applyUplinkHeaders(headers);\n // the following headers cannot be overwritten\n if (_.isNil(options.etag) === false) {\n headers[HEADERS.NONE_MATCH] = options.etag;\n headers[HEADERS.ACCEPT] = contentTypeAccept;\n }\n const method = options.method || 'GET';\n const uri = this.config.url + `/${encode(name)}`;\n debug('set retry limit is %s', this.retry.limit);\n let response;\n let responseLength = 0;\n try {\n const retry = options?.retry ?? this.retry;\n debug('retry initial count %s', retry);\n response = await got(uri, {\n headers,\n responseType: 'json',\n method,\n agent: this.agent,\n retry,\n timeout: this.timeout,\n hooks: {\n afterResponse: [\n (afterResponse) => {\n const code = afterResponse.statusCode;\n debug('after response code is %s', code);\n if (code >= HTTP_STATUS.OK && code < HTTP_STATUS.MULTIPLE_CHOICES) {\n if (this.failed_requests >= this.max_fails) {\n this.failed_requests = 0;\n this.logger.warn(\n {\n host: this.url.host,\n },\n 'host @{host} is now online'\n );\n }\n }\n\n return afterResponse;\n },\n ],\n beforeRetry: [\n (error: RequestError, count: number) => {\n debug('retry %s count: %s', uri, count);\n this.failed_requests = count ?? 0;\n this.logger.info(\n {\n request: {\n method: method,\n url: uri,\n },\n error: error.message,\n retryCount: this.failed_requests,\n },\n \"retry @{retryCount} req: '@{request.method} @{request.url}'\"\n );\n if (this.failed_requests >= this.max_fails) {\n this.logger.warn(\n {\n host: this.url.host,\n },\n 'host @{host} is now offline'\n );\n }\n },\n ],\n },\n })\n .on('request', () => {\n this.last_request_time = Date.now();\n })\n .on<any>('response', (eventResponse) => {\n const message = \"@{!status}, req: '@{request.method} @{request.url}' (streaming)\";\n this.logger.http(\n {\n request: {\n method: method,\n url: uri,\n },\n status: _.isNull(eventResponse) === false ? eventResponse.statusCode : 'ERR',\n },\n message\n );\n })\n .on('downloadProgress', (progress) => {\n if (progress.total) {\n debug('responseLength %s', progress.total);\n responseLength = progress.total;\n }\n });\n const etag = response.headers.etag as string;\n const data = response.body;\n\n // not modified status (304) registry does not return any payload\n // it is handled as an error with the original 304 status preserved\n if (response?.statusCode === HTTP_STATUS.NOT_MODIFIED) {\n const err = errorUtils.getNotFound(API_ERROR.NOT_MODIFIED_NO_DATA);\n err.code = HTTP_STATUS.NOT_MODIFIED;\n throw err;\n }\n\n debug('uri %s success', uri);\n const message = \"@{!status}, req: '@{request.method} @{request.url}'\";\n this.logger.http(\n {\n // if error is null/false change this to undefined so it wont log\n request: { method: method, url: uri },\n status: response.statusCode,\n bytes: {\n in: options?.json ? JSON.stringify(options?.json).length : 0,\n out: responseLength || 0,\n },\n },\n message\n );\n return [data, etag];\n } catch (err: any) {\n debug('error %s on uri %s', err.code, uri);\n if (err.code === 'ERR_NON_2XX_3XX_RESPONSE') {\n const code = err.response.statusCode;\n debug('error code %s', code);\n if (code === HTTP_STATUS.NOT_FOUND) {\n throw errorUtils.getNotFound(API_ERROR.NOT_PACKAGE_UPLINK);\n }\n\n if (!(code >= HTTP_STATUS.OK && code < HTTP_STATUS.MULTIPLE_CHOICES)) {\n const error = errorUtils.getInternalError(`${API_ERROR.BAD_STATUS_CODE}: ${code}`);\n // we need this code to identify outside which status code triggered the error\n error.remoteStatus = code;\n throw error;\n }\n } else if (this._isRequestTimeout(err)) {\n debug('error code timeout');\n throw errorUtils.getServiceUnavailable(API_ERROR.SERVER_TIME_OUT);\n }\n throw err;\n }\n }\n\n // FIXME: handle stream and retry\n public fetchTarball(\n url: string,\n overrideOptions: Pick<ISyncUplinksOptions, 'remoteAddress' | 'etag' | 'retry'>\n ): any {\n debug('fetching url for %s', url);\n const options = { ...this.config, ...overrideOptions };\n let headers = this.getHeaders(options?.headers);\n headers = this.addProxyHeaders(headers, options.remoteAddress);\n headers = this.applyUplinkHeaders(headers);\n // the following headers cannot be overwritten\n if (_.isNil(options.etag) === false) {\n headers[HEADERS.NONE_MATCH] = options.etag;\n headers[HEADERS.ACCEPT] = contentTypeAccept;\n }\n const method = 'GET';\n // const uri = this.config.url + `/${encode(name)}`;\n debug('request uri for %s', url);\n\n const readStream = got\n .stream(url, {\n headers,\n method,\n agent: this.agent,\n // FIXME: this should be taken from construtor as priority\n retry: this.retry ?? options?.retry,\n timeout: this.timeout,\n })\n .on('request', () => {\n this.last_request_time = Date.now();\n });\n\n return readStream;\n }\n\n /**\n * Perform a stream search.\n * @param {*} options request options\n * @return {Stream}\n */\n public async search({ url, abort, retry }: ProxySearchParams): Promise<Stream.Readable> {\n try {\n // Incoming URL is relative ie /-/v1/search...\n const uri = new URL(url, this.url).href;\n this.logger.http(\n { uri, uplink: this.uplinkName },\n 'search request to uplink @{uplink} - @{uri}'\n );\n debug('searching on %o', uri);\n const response = got(uri, {\n signal: abort ? abort.signal : {},\n agent: this.agent,\n timeout: this.timeout,\n retry: retry ?? this.retry,\n });\n\n const res = await response.text();\n const total = JSON.parse(res).total;\n debug('number of packages found: %o', total);\n const streamSearch = new PassThrough({ objectMode: true });\n const streamResponse = Readable.from(res);\n // objects is one of the properties on the body, it ignores date and total\n streamResponse.pipe(JSONStream.parse('objects')).pipe(streamSearch, { end: true });\n return streamSearch;\n } catch (err: any) {\n debug('search error %s', err);\n if (err.response.statusCode === 409) {\n throw errorUtils.getInternalError(`bad status code ${err.response.statusCode} from uplink`);\n }\n this.logger.error(\n { errorMessage: err?.message, name: this.uplinkName },\n 'proxy uplink @{name} search error: @{errorMessage}'\n );\n throw err;\n }\n }\n\n private addProxyHeaders(headers: gotHeaders, remoteAddress?: string): gotHeaders {\n // Only submit X-Forwarded-For field if we don't have a proxy selected\n // in the config file.\n //\n // Otherwise misconfigured proxy could return 407\n if (!this.proxy) {\n headers[HEADERS.FORWARDED_FOR] =\n (headers['x-forwarded-for'] ? headers['x-forwarded-for'] + ', ' : '') + remoteAddress;\n }\n\n // always attach Via header to avoid loops, even if we're not proxying\n headers['via'] = headers['via'] ? headers['via'] + ', ' : '';\n headers['via'] += '1.1 ' + this.server_id + ' (Verdaccio)';\n\n return headers;\n }\n\n /**\n * If the request failure.\n * @return {boolean}\n * @private\n */\n private _ifRequestFailure(): boolean {\n return (\n this.failed_requests >= this.max_fails &&\n Math.abs(Date.now() - (this.last_request_time as number)) < this.fail_timeout\n );\n }\n\n /**\n * Check if the request timed out (network or http errors).\n * @param {RequestError} err\n * @return {boolean}\n */\n private _isRequestTimeout(err: RequestError): boolean {\n const code = err?.response?.statusCode;\n return (\n err.code === 'ETIMEDOUT' ||\n err.code === 'ESOCKETTIMEDOUT' ||\n err.code === 'ECONNRESET' ||\n code === HTTP_STATUS.REQUEST_TIMEOUT ||\n code === HTTP_STATUS.BAD_GATEWAY ||\n code === HTTP_STATUS.SERVICE_UNAVAILABLE ||\n code === HTTP_STATUS.GATEWAY_TIMEOUT\n );\n }\n\n /**\n * Set up a proxy.\n * @param {*} hostname\n * @param {*} config\n * @param {*} mainconfig\n * @param {*} isHTTPS\n */\n private _setupProxy(\n hostname: string,\n config: UpLinkConfLocal,\n mainconfig: Config,\n isHTTPS: boolean\n ): void {\n let noProxyList;\n const proxy_key: string = isHTTPS ? 'https_proxy' : 'http_proxy';\n debug('looking for %o', proxy_key);\n\n // get http_proxy and no_proxy configs\n if (proxy_key in config) {\n this.proxy = config[proxy_key];\n debug('found %o in uplink config', this.proxy);\n } else if (proxy_key in mainconfig) {\n this.proxy = mainconfig[proxy_key];\n debug('found %o in main config', this.proxy);\n }\n if ('no_proxy' in config) {\n noProxyList = config.no_proxy;\n } else if ('no_proxy' in mainconfig) {\n noProxyList = mainconfig.no_proxy;\n }\n\n // use wget-like algorithm to determine if proxy shouldn't be used\n if (hostname[0] !== '.') {\n hostname = '.' + hostname;\n }\n\n if (_.isString(noProxyList) && noProxyList.length) {\n noProxyList = noProxyList.split(',');\n }\n\n if (_.isArray(noProxyList)) {\n for (let i = 0; i < noProxyList.length; i++) {\n let noProxyItem = noProxyList[i];\n if (noProxyItem[0] !== '.') {\n noProxyItem = '.' + noProxyItem;\n }\n if (hostname.endsWith(noProxyItem)) {\n if (this.proxy) {\n debug('not using proxy, excluded by @{rule}', noProxyItem);\n this.logger.debug(\n { url: this.url.href, rule: noProxyItem },\n 'not using proxy for @{url}, excluded by @{rule} rule'\n );\n this.proxy = undefined;\n }\n break;\n }\n }\n }\n\n if (typeof this.proxy === 'string') {\n debug('using proxy @{proxy} for @{url}', this.proxy, this.url.href);\n this.logger.debug(\n { url: this.url.href, proxy: this.proxy },\n 'using proxy @{proxy} for @{url}'\n );\n }\n }\n}\n\nexport { ProxyStorage };\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAGA,IAAAO,KAAA,GAAAP,OAAA;AAYA,IAAAQ,MAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAA8C,SAAAG,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,wBAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,GAAA,IAAAd,CAAA,gBAAAc,GAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,GAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,GAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,GAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,GAAA,IAAAd,CAAA,CAAAc,GAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAZ,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,gBAAAA,CAAA;AAAA,SAAAU,QAAAJ,CAAA,sCAAAI,OAAA,wBAAAU,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAf,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAc,MAAA,IAAAd,CAAA,CAAAgB,WAAA,KAAAF,MAAA,IAAAd,CAAA,KAAAc,MAAA,CAAAG,SAAA,qBAAAjB,CAAA,KAAAI,OAAA,CAAAJ,CAAA;AAAA,SAAAkB,QAAAxB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAQ,IAAA,CAAAzB,CAAA,OAAAiB,MAAA,CAAAS,qBAAA,QAAApB,CAAA,GAAAW,MAAA,CAAAS,qBAAA,CAAA1B,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAqB,MAAA,WAAAxB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAyB,UAAA,OAAA3B,CAAA,CAAA4B,IAAA,CAAAC,KAAA,CAAA7B,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA8B,cAAA/B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAA6B,SAAA,CAAAC,MAAA,EAAA9B,CAAA,UAAAF,CAAA,WAAA+B,SAAA,CAAA7B,CAAA,IAAA6B,SAAA,CAAA7B,CAAA,QAAAA,CAAA,OAAAqB,OAAA,CAAAP,MAAA,CAAAhB,CAAA,OAAAiC,OAAA,WAAA/B,CAAA,IAAAgC,eAAA,CAAAnC,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAArC,CAAA,EAAAiB,MAAA,CAAAmB,yBAAA,CAAAnC,CAAA,KAAAuB,OAAA,CAAAP,MAAA,CAAAhB,CAAA,GAAAiC,OAAA,WAAA/B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAAmC,gBAAAnC,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAmC,cAAA,CAAAnC,CAAA,MAAAH,CAAA,GAAAiB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,IAAAoC,KAAA,EAAAtC,CAAA,EAAA2B,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAAzC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAA0C,aAAA,IAtB9C,uKAAA1C,CAAA,EAAAC,CAAA,EAAAE,CAAA,wBAAAiB,MAAA,GAAAA,MAAA,OAAAhB,CAAA,GAAAD,CAAA,CAAAkB,QAAA,kBAAAf,CAAA,GAAAH,CAAA,CAAAwC,WAAA,8BAAApC,EAAAJ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAC,CAAA,QAAAqC,CAAA,GAAAxC,CAAA,IAAAA,CAAA,CAAAmB,SAAA,YAAAsB,SAAA,GAAAzC,CAAA,GAAAyC,SAAA,EAAAC,CAAA,GAAA7B,MAAA,CAAA8B,MAAA,CAAAH,CAAA,CAAArB,SAAA,UAAAyB,mBAAA,CAAAF,CAAA,uBAAA3C,CAAA,EAAAC,CAAA,EAAAE,CAAA,QAAAC,CAAA,EAAAqC,CAAA,EAAAE,CAAA,EAAAtC,CAAA,MAAAyC,CAAA,GAAA3C,CAAA,QAAA4C,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA7C,CAAA,KAAAgD,CAAA,EAAApD,CAAA,EAAAqD,CAAA,EAAAC,CAAA,EAAA9C,CAAA,EAAA8C,CAAA,CAAAC,IAAA,CAAAvD,CAAA,MAAAsD,CAAA,WAAAA,EAAArD,CAAA,EAAAE,CAAA,WAAAI,CAAA,GAAAN,CAAA,EAAA2C,CAAA,MAAAE,CAAA,GAAA9C,CAAA,EAAAmD,CAAA,CAAA/C,CAAA,GAAAD,CAAA,EAAAkD,CAAA,gBAAAC,EAAAnD,CAAA,EAAAC,CAAA,SAAAwC,CAAA,GAAAzC,CAAA,EAAA2C,CAAA,GAAA1C,CAAA,EAAAH,CAAA,OAAAiD,CAAA,IAAA1C,CAAA,KAAAF,CAAA,IAAAL,CAAA,GAAAgD,CAAA,CAAAhB,MAAA,EAAAhC,CAAA,UAAAK,CAAA,EAAAC,CAAA,GAAA0C,CAAA,CAAAhD,CAAA,GAAAqD,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAjD,CAAA,KAAAJ,CAAA,QAAAG,CAAA,GAAAkD,CAAA,KAAApD,CAAA,MAAA0C,CAAA,GAAAvC,CAAA,EAAAqC,CAAA,GAAArC,CAAA,YAAAqC,CAAA,WAAArC,CAAA,MAAAA,CAAA,MAAAP,CAAA,IAAAO,CAAA,OAAA+C,CAAA,MAAAhD,CAAA,GAAAH,CAAA,QAAAmD,CAAA,GAAA/C,CAAA,QAAAqC,CAAA,MAAAO,CAAA,CAAAC,CAAA,GAAAhD,CAAA,EAAA+C,CAAA,CAAA/C,CAAA,GAAAG,CAAA,OAAA+C,CAAA,GAAAE,CAAA,KAAAlD,CAAA,GAAAH,CAAA,QAAAI,CAAA,MAAAH,CAAA,IAAAA,CAAA,GAAAoD,CAAA,MAAAjD,CAAA,MAAAJ,CAAA,EAAAI,CAAA,MAAAH,CAAA,EAAA+C,CAAA,CAAA/C,CAAA,GAAAoD,CAAA,EAAAZ,CAAA,cAAAtC,CAAA,IAAAH,CAAA,aAAAkD,CAAA,QAAAH,CAAA,OAAA9C,CAAA,qBAAAE,CAAA,EAAA2C,CAAA,EAAAO,CAAA,QAAAhD,CAAA,YAAAiD,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAZ,CAAA,GAAAK,CAAA,EAAAH,CAAA,GAAAU,CAAA,GAAAvD,CAAA,GAAA2C,CAAA,OAAA5C,CAAA,GAAA8C,CAAA,MAAAI,CAAA,KAAA3C,CAAA,KAAAqC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAO,CAAA,CAAA/C,CAAA,QAAAkD,CAAA,CAAAV,CAAA,EAAAE,CAAA,KAAAK,CAAA,CAAA/C,CAAA,GAAA0C,CAAA,GAAAK,CAAA,CAAAC,CAAA,GAAAN,CAAA,aAAAtC,CAAA,MAAAD,CAAA,QAAAqC,CAAA,KAAAtC,CAAA,YAAAL,CAAA,GAAAM,CAAA,CAAAD,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAAe,IAAA,CAAAT,CAAA,EAAAuC,CAAA,UAAAW,SAAA,2CAAAxD,CAAA,CAAAyD,IAAA,SAAAzD,CAAA,EAAA6C,CAAA,GAAA7C,CAAA,CAAAsC,KAAA,EAAAK,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAA3C,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAe,IAAA,CAAAT,CAAA,GAAAqC,CAAA,SAAAE,CAAA,GAAAW,SAAA,uCAAAnD,CAAA,gBAAAsC,CAAA,OAAArC,CAAA,GAAAP,CAAA,cAAAC,CAAA,IAAAiD,CAAA,GAAAC,CAAA,CAAA/C,CAAA,QAAA0C,CAAA,GAAA3C,CAAA,CAAAa,IAAA,CAAAZ,CAAA,EAAA+C,CAAA,OAAAE,CAAA,kBAAApD,CAAA,IAAAM,CAAA,GAAAP,CAAA,EAAA4C,CAAA,MAAAE,CAAA,GAAA7C,CAAA,cAAAO,CAAA,mBAAA+B,KAAA,EAAAtC,CAAA,EAAAyD,IAAA,EAAAR,CAAA,SAAA/C,CAAA,EAAAG,CAAA,EAAAC,CAAA,QAAAuC,CAAA,QAAAO,CAAA,gBAAAR,UAAA,cAAAc,kBAAA,cAAAC,2BAAA,KAAA3D,CAAA,GAAAgB,MAAA,CAAA4C,cAAA,MAAAjB,CAAA,MAAAxC,CAAA,IAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,SAAA4C,mBAAA,CAAA/C,CAAA,OAAAG,CAAA,iCAAAH,CAAA,GAAA6C,CAAA,GAAAc,0BAAA,CAAArC,SAAA,GAAAsB,SAAA,CAAAtB,SAAA,GAAAN,MAAA,CAAA8B,MAAA,CAAAH,CAAA,YAAApC,EAAAR,CAAA,WAAAiB,MAAA,CAAA6C,cAAA,GAAA7C,MAAA,CAAA6C,cAAA,CAAA9D,CAAA,EAAA4D,0BAAA,KAAA5D,CAAA,CAAAS,SAAA,GAAAmD,0BAAA,EAAAZ,mBAAA,CAAAhD,CAAA,EAAAM,CAAA,yBAAAN,CAAA,CAAAuB,SAAA,GAAAN,MAAA,CAAA8B,MAAA,CAAAD,CAAA,GAAA9C,CAAA,WAAA2D,iBAAA,CAAApC,SAAA,GAAAqC,0BAAA,EAAAZ,mBAAA,CAAAF,CAAA,iBAAAc,0BAAA,GAAAZ,mBAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAI,WAAA,wBAAAf,mBAAA,CAAAY,0BAAA,EAAAtD,CAAA,wBAAA0C,mBAAA,CAAAF,CAAA,GAAAE,mBAAA,CAAAF,CAAA,EAAAxC,CAAA,gBAAA0C,mBAAA,CAAAF,CAAA,EAAA1C,CAAA,iCAAA4C,mBAAA,CAAAF,CAAA,8DAAAJ,YAAA,YAAAA,aAAA,aAAAsB,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAzD,CAAA;AAAA,SAAAwC,oBAAAhD,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA,QAAAM,CAAA,GAAAU,MAAA,CAAAC,cAAA,QAAAX,CAAA,uBAAAP,CAAA,IAAAO,CAAA,QAAAyC,mBAAA,YAAAkB,mBAAAlE,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA,aAAAK,EAAAH,CAAA,EAAAC,CAAA,IAAA4C,mBAAA,CAAAhD,CAAA,EAAAG,CAAA,YAAAH,CAAA,gBAAAmE,OAAA,CAAAhE,CAAA,EAAAC,CAAA,EAAAJ,CAAA,SAAAG,CAAA,GAAAI,CAAA,GAAAA,CAAA,CAAAP,CAAA,EAAAG,CAAA,IAAAoC,KAAA,EAAAnC,CAAA,EAAAwB,UAAA,GAAA3B,CAAA,EAAAuC,YAAA,GAAAvC,CAAA,EAAAwC,QAAA,GAAAxC,CAAA,MAAAD,CAAA,CAAAG,CAAA,IAAAC,CAAA,IAAAE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAA0C,mBAAA,CAAAhD,CAAA,EAAAG,CAAA,EAAAC,CAAA,EAAAH,CAAA;AAAA,SAAAmE,mBAAAhE,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAG,CAAA,EAAAG,CAAA,EAAA+C,CAAA,EAAAT,CAAA,cAAArC,CAAA,GAAAH,CAAA,CAAAiD,CAAA,EAAAT,CAAA,GAAAE,CAAA,GAAAvC,CAAA,CAAAgC,KAAA,WAAAnC,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAAG,CAAA,CAAAmD,IAAA,GAAAzD,CAAA,CAAA6C,CAAA,IAAAuB,OAAA,CAAAC,OAAA,CAAAxB,CAAA,EAAAyB,IAAA,CAAApE,CAAA,EAAAG,CAAA;AAAA,SAAAkE,kBAAApE,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAgC,SAAA,aAAAqC,OAAA,WAAAlE,CAAA,EAAAG,CAAA,QAAA+C,CAAA,GAAAjD,CAAA,CAAA0B,KAAA,CAAA7B,CAAA,EAAAD,CAAA,YAAAyE,MAAArE,CAAA,IAAAgE,kBAAA,CAAAf,CAAA,EAAAlD,CAAA,EAAAG,CAAA,EAAAmE,KAAA,EAAAC,MAAA,UAAAtE,CAAA,cAAAsE,OAAAtE,CAAA,IAAAgE,kBAAA,CAAAf,CAAA,EAAAlD,CAAA,EAAAG,CAAA,EAAAmE,KAAA,EAAAC,MAAA,WAAAtE,CAAA,KAAAqE,KAAA;AAAA,SAAAE,gBAAAtB,CAAA,EAAAjD,CAAA,UAAAiD,CAAA,YAAAjD,CAAA,aAAAqD,SAAA;AAAA,SAAAmB,kBAAA5E,CAAA,EAAAG,CAAA,aAAAF,CAAA,MAAAA,CAAA,GAAAE,CAAA,CAAA8B,MAAA,EAAAhC,CAAA,UAAAK,CAAA,GAAAH,CAAA,CAAAF,CAAA,GAAAK,CAAA,CAAAsB,UAAA,GAAAtB,CAAA,CAAAsB,UAAA,QAAAtB,CAAA,CAAAkC,YAAA,kBAAAlC,CAAA,KAAAA,CAAA,CAAAmC,QAAA,QAAAxB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAsC,cAAA,CAAAhC,CAAA,CAAAuE,GAAA,GAAAvE,CAAA;AAAA,SAAAwE,aAAA9E,CAAA,EAAAG,CAAA,EAAAF,CAAA,WAAAE,CAAA,IAAAyE,iBAAA,CAAA5E,CAAA,CAAAuB,SAAA,EAAApB,CAAA,GAAAF,CAAA,IAAA2E,iBAAA,CAAA5E,CAAA,EAAAC,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,iBAAAyC,QAAA,SAAAzC,CAAA;AAAA,SAAAsC,eAAArC,CAAA,QAAAM,CAAA,GAAAwE,YAAA,CAAA9E,CAAA,gCAAAS,OAAA,CAAAH,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAwE,aAAA9E,CAAA,EAAAE,CAAA,oBAAAO,OAAA,CAAAT,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAmB,MAAA,CAAA4D,WAAA,kBAAAhF,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAgB,IAAA,CAAAf,CAAA,EAAAE,CAAA,gCAAAO,OAAA,CAAAH,CAAA,UAAAA,CAAA,YAAAkD,SAAA,yEAAAtD,CAAA,GAAA8E,MAAA,GAAAC,MAAA,EAAAjF,CAAA;AAwBA,IAAMkF,KAAK,GAAG,IAAAC,iBAAU,EAAC,iBAAiB,CAAC;AAE3C,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAaC,KAAK,EAAU;EACtC,OAAOC,kBAAkB,CAACD,KAAK,CAAC,CAACE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACvD,CAAC;AAED,IAAMC,eAAe,GAAGC,aAAO,CAACC,IAAI;AACpC,IAAMC,iBAAiB,MAAAC,MAAA,CAAMJ,eAAe,MAAG;;AAE/C;AACA;AACA;AACA,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,MAAuB,EAAElB,GAAW,EAAEmB,GAAG,EAAa;EACvE,OAAOC,kBAAC,CAACC,KAAK,CAACH,MAAM,CAAClB,GAAG,CAAC,CAAC,KAAK,KAAK,GAAGkB,MAAM,CAAClB,GAAG,CAAC,GAAGmB,GAAG;AAC3D,CAAC;;AAyCD;AASA;AACA;AACA;AACA;AAHA,IAIMG,YAAY,GAAAC,OAAA,CAAAD,YAAA;EAgBhB;;EAKA,SAAAA,aACEE,UAAkB,EAClBN,MAAuB,EACvBO,UAAkB,EAClBC,MAAc,EACdC,KAAc,EACd;IAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,eAAA;IAAAhC,eAAA,OAAAwB,YAAA;IACA,IAAI,CAACE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACN,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACa,eAAe,GAAG,CAAC;IACxB,IAAI,CAACC,SAAS,IAAAJ,qBAAA,GAAGH,UAAU,CAACQ,UAAU,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,QAAQ;IAClD,IAAI,CAACM,EAAE,GAAGhB,MAAM,CAACgB,EAAE;IACnB,IAAI,CAACR,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACS,SAAS,GAAGV,UAAU,CAACU,SAAS;IACrC,IAAI,CAACC,aAAa,GAAGnB,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,eAAe,EAAE;MAC3DmB,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,EAAE;MACdC,cAAc,EAAE;IAClB,CAAC,CAAqB;IACtB,IAAI,CAACC,GAAG,GAAG,IAAIC,YAAG,CAAC,IAAI,CAACvB,MAAM,CAACsB,GAAG,CAAC;IACnC,IAAME,OAAO,GAAG,IAAI,CAACF,GAAG,CAACG,QAAQ,KAAK,QAAQ;IAC9C,IAAI,CAACC,WAAW,CAAC,IAAI,CAACJ,GAAG,CAACK,QAAQ,EAAE3B,MAAM,EAAEO,UAAU,EAAEiB,OAAO,CAAC;IAChE,IAAI,CAACf,KAAK,GAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI,CAACmB,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC5B,MAAM,CAACsB,GAAG,GAAG,IAAI,CAACtB,MAAM,CAACsB,GAAG,CAAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAEpD,IAAI,IAAI,CAACO,MAAM,CAAC6B,OAAO,IAAI1C,MAAM,CAAC,IAAI,CAACa,MAAM,CAAC6B,OAAO,CAAC,IAAI,IAAI,EAAE;MAC9D,IAAI,CAACrB,MAAM,CAACsB,IAAI,CACd,CACE,yBAAyB,GAAG,IAAI,CAAC9B,MAAM,CAAC6B,OAAO,EAC/C,0CAA0C,EAC1C,4CAA4C,EAC5C,0CAA0C,CAC3C,CAACE,IAAI,CAAC,IAAI,CACb,CAAC;IACH;;IAEA;IACA,IAAI,CAACC,MAAM,GAAG,IAAAC,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnE;IACA,IAAI,CAAC6B,OAAO,GAAG;MACbK,OAAO,EAAE,IAAAD,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IACjE,CAAC;IACDZ,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAACyC,OAAO,CAAC;IACrC,IAAI,CAACM,SAAS,GAAGhD,MAAM,CAACY,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,WAAW,GAAAW,qBAAA,GAAE,IAAI,CAACX,MAAM,CAACmC,SAAS,cAAAxB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAC;IACxF,IAAI,CAACyB,YAAY,GAAG,IAAAH,yBAAa,EAAClC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC/E,IAAI,CAACqC,UAAU,GAAGC,OAAO,CAACvC,SAAS,CAAC,IAAI,CAACC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,IAAI,CAACuC,KAAK,GAAG;MAAEC,KAAK,GAAA5B,eAAA,GAAE,IAAI,CAACuB,SAAS,cAAAvB,eAAA,cAAAA,eAAA,GAAI;IAAE,CAAC;EAC7C;EAAC,OAAA7B,YAAA,CAAAqB,YAAA;IAAAtB,GAAA;IAAAtC,KAAA,EAED,SAAQoF,QAAQA,CAAA,EAAG;MACjB,IAAI,CAAC,IAAI,CAACnB,KAAK,EAAE;QACf;QACA,IAAMgC,aAAa,GAAG,IAAIC,iBAAY,CAAC,IAAI,CAAC1C,MAAM,CAACsB,GAAG,EAAE,IAAI,CAACqB,KAAK,EAAE,IAAI,CAACzB,aAAa,CAAC;QACvF,OAAOuB,aAAa,CAAC5H,GAAG,CAAC,CAAC;MAC5B,CAAC,MAAM;QACL,OAAO,IAAI,CAAC4F,KAAK;MACnB;IACF;EAAC;IAAA3B,GAAA;IAAAtC,KAAA,EAED,SAAOoG,UAAUA,CAAA,EAA2B;MAAA,IAA1BC,OAAO,GAAA5G,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6G,SAAA,GAAA7G,SAAA,MAAG,CAAC,CAAC;MAC5B,IAAM8G,MAAM,GAAGpD,aAAO,CAACqD,MAAM;MAC7B,IAAMC,cAAc,GAAGtD,aAAO,CAACuD,eAAe;MAC9C,IAAMpC,SAAS,GAAGnB,aAAO,CAACwD,UAAU;MAEpCN,OAAO,CAACE,MAAM,CAAC,GAAGF,OAAO,CAACE,MAAM,CAAC,IAAIlD,iBAAiB;MACtDgD,OAAO,CAACI,cAAc,CAAC,GAAGJ,OAAO,CAACI,cAAc,CAAC,IAAI,MAAM;MAC3D;MACAJ,OAAO,CAAC/B,SAAS,CAAC,GAAG+B,OAAO,CAAC/B,SAAS,CAAC,YAAAhB,MAAA,CAAY,IAAI,CAACgB,SAAS,MAAG;MACpE,OAAO,IAAI,CAACsC,WAAW,CAACP,OAAO,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA/D,GAAA;IAAAtC,KAAA,EAMA,SAAQ4G,WAAWA,CAACP,OAAmB,EAAc;MACnD,IAAQQ,IAAI,GAAK,IAAI,CAACrD,MAAM,CAApBqD,IAAI;MACZ,IAAI,OAAOA,IAAI,KAAK,WAAW,IAAI,OAAOR,OAAO,CAAClD,aAAO,CAAC2D,aAAa,CAAC,KAAK,QAAQ,EAAE;QACrF,OAAOT,OAAO;MAChB;MAEA,IAAI3C,kBAAC,CAACqD,QAAQ,CAACF,IAAI,CAAC,KAAK,KAAK,IAAInD,kBAAC,CAACqD,QAAQ,CAAEF,IAAI,CAASG,KAAK,CAAC,KAAK,KAAK,EAAE;QAC3E,IAAI,CAACC,eAAe,CAAC,cAAc,CAAC;MACtC;;MAEA;MACA;MACA;MACA,IAAID,KAAU;MACd,IAAME,SAAc,GAAGL,IAAI;MAC3B,IAAInD,kBAAC,CAACC,KAAK,CAACuD,SAAS,CAACF,KAAK,CAAC,KAAK,KAAK,IAAItD,kBAAC,CAACyD,QAAQ,CAACD,SAAS,CAACF,KAAK,CAAC,EAAE;QACrEpE,KAAK,CAAC,uBAAuB,CAAC;QAC9BoE,KAAK,GAAGE,SAAS,CAACF,KAAK;MACzB,CAAC,MAAM,IAAItD,kBAAC,CAACC,KAAK,CAACuD,SAAS,CAACE,SAAS,CAAC,KAAK,KAAK,EAAE;QACjD,IAAI,OAAOF,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;UAC3CxE,KAAK,CAAC,uBAAuB,EAAEsE,SAAS,CAACE,SAAS,CAAC;UACnDJ,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACJ,SAAS,CAACE,SAAS,CAAC;QAC1C,CAAC,MAAM,IAAI,OAAOF,SAAS,CAACE,SAAS,KAAK,SAAS,IAAIF,SAAS,CAACE,SAAS,EAAE;UAC1ExE,KAAK,CAAC,8BAA8B,CAAC;UACrCoE,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACC,SAAS;QAC/B,CAAC,MAAM;UACL,IAAI,CAACvD,MAAM,CAACwD,KAAK,CAACC,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;UACtD,IAAI,CAACV,eAAe,CAACQ,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;QAC3D;MACF,CAAC,MAAM;QACL/E,KAAK,CAAC,8BAA8B,CAAC;QACrCoE,KAAK,GAAGK,OAAO,CAACC,GAAG,CAACC,SAAS;MAC/B;MAEA,IAAI,OAAOP,KAAK,KAAK,WAAW,EAAE;QAChC,IAAI,CAACC,eAAe,CAACQ,eAAS,CAACC,UAAU,CAACC,cAAc,CAAC;MAC3D;;MAEA;MACA,IAAMC,IAAI,GAAGV,SAAS,CAACU,IAAI,IAAIC,iBAAW;MAC1CjF,KAAK,CAAC,eAAe,EAAEgF,IAAI,CAAC;MAC5B,IAAI,CAACE,uBAAuB,CAACzB,OAAO,EAAEuB,IAAI,EAAEZ,KAAK,CAAC;MAElD,OAAOX,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA/D,GAAA;IAAAtC,KAAA,EAKA,SAAQiH,eAAeA,CAACc,OAAe,EAAS;MAC9C,IAAI,CAAC/D,MAAM,CAACwD,KAAK,CAACO,OAAO,CAAC;MAC1B,MAAM,IAAIC,KAAK,CAACD,OAAO,CAAC;IAC1B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAzF,GAAA;IAAAtC,KAAA,EAOA,SAAQ8H,uBAAuBA,CAACzB,OAAY,EAAEuB,IAAY,EAAEZ,KAAU,EAAQ;MAC5E,IAAMiB,KAAa,GAAGL,IAAI,CAACM,WAAW,CAAC,CAAC;MAExC,IAAID,KAAK,KAAKE,kBAAY,CAACD,WAAW,CAAC,CAAC,IAAID,KAAK,KAAKJ,iBAAW,CAACK,WAAW,CAAC,CAAC,EAAE;QAC/E,IAAI,CAACjB,eAAe,eAAA3D,MAAA,CAAe2E,KAAK,kBAAe,CAAC;MAC1D;MAEA5B,OAAO,CAAClD,aAAO,CAAC2D,aAAa,CAAC,GAAGsB,eAAS,CAACC,UAAU,CAACT,IAAI,EAAEZ,KAAK,CAAC;IACpE;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAjBE;IAAA1E,GAAA;IAAAtC,KAAA,EAmBA,SAAQsI,kBAAkBA,CAACjC,OAAmB,EAAc;MAC1D,IAAI,CAAC,IAAI,CAAC7C,MAAM,CAAC6C,OAAO,EAAE;QACxB,OAAOA,OAAO;MAChB;;MAEA;MACA;MACA,KAAK,IAAM/D,IAAG,IAAI,IAAI,CAACkB,MAAM,CAAC6C,OAAO,EAAE;QACrCA,OAAO,CAAC/D,IAAG,CAAC,GAAG,IAAI,CAACkB,MAAM,CAAC6C,OAAO,CAAC/D,IAAG,CAAC;MACzC;MACA,OAAO+D,OAAO;IAChB;EAAC;IAAA/D,GAAA;IAAAtC,KAAA;MAAA,IAAAuI,kBAAA,GAAAtG,iBAAA,cAAA9B,YAAA,GAAAuB,CAAA,CAED,SAAA8G,QACEC,IAAY,EACZC,OAAqC;QAAA,IAAAC,KAAA;QAAA,IAAAtC,OAAA,EAAAuC,MAAA,EAAAC,GAAA,EAAAC,QAAA,EAAAC,cAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAlD,KAAA,EAAAmD,IAAA,EAAAC,IAAA,EAAAC,GAAA,EAAArB,OAAA,EAAAsB,IAAA,EAAA7B,KAAA,EAAA8B,EAAA;QAAA,OAAAnJ,YAAA,GAAAsB,CAAA,WAAA8H,QAAA;UAAA,kBAAAA,QAAA,CAAA7I,CAAA,GAAA6I,QAAA,CAAA1L,CAAA;YAAA;cAAA,KAEjC,IAAI,CAAC2L,iBAAiB,CAAC,CAAC;gBAAAD,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cAAA,MACpB4L,gBAAU,CAACC,gBAAgB,CAACC,eAAS,CAACC,cAAc,CAAC;YAAA;cAG7D;cACAhH,KAAK,CAAC,iCAAiC,EAAE6F,IAAI,CAAC;cAC1CpC,OAAO,GAAG,IAAI,CAACD,UAAU,CAACsC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErC,OAAO,CAAC;cAC/CA,OAAO,GAAG,IAAI,CAACwD,eAAe,CAACxD,OAAO,EAAEqC,OAAO,CAACoB,aAAa,CAAC;cAC9DzD,OAAO,GAAG,IAAI,CAACiC,kBAAkB,CAACjC,OAAO,CAAC;cAC1C;cACA,IAAI3C,kBAAC,CAACC,KAAK,CAAC+E,OAAO,CAACQ,IAAI,CAAC,KAAK,KAAK,EAAE;gBACnC7C,OAAO,CAAClD,aAAO,CAAC4G,UAAU,CAAC,GAAGrB,OAAO,CAACQ,IAAI;gBAC1C7C,OAAO,CAAClD,aAAO,CAACqD,MAAM,CAAC,GAAGnD,iBAAiB;cAC7C;cACMuF,MAAM,GAAGF,OAAO,CAACE,MAAM,IAAI,KAAK;cAChCC,GAAG,GAAG,IAAI,CAACrF,MAAM,CAACsB,GAAG,OAAAxB,MAAA,CAAOR,MAAM,CAAC2F,IAAI,CAAC,CAAE;cAChD7F,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAACmD,KAAK,CAACC,KAAK,CAAC;cAE5C+C,cAAc,GAAG,CAAC;cAAAQ,QAAA,CAAA7I,CAAA;cAEdqF,KAAK,IAAAiD,cAAA,GAAGN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3C,KAAK,cAAAiD,cAAA,cAAAA,cAAA,GAAI,IAAI,CAACjD,KAAK;cAC1CnD,KAAK,CAAC,wBAAwB,EAAEmD,KAAK,CAAC;cAACwD,QAAA,CAAA1L,CAAA;cAAA,OACtB,IAAAmM,kBAAG,EAACnB,GAAG,EAAE;gBACxBxC,OAAO,EAAPA,OAAO;gBACP4D,YAAY,EAAE,MAAM;gBACpBrB,MAAM,EAANA,MAAM;gBACN3E,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjB8B,KAAK,EAALA,KAAK;gBACLV,OAAO,EAAE,IAAI,CAACA,OAAO;gBACrB6E,KAAK,EAAE;kBACLC,aAAa,EAAE,CACb,UAACA,aAAa,EAAK;oBACjB,IAAMd,IAAI,GAAGc,aAAa,CAACC,UAAU;oBACrCxH,KAAK,CAAC,2BAA2B,EAAEyG,IAAI,CAAC;oBACxC,IAAIA,IAAI,IAAIgB,iBAAW,CAACC,EAAE,IAAIjB,IAAI,GAAGgB,iBAAW,CAACE,gBAAgB,EAAE;sBACjE,IAAI5B,KAAI,CAACtE,eAAe,IAAIsE,KAAI,CAAChD,SAAS,EAAE;wBAC1CgD,KAAI,CAACtE,eAAe,GAAG,CAAC;wBACxBsE,KAAI,CAAC3E,MAAM,CAACsB,IAAI,CACd;0BACEkF,IAAI,EAAE7B,KAAI,CAAC7D,GAAG,CAAC0F;wBACjB,CAAC,EACD,4BACF,CAAC;sBACH;oBACF;oBAEA,OAAOL,aAAa;kBACtB,CAAC,CACF;kBACDM,WAAW,EAAE,CACX,UAACjD,KAAmB,EAAEkD,KAAa,EAAK;oBACtC9H,KAAK,CAAC,oBAAoB,EAAEiG,GAAG,EAAE6B,KAAK,CAAC;oBACvC/B,KAAI,CAACtE,eAAe,GAAGqG,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC;oBACjC/B,KAAI,CAAC3E,MAAM,CAAC2G,IAAI,CACd;sBACEjF,OAAO,EAAE;wBACPkD,MAAM,EAAEA,MAAM;wBACd9D,GAAG,EAAE+D;sBACP,CAAC;sBACDrB,KAAK,EAAEA,KAAK,CAACO,OAAO;sBACpB6C,UAAU,EAAEjC,KAAI,CAACtE;oBACnB,CAAC,EACD,6DACF,CAAC;oBACD,IAAIsE,KAAI,CAACtE,eAAe,IAAIsE,KAAI,CAAChD,SAAS,EAAE;sBAC1CgD,KAAI,CAAC3E,MAAM,CAACsB,IAAI,CACd;wBACEkF,IAAI,EAAE7B,KAAI,CAAC7D,GAAG,CAAC0F;sBACjB,CAAC,EACD,6BACF,CAAC;oBACH;kBACF,CAAC;gBAEL;cACF,CAAC,CAAC,CACCK,EAAE,CAAC,SAAS,EAAE,YAAM;gBACnBlC,KAAI,CAACmC,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;cACrC,CAAC,CAAC,CACDH,EAAE,CAAM,UAAU,EAAE,UAACI,aAAa,EAAK;gBACtC,IAAMlD,OAAO,GAAG,iEAAiE;gBACjFY,KAAI,CAAC3E,MAAM,CAACkH,IAAI,CACd;kBACExF,OAAO,EAAE;oBACPkD,MAAM,EAAEA,MAAM;oBACd9D,GAAG,EAAE+D;kBACP,CAAC;kBACDsC,MAAM,EAAEzH,kBAAC,CAAC0H,MAAM,CAACH,aAAa,CAAC,KAAK,KAAK,GAAGA,aAAa,CAACb,UAAU,GAAG;gBACzE,CAAC,EACDrC,OACF,CAAC;cACH,CAAC,CAAC,CACD8C,EAAE,CAAC,kBAAkB,EAAE,UAACQ,QAAQ,EAAK;gBACpC,IAAIA,QAAQ,CAACC,KAAK,EAAE;kBAClB1I,KAAK,CAAC,mBAAmB,EAAEyI,QAAQ,CAACC,KAAK,CAAC;kBAC1CvC,cAAc,GAAGsC,QAAQ,CAACC,KAAK;gBACjC;cACF,CAAC,CAAC;YAAA;cA3EJxC,QAAQ,GAAAS,QAAA,CAAA1I,CAAA;cA4EFqI,IAAI,GAAGJ,QAAQ,CAACzC,OAAO,CAAC6C,IAAI;cAC5BC,IAAI,GAAGL,QAAQ,CAACyC,IAAI,EAE1B;cACA;cAAA,MACI,EAAAtC,SAAA,GAAAH,QAAQ,cAAAG,SAAA,uBAARA,SAAA,CAAUmB,UAAU,MAAKC,iBAAW,CAACmB,YAAY;gBAAAjC,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cAC7CuL,GAAG,GAAGK,gBAAU,CAACgC,WAAW,CAAC9B,eAAS,CAAC+B,oBAAoB,CAAC;cAClEtC,GAAG,CAACC,IAAI,GAAGgB,iBAAW,CAACmB,YAAY;cAAC,MAC9BpC,GAAG;YAAA;cAGXxG,KAAK,CAAC,gBAAgB,EAAEiG,GAAG,CAAC;cACtBd,OAAO,GAAG,qDAAqD;cACrE,IAAI,CAAC/D,MAAM,CAACkH,IAAI,CACd;gBACE;gBACAxF,OAAO,EAAE;kBAAEkD,MAAM,EAAEA,MAAM;kBAAE9D,GAAG,EAAE+D;gBAAI,CAAC;gBACrCsC,MAAM,EAAErC,QAAQ,CAACsB,UAAU;gBAC3BuB,KAAK,EAAE;kBACL,MAAIjD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEkD,IAAI,GAAGxI,IAAI,CAACyI,SAAS,CAACnD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkD,IAAI,CAAC,CAAClM,MAAM,GAAG,CAAC;kBAC5DoM,GAAG,EAAE/C,cAAc,IAAI;gBACzB;cACF,CAAC,EACDhB,OACF,CAAC;cAAC,OAAAwB,QAAA,CAAAzI,CAAA,IACK,CAACqI,IAAI,EAAED,IAAI,CAAC;YAAA;cAAAK,QAAA,CAAA7I,CAAA;cAAA4I,EAAA,GAAAC,QAAA,CAAA1I,CAAA;cAEnB+B,KAAK,CAAC,oBAAoB,EAAE0G,EAAA,CAAID,IAAI,EAAER,GAAG,CAAC;cAAC,MACvCS,EAAA,CAAID,IAAI,KAAK,0BAA0B;gBAAAE,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cACnCwL,IAAI,GAAGC,EAAA,CAAIR,QAAQ,CAACsB,UAAU;cACpCxH,KAAK,CAAC,eAAe,EAAEyG,IAAI,CAAC;cAAC,MACzBA,IAAI,KAAKgB,iBAAW,CAAC0B,SAAS;gBAAAxC,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cAAA,MAC1B4L,gBAAU,CAACgC,WAAW,CAAC9B,eAAS,CAACqC,kBAAkB,CAAC;YAAA;cAAA,IAGtD3C,IAAI,IAAIgB,iBAAW,CAACC,EAAE,IAAIjB,IAAI,GAAGgB,iBAAW,CAACE,gBAAgB;gBAAAhB,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cAC3D2J,KAAK,GAAGiC,gBAAU,CAACC,gBAAgB,IAAApG,MAAA,CAAIqG,eAAS,CAACsC,eAAe,QAAA3I,MAAA,CAAK+F,IAAI,CAAE,CAAC,EAClF;cACA7B,KAAK,CAAC0E,YAAY,GAAG7C,IAAI;cAAC,MACpB7B,KAAK;YAAA;cAAA+B,QAAA,CAAA1L,CAAA;cAAA;YAAA;cAAA,KAEJ,IAAI,CAACsO,iBAAiB,CAAA7C,EAAI,CAAC;gBAAAC,QAAA,CAAA1L,CAAA;gBAAA;cAAA;cACpC+E,KAAK,CAAC,oBAAoB,CAAC;cAAC,MACtB6G,gBAAU,CAAC2C,qBAAqB,CAACzC,eAAS,CAAC0C,eAAe,CAAC;YAAA;cAAA,MAAA/C,EAAA;YAAA;cAAA,OAAAC,QAAA,CAAAzI,CAAA;UAAA;QAAA,GAAA0H,OAAA;MAAA,CAItE;MAAA,SArJY8D,iBAAiBA,CAAAC,EAAA,EAAAC,GAAA;QAAA,OAAAjE,kBAAA,CAAAhJ,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAjB6M,iBAAiB;IAAA,IAuJ9B;EAAA;IAAAhK,GAAA;IAAAtC,KAAA,EACA,SAAOyM,YAAYA,CACjB3H,GAAW,EACX4H,eAA8E,EACzE;MAAA,IAAAC,WAAA;QAAAC,MAAA;MACLhK,KAAK,CAAC,qBAAqB,EAAEkC,GAAG,CAAC;MACjC,IAAM4D,OAAO,GAAAlJ,aAAA,CAAAA,aAAA,KAAQ,IAAI,CAACgE,MAAM,GAAKkJ,eAAe,CAAE;MACtD,IAAIrG,OAAO,GAAG,IAAI,CAACD,UAAU,CAACsC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErC,OAAO,CAAC;MAC/CA,OAAO,GAAG,IAAI,CAACwD,eAAe,CAACxD,OAAO,EAAEqC,OAAO,CAACoB,aAAa,CAAC;MAC9DzD,OAAO,GAAG,IAAI,CAACiC,kBAAkB,CAACjC,OAAO,CAAC;MAC1C;MACA,IAAI3C,kBAAC,CAACC,KAAK,CAAC+E,OAAO,CAACQ,IAAI,CAAC,KAAK,KAAK,EAAE;QACnC7C,OAAO,CAAClD,aAAO,CAAC4G,UAAU,CAAC,GAAGrB,OAAO,CAACQ,IAAI;QAC1C7C,OAAO,CAAClD,aAAO,CAACqD,MAAM,CAAC,GAAGnD,iBAAiB;MAC7C;MACA,IAAMuF,MAAM,GAAG,KAAK;MACpB;MACAhG,KAAK,CAAC,oBAAoB,EAAEkC,GAAG,CAAC;MAEhC,IAAM+H,UAAU,GAAG7C,kBAAG,CACnB8C,MAAM,CAAChI,GAAG,EAAE;QACXuB,OAAO,EAAPA,OAAO;QACPuC,MAAM,EAANA,MAAM;QACN3E,KAAK,EAAE,IAAI,CAACA,KAAK;QACjB;QACA8B,KAAK,GAAA4G,WAAA,GAAE,IAAI,CAAC5G,KAAK,cAAA4G,WAAA,cAAAA,WAAA,GAAIjE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3C,KAAK;QACnCV,OAAO,EAAE,IAAI,CAACA;MAChB,CAAC,CAAC,CACDwF,EAAE,CAAC,SAAS,EAAE,YAAM;QACnB+B,MAAI,CAAC9B,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrC,CAAC,CAAC;MAEJ,OAAO6B,UAAU;IACnB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAvK,GAAA;IAAAtC,KAAA;MAAA,IAAA+M,OAAA,GAAA9K,iBAAA,cAAA9B,YAAA,GAAAuB,CAAA,CAKA,SAAAsL,SAAAC,IAAA;QAAA,IAAAnI,GAAA,EAAAoI,KAAA,EAAAnH,KAAA,EAAA8C,GAAA,EAAAC,QAAA,EAAAqE,GAAA,EAAA7B,KAAA,EAAA8B,YAAA,EAAAC,cAAA,EAAAC,GAAA;QAAA,OAAAnN,YAAA,GAAAsB,CAAA,WAAA8L,SAAA;UAAA,kBAAAA,SAAA,CAAA7M,CAAA,GAAA6M,SAAA,CAAA1P,CAAA;YAAA;cAAsBiH,GAAG,GAAAmI,IAAA,CAAHnI,GAAG,EAAEoI,KAAK,GAAAD,IAAA,CAALC,KAAK,EAAEnH,KAAK,GAAAkH,IAAA,CAALlH,KAAK;cAAAwH,SAAA,CAAA7M,CAAA;cAEnC;cACMmI,GAAG,GAAG,IAAI9D,YAAG,CAACD,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC,CAAC0I,IAAI;cACvC,IAAI,CAACxJ,MAAM,CAACkH,IAAI,CACd;gBAAErC,GAAG,EAAHA,GAAG;gBAAE4E,MAAM,EAAE,IAAI,CAAC3J;cAAW,CAAC,EAChC,6CACF,CAAC;cACDlB,KAAK,CAAC,iBAAiB,EAAEiG,GAAG,CAAC;cACvBC,QAAQ,GAAG,IAAAkB,kBAAG,EAACnB,GAAG,EAAE;gBACxB6E,MAAM,EAAER,KAAK,GAAGA,KAAK,CAACQ,MAAM,GAAG,CAAC,CAAC;gBACjCzJ,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjBoB,OAAO,EAAE,IAAI,CAACA,OAAO;gBACrBU,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI,CAACA;cACvB,CAAC,CAAC;cAAAwH,SAAA,CAAA1P,CAAA;cAAA,OAEgBiL,QAAQ,CAAC6E,IAAI,CAAC,CAAC;YAAA;cAA3BR,GAAG,GAAAI,SAAA,CAAA1M,CAAA;cACHyK,KAAK,GAAGlI,IAAI,CAACwK,KAAK,CAACT,GAAG,CAAC,CAAC7B,KAAK;cACnC1I,KAAK,CAAC,8BAA8B,EAAE0I,KAAK,CAAC;cACtC8B,YAAY,GAAG,IAAIS,uBAAW,CAAC;gBAAEC,UAAU,EAAE;cAAK,CAAC,CAAC;cACpDT,cAAc,GAAGU,oBAAQ,CAACC,IAAI,CAACb,GAAG,CAAC,EACzC;cACAE,cAAc,CAACY,IAAI,CAACC,sBAAU,CAACN,KAAK,CAAC,SAAS,CAAC,CAAC,CAACK,IAAI,CAACb,YAAY,EAAE;gBAAEe,GAAG,EAAE;cAAK,CAAC,CAAC;cAAC,OAAAZ,SAAA,CAAAzM,CAAA,IAC5EsM,YAAY;YAAA;cAAAG,SAAA,CAAA7M,CAAA;cAAA4M,GAAA,GAAAC,SAAA,CAAA1M,CAAA;cAEnB+B,KAAK,CAAC,iBAAiB,EAAA0K,GAAK,CAAC;cAAC,MAC1BA,GAAA,CAAIxE,QAAQ,CAACsB,UAAU,KAAK,GAAG;gBAAAmD,SAAA,CAAA1P,CAAA;gBAAA;cAAA;cAAA,MAC3B4L,gBAAU,CAACC,gBAAgB,oBAAApG,MAAA,CAAoBgK,GAAA,CAAIxE,QAAQ,CAACsB,UAAU,iBAAc,CAAC;YAAA;cAE7F,IAAI,CAACpG,MAAM,CAACwD,KAAK,CACf;gBAAE4G,YAAY,EAAAd,GAAA,aAAAA,GAAA,uBAAEA,GAAA,CAAKvF,OAAO;gBAAEU,IAAI,EAAE,IAAI,CAAC3E;cAAW,CAAC,EACrD,oDACF,CAAC;cAAC,MAAAwJ,GAAA;YAAA;cAAA,OAAAC,SAAA,CAAAzM,CAAA;UAAA;QAAA,GAAAkM,QAAA;MAAA,CAGL;MAAA,SAnCYqB,MAAMA,CAAAC,GAAA;QAAA,OAAAvB,OAAA,CAAAxN,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAN4O,MAAM;IAAA;EAAA;IAAA/L,GAAA;IAAAtC,KAAA,EAqCnB,SAAQ6J,eAAeA,CAACxD,OAAmB,EAAEyD,aAAsB,EAAc;MAC/E;MACA;MACA;MACA;MACA,IAAI,CAAC,IAAI,CAAC3D,KAAK,EAAE;QACfE,OAAO,CAAClD,aAAO,CAACoL,aAAa,CAAC,GAC5B,CAAClI,OAAO,CAAC,iBAAiB,CAAC,GAAGA,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,EAAE,IAAIyD,aAAa;MACzF;;MAEA;MACAzD,OAAO,CAAC,KAAK,CAAC,GAAGA,OAAO,CAAC,KAAK,CAAC,GAAGA,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;MAC5DA,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC5B,SAAS,GAAG,cAAc;MAE1D,OAAO4B,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA/D,GAAA;IAAAtC,KAAA,EAKA,SAAQwJ,iBAAiBA,CAAA,EAAY;MACnC,OACE,IAAI,CAACnF,eAAe,IAAI,IAAI,CAACsB,SAAS,IACtC6I,IAAI,CAACC,GAAG,CAAC1D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAI,IAAI,CAACF,iBAA4B,CAAC,GAAG,IAAI,CAAClF,YAAY;IAEjF;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAtD,GAAA;IAAAtC,KAAA,EAKA,SAAQmM,iBAAiBA,CAAC/C,GAAiB,EAAW;MAAA,IAAAsF,aAAA;MACpD,IAAMrF,IAAI,GAAGD,GAAG,aAAHA,GAAG,gBAAAsF,aAAA,GAAHtF,GAAG,CAAEN,QAAQ,cAAA4F,aAAA,uBAAbA,aAAA,CAAetE,UAAU;MACtC,OACEhB,GAAG,CAACC,IAAI,KAAK,WAAW,IACxBD,GAAG,CAACC,IAAI,KAAK,iBAAiB,IAC9BD,GAAG,CAACC,IAAI,KAAK,YAAY,IACzBA,IAAI,KAAKgB,iBAAW,CAACsE,eAAe,IACpCtF,IAAI,KAAKgB,iBAAW,CAACuE,WAAW,IAChCvF,IAAI,KAAKgB,iBAAW,CAACwE,mBAAmB,IACxCxF,IAAI,KAAKgB,iBAAW,CAACyE,eAAe;IAExC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAxM,GAAA;IAAAtC,KAAA,EAOA,SAAQkF,WAAWA,CACjBC,QAAgB,EAChB3B,MAAuB,EACvBuL,UAAkB,EAClB/J,OAAgB,EACV;MACN,IAAIgK,WAAW;MACf,IAAMC,SAAiB,GAAGjK,OAAO,GAAG,aAAa,GAAG,YAAY;MAChEpC,KAAK,CAAC,gBAAgB,EAAEqM,SAAS,CAAC;;MAElC;MACA,IAAIA,SAAS,IAAIzL,MAAM,EAAE;QACvB,IAAI,CAAC2C,KAAK,GAAG3C,MAAM,CAACyL,SAAS,CAAC;QAC9BrM,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAACuD,KAAK,CAAC;MAChD,CAAC,MAAM,IAAI8I,SAAS,IAAIF,UAAU,EAAE;QAClC,IAAI,CAAC5I,KAAK,GAAG4I,UAAU,CAACE,SAAS,CAAC;QAClCrM,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAACuD,KAAK,CAAC;MAC9C;MACA,IAAI,UAAU,IAAI3C,MAAM,EAAE;QACxBwL,WAAW,GAAGxL,MAAM,CAAC0L,QAAQ;MAC/B,CAAC,MAAM,IAAI,UAAU,IAAIH,UAAU,EAAE;QACnCC,WAAW,GAAGD,UAAU,CAACG,QAAQ;MACnC;;MAEA;MACA,IAAI/J,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACvBA,QAAQ,GAAG,GAAG,GAAGA,QAAQ;MAC3B;MAEA,IAAIzB,kBAAC,CAACyD,QAAQ,CAAC6H,WAAW,CAAC,IAAIA,WAAW,CAACtP,MAAM,EAAE;QACjDsP,WAAW,GAAGA,WAAW,CAACG,KAAK,CAAC,GAAG,CAAC;MACtC;MAEA,IAAIzL,kBAAC,CAAC0L,OAAO,CAACJ,WAAW,CAAC,EAAE;QAC1B,KAAK,IAAIhR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgR,WAAW,CAACtP,MAAM,EAAE1B,CAAC,EAAE,EAAE;UAC3C,IAAIqR,WAAW,GAAGL,WAAW,CAAChR,CAAC,CAAC;UAChC,IAAIqR,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1BA,WAAW,GAAG,GAAG,GAAGA,WAAW;UACjC;UACA,IAAIlK,QAAQ,CAACmK,QAAQ,CAACD,WAAW,CAAC,EAAE;YAClC,IAAI,IAAI,CAAClJ,KAAK,EAAE;cACdvD,KAAK,CAAC,sCAAsC,EAAEyM,WAAW,CAAC;cAC1D,IAAI,CAACrL,MAAM,CAACpB,KAAK,CACf;gBAAEkC,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC0I,IAAI;gBAAE+B,IAAI,EAAEF;cAAY,CAAC,EACzC,sDACF,CAAC;cACD,IAAI,CAAClJ,KAAK,GAAGG,SAAS;YACxB;YACA;UACF;QACF;MACF;MAEA,IAAI,OAAO,IAAI,CAACH,KAAK,KAAK,QAAQ,EAAE;QAClCvD,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAACuD,KAAK,EAAE,IAAI,CAACrB,GAAG,CAAC0I,IAAI,CAAC;QACnE,IAAI,CAACxJ,MAAM,CAACpB,KAAK,CACf;UAAEkC,GAAG,EAAE,IAAI,CAACA,GAAG,CAAC0I,IAAI;UAAErH,KAAK,EAAE,IAAI,CAACA;QAAM,CAAC,EACzC,iCACF,CAAC;MACH;IACF;EAAC;AAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/proxy",
3
- "version": "9.0.0-next-9.1",
3
+ "version": "9.0.0-next-9.3",
4
4
  "description": "Verdaccio Proxy Fetcher",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -33,8 +33,8 @@
33
33
  "node": ">=24"
34
34
  },
35
35
  "dependencies": {
36
- "@verdaccio/config": "9.0.0-next-9.1",
37
- "@verdaccio/core": "9.0.0-next-9.1",
36
+ "@verdaccio/config": "9.0.0-next-9.3",
37
+ "@verdaccio/core": "9.0.0-next-9.3",
38
38
  "JSONStream": "1.3.5",
39
39
  "debug": "4.4.3",
40
40
  "got-cjs": "12.5.4",
@@ -42,8 +42,8 @@
42
42
  "lodash": "4.17.23"
43
43
  },
44
44
  "devDependencies": {
45
- "@verdaccio/logger": "9.0.0-next-9.1",
46
- "@verdaccio/types": "14.0.0-next-9.0",
45
+ "@verdaccio/logger": "9.0.0-next-9.3",
46
+ "@verdaccio/types": "14.0.0-next-9.1",
47
47
  "get-stream": "6.0.1",
48
48
  "nock": "13.5.6",
49
49
  "vitest": "3.2.4"