{"ast":null,"code":"import { Platform } from 'expo-modules-core';\nimport PixelRatio from \"react-native-web/dist/exports/PixelRatio\";\nfunction getScaledAssetPath(asset) {\n  const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n  const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n  const type = !asset.type ? '' : `.${asset.type}`;\n  if (__DEV__) {\n    return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n  } else {\n    return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n  }\n}\nexport default class AssetSourceResolver {\n  constructor(serverUrl, jsbundleUrl, asset) {\n    this.serverUrl = serverUrl || 'https://expo.dev';\n    this.jsbundleUrl = null;\n    this.asset = asset;\n  }\n  isLoadedFromServer() {\n    return true;\n  }\n  isLoadedFromFileSystem() {\n    return false;\n  }\n  defaultAsset() {\n    return this.assetServerURL();\n  }\n  assetServerURL() {\n    const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n    fromUrl.searchParams.set('platform', Platform.OS);\n    fromUrl.searchParams.set('hash', this.asset.hash);\n    return this.fromSource(fromUrl.toString().replace(fromUrl.origin, ''));\n  }\n  fromSource(source) {\n    return {\n      __packager_asset: true,\n      width: this.asset.width ?? undefined,\n      height: this.asset.height ?? undefined,\n      uri: source,\n      scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get())\n    };\n  }\n  static pickScale(scales, deviceScale) {\n    for (let i = 0; i < scales.length; i++) {\n      if (scales[i] >= deviceScale) {\n        return scales[i];\n      }\n    }\n    return scales[scales.length - 1] || 1;\n  }\n}","map":{"version":3,"names":["Platform","PixelRatio","getScaledAssetPath","asset","scale","AssetSourceResolver","pickScale","scales","get","scaleSuffix","type","__DEV__","httpServerLocation","name","replace","constructor","serverUrl","jsbundleUrl","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","fromUrl","URL","searchParams","set","OS","hash","fromSource","toString","origin","source","__packager_asset","width","undefined","height","uri","deviceScale","i","length"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/expo-asset/src/AssetSourceResolver.ts"],"sourcesContent":["import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\n\nimport type { AssetMetadata } from './AssetSources';\n\nexport type ResolvedAssetSource = {\n  __packager_asset: boolean;\n  width?: number;\n  height?: number;\n  uri: string;\n  scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset: PackagerAsset | AssetMetadata): string {\n  const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n  const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n  const type = !asset.type ? '' : `.${asset.type}`;\n  if (__DEV__) {\n    return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n  } else {\n    return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n  }\n}\n\nexport default class AssetSourceResolver {\n  private readonly serverUrl: string;\n  // where the jsbundle is being run from\n  // NOTE(EvanBacon): Never defined on web.\n  // @ts-expect-error: Never read locally\n  private readonly jsbundleUrl: string | undefined | null;\n  // the asset to resolve\n  public readonly asset: PackagerAsset | AssetMetadata;\n\n  constructor(\n    serverUrl: string | undefined | null,\n    jsbundleUrl: string | undefined | null,\n    asset: PackagerAsset\n  ) {\n    this.serverUrl = serverUrl || 'https://expo.dev';\n    this.jsbundleUrl = null;\n    this.asset = asset;\n  }\n\n  // Always true for web runtimes\n  isLoadedFromServer(): boolean {\n    return true;\n  }\n\n  // Always false for web runtimes\n  isLoadedFromFileSystem(): boolean {\n    return false;\n  }\n\n  defaultAsset(): ResolvedAssetSource {\n    return this.assetServerURL();\n  }\n\n  /**\n   * @returns absolute remote URL for the hosted asset.\n   */\n  assetServerURL(): ResolvedAssetSource {\n    const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n    fromUrl.searchParams.set('platform', Platform.OS);\n    fromUrl.searchParams.set('hash', this.asset.hash);\n    return this.fromSource(\n      // Relative on web\n      fromUrl.toString().replace(fromUrl.origin, '')\n    );\n  }\n\n  fromSource(source: string): ResolvedAssetSource {\n    return {\n      __packager_asset: true,\n      width: this.asset.width ?? undefined,\n      height: this.asset.height ?? undefined,\n      uri: source,\n      scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n    };\n  }\n\n  static pickScale(scales: number[], deviceScale: number): number {\n    for (let i = 0; i < scales.length; i++) {\n      if (scales[i] >= deviceScale) {\n        return scales[i];\n      }\n    }\n    return scales[scales.length - 1] || 1;\n  }\n}\n"],"mappings":"AACA,SAASA,QAAQ,QAAQ,mBAAmB;AAAC,OAAAC,UAAA;AAc7C,SAASC,kBAAkBA,CAACC,KAAoC;EAC9D,MAAMC,KAAK,GAAGC,mBAAmB,CAACC,SAAS,CAACH,KAAK,CAACI,MAAM,EAAEN,UAAU,CAACO,GAAG,EAAE,CAAC;EAC3E,MAAMC,WAAW,GAAGL,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,KAAK,GAAG,GAAG;EACxD,MAAMM,IAAI,GAAG,CAACP,KAAK,CAACO,IAAI,GAAG,EAAE,GAAG,IAAIP,KAAK,CAACO,IAAI,EAAE;EAChD,IAAIC,OAAO,EAAE;IACX,OAAOR,KAAK,CAACS,kBAAkB,GAAG,GAAG,GAAGT,KAAK,CAACU,IAAI,GAAGJ,WAAW,GAAGC,IAAI;EACzE,CAAC,MAAM;IACL,OAAOP,KAAK,CAACS,kBAAkB,CAACE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,GAAGX,KAAK,CAACU,IAAI,GAAGJ,WAAW,GAAGC,IAAI;EACjG;AACF;AAEA,eAAc,MAAOL,mBAAmB;EAStCU,YACEC,SAAoC,EACpCC,WAAsC,EACtCd,KAAoB;IAEpB,IAAI,CAACa,SAAS,GAAGA,SAAS,IAAI,kBAAkB;IAChD,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB,IAAI,CAACd,KAAK,GAAGA,KAAK;EACpB;EAGAe,kBAAkBA,CAAA;IAChB,OAAO,IAAI;EACb;EAGAC,sBAAsBA,CAAA;IACpB,OAAO,KAAK;EACd;EAEAC,YAAYA,CAAA;IACV,OAAO,IAAI,CAACC,cAAc,EAAE;EAC9B;EAKAA,cAAcA,CAAA;IACZ,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAACrB,kBAAkB,CAAC,IAAI,CAACC,KAAK,CAAC,EAAE,IAAI,CAACa,SAAS,CAAC;IACvEM,OAAO,CAACE,YAAY,CAACC,GAAG,CAAC,UAAU,EAAEzB,QAAQ,CAAC0B,EAAE,CAAC;IACjDJ,OAAO,CAACE,YAAY,CAACC,GAAG,CAAC,MAAM,EAAE,IAAI,CAACtB,KAAK,CAACwB,IAAI,CAAC;IACjD,OAAO,IAAI,CAACC,UAAU,CAEpBN,OAAO,CAACO,QAAQ,EAAE,CAACf,OAAO,CAACQ,OAAO,CAACQ,MAAM,EAAE,EAAE,CAAC,CAC/C;EACH;EAEAF,UAAUA,CAACG,MAAc;IACvB,OAAO;MACLC,gBAAgB,EAAE,IAAI;MACtBC,KAAK,EAAE,IAAI,CAAC9B,KAAK,CAAC8B,KAAK,IAAIC,SAAS;MACpCC,MAAM,EAAE,IAAI,CAAChC,KAAK,CAACgC,MAAM,IAAID,SAAS;MACtCE,GAAG,EAAEL,MAAM;MACX3B,KAAK,EAAEC,mBAAmB,CAACC,SAAS,CAAC,IAAI,CAACH,KAAK,CAACI,MAAM,EAAEN,UAAU,CAACO,GAAG,EAAE;KACzE;EACH;EAEA,OAAOF,SAASA,CAACC,MAAgB,EAAE8B,WAAmB;IACpD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/B,MAAM,CAACgC,MAAM,EAAED,CAAC,EAAE,EAAE;MACtC,IAAI/B,MAAM,CAAC+B,CAAC,CAAC,IAAID,WAAW,EAAE;QAC5B,OAAO9B,MAAM,CAAC+B,CAAC,CAAC;MAClB;IACF;IACA,OAAO/B,MAAM,CAACA,MAAM,CAACgC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;EACvC","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}